Mini Kabibi Habibi

Current Path : C:/Program Files/Adobe/Adobe Photoshop 2025/Required/UXP/com.adobe.ccx.start/js/
Upload File :
Current File : C:/Program Files/Adobe/Adobe Photoshop 2025/Required/UXP/com.adobe.ccx.start/js/desktop.js.map

{"version":3,"file":"desktop.js","mappings":"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,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,KAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA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CACX,CA/yB2B,GAszB3B,SAASgB,GAASqB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,EACzC,CA8BA,SAASvC,GAAcnT,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,CACR,CAKA,SAASoT,GAAiBpT,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA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AS,QAAS,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,KAAM,QAAS,KAAM,QAAS,KAAM,SAAU,SAAU,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,KAAM,SAAU,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,KAAM,MAAO,KAAM,QAAS,KAAM,UAAW,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,UAAW,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,KAAM,MAAO,KAAM,QAAS,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,MAAO,KAAM,KAAM,QAAS,KAAM,KAAM,MAAO,SAAU,SAAU,KAAM,MAAO,KAAM,KAAM,QAAS,QAAS,MAAO,KAAM,KAAM,KAAM,QAAS,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,QAAS,QAAS,QAAS,KAAM,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,KAAM,MAAO,KAAM,KAAM,KAAM,QAAS,MAAO,KAAM,UAAW,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,MAAO,KAAM,QAAS,QAAS,QAAS,KAAM,MAAO,SAAU,KAAM,KAAM,MAAO,MAAO,KAAM,MAAO,MAAO,SAAU,MAAO,MAAO,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,WAAY,KAAM,KAAM,QAAS,QAAS,QAAS,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,QAAS,KAAM,MAAO,SAAU,KAAM,QAAS,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,MAAO,KAAM,MAAO,KAAM,MAAO,MAAO,KAAM,QAAS,KAAM,KAAM,QAAS,KAAM,UAAW,UAAW,MAAO,KAAM,KAAM,QAAS,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,QAAS,QAAS,KAAM,KAAM,KAAM,QAAS,MAAO,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,MAAO,KAAM,MAAO,MAAO,MAAO,WAAY,MAAO,KAAM,KAAM,UAAW,UAAW,KAAM,QAAS,QAAS,MAAO,MAAO,KAAM,MAAO,WAAY,WAAY,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,QAAS,QAAS,QAAS,KAAM,QAAS,QAAS,KAAM,UAAW,aAAc,aAAc,aAAc,UAAW,aAAc,aAAc,aAAc,KAAM,UAAW,KAAM,QAAS,QAAS,KAAM,QAAS,QAAS,QAAS,KAAM,QAAS,QAAS,QAAS,KAAM,MAAO,SAAU,KAAM,KAAM,KAAM,QAAS,KAAM,KAAM,KAAM,QAAS,KAAM,MAAO,MAAO,KAAM,KAAM,MAAO,KAAM,QAAS,KAAM,UAAW,UAAW,UAAW,MAAO,WAAY,WAAY,KAAM,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,QAAS,MAAO,SAAU,SAAU,MAAO,WAAY,WAAY,MAAO,KAAM,UAAW,aAAc,aAAc,aAAc,UAAW,aAAc,aAAc,oCCE1uJ,SAASC,EAAoBC,EAAkBzpB,GAElD,IADA,IAAI0pB,EAAY1pB,IACH,CACT,GAAIypB,EAAiBpsC,IAAIqsC,GACrB,OAAOA,EAEX,IAAIC,EAAMD,EAAUE,YAAY,KAChC,KAAMD,EACF,OAEAA,GAAO,GAA4B,MAAvBD,EAAUC,EAAM,KAC5BA,GAAO,GAEXD,EAAYA,EAAUh6B,MAAM,EAAGi6B,EACnC,CACJ,2FCbO,SAASE,EAAuBJ,EAAkBK,GAErD,IADA,IAAIC,EAAS,GACJ1S,EAAK,EAAG2S,EAAqBF,EAAkBzS,EAAK2S,EAAmB1qC,OAAQ+3B,IAAM,CAC1F,IACI4S,EADSD,EAAmB3S,GACDl7B,QAAQ,IAAkC,IACrE+tC,GAAkB,OAAoBT,EAAkBQ,GACxDC,GACAH,EAAO/qC,KAAKkrC,EAEpB,CACA,OAAOH,CACX,2ECZO,SAASI,EAAsBC,EAAWxsC,IAC7C,OAAyB,IAAfA,EAAI0B,OAAc,4BAC5B,IAAIib,EAAO6vB,EAAU9qC,OACjB+qC,EAAc,IAAIpkC,OAAOrI,EAAK,KAC9B+rC,EAAMS,EAAUpC,QAAQqC,GAC5B,IAAa,IAATV,EAAY,CAKZ,IAJA,IAAIlL,EAAQkL,EAAM,EACdjL,EAAMD,EACN9T,EAAI8T,EACJ6L,GAAO,GACHA,GAAM,CACV,IAAIplB,EAAIklB,EAAUpC,QAAQ,IAAKrd,GAQnB,KAND,IAAPzF,EACM3K,EAAOoQ,EAGPzF,EAAIyF,GAGV2f,GAAO,GAEK,IAAPplB,GACLwZ,EAAMnkB,EACN+vB,GAAO,IAGP5L,EAAMxZ,EACNyF,EAAIzF,EAAI,EAEhB,CACA,OAAOklB,EAAU16B,MAAM+uB,EAAOC,EAClC,CAGA,GAFA2L,EAAc,IAAIpkC,OAAOrI,IAEZ,KADb+rC,EAAMS,EAAUpC,QAAQqC,KACNV,EAAM,IAAMpvB,EAC1B,MAAO,EAGf,CCtCO,SAASgwB,EAAcd,EAAkBK,EAAkBplC,EAAS8lC,EAAuBC,EAAYC,GAC1G,IACI5hC,EAEAA,EADY,WAFFpE,EAAQimC,cCAnB,SAAuBlB,EAAkBK,EAAkBY,GAE9D,IADA,IAAI9jC,EAAS,CAAEoZ,OAAQ,IACdqX,EAAK,EAAG2S,EAAqBF,EAAkBzS,EAAK2S,EAAmB1qC,OAAQ+3B,IAAM,CAC1F,IAAIrX,EAASgqB,EAAmB3S,GAC5B4S,EAAoBjqB,EAAO7jB,QAAQ,IAAkC,IACrE+tC,GAAkB,EAAAV,EAAA,GAAoBC,EAAkBQ,GAC5D,GAAIC,EAKA,OAJAtjC,EAAOoZ,OAASkqB,EACZlqB,IAAWiqB,IACXrjC,EAAOwjC,UAAYpqB,EAAOtQ,MAAMu6B,EAAkB3qC,OAAQ0gB,EAAO1gB,SAE9DsH,CAEf,CAEA,OADAA,EAAOoZ,OAAS0qB,IACT9jC,CACX,CDbYgkC,CAAcnB,EAAkBK,EAAkBY,GEHvD,SAAwBjB,EAAkBK,EAAkBY,GAC/D,IAgBIG,EACAT,EAjBAU,EAA8B,CAAC,EAC/BC,EAAqB,CAAC,EACtBC,EAAyB,CAAC,EAC1BC,EAA4B,IAAIrE,IACpC6C,EAAiBjqC,SAAQ,SAAUwgB,GAC/B,IAAIkrB,EAAkB,IAAItC,KAAKuC,OAAOnrB,GACjCorB,WACA7jC,WACD8jC,EAAsBzC,KAAK0C,oBAAoBtrB,GAAQ,IAAMA,EACjE8qB,EAA4BI,GAAmBlrB,EAC/C+qB,EAAmB/qB,GAAUA,EAC7BgrB,EAAuBK,GAAuBrrB,EAC9CirB,EAA0B3D,IAAI4D,GAC9BD,EAA0B3D,IAAItnB,GAC9BirB,EAA0B3D,IAAI+D,EAClC,IAGA,IAAK,IAAIhU,EAAK,EAAG2S,EAAqBF,EAAkBzS,EAAK2S,EAAmB1qC,OAAQ+3B,IAAM,CAC1F,IAAI9L,EAAIye,EAAmB3S,GAC3B,GAAIwT,EACA,MAEJ,IAAIZ,EAAoB1e,EAAEpvB,QAAQ,IAAkC,IAIpE,GAHIovB,IAAM0e,IACNG,EAAY7e,EAAE7b,MAAMu6B,EAAkB3qC,OAAQisB,EAAEjsB,SAEhDmqC,EAAiBpsC,IAAI4sC,GAAoB,CACzCY,EAAcZ,EACd,KACJ,CACA,GAAIgB,EAA0B5tC,IAAI4sC,GAAoB,CAClDY,EAAcZ,EACd,KACJ,CACA,IAAIjqB,EAAS,IAAI4oB,KAAKuC,OAAOlB,GACzBsB,EAA2BvrB,EAAOoe,WAAW72B,WAC7CikC,EAA2BxrB,EAAOorB,WAAW7jC,WAEjD,GAAI0jC,EAA0B5tC,IAAImuC,GAA2B,CACzDX,EAAcW,EACd,KACJ,CAEAX,GAAc,EAAArB,EAAA,GAAoByB,EAA2BM,EACjE,CACA,OAAKV,EAGE,CACH7qB,OAAQ+qB,EAAmBF,IACvBG,EAAuBH,IACvBC,EAA4BD,IAC5BA,EACJT,UAAWA,GAPJ,CAAEpqB,OAAQ0qB,IASzB,CFnDYe,CAAehC,EAAkBK,EAAkBY,GAK3D,IAHA,IAAIG,EAAc/hC,EAAEkX,OAChBpZ,EAAS,CAAEoZ,OAAQ,GAAI0rB,WAAYb,GACnCc,EAAqB,KAChBtU,EAAK,EAAGuU,EAA0BpB,EAAuBnT,EAAKuU,EAAwBtsC,OAAQ+3B,IAAM,CACzG,IAAIz5B,EAAMguC,EAAwBvU,IAClC,OAAUwT,KAAeJ,EAAY,2BAA2BxkC,OAAO4kC,IACvE,IAAIgB,EAAkBpB,EAAWI,IACjC,OAAqC,iBAApBgB,GAAoD,OAApBA,EAA0B,eAAe5lC,OAAOrI,EAAK,uBACtG,IAAIkuC,EAAgBD,EAAgBjuC,IACpC,OAAUiL,MAAMwgC,QAAQyC,GAAgB,qBAAqB7lC,OAAOrI,EAAK,sBACzE,IAAIgC,EAAQksC,EAAc,IAC1B,OAA2B,iBAAVlsC,GAAgC,OAAVA,EAAgB,wCAAwCqG,cAAcrG,EAAO,YAAYqG,OAAOrI,IACvI,IAAImuC,EAA6B,GACjC,GAAIjjC,EAAEshC,UAAW,CACb,IAAI4B,EAAiB7B,EAAsBrhC,EAAEshC,UAAWxsC,QACjC8I,IAAnBslC,IACuB,KAAnBA,GACKF,EAAc9D,QAAQgE,KACvBpsC,EAAQosC,EACRD,EAA6B,IAAI9lC,OAAOrI,EAAK,KAAKqI,OAAOrG,KAGvDosC,EAAehE,QAAQ,UAC7BpoC,EAAQ,OACRmsC,EAA6B,IAAI9lC,OAAOrI,IAGpD,CACA,GAAIA,KAAO8G,EAAS,CAChB,IAAIunC,EAAevnC,EAAQ9G,IAC3B,OAAkC,iBAAjBquC,GAAP,MACCA,EACgB,mDACtBH,EAAc9D,QAAQiE,IACnBA,IAAiBrsC,IACjBA,EAAQqsC,EACRF,EAA6B,GAGzC,CACAnlC,EAAOhJ,GAAOgC,EACd+rC,GAAsBI,CAC1B,CACA,GAAIJ,EAAmBrsC,OAAS,EAAG,CAC/B,IAAI4sC,EAAerB,EAAY7C,QAAQ,OACvC,IAAsB,IAAlBkE,EACArB,GAA4Bc,MAE3B,CACD,IAAIQ,EAAetB,EAAYn7B,MAAM,EAAGw8B,GACpCE,EAAgBvB,EAAYn7B,MAAMw8B,EAAcrB,EAAYvrC,QAChEurC,EAAcsB,EAAeR,EAAqBS,CACtD,CACAvB,EAAcjC,KAAK0C,oBAAoBT,GAAa,EACxD,CAEA,OADAjkC,EAAOoZ,OAAS6qB,EACTjkC,CACX,yDGzEO,IAAIylC,EAAmC,0BACvC,SAAStU,EAAUC,EAAWvzB,EAASwzB,GAE1C,QADY,IAARA,IAAkBA,EAAMnuB,QACvBkuB,EACD,MAAM,IAAIC,EAAIxzB,EAEtB,2ICJO,SAAS8nB,EAAMud,EAAkBL,EAAkB6C,EAAehE,GACrE,IAAIc,EAAUK,EAAiB9R,QAAO,SAAU5X,EAAKwL,GAEjD,OADAxL,EAAIunB,IAAI/b,GACDxL,CACX,GAAG,IAAI6mB,KACP,OAAO,EAAA2D,EAAA,GAAcnB,ECHlB,SAAgCA,GAEnC,OAAOR,KAAK0C,oBAAoBlC,EACpC,CDAkCmD,CAAuBzC,GAAmB,CACpEa,eAAgBrC,aAAmC,EAASA,EAAKkE,YAAc,YAChF,GAAI,CAAC,GAAG,WAAc,OAAOF,CAAe,IAAGtsB,MACtD,qBEVA,IAAiDzkB,EAS9B,oBAATiB,MAAuBA,KATgBjB,EASH,WAC9C,mBCTA,SAGA,cAGA,QACA,oBAGA,YACA,IACA,KACA,YAUA,OANA,mCAGA,OAGA,SACA,CAoCA,OAhCA,MAGA,MAGA,oBACA,UACA,2BACA,gBACA,cACA,OAGA,EAGA,gBACA,sBACA,WAA4B,OAAOE,EAAgB,OAAG,EACtD,WAAkC,OAAOA,CAAQ,EAEjD,OADA,aACA,CACA,EAGA,kBAAuD,OAAOgC,OAAOT,UAAUa,eAAeC,KAAKU,EAAQiuC,EAAW,EAGtH,OAGA,SDnDA,4vBEQYrD,yJAAAA,CAAZ,UACA,OACA,kBACA,iLAEA,IAAMlE,EAAU,gKAEVwH,EAAY,SAAA1sB,GAAA,OAAUA,EAAOuM,MAAM2Y,IAAY,EAAnC,EAOZyH,EAAU,SAAC/vC,EAAKgwC,GAAN,OAAcnvC,OAAOiB,KAAK9B,GAAKiwC,MAAK,SAAAjW,GAAA,OAAKgW,EAAIhwC,EAAIg6B,GAAb,GAApC,EAOVkW,EAA2B,SAAClwC,EAAKgB,GAAN,YAAsB8I,IAAR9I,EAAoBhB,EAAIa,OAAOiB,KAAK9B,GAAKiC,QAAO,SAAA8rB,GAAA,OAAKA,EAAEiF,gBAAkBhyB,EAAIgyB,aAA7B,IAA4C,SAAMlpB,CAAhH,EAiD3BqmC,EAAa,SAAC/sB,GAAuC,IAA/BgtB,EAA+B,wDACrDC,EAAK,GACHl3B,EAAU22B,EAAO1sB,GAEvB,GAAIjK,EAAQzW,OAAS,EACnB,QAAmBoH,IAAfqP,EAAQ,GAERk3B,GADyB,IAAvBD,EACMj3B,EAAQ,GAAhB,IAAsBA,EAAQ,GAAG6uB,OAAO,GAAGsI,cAAgBn3B,EAAQ,GAAGrG,MAAM,GAEpEqG,EAAQ,GAAhB,IAAsBA,EAAQ,QAE3B,GAAiC,OAA7BA,EAAQ,GAAG6Z,oBAAyClpB,IAAfqP,EAAQ,GAAkB,CAExE,IAAIsoB,EAAStoB,EAAQ,GAAG6Z,cAGtBqd,EADE,CAAC,KAAM,KAAM,MAAM3iC,SAAS+zB,GACzB,UAEA,SAER,MACC4O,EAAKl3B,EAAQ,GAIjB,OAAOk3B,CACR,EAKKE,EAAa,CAAC,EAEpB1vC,OAAOiB,KAAK0qC,GAAS5pC,SAAQ,SAAA4tC,GAC3B,IAAMC,EAAajE,EAAQgE,GAE3B3vC,OAAOiB,KAAK2uC,GAAY7tC,SAAQ,SAAA8tC,GAC9B,IAAMC,EAAeF,EAAWC,GAGhCH,EAAWG,GAAaC,OAES7mC,IAA7BymC,EAAWI,KACbJ,EAAWI,GAAgBA,EAM9B,GACF,IAKD,IAAMC,EAAgB,kBAAML,CAAN,EA2EhBM,EAAW,SAAChhC,GAAD,OAASA,EAAItQ,QAAQ,eAAgB,IAAIA,QAAQ,SAAU,GAA3D,IA8DRwwC,QAAAA,IACAG,yBAAAA,IACA5sB,KAjOS,SAAAF,GAAA,OAAU0sB,EAAO1sB,GAAQ,IAAM,EAA/B,IAkOT0tB,QA5NS,SAAA1tB,GAAA,OAAU0sB,EAAO1sB,GAAQ,IAAM,EAA/B,IA6NT2tB,OAvNS,SAAA3tB,GAAA,OAAU0sB,EAAO1sB,GAAQ,IAAM,EAA/B,IAwNTqe,OAlNS,SAAAre,GAAA,OAAU0sB,EAAO1sB,GAAQ,IAAM,EAA/B,IAmNT4tB,QAAAA,EAAAA,UACAC,OA9MS,SAAA7tB,GAAA,OAAU0sB,EAAO1sB,GAAQ,IAAM,EAA/B,IA+MT8tB,UAvHS,SAAC9tB,EAAQotB,GACzB,IAAIW,OAAAA,EAEJ,GAAIX,EAAK,CACP,IAAME,GAAY,aAAaF,EAAKptB,GAEpC+tB,EAAmB3E,EAAQgE,GAAKE,EACjC,CAED,OAAOS,GAAoBjB,EAAyBU,IAAiBxtB,EACtE,IA8GQ+sB,WAAAA,IACAU,SAAAA,IACAD,cAAAA,IACAQ,mBAhJkB,SAAC3P,EAAQ+O,GAClC,OAAOT,EAAQ,EAARA,iBAAyB,SAAC7hB,GAC/B,OAAIjiB,MAAMwgC,QAAQve,GACTA,EAAExgB,SAAS+zB,EAAOzO,eAGpB9E,EAAE,CAAC,cAAe,SAASxgB,SAAS8iC,GAAO,cAAgB,WAAW9iC,SAAS+zB,EAAOzO,cAE9F,GACF,IAwIQqe,oBAnImB,SAACb,GAAD,OAAS,EAAAc,kBAAkB5jC,SAAS8iC,EAApC,IAoInBe,kBArEiB,SAAC1hC,GAAgC,IAA3B2hC,EAA2B,wDAEzD,GAAmB,iBAAR3hC,GAAoBA,EAAInN,OAAQ,CACzC,IAAM+uC,EAAcZ,EAAShhC,EAAIwc,OAAO2G,eADC,uBAGzC,qEAIE,IAJgC,mBAAtB9kB,EAAsB,KAAhB9K,EAAgB,KAC1BsuC,EAAiBtuC,EAAMuuC,WAAa1lC,MAAMwgC,QAAQrpC,EAAMuuC,YAAcvuC,EAAMuuC,WAAa,CAACvuC,EAAMuuC,YAAc,GAC9GC,EAAYxuC,EAAMuL,MAAQ1C,MAAMwgC,QAAQrpC,EAAMuL,OAASvL,EAAMuL,MAAQ,CAACvL,EAAMuL,OAAS,GAF3D,cAIP+iC,GAJO,EAIYE,IAA5C,mBAAwD,CAAnD,IAAMC,EAAAA,EAAAA,GACHC,EAAiBjB,EAASgB,GAEhC,GAA4C,IAAxCJ,EAAYrG,QAAQ0G,GACtB,OAA0B,IAAnBN,EAA0B,CAACtjC,KAAAA,EAAM6jC,WAAYD,EAAe3iB,MAAM,KAAK,IAAMjhB,CAEvF,CAbsC,8EAe1C,CAGF,IAkDQ8jC,oBA5GmB,SAAC5uB,EAAQ6uB,GACnC,IAAItiB,GAAQ,EACRuiB,EAAY,QAEhB,GAAsB,iBAAX9uB,GAAiD,iBAAnB6uB,GAAyD,IAA1BA,EAAevvC,OAAc,CACnG,IAAI6+B,EAAW4O,EAAW/sB,GAAQ,GAC9B+uB,EAAkBF,EAAe3B,cACjC8B,EAAe,UAAQD,QAENroC,IAAjBsoC,IACEA,EAAa1kC,SAAS6zB,GACxB5R,GAAQ,EAER4R,EAAW6Q,EAAa,IAAM,KAGhCF,EAAe3Q,EAAf,IAA2B4Q,EAE9B,CAED,MAAO,CACLxiB,MAAAA,EACAvM,OAAQ8uB,EAEX,IAqFQG,oBAvBmB,SAACJ,GAC3B,IAAMK,EAAe,CAAC,MAChBC,EAAmC,iBAAnBN,EAAgC,UAAQA,EAAe3B,gBAAkB,GAAMgC,EAErG,OAAOC,EAAM7vC,OAAS6vC,EAAQD,CAC/B,IAmBQE,uBA7CsB,SAAC/Q,GAC9B,IAAIiO,OAAAA,EAEJ,GAAsB,iBAAXjO,GAAyC,IAAlBA,EAAO/+B,OAAc,CACrD,IAAM+vC,EAAahR,EAAO6O,cAEtB,UAAQmC,IAAe,UAAQA,GAAY,KAG7C/C,EAFa,UAAQ+C,GAAY,GAEjC,IAA2BA,EAE9B,CAED,OAAO/C,CACR,iFCxPD,IAAYlD,yJAAAA,CAAZ,MACA,iBAQqB,SAAfkG,EAAgBlC,EAAKptB,EAAQlN,GAEjC,QAAqBpM,IAAjB0iC,EAAQgE,GAEV,OADA/sC,QAAQkvC,KAAR,8BAA2CnC,EAA3C,oGACO,GAIT,GAAsB,iBAAXptB,GAAkD,OAA3BA,EAAOzP,UAAU,EAAG,GAAa,CACjE,IAAMi/B,EAAKF,EAAalC,EAAK,SAE7B,OAAOoC,EAAGllC,SAAS,KACX,QAAUklC,EAAGllC,SAAS,KACtB,QACA,IACT,CAED,IAAIgjC,OAAAA,EAGJ,GAAIttB,QAAmCtZ,IAAzB0iC,EAAQgE,GAAKptB,GACzBstB,EAAYttB,MACP,CAGL,IAAMyvB,GAAe,IAAAjC,iBAErB,GAAIxtB,IAA6B,MAAjB,IAAAE,MAAKF,SAA2CtZ,IAAzB+oC,EAAazvB,IAAwB,CAC1E,IAAI+tB,GAAmB,IAAAjB,0BAAyB2C,EAAczvB,GAa9D,QAXyBtZ,IAArBqnC,IAEAA,EADoB,IAAlB/tB,EAAO1gB,QACU,IAAA8vC,wBAAuBpvB,IAAWA,EAElCA,EAAO1V,SAAS,KAAO0V,EAAO7jB,QAAQ,KAAM,KAAO6jB,QAOxDtZ,KAHlB4mC,GAAY,IAAAX,SAAQvD,EAAQgE,IAAM,SAACtiB,GAAD,OAAOA,IAAMijB,CAAb,OAGH,IAAAE,qBAAoBb,GAAM,CACvD,IAAMsC,GAAiB,IAAA1B,qBAAmB,IAAA3P,QAAOre,GAASotB,GAE1D,GAAIsC,EAAgB,CAElB,IAAMC,GAAmB,IAAAzvB,MAAKF,GAAxB,MAAqC0vB,EAAexC,cACpD0C,EAAe5vB,EAAOtQ,MAAM,GAAI,GAAKggC,EAAexC,mBAIxCxmC,KAFlB4mC,GAAY,IAAAX,SAAQvD,EAAQgE,IAAM,SAACtiB,GAAD,OAAOA,IAAM6kB,GAAiB7kB,IAAM8kB,CAApC,WAE8BlpC,IAAjC0iC,EAAQgE,GAAKsC,KAC1CpC,EAAYoC,EAEf,CACF,CAGD,QAAkBhpC,IAAd4mC,GAAwD,MAA7B,IAAAK,QAAOI,GAA0B,CAC9D,IAAM8B,EAAa9B,EAAiB7lC,OAAO,EAAG,GAAG0nB,cAEjD0d,GAAY,IAAAX,SAAQvD,EAAQgE,IAAM,SAACtiB,GAAD,OAAOA,EAAE5iB,OAAO,EAAG,GAAG0nB,gBAAkBigB,CAAxC,GACnC,CAGD,QAAkBnpC,IAAd4mC,EAAyB,CAC3B,IAAMwC,EAAW/B,EAAiB7lC,OAAO,EAAG,GAAG0nB,cAE/C0d,GAAY,IAAAX,SAAQvD,EAAQgE,IAAM,SAACtiB,GAAD,OAAOA,EAAE5iB,OAAO,EAAG,GAAG0nB,gBAAkBkgB,CAAxC,GACnC,CAGD,QAAkBppC,IAAd4mC,EAAyB,CAC3B,IAAMyC,EAAahC,EAAiBhiB,MAAM,KAAKV,MAAMuE,cAErD0d,GAAY,IAAAX,SAAQvD,EAAQgE,IAAM,SAAAtiB,GAAA,OAAKA,EAAE5iB,OAAO4iB,EAAExrB,OAASywC,EAAWzwC,OAAQywC,EAAWzwC,QAAQswB,gBAAkBmgB,CAAjF,GACnC,CACF,MAEiBrpC,IAAd4mC,QAAwC5mC,IAAboM,IAC7Bw6B,GAAY,IAAAX,SAAQvD,EAAQgE,IAAM,SAACtiB,GAAD,OAAOA,IAAMhY,GAAYgY,IAAM2kB,EAAa38B,EAA5C,IAErC,CAOD,MAJY,UAARs6B,GAAiC,OAAdE,IACrBA,EAAY,IAGPA,GAAa,EACrB,iFCrHD,IAAM0C,EAAO,IAAI3qB,IAAI5nB,OAAOyiC,QAAQ,CAClC,sBAAyB,CACvB,MAAe,uDACf,WAAe,oDAEjB,aAAgB,CACd,MAAe,gDACf,WAAe,2CAEjB,YAAe,CACb,MAAe,kCACf,WAAe,6BAEjB,aAAiB,CACf,MAAe,kCACf,WAAe,6BAEjB,aAAiB,CACf,MAAe,uCACf,WAAe,kCAEjB,OAAgB,CACd,MAAe,mCACf,WAAe,4BAEjB,QAAgB,CACd,MAAe,+BACf,WAAe,2BAEjB,MAAe,CACb,MAAe,4CACf,WAAe,kCAEjB,OAAgB,CACd,MAAe,wCACf,WAAe,mCAEjB,MAAgB,CACd,MAAe,qCACf,WAAe,2BAEjB,UAAgB,CACd,MAAe,kCACf,WAAe,+BAEjB,iBAAqB,CACnB,MAAe,gCACf,WAAe,8BAEjB,MAAgB,CACd,MAAe,+BACf,WAAe,mCAEjB,gBAAsB,CACpB,MAAe,0CACf,WAAe,qCAEjB,QAAgB,CACd,MAAe,uCACf,WAAe,6BAEjB,QAAc,CACZ,MAAe,2BACf,WAAe,4BAEjB,MAAgB,CACd,MAAe,mCACf,WAAe,2BAEjB,MAAgB,CACd,MAAe,gCACf,WAAe,2BAEjB,KACE,MAAe,sCACf,WAAe,0CAEjB,WACE,MAAe,4BACf,WAAe,+BAEjB,WAAU,CACR,MAAe,yCACf,WAAe,oCAEjB,KACE,MAAe,4CACf,WAAe,uCAEjB,OACE,MAAe,oCACf,WAAe,+BAEjB,UAAkB,CAChB,MAAe,8BACf,WAAe,+BAFC,SA7FgB,CAkGlC,8CACG,WAAe,2CADA,mEAEf,cAAe,6EAElB,cAAgB,CACd,MAAe,+BACf,WAAe,4BAEjB,MAAgB,CACd,MAAe,wCACf,WAAe,2BAEjB,kBAAY,CACV,MAAS,4CAGT,WAAgB,uCAElB,OACE,MAAS,kCAET,WAAc,CAAC,wDAEjB,SACE,MAAe,4CADD,oGAEd,WAAe,iCAEjB,eACE,MAAe,qDADG,qDAElB,WAAe,4CAEjB,YAAgB,CACd,MAAe,iCACf,WAAe,8BAEjB,gBAAgB,CACd,MAAe,iCACf,WAAe,8BAvIN,GAAb,oCA2IA,gDAGA,oCACa+P,WAAAA,4BAKAC,EAAAA,OAAAA,CAAAA,cAAAA,QAAkB,iHAKrB,wIAIS,EAAa,kBAAkB,eAAkB,QAAM,YAAvD,qBACf,MADe,SACG,cAEZ,EAAqB,gBAAkB,CAC/CC,OAAQ,sPACN,WAAW,0BACX,IAf2B,gKAkB7BC,YAAQ,wlJC3HD79B,o5DCzCP,OAFa,MAIb,sBAJa,cAKb,YAAO,EACP,eACA,OAAO,GAPM,WAQb,IAGA,OAXa,0DAab,sBAba,iBAcb,YAAO,EACP,eACA,OAAO,GAhBM,WAiBb,8FCCF,4CACA,4CAEA,kEArBA,+JA2BA,IAA6D,EAEzD66B,GAFyD,EAAvDiD,EAAAA,KAAuD,kCCGvD,2GAZN,qHAGA,wCAKMC,OAAAA,EAEJ,mBAQI,cACD,YAED,sBAAIC,EAAJ,yBAXE,IAoBa,EApBb,EAYiB5B,EAZjB,GAcF,EAAIvB,EAAmB,GAIvB,GAEe,EAJd,OAIc,qCAOG,SAAZ,SAGF,GAAmBuB,iBAAbzJ,GAAN,iBAAM,EACN,MAAMsL,MAAAA,2CAKJ,IAFAD,EAAAA,EAAAA,QAEA,cAAIjD,SAAkB,iBACpBiD,OAAAA,EAGF,QAEEA,GAAeA,EAAAA,EAAap0C,mBAAb,MAChB,SACF,eAED,QAAMs0C,IAAN,iFAMEF,GAAAA,EAAAA,CACD,IAFD,GAEO,qBAEN,2DAIL,EAAOA,IAGLlwC,IAAAA,EAAA,kBACD,gDAGIoM,EAAP,gTAGa6jC,EAAAA,QAAAA,EAAAA,KAAAA,2pBCzFf,4OCPE,sBADa,sBAEb,YAAY,EACZ,eACA,OAAY,EAJC,UAKb,IAGA,MAAY,EARC,sDAUb,YAAY,GAVC,qBAWD,YAAZ,GAXa,kBAYb,OAAY,eAZC,KAab,YAba,EAcb,IAAY,WACZ,OAAY,EAfC,EAgBb,GAEA,mFCjBA,EAAY,QADC,CAEb,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,WACA,UAAY,uGCnBC,CACb,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,QAAY,aACZ,QAAY,aAGZ,EAEA,SAxBa,OA0Bb,aAGA,sBAAY,EA7BC,cA8Bb,+IC7BA,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,UAAY,aACZ,UAAY,uGCnBC,CACb,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UAAU,aACV,UAAU,uGCnBG,CACb,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,aACV,QAAU,aAnBG,2HCCb,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,gBACA,gBAhBa,oJCAf,2FAEA,QAAMI,QAEJ,QAAO,QACP,QAAO,QAHT,mLCFA,qDAEM,sKAAN,SAAM,EAAAC,EAAAA,KAAA,4BAAN,iGCFe,gBACb,WAGA,IAJa,EAIb,EAAU,OAJG,2JAYb,EAZa,SAMH,EANG,0CAab,WACA,WACA,WACA,WACA,WACA,aAGA,UArBa,CAuBb,EAEA,SAAU,sJCxBV,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,QACP,MAAO,aACP,yHCnBA,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QAlBM,8HCEb,EAAO,QAFM,CAGb,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QAPM,oJCGb,EAEA,SALa,OAOb,aAGA,sBAVa,gBAWb,OAAY,IAEZ,EAAY,QAbC,CAcb,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,WACA,WAnBa,+ICCb,WACA,UAAU,aACV,UAAU,aAGV,EAEA,SAAU,EARG,KAUb,aAGA,sBAba,gBAcb,WAEA,UAhBa,CAiBb,WACA,WACA,WACA,WApBa,sFCAA,gBACb,WAEA,UAHa,CAIb,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WAlBa,+FCCb,sBADa,gBAEb,OAAY,IAEZ,EAAY,QAJC,CAKb,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,aACZ,QAAY,aAGZ,EAEA,SAAY,IA7BC,4KCCb,QAAO,QACP,QAAO,QACP,QAAO,QACP,QAAO,QACP,QAAO,QACP,QAAO,QACP,QAAU,QACV,QAAU,QACV,QAAU,QACV,WAAU,aAVG,6HCEb,EAAO,QAFM,CAGb,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,WACA,WAVa,+ICCb,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UAAY,aACZ,UAAY,aAGZ,EAEA,SAAY,EAdC,KAgBb,aAGA,sBAnBa,gBAoBb,WAEA,UAtBa,CAuBb,WACA,WACA,WACA,WACA,WACA,WACA,QAAY,QACZ,QAAY,QACZ,QAAY,aACZ,QAAY,aAGZ,EAEA,SAAY,EArCC,KAuCb,aAGA,sBAAY,EA1CC,cA2Cb,wHC1CA,aAGA,sBAJa,gBAKb,WAEA,UAPa,CAQb,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,QAAU,QACV,QAAU,aAjBG,uHCCb,cACA,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,YACV,MAAU,QACV,MAAU,UACV,MAAU,QACV,MAAU,UACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,YACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,cACA,MAAU,QACV,MAAU,QACV,cACA,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,QAAU,aACV,MAAU,aACV,QAAU,aACV,MAAU,aAGV,EAEA,SAAU,EA9CG,KAgDb,aAGA,sBAnDa,gBAoDb,WAEA,UAtDa,CAuDb,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QA3DG,qNCCb,QAAY,aAGZ,EAEA,SAAY,EANC,KAQb,aAGA,sBAXa,gBAYb,WAEA,UAda,CAeb,QAAY,YACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,QAAY,YACZ,MAAY,QACZ,MAAY,QACZ,OAAY,WAtCC,8LCCb,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,aACV,MAAU,aACV,MAAU,aAGV,EAEA,SAAU,EA3BG,KA6Bb,aAGA,sBAhCa,gBAiCb,WAEA,UAnCa,CAoCb,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QAxCG,sLCCb,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,aACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,aACV,MAAU,aACV,MAAU,aAGV,EAEA,SAAU,EAzBG,KA2Bb,aAGA,sBA9Ba,gBA+Bb,WAEA,UAAU,CAjCG,sLCCb,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,aACV,MAAU,sHC1BV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,YACV,MAAU,QACV,MAAU,QACV,MAAU,UACV,MAAU,UACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,YACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QAzBG,8HCCf,aAGA,sBAAqB,gBACrB,OAAY,IAEZ,EAAY,QAAS,CACrB,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,gBACA,gBArBe,qNCCbC,QAAU,aAGVC,EAEAC,SAAU,EAAY,KAEtBC,aAGAC,OAAAA,eAAmB,gBACnBC,OAAU,IAEVC,EAAAA,QAAmB,CACnBC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,QACVC,QAAU,aACVC,QAAU,aAGVC,EAEAC,SA5Ca,EA4CM,KAEnBC,aA9Ca,kKCCb,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,QAAU,aACV,QAAU,aAGV,EAfa,iJCCb,MAAY,QACZ,OAAY,WACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,QAAY,YACZ,MAAY,QACZ,MAAY,QACZ,OAAY,WACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,cAlBa,+LCCb,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,mBACA,mBAGA,EAEA,SAAS,EAlBI,KAoBb,aAGA,sBAvBa,gBAwBb,WAEA,UA1Ba,CA2Bb,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QAhCI,sLCEb,SAFa,OAIb,aAGA,sBAPa,gBAQb,OAAY,IAEZ,EAAY,QAVC,CAWb,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,WACA,WAnBa,+GCCb,SAAU,EADG,KAGb,aAGA,sBANa,gBAOb,WAEA,UATa,CAUb,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,gBACA,gBAhBa,gNCCb,QAAe,QACf,QAAe,QACf,QAAe,QACf,QAAe,QACf,QAAe,QACf,QAAe,QACf,QAAe,aACf,QAAe,QACf,QAAe,QACf,QAAe,QACf,QAAe,aACf,QAAe,aAGf,EAEA,SAjBa,OAmBb,aAGA,sBAtBa,gBAuBb,OAAe,IAEf,EAAe,QAzBF,CA0Bb,GAAe,QACf,GAAe,QACf,GAAe,QACf,GAAe,QACf,GAAe,QACf,GAAe,QACf,GAAe,QACf,WACA,WACA,WACA,WACA,GAAe,QACf,GAAe,QACf,GAAe,QACf,GAAe,QACf,WACA,GAAe,QACf,UAAe,aACf,UAAe,aAGf,EAEA,SAAe,EAjDF,KAmDb,aAGA,sBAtDa,gBAuDb,OAAe,IAEf,EAAe,QAzDF,CA0Db,GAAe,QACf,GAAe,QACf,GAAe,QACf,GAAe,QACf,GAAe,QA9DF,+ICCb,WACA,UAAU,aACV,UAAU,aAGV,EAEA,SAAU,EAAS,KAEnB,aAGA,sBAAmB,gBACnB,WAEA,UAhBa,CAiBb,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,aAAU,aACV,aAAU,aAGV,EAEA,SAAU,EAAS,KAEnB,aAGA,sBAAmB,gBACnB,WAEA,UA7Ca,CA8Cb,WACA,WACA,WACA,WACA,WACA,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,WACA,MAAU,QACV,WACA,WACA,WACA,WACA,MAAU,QACV,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WA3Ea,8JCCb,WACA,WACA,WACA,WACA,WACA,MAAU,QACV,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,gBACA,gBAGA,qICrBA,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QACV,MAAU,QAhBG,sLCCb,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,cALa,sLCCb,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,MAAS,QACT,cACA,cArBa,uFCCb,sBADa,gBAEb,OAAY,IAEZ,EAAY,QAJC,CAKb,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,MAAY,QACZ,GAAY,QACZ,MAAY,QACZ,GAAY,QACZ,GAAY,QACZ,GAAY,QACZ,WAnBa,8JCCb,MAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,MAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,sHCnBA,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,QACZ,QAAY,aACZ,QAAY,aAGZ,EAEA,SAAY,EA1BC,KA4Bb,yLC3BA,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,QACV,QAAU,aACV,QAAU,aAGV,EAEA,SAAU,EAdG,KAgBb,aAGA,sBAnBa,gBAoBb,WAEA,UAAU,CAtBG,sHCEb,sBAFa,gBAGb,WAEA,UALa,CAMb,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,UAAS,aACT,UAAS,aAGT,EAEA,SAAS,EA/BI,KAiCb,aAGA,sBAAW,EApCE,cAqCb,WAEA,UAvCa,CAwCb,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,QAAS,aAGT,EAEA,SAAS,EA/DI,KAiEb,aAGA,sBAAW,EApEE,cAqEb,WAEA,UAvEa,CAwEb,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WA/Ea,uKCGb,EAEA,SAAU,EALG,KAOb,aAPa,0LCCb,MAAa,QACb,MAAa,QAFA,sLCCb,MAAa,QACb,MAAa,QACb,MAAa,aACb,MAAa,aAGb,EAEA,SATa,EASiB,KAE9B,aAGA,sBAA8B,gBAC9B,WAEA,UAjBa,CAkBb,MAAa,QACb,MAAa,QACb,cACA,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,aACb,MAAa,aAGb,EAEA,SA5Ca,EA4CiB,KAE9B,aAGA,sBAA8B,gBAC9B,OAAa,IAEb,UAAa,CApDA,sLCCb,cACA,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,cACA,MAAa,QACb,MAAa,aACb,MAAa,aACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,cACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,QAAa,YACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,cACA,cACA,cACA,MAAa,QACb,MAAa,UACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,aACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,QAAa,YACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,OAAa,SACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QAGb,EAEA,SAAa,EAAiB,KAE9B,aAGA,sBAA8B,gBAC9B,OAAa,IAEb,EAAa,SACb,QAAa,QACb,QAAa,QAjFA,kICCb,aAGA,sBAA8B,gBAC9B,OAAa,IAEb,EAAa,QAAiB,CAC9B,GAAa,QACb,WAGA,EAEA,SAAa,EAAiB,KAE9B,aAGA,sBAA8B,gBAC9B,OAAa,IAEb,EAAa,QAAiB,CAC9B,WACA,GAAa,QACb,GAAa,QACb,WACA,GAAa,QACb,MAAa,QACb,cACA,WACA,WACA,MAAa,QACb,GAAa,QACb,MAAa,QACb,GAAa,QACb,MAAa,QACb,MAAa,QACb,GAAa,QACb,MAAa,QACb,WACA,WACA,OAAa,cACb,WACA,WACA,GAAa,QACb,GAAa,QACb,WACA,GAAa,QACb,GAAa,QACb,GAAa,QACb,GAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,MAAa,QACb,GAAa,QACb,GAAa,QACb,MAAa,QACb,GAAa,QACb,WACA,GAAa,QACb,GAAa,QACb,GAAa,QACb,WACA,MAAa,QACb,GAAa,QACb,GAAa,QACb,GAAa,QACb,WArEa,8FCEb,sBADa,gBAEb,OAAO,IAEP,EAAO,QAJM,CAKb,QAAO,YACP,MAAO,QACP,MAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,GAAO,QACP,MAAO,QACP,MAAO,QACP,OAAO,SACP,GAAO,QACP,MAAO,QACP,GAAO,QACP,MAAO,QACP,GAAO,QACP,cACA,WAtBa,uKCAb,MAAe,QACf,MAAe,QACf,qBACA,kBACA,QAAe,YACf,eACA,WACA,WACA,WACA,GAAe,QACf,WACA,WACA,aACA,WAda,uKCCb,GAAM,QACN,GAAM,QACN,GAAM,QACN,MAAO,QACP,GAAM,QACN,GAAM,QACN,MAAO,QACP,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,OAA0B,WAC1B,GAAM,QACN,GAAM,QACN,GAAM,QACN,MAAO,QACP,GAAM,QACN,GAAM,QACN,MAAO,QACP,GAAM,aACN,GAAM,aACN,MAvBa,aA0Bb,EAEA,SAA0B,OAE1B,aAGA,sBAA0B,gBAC1B,OAAO,IAEP,EAAM,QAAO,CACb,QAA0B,YAC1B,MAAO,QACP,MAAO,QACP,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,MAAO,QACP,MA9Ca,QA+Cb,GAAM,QACN,MAAO,QACP,GAAM,QACN,MAAO,QACP,GAAM,QACN,MApDa,QAqDb,GAAM,QACN,MAAO,QACP,MAAO,QACP,GAAM,QACN,MAAO,QACP,GAAM,QACN,MAAO,QACP,GAAM,QACN,GAAM,QACN,MAAO,QACP,GAAM,QACN,MAAO,QACP,OAAO,cACP,OAA0B,WAC1B,QAA0B,YAC1B,IAAO,WACP,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,UACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,MA5Ea,QA6Eb,MA7Ea,QA8Eb,MA9Ea,QA+Eb,MA/Ea,QAgFb,MAAO,QACP,GAAM,QACN,GAAM,QACN,MAnFa,QAoFb,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,MA1Fa,QA2Fb,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,OAA0B,WAC1B,GAAM,QACN,GAAM,QACN,GAAM,QACN,MApGa,QAqGb,GAAM,QACN,GAAM,QACN,GAAM,aACN,GAAM,aACN,MAAO,aAGP,EAEA,SAA0B,OAE1B,aAGA,sBAA0B,gBAC1B,OAAO,IAGP,EAAM,QAAO,CACb,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,QACN,UAAM,aACN,UAAM,aAGN,EAEA,SAA0B,OAE1B,aAGA,sBAA0B,gBAC1B,OAAO,IAEP,EAAM,QAAoB,CAC1B,GAAM,QACN,GAAM,QACN,UAA0B,YAC1B,YA9Ja,cA+Jb,SAAO,WACP,UAAM,YACN,SAAO,WACP,QAlKa,UAmKb,SAA0B,WAC1B,GAAM,aACN,SAAO,SACP,QAAO,aACP,QAAO,aACP,QAxKa,aA2Kb,EAEA,SAA0B,OAE1B,aAGA,sBAA0B,gBAC1B,OAAO,IAEP,EAAM,QAAoB,CAC1B,GAAM,GACN,GAAM,GACN,GAAM,GACN,GAAM,CAAC,KAAmB,WAC1B,GAAM,GACN,GAAM,CAAC,KA3LM,KA2La,MAC1B,GAAM,CAAC,MACP,GAAM,GACN,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,KAAmB,MAC1B,GAAM,GACN,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,KAAmB,MAC1B,GAAM,CAAC,MACP,GAAM,CAAC,KAvMM,MAwMb,GAAM,GACN,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,KAAmB,WAC1B,GAAM,GACN,GAAM,GACN,GAAM,CAAC,MACP,GAAM,GACN,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,GACN,GAAM,CAAC,MACP,GAAM,GACN,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,GACN,GAAM,CAAC,KAzNM,MA0Nb,GAAM,GACN,GAAM,CAAC,KAAmB,MAC1B,GAAM,CAAC,KAAmB,MAC1B,GAAM,GACN,GAAM,CAAC,MACP,GAAM,GACN,GAAM,GACN,GAAM,CAAC,MACP,GAAM,CAAC,WACP,GAAM,GACN,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,GACN,GAAM,CAAC,KAAM,MACb,GAAM,CAAC,KAxOM,MAyOb,GAAM,GACN,GAAM,CAAC,MACP,GAAM,CAAC,KA3OM,MA4Ob,GAAM,CAAC,KAAM,MACb,GAAM,GACN,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,GACN,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,MACP,GAAM,CAAC,KArPM,MAsPb,GAAM,CAAC,MAtPM,kGCkBf,wBAAY1J,CAAAA,gCAEZ,iCAIA,GAAM2J,CAAAA,MACJ,MADF,GAxBA,0SCkBA,6DAEA,GAAMC,CAAAA,KAAAA,KAAAA,yMACN,GAAMC,SAEN,0CAIA,GAAMC,CAAAA,MAA6D,GAAvCC,GAAuC,GAAtBC,aAC3C,GAAMC,CAAAA,KAAAA,MACN,GAAMzF,aAEN,GAAIA,CAAAA,MACF,GAAM0F,CAAAA,KAAAA,gBAEN,MAAmB,MACjBvT,GAAAA,CAAAA,MACAj1B,GAAAA,CAAAA,MAF4B,GAAX,eAAnB,OAID,YAED,IAAO8iC,MAbT,wEC3BA,eACA,gBAEA,UACA,MACA,MACA,gBAEA,UACA,YAEA,UACE,GAAF,GACA,MACA,MACE,GAAF,YACA,eACA,UACE,GAAF,GACE,GAAF,GACE,GAAF,OACE,GAAF,CAAS,MACP,GAAF,OACE,GAAF,GACE,GAAG,GACH,GAAF,OACE,GAAF,GACE,GAAF,iBACE,GAAF,OACE,GAAF,GACE,GAAF,CAAS,MACP,GAAF,GACE,GAAF,GACE,GAAG,OACH,GAAF,iBACE,GAAF,GACE,GAAD,YACD,eACE,GAAF,OACE,GAAF,OACE,GAAF,GACE,GAAF,GACE,GAAF,GACE,GAAF,GACE,GAAF,OACE,GAAF,iBACE,GAAF,OACE,GAAF,YACE,GAAF,OACE,GAAF,GACE,GAAG,OACH,GAAF,OACE,GAAF,YACE,GAAF,OACE,GAAF,CAAS,MACP,GAAF,GACE,GAAF,OACE,GAAF,YACE,GAAF,uBAGA,UACA,MACE,GAAF,GACE,GAAF,GACE,GAAF,YACE,GAAF,OACE,GAAF,OAGA,EAEA,gBAEA,aAGA,sCACE,OAAF,IAGA,IAEA,0JAFA,MA8BA,UApBA,YACA,+BAqBA,kBAIA,aAGA,sCACE,OAAF,IAGA,IAIA,EAFA,GAEA,EAJA,OAIA,2BA+CA,UArBA,YACA,iEACA,8DAEA,IAAqB,eACrB,mBAEA,2FAGA,0BACA,OACA,OACA,KArCA,OAqCA,EAnBA,SAmBA,WAEA,GACA,SAGA,CAIA,EAEA,cAGA,wJCpKA,CAUgE,iBAGhDkB,IAHgD,kCAO5DriC,IAAK,QAAqBqiC,IAArB,WAnCT,OAiCE,aAjCF,0HAmBA,4CACA,oBAEA,wDAMMyE,EAAyB,CAC7B,gBCJIC,GAAAA,EAEJ,GAAIxzB,EAEJ,SAAI,IACIotB,GAAM,IAGV,KACA,EAAMqD,OACN,EAAMgD,EAAQ,OAAehD,GAE7BzwB,GAAcuM,EAEf,UACF,IAED,iGAGainB,4CDNAD,gICtBf,mCAEA,q7CnEjBE93C,EAAOD,QAAUD,iCoEAnB,IAAIm4C,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sVACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,maCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,kaACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,8XCDnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,MAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,gBAE1BjG,EAAQ,EAAUw4C,gCCrBlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAE/P3D,EAAA,QAAkBy4C,EAElB,IAEIC,EAAe/1C,EAFD,EAAQ,QAMtB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAM9F,IAAIu3C,EAAQ,CACVC,IAAK,GACLC,GAAI,GACJ5wB,EAAG,GACHC,EAAG,GACHC,EAAG,GACH2wB,GAAI,GACJC,IAAK,IAGP,SAASN,EAAK5tC,GACZ,IAfuBzJ,EAAKgB,EAAKgC,EAe7B6S,EAAOpM,EAAKoM,KACZ+hC,EAAYnuC,EAAKkU,KACjBA,OAAqB7T,IAAd8tC,EAA0B,IAAMA,EACvCphC,EAAY/M,EAAK+M,UACjB5R,EAAW6E,EAAK7E,SAChBiZ,EAAMpU,EAAKoU,IACXg6B,EAnBN,SAAkC73C,EAAK8B,GAAQ,IAAIS,EAAS,CAAC,EAAG,IAAK,IAAIC,KAAKxC,EAAW8B,EAAKspC,QAAQ5oC,IAAM,GAAkB3B,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKwC,KAAcD,EAAOC,GAAKxC,EAAIwC,IAAM,OAAOD,CAAQ,CAmBxMu1C,CAAyBruC,EAAM,CAAC,OAAQ,OAAQ,YAAa,WAAY,QAEtFsuC,EAAUR,EAAM55B,GAChBq6B,EAAMniC,GAAQA,EAAKkiC,IAAYliC,GAAQjR,EAC3C,GAAmB,iBAARozC,EACT,MAAM,IAAI9qC,MAAM,uHAGlB,OAAOiqC,EAAQxhC,QAAQsiC,aAAaD,EAAKhB,EAAS,CAChDkB,UAAW,QACX,aAAcr6B,EACd,cAAeA,EAAM,KAAO,OAC5B0D,KAAM,MACN/K,WAAW,EAAI8gC,EAAa3hC,SAASqiC,EAAI50C,MAAMoT,UAAW,iBAlCrCxW,EAkCsE,CAAC,EAlClEgB,EAkCqE,sBAAwB2c,EAlCxF3a,EAkC8F2a,EAlCjF3c,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,GAkCnEwW,IACnIqhC,GACL,CAEAR,EAAKxyC,YAAc,qCCpDnB,IAEIqyC,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,KACAyyC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,oKAAqK,UAAa,0BAA4BpnB,EAAM+0C,gBAC/PhB,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,iKAAkK,UAAa,2BAA6BpnB,EAAM+0C,iBAGnQ,EACAf,EAAYvyC,YAAc,iBAE1BjG,EAAQ,EAAUw4C,gCCxBlB,IAEIF,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,KACAyyC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,mKAAoK,UAAa,0BAA4BpnB,EAAM+0C,gBAC9PhB,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,+JAAgK,UAAa,2BAA6BpnB,EAAM+0C,iBAGjQ,EACAf,EAAYvyC,YAAc,eAE1BjG,EAAQ,EAAUw4C,gCC5BlB,IAEgCp3C,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAU,CACfy5C,UAAWD,EAAYziC,QAAQunB,OAAO,aAAa,IAAM,EAAQ,SAAmB,IAAM,EAAQ,SAClGob,cAAeF,EAAYziC,QAAQunB,OAAO,iBAAiB,IAAM,EAAQ,SAA0B,IAAM,EAAQ,wCCtBnHr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAYI25C,EAAQC,EAASC,EAZjBC,EAAcn3C,EAAuB,EAAQ,QAE7Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDs3C,EAAgBt3C,EAAuB,EAAQ,QAE/CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAa1T,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,MACT,EAAQ,OAM3J,IAAI41C,GAAY,EAAIM,EAAqBhjC,UAAmB8iC,EAAQD,EAAU,cAAwBn4C,EAAOqnB,UAC3G,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN,MAAM,cACJ21C,EAAa,qBACbC,GACE51C,EACE61C,OAAyCnvC,IAAlBivC,EAA8BA,EAAgBC,EAC3EjyC,KAAKmyC,MAAQ,CACXH,cAAehyC,KAAKoyC,uBAAuBF,GAE/C,CAEA,gCAAAG,CAAiCC,GAC3B,kBAAmBA,GACrBtyC,KAAKuyC,SAAS,CACZP,cAAehyC,KAAKoyC,uBAAuBE,EAAUN,gBAG3D,CAEA,WAAAQ,CAAYn0B,GACV,IAAI2zB,EAAgBhyC,KAAKmyC,MAAMH,cAE/B,GAAIhyC,KAAK3D,MAAMo2C,gBAAiB,CAC9BT,EAAgB,IAAIA,GACpB,MAAMv2C,EAAIu2C,EAAc3N,QAAQhmB,IACR,IAAP5iB,EAGfu2C,EAAcU,OAAOj3C,EAAG,GAExBu2C,EAAc32C,KAAKgjB,EAEvB,MACE2zB,EAAgBA,EAAc,KAAO3zB,EAAQ,GAAK,CAACA,GAGrDre,KAAK2yC,eAAeX,EACtB,CAEA,cAAAW,CAAeX,GAGP,kBAAmBhyC,KAAK3D,OAC5B2D,KAAKuyC,SAAS,CACZP,kBAIJ,IAAIY,EAA2BZ,EAE1BhyC,KAAK3D,MAAMo2C,kBACdG,EAA2BZ,EAAcr2C,OAASq2C,EAAc,GAAK,MAGvEhyC,KAAK3D,MAAMoV,SAASmhC,EACtB,CAEA,QAAAC,GACE,MAAMb,EAAgBhyC,KAAKmyC,MAAMH,eAC3B,gBACJS,EAAe,UACfK,EAAS,SACTj1C,GACEmC,KAAK3D,MACT,OAAO/C,EAAOsV,QAAQmkC,SAASxgC,IAAI1U,GAAU,CAAC2U,EAAO6L,KACnD,IAAmB/kB,EAAOsV,QAAQokC,eAAexgC,GAC/C,OAAO,KAGT,MACMnW,EAAQ,CACZ8T,SAFesiC,GAAoD,IAAlCT,EAAc3N,QAAQhmB,GAAgB2zB,EAAc,KAAO3zB,EAG5Fy0B,UAAWA,EACXG,SAAUzgC,EAAMnW,MAAM42C,SAAWzgC,EAAMnW,MAAM42C,SAAWjzC,KAAK3D,MAAM42C,SACnEC,YAAalzC,KAAKwyC,YAAYryC,KAAKH,KAAMqe,IAE3C,OAAoB/kB,EAAOsV,QAAQsiC,aAAa1+B,EAAOnW,EAAM,GAEjE,CAEA,sBAAA+1C,CAAuBJ,GAKrB,OAJK9sC,MAAMwgC,QAAQsM,KACjBA,OAAkCjvC,IAAlBivC,EAA8B,CAACA,GAAiB,IAG3DA,EAAcz/B,KAAI8L,GAASrT,SAASqT,EAAO,KACpD,CAEA,MAAArP,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,UACJoT,GACE0jC,EACErC,EAtHV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAsHpdu1C,CAAyBoC,EAAa,CAAC,cAQ1D,cAHOrC,EAAWr/B,gBAEXq/B,EAAWmC,SACE35C,EAAOsV,QAAQjR,cAAcm0C,EAAcljC,QAAS,CACtE6kC,aA7GiC,gHA8GjCC,gBAAgB,GACFp6C,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAAC,GAAG,EAAI4B,EAAgBjjC,SAASkiC,GAAa,CACzGrhC,WAAW,EAAIkiC,EAAY/iC,SAAS,qBAAsBa,GAC1D+K,KAAM,WACJxa,KAAK6yC,YACX,GAECpB,EAAQzzC,UAAY,CAOrBg0C,cAAez3C,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQtQ,OAAQ/D,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQtQ,YAM1M2zC,qBAAsB13C,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQtQ,OAAQ/D,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQtQ,YAKjNm0C,gBAAiBl4C,EAAWqU,QAAQ3Q,KAMpCwT,SAAUlX,EAAWqU,QAAQjQ,KAK7Bm0C,UAAWv4C,EAAWqU,QAAQtQ,QAC7BmzC,EAAQ1zC,aAAe,CACxB,QAAA0T,GAAY,EAEZghC,iBAAiB,EACjBK,UAAW,GAlJqCtB,EAmJ/CE,KAAWF,EAEd35C,EAAA,QAAkBy5C,gCCvMlBx3C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAgBI25C,EAAQC,EAASC,EAhBjBmC,EAAsBr5C,EAAuB,EAAQ,QAErDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDs5C,EAAYt5C,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDu5C,EAAav5C,EAAuB,EAAQ,QAE5CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAI61C,GAIJ,EAAIK,EAAqBhjC,SAAS4iC,GAAS,EAAIuC,EAAWnlC,UAAmB8iC,EAAQD,EAAU,cAA4Bn4C,EAAOqnB,UAChI,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKg0C,UAAW,EAAIF,EAAUllC,WAC9B5O,KAAKi0C,WAAY,EAAIH,EAAUllC,UACjC,CAEA,MAAAI,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,EAAS,YACTyjC,EAAW,OACX56B,EAAM,SACNnI,EAAQ,SACR5T,EAAQ,UACRu2C,GACEK,EACErC,EA1BV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA0Bpdu1C,CAAyBoC,EAAa,CAAC,WAAY,YAAa,cAAe,SAAU,WAAY,WAAY,cAEpI,OAAoB75C,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAAC,GAAG,EAAI4B,EAAgBjjC,SAASkiC,GAAa,CAC7GrhC,WAAW,EAAIkiC,EAAY/iC,SAAS,0BAA2B,gCAAiC,CAC9F,UAAWuB,EACX,cAAe5T,GACdkT,GACH+K,KAAM,iBACSlhB,EAAOsV,QAAQjR,cAAc,KAAM,CAClD8R,UAAW,iCACX,aAAcqjC,GACAx5C,EAAOsV,QAAQjR,cAAc,SAAU,CACrD5E,GAAIiH,KAAKg0C,SACTvkC,UAAW,gCACX,gBAAiBzP,KAAKi0C,UACtB,gBAAiB9jC,EACjB5T,SAAUA,EACVwS,KAAM,SAGNkkC,SAAW12C,EAAe,KAAJ,EACtB23C,QAAU33C,EAAyB,KAAd22C,GACpB56B,GAAsBhf,EAAOsV,QAAQjR,cAAck2C,EAAoBjlC,QAAS,CACjF4L,KAAM,eACN5D,KAAM,KACNnH,UAAW,sCACKnW,EAAOsV,QAAQjR,cAAc,MAAO,CACpD5E,GAAIiH,KAAKi0C,UACTz5B,KAAM,SACN,kBAAmBxa,KAAKg0C,SACxB,eAAgB7jC,EAChB,gBAAiBA,EACjBV,UAAW,kCACVU,EAAWtS,EAAW,MAC3B,GAEC4zC,EAAQzzC,UAAY,CAIrBsa,OAAQ/d,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQrQ,OAKpF4R,SAAU5V,EAAWqU,QAAQ3Q,KAK7B1B,SAAUhC,EAAWqU,QAAQ3Q,KAO7B60C,UAAWv4C,EAAWqU,QAAQtQ,OAK9B40C,YAAa34C,EAAWqU,QAAQjQ,MAC/B8yC,EAAQ1zC,aAAe,CACxBua,OAAQ,GACRnI,UAAU,EACV5T,UAAU,EAEV,WAAA22C,GAAe,GAtFkD1B,EAwFhEE,KAAWF,IAAWA,EAEzB35C,EAAA,QAAkB05C,gCCjIlBz3C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAcI25C,EAdA2C,EAAiB35C,EAAuB,EAAQ,QAEhD45C,EAAqB55C,EAAuB,EAAQ,QAEpDq5C,EAAsBr5C,EAAuB,EAAQ,QAErDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDu5C,EAAav5C,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAI5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAI24C,GAIJ,EAAIN,EAAWnlC,SAAS4iC,EAAS,cAA+B2C,EAAevlC,QAC7E,WAAAxV,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKs0C,cAAgBhxC,IAChC,MAAdA,EAAMrJ,KAA6B,UAAdqJ,EAAMrJ,KAC7B+F,KAAK3D,MAAM62C,aACb,EACCxB,CACL,CAEA,MAAA1iC,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,EAAS,YACTyjC,EAAW,OACX56B,EAAM,SACNnI,EAAQ,SACR5T,EAAQ,UACRu2C,EAAS,SACTG,GACEE,EACErC,EA/BV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA+Bpdu1C,CAAyBoC,EAAa,CAAC,WAAY,YAAa,cAAe,SAAU,WAAY,WAAY,YAAa,aAEjJ,OAAoB75C,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAAC,GAAG,EAAI4B,EAAgBjjC,SAASkiC,GAAa,CAC7GrhC,WAAW,EAAIkiC,EAAY/iC,SAAS,0BAA2B,gCAAiC,CAC9F,UAAWuB,EACX,cAAe5T,GACdkT,GACH+K,KAAM,iBACSlhB,EAAOsV,QAAQjR,cAAc,KAAM,CAClD8R,UAAW,iCACX,aAAcqjC,GACAx5C,EAAOsV,QAAQjR,cAAc,OAAQ,CACnD5E,GAAIiH,KAAKg0C,SACTvkC,UAAW,gCACX,gBAAiBzP,KAAKi0C,UACtB,gBAAiB9jC,EACjB5T,SAAUA,EACVwS,KAAM,SAGNkkC,SAAW12C,EAAqC,KAA1B02C,GAAsB,EAG5CsB,UAAYh4C,OAAgCwG,EAArB/C,KAAKs0C,cAC5BJ,QAAU33C,EAAyB,KAAd22C,GACpB56B,GAASnI,EAAwB7W,EAAOsV,QAAQjR,cAAcy2C,EAAmBxlC,QAAS,CAC3F4L,KAAM,eACN5D,KAAM,KACNnH,UAAW,qCACKnW,EAAOsV,QAAQjR,cAAck2C,EAAoBjlC,QAAS,CAC1E4L,KAAM,eACN5D,KAAM,KACNnH,UAAW,sCACKnW,EAAOsV,QAAQjR,cAAc,MAAO,CACpD5E,GAAIiH,KAAKi0C,UACTz5B,KAAM,SACN,kBAAmBxa,KAAKg0C,SACxB,eAAgB7jC,EAChB,gBAAiBA,EACjBV,UAAW,kCACVU,EAAWtS,EAAW,MAC3B,KAEI2zC,EAEN35C,EAAA,QAAkBw8C,gCCrGlB,IAEgCp7C,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,UAAU,IAAM,EAAQ,OAAmB,IAAM,EAAQ,SAAgB,IAAM,EAAQ,sCCpBnIr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAoBI25C,EAAQC,EAAS+C,EApBjBC,EAAU,EAAQ,MAElB9C,EAAcn3C,EAAuB,EAAQ,QAE7Ck6C,EAAQ,EAAQ,OAEhB9C,EAAuBp3C,EAAuB,EAAQ,QAEtDm6C,EAAkBn6C,EAAuB,EAAQ,OAEjDq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDu5C,EAAaz5C,EAAwB,EAAQ,QAE7CC,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASgB,EAAwB,EAAQ,QAM7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAEzL,SAASc,EAAwBrB,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAEtuB,SAASY,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAV5T,EAAQ,OAuBN,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAE3J,MAAMk5C,EAAW,CACfhlC,MAAO,CACLC,QAAS,UACTD,OAAO,GAETilC,QAAS,CACPhlC,QAAS,YACTD,OAAO,GAETd,KAAM,CACJe,QAAS,SACTD,OAAO,IASX,IAAIklC,GAAS,EAAIlD,EAAqBhjC,SAAS4iC,GAAS,EAAIuC,EAAWnlC,UAAmB4lC,EAAS/C,EAAU,cAAqBn4C,EAAOqnB,UACvI,WAAAvnB,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKk0C,QAAU,CAAC5wC,KAAU8M,KAGnDpQ,KAAK3D,MAAME,SAGb+G,EAAMyxC,iBACG/0C,KAAK3D,MAAM63C,SACpBl0C,KAAK3D,MAAM63C,QAAQ5wC,KAAU8M,EAC/B,EACCpQ,KAAKg1C,eAAiB1xC,IACL,MAAdA,EAAMrJ,KAA6B,UAAdqJ,EAAMrJ,MAC7BqJ,EAAMyxC,iBACN/0C,KAAKi1C,UAAUC,QACjB,EACCl1C,KAAKm1C,aAAevvC,GAAK5F,KAAKi1C,UAAYrvC,EAAG8rC,CAClD,CAEA,iBAAA0D,GACMp1C,KAAK3D,MAAMmT,WAEb6lC,uBAAsB,IAAMr1C,KAAKs1C,SAErC,CAMA,KAAAA,GACMt1C,KAAKi1C,YAAcj1C,KAAK3D,MAAME,UAAYyD,KAAKi1C,UAAUK,OAC3Dt1C,KAAKi1C,UAAUK,OAEnB,CAEA,MAAAtmC,GACE,IAAImkC,EAAcnzC,KAAK3D,OAErB+lB,QAASmzB,EAAU,SAAQ,MAC3BxlC,EAAK,SACLlS,EAAQ,QACRgS,EAAU,YAAW,MACrB2lC,EAAK,MACL5lC,EAAK,KACLd,EAAI,SACJqB,EAAQ,MACRslC,EAAK,UACLhmC,EAAS,SACTlT,EAAQ,QACRsW,EAAO,YACP6iC,EAAW,UACXC,EAAS,UACTnmC,EAAS,eACTE,GACEyjC,EACArC,EAlGR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAkGtdu1C,CAAyBoC,EAAa,CAAC,UAAW,QAAS,WAAY,UAAW,QAAS,QAAS,OAAQ,WAAY,QAAS,YAAa,WAAY,UAAW,cAAe,YAAa,YAAa,mBAG/N,GAAIyB,EAAS/kC,GAAU,CACrB,IAAI+lC,EAAgBhB,EAAS/kC,GACzBgmC,GAAeD,EAAchmC,MAAQ,SAAW,IAAM,IAAIgmC,EAAc/lC,WAC5EnT,QAAQkvC,KAAK,QAAQ/7B,sDAA4DgmC,wBAE/EhmC,UACAD,SACEgmC,EACN,CAEA,IAAIE,GAA6B,EAE7BC,EAAkB,kBAEN,WAAZlmC,GAAoC,WAAZA,GAC1BkmC,EAAkB,wBAClBD,EAA6BpmC,EAEb,WAAZG,IACFD,GAAQ,GAGVC,EAAU,IACD2lC,EACTO,EAAkB,uBACG,UAAZlmC,GACTkmC,EAAkB,uBAClBlmC,EAAU,IACW,UAAZA,GACTkmC,EAAkB,uBAClBlmC,EAAU,IACW,SAAZA,IACTkmC,EAAkB,gBAElBD,EAA6BpmC,EAC7BG,EAAU,IAGI,WAAZ0lC,IACFzE,EAAWt2B,KAAO,SAClBs2B,EAAWmC,SAAW12C,EAAW,KAAOu0C,EAAWmC,UAAY,EAC/DnC,EAAW,iBAAmBv0C,GAAY,KAE1B,MAAZg5C,GAAmBh5C,GAAYu0C,EAAWkF,OAC5ClF,EAAWkF,KAAO,MAGpBlF,EAAWyD,UAAYh4C,EAAW,KAAOyD,KAAKg1C,gBAGhD,IAAI7hC,EAAgBpD,IAA8B,iBAAblS,EAAwBA,EAAW,MACpEo4C,EAAe,UAEiBlzC,IAAhC+tC,EAAW,iBACbmF,EAAenF,EAAW,iBACjBA,EAAW,mBACpBmF,EAAe9lC,GAAY,MAG7B,MAAM+lC,EAAmC,iBAAZX,GAAuB,EAAI1D,EAAgBjjC,SAASkiC,GAAcA,EAC/F,OAAoBx3C,EAAOsV,QAAQjR,cAAc43C,EAAStF,EAAS,CAAC,EAAGiG,EAAe,CACpFzmC,WAAW,EAAIkiC,EAAY/iC,SAASmnC,EAAiBnmC,EAAQ,GAAGmmC,WAA2B,GAAIlmC,EAAU,GAAGkmC,MAAoBlmC,IAAY,GAAI,CAC9I,cAAeM,EACf,cAAe5T,EACf,aAAcsW,EACd,yBAA0B4iC,EAC1B,CAAC1B,EAAWoC,sBAAuB3mC,GAClCC,GACHlT,SAAUA,EACV,eAAgBsW,GAAW,KAC3B,gBAAiBojC,EACjB/B,QAASl0C,KAAKk0C,QACdwB,aAAa,EAAIjB,EAAQ2B,OAAOp2C,KAAK01C,YAAajB,EAAQ4B,qBAAqBl2C,KAAKH,KAAM01C,IAC1FC,WAAW,EAAIlB,EAAQ2B,OAAOp2C,KAAK21C,UAAWlB,EAAQ4B,qBAAqBl2C,KAAKH,KAAM21C,IACtF14C,IAAK+C,KAAKm1C,gBACR,EAAIT,EAAM4B,WAAWxnC,EAAM,CAC7B8H,KAAM,MACJzD,GAA8B7Z,EAAOsV,QAAQjR,cAAc,OAAQ,CACrE8R,UAAWsmC,EAAkB,UAC5B5iC,GAAgB2iC,GAA2Cx8C,EAAOsV,QAAQjR,cAAcg3C,EAAgB/lC,QAAS,CAClH4L,KAAM,eACN5D,KAAM,KACNnH,UAAW,uBACW,iBAAb5R,GAAyBA,EACtC,GAEC4zC,EAAQzzC,UAAY,CAIrB6R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,MAAO,UAAW,YAAa,UAAW,SAAU,SAAU,MAAO,KAAM,OAAQ,QAAS,UAAW,WAAY,QAAS,QAAS,OAAQ,mBAKhL3mC,MAAOrV,EAAWqU,QAAQ3Q,KAK1Bu3C,MAAOj7C,EAAWqU,QAAQ3Q,KAK1B1B,SAAUhC,EAAWqU,QAAQ3Q,KAK7BkS,SAAU5V,EAAWqU,QAAQ3Q,KAK7B4U,QAAStY,EAAWqU,QAAQ3Q,KAK5B6Q,KAAMvU,EAAWqU,QAAQwT,QAKzBrS,MAAOxV,EAAWqU,QAAQ1Q,OAK1Bu3C,MAAOl7C,EAAWqU,QAAQ3Q,KAK1BmkB,QAAS7nB,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQjQ,OAKrF6Q,UAAWjV,EAAWqU,QAAQ3Q,KAK9Bi2C,QAAS35C,EAAWqU,QAAQjQ,KAK5B+Q,eAAgBnV,EAAWqU,QAAQ3Q,MAClCwzC,EAAQ1zC,aAAe,CACxByR,WAAW,EACXimC,OAAO,EACPl5C,UAAU,EACV6lB,QAAS,SACTvP,SAAS,EACT9C,MAAO,GACPylC,OAAO,EACP5lC,OAAO,EACPO,UAAU,EACVN,QAAS,YACTH,gBAAgB,GAhO8D8hC,EAiO7EgD,KAAYhD,IAAWA,EAE1B35C,EAAA,QAAkBi9C,+BC7SlBh7C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAYI25C,EAAQC,EAASC,EAZjB8E,EAAgB,EAAQ,OAExBC,EAAqBj8C,EAAuB,EAAQ,QAEpDk8C,EAAUl8C,EAAuB,EAAQ,QAEzCk6C,EAAQ,EAAQ,OAEhBp7C,EAASkB,EAAuB,EAAQ,QAExCm8C,EAAan8C,EAAuB,EAAQ,MAIhD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,MAAMk5C,EAAW,CACfhlC,MAAO,CACLC,QAAS,UACTD,OAAO,GAETilC,QAAS,CACPhlC,QAAS,YACTD,OAAO,GAETd,KAAM,CACJe,QAAS,SACTD,OAAO,IAGLgnC,EAAa,CACjBC,OAAQ,mBACRC,OAAQ,mBACRC,QAAS,YACTC,UAAW,YACXC,IAAK,YACLC,QAAS,YACTC,eAAgB,aAGlB,IAAIC,GAAc,EAAIX,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAA0BiF,EAAQ9nC,QAC9G,WAAAxV,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKq3C,YAA2B/9C,EAAOsV,QAAQ0oC,WACjD,CAEA,WAAAC,CAAYj0C,GACV,MAAMk0C,EAAY19C,OAAOiB,KAAKiF,KAAK3D,OAAOnB,QAAOu8C,GAAYA,EAASlzC,OAAO,GAAG0nB,gBAAkB3oB,EAAMyL,OAEpG/O,KAAK3D,MAAMm7C,IACbx3C,KAAK3D,MAAMm7C,GAAWr9C,KAAKmJ,EAAM9H,OAAQ8H,EAE7C,CAEA,iBAAA8xC,IACE,EAAIoB,EAAckB,sBAAsB13C,KAAKq3C,YAAYvlC,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACrF,CAEA,oBAAAI,IACE,EAAInB,EAAcoB,sBAAsB53C,KAAKq3C,YAAYvlC,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACrF,CAEA,kBAAAM,CAAmBC,GACjB93C,KAAK+3C,0BAA2B,EAAIvB,EAAcwB,sBAAsBh4C,KAAKq3C,YAAYvlC,QAASgmC,EAAW93C,KAAK3D,MAAO2D,KAAKu3C,YAAav3C,KAAK+3C,wBAClJ,CAMA,KAAAzC,GACE,MAAM2C,EAAcj4C,KAAKq3C,YAAYvlC,QAEjCmmC,GACFA,EAAY3C,OAEhB,CAEA,MAAAtmC,GACE,IAAImkC,EAAcnzC,KAAK3D,OACnB,MACF0T,EAAK,SACLlS,EAAQ,QACRgS,EAAU,YAAW,MACrB2lC,EAAK,MACL5lC,EAAK,KACLd,EAAI,SACJqB,EAAQ,MACRslC,EAAK,UACLhmC,EAAS,SACTlT,EAAQ,QACRsW,EAAO,aACP5C,GAAe,EAAI,UACnBT,EAAS,eACTE,EAAc,eACdwoC,GAAiB,GACf/E,EACArC,EArFR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAqFtdu1C,CAAyBoC,EAAa,CAAC,QAAS,WAAY,UAAW,QAAS,QAAS,OAAQ,WAAY,QAAS,YAAa,WAAY,UAAW,eAAgB,YAAa,iBAAkB,mBAG1N,GAAIyB,EAAS/kC,GAAU,CACrB,IAAI+lC,EAAgBhB,EAAS/kC,GACzBgmC,GAAeD,EAAchmC,MAAQ,SAAW,IAAM,IAAIgmC,EAAc/lC,WAC5EnT,QAAQkvC,KAAK,QAAQ/7B,sDAA4DgmC,wBAE/EhmC,UACAD,SACEgmC,EACN,CAEA,IAAIuC,GAAuB,EACvBC,EAAY,aAEZxB,EAAW/mC,IAAa2lC,GAAUC,GAAU5iC,GAAYqlC,IAC1DC,GAAuB,EACvBC,EAAYxB,EAAW/mC,IAGzB,MAEMwoC,GAAyBpoC,GAFTnB,SACUjR,GAAgC,iBAAbA,EAE7Cy6C,EAA0BH,GAAwBE,EAExD,IAAKF,GAAwBE,EAC3B,OAAOtG,MAAM/iC,SAGf,IAAImE,EAAgBpD,IAA8B,iBAAblS,EAAwBA,EAAW,MAExE,OAAIy6C,EACkBh/C,EAAOsV,QAAQjR,cAAcy6C,EAAWnI,EAAS,CACnEhzC,IAAK+C,KAAKq3C,YACV5mC,MAAOhB,EACPlT,WAAUA,GAAkB,KAC5BqT,QAAOA,GAAe,KACtBO,WAAUA,GAAkB,KAC5B,oBAAmBT,GAAwB,KAC3CG,QAASA,EACTS,YAAWd,GAAmB,OAC7B,EAAIgnC,EAAc+B,kBAAkBzH,IAAchiC,GAAqBxV,EAAOsV,QAAQjR,cAAc,MAAO,CAC5GsR,KAAM,QACL,KAAK,EAAIylC,EAAM4B,WAAWxnC,EAAM,CACjC8H,KAAM,OACHzD,EAAmC,iBAAbtV,GAAyBA,GAGlCvE,EAAOsV,QAAQjR,cAAcg5C,EAAW/nC,QAAS5O,KAAK3D,MAC5E,GAECo1C,EAAQ1zC,aAAe,CACxByR,WAAW,EACXimC,OAAO,EACPl5C,UAAU,EACV6lB,QAAS,OACTvP,SAAS,EACT9C,MAAO,GACPylC,OAAO,EACP5lC,OAAO,EACPO,UAAU,EACVN,QAAS,YACTH,gBAAgB,GAxHgC8hC,EAyH/CE,KAAWF,EAEd35C,EAAA,QAAkBu/C,8BC9KlBt9C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI6+C,EAAUl8C,EAAuB,EAAQ,QAEzCm3C,EAAcn3C,EAAuB,EAAQ,QAE7Ck6C,EAAQ,EAAQ,OAEhBC,EAAkBn6C,EAAuB,EAAQ,OAEjDq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDu5C,EAAa,EAAQ,OAErBz6C,EAASkB,EAAuB,EAAQ,QAI5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAJ5T,EAAQ,OAUR,MAAMk5C,EAAW,CACfhlC,MAAO,CACLC,QAAS,UACTD,OAAO,GAETilC,QAAS,CACPhlC,QAAS,YACTD,OAAO,GAETd,KAAM,CACJe,QAAS,SACTD,OAAO,IAIX,MAAM4oC,UAAkB9B,EAAQ9nC,QAC9B,WAAAxV,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKg1C,eAAiB1xC,IACnD,GAAItD,KAAK3D,MAAMo8C,mBAAqBz4C,KAAK04C,aACvC,OAAO14C,KAAK04C,aAAap1C,GAGT,MAAdA,EAAMrJ,KAA6B,UAAdqJ,EAAMrJ,MAC7BqJ,EAAMyxC,iBACN/0C,KAAKi1C,UAAUC,QACjB,EACCxD,CACL,CAEA,MAAA1iC,GACE,IAAImkC,EAAcnzC,KAAK3D,OAErB+lB,QAASmzB,EAAU,SAAQ,MAC3BxlC,EAAK,SACLlS,EAAQ,QACRgS,EAAU,YAAW,MACrB2lC,EAAK,MACL5lC,EAAK,KACLd,EAAI,SACJqB,EAAQ,MACRslC,EAAK,UACLhmC,EAAS,SACTlT,EAAQ,QACRsW,EAAO,aACP5C,GAAe,EAAI,YACnBylC,EAAW,UACXC,EAAS,cACTgD,EAAa,YACbC,EAAW,UACXppC,EAAS,eACTE,GACEyjC,EACArC,EA1DR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA0Dtdu1C,CAAyBoC,EAAa,CAAC,UAAW,QAAS,WAAY,UAAW,QAAS,QAAS,OAAQ,WAAY,QAAS,YAAa,WAAY,UAAW,eAAgB,cAAe,YAAa,gBAAiB,cAAe,YAAa,mBAI/Q,GAFAnzC,KAAK04C,aAAe14C,KAAK3D,MAAMk4C,UAE3BzlC,QACF,OAAOijC,MAAM/iC,SAGf,GAAInR,GAAgC,iBAAbA,IAA0BoS,EAC/C,OAAO8hC,MAAM/iC,SAGC,SAAZumC,IACFA,EAAU,UAGZ,MAAMsD,EAAuB,WAAZtD,EAEjB,GAAIX,EAAS/kC,GAAU,CACrB,IAAI+lC,EAAgBhB,EAAS/kC,GACzBgmC,GAAeD,EAAchmC,MAAQ,SAAW,IAAM,IAAIgmC,EAAc/lC,WAC5EnT,QAAQkvC,KAAK,QAAQ/7B,sDAA4DgmC,wBAE/EhmC,UACAD,SACEgmC,EACN,CAEA,IAAIE,GAA6B,EAE7BC,EAAkB,kBAEN,WAAZlmC,GAAoC,WAAZA,GAC1BkmC,EAAkB,wBAClBD,EAA6BpmC,EAEb,WAAZG,IACFD,GAAQ,GAGVC,EAAU,IACD2lC,EACTO,EAAkB,uBACG,UAAZlmC,GACTkmC,EAAkB,uBAClBlmC,EAAU,IACW,UAAZA,GACTkmC,EAAkB,uBAClBlmC,EAAU,IACW,SAAZA,IACTkmC,EAAkB,gBAElBD,EAA6BpmC,EAC7BG,EAAU,IAGPgpC,IACH/H,EAAWt2B,KAAO,SAClBs2B,EAAWmC,SAAW12C,EAAW,KAAOu0C,EAAWmC,UAAY,EAC/DnC,EAAW,iBAAmBv0C,GAAY,KAE1B,MAAZg5C,GAAmBh5C,GAAYu0C,EAAWkF,OAC5ClF,EAAWkF,KAAO,MAGpBlF,EAAWyD,UAAYh4C,EAAW,KAAOyD,KAAKg1C,gBAGhD,IAAI7hC,EAAgBpD,IAA8B,iBAAblS,EAAwBA,EAAW,MACpEo4C,EAAe,UAEiBlzC,IAAhC+tC,EAAW,iBACbmF,EAAenF,EAAW,iBACjBA,EAAW,mBACpBmF,EAAe9lC,GAAY,MAG7B,MAAM+lC,EAAmC,iBAAZX,GAAuB,EAAI1D,EAAgBjjC,SAASkiC,GAAcA,EACzFgI,EAAc3oC,IAAsB,EAE1C,OAAoB7W,EAAOsV,QAAQjR,cAAc43C,EAAStF,EAAS,CAAC,EAAGiG,EAAe,CACpF,cAAel2C,KAAK3D,MAAMwT,QAC1B,YAAaD,EAAMhM,WACnB,eAAgBk1C,EAAYl1C,WAC5B6L,WAAW,EAAIkiC,EAAY/iC,SAASmnC,GAAkB8C,GAAYjpC,EAAQ,GAAGmmC,WAA2B,IAAK8C,GAAYhpC,EAAU,GAAGkmC,MAAoBlmC,IAAY,GAAI,CACxK,eAAgBgpC,GAAY1oC,EAC5B,eAAgB0oC,GAAYt8C,EAC5B,aAAcsW,EACd,yBAA0B4iC,EAC1B,CAAC1B,EAAWoC,sBAAuB3mC,GAClCC,GACHlT,SAAUA,EACV,eAAgBsW,GAAW,KAC3B,gBAAiBojC,EACjB/B,QAASl0C,KAAKk0C,QACdyE,cAAejD,GAAeiD,EAC9BC,YAAajD,GAAaiD,EAC1B37C,IAAK+C,KAAKm1C,gBACR,EAAIT,EAAM4B,WAAWxnC,EAAM,CAC7B8H,KAAM,MACJzD,GAA8B7Z,EAAOsV,QAAQjR,cAAc,OAAQ,CACrE8R,UAAWsmC,EAAkB,UAC5B5iC,GAAgB2iC,GAA2Cx8C,EAAOsV,QAAQjR,cAAcg3C,EAAgB/lC,QAAS,CAClH4L,KAAM,eACN5D,KAAM,KACNnH,UAAW,uBACW,iBAAb5R,GAAyBA,EACtC,EAIFhG,EAAA,QAAkB2gD,EAClBA,EAAUz6C,aAAe,CACvByR,WAAW,EACXimC,OAAO,EACPl5C,UAAU,EACV6lB,QAAS,OACTvP,SAAS,EACT9C,MAAO,GACPylC,OAAO,EACP5lC,OAAO,EACPO,UAAU,EACVN,QAAS,YACTH,gBAAgB,gCC9LlB5X,EAAOD,QAAU,EAAjB,qCChBAiC,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAYI25C,EAAQC,EAASC,EAZjBC,EAAcn3C,EAAuB,EAAQ,QAE7Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDs3C,EAAgBt3C,EAAuB,EAAQ,QAE/CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAa1T,EAAQ,OAGV,MAAMq9C,EAA4B,kEAC5BC,EAAqCD,EAA4B,kCACjEE,EAA0B,CAC9BC,MAAM,EACNrC,QAAQ,EACRC,QAAQ,GAGV,IAAIqC,GAAc,EAAIvH,EAAqBhjC,UAAmB8iC,EAAQD,EAAU,cAA0Bn4C,EAAOqnB,UAC/G,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKmyC,MAAQ,CACXl2C,MAAOI,EAAMJ,MAEjB,CAEA,gCAAAo2C,CAAiCh2C,GAC3BA,EAAMJ,OAASI,EAAMJ,QAAU+D,KAAKmyC,MAAMl2C,OAC5C+D,KAAKuyC,SAAS,CACZt2C,MAAOI,EAAMJ,OAGnB,CAEA,YAAAm9C,CAAaC,GACX,MAAO,IAAKr5C,KAAKmyC,MAAMl2C,OAAS,GAAKo9C,EAAOp9C,MAC9C,CAEA,eAAAq9C,CAAgBD,GACd,IAAIp9C,EAAQ+D,KAAKmyC,MAAMl2C,OAAS,GAChC,MAAMoiB,EAAQpiB,EAAMooC,QAAQgV,EAAOp9C,OACnC,MAAO,IAAIA,EAAM8P,MAAM,EAAGsS,MAAWpiB,EAAM8P,MAAMsS,EAAQ,EAAGpiB,EAAMN,QACpE,CAEA,YAAA8X,CAAa4lC,EAAQ93B,GACnB,IAAKvhB,KAAK3D,MAAMyiB,WAAau6B,EAAOv6B,SAAU,CAC5C,IAAIy6B,EAIAA,EAFAv5C,KAAK3D,MAAMmV,SACTxR,KAAKw5C,WAAWH,GACJr5C,KAAKs5C,gBAAgBD,GAErBr5C,KAAKo5C,aAAaC,GAGpBA,EAAOp9C,MAIjB,UAAW+D,KAAK3D,OACpB2D,KAAKuyC,SAAS,CACZt2C,MAAOs9C,IAIPv5C,KAAK3D,MAAMoV,UACbzR,KAAK3D,MAAMoV,SAAS8nC,EAAah4B,EAErC,CAGI83B,EAAOnF,SACTmF,EAAOnF,QAAQ3yB,GAIbvhB,KAAK3D,MAAM63C,SACbl0C,KAAK3D,MAAM63C,QAAQmF,EAAOp9C,MAAOslB,EAErC,CASA,UAAAi4B,CAAWH,GACT,OAAIr5C,KAAK3D,MAAMyiB,SACN,KAGF9e,KAAK3D,MAAMmV,SAAWxR,KAAKmyC,MAAMl2C,OAAS+D,KAAKmyC,MAAMl2C,MAAMooC,QAAQgV,EAAOp9C,QAAU,EAAI+D,KAAKmyC,MAAMl2C,QAAUo9C,EAAOp9C,KAC7H,CAUA,YAAAw9C,GACE,OAAIz5C,KAAK3D,MAAMyiB,SACN,KAGF9e,KAAK3D,MAAMmV,SAAW,WAAa,OAC5C,CAEA,aAAAkoC,CAAcL,EAAQh7B,GACpB,MAAMxL,EAAU7S,KAAK3D,MAAMwW,SAAWwmC,EAAOh9C,MAAMwW,QAC7CmB,EAAWhU,KAAK3D,MAAM2X,UAAYqlC,EAAOh9C,MAAM2X,SAC/CzX,EAAWyD,KAAK3D,MAAME,UAAY88C,EAAOh9C,MAAME,SAC/C4T,EAAWnQ,KAAKw5C,WAAWH,EAAOh9C,OAClCme,EAAOxa,KAAKy5C,eACZvF,EAAW33C,EAAwD,KAA7CyD,KAAKyT,aAAatT,KAAKH,KAAMq5C,EAAOh9C,OAC1Ds9C,EAAiBV,EAAwBI,EAAOh9C,MAAMwT,SACtD+pC,GAAU,EAAIjI,EAAY/iC,SAAS,4BAA6ByqC,EAAOh9C,MAAMoT,WACnF,MAAO,CAELwjC,SAAW12C,OAAmEwG,EAAxD/C,KAAK3D,MAAM42C,SAAWjzC,KAAK3D,MAAM42C,cAAWlwC,EAGlE0M,UAAWmqC,EACXzpC,SAAUA,EACV5T,SAAUA,EACVsT,QAAS8pC,EAAiBN,EAAOh9C,MAAMwT,QAAU,SACjDD,OAAO+pC,GAAiBN,EAAOh9C,MAAMuT,MACrCskC,QAASA,EACTK,UAAW8E,EAAOh9C,MAAMk4C,UACxB/5B,KAAMA,EACN,eAAgBrK,EAChB,eAAgB0C,EAChB,gBAAiBmB,EAErB,CAEA,aAAA6lC,GACE,MAAM,SACJh8C,GACEmC,KAAK3D,MACT,OAAO/C,EAAOsV,QAAQmkC,SAASxgC,IAAI1U,GAAU,CAAC2U,EAAO6L,IAAU7L,EAAqBlZ,EAAOsV,QAAQsiC,aAAa1+B,EAAOxS,KAAK05C,cAAclnC,EAAO6L,IAAU,MAC7J,CAEA,MAAArP,GACE,IAAImkC,EAAcnzC,KAAK3D,OACnB,SACFwB,EAAW,GAAE,UACb4R,EAAS,SACT+B,EAAQ,SACRjV,EAAQ,SACRuiB,EAAQ,QACRjM,EAAO,SACPmB,EAAQ,YACRhD,EAAW,eACX0iC,EAAc,KACdl5B,GACE24B,EACArC,EArKR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAqKtdu1C,CAAyBoC,EAAa,CAAC,WAAY,YAAa,WAAY,WAAY,WAAY,UAAW,WAAY,cAAe,iBAAkB,SAe7K,cAbOrC,EAAWr/B,gBACXq/B,EAAWoD,QAEb15B,IACEsE,GAAatN,GAGPsN,GAAYjhB,EAASlC,OAAS,KAEvC6e,EAAOsE,GAAYjhB,EAASlC,OAAS,EAAI,UAAY,SAHrD6e,EAAO,cAOSlhB,EAAOsV,QAAQjR,cAAcm0C,EAAcljC,QAAS,CACtE6kC,aAAcsF,EACde,qBAAsBd,EACtBhoC,YAAsB,YAATwJ,EAAqBxJ,EAAc,OAChD0iC,eAAgBA,GACFp6C,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC3D,eAAgBp9B,GAAW,KAC3B,gBAAiBmB,GAAY,KAC7B,gBAAiBzX,GAAY,KAC7B,mBAAoC,SAAhByU,GAAmC,YAATwJ,EAAqBxJ,EAAc,KACjFwJ,KAAMA,IACL,EAAIq3B,EAAgBjjC,SAASkiC,GAAa,CAC3CrhC,WAAW,EAAIkiC,EAAY/iC,SAAS,uBAAwB,CAC1D,iCAAkD,aAAhBoC,GACjCvB,KACDzP,KAAK65C,cAAch8C,IACzB,GAEC4zC,EAAQzzC,UAAY,CAIrBzB,SAAUhC,EAAWqU,QAAQ3Q,KAK7B4U,QAAStY,EAAWqU,QAAQ3Q,KAK5By1C,eAAgBn5C,EAAWqU,QAAQ3Q,KAKnCuT,SAAUjX,EAAWqU,QAAQ3Q,KAK7B6gB,SAAUvkB,EAAWqU,QAAQ3Q,KAK7B+V,SAAUzZ,EAAWqU,QAAQ3Q,KAK7BwT,SAAUlX,EAAWqU,QAAQjQ,KAK7Bu1C,QAAS35C,EAAWqU,QAAQjQ,KAK5BqS,YAAazW,EAAWqU,QAAQ2nC,MAAM,CAAC,aAAc,WAAY,SAMjEt6C,MAAO1B,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQ1Q,WAC7GuzC,EAAQ1zC,aAAe,CACxBxB,UAAU,EACVsW,SAAS,EACT6gC,gBAAgB,EAChBliC,UAAU,EACVsN,UAAU,EACV9K,UAAU,EACVhD,YAAa,QA1OqCwgC,EA2OjDE,KAAWF,EAEd35C,EAAA,QAAkBshD,gCC9RlB,IAEgClgD,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,YAAY,IAAM,EAAQ,QAAqB,IAAM,EAAQ,SAAkB,IAAM,EAAQ,uCCpBzIr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIkiD,EAAkBv/C,EAAuB,EAAQ,QAEjDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Cw/C,EAAax/C,EAAuB,EAAQ,QAE5CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAEzC2/C,EAAcz/C,EAAuB,EAAQ,QAEjD,SAASf,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAa1T,EAAQ,OAGuI,EAAQ,MACT,EAAQ,MACJ,EAAQ,OACT,EAAQ,OAE3J,MAAMw+C,UAAiB5gD,EAAOqnB,UAC5B,iBAAAy0B,GACEp1C,KAAKm6C,kBACP,CAEA,kBAAAtC,GACE73C,KAAKm6C,kBACP,CAIA,gBAAAA,GACE,MAAM,cACJ7+B,GACEtb,KAAK3D,MACH+9C,EAAQp6C,KAAKq6C,UAAYr6C,KAAKq6C,SAASC,WAExB,MAAjBh/B,GAAyB8+B,IAC3BA,EAAM9+B,cAAgBA,EAE1B,CAEA,MAAAtM,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,cACJif,EAAa,MACb1L,EAAK,UACLH,GACE0jC,EACErC,EAhDV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAgDpdu1C,CAAyBoC,EAAa,CAAC,gBAAiB,QAAS,cAGhF73B,IACFw1B,EAAW,gBAAkB,SAG/B,IAAIyJ,EAAWj/B,EAA6BhiB,EAAOsV,QAAQjR,cAAcq8C,EAAWprC,QAAS,CAC3FgI,KAAM,KACNnH,UAAW,uCACKnW,EAAOsV,QAAQjR,cAAco8C,EAAgBnrC,QAAS,CACtEgI,KAAM,KACNnH,UAAW,gCAEb,OAAoBnW,EAAOsV,QAAQjR,cAAcs8C,EAAYrrC,QAASqhC,EAAS,CAC7EhzC,IAAK04B,GAAM31B,KAAKq6C,SAAW1kB,EAC3B6kB,UAAW,WACX/qC,WAAW,EAAIkiC,EAAY/iC,SAAS,oBAAqB,CACvD,mBAAoB0M,EACpB,2BAA4B1L,GAC3BH,GACHgrC,eAAgB,0BAChBC,cAAe,wBACfH,SAAUA,EACVI,eAAgB,2BACf7J,GACL,EAIFj5C,EAAA,QAAkBqiD,EAClBA,EAASl8C,UAAY,CAInB+R,MAAOxV,EAAWqU,QAAQ1Q,OAK1Bwe,YAAaniB,EAAWqU,QAAQ3Q,KAOhCwgB,eAAgBlkB,EAAWqU,QAAQ3Q,KAKnC1B,SAAUhC,EAAWqU,QAAQ3Q,KAK7B+V,SAAUzZ,EAAWqU,QAAQ3Q,KAK7B4U,QAAStY,EAAWqU,QAAQ3Q,KAK5B6gB,SAAUvkB,EAAWqU,QAAQ3Q,KAK7BwT,SAAUlX,EAAWqU,QAAQjQ,KAK7B2c,cAAe/gB,EAAWqU,QAAQ3Q,KAKlC2R,MAAOrV,EAAWqU,QAAQ3Q,MAE5Bi8C,EAASn8C,aAAe,CACtB2e,aAAa,EACb+B,oBAAgB1b,EAChBxG,UAAU,EACVyX,UAAU,EACVnB,SAAS,EACTiM,UAAU,EACVrN,SAAU,WAAa,EACvB6J,eAAe,EACf1L,OAAO,GAETsqC,EAASp8C,YAAc,yCCxKvBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAUI25C,EAVAgF,EAAgB,EAAQ,OAExBC,EAAqBj8C,EAAuB,EAAQ,QAEpDogD,EAAYpgD,EAAuB,EAAQ,QAE3Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDlB,EAASkB,EAAuB,EAAQ,QAI5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAIm/C,GAAgB,EAAIjJ,EAAqBhjC,SAAS4iC,GAAS,EAAIiF,EAAmB7nC,SAAS4iC,EAAS,cAA4BoJ,EAAUhsC,QAC5I,WAAAxV,CAAYiD,GACV01C,MAAM11C,GACN,MAAM,QACJsgB,EAAO,eACP8B,GACEpiB,EACJ2D,KAAKmyC,MAAQ,CACXx1B,aAAqB5Z,IAAZ4Z,EAAwBA,EAAU8B,IAAkB,GAE/Dze,KAAK86C,cAA6BxhD,EAAOsV,QAAQ0oC,WACnD,CAEA,gCAAAjF,CAAiCC,GAC3B,YAAaA,GACftyC,KAAKuyC,SAAS,CACZ51B,QAAS21B,EAAU31B,SAGzB,CAEA,UAAAo+B,CAAWp+B,GACH,YAAa3c,KAAK3D,OACtB2D,KAAKuyC,SAAS,CACZ51B,WAGN,CAEA,WAAA46B,CAAYj0C,GACV,GAAmB,WAAfA,EAAMyL,KAAmB,CAC3B,MAAM,QACJ4N,GACErZ,EAAM9H,OACVwE,KAAK+6C,WAAWp+B,EAClB,CAEA,MAAM66B,EAAY19C,OAAOiB,KAAKiF,KAAK3D,OAAOnB,QAAOu8C,GAAYA,EAASlzC,OAAO,GAAG0nB,gBAAkB3oB,EAAMyL,OAEpG/O,KAAK3D,MAAMm7C,IACbx3C,KAAK3D,MAAMm7C,GAAWr9C,KAAKmJ,EAAM9H,OAAQ8H,EAE7C,CAEA,iBAAA8xC,IACE,EAAIoB,EAAckB,sBAAsB13C,KAAK86C,cAAchpC,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACvF,CAEA,oBAAAI,IACE,EAAInB,EAAcoB,sBAAsB53C,KAAK86C,cAAchpC,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACvF,CAEA,kBAAAM,CAAmBC,GACjB93C,KAAK+3C,0BAA2B,EAAIvB,EAAcwB,sBAAsBh4C,KAAK86C,cAAchpC,QAASgmC,EAAW93C,KAAK3D,MAAO2D,KAAKu3C,YAAav3C,KAAK+3C,wBACpJ,CAEA,MAAA/oC,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,cACJif,EAAa,MACbvL,EAAK,UACLN,EAAS,SACT5R,EAAQ,QACRgV,EAAO,MACPjD,EAAK,SACLrT,EAAQ,YACRmgB,GACEy2B,EACErC,EAxEV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAwEpdu1C,CAAyBoC,EAAa,CAAC,gBAAiB,QAAS,YAAa,WAAY,UAAW,QAAS,WAAY,gBAE7I,IAAIhgC,EAAgBpD,IAA8B,iBAAblS,EAAwBA,EAAW,MAExE,cADOizC,EAAWn0B,QACErjB,EAAOsV,QAAQjR,cAAc,cAAesyC,EAAS,CACvEhzC,IAAK+C,KAAK86C,cACVrqC,MAAOhB,EACPkN,UAAS3c,KAAKmyC,MAAMx1B,SAAiB,KACrCC,YAAahN,GAAe,KAC5BiD,UAASA,GAAiB,KAC1ByI,gBAAeA,GAAuB,KACtC/e,WAAUA,GAAkB,OAC3B,EAAIi6C,EAAc+B,kBAAkBzH,IAAcp0B,GAAevJ,EAAmC,iBAAbtV,GAAyBA,EACrH,KAEI2zC,IAAWA,EAEjB35C,EAAA,QAAkBgjD,+BC9GlB/gD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI+iD,EAAYpgD,EAAuB,EAAQ,QAE3Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDlB,EAASkB,EAAuB,EAAQ,QAE5C,EAAQ,OAER,IAIIg3C,EAAQC,EAASC,EAAOsJ,EAJxBrJ,EAAcn3C,EAAuB,EAAQ,QAE7CD,EAAaC,EAAuB,EAAQ,QAIhD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAO5T,MAMMu/C,EAAa,CACjBC,QAAS,OACTC,cAAe,MACfC,WAAY,SACZC,UARW,MASXC,aATW,MAUXC,OATQ,QAWJC,EAAY,CAChBC,WAdU,OAgBNC,EAAa,CACjBppC,MAdO,QAiBT,IAAIqpC,GAAc,EAAI/J,EAAqBhjC,UAAmB8iC,EAAQD,EAAU,cAA0BmJ,EAAUhsC,QAClH,WAAAxV,CAAYiD,GACV01C,MAAM11C,GAEN2+C,EAAiB7gD,KAAK6F,MAEtB,MAAM,QACJ2c,EAAO,eACP8B,GACEpiB,EACJ2D,KAAKmyC,MAAQ,CACXx1B,aAAqB5Z,IAAZ4Z,EAAwBA,EAAU8B,IAAkB,EAEjE,CAEA,gCAAA4zB,CAAiCC,GAC3B,YAAaA,GACftyC,KAAKuyC,SAAS,CACZ51B,QAAS21B,EAAU31B,SAGzB,CAEA,UAAAo+B,CAAWp+B,GACH,YAAa3c,KAAK3D,OACtB2D,KAAKuyC,SAAS,CACZ51B,WAGN,CAEA,gBAAAw9B,GACE,MAAM,cACJ7+B,GACEtb,KAAK3D,MACH+9C,EAAQp6C,KAAKq6C,SAEE,MAAjB/+B,GAAyB8+B,IAC3BA,EAAM9+B,cAAgBA,EAE1B,CAEA,MAAAtM,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,MACJ0T,EAAK,UACLN,EAAS,eACTkrC,EAAc,SACd98C,EAAQ,MACRwZ,GACE87B,EACErC,EA7EV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA6Epdu1C,CAAyBoC,EAAa,CAAC,QAAS,YAAa,iBAAkB,WAAY,iBAGvGrC,EAAWp0B,mBACXo0B,EAAWx1B,qBACXw1B,EAAWj+B,eACXi+B,EAAWlhC,MAClB,IAAIuD,EAAgBpD,IAA8B,iBAAblS,EAAwBA,EAAW,MACxE,MAAM,QACJ8e,GACE3c,KAAKmyC,MACT,OAAoB74C,EAAOsV,QAAQjR,cAAc,QAAS,CACxD0Z,MAAOvd,OAAOo2C,OAAO,CAAC,EAAG+K,EAAY5jC,IACvB/d,EAAOsV,QAAQjR,cAAc,QAASsyC,EAAS,CAC7D54B,MAAOqkC,EACPz+C,IAAK04B,GAAM31B,KAAKq6C,SAAW1kB,GAC1Bmb,EAAY,CACb/hC,KAAM,WACN4N,QAASA,EACTlL,SAAUzR,KAAKuY,aACf9I,UAAWA,KACR0D,GAAiBA,EAAcxX,OAAS,GAAkBrC,EAAOsV,QAAQjR,cAAc,OAAQ,CAClG0Z,MAAOmkC,EACP/rC,WAAW,EAAIkiC,EAAY/iC,SAAS,CAClC,kCAAmC5O,KAAK3D,MAAME,UAC7Co+C,IACFxnC,GACL,GAECs+B,EAAQzzC,UAAY,CAIrB28C,eAAgBpgD,EAAWqU,QAAQ1Q,QAClC88C,EAAmB,WACpBh7C,KAAKuY,aAAegJ,IAClB,MAAM,SACJ9P,GACEzR,KAAK3D,OACH,QACJsgB,GACE4E,EAAE/lB,OACNwE,KAAK+6C,WAAWp+B,GAEZlL,GACFA,EAASkL,EAAS4E,EACpB,CAEJ,EAnGoDiwB,EAmGjDE,KAAWF,EAEd35C,EAAA,QAAkB8jD,gCCtJlB,IAEgC1iD,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,UAAU,IAAM,EAAQ,SAAmB,IAAM,EAAQ,QAAgB,IAAM,EAAQ,sCCpBnIr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAgBI25C,EAAQC,EAASC,EAhBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Cs5C,EAAYt5C,EAAuB,EAAQ,QAE3CohD,EAAiBphD,EAAuB,EAAQ,OAEhDqhD,EAAgBrhD,EAAuB,EAAQ,QAE/CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAQJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CARztBU,CAAwB,EAAQ,QAEzCw3C,EAAgB,EAAQ,OAI5B,SAASr4C,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,SAASogD,EAAmBC,EAAK58C,EAAS6D,EAAQg5C,EAAOC,EAAQhiD,EAAK66B,GAAO,IAAM,IAAIonB,EAAOH,EAAI9hD,GAAK66B,GAAU74B,EAAQigD,EAAKjgD,KAAO,CAAE,MAAOU,GAAwB,YAAfqG,EAAOrG,EAAgB,CAAMu/C,EAAKvV,KAAQxnC,EAAQlD,GAAiBiD,QAAQC,QAAQlD,GAAO6R,KAAKkuC,EAAOC,EAAW,CAWtQ,EAAQ,OAGuI,EAAQ,OACT,EAAQ,MACJ,EAAQ,OACT,EAAQ,OAE3J,IAAIjhC,GAAS,EAAIy7B,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAqBn4C,EAAOqnB,UACnG,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKm8C,UAAW,EAAIrI,EAAUllC,UAChC,CAOA,SAAAwtC,CAAUvF,KAAWrjC,GACnB,IA7BuBsS,EA6BnB1jB,EAAQpC,KAEZ,OA/BuB8lB,EA+BE,YACvB,IAAIu2B,GAAc,EAEdxF,IACFwF,QAAoBxF,KAAUrjC,KAGZ,IAAhB6oC,GACFj6C,EAAM/F,MAAMib,SAEhB,EAzCoC,WAAc,IAAIze,EAAOmH,KAAMwT,EAAO9X,UAAW,OAAO,IAAIwD,SAAQ,SAAUC,EAAS6D,GAAU,IAAI+4C,EAAMj2B,EAAGxqB,MAAMzC,EAAM2a,GAAO,SAASwoC,EAAM//C,GAAS6/C,EAAmBC,EAAK58C,EAAS6D,EAAQg5C,EAAOC,EAAQ,OAAQhgD,EAAQ,CAAE,SAASggD,EAAOn4C,GAAOg4C,EAAmBC,EAAK58C,EAAS6D,EAAQg5C,EAAOC,EAAQ,QAASn4C,EAAM,CAAEk4C,OAAMj5C,EAAY,GAAI,IA0C/X,CAEA,SAAAu5C,IAAa9oC,GACXxT,KAAKo8C,UAAUp8C,KAAK3D,MAAMigD,aAAc9oC,EAC1C,CAEA,QAAA+oC,GACEv8C,KAAKo8C,UAAUp8C,KAAK3D,MAAMkgD,SAC5B,CAEA,OAAAC,CAAQj7B,GACFvhB,KAAK3D,MAAMmgD,SACbx8C,KAAK3D,MAAMmgD,QAAQj7B,EAEvB,CAEA,SAAAgzB,CAAUhzB,GACR,MAAM,gBACJk7B,EAAe,gBACfC,EAAe,UACfnI,EAAS,cACToI,GACE38C,KAAK3D,MAET,KAAIk4C,IACFA,EAAUhzB,GAENA,EAAEq7B,sBAAwBr7B,EAAEq7B,yBAKlC,OAAQr7B,EAAEtnB,KACR,IAAK,SACEwiD,GAAmBC,GACtB18C,KAAKs8C,YAGP,MAEF,IAAK,MACL,IAAK,SACEK,GACH38C,KAAKu8C,WAGP,MAEF,QACMv8C,KAAK3D,MAAMie,YACb,EAAIw3B,EAAcx3B,WAAWta,KAAMuhB,GAK3C,CAEA,MAAAvS,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,EAAY,GAAE,YACdotC,EAAW,aACXC,EAAY,eACZC,EAAc,KACdjqC,EAAI,MACJyE,EAAK,QACL1H,EAAO,KACPmtC,EAAI,KACJxiC,EAAI,SACJy4B,EAAQ,UACR34B,EAAS,cACT2iC,EAAa,GACblkD,EAAKiH,KAAKm8C,SACV,aAAcjpC,EACd,kBAAmBgqC,EACnB,mBAAoBC,EACpB,aAAcC,GACZjK,EACErC,EA/HV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA+Hpdu1C,CAAyBoC,EAAa,CAAC,WAAY,YAAa,cAAe,eAAgB,iBAAkB,OAAQ,QAAS,UAAW,OAAQ,OAAQ,WAAY,YAAa,gBAAiB,KAAM,aAAc,kBAAmB,mBAAoB,eAE/QkK,EAAsB,eAATL,GAAkC,uBAATA,EACtCM,EAAiBztC,IAAYgtC,GAAeC,EAAe,eAAiB,eAGlF,cAFOhM,EAAWyM,oBACXzM,EAAW6L,cAIhBrjD,EAAOsV,QAAQjR,cAAc,MAAO,CAClC8R,WAAW,EAAIkiC,EAAY/iC,SAAS,kBAAmB,wBAAyB,CAC9E,CAAC,oBAAoBouC,KAASA,EAC9B,yBAAsC,UAAZntC,EAC1B,UAAWiD,EACX,+BAAgCmqC,GAC/BxtC,GACH+K,KAAMA,EAGNy4B,cAAuBlwC,IAAbkwC,GAA0B34B,EAAY,EAAI24B,EACpDuJ,QAASx8C,KAAKw8C,QACdjI,UAAWv0C,KAAKu0C,UAChBx7C,GAAIA,EACJ,aAAcma,EACd,kBAAmBgqC,IAAmB3lC,IAAUrE,EAAY,GAAGna,YAAe,MAC9E,mBAAoBokD,IAAoB5lC,GAAS1Z,EAAW,GAAG9E,YAAe,MAC9E,aAAcqkD,GAAa9iC,GAC1B/C,GAAsBje,EAAOsV,QAAQjR,cAAck+C,EAAcjtC,QAASqhC,EAAS,CACpFpgC,QAASytC,EACT/lC,MAAOA,EACP8lC,WAAYA,EACZP,aAAcA,EACdC,eAAgBA,EAChBF,YAAaA,EACbI,cAAeA,EACflkD,GAAI,GAAGA,aACN+3C,EAAY,CACbwL,UAAWt8C,KAAKs8C,UAChBC,SAAUv8C,KAAKu8C,YACZhlC,EAAqBje,EAAOsV,QAAQjR,cAAc,MAAO,CAC5D8R,UAAW,0BACX1W,GAAI,GAAGA,aACN8E,GAAYA,GAAWo/C,IAAkBI,GAAcP,GAA6BxjD,EAAOsV,QAAQjR,cAAci+C,EAAehtC,QAASqhC,EAAS,CAAC,EAAGjwC,KAAK3D,MAAO,CACnKwT,QAASytC,EACT7tC,UAAW,yBACX6sC,UAAWt8C,KAAKs8C,UAChBC,SAAUv8C,KAAKu8C,YAGrB,GAEC9K,EAAQzzC,UAAY,CAIrBw/C,kBAAmBjjD,EAAWqU,QAAQ3Q,KAKtC4+C,YAAatiD,EAAWqU,QAAQ1Q,OAKhCuR,UAAWlV,EAAWqU,QAAQ1Q,OAK9Bu+C,gBAAiBliD,EAAWqU,QAAQ3Q,KAKpC6+C,aAAcviD,EAAWqU,QAAQ1Q,OAKjC6+C,eAAgBxiD,EAAWqU,QAAQ1Q,OAKnCoZ,QAAS/c,EAAWqU,QAAQjQ,KAK5B49C,SAAUhiD,EAAWqU,QAAQjQ,KAM7B29C,UAAW/hD,EAAWqU,QAAQjQ,KAK9BmU,KAAMvY,EAAWqU,QAAQ3Q,KAKzBsZ,MAAOhd,EAAWqU,QAAQrQ,KAK1BsR,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,eAAgB,cAAe,cAAe,UAKjFyG,KAAMziD,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,aAAc,uBAKvD/7B,KAAMjgB,EAAWqU,QAAQ2nC,MAAM,CAAC,WAAY,SAAU,gBAKtDkH,gBAAiBljD,EAAWqU,QAAQ2nC,MAAM,CAAC,SAAU,UAAW,YAAa,OAM7EmG,gBAAiBniD,EAAWqU,QAAQ3Q,KAKpCqc,UAAW/f,EAAWqU,QAAQ3Q,KAM9B0+C,cAAepiD,EAAWqU,QAAQ3Q,KAKlCg/C,cAAe1iD,EAAWqU,QAAQ3Q,MACjCwzC,EAAQ1zC,aAAe,CACxBy/C,mBAAmB,EACnBf,iBAAiB,EACjBC,iBAAiB,EACjB5pC,MAAM,EACN0H,KAAM,SACNijC,gBAAiB,KACjBnmC,QAAS,WAAa,EACtBgD,WAAW,EACXqiC,eAAe,EACfM,eAAe,GAvQ4BzL,EAwQ1CE,KAAWF,EAEd35C,EAAA,QAAkBmjB,+BChUlBlhB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAmCA,UAAuB,gBACrB4lD,EAAe,aACfX,EAAY,eACZC,EAAc,YACdF,EAAW,gBACXJ,EAAe,UACfH,EAAS,SACTC,EAAQ,UACR9sC,EAAS,QACTI,IAEA,MAAM6tC,EAAiBC,EAAgB9tC,IAAY,UAEnD,IAAI0kC,EAAYjxC,IACI,MAAdA,EAAMrJ,KAA6B,UAAdqJ,EAAMrJ,KAC7BqJ,EAAMs6C,iBACR,EAGF,OAAoBtkD,EAAOsV,QAAQjR,cAAc,MAAO,CACtD8R,WAAW,EAAIkiC,EAAY/iC,SAAS,gCAAiCa,IACpEotC,GAA4BvjD,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAAS,CAC3EiB,QAAS,YACTE,MAAO8sC,EACP3I,QAASqI,EACT/sC,UAA+B,WAApBiuC,EACXlJ,UAAWA,EACXtkC,cAAc,IACZ8sC,GAA+BzjD,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAAS,CAC/EiB,QAAS,YACTE,MAAOgtC,EACP7I,QAASoI,EAAYA,EAAUn8C,KAAK,KAAM,aAAe,KACzDqP,UAA+B,cAApBiuC,EACXlhD,SAAUkgD,GAAmB,KAC7BlI,UAAWA,EACXtkC,cAAc,IACZ6sC,GAA6BxjD,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAAS,CAC7EiB,QAAS6tC,EACT3tC,MAAO+sC,EACP5I,QAASoI,EAAYA,EAAUn8C,KAAK,KAAM,WAAa,KACvDqP,UAA+B,YAApBiuC,EACXlhD,SAAUkgD,GAAmB,KAC7BlI,UAAWA,EACXtkC,cAAc,IAElB,EA9EA,IAAIymC,EAAUl8C,EAAuB,EAAQ,QAEzCm3C,EAAcn3C,EAAuB,EAAQ,QAE7ClB,EAASkB,EAAuB,EAAQ,QAI5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAF9F,EAAQ,OAoBR,MAAM0kD,EAAkB,CACtBE,aAAc,MACdC,YAAa,UACbnhD,MAAO,UACPohD,YAAa,yCCnCfjkD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QA8BA,SAAsB6K,GACpB,IAAI,MACF6U,EAAK,QACL1H,EAAO,WACPwtC,EAAU,gBACVZ,EAAe,aACfK,EAAY,eACZC,EAAc,YACdF,EAAW,UACXP,EAAS,SACTC,EAAQ,QACRjlC,EAAO,UACP7H,EAAS,gBACTguC,EAAe,GACf1kD,EAAE,cACFkkD,GACEv6C,EACAouC,EAzBN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAyBxdu1C,CAAyBruC,EAAM,CAAC,QAAS,UAAW,aAAc,kBAAmB,eAAgB,iBAAkB,cAAe,YAAa,WAAY,UAAW,YAAa,kBAAmB,KAAM,kBAE7N4tC,EAAO0N,EAAcnuC,GACzB,OAAoBvW,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAAC,GAAG,EAAI4B,EAAgBjjC,SAASkiC,GAAa,CAC7GrhC,WAAW,EAAIkiC,EAAY/iC,SAAS,yBAA0B,2BAA2BiB,IAAWJ,KACrFnW,EAAOsV,QAAQjR,cAAcsgD,EAASrvC,QAAS,CAC9DgI,KAAM,EACNnH,UAAW,wBACX1W,GAAIA,GACHwe,GAAQ+4B,GAAqBh3C,EAAOsV,QAAQjR,cAAc2yC,EAAM,CACjE15B,KAAM,KACNnH,UAAW,6BACTwtC,IAAkBI,GAA2B/jD,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAAS,CAC7Fa,UAAW,8BACXI,QAAS,SACTqkC,QAAS58B,EACT1H,OAAO,EACPd,KAAmBxV,EAAOsV,QAAQjR,cAAcugD,EAAYtvC,QAAS,CACnEgI,KAAM,QAENymC,GAAcP,GAA6BxjD,EAAOsV,QAAQjR,cAAci+C,EAAehtC,QAAS,CAClG6uC,gBAAiBA,EACjB5tC,QAASA,EACTgtC,YAAaA,EACbE,eAAgBA,EAChBD,aAAcA,EACdL,gBAAiBA,EACjBH,UAAWA,EACXC,SAAUA,IAEd,EA3EA,IAAI4B,EAAe3jD,EAAuB,EAAQ,QAE9Ck8C,EAAUl8C,EAAuB,EAAQ,QAEzCm3C,EAAcn3C,EAAuB,EAAQ,QAE7C0jD,EAAc1jD,EAAuB,EAAQ,QAE7CohD,EAAiBphD,EAAuB,EAAQ,OAEhDq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDyjD,EAAWzjD,EAAuB,EAAQ,QAE1ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,MAAMsiD,EAAgB,CACpBrhD,MAAOwhD,EAAavvC,uCC9BtB9U,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIyB,EAASkB,EAAuB,EAAQ,QAExC4jD,EAAqB5jD,EAAuB,EAAQ,OAEpD6jD,EAAsB7jD,EAAuB,EAAQ,QAErD62C,EAAc72C,EAAuB,EAAQ,QAEjD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAiB5T,IAAI0I,EAZ6B9K,EAAOsV,QAAQ5R,YAAW,CAACX,EAAOY,IAC7Do0C,EAAYziC,QAAQ0vC,wBAA0BjiD,IAA4B,IAAnBA,EAAMkiD,SAC3CjlD,EAAOsV,QAAQjR,cAAcygD,EAAmBxvC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAC/FY,IAAKA,KAGa3D,EAAOsV,QAAQjR,cAAc0gD,EAAoBzvC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAChGY,IAAKA,OAMXpF,EAAA,QAAkBuM,+BCjClBtK,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIsmD,EAAe3jD,EAAuB,EAAQ,QAE9Ci8C,EAAqBj8C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7CgkD,EAAUhkD,EAAuB,EAAQ,OAEzCD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExCikD,EAAoBjkD,EAAuB,EAAQ,QAEnDkkD,EAAmBlkD,EAAuB,EAAQ,QAEtD,EAAQ,OAER,IAEIg3C,EAAQC,EAASC,EAFjB8E,EAAgB,EAAQ,OAI5B,SAASh8C,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAEhN,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,MAAMsiD,EAAgB,CACpBrhD,MAAOwhD,EAAavvC,SAEtB,IAAI+vC,EAAoB,KACpBC,EAAiB,KACjBC,EAAgB,KAChBvB,EAAiB,KACjBD,EAAa,KAEbyB,GAAoB,EAAIrI,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAgC+M,EAAQ5vC,QAC1H,WAAAxV,CAAYiD,GACV01C,MAAM11C,GACNghD,EAAiC,eAApBr9C,KAAK3D,MAAM2gD,MAA6C,uBAApBh9C,KAAK3D,MAAM2gD,KAC5D2B,IAAsBtB,GAAcr9C,KAAK3D,MAAM4gD,cACjD,CAEA,WAAA1F,CAAYj0C,GACV,MAAMk0C,EAAY19C,OAAOiB,KAAKiF,KAAK3D,OAAOnB,QAAOu8C,GAAYA,EAASlzC,OAAO,GAAG0nB,gBAAkB3oB,EAAMyL,OAEpG/O,KAAK3D,MAAMm7C,IACbx3C,KAAK3D,MAAMm7C,GAAWr9C,KAAKmJ,EAAM9H,OAAQ8H,EAE7C,CAEA,iBAAA8xC,GACE,MAAM,KACJx+B,GACE5W,KAAK3D,MAEL2D,KAAK++C,oBAAsBJ,KAC7B,EAAInI,EAAcwI,mBAAmBh/C,KAAK++C,mBAAoB/+C,KAAK3D,MAAO2D,KAAKu3C,aAE3E3gC,GAAQA,EAAKtE,OAASsE,EAAK2kC,SAC7BqD,EAAiBhoC,EAAK2kC,OACtBsD,EAAgBjoC,EAAKtE,OAGvBtS,KAAK++C,mBAAmBz+C,iBAAiB,QAASN,KAAKi/C,oBACvDj/C,KAAK++C,mBAAmBz+C,iBAAiB,SAAUN,KAAKk/C,qBACxDl/C,KAAK++C,mBAAmBz+C,iBAAiB,OAAQN,KAAKm/C,mBAE1D,CAEA,oBAAAxH,GACM33C,KAAK++C,oBAAsBJ,IAC7BC,EAAiB,KACjBC,EAAgB,MAChB,EAAIrI,EAAcoB,sBAAsB53C,KAAK++C,mBAAoB/+C,KAAK3D,MAAO2D,KAAKu3C,aAClFv3C,KAAK++C,mBAAmB96C,oBAAoB,QAASjE,KAAKi/C,oBAC1Dj/C,KAAK++C,mBAAmB96C,oBAAoB,SAAUjE,KAAKk/C,qBAC3Dl/C,KAAK++C,mBAAmB96C,oBAAoB,OAAQjE,KAAKm/C,mBAE7D,CAEA,kBAAAF,GACEj/C,KAAK++C,mBAAqB,IAC5B,CAEA,mBAAAG,GACEl/C,KAAK++C,mBAAqB,IAC5B,CAEA,iBAAAI,GACMn/C,KAAK3D,MAAM+iD,QACbp/C,KAAK3D,MAAM+iD,QAEf,CAEA,SAAA9C,IAAa9oC,GACXxT,KAAKo8C,UAAUp8C,KAAK3D,MAAMigD,aAAc9oC,GAExCxT,KAAKq/C,aACP,CAEA,QAAA9C,GACEv8C,KAAKo8C,UAAUp8C,KAAK3D,MAAMkgD,UAE1Bv8C,KAAKq/C,aACP,CAEA,WAAAA,GACMr/C,KAAK++C,oBAAsBJ,IAC7B3+C,KAAK++C,mBAAmBjsC,KAAO,KAEnC,CAEA,MAAA9D,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,EAAY,GAAE,aACdqtC,EAAY,MACZvlC,EAAK,GACLxe,EAAKiH,KAAKm8C,UACRhJ,SAlGR,SAAkCv3C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAmGpdu1C,CAAyBoC,EAAa,CAAC,WAAY,YAAa,eAAgB,QAAS,OAE1FiM,OAClB9B,EAAiBt9C,KAAK3D,MAAMwT,UAAY7P,KAAK3D,MAAMwgD,aAAe78C,KAAK3D,MAAMygD,aAAe,eAAiB,eAC7G,IAAIxM,EAAO0N,EAAcV,GAEzB,OAAIqB,EACkBrlD,EAAOsV,QAAQjR,cAAc,YAAasyC,EAAS,CACrEl3C,GAAIA,EACJkE,IAAK04B,GAAM31B,KAAK++C,mBAAqBppB,EACrC2pB,qBAAsB,CAAC,UACvB,cAAeV,EACf,aAAcC,EACd/rC,OAAM9S,KAAK3D,MAAMyW,MAAc,KAC/BwpC,UAAWt8C,KAAKs8C,UAChBC,SAAUv8C,KAAKu8C,SACf9rC,MAAOhB,GACNzP,KAAK8wC,YAAav5B,GAAsBje,EAAOsV,QAAQjR,cAAc,MAAO,CAC7EsR,KAAM,SACLsI,GAAQ+4B,GAAqBh3C,EAAOsV,QAAQjR,cAAc,MAAO,CAClEsR,KAAM,QACQ3V,EAAOsV,QAAQjR,cAAc2yC,EAAM,CACjD7gC,WAAW,EAAIkiC,EAAY/iC,SAAS,uBACpCgI,KAAM,QACUtd,EAAOsV,QAAQjR,cAAc,MAAO,CACpDsR,KAAM,cACNlW,GAAI,GAAGA,aACN8E,GAAwBvE,EAAOsV,QAAQjR,cAAc,MAAO,CAC7DsR,KAAM,eACL6tC,GAA6BxjD,EAAOsV,QAAQjR,cAAc8gD,EAAkB7vC,QAASqhC,EAAS,CAAC,EAAGjwC,KAAK3D,MAAO,CAC/GwT,QAASytC,EACThB,UAAWt8C,KAAKs8C,UAChBC,SAAUv8C,KAAKu8C,cAICjjD,EAAOsV,QAAQjR,cAAc+gD,EAAiB9vC,QAAS5O,KAAK3D,MAClF,GAECo1C,EAAQzzC,UAAYzC,EAAcA,EAAc,CAAC,EAAGijD,EAAQ5vC,QAAQ5Q,WAAY,CAAC,EAAG,CAIrF4Y,KAAMrc,EAAWqU,QAAQ2wC,SAAS,CAChCjtC,MAAO/X,EAAWqU,QAAQtQ,OAC1Bi9C,OAAQhhD,EAAWqU,QAAQtQ,WAnIyBkzC,EAqIpDE,KAAWF,EAEf35C,EAAA,QAAkBinD,gCCzLlBhlD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIyB,EAASkB,EAAuB,EAAQ,QAExCkkD,EAAmBlkD,EAAuB,EAAQ,QAElD6jD,EAAsB7jD,EAAuB,EAAQ,QAErD62C,EAAc72C,EAAuB,EAAQ,QAEjD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAiB5T,IAAI0I,EAZ2B9K,EAAOsV,QAAQ5R,YAAW,CAACX,EAAOY,IAC3Do0C,EAAYziC,QAAQ0vC,wBAA0BjiD,IAA4B,IAAnBA,EAAMkiD,SAC3CjlD,EAAOsV,QAAQjR,cAAc+gD,EAAiB9vC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAC7FY,IAAKA,KAGa3D,EAAOsV,QAAQjR,cAAc0gD,EAAoBzvC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAChGY,IAAKA,OAMXpF,EAAA,QAAkBuM,gCCjClBtK,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAqBA,UAA0B,gBACxB4lD,EAAe,aACfX,EAAY,eACZC,EAAc,YACdF,EAAW,gBACXJ,EAAe,UACfH,EAAS,SACTC,EAAQ,UACR9sC,EAAS,QACTI,IAEA,MAAM6tC,EAAiBC,EAAgB9tC,IAAY,UAEnD,IAAI0kC,EAAYjxC,IACI,MAAdA,EAAMrJ,KAA6B,UAAdqJ,EAAMrJ,MAC7BqJ,EAAMs6C,kBACNt6C,EAAM9H,OAAO05C,QACf,EAGF,OAAoB57C,EAAOsV,QAAQjR,cAAc,MAAO,CACtD8R,WAAW,EAAIkiC,EAAY/iC,SAAS,gCAAiCa,IACpEotC,GAA4BvjD,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAAS,CAC3Ea,UAAW,0BACXI,QAAS,YACTE,MAAO8sC,EACP3I,QAASqI,EACT/sC,UAA+B,WAApBiuC,EACXlJ,UAAWA,EACXkE,mBAAmB,EACnBxoC,cAAc,IACZ8sC,GAA+BzjD,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAAS,CAC/Ea,UAAW,0BACXI,QAAS,YACTE,MAAOgtC,EACP7I,QAASoI,EAAYA,EAAUn8C,KAAK,KAAM,aAAe,KACzDqP,UAA+B,cAApBiuC,EACXlhD,SAAUkgD,GAAmB,KAC7BlI,UAAWA,EACXkE,mBAAmB,EACnBxoC,cAAc,IACZ6sC,GAA6BxjD,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAAS,CAC7Ea,UAAW,0BACXI,QAAS6tC,EACT3tC,MAAO+sC,EACP5I,QAASoI,EAAYA,EAAUn8C,KAAK,KAAM,WAAa,KACvDqP,UAA+B,YAApBiuC,EACXlhD,SAAUkgD,GAAmB,KAC7BlI,UAAWA,EACXtkC,cAAc,IAElB,EAtEA,IAAIymC,EAAUl8C,EAAuB,EAAQ,QAEzCm3C,EAAcn3C,EAAuB,EAAQ,QAE7ClB,EAASkB,EAAuB,EAAQ,QAM5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAJ9F,EAAQ,OAER,EAAQ,OAIR,MAAM0kD,EAAkB,CACtBE,aAAc,MACdC,YAAa,UACbnhD,MAAO,UACPohD,YAAa,yCCrBfjkD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAgCA,SAAyB6K,GACvB,IAAI,SACF7E,EAAW,GAAE,MACb0Z,EAAK,QACL1H,EAAO,WACPwtC,EAAU,gBACVZ,EAAe,aACfK,EAAY,eACZC,EAAc,YACdF,EAAW,UACXP,EAAS,SACTC,EAAQ,QACRjlC,EAAO,UACP7H,EAAS,gBACTguC,EAAe,GACf1kD,EAAE,cACFkkD,GACEv6C,EACAouC,EA1BN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA0Bxdu1C,CAAyBruC,EAAM,CAAC,WAAY,QAAS,UAAW,aAAc,kBAAmB,eAAgB,iBAAkB,cAAe,YAAa,WAAY,UAAW,YAAa,kBAAmB,KAAM,kBAEzO4tC,EAAO0N,EAAcnuC,GACzB,OAAoBvW,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAAC,GAAG,EAAI4B,EAAgBjjC,SAASkiC,GAAa,CAC7GrhC,WAAW,EAAIkiC,EAAY/iC,SAAS,yBAA0B,2BAA2BiB,IAAW,kCAAmCJ,KACxHnW,EAAOsV,QAAQjR,cAAcsgD,EAASrvC,QAAS,CAC9DgI,KAAM,EACNnH,UAAW,wBACX1W,GAAIA,GACHwe,GAAQ+4B,GAAqBh3C,EAAOsV,QAAQjR,cAAc2yC,EAAM,CACjE15B,KAAM,KACNnH,UAAW,6BACTwtC,IAAkBI,GAA2B/jD,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAAS,CAC7Fa,UAAW,8BACXI,QAAS,SACTqkC,QAAS58B,EACT1H,OAAO,EACPd,KAAmBxV,EAAOsV,QAAQjR,cAAcugD,EAAYtvC,QAAS,CACnEgI,KAAM,QAENymC,GAAcP,GAA6BxjD,EAAOsV,QAAQjR,cAAc8gD,EAAkB7vC,QAAS,CACrG6uC,gBAAiBA,EACjB5tC,QAASA,EACTgtC,YAAaA,EACbC,aAAcA,EACdL,gBAAiBA,EACjBH,UAAWA,EACXC,SAAUA,IACR1+C,EACN,EA7EA,IAAIsgD,EAAe3jD,EAAuB,EAAQ,QAE9Ck8C,EAAUl8C,EAAuB,EAAQ,QAEzCm3C,EAAcn3C,EAAuB,EAAQ,QAE7C0jD,EAAc1jD,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDyjD,EAAWzjD,EAAuB,EAAQ,QAE1ClB,EAASkB,EAAuB,EAAQ,QAExCikD,EAAoBjkD,EAAuB,EAAQ,QAIvD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAJ5T,EAAQ,OAUR,MAAMsiD,EAAgB,CACpBrhD,MAAOwhD,EAAavvC,uCChCtB9U,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAgBI25C,EAAQC,EAASC,EAhBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7CgkD,EAAUhkD,EAAuB,EAAQ,OAEzCD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExCikD,EAAoBjkD,EAAuB,EAAQ,QAEnDglD,EAAmBhlD,EAAuB,EAAQ,QAMtD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAEhN,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAZ5T,EAAQ,OAyBN,EAAQ,OAGuI,EAAQ,OACT,EAAQ,MACJ,EAAQ,OACT,EAAQ,OAC3J,MAAM+jD,EAAc,CAClBntC,MAAO,OACPipC,OAAQ,QAEJmE,EAAiB,CACrBC,OAAQ,OACRC,gBAAiB,OACjBhpC,KAAM6oC,EACNI,QAASJ,EACTK,QAASL,GAGX,IAAIM,GAAkB,EAAItJ,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAA8B+M,EAAQ5vC,QACtH,iBAAAwmC,GACE,IAAIjnC,EAAkB,KACtB,MAAM,KACJyI,GACE5W,KAAK3D,MAEL2D,KAAKggD,mBACHppC,GAAQA,EAAKtE,OAASsE,EAAK2kC,SAC7BptC,EAAkB,CAChBwxC,OAAQ,OACRC,gBAAiB,OACjBhpC,KAAMA,EACNipC,QAASJ,EACTK,QAASL,IAIbz/C,KAAKggD,iBAAiBC,UAAU9xC,GAAoCuxC,GAAgB5xC,MAAK,SAAU,SACnG9N,KAAKggD,iBAAiB1/C,iBAAiB,QAASN,KAAKi/C,oBACrDj/C,KAAKggD,iBAAiB1/C,iBAAiB,SAAUN,KAAKk/C,qBACtDl/C,KAAKggD,iBAAiB1/C,iBAAiB,OAAQN,KAAKm/C,mBAExD,CAEA,oBAAAxH,GACM33C,KAAKggD,mBACPhgD,KAAKggD,iBAAiB/7C,oBAAoB,QAASjE,KAAKi/C,oBACxDj/C,KAAKggD,iBAAiB/7C,oBAAoB,SAAUjE,KAAKk/C,qBACzDl/C,KAAKggD,iBAAiB/7C,oBAAoB,OAAQjE,KAAKm/C,mBAE3D,CAEA,kBAAAF,GACEj/C,KAAKggD,iBAAmB,IAC1B,CAEA,mBAAAd,GACEl/C,KAAKggD,iBAAmB,IAC1B,CAEA,iBAAAb,GACMn/C,KAAK3D,MAAM+iD,QACbp/C,KAAK3D,MAAM+iD,QAEf,CAEA,SAAA9C,IAAa9oC,GACXxT,KAAKo8C,UAAUp8C,KAAK3D,MAAMigD,aAAc9oC,GAExCxT,KAAKq/C,aACP,CAEA,QAAA9C,GACEv8C,KAAKo8C,UAAUp8C,KAAK3D,MAAMkgD,UAE1Bv8C,KAAKq/C,aACP,CAEA,WAAAA,GACEr/C,KAAKggD,iBAAiBE,OACxB,CAEA,MAAAlxC,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,EAAY,GAAE,YACdotC,EAAW,aACXC,EAAY,eACZC,EAAc,KACdjqC,EAAI,MACJyE,EAAK,QACL1H,EAAO,KACPmtC,EAAI,SACJ/J,EAAQ,UACR34B,EAAS,cACT2iC,EAAa,GACblkD,EAAKiH,KAAKm8C,SACV,aAAcjpC,EACd,kBAAmBgqC,EACnB,mBAAoBC,EACpB,aAAcC,GACZjK,EACErC,EAlHV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAkHpdu1C,CAAyBoC,EAAa,CAAC,WAAY,YAAa,cAAe,eAAgB,iBAAkB,OAAQ,QAAS,UAAW,OAAQ,WAAY,YAAa,gBAAiB,KAAM,aAAc,kBAAmB,mBAAoB,eAEvQkK,EAAsB,eAATL,GAAkC,uBAATA,EACtCM,EAAiBztC,IAAYgtC,GAAeC,EAAe,eAAiB,eAIlF,cAHOhM,EAAWyM,oBACXzM,EAAW6L,qBACX7L,EAAWsO,OAKhB9lD,EAAOsV,QAAQjR,cAAc,SAAU,CACrC5E,GAAIA,EACJkE,IAAK04B,GAAM31B,KAAKggD,iBAAmBrqB,EACnC2pB,qBAAsB,CAAC,UACvBhD,UAAWt8C,KAAKs8C,UAChBC,SAAUv8C,KAAKu8C,UACDjjD,EAAOsV,QAAQjR,cAAc,MAAO,CAClD6+C,QAASx8C,KAAKw8C,QACdjI,UAAWv0C,KAAKu0C,UAChB9kC,WAAW,EAAIkiC,EAAY/iC,SAAS,oBAAqB,kBAAmB,wBAAyB,CACnG,CAAC,oBAAoBouC,KAASA,EAC9B,yBAAsC,UAAZntC,EAC1B,UAAWiD,EACX,+BAAgCmqC,GAC/B,2BAA4BxtC,GAG/BwjC,cAAuBlwC,IAAbkwC,GAA0B34B,EAAY,EAAI24B,EACpD,aAAc//B,EACd,kBAAmBgqC,IAAmB3lC,IAAUrE,EAAY,GAAGna,YAAe,MAC9E,mBAAoBokD,IAAoB5lC,GAAS1Z,EAAW,GAAG9E,YAAe,MAC9E,aAAcqkD,GAAa9iC,GAC1B/C,GAAsBje,EAAOsV,QAAQjR,cAAc6hD,EAAiB5wC,QAASqhC,EAAS,CACvFpgC,QAASytC,EACT/lC,MAAOA,EACP8lC,WAAYA,EACZP,aAAcA,EACdC,eAAgBA,EAChBF,YAAaA,EACbI,cAAeA,EACflkD,GAAI,GAAGA,aACN+3C,GAA0Bx3C,EAAOsV,QAAQjR,cAAc,MAAO,CAC/D8R,UAAW,qBACR8H,EAAqBje,EAAOsV,QAAQjR,cAAc,MAAO,CAC5D8R,UAAW,0BACX1W,GAAI,GAAGA,aACN8E,GAAYA,GAAWo/C,IAAkBI,GAAcP,GAA6BxjD,EAAOsV,QAAQjR,cAAc8gD,EAAkB7vC,QAASqhC,EAAS,CAAC,EAAGjwC,KAAK3D,MAAO,CACtKwT,QAASytC,EACT7tC,UAAW,yBACX6sC,UAAWt8C,KAAKs8C,UAChBC,SAAUv8C,KAAKu8C,aAGrB,GAEC9K,EAAQzzC,UAAYzC,EAAcA,EAAc,CAAC,EAAGijD,EAAQ5vC,QAAQ5Q,WAAY,CAAC,EAAG,CAIrF4Y,KAAMrc,EAAWqU,QAAQ2wC,SAAS,CAChCjtC,MAAO/X,EAAWqU,QAAQtQ,OAC1Bi9C,OAAQhhD,EAAWqU,QAAQtQ,WAlJuBkzC,EAoJlDE,KAAWF,EAEf35C,EAAA,QAAkBkoD,gCCrNlBjmD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAgBI25C,EAhBAiF,EAAqBj8C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7CgkD,EAAUhkD,EAAuB,EAAQ,OAEzClB,EAASkB,EAAuB,EAAQ,QAExC2lD,EAAiB3lD,EAAuB,EAAQ,QAEhDikD,EAAoBjkD,EAAuB,EAAQ,QAEnDglD,EAAmBhlD,EAAuB,EAAQ,QAMtD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAN5T,EAAQ,OAmBN,EAAQ,OAGuI,EAAQ,OACT,EAAQ,MACJ,EAAQ,OACT,EAAQ,OAE3J,IAAI0kD,GAAqB,EAAI3J,EAAmB7nC,SAAS4iC,EAAS,cAAiCgN,EAAQ5vC,QACzG,iBAAAwmC,GACE+K,EAAevxC,QAAQzK,cAAck8C,4BAA2B,GAAM,EAAOrgD,KAAKsgD,sBACpF,CAEA,oBAAA3I,GACEwI,EAAevxC,QAAQzK,cAAck8C,4BAA2B,GAAO,EAAOrgD,KAAKsgD,sBACrF,CAEA,MAAAtxC,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,EAAY,GAAE,YACdotC,EAAW,aACXC,EAAY,eACZC,EAAc,KACdjqC,EAAI,MACJyE,EAAK,QACL1H,EAAO,KACPmtC,EAAI,KACJxiC,EAAI,SACJy4B,EAAQ,UACR34B,EAAS,cACT2iC,EAAa,GACblkD,EAAKiH,KAAKm8C,SACV,aAAcjpC,EACd,kBAAmBgqC,EACnB,mBAAoBC,EACpB,aAAcC,GACZjK,EACErC,EAlDV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAkDpdu1C,CAAyBoC,EAAa,CAAC,WAAY,YAAa,cAAe,eAAgB,iBAAkB,OAAQ,QAAS,UAAW,OAAQ,OAAQ,WAAY,YAAa,gBAAiB,KAAM,aAAc,kBAAmB,mBAAoB,eAE/QkK,EAAsB,eAATL,GAAkC,uBAATA,EACtCM,EAAiBztC,IAAYgtC,GAAeC,EAAe,eAAiB,eAGlF,cAFOhM,EAAWyM,oBACXzM,EAAW6L,cAIhBrjD,EAAOsV,QAAQjR,cAAc,MAAO,CAClC8R,WAAW,EAAIkiC,EAAY/iC,SAAS,kBAAmB,CACrD,CAAC,oBAAoBouC,KAASA,EAC9B,yBAAsC,UAAZntC,EAC1B,UAAWiD,EACX,+BAAgCmqC,GAC/B,2BAA4BxtC,GAC/B+K,KAAMA,EACNvd,IAAK2mB,GAAK5jB,KAAKsgD,sBAAwB18B,EACvC07B,qBAAsB,CAAC,UAGvBrM,cAAuBlwC,IAAbkwC,GAA0B34B,EAAY,EAAI24B,EACpDuJ,QAASx8C,KAAKw8C,QACdjI,UAAWv0C,KAAKu0C,UAChBx7C,GAAIA,EACJ,aAAcma,EACd,kBAAmBgqC,IAAmB3lC,IAAUrE,EAAY,GAAGna,YAAe,MAC9E,mBAAoBokD,IAAoB5lC,GAAS1Z,EAAW,GAAG9E,YAAe,MAC9E,aAAcqkD,GAAa9iC,GAC1B/C,GAAsBje,EAAOsV,QAAQjR,cAAc6hD,EAAiB5wC,QAASqhC,EAAS,CACvFpgC,QAASytC,EACT/lC,MAAOA,EACP8lC,WAAYA,EACZP,aAAcA,EACdC,eAAgBA,EAChBF,YAAaA,EACbI,cAAeA,EACflkD,GAAI,GAAGA,aACN+3C,EAAY,CACbwL,UAAWt8C,KAAKs8C,UAChBC,SAAUv8C,KAAKu8C,WACAjjD,EAAOsV,QAAQjR,cAAc,MAAO,CACnD8R,UAAW,qBACR8H,EAAqBje,EAAOsV,QAAQjR,cAAc,MAAO,CAC5D8R,UAAW,0BACX1W,GAAI,GAAGA,aACN8E,GAAYA,GAAWo/C,IAAkBI,GAAcP,GAA6BxjD,EAAOsV,QAAQjR,cAAc8gD,EAAkB7vC,QAASqhC,EAAS,CAAC,EAAGjwC,KAAK3D,MAAO,CACtKwT,QAASytC,EACT7tC,UAAW,yBACX6sC,UAAWt8C,KAAKs8C,UAChBC,SAAUv8C,KAAKu8C,YAGrB,KAEI/K,EAEN35C,EAAA,QAAkBuoD,gCCtIlB,IAEgCnnD,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,YAAY,IAAM,EAAQ,SAAqB,IAAM,EAAQ,qCCpBzGr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAkBI25C,EAAQC,EAASC,EAlBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDi6C,EAAU,EAAQ,MAElBX,EAAYt5C,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjD+lD,EAAQ,EAAQ,OAEhBC,EAAkBhmD,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExCimD,EAAYjmD,EAAuB,EAAQ,QAI/C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAM9F,IAAIynD,GAAW,EAAIjK,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAuBn4C,EAAOsV,QAAQ+R,UAC/G,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAK2gD,YAAa,EAAI7M,EAAUllC,WAChC5O,KAAKmyC,MAAQ,CACXr/B,MAAM,EAEV,CAEA,MAAAiL,CAAOwD,GACLvhB,KAAKuyC,SAAS,CACZz/B,MAAM,IAGJ9S,KAAK3D,MAAM0hB,QACb/d,KAAK3D,MAAM0hB,OAAOwD,EAEtB,CAEA,OAAAjK,CAAQiK,GACNvhB,KAAKuyC,SAAS,CACZz/B,MAAM,KAGJyO,GAAiB,UAAXA,EAAExS,MAA+B,YAAXwS,EAAExS,MAChC/O,KAAK4gD,sBAGH5gD,KAAK3D,MAAMib,SACbtX,KAAK3D,MAAMib,QAAQiK,EAEvB,CAEA,WAAAs/B,GACE7gD,KAAK8gD,eAAeC,OACpB/gD,KAAK4gD,qBACP,CAEA,QAAAjuC,IAAYa,GACNxT,KAAK3D,MAAM2kD,eACbhhD,KAAK6gD,cAGH7gD,KAAK3D,MAAMsW,UACb3S,KAAK3D,MAAMsW,YAAYa,EAE3B,CAEA,OAAA0gC,CAAQ3yB,GACFvhB,KAAK3D,MAAM63C,SACbl0C,KAAK3D,MAAM63C,QAAQ3yB,EAEvB,CAEA,gBAAA0/B,CAAiB1/B,GACf,KAAoC,mBAAzBA,EAAE2/B,oBAAqC3/B,EAAE2/B,sBAAwB3/B,EAAE4/B,mBAI1EnhD,KAAKohD,WACP,OAAQ7/B,EAAEtnB,KACR,IAAK,QACL,IAAK,YACL,IAAK,IACHsnB,EAAEwzB,iBACFxzB,EAAEq8B,kBACF59C,KAAKohD,WAAWlN,UAIxB,CAEA,mBAAA0M,GACE,MAAMriD,EAAOkiD,EAAU7xC,QAAQyyC,YAAYrhD,KAAKohD,YAE5C7iD,GAAQA,EAAK+2C,OACf/2C,EAAK+2C,OAET,CAEA,MAAAtmC,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,WACJ2W,EAAU,cACVguC,EAAa,KACbM,EAAI,QACJvoC,EAAO,kBACPI,EAAiB,YACjBooC,GACEpO,EACErC,EA9FV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA8Fpdu1C,CAAyBoC,EAAa,CAAC,aAAc,gBAAiB,OAAQ,UAAW,oBAAqB,gBAE3Ht1C,EAAWvE,EAAOsV,QAAQmkC,SAASz5B,QAAQtZ,KAAK3D,MAAMwB,UAEtD2jD,EAAe3jD,EAASqrC,MAAKxf,GAAKA,EAAErtB,MAAMyT,mBAAoBjS,EAAS,GACvE4jD,EAAYD,EAAanlD,MAAMtD,IAAMiH,KAAK2gD,WAAa,WACvDe,EAAO7jD,EAASqrC,MAAKxf,GAAKA,EAAErtB,MAAMslD,cAAgBj4B,EAAE3a,OAASwxC,EAAMnpC,QAASvZ,EAAS,GACrF+jD,EAASF,EAAKrlD,MAAMtD,IAAMiH,KAAK2gD,WAAa,QAIlD,cAHO7P,EAAW/yB,cACX+yB,EAAWx5B,eACXw5B,EAAWoD,QACE56C,EAAOsV,QAAQjR,cAAc,OAAO,EAAIk0C,EAAgBjjC,SAASkiC,GAAajzC,EAAS0U,KAAI,CAACC,EAAO6L,IACjH7L,IAAUgvC,EACQloD,EAAOsV,QAAQjR,cAAc6iD,EAAgB5xC,QAAS,CACxEuK,kBAAmBA,EACnB3d,OAAQwE,KACR+Y,QAASA,EACT9F,UAAWD,EAAa,eAAiB,cACzC/V,IAAKsmB,GAAKvjB,KAAK8gD,eAAiBv9B,EAChCg+B,YAAaA,EACbrN,QAASl0C,KAAKk0C,QACdj7B,OAAQjZ,KAAK+d,OACbijC,cAAeA,EACf/mD,IAAKokB,EACLrF,OAAQhZ,KAAKsX,QACbgqC,KAAMA,EACNO,UAAW,GACGvoD,EAAOsV,QAAQsiC,aAAasQ,EAAc,CACxDzoD,GAAI0oD,EACJ,gBAAiBD,EAAanlD,MAAM,kBAAoB,OACxD,gBAAiB2D,KAAKmyC,MAAMr/B,MAAQ,KACpC,gBAAiB9S,KAAKmyC,MAAMr/B,KAAO8uC,EAAS,KAC5CrN,WAAW,EAAIE,EAAQ2B,OAAOoL,EAAanlD,MAAMk4C,UAAWv0C,KAAKihD,kBACjEhkD,IAAKsB,IACHyB,KAAKohD,WAAa7iD,EAClB,MAAM,IACJtB,GACEukD,EAEe,mBAARvkD,GACTA,EAAIsB,EACN,IAEajF,EAAOsV,QAAQsiC,aAAawQ,EAAM,CACjD3oD,GAAI6oD,EACJ,kBAAmBF,EAAKrlD,MAAM,oBAAsBolD,EACpDnqC,QAAStX,KAAK6gD,YACdluC,SAAU3S,KAAK2S,SACfnD,WAAW,EACXwxC,mBAEOxuC,IAAUkvC,EACZlvC,OADF,IAIX,GAECi/B,EAAQzzC,UAAY,CAIrBgjD,cAAezmD,EAAWqU,QAAQ3Q,KAKlC8a,QAASxe,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,YAAa,QAAS,UAKlEx4B,OAAQxjB,EAAWqU,QAAQjQ,KAK3B2Y,QAAS/c,EAAWqU,QAAQjQ,KAK5BgU,SAAUpY,EAAWqU,QAAQjQ,KAK7BqU,WAAYzY,EAAWqU,QAAQ3Q,KAK/BqjD,KAAM/mD,EAAWqU,QAAQ3Q,MACxBwzC,EAAQ1zC,aAAe,CACxBijD,eAAe,EACfjoC,QAAS,SAxLoCy4B,EAyL5CE,KAAWF,EAEd35C,EAAA,QAAkB6oD,gCC1NlB5mD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIiqD,EAAYtnD,EAAuB,EAAQ,OAE3ClB,EAASkB,EAAuB,EAAQ,QAExCunD,EAAe,EAAQ,OAE3B,SAASvnD,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAQ5T7D,EAAA,QANewE,GAAsB/C,EAAOsV,QAAQjR,cAAcokD,EAAaC,gBAAgBC,SAAU,MAAM,EAC7G9oC,uBACiB7f,EAAOsV,QAAQjR,cAAcmkD,EAAUlzC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CACrF8c,kBAAmB9c,EAAM8c,kBAAoB9c,EAAM8c,kBAAoBA,qCCFzErhB,EAAOD,QAAU,EAAjB,qCCbAA,EAAA,QAAkBqqD,EAElB,IAAIxL,EAAUl8C,EAAuB,EAAQ,QAEzCsnD,EAAYtnD,EAAuB,EAAQ,QAE3C+lD,EAAQ,EAAQ,OAEhB4B,EAAQ3nD,EAAuB,EAAQ,QAEvCD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,SAASwmD,EAAex/C,GACtB,IAAI,WACFsQ,EAAU,QACVsE,EAAO,OACPyG,EAAM,SACNpL,EAAQ,SACR9U,EAAQ,cACRmjD,EAAa,cACbljC,EAAa,eACbpO,EAAc,QACdwkC,EAAO,kBACP/6B,GACEzW,EACArG,EAjBN,SAAkCT,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAiB7du1C,CAAyBruC,EAAM,CAAC,aAAc,UAAW,SAAU,WAAY,WAAY,gBAAiB,gBAAiB,iBAAkB,UAAW,sBAElKqW,EAAUrJ,EAAiB,iBAAc3M,EAC7C,OAAoBzJ,EAAOsV,QAAQjR,cAAcmkD,EAAUlzC,QAAS,CAClEyI,MAAO,CACL6jC,QAAS,gBAEX5jC,QAASA,EACTyG,OAAQA,EACRm2B,QAASA,EACTvhC,SAAUA,EACVK,WAAYA,EACZguC,cAAeA,EACfjoC,QAASA,EACTI,kBAAmBA,GACL7f,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAASqhC,EAAS,CACrEpgC,QAAS,SACTqoC,gBAAgB,EAChBtoC,OAAO,EACPF,eAAgBA,EAChBZ,KAAmBxV,EAAOsV,QAAQjR,cAAcwkD,EAAMvzC,QAAS,CAC7DkI,IAAK,OAENza,IAAsB/C,EAAOsV,QAAQjR,cAAc4iD,EAAMnpC,KAAM,CAChE3H,UAAWqO,EACX6jC,cAAc,GACb9jD,GACL,CAEAqkD,EAAelkD,UAAY,CAIzBgjD,cAAezmD,EAAWqU,QAAQ3Q,KAKlC8f,OAAQxjB,EAAWqU,QAAQjQ,KAK3B2Y,QAAS/c,EAAWqU,QAAQjQ,KAK5BgU,SAAUpY,EAAWqU,QAAQjQ,KAK7BqU,WAAYzY,EAAWqU,QAAQ3Q,KAK/B6f,cAAevjB,EAAWqU,QAAQ1Q,OAKlCwR,eAAgBnV,EAAWqU,QAAQ3Q,oCCrGrC,IAEgChF,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,cAAc,IAAM,EAAQ,SAAuB,IAAM,EAAQ,SAAoB,IAAM,EAAQ,uCCpB/Ir8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBuqD,EAElB,IAAIzQ,EAAcn3C,EAAuB,EAAQ,QAE7C6nD,EAAa7nD,EAAuB,EAAQ,QAE5CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAqB5T,SAAS0mD,EAAW1/C,GAClB,IAAI,MACFqN,EAAK,SACL+D,EAAQ,SACRjW,EAAQ,UACR4R,EAAS,SACTsE,EAAQ,UACRF,EAAS,mBACTyuC,GACE5/C,EACAouC,EA7BN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA6Bxdu1C,CAAyBruC,EAAM,CAAC,QAAS,WAAY,WAAY,YAAa,WAAY,YAAa,uBAExH,OAAoBpJ,EAAOsV,QAAQjR,cAAc0kD,EAAWzzC,QAASqhC,EAAS,CAC5ElgC,MAAOA,EACPN,UAAWA,EACXoE,UAAWA,EACXyuC,mBAAoBA,EACpBC,cAAe,aACf5H,gBAAgB,EAAIhJ,EAAY/iC,SAAS,sBAAuB,CAC9D,4BAA0C,SAAbkF,EAC7B,6BAA2C,UAAbA,IAEhCC,SAAUA,GACT+8B,GAAajzC,EAClB,CAhCE,EAAQ,OAGuI,EAAQ,MACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OA4B3JukD,EAAWtkD,YAAc,aACzBskD,EAAWpkD,UAAY,CAIrB+R,MAAOxV,EAAWqU,QAAQ1Q,OAAOC,WAOjC2V,SAAUvZ,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,UAK5C9mC,UAAWlV,EAAWqU,QAAQ1Q,OAK9B6V,SAAUxZ,EAAWqU,QAAQ1Q,OAK7B2V,UAAWtZ,EAAWqU,QAAQ2nC,MAAM,CAAC,WAAY,aAMjD+L,mBAAoB/nD,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,WAExD6L,EAAWrkD,aAAe,CACxBukD,mBAAoB,sCClGtBxoD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkB2qD,EAElB,IAAIC,EAAYjoD,EAAuB,EAAQ,QAE3Cm3C,EAAcn3C,EAAuB,EAAQ,QAE7Cs5C,EAAYt5C,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDkoD,EAAQ,EAAQ,OAEhBppD,EAASkB,EAAuB,EAAQ,QAE5C,SAASy1C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,SAASlB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,MAAM0pD,EAAe,CACnB,QAASnoD,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,OAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,OAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,SAEnE,IAAIg0C,GAAgB,EAAIF,EAAMG,kBAAkBF,GAEhD,SAASH,EAAU9/C,GACjB,IAAI,MACFqN,EAAK,SACLlS,EAAQ,UACR4R,EAAS,eACTkrC,EAAc,iBACdmI,EAAgB,SAChB/uC,EAAQ,cACRwuC,EAAa,UACb1uC,EAAS,mBACTyuC,GACE5/C,EACAouC,EA3CN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA2Cxdu1C,CAAyBruC,EAAM,CAAC,QAAS,WAAY,YAAa,iBAAkB,mBAAoB,WAAY,gBAAiB,YAAa,uBAE/JqgD,EAAe,CACjB/uC,SAAU,GAAGjE,KAAS6yC,EAAc,gBACpCI,SAAU,GAAGjzC,KAAS6yC,EAAc,iBAElC9zC,EAAO,KAEgB,SAAvBwzC,GAA+C,aAAdzuC,IACnC/E,EAAoBxV,EAAOsV,QAAQjR,cAAc8kD,EAAU7zC,QAAS,CAClE4L,KAAM,eACN/K,UAAW,4DACXmH,KAAM,IACNE,IAAK8rC,EAAc,iBAQvB,IAEI7pD,EAFAkqD,EAAa3pD,EAAOsV,QAAQmkC,SAASz5B,QAAQzb,GAG7CqlD,EAAUpS,EAAW/3C,KAAM,EAAI+6C,EAAUllC,WAG7C,UAFOkiC,EAAW/3C,GAEQ,IAAtBkqD,EAAWtnD,OAAc,CAE3B5C,EAAKkqD,EAAW,GAAG5mD,MAAMtD,KAAM,EAAI+6C,EAAUllC,WAC7C,IAAIsuC,EAAiB+F,EAAW,GAAG5mD,MAAM,qBAAuB0T,EAAQmzC,EAAU,MAClFD,EAAW,GAAkB3pD,EAAOsV,QAAQsiC,aAAa+R,EAAW,GAAI,CACtElqD,KACA,kBAAmBmkD,GAEvB,CAEInkD,IAAOgb,IACTA,EAAWhb,GAGRgb,GACHrX,QAAQkvC,KAAK,iCAAiC2W,iBAA6BxyC,MAG7E,IAAIozC,GAAsB,EAAIxR,EAAY/iC,SAAS+rC,EAAsC,IAAtBsI,EAAWtnD,OAAe8T,EAAY,MACrG2zC,EAAarzC,EAAqBzW,EAAOsV,QAAQjR,cAAc,QAASsyC,EAAS,CACnFxgC,UAAW0zC,EACXpqD,GAAImqD,EACJG,QAAStvC,IACR,EAAI89B,EAAgBjjC,SAASkiC,IAAcj9B,GAAoC,UAAvByuC,EAAiCS,EAAalvC,GAAa9D,EAAOjB,GAAQ,IAAKA,GAAQA,GAAqBxV,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAClNxgC,UAAW0zC,IACV,EAAItR,EAAgBjjC,SAASkiC,KAEhC,OAAImS,EAAWtnD,OAAS,GAClBmnD,IACFG,EAA0B3pD,EAAOsV,QAAQjR,cAAc,MAAO,CAC5D,cAAe,YACf8R,UAAWqzC,GACVG,IAGe3pD,EAAOsV,QAAQjR,cAAc,MAAO,CACtD8R,UAAWA,GACV2zC,EAAYH,IAGVG,CACT,CAEAZ,EAAUzkD,aAAe,CACvBukD,mBAAoB,sCCrItBxoD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkByrD,EAElB,IAAI/oD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExC+oD,EAAiB/oD,EAAuB,EAAQ,QAEpD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAIpV,SAASe,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAEhN,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,MAAMu/C,EAAa,CACjBC,QAAS,QAGX,SAASsI,EAAc1vC,EAAUuD,GAC/B,OAAKvD,EAKEuD,EAHEvd,OAAOo2C,OAAO,CAAC,EAAG+K,EAAY5jC,EAIzC,CAEA,SAASisC,EAAgB5gD,GACvB,IAAI,MACFqN,EAAK,SACL+D,EAAQ,SACRjW,EAAQ,UACR4R,EAAS,SACTsE,EAAQ,UACRF,EAAS,mBACTyuC,EAAkB,MAClBjrC,GACE3U,EACAouC,EA5BN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA4Bxdu1C,CAAyBruC,EAAM,CAAC,QAAS,WAAY,WAAY,YAAa,WAAY,YAAa,qBAAsB,UAE9I,IAAM7E,GAAyB,UAAbiW,EAChB,OAAoBxa,EAAOsV,QAAQjR,cAAc,WAAYsyC,EAAS,CACpE54B,MAAOmsC,EAAc1vC,EAAUuD,GAC/BgsC,QAAStvC,EACTtD,MAAOhB,EACPI,QAAsB,SAAbiE,EAAsB,OAAS,UACxC2vC,mBAAoBnB,EACpBoB,WAA0B,aAAd7vC,GAAkC,MAC7Ci9B,GAAa/gC,GAGlB,MAAM4zC,EA/CR,SAAuBnoD,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CA+ChgBD,CAAc,CAC/BwU,QACA+D,WACAjW,WACA4R,YACAsE,WACAF,YACAyuC,qBACAjrC,SACCy5B,GAEH,OAAoBx3C,EAAOsV,QAAQjR,cAAc4lD,EAAe30C,QAAS+0C,EAC3E,CAEAL,EAAgBxlD,YAAc,aAC9BwlD,EAAgBtlD,UAAY,CAI1B+R,MAAOxV,EAAWqU,QAAQ1Q,OAAOC,WAOjC2V,SAAUvZ,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,UAK5C9mC,UAAWlV,EAAWqU,QAAQ1Q,OAK9B6V,SAAUxZ,EAAWqU,QAAQ1Q,OAK7B2V,UAAWtZ,EAAWqU,QAAQ2nC,MAAM,CAAC,WAAY,aAMjD+L,mBAAoB/nD,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,WAExD+M,EAAgBvlD,aAAe,CAC7BukD,mBAAoB,sCChHtBxoD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkB+rD,EAElB,IAAInB,EAAYjoD,EAAuB,EAAQ,QAE3Cm3C,EAAcn3C,EAAuB,EAAQ,QAE7CkoD,EAAQ,EAAQ,OAEhBnoD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExCqpD,EAAgBrpD,EAAuB,EAAQ,OAInD,SAASy1C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,SAASlB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAR9F,EAAQ,OAUR,MAAM0pD,EAAe,CACnB,QAASnoD,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,OAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,OAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,SAUjE,EAAQ,OAGuI,EAAQ,MACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAC3J,IAAIg0C,GAAgB,EAAIF,EAAMG,kBAAkBF,GAEhD,SAASiB,EAAclhD,GACrB,IAAI,MACFqN,EAAK,SACL+D,EAAQ,SACRjW,EAAQ,UACR4R,EAAS,SACTsE,EAAQ,UACRF,EAAS,mBACTyuC,GACE5/C,EACAouC,EAxDN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAwDxdu1C,CAAyBruC,EAAM,CAAC,QAAS,WAAY,WAAY,YAAa,WAAY,YAAa,uBAEpHqgD,EAAe,CACjB/uC,SAAU,GAAGjE,KAAS6yC,EAAc,gBACpCI,SAAU,GAAGjzC,KAAS6yC,EAAc,iBAElC9zC,EAAO,KAUX,MAR2B,SAAvBwzC,GAA+C,aAAdzuC,IACnC/E,EAAoBxV,EAAOsV,QAAQjR,cAAc8kD,EAAU7zC,QAAS,CAClEa,UAAW,4DACXmH,KAAM,IACNE,IAAK8rC,EAAc,iBAIHtpD,EAAOsV,QAAQjR,cAAckmD,EAAcj1C,QAASqhC,EAAS,CAC/ElgC,MAAO8D,GAAoC,UAAvByuC,EAAiCS,EAAalvC,GAAa9D,EAC/EN,UAAWA,EACX8yC,cAAe,aACf5H,gBAAgB,EAAIhJ,EAAY/iC,SAAS,sBAAuB,+BAAgC,CAC9F,4BAA0C,SAAbkF,EAC7B,6BAA2C,UAAbA,IAEhCC,SAAUA,EACVjF,KAAMA,EACNgF,SAAUA,GACTg9B,GAAajzC,EAClB,CAEA+lD,EAAc9lD,YAAc,aAC5B8lD,EAAc5lD,UAAY,CAIxB+R,MAAOxV,EAAWqU,QAAQ1Q,OAAOC,WAOjC2V,SAAUvZ,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,UAK5C9mC,UAAWlV,EAAWqU,QAAQ1Q,OAK9B6V,SAAUxZ,EAAWqU,QAAQ1Q,OAK7B2V,UAAWtZ,EAAWqU,QAAQ2nC,MAAM,CAAC,WAAY,aAMjD+L,mBAAoB/nD,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,WAExDqN,EAAc7lD,aAAe,CAC3BukD,mBAAoB,qCC/ItBxoD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAoBA,SAAsB6K,GACpB,IAmBI3J,GAnBA,MACFgX,EAAK,SACLlS,EAAQ,UACR4R,EAAS,eACTkrC,EAAc,iBACdmI,EAAgB,SAChB/uC,EAAQ,cACRwuC,EAAa,KACbzzC,EAAI,SACJgF,GACEpR,EACAouC,EAhBN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAgBxdu1C,CAAyBruC,EAAM,CAAC,QAAS,WAAY,YAAa,iBAAkB,mBAAoB,WAAY,gBAAiB,OAAQ,aAM1JugD,EAAa3pD,EAAOsV,QAAQmkC,SAASz5B,QAAQzb,GAG7CqlD,EAAUpS,EAAW/3C,KAAM,EAAI+6C,EAAUllC,WAG7C,UAFOkiC,EAAW/3C,GAEQ,IAAtBkqD,EAAWtnD,OAAc,CAE3B5C,EAAKkqD,EAAW,GAAG5mD,MAAMtD,KAAM,EAAI+6C,EAAUllC,WAC7C,IAAIsuC,EAAiB+F,EAAW,GAAG5mD,MAAM,qBAAuB0T,EAAQmzC,EAAU,MAClFD,EAAW,GAAkB3pD,EAAOsV,QAAQsiC,aAAa+R,EAAW,GAAI,CACtElqD,KACAmqD,UACA,kBAAmBhG,GAEvB,CAEInkD,IAAOgb,IACTA,EAAWhb,GAGRgb,GACHrX,QAAQkvC,KAAK,iCAAiC2W,iBAA6BxyC,MAG7E,IAAIozC,GAAsB,EAAIxR,EAAY/iC,SAAS+rC,EAAsC,IAAtBsI,EAAWtnD,OAAe8T,EAAY,MACrG2zC,EAAarzC,EAAqBzW,EAAOsV,QAAQjR,cAAc,QAASsyC,EAAS,CACnFxgC,UAAW0zC,EACXpqD,GAAImqD,EACJG,QAAStvC,IACR,EAAI89B,EAAgBjjC,SAASkiC,IAAc/gC,EAAOjB,GAAQ,IAAKA,GAAQA,GAAqBxV,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC1IxgC,UAAW0zC,IACV,EAAItR,EAAgBjjC,SAASkiC,KAEhC,OAAImS,EAAWtnD,OAAS,GAClBmnD,IACFG,EAA0B3pD,EAAOsV,QAAQjR,cAAc,MAAO,CAC5D8R,UAAWqzC,GACVG,IAGe3pD,EAAOsV,QAAQjR,cAAc,MAAO,CACtD8R,WAAW,EAAIkiC,EAAY/iC,SAASa,EAAW,0BAA2B,CACxE,+BAA6C,SAAbqE,GAAoC,UAAbA,EACvD,kCAAgD,SAAbA,GAAoC,UAAbA,KAE3DsvC,EAAYH,IAGVG,CACT,EAtFA,IAAIzR,EAAcn3C,EAAuB,EAAQ,QAE7Cs5C,EAAYt5C,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDlB,EAASkB,EAAuB,EAAQ,QAI5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAJ5T,EAAQ,qCCGR5D,EAAOD,QAAU,EAAjB,qCChBAiC,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBisD,EAElB,IAAInS,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,MAAMk5C,EAAW,CACf,EAAG,UACH,EAAG,YACH,EAAG,YACH,EAAG,YACH,EAAG,YACH,EAAG,aAECmP,EAAW,CACf,QAAW,KACX,UAAa,KACb,UAAa,KACb,UAAa,KACb,UAAa,MAGf,SAASD,EAAQphD,GACf,IAAI,QACFmN,EAAO,KACP+G,EAAO,EAAC,SAER/Y,EAAQ,UACR4R,GACE/M,EACAouC,EA5BN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA4Bxdu1C,CAAyBruC,EAAM,CAAC,UAAW,OAAQ,WAAY,cAEhFmN,EAAUA,GAAW+kC,EAASh+B,IAAS,UACvC,MAAM2+B,EAAUwO,EAASl0C,GACzB,OAAoBvW,EAAOsV,QAAQjR,cAAc43C,EAAStF,EAAS,CACjExgC,WAAW,EAAIkiC,EAAY/iC,SAAS,mBAAoB,qBAAqBiB,IAAWJ,KACvF,EAAIoiC,EAAgBjjC,SAASkiC,IAAcjzC,EAChD,CAEAimD,EAAQhmD,YAAc,UACtBgmD,EAAQ9lD,UAAY,CASlB6R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,UAAW,YAAa,YAAa,YAAa,cAKrF9mC,UAAWlV,EAAWqU,QAAQ1Q,sCCrEhC,IAAI6xC,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sLCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,2LCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,SACtH,EACAuhC,EAAYvyC,YAAc,MAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,8NCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,8OCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,YAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,6SCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,8PCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,QAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oJCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oJCAnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,YAE1BjG,EAAQ,EAAUw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oJCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sJCAnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,UAE1BjG,EAAQ,EAAUw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,2bCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,2UCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,WAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oTCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oUCAnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,kBAE1BjG,EAAQ,EAAUw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,gMCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,4NCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,cAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,2MCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,6NCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,cAE1BjG,EAAA,QAAkBw4C,+BCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,2MCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,gOCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,MAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,eAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,SAAU,CAAEqmD,GAAI,KAAMC,GAAI,KAAM9+C,EAAG,sCCJzD,IAAI4qC,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,SAAU,CAAEqmD,GAAI,KAAMC,GAAI,KAAM9+C,EAAG,wCCJzDrL,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,SAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,MACtFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,KAAMmxB,EAAG,MACvFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACtFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,KAAMmxB,EAAG,sCCPzF,IAAIrU,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,MACtFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,KAAMmxB,EAAG,MACvFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACtFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,KAAMmxB,EAAG,sCCPzFtqD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,kBAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,wFACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,qMCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,qKACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,uICDnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,QAE1BjG,EAAQ,EAAUw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sUCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,kVCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,SACtH,EACAuhC,EAAYvyC,YAAc,QAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,uZCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sXCAnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,cAE1BjG,EAAQ,EAAUw4C,+BCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,wLCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,yLCAnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,MAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,QAE1BjG,EAAQ,EAAUw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,4PACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,kGCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,qFACjCssB,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,KAAMmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,KAAMmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,KAAMmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,KAAMmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,KAAMmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,KAAMmxB,EAAG,MACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,OAC5E8c,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,OAC5E8c,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,OAC5E8c,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,OAC5E8c,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,KAAMmxB,EAAG,MACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,KAAMmxB,EAAG,sCChBvFtqD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,SACtH,EACAuhC,EAAYvyC,YAAc,OAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,wjBCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,spBCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,SAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sOACjCssB,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,QAAS2I,GAAI,KAAMC,GAAI,KAAM7xC,MAAO,IAAK2gB,EAAG,KAAMmxB,EAAG,SAC3FrU,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,6SCNnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,0SACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iMCDnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,gBAE1BjG,EAAQ,EAAUw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,6MCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oPCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,gBAE1BjG,EAAA,QAAkBw4C,+BCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,0RCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,yRCAnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,MAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,eAE1BjG,EAAQ,EAAUw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,uNCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,gNCAnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,kBAE1BjG,EAAQ,EAAUw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,gIACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sKCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,2HACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,mJCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,WAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,2hBCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,wgBCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,oBAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,gFACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oSCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,+EACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oQCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,YAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iIACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,6HCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,6IACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iICLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,SACtH,EACAuhC,EAAYvyC,YAAc,SAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,8WACjCssB,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,KAAMC,GAAI,KAAM7xC,MAAO,IAAK2gB,EAAG,IAAKmxB,EAAG,qCCLzF,IAAIrU,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,+YACjCssB,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,IAAKmxB,EAAG,qCCLvFtqD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,OAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,uJCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oJCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,SAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iHACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oUCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,gKACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,+QCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,YAE1BjG,EAAA,QAAkBw4C,+BCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,0MACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,4yBCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sNACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,wyBCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,MAAS,GAAI,EAAQ,SACtH,EACAuhC,EAAYvyC,YAAc,QAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,4HACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,+HCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,4IACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oICDnC,IAAIwsB,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,SAE1BjG,EAAQ,EAAUw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,SAAU,CAAEqmD,GAAI,KAAMC,GAAI,KAAM9+C,EAAG,SACvD4qC,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,0KACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iKCNnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,qHACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,wRCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,cAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,SAAU,CAAEqmD,GAAI,KAAMC,GAAI,KAAM9+C,EAAG,QACvD4qC,EAAMpyC,cAAc,SAAU,CAAEqmD,GAAI,KAAMC,GAAI,KAAM9+C,EAAG,QACvD4qC,EAAMpyC,cAAc,SAAU,CAAEqmD,GAAI,IAAKC,GAAI,KAAM9+C,EAAG,uCCNxD,IAAI4qC,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,SAAU,CAAEqmD,GAAI,KAAMC,GAAI,KAAM9+C,EAAG,MACvD4qC,EAAMpyC,cAAc,SAAU,CAAEqmD,GAAI,KAAMC,GAAI,KAAM9+C,EAAG,MACvD4qC,EAAMpyC,cAAc,SAAU,CAAEqmD,GAAI,IAAKC,GAAI,KAAM9+C,EAAG,qCCNxDrL,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,OAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,6UCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,8UCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,OAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,uIACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,wLCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,kKACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,kMCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,SAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,qJACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,kMCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,qJACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,oMCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,SAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,ihBCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,gYACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iOCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,aAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,sCCJvF,IAAIrU,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,sCCJvFtqD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,SAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sYCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,KAAMC,GAAI,KAAM7xC,MAAO,IAAK2gB,EAAG,KAAMmxB,EAAG,MACxFrU,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,uVACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sXCNnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,SAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,4SACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sGCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,8RACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,4HCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,eAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,8HACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,uMCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,0KACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,mKCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,QAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,8KACjCssB,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,qCCPvF,IAAIrU,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iIACjCssB,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,sCCPvFtqD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,gBAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iLACjCssB,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,MACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,qCCPvF,IAAIrU,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iIACjCssB,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACrFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,sCCPvFtqD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,SACtH,EACAuhC,EAAYvyC,YAAc,cAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iRCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,gTCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,OAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,odCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,+XCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,cAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,iUCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,kQCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,OAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,kgBCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,ofCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,gBAE1BjG,EAAA,QAAkBw4C,+BCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,4ZCJnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,yZCJnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,MAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,OAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,qWACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,mYCLnC,IAAIssB,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,8UACjCssB,EAAMpyC,cAAc,OAAQ,CAAE8lB,EAAG,sVCLnC3pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,YAE1BjG,EAAA,QAAkBw4C,gCCrBlB,IAAIN,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,IAAKmxB,EAAG,MACpFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,KAAMC,GAAI,KAAM7xC,MAAO,KAAM2gB,EAAG,KAAMmxB,EAAG,MACxFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,KAAMC,GAAI,KAAM7xC,MAAO,KAAM2gB,EAAG,KAAMmxB,EAAG,OACxFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,KAAMC,GAAI,KAAM7xC,MAAO,KAAM2gB,EAAG,KAAMmxB,EAAG,OACxFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,IAAKmxB,EAAG,OACpFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,IAAK2gB,EAAG,IAAKmxB,EAAG,sCCTtF,IAAIrU,EAAQ,EAAQ,OACpBj4C,EAAOD,QAAUk4C,EAAMpyC,cACrB,MACA,CAAEqyC,QAAS,aACXD,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,MACtFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACtFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,KAAM2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,IAAKmxB,EAAG,OACtFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,KAAMmxB,EAAG,MACtFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,KAAMmxB,EAAG,OACtFrU,EAAMpyC,cAAc,OAAQ,CAAE49C,OAAQ,IAAK2I,GAAI,IAAKC,GAAI,IAAK7xC,MAAO,KAAM2gB,EAAG,KAAMmxB,EAAG,sCCTxFtqD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIg0C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P20C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cAAcwyC,EAAOvhC,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CAAEyS,KAAM,CAAE,GAAI,EAAQ,OAAS,GAAI,EAAQ,UACtH,EACAuhC,EAAYvyC,YAAc,WAE1BjG,EAAA,QAAkBw4C,gCCrBlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,+BACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,wUAAyUhU,UAAW,4BAC/X2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,8UAA+UhU,UAAW,4BAG3Y,EAEA4gC,EAAYvyC,YAAc,cAC1BjG,EAAA,QAAkBw4C,gCC5BlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,mCACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,8IAA+IhU,UAAW,4BACrM2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,uHAAwHhU,UAAW,4BAGpL,EAEA4gC,EAAYvyC,YAAc,kBAC1BjG,EAAA,QAAkBw4C,gCC5BlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,kCACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,kIAAmIhU,UAAW,4BACzL2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,+IAAgJhU,UAAW,4BAG5M,EAEA4gC,EAAYvyC,YAAc,iBAC1BjG,EAAA,QAAkBw4C,gCC5BlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,qCACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,4HAA6HhU,UAAW,4BACnL2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,+HAAgIhU,UAAW,4BAG5L,EAEA4gC,EAAYvyC,YAAc,oBAC1BjG,EAAA,QAAkBw4C,gCC5BlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,sCACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,yHAA0HhU,UAAW,4BAChL2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,0HAA2HhU,UAAW,4BAGvL,EAEA4gC,EAAYvyC,YAAc,qBAC1BjG,EAAA,QAAkBw4C,+BC5BlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,kCACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,sHAAuHhU,UAAW,4BAC7K2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,sHAAuHhU,UAAW,4BAGnL,EAEA4gC,EAAYvyC,YAAc,iBAC1BjG,EAAA,QAAkBw4C,gCC5BlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,8BACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,0KAA2KhU,UAAW,4BACjO2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,0KAA2KhU,UAAW,4BAGvO,EAEA4gC,EAAYvyC,YAAc,aAC1BjG,EAAA,QAAkBw4C,gCC5BlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,+BACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,qLAAsLhU,UAAW,4BAC5O2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,qLAAsLhU,UAAW,4BAGlP,EAEA4gC,EAAYvyC,YAAc,cAC1BjG,EAAA,QAAkBw4C,gCC5BlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,6BACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,wCAAyChU,UAAW,4BAC/F2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,kDAAmDhU,UAAW,4BAG/G,EAEA4gC,EAAYvyC,YAAc,YAC1BjG,EAAA,QAAkBw4C,gCC5BlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,8BACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,yYAA0YhU,UAAW,4BAChc2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,yYAA0YhU,UAAW,4BAGtc,EAEA4gC,EAAYvyC,YAAc,aAC1BjG,EAAA,QAAkBw4C,gCC5BlBv2C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIk0C,EAAS31C,EAFD,EAAQ,QAMhB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIo3C,EAAc,SAAqBh0C,GACrC,OAAO+zC,EAAQxhC,QAAQjR,cACrBwyC,EAAOvhC,QACPvS,EACA+zC,EAAQxhC,QAAQjR,cACd,MACA,CAAE8R,UAAW,iCACb2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,0OAA2OhU,UAAW,4BACjS2gC,EAAQxhC,QAAQjR,cAAc,OAAQ,CAAE8lB,EAAG,oOAAqOhU,UAAW,4BAGjS,EAEA4gC,EAAYvyC,YAAc,gBAC1BjG,EAAA,QAAkBw4C,gCCZlBv4C,EAAOD,QAAU,EAAjB,qCChBAiC,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBy4C,EAElB,IAAIqB,EAAcn3C,EAAuB,EAAQ,QAE7CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAIpV,SAASe,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAa9M,EAAQ,OAGV,MAAMu3C,EAAQ,CACZC,IAAK,GACLC,GAAI,GACJ5wB,EAAG,GACHC,EAAG,GACHC,EAAG,GACH2wB,GAAI,GACJC,IAAK,IAGP,SAASN,EAAK5tC,GACZ,IAAI,KACFoM,EAAI,KAEJ8H,EAAO,IAAG,UAEVnH,EAAS,SACT5R,EACA,aAAcqV,EACd,cAAemxC,EAAU,KACzB7pC,EAAO,MAAK,IACZ1D,GACEpU,EACAouC,EArCN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAqCxdu1C,CAAyBruC,EAAM,CAAC,OAAQ,OAAQ,YAAa,WAAY,aAAc,cAAe,OAAQ,QAE/H,MAAMsuC,EAAUR,EAAM55B,GACtB,IAAIq6B,EAAMniC,GAAQA,EAAKkiC,IAAYliC,GAAQjR,EAE3C,GAAmB,iBAARozC,EACT,MAAM,IAAI9qC,MAAM,uHAOlB,OAJKk+C,GAA6B,UAAfA,IACjBA,OAAathD,GAGKzJ,EAAOsV,QAAQsiC,aAAaD,EAtDlD,SAAuBz1C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAsD9dD,CAAc,CACjE41C,UAAW,QACX,aAAcj+B,GAAa4D,EAC3B,eAAe5D,IAAa4D,GAAMutC,EAClC7pC,OACA/K,WAAW,EAAIkiC,EAAY/iC,SAASqiC,EAAI50C,MAAMoT,UAAW,gBAAiB,CACxE,CAAC,sBAAsBmH,KAASA,GAC/BnH,IACFqhC,GACL,CAEAR,EAAKxyC,YAAc,OACnBwyC,EAAKtyC,UAAY,CAIf4Y,KAAMrc,EAAWqU,QAAQ1Q,sCCrF3B,IAEgCjF,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,QAAQ,IAAM,EAAQ,SAAc,IAAM,EAAQ,SAAc,IAAM,EAAQ,uCCpB1Hr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBysD,EAElB,IAAI7P,EAAU,EAAQ,MAElB9C,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAqB5T,SAASq5C,EAAexzB,GACjBA,EAAE4/B,kBACL5/B,EAAEwzB,gBAEN,CAEA,SAASuP,EAAK5hD,GACZ,IAAI,OACF6hD,EAAM,QAEN10C,EAAO,SACPhS,EAAQ,UACR4R,EAAS,KACTumC,EAAI,QACJ9B,GACExxC,EACAouC,EAnCN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAmCxdu1C,CAAyBruC,EAAM,CAAC,SAAU,UAAW,WAAY,YAAa,OAAQ,YAiBvG,OAfI6hD,IACF7nD,QAAQkvC,KAAK,gFACb/7B,EAAU,SAGI,WAAZA,IACFnT,QAAQkvC,KAAK,mFACb/7B,EAAU,SAGPmmC,GAA2B,mBAAZ9B,IAClB8B,EAAO,IACP9B,GAAU,EAAIO,EAAQ2B,OAAOlC,EAASa,IAGpBz7C,EAAOsV,QAAQjR,cAAc,IAAKsyC,EAAS,CAC7DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,gBAAiB,CACnD,CAAC,kBAAkBiB,KAAYA,GAC9BJ,GACHumC,KAAMA,EACN9B,QAASA,IACR,EAAIrC,EAAgBjjC,SAASkiC,IAAcjzC,EAChD,CAhDE,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OA4C3JymD,EAAKtmD,UAAY,CAEfyR,UAAWlV,EAAWqU,QAAQ1Q,OAG9B2R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,SAAU,oBAExD+N,EAAKxmD,YAAc,qCCvFnBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAUI25C,EAAQC,EAASC,EAVjB8E,EAAgB,EAAQ,OAExBC,EAAqBj8C,EAAuB,EAAQ,QAEpDi6C,EAAU,EAAQ,MAElBl6C,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,MAAM8oD,EAAgB,CACpB51C,QAAS,UACTgB,MAAO,YACP20C,OAAQ,YAERpN,eAAgB,kBAGlB,SAASpC,EAAexzB,GACjBA,EAAE4/B,kBACL5/B,EAAEwzB,gBAEN,CAEA,IAAI0P,GAAY,EAAIhO,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAwBn4C,EAAOqnB,UACzG,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAK0kD,UAAyBprD,EAAOsV,QAAQ0oC,WAC/C,CAEA,WAAAC,CAAYj0C,GACV,MAAMk0C,EAAY19C,OAAOiB,KAAKiF,KAAK3D,OAAOnB,QAAOu8C,GAAYA,EAASlzC,OAAO,GAAG0nB,gBAAkB3oB,EAAMyL,OAEpG/O,KAAK3D,MAAMm7C,IAA4B,YAAdA,GAC3Bx3C,KAAK3D,MAAMm7C,GAAWr9C,KAAKmJ,EAAM9H,OAAQ8H,EAE7C,CAEA,iBAAA8xC,IACE,EAAIoB,EAAckB,sBAAsB13C,KAAK0kD,UAAU5yC,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACnF,CAEA,oBAAAI,IACE,EAAInB,EAAcoB,sBAAsB53C,KAAK0kD,UAAU5yC,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACnF,CAEA,kBAAAM,CAAmBC,GACjB93C,KAAK+3C,0BAA2B,EAAIvB,EAAcwB,sBAAsBh4C,KAAK0kD,UAAU5yC,QAASgmC,EAAW93C,KAAK3D,MAAO2D,KAAKu3C,YAAav3C,KAAK+3C,wBAChJ,CAEA,MAAA/oC,GACE,IAAImkC,EAAcnzC,KAAK3D,OACnB,OACFkoD,EAAM,QAEN10C,EAAO,SACPhS,EAAQ,UACR4R,EAAS,KACTumC,EAAI,QACJ9B,EAAO,SACP33C,GACE42C,EACArC,EAxDR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAwDtdu1C,CAAyBoC,EAAa,CAAC,SAAU,UAAW,WAAY,YAAa,OAAQ,UAAW,aAYzH,OAVIoR,IACF7nD,QAAQkvC,KAAK,4CACb/7B,EAAU,SAGPmmC,GAA2B,mBAAZ9B,IAClB8B,EAAO,IACP9B,GAAU,EAAIO,EAAQ2B,OAAOlC,EAASa,IAGpBz7C,EAAOsV,QAAQjR,cAAc,UAAWsyC,EAAS,CACnEhzC,IAAK+C,KAAK0kD,UACVj0C,MAAOhB,EACPI,aAAqB9M,IAAZ8M,EAAwB,UAAY20C,EAAc30C,GAC3DD,WAAmB7M,IAAZ8M,GAAqC,YAAZA,GAA+B,KAC/DtT,WAAUA,GAAkB,KAC5By5C,KAAMA,EACN9B,QAASA,IACR,EAAIsC,EAAc+B,kBAAkBzH,IAAcjzC,EACvD,GAEC4zC,EAAQzzC,UAAY,CAErByR,UAAWlV,EAAWqU,QAAQ1Q,OAG9B2R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,SAAU,oBAlER/E,EAmE7CE,KAAWF,EAEd35C,EAAA,QAAkB4sD,gCChHlB3qD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETnC,OAAOC,eAAelC,EAAS,OAAQ,CACrCuD,YAAY,EACZzB,IAAK,WACH,OAAOgrD,EAAM/1C,OACf,IAEF/W,EAAQ+sD,cAAW,EAEnB,IAAIvT,EAAc72C,EAAuB,EAAQ,QAE7CmqD,EAAQnqD,EAAuB,EAAQ,QAE3C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAkB9F,MAAM2rD,EAAWvT,EAAYziC,QAAQunB,OAAO,YAAY,IAAM,EAAQ,SAAqB,IAAM,EAAQ,SAEzGt+B,EAAQ+sD,SAAWA,gCCnCnB9qD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAgBI25C,EAAQC,EAASC,EAhBjBC,EAAcn3C,EAAuB,EAAQ,QAE7Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDs5C,EAAYt5C,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDs3C,EAAgBt3C,EAAuB,EAAQ,QAE/Cu5C,EAAav5C,EAAuB,EAAQ,QAE5CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAa1T,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAC3J,MAAMmpD,EAAqB,sBACrBC,EAAwB,qBACxBC,EAA8BF,EAAqBC,EAAwB,eAEjF,IAAIE,GAAO,EAAIpT,EAAqBhjC,SAAS4iC,GAAS,EAAIuC,EAAWnlC,UAAmB8iC,EAAQD,EAAU,cAAmBn4C,EAAOqnB,UAClI,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKilD,QAAS,EAAInR,EAAUllC,UAC9B,CAEA,MAAAI,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,UACJoT,EAAS,SACT5R,EAAQ,KACR2c,EAAO,UAAS,UAChBhL,EAAS,WACT01C,GAAa,EAAK,GAClBnsD,EAAKiH,KAAKilD,OAAM,aAChBE,GAAe,GACbhS,EACErC,EAvCV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAuCpdu1C,CAAyBoC,EAAa,CAAC,YAAa,WAAY,OAAQ,YAAa,aAAc,KAAM,iBAE5H,OAAoB75C,EAAOsV,QAAQjR,cAAcm0C,EAAcljC,QAAS,CACtE6kC,aAAcoR,EAAqBC,EACnChL,qBAAsBiL,EACtBI,aAAcA,EACd31C,UAAWA,GACGlW,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAC1Dl3C,GAAIA,EACJ0W,WAAW,EAAIkiC,EAAY/iC,SAAS,gBAAiB,CACnD,gBAAiBs2C,GAChBz1C,GACH+K,KAAMA,IACL,EAAIq3B,EAAgBjjC,SAASkiC,IAAcjzC,GAChD,GAEC4zC,EAAQzzC,UAAY,CAKrBwR,UAAWjV,EAAWqU,QAAQ3Q,KAK9BwR,UAAWlV,EAAWqU,QAAQ1Q,OAK9Bsc,KAAMjgB,EAAWqU,QAAQ2nC,MAAM,CAAC,UAAW,SAK3C2O,WAAY3qD,EAAWqU,QAAQ3Q,KAK/BknD,aAAc5qD,EAAWqU,QAAQ3Q,MAChCwzC,EAAQ1zC,aAAe,CACxByc,KAAM,WA5DsEg3B,EA6D3EE,KAAWF,IAAWA,EAEzB35C,EAAA,QAAkBmtD,gCCpHlBlrD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAkBI25C,EAAQC,EAASC,EAlBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpD4qD,EAAmB5qD,EAAuB,EAAQ,QAElDq5C,EAAsBr5C,EAAuB,EAAQ,QAErDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Ck6C,EAAQ,EAAQ,OAEhB7C,EAAkBr3C,EAAuB,EAAQ,QAEjDi6C,EAAU,EAAQ,MAElBl6C,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAIkpD,GAIJ,EAAInO,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAuBn4C,EAAOqnB,UACxF,gBAAA0kC,CAAiB9jC,GACXvhB,KAAK3D,MAAMipD,aACbtlD,KAAK3D,MAAMipD,aAAa/jC,GAExBA,EAAEgkC,cAAcjQ,OAEpB,CAEA,WAAAkQ,CAAYjkC,GACNvhB,KAAK3D,MAAMmgD,SACbx8C,KAAK3D,MAAMmgD,QAAQj7B,EAEvB,CAEA,UAAAkkC,CAAWlkC,GACLvhB,KAAK3D,MAAMqpD,QACb1lD,KAAK3D,MAAMqpD,OAAOnkC,EAEtB,CAEA,eAAAokC,CAAgBpkC,GACdA,EAAEwzB,iBAEE/0C,KAAK3D,MAAM63C,SACbl0C,KAAK3D,MAAM63C,QAAQ3yB,GAGjBvhB,KAAK3D,MAAMsW,WAAa4O,EAAEq7B,wBAC5B58C,KAAK3D,MAAMsW,SAAS3S,KAAK3D,MAAMJ,MAAOslB,EAE1C,CAEA,SAAAgzB,CAAUhzB,GACR,MAAM,UACJgzB,EAAS,SACTh4C,GACEyD,KAAK3D,MAELk4C,GACFA,EAAUhzB,GAGPhlB,GACHk4C,EAAQmR,uBAAuBzrD,KAAK6F,KAAMuhB,EAE9C,CAEA,KAAAskC,CAAMtkC,GACAvhB,KAAK3D,MAAMwpD,OACb7lD,KAAK3D,MAAMwpD,MAAMtkC,EAErB,CAEA,MAAAvS,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,KACJyS,EAAI,MACJiB,EAAK,UACLN,EAAS,SACT5R,EAAQ,SACRsS,EAAQ,SACR5T,EAAQ,QACRqW,EAAO,cACPkzC,EAAa,SACb7S,EAAW,EAAC,KACZz4B,EAAO,UACL24B,EACErC,EA5EV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA4Epdu1C,CAAyBoC,EAAa,CAAC,OAAQ,QAAS,YAAa,WAAY,WAAY,WAAY,UAAW,gBAAiB,WAAY,SAGpK,cADOrC,EAAW70C,MAKhB3C,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAAC,GAAG,EAAI4B,EAAgBjjC,SAASkiC,GAAa,CACxFrhC,WAAW,EAAIkiC,EAAY/iC,SAAS,qBAAsB,CACxD,cAAeuB,EACf,cAAe5T,EACf,aAAcqW,GACbnD,GACH8kC,UAAWv0C,KAAKu0C,UAChB+Q,aAAc/oD,EAAW,KAAOyD,KAAKqlD,iBACrC7I,QAASjgD,EAAW,KAAOyD,KAAKwlD,YAChCtR,QAAS33C,EAAW,KAAOyD,KAAK2lD,gBAChCD,OAAQ1lD,KAAKylD,WAGbxS,SAAW12C,EAAsB,KAAX02C,EACtBz4B,KAAMA,EACN,eAAyB,qBAATA,GAAwC,kBAATA,IAA6BrK,EAAW,KACvF,gBAA0B,WAATqK,IAAsBrK,KAAcyC,EAAU,KAC/D,gBAAiBrW,GAAY,QAC3B,EAAIm4C,EAAM4B,WAAWxnC,EAAM,CAC7B8H,KAAM,MACStd,EAAOsV,QAAQjR,cAAc,OAAQ,CACpD8R,UAAW,2BACVM,GAASlS,GAAWsS,GAAyB7W,EAAOsV,QAAQjR,cAAcynD,EAAiBx2C,QAAS,CACrGgI,KAAM,KACNnH,UAAW,4BACTq2C,GAA8BxsD,EAAOsV,QAAQjR,cAAck2C,EAAoBjlC,QAAS,CAC1Fa,UAAW,0BAGjB,GAECgiC,EAAQzzC,UAAY,CAIrBmS,SAAU5V,EAAWqU,QAAQ3Q,KAK7B1B,SAAUhC,EAAWqU,QAAQ3Q,KAK7Bi2C,QAAS35C,EAAWqU,QAAQjQ,KAK5BgU,SAAUpY,EAAWqU,QAAQjQ,KAK7B6b,KAAMjgB,EAAWqU,QAAQ2nC,MAAM,CAAC,SAAU,WAAY,mBAAoB,mBACzE9E,EAAQ1zC,aAAe,CACxBoS,UAAU,EACV5T,UAAU,EACVoW,SAAU,WAAa,EACvB6H,KAAM,UAvIwBg3B,EAwI7BE,KAAWF,EAEd35C,EAAA,QAAkB+sD,gCCnLlB9qD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIkuD,EAAYvrD,EAAuB,EAAQ,QAE3ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAkB9F,MAAM+sD,UAAsBD,EAAUn3C,QACpC,MAAAI,GACE,MAAM,KACJF,EAAI,MACJiB,EAAK,UACLN,EAAS,SACT5R,EAAQ,SACRsS,EAAQ,MACRlU,EAAK,SACLM,GACEyD,KAAK3D,MACT,OAAoB/C,EAAOsV,QAAQjR,cAAc,eAAgB,CAC/DpB,WAAUA,GAAkB,KAC5B4T,WAAUA,GAAkB,KAC5BlU,MAAOA,EACPwU,MAAOhB,GACNX,GAAqBxV,EAAOsV,QAAQjR,cAAc,MAAO,CAC1DsR,KAAM,QACL,IAAKH,GAAoBxV,EAAOsV,QAAQjR,cAAc,OAAQ,KAAMoS,GAASlS,GAClF,EAIFhG,EAAA,QAAkBmuD,gCClDlBlsD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAgBI25C,EAhBAiF,EAAqBj8C,EAAuB,EAAQ,QAEpD4qD,EAAmB5qD,EAAuB,EAAQ,QAElDq5C,EAAsBr5C,EAAuB,EAAQ,QAErDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Ck6C,EAAQ,EAAQ,OAEhB7C,EAAkBr3C,EAAuB,EAAQ,QAEjDurD,EAAYvrD,EAAuB,EAAQ,QAE3ClB,EAASkB,EAAuB,EAAQ,QAI5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAIuqD,GAAc,EAAIxP,EAAmB7nC,SAAS4iC,EAAS,cAA0BuU,EAAUn3C,QAM7F,kBAAAs3C,CAAmB3kC,GACjBA,EAAEwzB,iBAEE/0C,KAAK3D,MAAM8pD,cAAgB5kC,EAAEq7B,wBAC/B58C,KAAK3D,MAAM8pD,YAAYnmD,KAAK3D,MAAMJ,MAAOslB,EAE7C,CAEA,MAAAvS,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,KACJyS,EAAI,MACJiB,EAAK,UACLN,EAAS,SACT5R,EAAQ,SACRsS,EAAQ,SACR5T,EAAQ,QACRqW,EAAO,cACPkzC,EAAa,SACb7S,EAAW,EAAC,KACZz4B,EAAO,UACL24B,EACErC,EAhCV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAgCpdu1C,CAAyBoC,EAAa,CAAC,OAAQ,QAAS,YAAa,WAAY,WAAY,WAAY,UAAW,gBAAiB,WAAY,SAIpK,cAFOrC,EAAW70C,aACX60C,EAAW4E,YAKhBp8C,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAAC,GAAG,EAAI4B,EAAgBjjC,SAASkiC,GAAa,CACxFrhC,WAAW,EAAIkiC,EAAY/iC,SAAS,qBAAsB,CACxD,cAAeuB,EACf,cAAe5T,EACf,aAAcqW,GACbnD,GACH8kC,UAAWv0C,KAAKu0C,UAChB+Q,aAAc/oD,EAAW,KAAOyD,KAAKqlD,iBACrC7I,QAASjgD,EAAW,KAAOyD,KAAKwlD,YAChC9P,YAAan5C,EAAW,KAAOyD,KAAKkmD,mBACpChS,QAAS33C,EAAW,KAAOyD,KAAK2lD,gBAChCD,OAAQ1lD,KAAKylD,WAGbxS,SAAW12C,EAAsB,KAAX02C,EACtBz4B,KAAMA,EACN,eAAyB,qBAATA,GAAwC,kBAATA,IAA6BrK,EAAW,KACvF,gBAA0B,WAATqK,IAAsBrK,KAAcyC,EAAU,KAC/D,gBAAiBrW,GAAY,QAC3B,EAAIm4C,EAAM4B,WAAWxnC,EAAM,CAC7B8H,KAAM,MACStd,EAAOsV,QAAQjR,cAAc,OAAQ,CACpD8R,UAAW,2BACVM,GAASlS,GAAWsS,GAAyB7W,EAAOsV,QAAQjR,cAAcynD,EAAiBx2C,QAAS,CACrGgI,KAAM,KACNnH,UAAW,4BACTq2C,GAA8BxsD,EAAOsV,QAAQjR,cAAck2C,EAAoBjlC,QAAS,CAC1Fa,UAAW,0BAGjB,KAEI+hC,EAEN35C,EAAA,QAAkBouD,gCCrGlBnsD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETnC,OAAOC,eAAelC,EAAS,WAAY,CACzCuD,YAAY,EACZzB,IAAK,WACH,OAAOysD,EAAUx3C,OACnB,IAEF9U,OAAOC,eAAelC,EAAS,cAAe,CAC5CuD,YAAY,EACZzB,IAAK,WACH,OAAO0sD,EAAaz3C,OACtB,IAEF9U,OAAOC,eAAelC,EAAS,cAAe,CAC5CuD,YAAY,EACZzB,IAAK,WACH,OAAO2sD,EAAa13C,OACtB,IAEF/W,EAAQqgB,QAAUrgB,EAAQuf,UAAO,EAEjC,IAAIi6B,EAAc72C,EAAuB,EAAQ,QAE7C4rD,EAAY5rD,EAAuB,EAAQ,OAE3C6rD,EAAe7rD,EAAuB,EAAQ,QAE9C8rD,EAAe9rD,EAAuB,EAAQ,QAElD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAkB9F,MAAMme,EAAOi6B,EAAYziC,QAAQunB,OAAO,QAAQ,IAAM,EAAQ,SAAiB,IAAM,EAAQ,SAE7Ft+B,EAAQuf,KAAOA,EAEf,MAAMc,EAAUm5B,EAAYziC,QAAQunB,OAAO,WAAW,IAAM,EAAQ,SAAoB,IAAM,EAAQ,SAEtGt+B,EAAQqgB,QAAUA,gCCvDlBpe,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAUI25C,EAAQC,EAASC,EAVjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDmqD,EAAQ,EAAQ,OAEhB4B,EAAW/rD,EAAuB,EAAQ,QAE1CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAI5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAE5T,SAASd,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAMhN,IAAIme,GAAO,EAAIq/B,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAmBn4C,EAAOsV,QAAQ+R,UACvG,UAAA6lC,GACE,OAAOxmD,KAAKymD,OACd,CAEA,OAAAvS,CAAQ3yB,GACNA,EAAEwzB,iBAEE/0C,KAAK3D,MAAM63C,SACbl0C,KAAK3D,MAAM63C,QAAQ3yB,EAEvB,CAEA,MAAAvS,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,EAAS,cACTuxC,EAAa,KACbluC,EAAI,QACJwE,EAAO,SACP3E,EAAQ,UACRM,EAAS,KACTuH,EAAO,OAAM,MACbnD,EAAK,UACLiD,GACE64B,EACErC,EA/BV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA+Bpdu1C,CAAyBoC,EAAa,CAAC,WAAY,YAAa,gBAAiB,OAAQ,UAAW,WAAY,YAAa,OAAQ,QAAS,cAIjK,cAFOrC,EAAWt1C,cACXs1C,EAAWoD,QACE56C,EAAOsV,QAAQjR,cAAc4oD,EAAS33C,QAAS,CACjE2L,UAAU,EACVtH,UAAWA,EACXH,KAAMA,EACNwE,QAASA,EACTD,MAAO9b,EAAcA,EAAc,CAAC,EAAG8b,GAAQ,CAAC,EAAG,CACjDqvC,UAAW,SAEbpsC,UAAWA,GACGhhB,EAAOsV,QAAQjR,cAAcgnD,EAAMK,KAAM/U,EAAS,CAChEhzC,IAAK2qB,GAAK5nB,KAAKymD,QAAU7+B,EACzBpN,KAAMA,EACN/K,UAAWA,EACXykC,QAASl0C,KAAKk0C,SACbpD,GAAax3C,EAAOsV,QAAQmkC,SAASxgC,IAAI1U,GAAU2U,GAAsBlZ,EAAOsV,QAAQsiC,aAAa1+B,EAAO,CAC7GG,WACAquC,qBAEJ,GAECvP,EAAQ3zC,YAAc,OAAQ2zC,EAAQzzC,UAAY,CAMnDiV,UAAW1Y,EAAWqU,QAAQ2nC,MAAM,CAAC,SAAU,cAAe,eAAgB,MAAO,WAAY,YAAa,OAAQ,WAAY,cAAe,QAAS,YAAa,iBAKvKzjC,KAAMvY,EAAWqU,QAAQ3Q,KAKzBqZ,QAAS/c,EAAWqU,QAAQjQ,KAK5BgU,SAAUpY,EAAWqU,QAAQjQ,KAK7B8Q,UAAWlV,EAAWqU,QAAQ1Q,OAM9Boc,UAAW/f,EAAWqU,QAAQ3Q,KAK9Buc,KAAMjgB,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,aACvC9E,EAAQ1zC,aAAe,CACxBuc,WAAW,GA1F8Bk3B,EA2FxCE,KAAWF,EAEd35C,EAAA,QAAkBuf,gCC5HlBtd,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIyB,EAIJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAJztBU,CAAwB,EAAQ,QAE7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAoBzL,MAAMye,UAAoB3e,EAAOqnB,UAC/B,MAAA3R,GACE,OAAoB1V,EAAOsV,QAAQjR,cAAc,KAAM,CACrD8R,UAAW,wBACX+K,KAAM,aAEV,EAIF3iB,EAAA,QAAkBogB,EAClBA,EAAYna,YAAc,4CCtC1BhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAQgCoB,EAR5B44C,GAQ4B54C,EARa,EAAQ,SAQAA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GANnFK,EAIJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAJztBU,CAAwB,EAAQ,QAE7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAMzL,SAASy2C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,MAAMyc,UAAoB7e,EAAOqnB,UAC/B,MAAA3R,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,MACJ0T,EAAK,SACLlS,EAAQ,KACR2c,EAAO,eACP,aAAcs4B,GACZK,EACErC,EAbV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAapdu1C,CAAyBoC,EAAa,CAAC,QAAS,WAAY,OAAQ,eAEvF,OAAoB75C,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAC9Dz1B,KAAMA,EACN/K,UAAW,iCACV,EAAIoiC,EAAgBjjC,SAASkiC,IAA2Bx3C,EAAOsV,QAAQjR,cAAc,OAAQ,CAC9F6c,KAAM,UACN,aAAcs4B,GAAa,GAC1B/iC,GAASlS,GACd,EAIFhG,EAAA,QAAkBsgB,EAClBA,EAAYra,YAAc,2CC5C1BhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAUgCoB,EAV5B0rD,EAAQ,EAAQ,OAEhBpqD,GAQ4BtB,EARQ,EAAQ,SAQKA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GANnFK,EAIJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAJztBU,CAAwB,EAAQ,QAE7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAMzL,SAASoB,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAEhN,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAS5T,MAAMgc,UAAiBpe,EAAOqnB,UAC5B,MAAA3R,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,KACJme,EAAO,YACL24B,EACErC,EAbV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAapdu1C,CAAyBoC,EAAa,CAAC,SAE1D,OAAoB75C,EAAOsV,QAAQjR,cAAcgnD,EAAMC,SAAU3U,EAAS,CACxEz1B,KAAMA,GACLs2B,GACL,EAIFj5C,EAAA,QAAkB6f,EAClBA,EAAS5Z,YAAc,WACvB4Z,EAAS1Z,UAAYzC,EAAcA,EAAc,CAAC,EAAGopD,EAAMC,SAAS5mD,WAAY,CAAC,EAAG,CAKlFwc,KAAMjgB,EAAWqU,QAAQ2nC,MAAM,CAAC,WAAY,mBAAoB,gBAAiB,aAEnF7+B,EAAS3Z,aAAe,CACtByc,KAAM,0CCzDR1gB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAkBI25C,EAAQC,EAAS+C,EAlBjBiC,EAAqBj8C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Cs5C,EAAYt5C,EAAuB,EAAQ,QAE3C+lD,EAAQ/lD,EAAuB,EAAQ,QAEvC4rD,EAAY5rD,EAAuB,EAAQ,OAE3CgmD,EAAkBhmD,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAQJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CARztBU,CAAwB,EAAQ,QAM7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,SAASd,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CApBhMuB,EAAuB,EAAQ,QAsB/C,IAAI0d,GAIJ,EAAIu+B,EAAmB7nC,UAAmB4lC,EAAS/C,EAAU,MAAMv5B,UAAgB5e,EAAOqnB,UACxF,WAAAvnB,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKmyC,MAAQ,CAC1CwU,QAAQ,EACRrsC,WAAW,GACVta,KAAK4hD,QAAS,EAAI9N,EAAUllC,WAAY5O,KAAK4mD,WAAY,EAAI9S,EAAUllC,WAAY8iC,CACxF,CAEA,aAAA4C,CAAchxC,GACZ,MAAM,UACJixC,GACEv0C,KAAK3D,MAET,OAAQiH,EAAMrJ,KACZ,IAAK,YACL,IAAK,OACHqJ,EAAMyxC,iBACNzxC,EAAMs6C,kBACN59C,KAAKuyC,SAAS,CACZoU,QAAQ,IAEV,MAEF,IAAK,QACL,IAAK,IACL,IAAK,aACL,IAAK,QACHrjD,EAAMyxC,iBACNzxC,EAAMs6C,kBACN59C,KAAKuyC,SAAS,CACZoU,QAAQ,IAKVpS,GACFA,EAAUjxC,EAEd,CAEA,oBAAAujD,CAAqBvjD,GACnB,OAAQA,EAAMrJ,KACZ,IAAK,YACL,IAAK,OACHqJ,EAAMyxC,iBACN/0C,KAAKuyC,SAAS,CACZoU,QAAQ,IAIhB,CAEA,IAAA5F,GACE/gD,KAAK8mD,mBAAqBzR,uBAAsB,IAAMr1C,KAAKuyC,SAAS,CAClEoU,QAAQ,KAEZ,CAEA,IAAAvtC,GACMpZ,KAAK8mD,oBACPC,qBAAqB/mD,KAAK8mD,oBAG5BzR,uBAAsB,IAAMr1C,KAAKuyC,SAAS,CACxCoU,QAAQ,MAGN3mD,KAAK3D,MAAM2qD,sBACbhnD,KAAK3D,MAAM2qD,sBAEf,CAEA,SAAAC,CAAU1/B,GACR,MAAMlrB,EAAQd,EAAcA,EAAc,CAAC,EAAGgsB,EAAKlrB,OAAQ,CAAC,EAAG,CAC7Dk4C,UAAWv0C,KAAK6mD,uBAOlB,OAJIt/B,EAAKxY,OAASmJ,IAChB7b,EAAM2qD,qBAAuBhnD,KAAKoZ,OAGhB,EAAI9f,EAAO43C,cAAc3pB,EAAMlrB,EACrD,CAEA,MAAA2c,GACEhZ,KAAK+gD,MACP,CAEA,WAAAF,GACE7gD,KAAK8gD,eAAeC,MACtB,CAEA,QAAApuC,IAAYa,GACNxT,KAAK3D,MAAM2kD,eACbhhD,KAAK6gD,cAGH7gD,KAAK3D,MAAMsW,UACb3S,KAAK3D,MAAMsW,YAAYa,EAE3B,CAEA,MAAAxE,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,EAAS,cACTuxC,EAAa,MACbjxC,EAAK,UACLuK,GACE64B,EACErC,EA/HV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA+Hpdu1C,CAAyBoC,EAAa,CAAC,WAAY,YAAa,gBAAiB,QAAS,qBAEtGrC,EAAWn+B,SAClB,MAAM,OACJg0C,GACE3mD,KAAKmyC,MACT,OAAoB74C,EAAOsV,QAAQjR,cAAc6iD,EAAgB5xC,QAAS,CACxEqE,UAAW,YACXxO,QAAS,GACTyiD,aAAc,EACd/2C,UAAU,EACViJ,KAAMpZ,KAAKmyC,MAAMwU,OACjB3tC,OAAQhZ,KAAKgZ,OACbgoC,cAAeA,EACf/jD,IAAKsmB,GAAKvjB,KAAK8gD,eAAiBv9B,GAClBjqB,EAAOsV,QAAQjR,cAAcyoD,EAAUx3C,QAASqhC,EAAS,CACvEl3C,GAAIiH,KAAK4hD,OACTnyC,WAAW,EAAIkiC,EAAY/iC,SAAS,CAClC,UAAW+3C,GACVl3C,GACHxS,IAAKkI,GAAKnF,KAAKmnD,SAAWhiD,EAC1B,gBAAiB,OACjB,gBAAiBwhD,EACjB,YAAaA,EAAS3mD,KAAK4mD,UAAY,MACtC9V,EAAY,CACbyD,UAAWzD,EAAWv0C,cAAWwG,EAAY/C,KAAKs0C,cAClDJ,QAASl0C,KAAKoZ,KACdksC,aAActlD,KAAKoZ,KACnBguC,aAAcpnD,KAAK+gD,KACnB+E,eAAe,IACb/1C,GAAqBzW,EAAOsV,QAAQjR,cAAc4iD,EAAM3xC,QAAS,CACnE7V,GAAIiH,KAAK4mD,UACTj0C,SAAU3S,KAAK2S,SACfnD,WAAW,EACX,kBAAmBxP,KAAK4hD,OACxB0D,aAActlD,KAAKoZ,KACnBguC,aAAcpnD,KAAK+gD,KACnBzmC,UAAWA,GACVhhB,EAAOsV,QAAQmkC,SAASz5B,QAAQzb,GAAU0U,IAAIvS,KAAKinD,YACxD,GAECxV,EAAQ3zC,YAAc,UAAW2zC,EAAQzzC,UAAYzC,EAAcA,EAAc,CAAC,EAAG6qD,EAAUx3C,QAAQ5Q,WAAY,CAAC,EAAG,CAIxHyR,UAAWlV,EAAWqU,QAAQ1Q,OAK9B6R,MAAOxV,EAAWqU,QAAQ1Q,OAK1ByU,SAAUpY,EAAWqU,QAAQjQ,KAM7B2b,UAAW/f,EAAWqU,QAAQ3Q,OA9KAuzC,EA+K5BgD,KAAYhD,EAEhB35C,EAAA,QAAkBqgB,gCChOlBpe,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI8sD,EAAQ,EAAQ,OAEhBpE,EAAQ/lD,EAAuB,EAAQ,QAEvC+rD,EAAW/rD,EAAuB,EAAQ,QAE1ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAE5T,SAASd,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAMhN,MAAMouD,UAAgB9G,EAAM3xC,QAC1B,MAAAI,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,EAAS,cACTuxC,EAAa,KACbluC,EAAI,QACJwE,EAAO,SACP3E,EAAQ,YACRwzC,EAAW,UACXlzC,EAAS,KACTuH,EAAO,OAAM,MACbnD,EAAK,UACLiD,GACE64B,EACErC,EApBV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAoBpdu1C,CAAyBoC,EAAa,CAAC,WAAY,YAAa,gBAAiB,OAAQ,UAAW,WAAY,cAAe,YAAa,OAAQ,QAAS,cAMhL,cAJOrC,EAAWt1C,cACXs1C,EAAWoD,eACXpD,EAAWwW,oBACXxW,EAAW33B,kBACE7f,EAAOsV,QAAQjR,cAAc4oD,EAAS33C,QAAS,CACjE2L,UAAU,EACVtd,IAAK2qB,GAAK5nB,KAAKunD,WAAa3/B,EAC5B3U,UAAWA,EACXH,KAAMA,EACNwE,QAASA,EACTD,MAAO9b,EAAcA,EAAc,CAAC,EAAG8b,GAAQ,CAAC,EAAG,CACjDqvC,UAAW,SAEbpsC,UAAWA,GACGhhB,EAAOsV,QAAQjR,cAAcgnD,EAAMK,KAAM/U,EAAS,CAChEqP,qBAAsB,CAAC,UACvBriD,IAAK2qB,GAAK5nB,KAAKymD,QAAU7+B,EACzBpN,KAAMA,EACN/K,UAAWA,EACXykC,QAASl0C,KAAKk0C,SACbpD,GAAax3C,EAAOsV,QAAQmkC,SAASxgC,IAAI1U,GAAU2U,GAAsBlZ,EAAOsV,QAAQsiC,aAAa1+B,EAAO,CAC7GqzC,MAAOtkC,GAAKA,EAAEq8B,kBACd0B,qBAAsB,CAAC,OACvB3sC,WACAwzC,cACAnF,qBAEJ,EAIFnpD,EAAA,QAAkBwvD,gCC5ElBvtD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAQI25C,EARAiF,EAAqBj8C,EAAuB,EAAQ,QAIpDimD,GAFSjmD,EAAuB,EAAQ,QAE5BA,EAAuB,EAAQ,SAE3CgtD,EAAWhtD,EAAuB,EAAQ,QAI9C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,IAAIwuD,GAAa,EAAIhR,EAAmB7nC,SAAS4iC,EAAS,cAAyBgW,EAAS54C,QAC1F,WAAAxV,CAAYiD,GACV01C,MAAM11C,EACR,CAEA,kBAAAw7C,GACE73C,KAAK0nD,sBAAsB1nD,KAAKmyC,MAAMwU,OACxC,CAGA,qBAAAe,CAAsBf,GACpB,IAAIgB,EAAc3nD,KAAK4nD,iBAAiBnH,EAAU7xC,QAAQyyC,YAAYrhD,OAEtE,IAAK,MAAMzB,KAAQopD,EAEjBppD,EAAKspD,aAAa,qBAAsBlB,EAE5C,CAMA,gBAAAiB,CAAiBrpD,GACf,IAAIupD,EAAQ,GAEZ,KAAOvpD,EAAKulB,YAAY,CACtB,IAAIzM,EAAQ1e,OAAOovD,iBAAiBxpD,IAEhC,cAAcuqB,KAAKzR,EAAM2wC,SAAW3wC,EAAMqvC,YAAcnoD,EAAK0pD,aAAa,qBAC5EH,EAAMzsD,KAAKkD,GAGbA,EAAOA,EAAKulB,UACd,CAEA,OAAOgkC,CACT,KAEItW,EAEN35C,EAAA,QAAkB4vD,gCC1DlB3tD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQqwD,aAAerwD,EAAQswD,MAAQtwD,EAAA,aAAkB,EAEzD,IAsBI25C,EAtBAiF,EAAqBj8C,EAAuB,EAAQ,QAEpD4tD,EAAS5tD,EAAuB,EAAQ,OAExCi6C,EAAU,EAAQ,MAElB9C,EAAcn3C,EAAuB,EAAQ,QAE7C6tD,EAAW7tD,EAAuB,EAAQ,QAE1Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjD8tD,EAAgB9tD,EAAuB,EAAQ,QAE/C+tD,EAAkB/tD,EAAuB,EAAQ,QAEjDguD,EAAmBhuD,EAAuB,EAAQ,QAElDlB,EAQJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CARztBU,CAAwB,EAAQ,QAEzCmmD,EAAYjmD,EAAuB,EAAQ,QAI/C,SAASf,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAE5T,SAASd,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAEhN,SAAS83C,EAAyBn1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAWze,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAC3J,MAAMitD,EAA0B,CAAC,kBAAmB,UAAW,aAAc,YAAa,kBAAmB,SAAU,YAAa,WAAY,SAAU,UACpJC,EAAoB,IAAIJ,EAAc15C,QAAQ,CAClD+5C,yBAAyB,IAE3B9wD,EAAQqwD,aAAeQ,EACvB,IAAIE,EAAY,EAmDhB/wD,EAAA,QAjDA,MACE,WAAOuhB,CAAKyvC,EAAS1zB,EAAS2zB,GAC5B,IAAI7uD,EAAM2uD,KAELE,GAAa3zB,EAChB2zB,EAAY,KAAM,EAAIT,EAASz5C,SAAS6xC,EAAU7xC,QAAQyyC,YAAYlsB,GAAU,4BACtE2zB,IACVA,EAAY,IAAM/mC,SAASgnC,cAAc,6BAA+BhnC,SAASnU,MAGnF,IAAIo7C,EAAiBH,EAAQxsD,OACzB,cACFsgD,EAAa,KACbniC,EAAI,QACJlD,EAAO,OACP0B,EAAM,SACNiwC,GACED,EACAE,EAAanY,EAAyBiY,EAAgB,CAAC,gBAAiB,OAAQ,UAAW,SAAU,aAEzGxuC,EAAOA,IAAoC,IAA5BA,EAAK6pB,QAAQ,UAAmB,eAAiB,SAEhE6kB,EAAaT,EAAwBz0B,QAAO,CAAC/6B,EAAKgB,IAAQsB,EAAcA,EAAc,CAAC,EAAGtC,GAAM,CAAC,EAAG,CAClG,CAACgB,GAAMivD,EAAWjvD,MAChB,CAAC,GAEL,IAAIkvD,EAAqB7vD,EAAOsV,QAAQjR,cAAcwqD,EAAOlY,EAAS,CAAC,EAAGiZ,EAAY,CACpFJ,UAAWA,EACX7uD,IAAKA,EACLmvD,UAAWzM,EACXniC,KAAMA,EACNlD,QAASA,EACT0B,QAAQ,EAAIy7B,EAAQ2B,OAAOp2C,KAAK+gD,KAAK5gD,KAAKH,KAAM/F,GAAM+e,EAAQiwC,GAC9D,aAAuB,WAATzuC,GAAqB,OACjCquC,GAIJ,OAFAL,EAAiB55C,QAAQ+0B,IAAIwlB,EAAOh0B,GAE7Bl7B,CACT,CAEA,WAAO8mD,CAAK9mD,GACVuuD,EAAiB55C,QAAQy6C,OAAO,CAC9BpvD,OAEJ,GAMF,IAAIkuD,GAAQ,EAAI1R,EAAmB7nC,SAAS4iC,EAAS,cAAoBl4C,EAAOsV,QAAQ+R,UACtF,WAAAvnB,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKmyC,MAAQ,CAC1C/4B,MAAM,GACLs4B,CACL,CAEA,OAAAp6B,GACEtX,KAAKuyC,SAAS,CACZn5B,MAAM,IAGJpZ,KAAK3D,MAAMib,SACbtX,KAAK3D,MAAMib,SAEf,CAEA,UAAAgyC,CAAW/nC,GACLvhB,KAAK3D,MAAMitD,YACbtpD,KAAK3D,MAAMitD,WAAW/nC,GAIpBvhB,KAAKupD,UAAUC,YAAcznC,SAAS0nC,eACxCzpD,KAAKupD,UAAU/5C,WAEnB,CAEA,YAAAk6C,GAQE,MAAM,kBACJlM,EAAiB,KACjBR,GACEh9C,KAAK3D,MAAMwB,SAASxB,MACxB,IAAIstD,EAAW,SAUf,OARInM,IACFmM,GAAW,GAGA,uBAAT3M,IACF2M,GAAW,GAGNA,CACT,CAEA,MAAA36C,GACE,MAAM26C,EAAW3pD,KAAK0pD,eAEhBvW,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,OACRmb,GACEm6B,EACE+V,EAAanY,EAAyBoC,EAAa,CAAC,WAAY,WAGtE,OAAoB75C,EAAOsV,QAAQjR,cAAcyqD,EAAOx5C,QAASqhC,EAAS,CAAC,EAAGiZ,EAAY,CACxF7xC,MAAO,CACLuyC,OAAQ,IACR91C,SAAU,YAEZsF,KAAMpZ,KAAKmyC,MAAM/4B,KACjBnc,IAAKssD,GAAavpD,KAAKupD,UAAYA,EACnCD,WAAYtpD,KAAKspD,WACjBL,SAAUjwC,EACVA,OAAQhZ,KAAKsX,QACbqyC,SAAUA,EACVE,QAASnB,EACToB,eAAgBztD,GAAsB/C,EAAOsV,QAAQjR,cAAcosD,EAAU1tD,GAC7E2tD,WAAYzB,EAAgB35C,QAC5Bq7C,mBAAoB1B,EAAgB35C,WACrB,EAAItV,EAAO43C,cAAcrzC,EAAU,CAClDyZ,QAAStX,KAAKsX,UAElB,KAEIk6B,EAEN35C,EAAQswD,MAAQA,EAEhB,MAAM4B,UAAiBzwD,EAAOsV,QAAQ+R,UACpC,MAAA3R,GACE,IAAIk7C,EAAelqD,KAAK3D,OACpB,KACFyW,GACEo3C,EACA7tD,EAAQ00C,EAAyBmZ,EAAc,CAAC,SAEpD,OAAoB5wD,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAAC,GAAG,EAAI4B,EAAgBjjC,SAASvS,GAAQ,CACxGoT,WAAW,EAAIkiC,EAAY/iC,SAAS,oBAAqB,CACvD,UAAWkE,MAGjB,iCC9NFhZ,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAEgCoB,EAF5BqvD,GAE4BrvD,EAFW,EAAQ,SAEEA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAmBvF,MAAMkxD,UAA6B7B,EAAc15C,QAC/C,WAAAxV,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKoqD,YAAc,IAAI1oC,IAAO1hB,KAAKqqD,SAAWrqD,KAAK2jC,IAAK3jC,KAAKsqD,YAActqD,KAAKqpD,OAAQrpD,KAAK2jC,IAAM,CAACwlB,EAAOL,EAAWr5C,EAAW86C,KAC9JvqD,KAAKqqD,SAASlB,EAAOL,EAAWr5C,GAChCzP,KAAKwqD,iBAAiBrB,EAAOoB,EAAU,EACtCvqD,KAAKwqD,iBAAmB,CAACrB,EAAOoB,KACjC,IAAIE,EAAsB1C,iBAAiBhmC,SAASnU,MAAMo6C,SAErDuC,GAAqC,WAAxBE,IAChBzqD,KAAKoqD,YAAY/vD,IAAI8uD,EAAOsB,GAC5B1oC,SAASnU,KAAKyJ,MAAM2wC,SAAW,SACjC,EACChoD,KAAKqpD,OAAS,CAACF,EAAOL,EAAWr5C,KAClCzP,KAAKsqD,YAAYnB,EAAOL,EAAWr5C,GACnCzP,KAAK0qD,kBAAkBvB,EAAM,EAC5BnpD,KAAK0qD,kBAAoBvB,IACtBnpD,KAAKoqD,YAAY1wD,IAAIyvD,KACvBpnC,SAASnU,KAAKyJ,MAAM2wC,SAAWhoD,KAAKoqD,YAAYzwD,IAAIwvD,GACpDnpD,KAAKoqD,YAAY1kC,OAAOyjC,GAC1B,EACCzX,CACL,CAEA,UAAAiZ,CAAWn4C,EAAO+3C,GAAY,GAC5B,MAAMK,EAAmB5qD,KAAK4qD,iBAC9B5qD,KAAK4qD,kBAAmB,EACxB5qD,KAAK2jC,IAAInxB,EAAOuP,SAASnU,KAAM,KAAM28C,GACrCvqD,KAAK4qD,iBAAmBA,CAC1B,CAEA,eAAAC,CAAgBr4C,GACd,MAAMo4C,EAAmB5qD,KAAK4qD,iBAC9B5qD,KAAK4qD,kBAAmB,EACxB5qD,KAAKqpD,OAAO72C,GACZxS,KAAK4qD,iBAAmBA,CAC1B,EAIF/yD,EAAA,QAAkBsyD,gCCnElB,IAEgClxD,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,kBAAkB,IAAM,EAAQ,SAA2B,IAAM,EAAQ,uCCpBrHr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAoBI25C,EAAQC,EAASC,EApBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpD6tD,EAAW7tD,EAAuB,EAAQ,QAE1Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtD+tD,EAAkB/tD,EAAuB,EAAQ,QAEjDswD,EAAiBtwD,EAAuB,EAAQ,QAEhDuwD,EAAUvwD,EAAuB,EAAQ,QAEzCwwD,EAAYxwD,EAAuB,EAAQ,QAE3ClB,EAASkB,EAAuB,EAAQ,QAExCimD,EAAYjmD,EAAuB,EAAQ,QAE3CywD,EAAoBzwD,EAAuB,EAAQ,QAIvD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAEhN,MAAMiyD,EAAmB,IAAIxpC,IAEvBypC,EAAqB,UAE3B,IAAIC,GAAU,EAAIxZ,EAAqBhjC,SAAS4iC,GAAS,EAAIiF,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAsBn4C,EAAOsV,QAAQ+R,UACxJ,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKmyC,MAAQ,CACXkZ,QAASrrD,KAAK3D,MAAM+c,KAExB,CAEA,oBAAIkyC,GACF,MAAM,SACJztD,GACEmC,KAAK3D,MAET,OAAIwB,GAAYA,EAASxB,OACQ,YAAxBwB,EAASxB,MAAMme,KAAqB2wC,EAjBtB,KAqBzB,CAEA,iBAAA/V,GACEp1C,KAAKuyC,SAAS,CACZgZ,WAAY9K,EAAU7xC,QAAQyyC,YAAYrhD,KAAK3D,MAAMb,UAEvDwE,KAAKwrD,SAAU,EACfxrD,KAAKyrD,YACP,CAEA,oBAAA9T,GACE33C,KAAKwrD,SAAU,EACfxrD,KAAK0rD,eACP,CAEA,UAAAD,CAAWpvD,EAAQ2D,KAAK3D,OACtB,MAAM,iBACJivD,GACEtrD,KACJ,IAAI2rD,EAAkBT,EAAiBvxD,IAAI2xD,GAEtCK,IACHT,EAAiB7wD,IAAIixD,EAAkB,IACvCK,EAAkBT,EAAiBvxD,IAAI2xD,IAGrCjvD,EAAM+c,MAAQpZ,KAAKwrD,UAAYG,EAAgBhlD,SAAS3G,QAC1D2rD,EAAgBp5C,KAAIq5C,IAEdN,IAAqBH,GACvBS,EAAQ7K,MACV,IAEF4K,EAAgBtwD,KAAK2E,MAEzB,CAEA,aAAA0rD,GAEE,MAAMC,EAAkBT,EAAiBvxD,IAAIqG,KAAKsrD,kBAClD,IAAIjtC,EAAQstC,EAAgBtnB,QAAQrkC,MAEhCqe,GAAS,GACXstC,EAAgBjZ,OAAOr0B,EAAO,EAElC,CAEA,gCAAAg0B,CAAiCC,GAC3BA,EAAU92C,QAAU82C,EAAU92C,SAAWwE,KAAK3D,MAAMb,QACtDwE,KAAKuyC,SAASh3C,EAAcA,EAAc,CAAC,EAAGyE,KAAKmyC,OAAQ,CAAC,EAAG,CAC7DoZ,WAAY9K,EAAU7xC,QAAQyyC,YAAY/O,EAAU92C,UAG1D,CAEA,SAAAqwD,IAAar4C,GACXxT,KAAKuyC,SAASh3C,EAAcA,EAAc,CAAC,EAAGyE,KAAKmyC,OAAQ,CAAC,EAAG,CAC7DkZ,QAAQ,KAEVrrD,KAAKyrD,aAEDzrD,KAAK3D,MAAMwvD,WACb7rD,KAAK3D,MAAMwvD,aAAar4C,EAE5B,CAEA,QAAAy1C,IAAYz1C,GACVxT,KAAKuyC,SAASh3C,EAAcA,EAAc,CAAC,EAAGyE,KAAKmyC,OAAQ,CAAC,EAAG,CAC7DkZ,QAAQ,KAEVrrD,KAAK0rD,gBAED1rD,KAAK3D,MAAM4sD,UACbjpD,KAAK3D,MAAM4sD,YAAYz1C,EAE3B,CAEA,mBAAAs4C,CAAoBtwD,GAClB,IAAIuwD,GAA8B,EAAI1D,EAASz5C,SAAS5O,KAAKmyC,MAAMoZ,WAAY,4BAC/E,OAAOvrD,KAAK3D,MAAMysD,WAAaiD,CACjC,CAEA,IAAAhL,CAAKx/B,GACH,MAAMoqC,EAAkBT,EAAiBvxD,IAAIqG,KAAKsrD,kBAE9CK,EAAgBA,EAAgBhwD,OAAS,KAAOqE,MAAQA,KAAK3D,MAAM2c,QACrEhZ,KAAK3D,MAAM2c,OAAOuI,EAEtB,CAEA,MAAAvS,GACE,IAAI,iBACFg9C,EAAgB,OAChBxwD,EAAM,UACNstD,EAAY9oD,KAAK8rD,oBAAoBtwD,GAAO,UAC5CyX,EAAS,OACTxO,EAAM,YACNyiD,EAAW,KACX5F,EAAI,kBACJnoC,EAAoB,MAAM,EAAI2xC,EAAel8C,SAAS5O,MAAM4N,MAAI,qBAChEq+C,EAAoB,UACpBC,EAAS,SACTruD,EAAQ,KACRub,EAAI,OACJ+yC,EAAM,UACNC,EAAS,QACTC,EAAO,WACP/C,GACEtpD,KAAK3D,MAIT,IAFqB+c,GAASpZ,KAAKmyC,MAAMkZ,OAIvC,OAAO,KAGT,IAAI74C,EAAQ3U,EAkCZ,OA/BA2U,EAAqBlZ,EAAOsV,QAAQjR,cAAcqtD,EAAUp8C,QAAS,CACnEk6C,YACAkD,mBACAxwD,SACAyX,YACAg5C,uBACAxnD,SACAyiD,cACA5F,OACAnoC,oBACAmuC,cAAc,GACb90C,GAGHA,EAAqBlZ,EAAOsV,QAAQjR,cAAc4qD,EAAgB35C,QAAS,CACzE09C,GAAIlzC,EACJmzC,QAAQ,EACRJ,OAAQA,EACRC,UAAWA,EACXnD,SAAUjpD,KAAKipD,SACfoD,QAASA,EACT/C,WAAYA,EACZuC,UAAW7rD,KAAK6rD,WACfr5C,GAEC05C,IACF15C,EAAqBlZ,EAAOsV,QAAQjR,cAAcstD,EAAkBr8C,QAAS,CAC3E49C,YAAaxsD,KAAK+gD,MACjBvuC,IAGelZ,EAAOsV,QAAQjR,cAAcotD,EAAQn8C,QAAS,CAChEk6C,UAAWA,GACVt2C,EACL,GAECi/B,EAAQ1zC,aAAe,CACxBkV,UAAW,QA/K4Eu+B,EAgLtFE,KAAWF,IAAWA,EAEzB35C,EAAA,QAAkBuzD,gCCzNlBtxD,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAsBI25C,EAAQC,EAASC,EAtBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDi6C,EAAU,EAAQ,MAElB7C,EAAuBp3C,EAAuB,EAAQ,QAEtDs5C,EAAYt5C,EAAuB,EAAQ,QAE3C2lD,EAAiB,EAAQ,OAEzBsM,EAAkB,EAAQ,OAE1BC,EAAWlyD,EAAuB,EAAQ,QAE1CswD,EAAiBtwD,EAAuB,EAAQ,QAEhDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAQJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CARztBU,CAAwB,EAAQ,QAEzCmmD,EAAYjmD,EAAuB,EAAQ,QAI/C,SAASf,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAE5T,SAASd,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAEhN,SAAS83C,EAAyBn1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAI3e,MAAMmxD,EAAcpyD,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,YAAa,QAAS,UAa7E,SAASqW,EAAQC,EAAKC,GACpB,OAAI5nD,MAAMwgC,QAAQonB,GACTA,EAAGzoB,QAAQwoB,IAAQ,EAGrBA,IAAQC,CACjB,CAOA,IAAI5yC,GAAiB,EAAI03B,EAAqBhjC,SAAS4iC,GAAS,EAAIiF,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,MAAMv3B,UAAuB5gB,EAAOqnB,UAC9J,WAAAvnB,CAAYiD,EAAO84B,GACjB4c,MAAM11C,EAAO84B,GAEbn1B,KAAK01C,YAAcn0B,IACjB,IAAKvhB,KAAK3D,MAAME,UA5Bd,IA4B0BglB,EAAE83B,OAA+B,CAC3D,MAAM79C,EAAS+lB,EAAEgkC,cACjBvlD,KAAK+sD,iBAAmBtlD,YAAW,KACjCzH,KAAK+sD,iBAAmB,KAIxB/sD,KAAKgtD,WAAaxxD,EAClBwE,KAAKoZ,KAAKmI,EAAE,GACX,IACL,GAGFvhB,KAAK21C,UAAYp0B,IAGVvhB,KAAK+sD,kBACRxrC,EAAEwzB,kBAGC/0C,KAAK3D,MAAME,UAAYyD,KAAK+sD,kBAhD/B,IAgDmDxrC,EAAE83B,SACjDr5C,KAAK3D,MAAM63C,SACbl0C,KAAK3D,MAAM63C,QAAQ3yB,GAGrBvhB,KAAK+gD,KAAKx/B,GACVnV,aAAapM,KAAK+sD,kBAClB/sD,KAAK+sD,iBAAmB,KAC1B,EAGF/sD,KAAKitD,cAAgB1rC,IA3DjB,IA4DEA,EAAE83B,SAAkCoH,EAAU7xC,QAAQyyC,YAAYrhD,MAAMktD,SAAS3rC,EAAE/lB,SAAWwE,KAAK+sD,mBACrG3gD,aAAapM,KAAK+sD,kBAClB/sD,KAAK+sD,iBAAmB,KAC1B,EAGF/sD,KAAKmtD,WAAY,EAAIrZ,EAAUllC,WAC/B5O,KAAKotD,WAAa,KAClBptD,KAAK+sD,iBAAmB,KACxB/sD,KAAKgtD,WAAa3wD,EAAMmtD,UACxBxpD,KAAKmZ,kBAAoB9c,EAAM8c,kBAAoB9c,EAAM8c,kBAAoB,KAAM,EAAI2xC,EAAel8C,SAAS5O,MAAM4N,KACrH5N,KAAKqtD,eAAiB,KACtBrtD,KAAKmyC,MAAQ,CACX/4B,UAAqBrW,IAAf1G,EAAM+c,KAAqB/c,EAAMixD,YAAcjxD,EAAM+c,KAE/D,CAEA,gCAAAi5B,CAAiCC,GAC3B,cAAeA,GAAaA,EAAUkX,YAAcxpD,KAAK3D,MAAMmtD,YACjExpD,KAAKgtD,WAAa1a,EAAUkX,WAG1BlX,EAAUl5B,OAASpZ,KAAK3D,MAAM+c,OAChCk5B,EAAUl5B,KAAOpZ,KAAKutD,oBAAsBvtD,KAAKwtD,oBAErD,CAEA,iBAAApY,GACEp1C,KAAKotD,WAAarrC,SAASpkB,cAAc,OACzCqC,KAAKytD,gBACL1rC,SAASnU,KAAKtN,iBAAiB,UAAWN,KAAKitD,cACjD,CAEA,kBAAApV,CAAmBC,GACjB,MAAM4V,EAAa5V,EAAUv7C,SACvBoxD,EAAgB3tD,KAAK3D,MAAME,UAE5BmxD,GAAcC,GACjB3tD,KAAK+gD,OAGP/gD,KAAKytD,eACP,CAEA,oBAAA9V,GACE8U,EAAgBvE,aAAa2C,gBAAgB7qD,KAAK4tD,UAElDnN,EAAU7xC,QAAQi/C,uBAAuB7tD,KAAKotD,YAE9CptD,KAAKotD,WAAa,KAClBhhD,aAAapM,KAAK8tD,iBAClB1hD,aAAapM,KAAK+tD,iBAClB/tD,KAAKguD,mCACLjsC,SAASnU,KAAK3J,oBAAoB,UAAWjE,KAAKitD,cACpD,CAEA,YAAAgB,CAAa1sC,GACPvhB,KAAKmyC,MAAM/4B,KACbpZ,KAAK+gD,KAAKx/B,GAEVvhB,KAAKoZ,KAAKmI,EAEd,CAEA,iBAAAgsC,CAAkBhsC,GAChB,GAA4B,MAAxBvhB,KAAK+tD,gBAGP,OAFA3hD,aAAapM,KAAK+tD,sBAClB/tD,KAAK+tD,gBAAkB,MAIzB,GAAI/tD,KAAKmyC,MAAM/4B,MAAgC,MAAxBpZ,KAAK8tD,gBAC1B,OAGF,MAAMI,EAAgC,MAAxBluD,KAAK3D,MAAM6c,UAAoBlZ,KAAK3D,MAAM6c,UAAYlZ,KAAK3D,MAAM6xD,MAE1EA,EAKLluD,KAAK8tD,gBAAkBrmD,YAAW,KAChCzH,KAAK8tD,gBAAkB,KACvB9tD,KAAKoZ,KAAKmI,EAAE,GACX2sC,GAPDluD,KAAKoZ,KAAKmI,EAQd,CAEA,iBAAAisC,CAAkBjsC,GAChB,GAA4B,MAAxBvhB,KAAK8tD,gBAGP,OAFA1hD,aAAapM,KAAK8tD,sBAClB9tD,KAAK8tD,gBAAkB,MAIzB,IAAK9tD,KAAKmyC,MAAM/4B,MAAgC,MAAxBpZ,KAAK+tD,gBAC3B,OAGF,IAAIG,EAAUluD,KAAK3D,MAAMwlD,WAAa7hD,KAAK3D,MAAMwlD,YAAc3nC,EAAenc,aAAa8jD,WAAkC,MAApB7hD,KAAK3D,MAAM6xD,MAAmCluD,KAAK3D,MAAMwlD,UAA9B7hD,KAAK3D,MAAM6xD,MAE1IA,EAKLluD,KAAK+tD,gBAAkBtmD,YAAW,KAChCzH,KAAK+tD,gBAAkB,KACvB/tD,KAAK+gD,KAAKx/B,EAAE,GACX2sC,GAPDluD,KAAK+gD,KAAKx/B,EAQd,CAMA,kBAAA4sC,CAAmBC,EAAS7sC,GAC1B,MAAM/lB,EAAS+lB,EAAEgkC,cACX8I,EAAU9sC,EAAE+sC,eAAiB/sC,EAAEgtC,YAAYC,UAE5CH,IAAWA,IAAY7yD,GAAWA,EAAO0xD,SAASmB,KACrDD,EAAQ7sC,EAEZ,CAEA,IAAAnI,CAAKmI,GACEvhB,KAAKmyC,MAAM/4B,MAASpZ,KAAK3D,MAAME,WAClCyD,KAAKgtD,WAAahtD,KAAKyuD,kBACvBzuD,KAAK0uD,wBACL1uD,KAAKuyC,SAAS,CACZn5B,MAAM,IAGJpZ,KAAK3D,MAAM4c,QACbjZ,KAAK3D,MAAM4c,OAAOsI,GAGxB,CAGA,qBAAAmtC,GACM1uD,KAAKqtD,gBACPrtD,KAAKguD,mCAGPhuD,KAAKqtD,gBAAiB,EAAIlN,EAAeyH,kBAAkBnH,EAAU7xC,QAAQyyC,YAAYrhD,OAEzF,IAAK,IAAIzB,KAAQyB,KAAKqtD,eACpB9uD,EAAK+B,iBAAiB,SAAUN,KAAK+gD,MAAM,EAE/C,CAGA,gCAAAiN,GACE,GAAIhuD,KAAKqtD,eAAgB,CACvB,IAAK,IAAI9uD,KAAQyB,KAAKqtD,eACpB9uD,EAAK0F,oBAAoB,SAAUjE,KAAK+gD,MAAM,GAGhD/gD,KAAKqtD,eAAiB,IACxB,CACF,CAEA,IAAAtM,CAAKx/B,GACHvhB,KAAKguD,mCAEDhuD,KAAKmyC,MAAM/4B,OACbpZ,KAAKuyC,SAAS,CACZn5B,MAAM,IAGJpZ,KAAK3D,MAAM2c,QACbhZ,KAAK3D,MAAM2c,OAAOuI,GAGxB,CAEA,SAAAgzB,CAAUhzB,GACM,cAAVA,EAAEtnB,KAAiC,SAAVsnB,EAAEtnB,MACzBsnB,EAAEotC,QAAUptC,EAAE/lB,SAAWilD,EAAU7xC,QAAQyyC,YAAYrhD,KAAK4uD,YAAYxN,eAC1E7/B,EAAEwzB,iBACF/0C,KAAKoZ,KAAKmI,GAGhB,CAEA,MAAAvI,CAAOuI,GAGDqrC,EAAQ,YAAa5sD,KAAK3D,MAAM0c,UAAY0nC,EAAU7xC,QAAQyyC,YAAYrhD,MAAMktD,SAAS3rC,EAAE/lB,eAIvEuH,IAApB/C,KAAK3D,MAAM+c,KACbpZ,KAAK+gD,KAAKx/B,GACDvhB,KAAK3D,MAAM2c,QACpBhZ,KAAK3D,MAAM2c,OAAOuI,GAEtB,CAEA,QAAA0nC,CAAS1nC,GACPvhB,KAAK6uD,aAAattC,GAEdvhB,KAAK3D,MAAM4sD,UACbjpD,KAAK3D,MAAM4sD,SAAS1nC,EAExB,CAEA,eAAAktC,GAKE,OAJKzuD,KAAKgtD,YAAcjrC,UAAYA,SAAS0nC,gBAAkB1nC,SAASnU,OACtE5N,KAAKgtD,WAAajrC,SAAS0nC,eAGtBzpD,KAAKgtD,UACd,CAEA,YAAA6B,CAAajD,GACX,GAAI5rD,KAAKgtD,YAA+C,mBAA1BhtD,KAAKgtD,WAAW1X,MAAsB,CAClE,GAAIvzB,SAAU,CACZ,IAAIxjB,EAEAqtD,IACFrtD,EAAOkiD,EAAU7xC,QAAQyyC,YAAYuK,KAGnCrtD,IAASA,EAAK2uD,SAASltD,KAAKgtD,cAAgBzuD,IAASwjB,SAAS0nC,eAAiBlrD,EAAK2uD,SAASnrC,SAAS0nC,iBAAmB1nC,SAAS0nC,gBAAkB1nC,SAASnU,OAC/J5N,KAAKgtD,WAAW1X,OAEpB,CAEKt1C,KAAK3D,MAAMmtD,YACdxpD,KAAKgtD,WAAa,KAEtB,CACF,CAEA,WAAA8B,CAAYlD,EAASvvD,GACnB,IAAI,OACFb,EAASwE,MACPA,KAAK3D,OAEL,UACF6vD,GAAY,GACV7vD,EACA0yD,EAAehe,EAAyB10C,EAAO,CAAC,qBAE7C0yD,EAAa7H,mBACb6H,EAAazB,mBACbyB,EAAazN,YACbyN,EAAa51C,kBAEpB,IAAI61C,EAAkBzzD,EAAc,CAClCxC,GAAI6yD,EAAQvvD,MAAMtD,IAAMg2D,EAAah2D,IACpCsD,GAMH,OAJKuvD,EAAQvvD,MAAMtD,KACjBg2D,EAAah2D,GAAKiH,KAAKmtD,WAGL7zD,EAAOsV,QAAQjR,cAAc+uD,EAAS99C,QAASqhC,EAAS,CAAC,EAAG+e,EAAiB,CAC/F51C,KAAMpZ,KAAKmyC,MAAM/4B,KACjBJ,OAAQhZ,KAAKgZ,OACbiwC,SAAUjpD,KAAKipD,SACfztD,OAAQA,EACR0wD,UAAWA,KACI,EAAI5yD,EAAO43C,cAAc0a,EAASmD,GACrD,CAEA,aAAAtB,GAEMztD,KAAK4tD,SAASvxD,MAAM+c,MACtBqzC,EAAgBvE,aAAayC,WAAW3qD,KAAK4tD,UAAU,GAGzDnN,EAAU7xC,QAAQqgD,oCAAoCjvD,KAAMA,KAAK4tD,SAAU5tD,KAAKotD,WAClF,CAEA,MAAAp+C,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,QACJ0c,EAAO,KACPK,EAAI,SACJjJ,EAAWnQ,KAAKmyC,MAAM/4B,MACpB+5B,EACE92C,EAAQ00C,EAAyBoC,EAAa,CAAC,UAAW,OAAQ,oBAEjE92C,EAAM6xD,aACN7xD,EAAM6c,iBACN7c,EAAMwlD,iBACNxlD,EAAMixD,mBACNjxD,EAAM4c,cACN5c,EAAM2c,OAEb,MAAOwoC,EAAc0N,GAAgB51D,EAAOsV,QAAQmkC,SAASz5B,QAAQtZ,KAAK3D,MAAMwB,UAE1EsxD,EAAe,CAAC,EAoDtB,cAnDO9yD,EAAMwB,SAETmC,KAAKmyC,MAAM/4B,MAAQ81C,EAAangD,MAAoC,YAA5BmgD,EAAa7yD,MAAMme,OAExDne,EAAMtD,KACTsD,EAAMtD,GAAKm2D,EAAa7yD,MAAMtD,IAAMiH,KAAKmtD,WAI3CgC,EAAa,oBAAsB9yD,EAAMtD,SAI9BgK,IAATqW,IACEwzC,EAAQ,QAAS7zC,KAAa6zC,EAAQ,YAAa7zC,KACrDo2C,EAAajb,SAAU,EAAIO,EAAQ2B,OAAOp2C,KAAK3D,MAAM63C,QAASl0C,KAAKiuD,eAGjErB,EAAQ,YAAa7zC,YAChB1c,EAAM63C,QACbib,EAAazZ,YAAc11C,KAAK01C,YAChCyZ,EAAaxZ,UAAY31C,KAAK21C,UAC9BwZ,EAAa5a,UAAYv0C,KAAKu0C,WAG5BqY,EAAQ,QAAS7zC,KACnBo2C,EAAaC,YAAcpvD,KAAKmuD,mBAAmBhuD,KAAKH,KAAMA,KAAKutD,mBACnE4B,EAAaE,WAAarvD,KAAKmuD,mBAAmBhuD,KAAKH,KAAMA,KAAKwtD,mBAClEnxD,EAAM+yD,YAAcpvD,KAAKmuD,mBAAmBhuD,KAAKH,KAAMA,KAAKutD,mBAC5DlxD,EAAMgzD,WAAarvD,KAAKmuD,mBAAmBhuD,KAAKH,KAAMA,KAAKwtD,mBAE3DnxD,EAAMie,WAAY,GAGhBsyC,EAAQ,QAAS7zC,KACnBo2C,EAAa3S,SAAU,EAAI/H,EAAQ2B,OAAOoL,EAAanlD,MAAMmgD,QAASx8C,KAAKutD,mBAC3E4B,EAAazJ,QAAS,EAAIjR,EAAQ2B,OAAOoL,EAAanlD,MAAMqpD,OAAQ1lD,KAAKwtD,mBACzEnxD,EAAMmgD,QAAUx8C,KAAKutD,kBACrBlxD,EAAMqpD,OAAS1lD,KAAKwtD,kBAEpBnxD,EAAMie,WAAY,IAItB60C,EAAah/C,SAAWA,EAEpBnQ,KAAK4tD,UACPnB,EAAgBvE,aAAa2C,gBAAgB7qD,KAAK4tD,UAGpD5tD,KAAK4tD,SAAW5tD,KAAK8uD,YAAYI,EAAc7yD,IAC3B,EAAI/C,EAAO43C,cAAcsQ,EAAc2N,EAC7D,GAEC1d,EAAQzzC,UAAYzC,EAAcA,EAAc,CAAC,EAAGmxD,EAAS99C,QAAQ5Q,WAAY,CAAC,EAAG,CAItF+a,QAASxe,EAAWqU,QAAQ+kC,UAAU,CAACgZ,EAAapyD,EAAWqU,QAAQglC,QAAQ+Y,KAK/EuB,MAAO3zD,EAAWqU,QAAQtQ,OAK1B4a,UAAW3e,EAAWqU,QAAQtQ,OAK9BujD,UAAWtnD,EAAWqU,QAAQtQ,OAM9BgvD,YAAa/yD,EAAWqU,QAAQ3Q,KAKhCgV,UAAW1Y,EAAWqU,QAAQ1Q,OAS9BwnD,OAAQnrD,EAAWqU,QAAQjQ,KAK3Bu1C,QAAS35C,EAAWqU,QAAQjQ,KAK5B69C,QAASjiD,EAAWqU,QAAQjQ,KAK5B0wD,WAAY90D,EAAWqU,QAAQjQ,KAK/BywD,YAAa70D,EAAWqU,QAAQjQ,KAKhCsa,OAAQ1e,EAAWqU,QAAQjQ,KAK3Bqa,OAAQze,EAAWqU,QAAQjQ,KAK3Bya,KAAM7e,EAAWqU,QAAQ3Q,KAKzBwG,OAAQlK,EAAWqU,QAAQtQ,OAK3B4oD,YAAa3sD,EAAWqU,QAAQtQ,OAKhCgjD,KAAM/mD,EAAWqU,QAAQ3Q,KAKzB1B,SAAUhC,EAAWqU,QAAQ3Q,KAM7Bkb,kBAAmB5e,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQjQ,KAAMpE,EAAWqU,QAAQ1Q,SAO7FsrD,UAAWjvD,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQwT,QAAS7nB,EAAWqU,QAAQ/T,WACtF42C,EAAQ1zC,aAAe,CACzBuvD,aAAa,EACbv0C,QAAS,CAAC,QAAS,SACnB9F,UAAW,OACXxO,OAAQ,EACRyiD,YAAa,EACb5F,MAAM,EACN/kD,UAAU,EACVslD,UAAW,KAvfmFrQ,EAwf7FE,KAAWF,IAAWA,EAEzB35C,EAAA,QAAkBqiB,gCCnkBlBpgB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAkBI25C,EAAQC,EAASC,EAlBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpD80D,EAAqB90D,EAAuB,EAAQ,OAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDq3C,EAAkBr3C,EAAuB,EAAQ,QAEjD+0D,EAAgB/0D,EAAuB,EAAQ,QAE/CswD,EAAiBtwD,EAAuB,EAAQ,QAEhDlB,EAQJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CARztBU,CAAwB,EAAQ,QAEzCmmD,EAAYjmD,EAAuB,EAAQ,QAI/C,SAASf,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAMhN,IAAIu2D,GAUJ,EAAI5d,EAAqBhjC,SAAS4iC,GAAS,EAAIiF,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAuBn4C,EAAOsV,QAAQ+R,UAC3I,WAAAvnB,CAAYiD,EAAO84B,GACjB4c,MAAM11C,EAAO84B,GACbn1B,KAAKmyC,MAAQ,CACXsd,aAAc,EACdC,YAAa,EACbC,gBAAiB,KACjBC,eAAgB,KAChB38C,UAAWjT,KAAK3D,MAAM4W,WAExBjT,KAAK6vD,aAAc,EACnB7vD,KAAK8vD,YAAc,IACrB,CAEA,iBAAA1a,GACEp1C,KAAK+vD,eAAe/vD,KAAKgwD,aACzBr3D,OAAO2H,iBAAiB,SAAUN,KAAKiwD,qBAAqB,EAC9D,CAEA,gCAAA5d,GACEryC,KAAK6vD,aAAc,CACrB,CAEA,kBAAAhY,CAAmBC,GACb93C,KAAK6vD,cACP7vD,KAAK6vD,aAAc,EACnB7vD,KAAKiwD,oBAAoBjwD,KAAK3D,MAAM4W,YAAc6kC,EAAU7kC,WAEhE,CAEA,oBAAA0kC,GACEh/C,OAAOsL,oBAAoB,SAAUjE,KAAKiwD,qBAAqB,EACjE,CAEA,MAAAjhD,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,GACE0jC,EACE92C,EAtDV,SAAkCT,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAsDzdu1C,CAAyBoC,EAAa,CAAC,WAAY,eAE3D,aACJsc,EAAY,YACZC,EAAW,UACXQ,EAAS,gBACTP,EAAe,eACfC,EAAc,UACd38C,GACEjT,KAAKmyC,aACF91C,EAAMb,OAEb,MAAMgX,EAAQlZ,EAAOsV,QAAQmkC,SAASod,KAAKtyD,GAE3C,OAAoB,EAAIvE,EAAO43C,cAAc1+B,EAAOjX,EAAcA,EAAc,CAAC,GAAG,EAAIs2C,EAAgBjjC,SAASvS,IAAS,CAAC,EAAG,CAC5H4W,YACAxD,WAAW,EAAIkiC,EAAY/iC,SAASa,EAAW+C,EAAMnW,MAAMoT,WAC3D2gD,WAAY,CACV13C,KAAMi3C,EACN/2C,IAAKg3C,GAEPv4C,MAAO9b,EAAcA,EAAc,CAAC,EAAGiX,EAAMnW,MAAMgb,OAAQ,CAAC,EAAG,CAC7DvD,SAAU,WACV81C,OAAQ,IAERlxC,KAAM+2C,EACN72C,IAAK82C,EACLQ,UAAWA,MAGjB,CAEA,SAAAF,GACE,MAAMx0D,EAASwE,KAAK3D,MAAMb,OACpB60D,EAAkC,mBAAX70D,EAAwBA,IAAWA,EAChE,OAAO60D,GAAiB5P,EAAU7xC,QAAQyyC,YAAYgP,IAAkB,IAC1E,CAEA,mBAAAJ,CAAoBK,GAClB,MAAM90D,EAASwE,KAAKgwD,aAEfhwD,KAAK3D,MAAM4vD,sBAAwBzwD,IAAWwE,KAAK8vD,aAAgBQ,IAIxEtwD,KAAK+vD,eAAev0D,EACtB,CAEA,cAAAu0D,CAAev0D,GACb,MAAM,UACJyX,EAAS,iBACT+4C,EAAgB,OAChBvnD,EAAM,YACNyiD,EAAW,KACX5F,EAAI,kBACJnoC,GACEnZ,KAAK3D,MAGT,GAFA2D,KAAK8vD,YAAct0D,GAEdA,EAOH,YANAwE,KAAKuyC,SAAS,CACZkd,aAAc,EACdC,YAAa,EACbC,gBAAiB,KACjBC,eAAgB,OAKpB,MAAMhE,EAAUnL,EAAU7xC,QAAQyyC,YAAYrhD,MAExC8oD,GAAY,EAAIyG,EAAc3gD,SAAS5O,KAAK3D,MAAMysD,WAAW,EAAIgC,EAAel8C,SAAS5O,MAAM4N,MACrG5N,KAAKuyC,UAAS,EAAI+c,EAAmB1gD,SAASqE,EAAW24C,EAASpwD,EAAQstD,EAAWkD,EAAkB1K,EAAMnoC,EAAmB1U,EAAQyiD,GAC1I,GAECzV,EAAQ1zC,aAAe,CACxBiuD,iBAAkB,GAClBvnD,OAAQ,EACRyiD,YAAa,GAtH4D1V,EAuHxEE,KAAWF,IAAWA,EAEzB35C,EAAA,QAAkB23D,gCC5KlB11D,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI0wD,EAAkB/tD,EAAuB,EAAQ,QAEjD+1D,EAAc/1D,EAAuB,EAAQ,QAE7ClB,EAASkB,EAAuB,EAAQ,QAExCywD,EAAoBzwD,EAAuB,EAAQ,QAEvD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAQ9F,MAAMu3D,UAAyBD,EAAY3hD,QACzC,MAAAI,GAEE,IAAImkC,EAAcnzC,KAAK3D,OACnB,UACF6vD,EAAS,SACTruD,GACEs1C,EACA92C,EAdR,SAAkCT,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAc3du1C,CAAyBoC,EAAa,CAAC,YAAa,aAKhE,IAFqB92C,EAAM+c,MAASpZ,KAAKmyC,MAAMkZ,OAI7C,OAAO,KAGT,IAAI74C,EAAQ3U,GAGR,OACFsuD,EAAM,UACNC,EAAS,QACTC,EAAO,WACP/C,GACEjtD,EAkBJ,OAjBAmW,EAAqBlZ,EAAOsV,QAAQjR,cAAc4qD,EAAgB35C,QAAS,CACzE09C,GAAIjwD,EAAM+c,KACVmzC,QAAQ,EACRJ,OAAQA,EACRC,UAAWA,EACXnD,SAAUjpD,KAAKipD,SACfoD,QAASA,EACT/C,WAAYA,EACZuC,UAAW7rD,KAAK6rD,WACfr5C,GAEC05C,IACF15C,EAAqBlZ,EAAOsV,QAAQjR,cAAcstD,EAAkBr8C,QAAS,CAC3E49C,YAAaxsD,KAAK+gD,MACjBvuC,IAGEA,CACT,EAIF3a,EAAA,QAAkB24D,gCCtElB12D,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI0wD,EAAkB/tD,EAAuB,EAAQ,QAEjDkyD,EAAWlyD,EAAuB,EAAQ,QAE1CswD,EAAiBtwD,EAAuB,EAAQ,QAEhDuwD,EAAUvwD,EAAuB,EAAQ,QAEzCi2D,EAAej2D,EAAuB,EAAQ,QAE9ClB,EAASkB,EAAuB,EAAQ,QAExCywD,EAAoBzwD,EAAuB,EAAQ,QAEvD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,MAAMy3D,UAAmBhE,EAAS99C,QAChC,WAAAxV,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAK2wD,QAAUpvC,IAK1B,KAAdA,EAAEqvC,UAKA5wD,KAAK3D,MAAMwB,SAASxB,MAAMw0D,oBAC5BtvC,EAAEq8B,kBAGJ59C,KAAK+gD,KAAKx/B,GACZ,EACCmwB,CACL,CAEA,MAAA1iC,GACE,IAAI,iBACFg9C,EAAgB,OAChBxwD,EAAM,UACNstD,EAAY9oD,KAAK8rD,oBAAoBtwD,GAAO,UAC5CyX,EAAS,OACTxO,EAAM,YACNyiD,EAAW,KACX5F,EAAI,kBACJnoC,EAAoB,MAAM,EAAI2xC,EAAel8C,SAAS5O,MAAM4N,MAAI,qBAChEq+C,EAAoB,UACpBC,EAAS,SACTruD,EAAQ,KACRub,EAAI,OACJ+yC,EAAM,UACNC,EAAS,QACTC,EAAO,WACP/C,EAAU,aACVhC,GACEtnD,KAAK3D,MAIT,IAFqB+c,GAASpZ,KAAKmyC,MAAMkZ,OAIvC,OAAO,KAGT,IAAI74C,EAAQ3U,EAsCZ,OAnCA2U,EAAqBlZ,EAAOsV,QAAQjR,cAAc8yD,EAAa7hD,QAAS,CACtEk6C,YACAkD,mBACAxwD,SACAyX,YACAg5C,uBACAxnD,SACAyiD,cACA5F,OACAnoC,oBACAmuC,aAAcA,GACb90C,GAGHA,EAAqBlZ,EAAOsV,QAAQjR,cAAc4qD,EAAgB35C,QAAS,CACzE09C,GAAIlzC,EACJmzC,QAAQ,EACRJ,OAAQA,EACRC,UAAWA,EACXnD,SAAUjpD,KAAKipD,SACfoD,QAASA,EACT/C,WAAYA,EACZuC,UAAW7rD,KAAK6rD,WACfr5C,GAEC05C,IACF15C,EAAqBlZ,EAAOsV,QAAQjR,cAAcstD,EAAkBr8C,QAAS,CAC3E49C,YAAaxsD,KAAK+gD,MACjBvuC,IAILA,EAAqBlZ,EAAOsV,QAAQjR,cAAc,MAAO,CACvD42C,UAAWv0C,KAAK2wD,SACfn+C,GACiBlZ,EAAOsV,QAAQjR,cAAcotD,EAAQn8C,QAAS,CAChEk6C,UAAWA,GACVt2C,EACL,EAIF3a,EAAA,QAAkB64D,gCCrHlB52D,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI4+C,EAAqBj8C,EAAuB,EAAQ,QAEpD6tD,EAAW7tD,EAAuB,EAAQ,QAE1Cs5C,EAAYt5C,EAAuB,EAAQ,QAE3Cs2D,EAAoBt2D,EAAuB,EAAQ,QAEnDiyD,EAAkB,EAAQ,OAE1B8D,EAAc/1D,EAAuB,EAAQ,QAE7CgmD,EAAkBhmD,EAAuB,EAAQ,QAEjDlB,EAYJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAZztBU,CAAwB,EAAQ,QAEzCmmD,EAAYjmD,EAAuB,EAAQ,QAE/C,EAAQ,OAER,IAEIg3C,EAFA2O,EAAiB,EAAQ,OAI7B,SAAS1mD,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAE5T,SAASd,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAIpV,SAASe,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAMhN,IAAI83D,GAAoB,EAAIta,EAAmB7nC,SAAS4iC,EAAS,cAAgCgP,EAAgB5xC,QAC/G,WAAAxV,CAAYiD,EAAO84B,GACjB4c,MAAM11C,EAAO84B,GACbn1B,KAAKmtD,WAAY,EAAIrZ,EAAUllC,WAC/B5O,KAAKotD,WAAa,KAClBptD,KAAKgxD,MAAQ,KACbhxD,KAAKmyC,MAAQ,CACX/4B,UAAqBrW,IAAf1G,EAAM+c,KAAqB/c,EAAMixD,YAAcjxD,EAAM+c,MAE7DpZ,KAAKqtD,eAAiB,IAAI3rC,IAC1B1hB,KAAKkvD,aAAe51D,EAAOsV,QAAQmkC,SAASz5B,QAAQtZ,KAAK3D,MAAMwB,UAAU,GACzEmC,KAAKixD,WAAWjxD,KAAKkvD,cAAelvD,KAAKkvD,aAAa7yD,MAAM60D,UAC9D,CAEA,yBAAAC,GACE,OAAInxD,KAAKoxD,0BACApxD,KAAKoxD,2BAEa,EAAI/I,EAASz5C,SAAS6xC,EAAU7xC,QAAQyyC,YAAYrhD,MAAO,6BACzD+hB,SAASgnC,cAAc,6BAA+BhnC,SAASnU,IAE9F,CAEA,iBAAAwnC,GACEp1C,KAAKotD,WAAarrC,SAASpkB,cAAc,OAErCqC,KAAKixD,WACPjxD,KAAKgxD,MAAQjvC,SAASpkB,cAAc,SACpCqC,KAAKgxD,MAAMvhD,UAAY,cAGzBzP,KAAKytD,gBACL1rC,SAASnU,KAAKtN,iBAAiB,UAAWN,KAAKitD,cACjD,CAEA,IAAA7zC,CAAKmI,GACHvhB,KAAKoxD,0BAA4BpxD,KAAKmxD,4BAEjCnxD,KAAKmyC,MAAM/4B,MAASpZ,KAAK3D,MAAME,WAClCyD,KAAKgtD,WAAahtD,KAAKyuD,kBACvBzuD,KAAK0uD,wBACL1uD,KAAKuyC,SAAS,CACZn5B,MAAM,IAGJpZ,KAAKixD,WACPjxD,KAAKoxD,0BAA0BC,YAAYrxD,KAAKgxD,OAEhDhxD,KAAKgxD,MAAM1wD,iBAAiB,QAASN,KAAK+gD,MAC1C/gD,KAAKgxD,MAAMM,WAAW7Q,EAAU7xC,QAAQyyC,YAAYrhD,MAAO,CACzDiT,UAAWjT,KAAK3D,MAAM4W,aAItBjT,KAAK3D,MAAM4c,QACbjZ,KAAK3D,MAAM4c,OAAOsI,GAGxB,CAEA,qBAAAmtC,GACE1uD,KAAKguD,mCACL,IAAIuD,GAAgB,EAAIpR,EAAeyH,kBAAkBnH,EAAU7xC,QAAQyyC,YAAYrhD,OAEvF,IAAK,IAAIzB,KAAQgzD,EACfvxD,KAAKqtD,eAAehzD,IAAIkE,EAAM,CAC5Bma,KAAMna,EAAKizD,WACX54C,IAAKra,EAAKkzD,YAGZlzD,EAAK+B,iBAAiB,SAAUN,KAAK+gD,MAAM,EAE/C,CAGA,gCAAAiN,GACE,GAAiC,IAA7BhuD,KAAKqtD,eAAez2C,KACtB,IAAK,IAAIrY,KAAQyB,KAAKqtD,eACpB9uD,EAAK,GAAG0F,oBAAoB,SAAUjE,KAAK+gD,MAAM,EAGvD,CAEA,IAAAA,CAAKx/B,GACH,GAAIA,GAAgB,WAAXA,EAAExS,MAAqBwS,EAAE/lB,OAAQ,CACxC,IAAIk2D,EAAa1xD,KAAKqtD,eAAe1zD,IAAI4nB,EAAE/lB,QAG3C,GAAI+lB,EAAE/lB,OAAOg2D,aAAeE,EAAWh5C,MAAQ6I,EAAE/lB,OAAOi2D,YAAcC,EAAW94C,IAC/E,MAEJ,CAEA5Y,KAAKguD,mCAEDhuD,KAAKmyC,MAAM/4B,OACbpZ,KAAKuyC,SAAS,CACZn5B,MAAM,IAGJpZ,KAAKixD,WACPjxD,KAAKgxD,MAAM9Q,QACXlgD,KAAKgxD,MAAM/sD,oBAAoB,QAASjE,KAAK+gD,MAE7C/gD,KAAKoxD,0BAA0BO,YAAY3xD,KAAKgxD,QAG9ChxD,KAAK3D,MAAM2c,QACbhZ,KAAK3D,MAAM2c,OAAOuI,GAGxB,CAEA,oBAAAo2B,GACE8U,EAAgBvE,aAAa2C,gBAAgB7qD,KAAK4tD,UAElDnN,EAAU7xC,QAAQi/C,uBAAuB7tD,KAAKotD,YAE9CptD,KAAKotD,WAAa,KAClBptD,KAAKoxD,0BAA4B,KACjChlD,aAAapM,KAAK8tD,iBAClB1hD,aAAapM,KAAK+tD,iBAClB/tD,KAAKguD,mCAELhuD,KAAKqtD,eAAeuE,QAEpB7vC,SAASnU,KAAK3J,oBAAoB,UAAWjE,KAAKitD,cACpD,CAEA,aAAAQ,GACMztD,KAAK4tD,SAASvxD,MAAM+c,MACtBqzC,EAAgBvE,aAAayC,WAAW3qD,KAAK4tD,UAAU,GAGrD5tD,KAAKixD,SAEPxQ,EAAU7xC,QAAQI,OAAOhP,KAAK4tD,SAAU5tD,KAAKgxD,OAE7CvQ,EAAU7xC,QAAQqgD,oCAAoCjvD,KAAMA,KAAK4tD,SAAU5tD,KAAKotD,WAEpF,CAEA,WAAA0B,CAAYlD,EAASvvD,GACnB,IAAI,OACFb,EAASwE,MACPA,KAAK3D,OAEL,UACF6vD,GAAY,GACV7vD,EACA0yD,EA1JR,SAAkCnzD,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA0Jpdu1C,CAAyB10C,EAAO,CAAC,qBAE7C0yD,EAAa7H,mBACb6H,EAAazB,mBACbyB,EAAazN,KAEpB,IAAI0N,EApKR,SAAuBxzD,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAoK3fD,CAAc,CAClCxC,GAAI6yD,EAAQvvD,MAAMtD,IAAMg2D,EAAah2D,IACpCsD,GAMH,OAJKuvD,EAAQvvD,MAAMtD,KACjBg2D,EAAah2D,GAAKiH,KAAKmtD,WAGlBntD,KAAKixD,SAAwB33D,EAAOsV,QAAQjR,cAAcmzD,EAAkBliD,QAASqhC,EAAS,CAAC,EAAG+e,EAAiB,CACxH51C,KAAMpZ,KAAKmyC,MAAM/4B,KACjBJ,OAAQhZ,KAAK+gD,KACbmL,UAAWA,KACI,EAAI5yD,EAAO43C,cAAc0a,EAASmD,IAA8Bz1D,EAAOsV,QAAQjR,cAAc4yD,EAAY3hD,QAASqhC,EAAS,CAAC,EAAG+e,EAAiB,CAC/J51C,KAAMpZ,KAAKmyC,MAAM/4B,KACjB6vC,SAAUjpD,KAAKipD,SACfjwC,OAAQhZ,KAAKgZ,OACbxd,OAAQA,EACR0wD,UAAWA,KACI,EAAI5yD,EAAO43C,cAAc0a,EAASmD,GACrD,KAEIvd,EAEN35C,EAAA,QAAkBk5D,gCClOlBj3D,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAoBI25C,EApBAiF,EAAqBj8C,EAAuB,EAAQ,QAEpD80D,EAAqB90D,EAAuB,EAAQ,OAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjD+0D,EAAgB/0D,EAAuB,EAAQ,QAE/CswD,EAAiBtwD,EAAuB,EAAQ,QAEhDwwD,EAAYxwD,EAAuB,EAAQ,QAE3ClB,EAUJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAVztBU,CAAwB,EAAQ,QAEzCmmD,EAAYjmD,EAAuB,EAAQ,QAE3Cq3D,EAAwBr3D,EAAuB,EAAQ,QAI3D,SAASf,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAMhN,IAAI64D,GAAc,EAAIrb,EAAmB7nC,SAAS4iC,EAAS,cAA0BwZ,EAAUp8C,QAM7F,iBAAAwmC,GACMp1C,KAAK3D,MAAMirD,aACbtnD,KAAK+vD,eAAe/vD,KAAKgwD,YAAa,WAEtChwD,KAAK+vD,eAAe/vD,KAAKgwD,YAAa,UAGxCr3D,OAAO2H,iBAAiB,SAAUN,KAAKiwD,qBAAqB,EAC9D,CAEA,kBAAApY,CAAmBC,GACb93C,KAAK6vD,cACP7vD,KAAK6vD,aAAc,EACnB7vD,KAAKiwD,oBAAoBjwD,KAAK3D,MAAM4W,YAAc6kC,EAAU7kC,UAAW,WAE3E,CAEA,MAAAjE,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJwB,EAAQ,UACR4R,GACE0jC,EACE92C,EAjCV,SAAkCT,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAiCzdu1C,CAAyBoC,EAAa,CAAC,WAAY,eAE3D,aACJsc,EAAY,YACZC,EAAW,gBAEXC,EAAe,eACfC,EAAc,UACd38C,GACEjT,KAAKmyC,aACF91C,EAAM8c,yBACN9c,EAAMb,OAEb,MAAMgX,EAAQlZ,EAAOsV,QAAQmkC,SAASod,KAAKtyD,GAE3C,OAAoB,EAAIvE,EAAO43C,cAAc1+B,EAAOjX,EAAcA,EAAc,CAAC,GAAG,EAAIs2C,EAAgBjjC,SAASvS,IAAS,CAAC,EAAG,CAC5H4W,YACAxD,WAAW,EAAIkiC,EAAY/iC,SAASa,EAAW+C,EAAMnW,MAAMoT,WAC3D2gD,WAAY,CACV13C,KAAMi3C,EACN/2C,IAAKg3C,GAEP3yD,IAAK2uD,GAAW5rD,KAAK4rD,QAAUA,EAC/Bv0C,MAAO9b,EAAcA,EAAc,CAAC,EAAGiX,EAAMnW,MAAMgb,OAAQ,CAAC,EAAG,CAC7DvD,SAAU,WACV81C,OAAQ,IAERlxC,KAAM+2C,EACN72C,IAAK82C,MAQX,CAKA,yBAAAqC,GACE,GAAI/xD,KAAK4rD,QAAS,CAChB,GAAI5rD,KAAK4rD,QAAQoG,WAAY,CAC3B,MAAMC,EAAcxR,EAAU7xC,QAAQyyC,YAAYrhD,KAAK4rD,QAAQoG,YAE/D,GAAIC,EAAa,CACf,IAAIC,EAAeD,EAAYE,wBAC/BD,EAAaj/B,EAAIjzB,KAAKmyC,MAAMsd,aAC5ByC,EAAa9N,EAAIpkD,KAAKmyC,MAAMud,aAC5B,EAAImC,EAAsBjjD,SAAS5O,KAAK4rD,QAAQoG,YAAY,EAAMhyD,KAAK4rD,QAAQ7K,KAAMmR,EACvF,MACE,EAAIL,EAAsBjjD,SAAS5O,KAAK4rD,QAAQoG,YAAY,EAAMhyD,KAAK4rD,QAAQ7K,KAEnF,CAEA,GAAI/gD,KAAK4rD,QAAQrE,WAAY,CAG3B,MAAM6K,EAAc3R,EAAU7xC,QAAQyyC,YAAYrhD,KAAK4rD,QAAQrE,YAE/D,GAAI6K,EAAa,CACf,IAAIF,EAAeE,EAAYD,wBAC/BD,EAAaj/B,EAAIjzB,KAAKmyC,MAAMsd,aAC5ByC,EAAa9N,EAAIpkD,KAAKmyC,MAAMud,aAC5B,EAAImC,EAAsBjjD,SAASwjD,GAAa,EAAMpyD,KAAK4rD,QAAQ7K,KAAMmR,EAC3E,CACF,CACF,CACF,CAEA,mBAAAjC,CAAoBK,EAAkB+B,GACpC,MAAM72D,EAASwE,KAAKgwD,aAEfhwD,KAAK3D,MAAM4vD,sBAAwBzwD,IAAWwE,KAAK8vD,aAAgBQ,IAIxEtwD,KAAK+vD,eAAev0D,EAAQ62D,EAC9B,CAEA,cAAAtC,CAAev0D,EAAQ62D,GACrB,MAAM,UACJp/C,EAAS,iBACT+4C,EAAgB,OAChBvnD,EAAM,YACNyiD,EAAW,KACX5F,EAAI,kBACJnoC,GACEnZ,KAAK3D,MAGT,GAFA2D,KAAK8vD,YAAct0D,GAEdA,EAOH,YANAwE,KAAKuyC,SAAS,CACZkd,aAAc,EACdC,YAAa,EACbC,gBAAiB,KACjBC,eAAgB,OAKpB,MAAMhE,EAAUnL,EAAU7xC,QAAQyyC,YAAYrhD,MAM9C,IAAK4rD,EACH,OAGFA,EAAQv0C,MAAMg7C,WAAaA,EAC3B,MAAMvJ,GAAY,EAAIyG,EAAc3gD,SAAS5O,KAAK3D,MAAMysD,WAAW,EAAIgC,EAAel8C,SAAS5O,MAAM4N,MACrG5N,KAAKuyC,UAAS,EAAI+c,EAAmB1gD,SAASqE,EAAW24C,EAASpwD,EAAQstD,EAAWkD,EAAkB1K,EAAMnoC,EAAmB1U,EAAQyiD,IAMxI,MAAMoL,EAAgB1G,EAAQuG,wBAAwB5W,OAChDgX,EAAe3G,EAAQ2G,aAEzBD,IAAkBtyD,KAAKmyC,MAAM+d,UAAYoC,GAAiBC,EAAeD,GAAiBC,EAAevyD,KAAKmyC,MAAM+d,aACtHtE,EAAQv0C,MAAM64C,UAAYlwD,KAAKmyC,MAAM+d,WAGnClwD,KAAK4rD,SACP5rD,KAAK+xD,2BAET,KAEIvgB,EAEN35C,EAAA,QAAkBi6D,+BC9MlBh4D,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQ26D,0BAA4BA,EACpC36D,EAAA,QA6OA,SAA2B46D,EAAgBC,EAAal3D,EAAQstD,EAAWhiD,EAASw6C,EAAMnoC,EAAmB1U,EAAQyiD,GACnH,MAAMyL,EAAwC,SAAtB7J,EAAUpwD,QAC5Bk6D,EAAcD,GAAkB,EAAIE,EAAQjkD,SAASpT,IAAU,EAAIs3D,EAAUlkD,SAASpT,EAAQstD,GAE/F6J,IACHC,EAAYh6C,KAAO5N,UAAS,EAAI+nD,EAAOnkD,SAASpT,EAAQ,aAAc,KAAO,EAC7Eo3D,EAAYl6C,MAAQ1N,UAAS,EAAI+nD,EAAOnkD,SAASpT,EAAQ,cAAe,KAAO,GAGjF,MAAMw3D,GAAc,EAAIH,EAAQjkD,SAAS8jD,GACnCO,EA9HR,SAAoB10D,GAClB,MAAM8Y,EAAQ1e,OAAOovD,iBAAiBxpD,GACtC,MAAO,CACLqa,IAAK5N,SAASqM,EAAMgkC,UAAW,KAAO,EACtCxiC,OAAQ7N,SAASqM,EAAMikC,aAAc,KAAO,EAC5C5iC,KAAM1N,SAASqM,EAAMokC,WAAY,KAAO,EACxC9iC,MAAO3N,SAASqM,EAAM67C,YAAa,KAAO,EAE9C,CAsHkBC,CAAWT,GAC3BM,EAAY1gD,OAAS2gD,EAAQv6C,KAAOu6C,EAAQt6C,MAC5Cq6C,EAAYzX,QAAU0X,EAAQr6C,IAAMq6C,EAAQp6C,OAChBu6C,EAAuBtK,GAAnD,MACMuK,EAA0C,cAAtBl6C,EAAoC2vC,EAAY3vC,IAG1E,OAAOq5C,EAA0BC,EAAgBa,EAAqBV,EAAaI,EAAaC,EAASnsD,EAASw6C,EAFvF8R,EAAuBC,GACgB,SAA9BA,EAAkB36D,SAAqB,EAAIm6D,EAAQjkD,SAASk6C,IAAa,EAAIgK,EAAUlkD,SAASk6C,EAAWuK,GAC0B5uD,EAAQyiD,EACnL,EA7PA,IAAI6L,EAASv4D,EAAuB,EAAQ,OAExCq4D,EAAUr4D,EAAuB,EAAQ,QAEzCs4D,EAAYt4D,EAAuB,EAAQ,QAE3C+4D,EAAc/4D,EAAuB,EAAQ,QAE7Cg5D,EAAah5D,EAAuB,EAAQ,QAE5CswD,EAAiBtwD,EAAuB,EAAQ,QAEhDimD,EAAYjmD,EAAuB,EAAQ,QAE/C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAkB9F,MAAMw6D,EAAO,CACX76C,IAAK,MACLC,OAAQ,MACRH,KAAM,OACNC,MAAO,OACP+6C,OAAQ,QAEJC,EAAoB,CACxB/6C,IAAK,SACLC,OAAQ,MACRH,KAAM,QACNC,MAAO,QAEHi7C,EAAa,CACjBh7C,IAAK,OACLF,KAAM,OAEFm7C,EAAY,CAChBj7C,IAAK,SACLF,KAAM,SAEFo7C,EAAyB,CAAC,EAEhC,SAASV,EAAuBW,GAC9B,IAAIzhD,EACAipC,EACA3iC,EAAM,EACNF,EAAO,EACPs7C,EAAS,CAAC,EAEd,MAAMC,EAAmBxT,EAAU7xC,QAAQyyC,YAAY0S,GAkBvD,MAhBiC,SAA7BE,EAAiBv7D,SACnB4Z,EAAQ3Z,OAAOu7D,YAAcH,EAAcI,YAC3C5Y,EAAS5iD,OAAOy7D,aAAeL,EAAcM,aAC7CL,EAAOp7C,KAAM,EAAI46C,EAAW5kD,UAAS,EAAIk8C,EAAel8C,SAASqlD,GAAkBK,mBAAoB,EAAId,EAAW5kD,SAASqlD,GAC/HD,EAAOt7C,MAAO,EAAI66C,EAAY3kD,UAAS,EAAIk8C,EAAel8C,SAASqlD,GAAkBK,mBAAoB,EAAIf,EAAY3kD,SAASqlD,OAGhI3hD,QACAipC,SACA3iC,MACAF,SACE,EAAIm6C,EAAQjkD,SAASqlD,IACzBD,EAAOp7C,KAAM,EAAI46C,EAAW5kD,SAASqlD,GACrCD,EAAOt7C,MAAO,EAAI66C,EAAY3kD,SAASqlD,IAGlC,CACL3hD,QACAipC,SACAyY,SACAp7C,MACAF,OAEJ,CAEA,SAAS67C,EAASC,EAAM/vD,EAAQmS,EAAM08C,EAAqBxsD,GACzD,MAAM2tD,EAAkBnB,EAAoBU,OAAOQ,GAC7CE,EAAkBpB,EAAoBO,EAAUW,IAChDG,EAAkBlwD,EAASqC,EAAU2tD,EACrCG,EAAgBnwD,EAASqC,EAAU2tD,EAAkB79C,EAE3D,OAAI+9C,EAAkB,GACZA,EACCC,EAAgBF,EAClBtvD,KAAK8F,IAAIwpD,EAAkBE,GAAgBD,GAE3C,CAEX,CAEA,SAASE,EAAWL,EAAM/vD,EAAQmS,EAAM9P,EAASmM,EAAW6hD,EAAyBC,GACnF,MAAMN,EAAkBK,EAAwBd,OAAOQ,GACjDE,EAAkBI,EAAwBjB,EAAUW,IACpDG,EAAkBI,EAA4BP,GAAQ/vD,EAASqC,EAAU2tD,EACzEG,EAAgBG,EAA4BP,GAAQ/vD,EAASqC,EAAU2tD,EAAkB79C,EAE/F,OAAI+9C,EAAkB,IAAoB,QAAd1hD,GAAqC,SAAdA,IAExC2hD,EAAgBF,IAAkC,WAAdzhD,GAAwC,UAAdA,EAK3E,CAYA,SAAS+hD,EAAe5a,GACtB,GAAI0Z,EAAuB1Z,GACzB,OAAO0Z,EAAuB1Z,GAGhC,IAAKnnC,EAAWgiD,GAAkB7a,EAAMhyB,MAAM,KAC1CosC,EAAOf,EAAKxgD,IAAc,QAC1BiiD,EAAYtB,EAAWY,GAEtBf,EAAKwB,KACRA,EAAiB,UAGnB,IAAIr+C,EAAOi9C,EAAUW,GACjBW,EAAYtB,EAAUqB,GAS1B,OARApB,EAAuB1Z,GAAS,CAC9BnnC,YACAgiD,iBACAT,OACAU,YACAt+C,OACAu+C,aAEKrB,EAAuB1Z,EAChC,CAEA,SAASgb,EAAgBxC,EAAaU,EAAqBN,EAAaqC,EAAe5wD,EAAQyiD,GAC7F,MAAM,UACJj0C,EAAS,eACTgiD,EAAc,KACdT,EAAI,UACJU,EAAS,KACTt+C,EAAI,UACJu+C,GACEE,EACJ,IAAIvhD,EAAW,CAAC,EAUhB,GATAA,EAASohD,GAAatC,EAAYsC,GAAahO,EAExB,WAAnB+N,EACFnhD,EAASohD,KAAetC,EAAYuC,GAAanC,EAAYmC,IAAc,EAClEF,IAAmBC,IAC5BphD,EAASohD,IAActC,EAAYuC,GAAanC,EAAYmC,IAI1DvC,EAAYuC,GAAanC,EAAYmC,GAAY,CACnD,MAAMG,EAAkClwD,KAAKm/B,IAAIzwB,EAASohD,GAAYtC,EAAYsC,IAClFphD,EAASohD,GAAa9vD,KAAK8F,IAAIoqD,EAAiC1C,EAAYsC,GAAalC,EAAYmC,GAAavC,EAAYuC,GAChI,CAQA,OALErhD,EAAS0gD,GADPvhD,IAAcuhD,EACC5B,EAAY4B,GAAQxB,EAAYp8C,GAAQnS,EAExCmuD,EAAY4B,GAAQ5B,EAAYh8C,GAAQnS,EAGpDqP,CACT,CAEA,SAAS0+C,EAA0BC,EAAgBa,EAAqBV,EAAaI,EAAaC,EAASnsD,EAASw6C,EAAMiU,EAAoBR,EAA6BtwD,EAAQyiD,GACjL,IAAImO,EAAgBL,EAAevC,GACnC,MAAM,KACJ+B,EAAI,KACJ59C,EAAI,UACJs+C,EAAS,UACTC,EAAS,UACTliD,EAAS,eACTgiD,GACEI,EACJ,IAAIvhD,EAAWshD,EAAgBxC,EAAaU,EAAqBN,EAAaqC,EAAe5wD,EAAQyiD,GACjGsO,EAAmB/wD,EAEvB,GAAI68C,GAAQuT,EAAWL,EAAM1gD,EAAS0gD,GAAOxB,EAAYp8C,GAAO9P,EAASmM,EAAWsiD,EAAoBR,GAA8B,CACpI,MAAMU,EAAuBT,EAAe,GAAGrB,EAAkB1gD,MAAcgiD,MACzE,KACJT,EAAI,KACJ59C,GACE6+C,EACEC,EAAkBN,EAAgBxC,EAAaU,EAAqBN,EAAayC,GAAuB,EAAIhxD,EAAQyiD,GAErH2N,EAAWL,EAAMkB,EAAgBlB,GAAOxB,EAAYp8C,GAAO9P,EAAS6sD,EAAkB1gD,GAAYsiD,EAAoBR,KACzHM,EAAgBI,EAChB3hD,EAAW4hD,EACXF,GAAoB,EAAI/wD,EAE5B,CAEA,IAAIkxD,EAAQpB,EAASW,EAAWphD,EAASohD,GAAYlC,EAAYmC,GAAYI,EAAoBzuD,GACjGgN,EAASohD,IAAcS,EACvB,IAAIzF,EAAY9qD,KAAK8F,IAAI,EAAGqqD,EAAmBha,OAASga,EAAmB38C,IAAM28C,EAAmBvB,OAAOp7C,IAAMm8C,EAA4Bn8C,IAAM9E,EAAS8E,IAAMq6C,EAAQr6C,IAAMq6C,EAAQp6C,OAAS/R,GACjMksD,EAAYzX,OAASn2C,KAAKm/B,IAAIyuB,EAAYzX,OAAQ2U,GAClDp8C,EAAWshD,EAAgBxC,EAAaU,EAAqBN,EAAaqC,EAAeG,EAAkBtO,GAC3GyO,EAAQA,EAAQpB,EAASW,EAAWphD,EAASohD,GAAYlC,EAAYmC,GAAYI,EAAoBzuD,GACrGgN,EAASohD,IAAcS,EACvB,MAAMC,EAAgB,CAAC,EAEvB,OADAA,EAAcV,GAAatC,EAAYuC,GAAanC,EAAYmC,GAAa,KAAOvC,EAAYsC,GAAaphD,EAASohD,GAAatC,EAAYuC,GAAa,EACrJ,CACL1F,aAAc37C,EAAS4E,KACvBg3C,YAAa57C,EAAS8E,IACtBs3C,UAAWA,EACXP,gBAAiBiG,EAAcl9C,KAC/Bk3C,eAAgBgG,EAAch9C,IAC9B3F,UAAWoiD,EAAcpiD,UAE7B,gCC/OA,IAEgCha,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,WAAW,IAAM,EAAQ,SAAoB,IAAM,EAAQ,uCCpBvGr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAkBI25C,EAAQC,EAASC,EAlBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Cs5C,EAAYt5C,EAAuB,EAAQ,QAE3CqhD,EAAgBrhD,EAAuB,EAAQ,QAE/Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAUJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAVztBU,CAAwB,EAAQ,QAEzCw3C,EAAgB,EAAQ,OAM5B,SAASr4C,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAV5T,EAAQ,OAuBN,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OASzJ,EAAQ,OAGuI,EAAQ,OACT,EAAQ,MACJ,EAAQ,OACT,EAAQ,OAE3J,IAAIqf,GAAU,EAAI07B,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAsBn4C,EAAOqnB,UACrG,WAAAvnB,CAAYiD,EAAO84B,GACjB4c,MAAM11C,EAAO84B,GACbn1B,KAAK61D,WAAY,EAAI/hB,EAAUllC,UACjC,CAEA,iBAAAwmC,GACMp1C,KAAK3D,MAAMie,YACbta,KAAK81D,kBAAoBzgB,uBAAsB,KACzCr1C,KAAKunD,aAAevnD,KAAKunD,WAAW2F,SAASnrC,SAAS0nC,gBACxDzpD,KAAKunD,WAAWjS,OAClB,IAGN,CAEA,oBAAAqC,GACM33C,KAAK81D,mBACP/O,qBAAqB/mD,KAAK81D,kBAE9B,CAEA,OAAAtZ,CAAQj7B,GACFvhB,KAAK3D,MAAMmgD,SACbx8C,KAAK3D,MAAMmgD,QAAQj7B,GAGjBvhB,KAAK3D,MAAMie,WAAaiH,EAAE/lB,SAAWwE,KAAKunD,aAAevnD,KAAKunD,WAAW2F,SAAS3rC,EAAE+sC,iBACtF,EAAIxc,EAAcx3B,WAAWta,KAAMuhB,EAEvC,CAEA,SAAAgzB,CAAUhzB,GACJvhB,KAAK3D,MAAMk4C,YACbv0C,KAAK3D,MAAMk4C,UAAUhzB,GAEjBA,EAAEq7B,sBAAwBr7B,EAAEq7B,yBAK9B58C,KAAK3D,MAAMie,YACb,EAAIw3B,EAAcx3B,WAAWta,KAAMuhB,EAEvC,CAEA,MAAAvS,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,QACJwT,EAAO,UACPoD,EAAS,KACTH,EAAI,MACJyE,EAAK,SACL1Z,EAAQ,UACR4R,EAAS,SACT8K,GAAW,EAAI,UAEfD,EAAS,SACT24B,EAAW,KAAI,GACfl6C,EAAKiH,KAAK61D,UACV,aAAc3iD,EACd,kBAAmBgqC,EACnB,mBAAoBC,GAClBhK,EACErC,EAlGV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAkGpdu1C,CAAyBoC,EAAa,CAAC,UAAW,YAAa,OAAQ,QAAS,WAAY,YAAa,WAAY,YAAa,WAAY,KAAM,aAAc,kBAAmB,4BAEjMrC,EAAWt1C,OAClB,IAAIqtD,EAAUtuC,EAAwBjhB,EAAOsV,QAAQjR,cAAc,MAAO,CACxE8R,UAAW,0BACX+K,KAAM,eACNzhB,GAAI,GAAGA,aACN8E,GAAYA,EACf,OAGEvE,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC3ChzC,IAAKqvB,GAAKtsB,KAAKunD,WAAaj7B,EAC5B7c,WAAW,EAAIkiC,EAAY/iC,SAAS,mBACpC,qBAAqBqE,EAAUmV,MAAM,KAAK,KAAM,CAC9C,4BAA6B7N,EAC7B,2BAA4BA,EAC5B,CAAC,oBAAoB1K,KAAY0K,EACjC,UAAWzH,GACVrD,GACH+K,KAAMD,EAAW,SAAW,eAC5BxhB,GAAIA,EACJ,aAAcma,EACd,kBAAmBgqC,IAAmB3iC,GAAYhD,IAAUrE,EAAY,GAAGna,YAAe,MAC1F,mBAAoBokD,IAAoB5iC,GAAYhD,GAAS1Z,EAAW,GAAG9E,YAAe,MAC1F,cAAe,YACd,EAAI84C,EAAgBjjC,SAASkiC,GAAa,CAC3C0L,QAASx8C,KAAKw8C,QACdjI,UAAWv0C,KAAKu0C,UAChBtB,SAAU34B,GAA0B,OAAb24B,EAAoB,EAAIA,IAC7C14B,GAAYhD,GAAsBje,EAAOsV,QAAQjR,cAAck+C,EAAcjtC,QAAS,CACxF7V,GAAI,GAAGA,YACPwe,MAAOA,EACP1H,QAASA,IACPg5C,EAAStuC,GAAYva,KAAK+1D,YAElC,CAEA,SAAAA,GACE,OAAoBz8D,EAAOsV,QAAQjR,cAAc,MAAO,CACtD8R,UAAW,uBACX4H,MAAOrX,KAAK3D,MAAM+zD,WAClB,cAAe,OACf,cAAe,OAEnB,GAEC3e,EAAQzzC,UAAY,CAIrB6R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,UAAW,UAM9CtjC,UAAW1Y,EAAWqU,QAAQ2nC,MAAM,CAAC,SAAU,cAAe,eAAgB,MAAO,WAAY,YAAa,OAAQ,WAAY,cAAe,QAAS,YAAa,iBAKvKzjC,KAAMvY,EAAWqU,QAAQ3Q,KAKzBsZ,MAAOhd,EAAWqU,QAAQrQ,KAK1BkR,UAAWlV,EAAWqU,QAAQ1Q,OAK9Boc,UAAW/f,EAAWqU,QAAQ3Q,MAC7BwzC,EAAQ1zC,aAAe,CACxB8R,QAAS,UACToD,UAAW,SACXH,MAAM,EACNwH,WAAW,GAlJiCk3B,EAmJ3CE,KAAWF,EAEd35C,EAAA,QAAkBkjB,EAClBA,EAAQjd,YAAc,wCCzNtBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAYI25C,EAZAiF,EAAqBj8C,EAAuB,EAAQ,QAEpDw7D,EAAOx7D,EAAuB,EAAQ,QAEtC+rD,EAAW/rD,EAAuB,EAAQ,QAE1ClB,EAASkB,EAAuB,EAAQ,QAExCq3D,EAAwBr3D,EAAuB,EAAQ,QAEvDunD,EAAe,EAAQ,OAI3B,SAASvnD,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAgChN,IAAIg9D,GAAa,EAAIxf,EAAmB7nC,SAAS4iC,EAAS,cAAyB+U,EAAS33C,QAC1F,WAAAxV,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKk2D,kBAAoB,KACjDl2D,KAAK3D,MAAM60D,aACd,EAAIW,EAAsBjjD,SAAS5O,KAAKunD,YAAY,EAAMvnD,KAAK+gD,KACjE,EACC/gD,KAAKm2D,iBAAmB,KACpBn2D,KAAK3D,MAAM60D,aACd,EAAIW,EAAsBjjD,SAAS5O,KAAKunD,YAAY,EACtD,EACCvnD,KAAK+gD,KAAO,KACT/gD,KAAKunD,aACPvnD,KAAKunD,WAAWlwC,MAAM6jC,QAAU,OAClC,EACCxJ,CACL,CAEA,iBAAA0D,GACMp1C,KAAKunD,YACPvnD,KAAKunD,WAAWjnD,iBAAiB,SAAUN,KAAKk2D,kBAEpD,CAEA,oBAAAve,GACM33C,KAAKunD,YACPvnD,KAAKunD,WAAWtjD,oBAAoB,SAAUjE,KAAKk2D,mBAGrDl2D,KAAKm2D,kBACP,CAEA,SAAAJ,GACE,MAAM,UACJ9iD,GACEjT,KAAK3D,MACT,IAAK+5D,GAAelxD,MAAM4nD,GAnE9B,SAA0B75C,GAKxB,MAAgC,UAA5BA,EAAUmV,MAAM,KAAK,GAChB,CAJKxR,MAIW,0BAAwD,CAC7E8B,MAAM,KAIsB,SAA5BzF,EAAUmV,MAAM,KAAK,GAChB,CAVKxR,MAUW,yBAA8C,CACnE+B,OAAO,KAIqB,QAA5B1F,EAAUmV,MAAM,KAAK,GAChB,CAhBKxR,MAgBW,yBAA8C,CACnEiC,QAAQ,OAIoB,WAA5B5F,EAAUmV,MAAM,KAAK,GAChB,CAtBKxR,MAsBW,0BAAwD,CAC7EgC,KAAK,UAFT,CAKF,CAuCiCy9C,CAAiBpjD,KAEzCX,EAAOipC,EAAQ+a,EAAUj/C,GAAS++C,EACvC,OAAoB98D,EAAOsV,QAAQjR,cAAcokD,EAAaC,gBAAgBC,SAAU,MAAM,EAC5FpmC,QACAI,SACE,CAAC,IAAmB3iB,EAAOsV,QAAQjR,cAAc,MAAO,CAC1D8R,UAAW,uBACX4H,MAAO9b,EAAc,CACnB+W,QACAipC,SACAgb,OAAQ,OACRC,WAAY,OACZC,KAAMT,EAAKpnD,QAAQytB,SAASpgB,GAAOJ,GAAO66C,QAAQ9nD,QAAQ+nD,OAAO/nD,QAAQ,oBACzEgoD,OAAQZ,EAAKpnD,QAAQytB,SAASpgB,GAAOJ,GAAO66C,QAAQ9nD,QAAQ+nD,OAAO/nD,QAAQ,iBAC1EyI,IACW/d,EAAOsV,QAAQjR,cAAc,OAAQ,CACnD8lB,EAAG6yC,MAEP,KAEI9kB,EAEN35C,EAAA,QAAkBo+D,gCCrHlB,IAEgCh9D,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,mBAAmB,IAAM,EAAQ,SAA4B,IAAM,EAAQ,uCCpBvHr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAEL2C,EAAuB,EAAQ,QAA5C,IAEIimD,EAAYjmD,EAAuB,EAAQ,QAE/C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAkB9F,IAAI4E,EAAW,CAAC,EAsDhBhG,EAAA,QAhDA,MAME,UAAO8rC,CAAInxB,EAAO2iB,GAChB,IAAI52B,EAAOV,EAAS2U,EAAMvY,MAAQ8nB,SAASpkB,cAAc,OAEpDw3B,EAGHsrB,EAAU7xC,QAAQqgD,oCAAoC95B,EAAS3iB,EAAOjU,GAFtEkiD,EAAU7xC,QAAQI,OAAOwD,EAAOjU,GAKlCV,EAAS2U,EAAMvY,KAAOsE,CACxB,CAOA,aAAO8qD,CAAO72C,GACZiuC,EAAU7xC,QAAQi/C,uBAAuBhwD,EAAS2U,EAAMvY,aAEjD4D,EAAS2U,EAAMvY,IACxB,CAMA,gBAAO48D,GACL,IAAK,IAAIrkD,KAAS3U,EAEXA,EAAS3D,eAAesY,KAI7BiuC,EAAU7xC,QAAQi/C,uBAAuBhwD,EAAS2U,WAE3C3U,EAAS2U,GAEpB,iCC7EF1Y,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIwwD,EAAW7tD,EAAuB,EAAQ,QAE1Cs8D,EAAYt8D,EAAuB,EAAQ,QAE3ClB,EAASkB,EAAuB,EAAQ,QAExCimD,EAAYjmD,EAAuB,EAAQ,QAE/C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAkB9F,IAAI4E,EAAW,CAAC,EA4FhBhG,EAAA,QAtFA,MAME,UAAO8rC,CAAInxB,EAAO2iB,GAChB,IAAI52B,EAAOV,EAAS2U,EAAMvY,MAAQ8nB,SAASpkB,cAAc,OAGzD,GAFAE,EAAS2U,EAAMvY,KAAOsE,EAEjB42B,EAEE,CAIL,IAAI4hC,GAAgB,EAAI1O,EAASz5C,SAAS6xC,EAAU7xC,QAAQyyC,YAAYlsB,GAAU,4BAA4B1lB,UAC1GwM,EAAQ,QACRJ,EAAQ,SACOk7C,EAAc3uC,MAAM,KAC1BvsB,SAAQqC,IACnB,OAAQA,GACN,IAAK,kBACH+d,EAAQ,QACR,MAEF,IAAK,qBACHA,EAAQ,WACR,MAEF,IAAK,iBACHA,EAAQ,OACR,MAEF,IAAK,oBACHA,EAAQ,UACR,MAEF,IAAK,mBACHJ,EAAQ,SACR,MAEF,IAAK,kBACHA,EAAQ,QAEZ,IAEFrJ,EAAqBlZ,EAAOsV,QAAQjR,cAAcm5D,EAAUloD,QAAS,CACnEqN,MAAOA,EACPJ,MAAOA,GACNrJ,GAEHiuC,EAAU7xC,QAAQqgD,oCAAoC95B,EAAS3iB,EAAOjU,EACxE,MA1CEkiD,EAAU7xC,QAAQI,OAAOwD,EAAOjU,EA2CpC,CAOA,aAAO8qD,CAAO72C,GACZiuC,EAAU7xC,QAAQi/C,uBAAuBhwD,EAAS2U,EAAMvY,aAEjD4D,EAAS2U,EAAMvY,IACxB,CAMA,gBAAO48D,GACL,IAAK,IAAIrkD,KAAS3U,EAEXA,EAAS3D,eAAesY,KAI7BiuC,EAAU7xC,QAAQi/C,uBAAuBhwD,EAAS2U,WAE3C3U,EAAS2U,GAEpB,iCCvHF,IAEgCvZ,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,YAAY,IAAM,EAAQ,SAAqB,IAAM,EAAQ,SAAkB,IAAM,EAAQ,uCCpBzIr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBm/D,EAElB,IAAIrlB,EAAcn3C,EAAuB,EAAQ,QAE7Cs5C,EAAYt5C,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAa1T,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAC3J,MAAM80C,EAAQ,CACZ1wB,EAAG,QACHC,EAAG,UAGL,SAASi3C,EAASt0D,GAChB,IAAI,MACFzG,EAAQ,EAAC,KAET2a,EAAO,IAAG,YAEVqgD,GAAc,EAAK,QAEnBpnD,EAAO,cAEPwL,EAAgB,OAAM,gBAEtBD,GAAkB,EAAK,MACvBrL,EAAK,UACLN,EAAS,GACT1W,GAAK,EAAI+6C,EAAUllC,WAAU,IAC7B21B,EAAM,EAAC,IACPr5B,EAAM,IAAG,WACTgsD,GACEx0D,EACAouC,EA3CN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA2Cxdu1C,CAAyBruC,EAAM,CAAC,QAAS,OAAQ,cAAe,UAAW,gBAAiB,kBAAmB,QAAS,YAAa,KAAM,MAAO,MAAO,eAEtKy0D,EAAY,CAAC,EACbC,EAAiB,CAAC,EACtB,MAAMC,EAAgB7mB,EAAM55B,GAC5B3a,EAAQmJ,KAAKm/B,IAAIn/B,KAAK8F,KAAKjP,EAAOsoC,GAAMr5B,GACxC,IACIg4C,EADAoU,EAAa,IAAMr7D,GAASiP,EAAMq5B,GAElC2Y,EAAiB,GAgCrB,OA9BIpM,EAAW,qBACboM,EAAe7hD,KAAKy1C,EAAW,2BACxBA,EAAW,oBAGhB/gC,IACFmzC,GAAU,EAAIpP,EAAUllC,WAAa,SACrCsuC,EAAe7hD,KAAK6nD,IAGlBpS,EAAW,eACboM,EAAevhD,OAAS,GAAKuhD,EAAe7hD,KAAKtC,GAGnDmkD,EAAiBA,EAAevhD,OAASuhD,EAAev4C,KAAK,KAAO,KAE/DyW,IACH+7C,EAAY,CACV9/C,MAAO,CACL/E,MAAO,GAAGglD,OAGdF,EAAiB,CACf,gBAAiB7yB,EACjB,gBAAiBr5B,EACjB,gBAAiBjP,EACjB,iBAAkBi7D,GAA6B9xD,KAAKmyD,MAAmB,GAAbD,GAAmB,GAAjC,MAI5Bh+D,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC/DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,qBAAsB,uBAAuByoD,IAAiB,CAChG,oCAAqCj8C,EACrC,gCAAmD,SAAlBC,EACjC,qCAAkD,mBAAZxL,EACtC,cAA2B,aAAZA,EACf,aAA0B,YAAZA,EACd,cAA2B,aAAZA,GACdJ,GACH+K,KAAM,eACL48C,EAAgB,CACjB,kBAAmBla,EACnBnkD,GAAIA,IACH,EAAI84C,EAAgBjjC,SAASkiC,IAAc/gC,GAAsBzW,EAAOsV,QAAQjR,cAAc,MAAO,CACtG8R,UAAW,2BACX1W,GAAImqD,GACHnzC,IAASknD,GAAeC,IAA4B59D,EAAOsV,QAAQjR,cAAc,MAAO,CACzF8R,UAAW,iCACVynD,GAA0B,GAAG9xD,KAAKmyD,MAAMD,OAA8Bh+D,EAAOsV,QAAQjR,cAAc,MAAO,CAC3G8R,UAAW,4BACGnW,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC3DxgC,UAAW,2BACV0nD,KACL,CAEAH,EAASh5D,UAAY,CAKnB/B,MAAO1B,EAAWqU,QAAQtQ,OAK1BimC,IAAKhqC,EAAWqU,QAAQtQ,OAKxB4M,IAAK3Q,EAAWqU,QAAQtQ,OAKxBsY,KAAMrc,EAAWqU,QAAQ2nC,MAAM,CAAC,IAAK,MAKrC0gB,YAAa18D,EAAWqU,QAAQ3Q,KAKhCi5D,WAAY38D,EAAWqU,QAAQ1Q,OAK/Bkd,gBAAiB7gB,EAAWqU,QAAQ3Q,KAKpC4R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,WAAY,UAAW,WAAY,mBAMtEl7B,cAAe9gB,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,MAAO,WAKxDxmC,MAAOxV,EAAWqU,QAAQ1Q,QAE5B84D,EAASl5D,YAAc,yCCpLvBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIi8C,EAAYt5C,EAAuB,EAAQ,QAE3CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAEzCk9D,EAAeh9D,EAAuB,EAAQ,QAElD,SAASf,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAIpV,SAASe,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAMhN,MAAMw+D,EAAc,CAClB33C,EAAG,QACHC,EAAG,SAEC23C,EAAiB,CACrBvgB,eAAgB,iBAChBwgB,SAAU,WACVzgB,QAAS,SACT0gB,SAAU,YAGZ,MAAMC,UAAsBv+D,EAAOqnB,UACjC,WAAAvnB,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAK83D,gBAAkB,CAACv8C,EAAUlf,KAC/D,MAAM,SACJwB,GACExB,EACJ,IAAI+7C,EAAY78B,EAAW,iBAAmB,WAC9C,OAAoBjiB,EAAOsV,QAAQjR,cAAcy6C,EAAW/7C,EAAOwB,EAAS,EAC3E6zC,CACL,CAEA,MAAA1iC,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,KACJua,EAAO,IAAG,YAEVqgD,GAAc,EAAK,QAEnBpnD,EAAO,cAEPwL,EAAgB,OAAM,gBAEtBD,GAAkB,EAAK,MACvBrL,EAAK,UACLN,EAAS,GACT1W,GAAK,EAAI+6C,EAAUllC,WAAU,IAC7B21B,EAAM,EAAC,IACPr5B,EAAM,IAAG,WACTgsD,GACE/jB,EACErC,EA/CV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA+Cpdu1C,CAAyBoC,EAAa,CAAC,OAAQ,cAAe,UAAW,gBAAiB,kBAAmB,QAAS,YAAa,KAAM,MAAO,MAAO,eAI1K,GAAI/3B,EACF,OAAoB9hB,EAAOsV,QAAQjR,cAAc65D,EAAa5oD,QAAS5O,KAAK3D,OAG9E,IAAI,MACFJ,EAAQ,GACN+D,KAAK3D,MAETJ,EAAQmJ,KAAKm/B,IAAIn/B,KAAK8F,KAAKjP,EAAOsoC,GAAMr5B,GACxC,IAAIosD,EAAa,IAAMr7D,GAASiP,EAAMq5B,GAClCwzB,OAA2Bh1D,IAAZ8M,EAAwB,UAAY6nD,EAAe7nD,GAElEmoD,EAAiC,YAAjBD,GAA+C,mBAAjBA,EAE9CE,EArER,SAAuBz8D,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAqE5fD,CAAc,CACjC,GAAMxC,EACN,KAAQ0+D,EAAY7gD,GACpB,MAAS3a,EACT,IAAOsoC,EAEP,IAAOr5B,EACP,QAAW6sD,EAEX,aAAc,SACbjnB,GAYH,GAVsB,QAAlBz1B,IAA4B47C,GAAeC,KAC7Ce,EAAe,cAAgB,OAE3Bf,IACFe,EAAe,eAAiBf,IAMd,SAAlB77C,IAA6BtL,GAASknD,GAAeC,GAAa,CACpE,IAAIgB,EAAkC,mBAAjBH,EAAoC,OAAS,sBAClE,OAAoBz+D,EAAOsV,QAAQjR,cAAc,MAAO,CACtD0Z,MAAO,CACL6jC,QAAS,cACTE,WAAY,UAEd3rC,UAAWA,GACVM,GAAsBzW,EAAOsV,QAAQjR,cAAc,WAAY,CAChEkS,QAASqoD,GACRnoD,GAAQ/P,KAAK83D,gBAAgBE,EAAeC,IAAkBhB,GAAeC,IAA4B59D,EAAOsV,QAAQjR,cAAc,WAAY,CACnJkS,QAASqoD,EACT,eAAe,GACdhB,GAA0B,GAAG9xD,KAAKmyD,MAAMD,OAC7C,CAUE,OARAW,EAAsB,MAAIxoD,EAEtBM,IACFkoD,EAAep6D,SAAwBvE,EAAOsV,QAAQjR,cAAc,WAAY,CAC9EsR,KAAM,SACLc,IAGE/P,KAAK83D,gBAAgBE,EAAeC,EAE/C,EAIFpgE,EAAA,QAAkBggE,EAClBA,EAAc75D,UAAY,CAKxB/B,MAAO1B,EAAWqU,QAAQtQ,OAK1BimC,IAAKhqC,EAAWqU,QAAQtQ,OAKxB4M,IAAK3Q,EAAWqU,QAAQtQ,OAKxBsY,KAAMrc,EAAWqU,QAAQ2nC,MAAM,CAAC,IAAK,MAKrC0gB,YAAa18D,EAAWqU,QAAQ3Q,KAKhCi5D,WAAY38D,EAAWqU,QAAQ1Q,OAK/Bkd,gBAAiB7gB,EAAWqU,QAAQ3Q,KAKpC4R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,WAAY,UAAW,WAAY,mBAMtEl7B,cAAe9gB,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,MAAO,WAKxDxmC,MAAOxV,EAAWqU,QAAQ1Q,sCClM5BpE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAYI25C,EAAQC,EAASC,EAZjBC,EAAcn3C,EAAuB,EAAQ,QAE7Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDs5C,EAAYt5C,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAa1T,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAC3J,MAAM80C,EAAQ,CACZ1wB,EAAG,QACHC,EAAG,UAGL,IAAIo4C,GAAc,EAAIvmB,EAAqBhjC,UAAmB8iC,EAAQD,EAAU,cAA0Bn4C,EAAOqnB,UAC/G,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GAEN2D,KAAKo4D,eAAiB,KACpBp4D,KAAKq4D,UAAwB,EAAI/+D,EAAOg+C,aACxCt3C,KAAKs4D,SAAuB,EAAIh/D,EAAOg+C,aACvCt3C,KAAKu4D,YAAc,KACnBv4D,KAAKw4D,WAAa,KAClBx4D,KAAKy4D,UAAY,KACjBz4D,KAAK04D,YAAc,KACnB14D,KAAK24D,OAAS,KACd34D,KAAKub,SAAW,KAChBvb,KAAK44D,YAAc,KACnB54D,KAAK64D,UAAY,IAAI,EAGvB74D,KAAK84D,gBAAkB,KACjB94D,KAAK24D,SACP34D,KAAKu4D,YAAcv4D,KAAKs4D,QAAQxmD,QAChCi1C,qBAAqB/mD,KAAK24D,QAC1B34D,KAAKu4D,YAAYlhD,MAAM0hD,UAAY,OACnC/4D,KAAK24D,OAAS,KAChB,EAGF34D,KAAKg5D,QAAU,KACbh5D,KAAK24D,OAAStjB,sBAAsBr1C,KAAKi5D,YAAY,EAGvDj5D,KAAKi5D,YAAcC,IACbl5D,KAAK3D,MAAM+e,kBACbpb,KAAKu4D,YAAcv4D,KAAKs4D,QAAQxmD,QAChC9R,KAAKw4D,WAAax4D,KAAKq4D,SAASvmD,QAAQqiD,YACxCn0D,KAAKy4D,UAAYz4D,KAAKu4D,YAAYpE,YAClCn0D,KAAK64D,UAAY74D,KAAK64D,WAAaK,EACnCl5D,KAAK44D,YAAcM,EAAYl5D,KAAK64D,UACpC74D,KAAKub,SAAWvb,KAAK44D,YAAc,IAEnC54D,KAAK04D,YAA8B,IAAhB14D,KAAKub,SAGpBvb,KAAK04D,aAAe14D,KAAKw4D,WAAax4D,KAAKy4D,YAC7Cz4D,KAAK04D,YAAc,EACnB14D,KAAK64D,UAAY,MAGnB74D,KAAKu4D,YAAYlhD,MAAM0hD,UAAY,cAAgB/4D,KAAK04D,YAAc,MACtE14D,KAAK24D,OAAStjB,sBAAsBr1C,KAAKi5D,aAC3C,EAGFj5D,KAAKo4D,gBACP,CAEA,iBAAAhjB,GAEMp1C,KAAK3D,MAAM+e,iBACbpb,KAAKg5D,SAET,CAEA,kBAAAnhB,GAEO73C,KAAK3D,MAAM+e,iBACdpb,KAAK84D,kBAIH94D,KAAK3D,MAAM+e,kBAAoBpb,KAAK24D,QACtC34D,KAAKg5D,SAET,CAEA,oBAAArhB,GAEE33C,KAAK84D,iBACP,CAEA,MAAA9pD,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,KACJua,EAAO,IAAG,YAEVqgD,GAAc,EAAK,QAEnBpnD,EAAO,cAEPwL,EAAgB,OAAM,gBAEtBD,GAAkB,EAAK,MACvBrL,EAAK,UACLN,EAAS,GACT1W,GAAK,EAAI+6C,EAAUllC,WAAU,IAC7B21B,EAAM,EAAC,IACPr5B,EAAM,IAAG,WACTgsD,GACE/jB,EACErC,EAzHV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAyHpdu1C,CAAyBoC,EAAa,CAAC,OAAQ,cAAe,UAAW,gBAAiB,kBAAmB,QAAS,YAAa,KAAM,MAAO,MAAO,eAE1K,IAAI,MACFl3C,EAAQ,GACN+D,KAAK3D,MAEL86D,EAAY,CAAC,EACbC,EAAiB,CAAC,EACtB,MAAMC,EAAgB7mB,EAAM55B,GAC5B3a,EAAQmJ,KAAKm/B,IAAIn/B,KAAK8F,KAAKjP,EAAOsoC,GAAMr5B,GACxC,IACIg4C,EADAoU,EAAa,IAAMr7D,GAASiP,EAAMq5B,GAElC2Y,EAAiB,GAgCrB,OA9BIpM,EAAW,qBACboM,EAAe7hD,KAAKy1C,EAAW,2BACxBA,EAAW,oBAGhB/gC,IACFmzC,GAAU,EAAIpP,EAAUllC,WAAa,SACrCsuC,EAAe7hD,KAAK6nD,IAGlBpS,EAAW,eACboM,EAAevhD,OAAS,GAAKuhD,EAAe7hD,KAAKtC,GAGnDmkD,EAAiBA,EAAevhD,OAASuhD,EAAev4C,KAAK,KAAO,KAE/DyW,IACH+7C,EAAY,CACV9/C,MAAO,CACL/E,MAAO,GAAGglD,OAGdF,EAAiB,CACf,gBAAiB7yB,EACjB,gBAAiBr5B,EACjB,gBAAiBjP,EACjB,iBAAkBi7D,GAA6B9xD,KAAKmyD,MAAmB,GAAbD,GAAmB,GAAjC,MAI5Bh+D,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC/DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,qBAAsB,uBAAuByoD,IAAiB,CAChG,oCAAqCj8C,EACrC,gCAAmD,SAAlBC,EACjC,qCAAkD,mBAAZxL,EACtC,cAA2B,aAAZA,EACf,aAA0B,YAAZA,EACd,cAA2B,aAAZA,GACdJ,GACH+K,KAAM,eACL48C,EAAgB,CACjB,kBAAmBla,EACnBnkD,GAAIA,IACH,EAAI84C,EAAgBjjC,SAASkiC,IAAc/gC,GAAsBzW,EAAOsV,QAAQjR,cAAc,MAAO,CACtG8R,UAAW,2BACX1W,GAAImqD,GACHnzC,IAASknD,GAAeC,IAA4B59D,EAAOsV,QAAQjR,cAAc,MAAO,CACzF8R,UAAW,iCACVynD,GAA0B,GAAG9xD,KAAKmyD,MAAMD,OAA8Bh+D,EAAOsV,QAAQjR,cAAc,MAAO,CAC3GV,IAAK+C,KAAKq4D,SACV5oD,UAAW,4BACGnW,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC3DhzC,IAAK+C,KAAKs4D,QACV7oD,UAAW,2BACV0nD,KACL,GAEC1lB,EAAQzzC,UAAY,CAKrB/B,MAAO1B,EAAWqU,QAAQtQ,OAK1BimC,IAAKhqC,EAAWqU,QAAQtQ,OAKxB4M,IAAK3Q,EAAWqU,QAAQtQ,OAKxBsY,KAAMrc,EAAWqU,QAAQ2nC,MAAM,CAAC,IAAK,MAKrC0gB,YAAa18D,EAAWqU,QAAQ3Q,KAKhCi5D,WAAY38D,EAAWqU,QAAQ1Q,OAK/Bkd,gBAAiB7gB,EAAWqU,QAAQ3Q,KAKpC4R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,WAAY,UAAW,WAAY,mBAMtEl7B,cAAe9gB,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,MAAO,WAKxDxmC,MAAOxV,EAAWqU,QAAQ1Q,QA5NwBszC,EA6NjDE,KAAWF,EAEd35C,EAAA,QAAkBsgE,gCCjRlB,IAEgCl/D,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,YAAY,IAAM,EAAQ,SAAqB,IAAM,EAAQ,sDCpBzGr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAoBI25C,EAAQC,EAASC,EApBjBC,EAAcn3C,EAAuB,EAAQ,QAE7C2+D,EAAoB3+D,EAAuB,EAAQ,OAEnDo3C,EAAuBp3C,EAAuB,EAAQ,QAEtDq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAcJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAdztBU,CAAwB,EAAQ,QAEzCooD,EAAQ,EAAQ,OAEhB0W,EAAS,EAAQ,OAQrB,SAAS3/D,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAZ5T,EAAQ,OAER,EAAQ,OAuBN,EAAQ,OAGuI,EAAQ,OACT,EAAQ,MACJ,EAAQ,OACT,EAAQ,OASzJ,EAAQ,OAGuI,EAAQ,MACT,EAAQ,KACJ,EAAQ,OACT,EAAQ,OAE3J,IAAIkC,GAAW,EAAIg0C,EAAqBhjC,UAAmB8iC,EAAQD,EAAU,cAAuBn4C,EAAOqnB,UAEzG,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GAEFA,EAAMggB,SACR,EAAIqmC,EAAM2W,WAAWh9D,EAAMggB,QAG7Brc,KAAKkjB,kBACP,CAEA,gBAAAA,GACMhC,EAAQo4C,UACV,EAAIH,EAAkBvqD,SAAS5O,KAAK3D,MAAM6f,WAGxClc,KAAK3D,MAAMk9D,iBACb,EAAIH,EAAOI,mBAAmBx5D,KAAK3D,MAAMk9D,eAE7C,CAEA,gCAAAlnB,CAAiCC,GAC3B,WAAYA,IACd,EAAIoQ,EAAM2W,WAAW/mB,EAAUj2B,QAG7Bi2B,EAAUinB,iBACZ,EAAIH,EAAOI,mBAAmBlnB,EAAUinB,eAE5C,CAEA,eAAAE,GACE,MAAO,CACLx9C,MAAOjc,KAAK3D,MAAM4f,MAClBJ,MAAO7b,KAAK3D,MAAMwf,MAClBQ,OAAQrc,KAAK3D,MAAMggB,OAEvB,CAEA,MAAArN,GACE,IAAImkC,EAAcnzC,KAAK3D,OACnB,MACF4f,EAAK,UACLxM,EAAS,SACT5R,EAAQ,MACRge,GACEs3B,EACA92C,EAlFR,SAAkCT,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAkF3du1C,CAAyBoC,EAAa,CAAC,QAAS,YAAa,WAAY,UAErF,OAAoB75C,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC/DxgC,WAAW,EAAIkiC,EAAY/iC,SAASa,EAAW,0BAA2B,WAAY,aAAawM,IAAS,aAAaJ,OACxH,EAAIg2B,EAAgBjjC,SAASvS,IAASwB,EAC3C,GAEC4zC,EAAQzzC,UAAY,CAIrBie,MAAO1hB,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,WAAY,OAAQ,YAK9D16B,MAAOthB,EAAWqU,QAAQ2nC,MAAM,CAAC,SAAU,UAK3CgjB,eAAgBh/D,EAAWqU,QAAQ2nC,MAAM,CAAC,MAAO,WAAY,aAAc,YAAa,SAAU,cAAe,gBAAiB,iBAOlIr6B,UAAW3hB,EAAWqU,QAAQ1Q,OAK9Bme,OAAQ9hB,EAAWqU,QAAQ1Q,OAK3BuR,UAAWlV,EAAWqU,QAAQ1Q,QAC7BuzC,EAAQ1zC,aAAe,CACxBke,MAAO,QACPJ,MAAO,SACPK,UAAW,WACVu1B,EAAQioB,kBAAoB,CAC7Bz9C,MAAO1hB,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,WAAY,OAAQ,YAC9D16B,MAAOthB,EAAWqU,QAAQ2nC,MAAM,CAAC,SAAU,UAC3Cl6B,OAAQ9hB,EAAWqU,QAAQ1Q,QA9FoBszC,EA+F9CE,KAAWF,EAEd35C,EAAA,QAAkB+F,gCCtKlB9D,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBA,EAAQmqD,qBAAkB,EAE5C,IAAIrQ,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDm/D,EAAmBn/D,EAAuB,EAAQ,OAElDswD,EAAiBtwD,EAAuB,EAAQ,QAEhDs8D,EAAYt8D,EAAuB,EAAQ,QAE3ClB,EAASkB,EAAuB,EAAQ,QAI5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAJ5SlB,EAAuB,EAAQ,QAiB7C,EAAQ,OAGuI,EAAQ,MACT,EAAQ,KACJ,EAAQ,OACT,EAAQ,OAE3J,MAAMwnD,EAA+B1oD,EAAOsV,QAAQ5P,cAAc,CAChEid,MAAO,QACPJ,MAAO,SACP+9C,UAAW,UACXzgD,kBAAmB,KAAM,EAAI2xC,EAAel8C,cAAS,GAAQhB,KAC7DisD,uBAAuB,EACvBjO,QAAS,OAGX/zD,EAAQmqD,gBAAkBA,EAE1B,MAAM8X,UAAoBhD,EAAUloD,QAClC,WAAAxV,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKmyC,MAAQ,CACXyZ,QAAS,CACPmO,WAAY,KACZ37D,KAAM,CACJ47D,SAAS,EACTxyD,cAAUzE,EACVmvD,aAAc,OAItB,CAEA,UAAA+H,CAAWF,EAAY37D,GACrB4B,KAAKuyC,SAAS,CACZqZ,QAAS,CACPmO,aACA37D,SAGN,CAEA,gBAAA8kB,GACA,CAEA,iBAAAkyB,GAEMp1C,KAAK3D,MAAM69D,gBACb,EAAIP,EAAiB/qD,WAGvB5O,KAAKm6D,YAAYtS,aAAa,aAAc7nD,KAAKi6D,WAAW95D,KAAKH,MACnE,CAEA,MAAAgP,GACE,IAAImkC,EAAcnzC,KAAK3D,OACnB,MACF4f,EAAQ,QAAO,MACfJ,EAAQ,SAAQ,UAChB+9C,EAAY,GAAE,sBACdC,EAAqB,kBACrB1gD,EAAiB,UACjB1J,EACA4H,MAAO+iD,EAAc,CAAC,EAAC,SACvBv8D,EAAQ,OACRwe,GACE82B,EACArC,EA/ER,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA+Etdu1C,CAAyBoC,EAAa,CAAC,QAAS,QAAS,YAAa,wBAAyB,oBAAqB,YAAa,QAAS,WAAY,WAEvK,MAAM,QACJyY,GACE5rD,KAAKmyC,MACT,OAAoB74C,EAAOsV,QAAQjR,cAAcqkD,EAAgBpkD,SAAU,CACzE3B,MAAO,CACLggB,QACAJ,QACA+9C,YACAzgD,oBACA0gD,wBACAjO,YAEYtyD,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAE3D1zB,KAAgB,MAAVF,EAAiB,KAAOA,EAAOzP,UAAU,EAAG,GAClD3P,IAAKkI,GAAKnF,KAAKm6D,YAAch1D,IAC5B,EAAI0sC,EAAgBjjC,SAASkiC,GAAa,CAC3Cz5B,MAAOvd,OAAOo2C,OAAO,CAAC,EAAGkqB,GACzB3qD,WAAW,EAAIkiC,EAAY/iC,SAAS,0BAA2B,aAAaqN,IAASxM,EAAW,aAAaoM,IAAS,WAAY,wBAC5G,iBAAbhe,GAAyBA,GACtC,EAIFhG,EAAA,QAAkBiiE,gCChIlB,IAEgC7gE,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,SAAS,IAAM,EAAQ,SAAe,IAAM,EAAQ,SAAe,IAAM,EAAQ,uCCpB7Hr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBwiE,EAElB,IAAI1oB,EAAcn3C,EAAuB,EAAQ,QAE7CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExC8/D,EAAsB9/D,EAAuB,EAAQ,QAEzD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAqB5T,SAAS2+D,EAAM33D,GACb,IAAI,UACF+M,EAAS,WACT8qD,EAAU,MACV3qD,GACElN,EACAouC,EAzBN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAyBxdu1C,CAAyBruC,EAAM,CAAC,YAAa,aAAc,UAE5E,OAAoBpJ,EAAOsV,QAAQjR,cAAc28D,EAAoB1rD,QAASqhC,EAAS,CACrFuK,UAAW,QACX/qC,WAAW,EAAIkiC,EAAY/iC,SAAS,iBAAkB,CACpD,6BAA8B2rD,EAC9B,wBAAyB3qD,GACxBH,GACHgrC,eAAgB,uBAChBC,cAAe,wBACfC,eAAgB,wBACf7J,GACL,CA1BE,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAsB3JupB,EAAMv8D,YAAc,QACpBu8D,EAAMr8D,UAAY,CAIhB2e,QAASpiB,EAAWqU,QAAQ3Q,KAK5BwR,UAAWlV,EAAWqU,QAAQ1Q,OAK9BugB,eAAgBlkB,EAAWqU,QAAQ3Q,KAKnC4U,QAAStY,EAAWqU,QAAQ3Q,KAK5B8R,MAAOxV,EAAWqU,QAAQ1Q,OAK1Bq8D,WAAYhgE,EAAWqU,QAAQ3Q,KAK/B2R,MAAOrV,EAAWqU,QAAQ3Q,KAK1Bye,YAAaniB,EAAWqU,QAAQ3Q,oCChGlCnE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAYI25C,EAAQC,EAASC,EAZjB8E,EAAgB,EAAQ,OAExBC,EAAqBj8C,EAAuB,EAAQ,QAEpDo3C,EAAuBp3C,EAAuB,EAAQ,QAEtDD,EAAaC,EAAuB,EAAQ,QAE5CggE,EAAShgE,EAAuB,EAAQ,QAExClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAI++D,GAAa,EAAI7oB,EAAqBhjC,SAAS4iC,GAAS,EAAIiF,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAyBn4C,EAAOqnB,UACtJ,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN,MAAM,QACJsgB,EAAO,eACP8B,GACEpiB,EACJ2D,KAAKmyC,MAAQ,CACXx1B,aAAqB5Z,IAAZ4Z,EAAwBA,EAAU8B,IAAkB,GAE/Dze,KAAK06D,WAA0BphE,EAAOsV,QAAQ0oC,WAChD,CAEA,gCAAAjF,CAAiCC,GAC3B,YAAaA,GACftyC,KAAKuyC,SAAS,CACZ51B,QAAS21B,EAAU31B,SAGzB,CAEA,iBAAAy4B,IACE,EAAIoB,EAAckB,sBAAsB13C,KAAK06D,WAAW5oD,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACpF,CAEA,oBAAAI,IACE,EAAInB,EAAcoB,sBAAsB53C,KAAK06D,WAAW5oD,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACpF,CAEA,kBAAAM,CAAmBC,GACjB93C,KAAK+3C,0BAA2B,EAAIvB,EAAcwB,sBAAsBh4C,KAAK06D,WAAW5oD,QAASgmC,EAAW93C,KAAK3D,MAAO2D,KAAKu3C,YAAav3C,KAAK+3C,wBACjJ,CAEA,UAAAgD,CAAWp+B,GACH,YAAa3c,KAAK3D,OACtB2D,KAAKuyC,SAAS,CACZ51B,WAGN,CAEA,WAAA46B,CAAYj0C,GACV,GAAmB,WAAfA,EAAMyL,KAAmB,CAC3B,MAAM,QACJ4N,GACErZ,EAAM9H,OACVwE,KAAK+6C,WAAW,CACdp+B,WAEJ,CAEA,MAAM66B,EAAY19C,OAAOiB,KAAKiF,KAAK3D,OAAOnB,QAAOu8C,GAAYA,EAASlzC,OAAO,GAAG0nB,gBAAkB3oB,EAAMyL,OAEpG/O,KAAK3D,MAAMm7C,IACbx3C,KAAK3D,MAAMm7C,GAAWr9C,KAAKmJ,EAAM9H,OAAQ8H,EAE7C,CAEA,MAAA0L,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,UACJoT,EAAS,QACToD,EAAO,MACP9C,EAAK,WACLwqD,EAAU,MACV3qD,EAAK,YACL8M,GACEy2B,EACErC,EAxEV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAwEpdu1C,CAAyBoC,EAAa,CAAC,YAAa,UAAW,QAAS,aAAc,QAAS,gBAGlH,GAAIonB,EACF,OAAoBjhE,EAAOsV,QAAQjR,cAAc68D,EAAO5rD,QAAS5O,KAAK3D,cAGjEy0C,EAAWn0B,QAElB,MAAMg+C,IAAc5qD,SAA0BhN,IAAhB2Z,GAA6BA,GAC3D,OAAoBpjB,EAAOsV,QAAQjR,cAAc,WAAYsyC,EAAS,CACpEhzC,IAAK+C,KAAK06D,WACVjqD,MAAOhB,EACPkN,UAAS3c,KAAKmyC,MAAMx1B,SAAiB,KACrCC,YAAahN,GAAe,KAC5BiD,UAASA,GAAiB,OACzB,EAAI2jC,EAAc+B,kBAAkBzH,IAAc6pB,GAAa5qD,EACpE,GAEC0hC,EAAQzzC,UAAY,CAIrB2e,QAASpiB,EAAWqU,QAAQ3Q,KAK5BwR,UAAWlV,EAAWqU,QAAQ1Q,OAK9BugB,eAAgBlkB,EAAWqU,QAAQ3Q,KAKnC4U,QAAStY,EAAWqU,QAAQ3Q,KAK5B8R,MAAOxV,EAAWqU,QAAQ1Q,OAK1Bq8D,WAAYhgE,EAAWqU,QAAQ3Q,KAK/B2R,MAAOrV,EAAWqU,QAAQ3Q,KAK1Bye,YAAaniB,EAAWqU,QAAQ3Q,MA9H0DuzC,EA+HzFE,KAAWF,IAAWA,EAEzB35C,EAAA,QAAkB4iE,EAClBA,EAAW38D,YAAc,qCCjKzB,IAEgC7E,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,cAAc,IAAM,EAAQ,QAAoB,IAAM,EAAQ,QAAoB,IAAM,EAAQ,sCCpB5Ir8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAUI25C,EAAQC,EAASC,EAVjBC,EAAcn3C,EAAuB,EAAQ,QAE7Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAa1T,EAAQ,OAGV,IAAIwhB,GAAa,EAAI00B,EAAqBhjC,UAAmB8iC,EAAQD,EAAU,cAAyBn4C,EAAOqnB,UAC7G,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GAEN2D,KAAK46D,gBAAkB3+D,IACrB+D,KAAK66D,iBAAiB5+D,EAAM,EAG9B,MAAM,cACJ8gB,EAAa,qBACbC,EAAoB,SACpBnf,GACExB,EACJ,IAAIy+D,EAEJxhE,EAAOsV,QAAQmkC,SAASl3C,QAAQgC,GAAU2U,IACpCA,EAAMnW,MAAMsgB,UACdm+C,EAAqBtoD,EAAMnW,MAAMJ,MACnC,IAGF,MAAM8+D,EAAkBD,GAAsB99C,EAC9Chd,KAAKmyC,MAAQ,CACXp1B,cAAgC,MAAjBA,EAAwBA,EAAgBg+C,EAE3D,CAEA,gCAAA1oB,CAAiCC,GAC3B,kBAAmBA,GACrBtyC,KAAKuyC,SAAS,CACZx1B,cAAeu1B,EAAUv1B,eAG/B,CAEA,gBAAA89C,CAAiB5+D,GACT,kBAAmB+D,KAAK3D,OAC5B2D,KAAKuyC,SAAS,CACZx1B,cAAe9gB,IAInB+D,KAAK3D,MAAMoV,SAASxV,EACtB,CAEA,MAAA+S,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,KACJ8K,EAAI,SACJ8J,EAAQ,YACR+pD,EAAW,UACXvrD,EAAS,SACT5R,GACEs1C,EACErC,EApEV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAoEpdu1C,CAAyBoC,EAAa,CAAC,OAAQ,WAAY,cAAe,YAAa,cAEpG,cACJp2B,GACE/c,KAAKmyC,MACT,OAAoB74C,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC/DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,sBAAuB,CACzD,gCAAiCqC,GAChCxB,GACH+K,KAAM,eACL,EAAIq3B,EAAgBjjC,SAASkiC,IAAcx3C,EAAOsV,QAAQmkC,SAASxgC,IAAI1U,GAAU2U,IAClF,MAAM,MACJvW,EAAK,SACLwV,GACEe,EAAMnW,MAEV,GAAa,MAATJ,EACF,MAAM,IAAIkK,MAAM,gDAGlB,MAAM80D,EAAoBj7D,KAAK46D,gBAAgBz6D,KAAKH,KAAM/D,GAC1D,OAAoB3C,EAAOsV,QAAQsiC,aAAa1+B,EAAO,CACrDmK,QAASI,IAAkB9gB,EAC3Bs+D,WAAYS,EACZ7zD,OACA8rC,SAAUjzC,KAAK3D,MAAM42C,SAAWjzC,KAAK3D,MAAM42C,SAAW,EACtDxhC,SAAU,CAACkL,EAAS4E,KACd9P,GACFA,EAASxV,GAGXg/D,IAEA15C,EAAEq8B,iBAAiB,GAErB,IAEN,GAECnM,EAAQzzC,UAAY,CAIrBgf,qBAAsBziB,EAAWqU,QAAQ1Q,OAKzC6e,cAAexiB,EAAWqU,QAAQ1Q,OAKlCq8D,WAAYhgE,EAAWqU,QAAQ3Q,KAK/BgT,SAAU1W,EAAWqU,QAAQ3Q,MAC5BwzC,EAAQ1zC,aAAe,CACxBkT,UAAU,EACV+pD,aAAa,EACbvpD,SAAU,WAAa,GApH0B+/B,EAqHhDE,KAAWF,EAEd35C,EAAA,QAAkBqlB,EAClBA,EAAWpf,YAAc,2CC/JzBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAQI25C,EARAgF,EAAgB,EAAQ,OAExBC,EAAqBj8C,EAAuB,EAAQ,QAEpD0gE,EAAc1gE,EAAuB,EAAQ,OAE7ClB,EAASkB,EAAuB,EAAQ,QAI5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAIy/D,GAAkB,EAAI1kB,EAAmB7nC,SAAS4iC,EAAS,cAA8B0pB,EAAYtsD,QACvG,WAAAxV,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKo7D,gBAA+B9hE,EAAOsV,QAAQ0oC,WACrD,CAGA,kBAAAO,CAAmBC,GACjB93C,KAAKq7D,2BACLr7D,KAAK+3C,0BAA2B,EAAIvB,EAAcwB,sBAAsBh4C,KAAKo7D,gBAAgBtpD,QAASgmC,EAAW93C,KAAK3D,MAAO2D,KAAKu3C,YAAav3C,KAAK+3C,wBACtJ,CAEA,iBAAA3C,GAEEp1C,KAAKq7D,4BACL,EAAI7kB,EAAckB,sBAAsB13C,KAAKo7D,gBAAgBtpD,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACzF,CAEA,oBAAAI,IACE,EAAInB,EAAcoB,sBAAsB53C,KAAKo7D,gBAAgBtpD,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACzF,CAEA,WAAAA,CAAYj0C,GACV,GAAmB,WAAfA,EAAMyL,KAAmB,CAC3B,MAAM,SACJoB,GACE7M,EAAM9H,OACVwE,KAAKs7D,YAAYnrD,EACnB,CAEA,MAAMqnC,EAAY19C,OAAOiB,KAAKiF,KAAK3D,OAAOnB,QAAOu8C,GAAYA,EAASlzC,OAAO,GAAG0nB,gBAAkB3oB,EAAMyL,OAEpG/O,KAAK3D,MAAMm7C,IACbx3C,KAAK3D,MAAMm7C,GAAWr9C,KAAKmJ,EAAM9H,OAAQ8H,EAE7C,CAEA,WAAAg4D,CAAYv+C,GACJ,kBAAmB/c,KAAK3D,OAC5B2D,KAAKuyC,SAAS,CACZx1B,iBAGN,CAEA,wBAAAs+C,GACE,MAAM,cACJt+C,GACE/c,KAAKmyC,MACHopB,EAAgBv7D,KAAKo7D,gBAAgBtpD,QAEvCiL,GAAiBw+C,IACnBA,EAAcprD,SAAW4M,EAE7B,CAEA,MAAA/N,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,SACJ4U,EAAQ,YACR+pD,EAAW,UACXvrD,EAAS,SACT5R,GACEs1C,EACErC,EApEV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAoEpdu1C,CAAyBoC,EAAa,CAAC,WAAY,cAAe,YAAa,aAGlG,OAAI6nB,EACKjpB,MAAM/iC,SAGK1V,EAAOsV,QAAQjR,cAAc,iBAAkBsyC,EAAS,CAC1EhzC,IAAK+C,KAAKo7D,gBACV3qD,MAAOhB,EACPwtB,SAAQhsB,GAAkB,OACzB,EAAIulC,EAAc+B,kBAAkBzH,IAAcjzC,EACvD,KAEI2zC,EAEN35C,EAAA,QAAkBsjE,gCCvGlB,IAEgCliE,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,QAAQ,IAAM,EAAQ,SAAc,IAAM,EAAQ,SAAc,IAAM,EAAQ,uCCpB1Hr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkB2jE,EAElB,IAAI7pB,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAqB5T,SAAS8/D,EAAK94D,GACZ,IAAI,UACF+M,EAAS,QACTI,EAAU,SACRnN,EACAouC,EAxBN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAwBxdu1C,CAAyBruC,EAAM,CAAC,YAAa,YAE9D,OAAoBpJ,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAAC,GAAG,EAAI4B,EAAgBjjC,SAASkiC,GAAa,CAC5GrhC,WAAW,EAAIkiC,EAAY/iC,SAAS,gBAAiB,kBAAkBiB,IAAWJ,KAEtF,CAlBE,EAAQ,OAGuI,EAAQ,MACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAc3J+rD,EAAKx9D,UAAY,CAEf6R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,SAAU,yCClDxDz8C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAQgCoB,EAR5BsB,GAQ4BtB,EARQ,EAAQ,SAQKA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GANnFK,EAIJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAJztBU,CAAwB,EAAQ,QAE7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAMzL,SAASy2C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,MAAM+/D,EAAa,CACjBn+C,MAAO,IACPC,OAAQ,IACRC,MAAO,KAGT,MAAMk+C,UAAgBpiE,EAAOqnB,UAC3B,MAAA3R,GACE,IAAImkC,EAAcnzC,KAAK3D,OACnB,QACFwT,EAAO,UACPJ,GACE0jC,EACArC,EAjBR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAiBtdu1C,CAAyBoC,EAAa,CAAC,UAAW,cAEnE,OAAoB75C,EAAOsV,QAAQjR,cAAc,aAAcsyC,EAAS,CACtEr5B,UAAkB7T,IAAZ8M,EAAwB,IAAM4rD,EAAW5rD,GAE/CY,MAAOhB,GACNqhC,GAAa,kCAClB,EAIFj5C,EAAA,QAAkB6jE,EAClBA,EAAQ19D,UAAY,CAElByR,UAAWlV,EAAWqU,QAAQ1Q,OAG9B2R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,SAAU,wCCnDxDz8C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQ8jE,mBA2ER,SAA4Bp9D,GAC1B,IAAKA,EACH,OAAO,EAGT,IAAI2zD,EAAe3zD,EAAK4zD,wBAExB,GAA4B,IAAxBD,EAAa3W,QAAuC,IAAvB2W,EAAa5/C,OAAqC,IAAtB4/C,EAAax5C,MAAmC,IAArBw5C,EAAat5C,IACnG,OAAO,EAGT,IAAIkL,EAAa83C,EAAgBr9D,GAEjC,IAAKulB,EACH,OAAO,EAGT,IAAI+3C,EAAqB/3C,EAAWquC,wBACpC,OAAO0J,EAAmBC,IAAM5J,EAAa4J,IAAMD,EAAmBC,GAAKD,EAAmBtgB,QAAU2W,EAAa4J,GAAK5J,EAAa3W,QAAUsgB,EAAmBE,IAAM7J,EAAa6J,IAAMF,EAAmBE,GAAKF,EAAmBvpD,OAAS4/C,EAAa6J,GAAK7J,EAAa5/C,KAClR,EA7FAza,EAAQ+jE,gBAAkBA,EAC1B/jE,EAAQ+vD,iBAgHR,SAA0BrpD,GACxB,IAAKA,EACH,OAGF,IAAIupD,EAAQ,GAEZ,KAAOvpD,EAAKulB,YAAY,CACtB,IAAIzM,EAAQ1e,OAAOovD,iBAAiBxpD,IAEhC,cAAcuqB,KAAKzR,EAAM2wC,SAAW3wC,EAAMqvC,YAAcnoD,EAAK0pD,aAAa,qBAC5EH,EAAMzsD,KAAKkD,GAGbA,EAAOA,EAAKulB,UACd,CAEA,OAAOgkC,CACT,EAjIAjwD,EAAA,aAAkB,EAElB,IAEgCoB,EAF5B+iE,GAE4B/iE,EAFsB,EAAQ,SAETA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvF,MAAMgjE,EACJ,WAAA7iE,GACE4G,KAAKk8D,0BAA4B,IAAIx6C,GACvC,CAEA,kBAAOvd,GAKL,OAJK83D,EAAcr8D,WACjBq8D,EAAcr8D,SAAW,IAAIq8D,GAGxBA,EAAcr8D,QACvB,CAEA,0BAAAygD,CAA2B8b,EAAgBC,EAA0BrC,EAAYsC,EAAc,KAAMC,GAA0B,GAC7H,IAAIC,EAAkBx6C,SAASy6C,iBAAiB,wBAEhD,IAAK,MAAMC,KAAcF,EAAiB,CACxC,IAAIG,GAAiBP,GAAkBC,GAA2B,EAAIJ,EAAyBptD,SAASytD,EAAaI,EAAWtK,yBAA2BgK,IAAmBpC,IAAe0C,EAC7Lz8D,KAAK28D,0BAA0BD,EAAeD,EAAY1C,EAAYuC,EACxE,CACF,CAEA,uCAAAM,CAAwC7b,EAAM8b,EAAY9C,GACnD8C,GAAe9C,GAIpB/5D,KAAK28D,0BAA0B5b,EAAM8b,EAAY9C,EACnD,CAEA,yBAAA4C,CAA0BD,EAAeG,EAAY9C,EAAYuC,GAA0B,GACzF,IAAIQ,EAAa98D,KAAKk8D,0BAA0BviE,IAAIkjE,GAAc78D,KAAKk8D,0BAA0BviE,IAAIkjE,GAAc,IAAI55B,IAEnHy5B,GACFG,EAAWhV,aAAa,sBAAsB,GAC9CiV,EAAWn5B,IAAIo2B,GACf/5D,KAAKk8D,0BAA0B7hE,IAAIwiE,EAAYC,KAE/CA,EAAWp3C,OAAOq0C,GAEM,IAApB+C,EAAWlmD,MAAe0lD,GAC5BO,EAAWE,gBAAgB,sBAGjC,EA2BF,SAASnB,EAAgBr9D,GACvB,GAAKA,EAAL,CAIA,KAAOA,EAAKulB,YAAY,CACtB,IAAIzM,EAAQ1e,OAAOovD,iBAAiBxpD,GAEpC,GAAI,cAAcuqB,KAAKzR,EAAM2wC,SAAW3wC,EAAMqvC,YAAcnoD,EAAK0pD,aAAa,mBAC5E,OAAO1pD,EAGTA,EAAOA,EAAKulB,UACd,CAEA,OAAO,IAZP,CAaF,CAvCAjsB,EAAA,QAAkBokE,gCC5DlBnkE,EAAOD,QAAU,EAAjB,oCChBA,IAEgCoB,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,UAAU,IAAM,EAAQ,SAAmB,IAAM,EAAQ,SAAgB,IAAM,EAAQ,sCCpBnIr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQmlE,WAAaA,EACrBnlE,EAAA,aAAkB,EAElB,IA4BI25C,EAAQC,EAASC,EA5BjBurB,EAASziE,EAAuB,EAAQ,QAExCi8C,EAAqBj8C,EAAuB,EAAQ,QAEpDk8C,EAAUl8C,EAAuB,EAAQ,QAEzC45C,EAAqB55C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDs5C,EAAYt5C,EAAuB,EAAQ,QAE3CsnD,EAAYtnD,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjD+rD,EAAW/rD,EAAuB,EAAQ,QAE1CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExCimD,EAAYjmD,EAAuB,EAAQ,QAE3C0iE,EAAc1iE,EAAuB,EAAQ,QAIjD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAE5T,SAASq1C,EAAyBn1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAWze,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAE3J,EAAQ,OAER,IAAI2hE,EAAoB,KAGpBC,GAAS,EAAIxrB,EAAqBhjC,SAAS4iC,GAAS,EAAIiF,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAqBn4C,EAAOsV,QAAQ+R,UACtJ,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN,IAAIJ,EAAQ,KAEZ,GAAI,UAAWI,EACbJ,EAAQI,EAAMJ,WACT,GAAI,iBAAkBI,EAC3BJ,EAAQI,EAAMshB,kBACT,GAAIthB,EAAMmV,SACfvV,EAAQ,OACH,CACL,MAAM88B,EAAM18B,EAAM0E,SAAW1E,EAAM0E,QAAQ,GAC3C9E,EAAQ88B,IAAQ18B,EAAMuhB,YAAcmb,EAAI98B,MAAQ,IAClD,CAEA+D,KAAKmyC,MAAQ,CACXl2C,SAEF+D,KAAKq9D,UAAW,EAAIvpB,EAAUllC,UAChC,CAEA,gCAAAyjC,CAAiCh2C,GAC3B,UAAWA,GAASA,EAAMJ,QAAU+D,KAAKmyC,MAAMl2C,OACjD+D,KAAKuyC,SAAS,CACZt2C,MAAOI,EAAMJ,OAGnB,CAEA,iBAAAm5C,GACE,GAAyB,MAArB+nB,EAA2B,CAG7B,IAAIG,EAAev7C,SAASpkB,cAAc,OAC1C2/D,EAAa7tD,UAAY,4BACzBsS,SAASnU,KAAKyjD,YAAYiM,GAC1BH,EAAoBnyD,SAASrS,OAAOovD,iBAAiBuV,GAAcC,SAAU,IAC7Ex7C,SAASnU,KAAK+jD,YAAY2L,EAC5B,CAEA3kE,OAAO2H,iBAAiB,SAAUN,KAAKw9D,YACvCx9D,KAAKw9D,YACP,CAEA,oBAAA7lB,GACEh/C,OAAOsL,oBAAoB,SAAUjE,KAAKw9D,WAC5C,CAEA,kBAAA3lB,GACE73C,KAAKw9D,YACP,CAEA,UAAAA,GACE,GAAIx9D,KAAKq5C,OAAQ,CACf,IAAI/mC,EAAQmuC,EAAU7xC,QAAQyyC,YAAYrhD,KAAKq5C,QAAQokB,YAEnDnrD,IAAUtS,KAAKmyC,MAAM7/B,OACvBtS,KAAKuyC,SAAS,CACZjgC,SAGN,CACF,CAEA,QAAAK,CAAS1W,GACD,UAAW+D,KAAK3D,OACpB2D,KAAKuyC,SAAS,CACZt2C,UAIA+D,KAAK3D,MAAMoV,UACbzR,KAAK3D,MAAMoV,SAASxV,EAExB,CAEA,MAAA8hB,CAAOwD,GACLvhB,KAAKw9D,aAE4B,mBAAtBx9D,KAAK3D,MAAM0hB,QACpB/d,KAAK3D,MAAM0hB,OAAOwD,EAEtB,CAEA,MAAAvS,GACE,IAAImkC,EAAcnzC,KAAK3D,OACnB,QACF0E,EAAU,GAAE,MACZ6O,EAAK,QACL0H,EAAO,cACP0pC,EAAa,cACbljC,EAAa,SACbvhB,GAAW,EAAK,QAChBsW,GAAU,EAAK,SACfrB,GAAW,EAAK,SAChBwC,GAAW,EAAK,SAChB6J,GAAW,EAAK,YAChBD,EAAc,mBAAkB,UAChCnO,EAAS,KACT6xC,GAAO,EAAI,WACXtuC,EAAU,QACVkwC,EAAO,GACPnqD,EAAKiH,KAAKq9D,SAAQ,KAClBvuD,EAAI,WACJkP,EACA,aAAc9K,EACd,kBAAmBgqC,GACjB/J,EACArC,EAAaC,EAAyBoC,EAAa,CAAC,UAAW,QAAS,UAAW,gBAAiB,gBAAiB,WAAY,UAAW,WAAY,WAAY,WAAY,cAAe,YAAa,OAAQ,aAAc,UAAW,KAAM,OAAQ,aAAc,aAAc,qBAEvR,MACFl3C,GACE+D,KAAKmyC,MACT,MAAMurB,EAAU,GAAG3kE,UAEfmkD,EACFA,GAAkB,IAAIwgB,IAEtBxgB,EADShqC,EACQna,EAAK,IAAM2kE,EACnBxa,EACQA,EAAU,IAAMwa,EAEhBA,EAGnB,IAAI3tD,EAAQ6N,EAEZ,IAAKpM,EAAU,CACb,MAAMmsD,EAAiB58D,EAAQmoC,MAAK00B,GAAKA,EAAE3hE,QAAUA,IACrD8T,EAAQ4tD,EAAiBA,EAAe5tD,MAAQ6N,EAChD9O,EAAO6uD,GAAkBA,EAAe7uD,IAC1C,CAEAkyC,EAAyC,kBAAlBA,EAA8BA,GAAiBxvC,EAEtE,IAAIqsD,EAAW/jE,OAAOyiC,SAAQ,EAAIsV,EAAgBjjC,SAASkiC,IACvDgtB,EAAcD,EAAS3iE,QAAO+3B,GAAK,YAAYnK,KAAKmK,EAAE,MAAKe,QAAO,CAAC4pC,EAAGniE,KAAOmiE,EAAEniE,EAAE,IAAMA,EAAE,GAAImiE,IAAI,CAAC,GAClGG,EAAgBF,EAAS3iE,QAAO+3B,IAAM,YAAYnK,KAAKmK,EAAE,MAAKe,QAAO,CAAC4pC,EAAGniE,KAAOmiE,EAAEniE,EAAE,IAAMA,EAAE,GAAImiE,IAAI,CAAC,GACrGpmD,EAAWxX,KAAKmyC,MAAM7/B,MAU1B,OARI1C,IACF4H,EAAWxX,KAAKmyC,MAAM7/B,MAhJT,IAmJX1C,GAASiO,IACXrG,EAAW,MAGOle,EAAOsV,QAAQjR,cAAcmkD,EAAUlzC,QAASqhC,EAAS,CAC3ExgC,WAAW,EAAIkiC,EAAY/iC,SAAS,oBAAqB,CACvD,2BAA4BgB,EAC5B,gCAAiCA,IAAUiO,EAC3C,mCAAoCA,EACpC,cAAethB,EACf,aAAcsW,GACbpD,GACHuxC,cAAeA,EACfruC,SAAU3S,KAAK2S,SACfoL,OAAQ/d,KAAK+d,OACbzG,QAASA,EACT,gBAAiBtD,EACjB,uBAAwBxC,EACxB,gBAAiBjV,EACjB,eAAgBsW,EAChBG,WAAYA,EACZsuC,KAAMA,GACLyc,GAA6BzkE,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAASqhC,EAAS,CACrFxgC,UAAW,4BACXV,KAAM,SACNc,QAAS,QACT,gBAAiB,UACjBD,MAAOA,EACPrT,SAAUA,EACVsW,QAASA,EACT5V,IAAK2I,GAAK5F,KAAKq5C,OAASzzC,EACxB,aAAcsN,EACd,kBAAmBgqC,EACnBnkD,GAAIA,EACJ+V,KAAMA,GACLgvD,GAA2BxkE,EAAOsV,QAAQjR,cAAc,OAAQ,CACjE5E,GAAI2kE,EACJjuD,WAAW,EAAIkiC,EAAY/iC,SAAS,0BAA2B,CAC7D,iBAAkBmB,IAAU6N,KAE7B7N,GAAQ8C,GAAwBvZ,EAAOsV,QAAQjR,cAAcs/D,EAAOruD,QAAS,CAC9EgI,KAAM,MACStd,EAAOsV,QAAQjR,cAAcy2C,EAAmBxlC,QAAS,CACxEgI,KAAM,KACNnH,UAAW,4BACKnW,EAAOsV,QAAQjR,cAAcq/D,EAAY,CACzDrb,cAAc,EACdlyC,UAAWqO,EACX/c,QAASA,EACT9E,MAAOA,EACPuV,SAAUA,EACVjV,SAAUA,EACVsW,QAASA,EACTmB,SAAUA,EACVpE,MAAOA,EACPyH,MAAO,CACLqvC,UAAW,OACXlvC,SAAUA,EACV+lD,SAAUv9D,KAAKmyC,MAAM7/B,MAAQ6qD,EAAoBn9D,KAAKmyC,MAAM7/B,MAAQ,KACpE4gD,YAAatjD,GAASoD,GAAa,GAA0B,MAE/DxD,WAAW,EACXwO,WAAYA,IAEhB,GAECyzB,EAAQzzC,UAAY,CAIrBgjD,cAAezmD,EAAWqU,QAAQ3Q,KAKlC6f,cAAevjB,EAAWqU,QAAQ1Q,OAMlC8f,WAAYzjB,EAAWqU,QAAQjQ,KAG/B1C,MAAO1B,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQtQ,OAAQ/D,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQ1Q,QAAS3D,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQtQ,UAGhMqf,aAAcpjB,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQtQ,OAAQ/D,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQ1Q,QAAS3D,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQtQ,UAGvMkT,SAAUjX,EAAWqU,QAAQ3Q,KAG7B8C,QAASxG,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQ/T,QAGvD4W,SAAUlX,EAAWqU,QAAQjQ,KAG7Bof,OAAQxjB,EAAWqU,QAAQjQ,KAG3B2Y,QAAS/c,EAAWqU,QAAQjQ,KAG5BiR,MAAOrV,EAAWqU,QAAQ3Q,KAG1B4U,QAAStY,EAAWqU,QAAQ3Q,KAG5B+V,SAAUzZ,EAAWqU,QAAQ3Q,KAG7B4f,SAAUtjB,EAAWqU,QAAQ3Q,KAG7B2f,YAAarjB,EAAWqU,QAAQ1Q,OAGhCojD,KAAM/mD,EAAWqU,QAAQ3Q,KAGzB+U,WAAYzY,EAAWqU,QAAQ3Q,KAG/B6Q,KAAMvU,EAAWqU,QAAQrQ,MA/Q6DizC,EAgRrFE,KAAWF,IAAWA,EAIzB,SAASwrB,EAAWt6D,GAClB,IAAI,QACF4U,EAAO,OACPyG,EAAM,SACNpL,EAAQ,UACRlD,EAAS,KACTqD,EAAI,UACJG,EAAS,MACToE,EAAK,cACL2pC,EAAa,MACbpxC,GACElN,EACArG,EAAQ00C,EAAyBruC,EAAM,CAAC,UAAW,SAAU,WAAY,YAAa,OAAQ,YAAa,QAAS,gBAAiB,UAEzI,OAAoBpJ,EAAOsV,QAAQjR,cAAc4oD,EAAS33C,QAAS,CACjE2L,UAAU,EACVtH,UAAWA,EACXH,KAAMA,EACNwE,QAASA,EACTyG,OAAQA,EACR1G,MAAOA,EACP5H,WAAW,EAAIkiC,EAAY/iC,SAAS,4BAA6B,CAC/D,mCAAoCgB,IAEtCoxC,cAAeA,GACD1nD,EAAOsV,QAAQjR,cAAcu/D,EAAYtuD,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CACpFoT,UAAWA,EACX6H,QAASA,EACT7F,SAAUkB,EACVkzC,MAAOtkC,GAAKA,EAAEwzB,oBAElB,CAjCAl9C,EAAA,QAAkBulE,+BClVlBtjE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQmmE,cAAgBA,EACxBnmE,EAAA,aAAkB,EAElB,IAYI25C,EAZAgF,EAAgB,EAAQ,OAExBC,EAAqBj8C,EAAuB,EAAQ,QAEpDlB,EAASkB,EAAuB,EAAQ,QAExCyjE,EAAUzjE,EAAuB,EAAQ,QAEzC0jE,EAAmB1jE,EAAuB,EAAQ,QAElD2jE,EAAa3jE,EAAuB,EAAQ,QAIhD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAI0iE,GAAc,EAAI3nB,EAAmB7nC,SAAS4iC,EAAS,cAA0BysB,EAAQrvD,QAC3F,WAAAxV,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKq+D,YAA2B/kE,EAAOsV,QAAQ0oC,WACjD,CAEA,WAAAC,CAAYj0C,GACS,WAAfA,EAAMyL,KACR/O,KAAK2S,SAAS3S,KAAKq+D,YAAYvsD,QAAQ7V,OACf,SAAfqH,EAAMyL,MACf/O,KAAK+d,OAAOza,GAGd,MAAMk0C,EAAY19C,OAAOiB,KAAKiF,KAAK3D,OAAOnB,QAAOu8C,GAAYA,EAASlzC,OAAO,GAAG0nB,gBAAkB3oB,EAAMyL,OAEpG/O,KAAK3D,MAAMm7C,IACbx3C,KAAK3D,MAAMm7C,GAAWr9C,KAAKmJ,EAAM9H,OAAQ8H,EAE7C,CAEA,iBAAA8xC,IACE,EAAIoB,EAAckB,sBAAsB13C,KAAKq+D,YAAYvsD,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACrF,CAEA,oBAAAI,IACE,EAAInB,EAAcoB,sBAAsB53C,KAAKq+D,YAAYvsD,QAAS9R,KAAK3D,MAAO2D,KAAKu3C,YACrF,CAEA,kBAAAM,CAAmBC,GACjB93C,KAAK+3C,0BAA2B,EAAIvB,EAAcwB,sBAAsBh4C,KAAKq+D,YAAYvsD,QAASgmC,EAAW93C,KAAK3D,MAAO2D,KAAKu3C,YAAav3C,KAAK+3C,wBAClJ,CAEA,MAAA/oC,GACE,IAAImkC,EAAcnzC,KAAK3D,OACnB,QACF0E,EAAU,GAAE,MACZ6O,EAAK,cACLoxC,EAAa,cACbljC,EAAa,SACbvhB,GAAW,EAAK,QAChBsW,GAAU,EAAK,SACfrB,GAAW,EAAK,SAChBqM,GAAW,EAAK,YAChBD,EAAc,mBAAkB,UAChCnO,EAAS,WACTuO,EAAU,WACVhL,EAAU,KACVF,GACEqgC,EACArC,EArDR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAqDtdu1C,CAAyBoC,EAAa,CAAC,UAAW,QAAS,gBAAiB,gBAAiB,WAAY,UAAW,WAAY,WAAY,cAAe,YAAa,aAAc,aAAc,UAEjN,MACFl3C,GACE+D,KAAKmyC,MAIT,OAHA6O,EAAyC,kBAAlBA,EAA8BA,GAAiBxvC,EAChDA,IAAawvC,GAAiBnjC,GAAY7K,EAG1C1Z,EAAOsV,QAAQjR,cAAcwgE,EAAWvvD,QAAS5O,KAAK3D,OAGxD/C,EAAOsV,QAAQjR,cAAc,cAAesyC,EAAS,CACvEhzC,IAAK+C,KAAKq+D,YACV5tD,MAAOhB,EACPqD,OAAMA,GAAc,KACpB8K,YAAaA,EACbrhB,WAAUA,GAAkB,KAC5BqT,QAAOA,GAAe,KACtBiD,UAASA,GAAiB,OACzB,EAAI2jC,EAAc+B,kBAAkBzH,IAA2Bx3C,EAAOsV,QAAQjR,cAAcqgE,EAAe,CAC5GvuD,UAAWqO,EACX/c,QAASA,EACT9E,MAAOA,EACP+hB,WAAYA,IAEhB,KAEIwzB,EAIN,SAASwsB,EAAc3hE,GACrB,OAAoB/C,EAAOsV,QAAQjR,cAAcugE,EAAiBtvD,QAASvS,EAC7E,CAJAxE,EAAA,QAAkBumE,gCC3GlBtkE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQmmE,cAAgBA,EACxBnmE,EAAA,aAAkB,EAElB,IAAIolE,EAASziE,EAAuB,EAAQ,QAExCk8C,EAAUl8C,EAAuB,EAAQ,QAEzC45C,EAAqB55C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7CsnD,EAAYtnD,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjD+rD,EAAW/rD,EAAuB,EAAQ,QAE1ClB,EAASkB,EAAuB,EAAQ,QAExCyjE,EAAUzjE,EAAuB,EAAQ,QAEzC0iE,EAAc1iE,EAAuB,EAAQ,QAE7C62C,EAAc72C,EAAuB,EAAQ,QAEjD,EAAQ,OAER,IAAID,EAAaC,EAAuB,EAAQ,QAEhD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAE5T,SAASq1C,EAAyBn1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAI3e,IAAI2hE,EAAoB,KAGxB,MAAMmB,UAAkBL,EAAQrvD,QAC9B,iBAAAwmC,GACE,GAAyB,MAArB+nB,EAA2B,CAG7B,IAAIG,EAAev7C,SAASpkB,cAAc,OAC1C2/D,EAAa7tD,UAAY,4BACzBsS,SAASnU,KAAKyjD,YAAYiM,GAC1BH,EAAoBnyD,SAASrS,OAAOovD,iBAAiBuV,GAAcC,SAAU,IAC7Ex7C,SAASnU,KAAK+jD,YAAY2L,EAC5B,CAEA3kE,OAAO2H,iBAAiB,SAAUN,KAAKw9D,YACvCx9D,KAAKw9D,YACP,CAEA,MAAAxuD,GACE,IAAImkC,EAAcnzC,KAAK3D,OACnB,QACF0E,EAAU,GAAE,MACZ6O,EAAK,QACL0H,EAAO,cACP0pC,EAAa,cACbljC,EAAa,SACbvhB,GAAW,EAAK,QAChBsW,GAAU,EAAK,SACfrB,GAAW,EAAK,SAChBwC,GAAW,EAAK,SAChB6J,GAAW,EAAK,YAChBD,EAAc,mBAAkB,UAChCnO,EAAS,WACTuO,EAAU,KACVsjC,GAAO,EAAI,WACXtuC,EAAU,QACVkwC,EAAO,mBACP2N,GAAqB,EAAK,SAC1B5d,EAAQ,GACRl6C,EAAKiH,KAAKq9D,SAAQ,KAClBvuD,EACA,aAAcoE,EACd,kBAAmBgqC,GACjB/J,EACArC,EAAaC,EAAyBoC,EAAa,CAAC,UAAW,QAAS,UAAW,gBAAiB,gBAAiB,WAAY,UAAW,WAAY,WAAY,WAAY,cAAe,YAAa,aAAc,OAAQ,aAAc,UAAW,qBAAsB,WAAY,KAAM,OAAQ,aAAc,qBAEzT,MACFl3C,GACE+D,KAAKmyC,MACT,MAAMurB,EAAU,GAAG3kE,UAEfmkD,EACFA,GAAkB,IAAIwgB,IAEtBxgB,EADShqC,EACQna,EAAK,IAAM2kE,EACnBxa,EACQA,EAAU,IAAMwa,EAEhBA,EAGnB,IAAI3tD,EAAQ6N,EAEZ,IAAKpM,EAAU,CACb,MAAMmsD,EAAiB58D,EAAQmoC,MAAK00B,GAAKA,EAAE3hE,QAAUA,IACrD8T,EAAQ4tD,EAAiBA,EAAe5tD,MAAQ6N,EAChD9O,EAAO6uD,GAAkBA,EAAe7uD,IAC1C,CAEAkyC,EAAyC,kBAAlBA,EAA8BA,GAAiBxvC,EAEtE,IAAIqsD,EAAW/jE,OAAOyiC,SAAQ,EAAIsV,EAAgBjjC,SAASkiC,IACvDgtB,EAAcD,EAAS3iE,QAAO+3B,GAAK,YAAYnK,KAAKmK,EAAE,MAAKe,QAAO,CAAC4pC,EAAGniE,KAAOmiE,EAAEniE,EAAE,IAAMA,EAAE,GAAImiE,IAAI,CAAC,GAClGG,EAAgBF,EAAS3iE,QAAO+3B,IAAM,YAAYnK,KAAKmK,EAAE,MAAKe,QAAO,CAAC4pC,EAAGniE,KAAOmiE,EAAEniE,EAAE,IAAMA,EAAE,GAAImiE,IAAI,CAAC,GACrGpmD,EAAWxX,KAAKmyC,MAAM7/B,MAc1B,OAZI1C,IACF4H,EAAWxX,KAAKmyC,MAAM7/B,MA7ET,IAgFX1C,GAASiO,IAKXrG,EAAW,eAGOle,EAAOsV,QAAQjR,cAAcmkD,EAAUlzC,QAASqhC,EAAS,CAC3ExgC,WAAW,EAAIkiC,EAAY/iC,SAAS,oBAAqB,CACvD,2BAA4BgB,EAC5B,gCAAiCA,IAAUiO,EAC3C,mCAAoCA,EACpC,cAAethB,EACf,aAAcsW,GACbpD,GACHwhD,SAAU5f,EAAYziC,QAAQ0vC,uBAC9B0C,cAAeA,EACfruC,SAAU3S,KAAK2S,SACfoL,OAAQ/d,KAAK+d,OACbzG,QAASA,EACT,gBAAiBtD,EACjB,uBAAwBxC,EACxB,gBAAiBjV,EACjB,eAAgBsW,EAChBG,WAAYA,EACZsuC,KAAMA,GACLyc,GAA6BzkE,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAASqhC,EAAS,CACrFxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,4BAA6B,CAC/D,mCAAoCgB,IAEtCb,KAAM,SACNc,QAAS,QACT,gBAAiB,UACjBD,MAAOA,EACPqjC,SAAUA,EACV12C,SAAUA,EACVsW,QAASA,EACT5V,IAAK2I,GAAK5F,KAAKq5C,OAASzzC,EACxB6yC,mBAAmB,EACnB,aAAcvlC,EACd,kBAAmBgqC,EACnBnkD,GAAIA,EACJ+V,KAAMA,GACLgvD,GAA2BxkE,EAAOsV,QAAQjR,cAAc,OAAQ,CACjE5E,GAAI2kE,EACJjuD,WAAW,EAAIkiC,EAAY/iC,SAAS,0BAA2B,CAC7D,iBAAkBmB,IAAU6N,KAE7B7N,GAAQ8C,GAAwBvZ,EAAOsV,QAAQjR,cAAcs/D,EAAOruD,QAAS,CAC9EgI,KAAM,MACStd,EAAOsV,QAAQjR,cAAcy2C,EAAmBxlC,QAAS,CACxEgI,KAAM,KACNnH,UAAW,4BACKnW,EAAOsV,QAAQjR,cAAcqgE,EAAe,CAC5Drc,cAAc,EACduP,WAAY7f,EAAYziC,QAAQ0vC,uBAChC7uC,UAAWqO,EACX/c,QAASA,EACT9E,MAAOA,EACP40D,mBAAoBA,EACpBr/C,SAAUA,EACVjV,SAAUA,EACVsW,QAASA,EACTmB,SAAUA,EACVpE,MAAOA,EACPyH,MAAO,CACLG,SAAUA,EACV+lD,SAAUv9D,KAAKmyC,MAAM7/B,MAAQ6qD,EAAoBn9D,KAAKmyC,MAAM7/B,MAAQ,KACpEo0C,UAAW,OACXwM,YAAatjD,GAASoD,GAAa,IAA0B,MAE/DxD,WAAW,EACXwO,WAAYA,IAEhB,EAaF,SAASggD,EAAct7D,GACrB,IAAI,QACF4U,EAAO,OACPyG,EAAM,SACNpL,EAAQ,UACRlD,EAAS,KACTqD,EAAI,UACJG,EAAS,MACToE,EAAK,cACL2pC,EAAa,WACbkQ,EAAU,MACVthD,GACElN,EACArG,EAAQ00C,EAAyBruC,EAAM,CAAC,UAAW,SAAU,WAAY,YAAa,OAAQ,YAAa,QAAS,gBAAiB,aAAc,UAEvJ,OAAoBpJ,EAAOsV,QAAQjR,cAAc4oD,EAAS33C,QAAS,CACjEsiD,WAAYA,EACZ32C,UAAU,EACVtH,UAAWA,EACXH,KAAMA,EACNwE,QAASA,EACTyG,OAAQA,EACR1G,MAAOA,EACP5H,WAAW,EAAIkiC,EAAY/iC,SAAS,4BAA6B,CAC/D,mCAAoCgB,IAEtCoxC,cAAeA,GACD1nD,EAAOsV,QAAQjR,cAAcu/D,EAAYtuD,QAASqhC,EAAS,CAAC,EAAG5zC,EAAO,CACpFoT,UAAWA,EACXgC,SAAUkB,EACV2E,QAASA,EACTuuC,MAAOtkC,GAAKA,EAAEwzB,iBACduK,qBAAsB,CAAC,UAE3B,CA3CAznD,EAAA,QAAkBymE,EAClBA,EAAUtgE,UAAY,CAKpB6yD,mBAAoBt2D,EAAWqU,QAAQ3Q,oCC9MzC,IAEgChF,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,cAAc,IAAM,EAAQ,SAAuB,IAAM,EAAQ,uCCpB7Gr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAQI25C,EAAQC,EAASC,EARjBE,EAAuBp3C,EAAuB,EAAQ,QAEtDmqD,EAAQ,EAAQ,OAEhBpqD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAI6iE,GAAa,EAAI3sB,EAAqBhjC,UAAmB8iC,EAAQD,EAAU,cAAyBn4C,EAAOqnB,UAC7G,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GAEN2D,KAAKw+D,oBAAsBz9D,GAAWA,EAAQwR,KAAI,CAAC7J,EAAQ2V,IAAuB/kB,EAAOsV,QAAQjR,cAAcgnD,EAAMC,SAAU,CAC7H3qD,IAAKokB,EACLvP,KAAMpG,EAAOoG,KACbqB,SAAUnQ,KAAKw5C,WAAW9wC,GAC1BnM,SAAUyD,KAAK3D,MAAME,UAAYmM,EAAOnM,SACxCoW,SAAU3S,KAAKyT,aAAatT,KAAKH,KAAM0I,GACvCm9C,MAAO7lD,KAAK3D,MAAMwpD,MAClBvG,qBAAsB,CAAC,UACvB/K,UAAWv0C,KAAKs0C,cAAcn0C,KAAKH,OAClCA,KAAK3D,MAAM2hB,WAAahe,KAAK3D,MAAM2hB,WAAWtV,GAAUA,EAAOqH,SAElE/P,KAAKmyC,MAAQ,CACXl2C,MAAOI,EAAMJ,MAEjB,CAEA,gCAAAo2C,CAAiCh2C,GAC3BA,EAAMJ,OAASI,EAAMJ,QAAU+D,KAAKmyC,MAAMl2C,OAC5C+D,KAAKuyC,SAAS,CACZt2C,MAAOI,EAAMJ,OAGnB,CAEA,YAAAm9C,CAAa1wC,GACX,MAAO,IAAK1I,KAAKmyC,MAAMl2C,OAAS,GAAKyM,EAAOzM,MAC9C,CAEA,eAAAq9C,CAAgB5wC,GACd,IAAIzM,EAAQ+D,KAAKmyC,MAAMl2C,OAAS,GAChC,MAAMoiB,EAAQpiB,EAAMooC,QAAQ37B,EAAOzM,OACnC,MAAO,IAAIA,EAAM8P,MAAM,EAAGsS,MAAWpiB,EAAM8P,MAAMsS,EAAQ,EAAGpiB,EAAMN,QACpE,CAEA,aAAA24C,CAAc/yB,GAEL,WADCA,EAAEtnB,KAEF+F,KAAK3D,MAAMib,SACbtX,KAAK3D,MAAMib,SAKnB,CAEA,YAAA7D,CAAa/K,GACX,IAAI+1D,EAIAA,EAFAz+D,KAAK3D,MAAMmV,SACTxR,KAAKw5C,WAAW9wC,GACJ1I,KAAKs5C,gBAAgB5wC,GAErB1I,KAAKo5C,aAAa1wC,GAGpBA,EAAOzM,MAIjB,UAAW+D,KAAK3D,OACpB2D,KAAKuyC,SAAS,CACZt2C,MAAOwiE,IAIPz+D,KAAK3D,MAAMoV,UACbzR,KAAK3D,MAAMoV,SAASgtD,EAExB,CAEA,UAAAjlB,CAAW9wC,GACT,OAAO1I,KAAK3D,MAAMmV,SAAWxR,KAAKmyC,MAAMl2C,OAAS+D,KAAKmyC,MAAMl2C,MAAMooC,QAAQ37B,EAAOzM,QAAU,EAAI+D,KAAKmyC,MAAMl2C,QAAUyM,EAAOzM,KAC7H,CAEA,MAAA+S,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,QACJ0E,EAAU,GAAE,SACZyQ,GAAW,EAAK,SAChBjV,GAAW,EAAK,QAChBsW,GAAU,EAAK,SACfmB,GAAW,EAAK,UAChBvE,GACE0jC,EACErC,EA5FV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA4Fpdu1C,CAAyBoC,EAAa,CAAC,UAAW,WAAY,WAAY,UAAW,WAAY,cAIpH,cAFOrC,EAAW+U,aACX/U,EAAW9yB,WACE1kB,EAAOsV,QAAQjR,cAAcgnD,EAAMK,KAAM/U,EAAS,CACpExgC,UAAWA,EACX,uBAAwB+B,EACxB,gBAAiBjV,EACjB,eAAgBsW,EAChB,gBAAiBmB,EACjBkxC,YAAY,GACXpU,GAAa9wC,KAAKw+D,oBAAoBz9D,GAC3C,GAEC0wC,EAAQzzC,UAAY,CAErBzB,SAAUhC,EAAWqU,QAAQ3Q,KAG7B4U,QAAStY,EAAWqU,QAAQ3Q,KAG5BuT,SAAUjX,EAAWqU,QAAQ3Q,KAG7BwT,SAAUlX,EAAWqU,QAAQjQ,KAG7BoC,QAASxG,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQ/T,QAGvDmZ,SAAUzZ,EAAWqU,QAAQ3Q,KAG7BhC,MAAO1B,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQ1Q,QAAS3D,EAAWqU,QAAQglC,QAAQr5C,EAAWqU,QAAQtQ,QAAS/D,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQtQ,SAMjM0f,WAAYzjB,EAAWqU,QAAQjQ,MAC9B8yC,EAAQ1zC,aAAe,CACxBgD,QAAS,GACTyQ,UAAU,EACVjV,UAAU,EACVsW,SAAS,EACTmB,UAAU,GAtIuCw9B,EAuIhDE,KAAWF,EAEd35C,EAAA,QAAkB0mE,gCCpKlBzkE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIyB,EAASkB,EAAuB,EAAQ,QAExC0iE,EAAc1iE,EAAuB,EAAQ,QAE7CkkE,EAAiBlkE,EAAuB,EAAQ,QAEpD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,MAAMijE,UAAwBzB,EAAYtuD,QACxC,WAAAxV,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKw+D,oBAAsBz9D,GAAWA,EAAQwR,KAAI,CAAC7J,EAAQ2V,IAAuB/kB,EAAOsV,QAAQjR,cAAc+gE,EAAe9vD,QAAS,CACpKE,KAAMpG,EAAOoG,KACb7S,MAAOyM,EAAOzM,MACdkU,WAAUnQ,KAAKw5C,WAAW9wC,IAAiB,KAC3CnM,SAAUmM,EAAOnM,UAChByD,KAAK3D,MAAM2hB,WAAahe,KAAK3D,MAAM2hB,WAAWtV,GAAUA,EAAOqH,SAAS2hC,CAC7E,CAEA,MAAA1iC,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,QACJ0E,EAAU,GAAE,UACZ0O,GACE0jC,EACErC,EAtBV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAsBpdu1C,CAAyBoC,EAAa,CAAC,UAAW,cAErE,OAAoB75C,EAAOsV,QAAQjR,cAAc,UAAWsyC,EAAS,CACnEx/B,MAAOhB,EACPR,KAAM,WACL6hC,GAAa9wC,KAAKw+D,oBAAoBz9D,GAC3C,EAIFlJ,EAAA,QAAkB8mE,gCC/ClB7kE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIyB,EAASkB,EAAuB,EAAQ,QAExC0iE,EAAc1iE,EAAuB,EAAQ,QAEjD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAgB9FpB,EAAA,QAVewE,IAEb,MAAM,kBACJ8c,GACE9c,EACEy0C,EATR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAStdu1C,CAAyB10C,EAAO,CAAC,sBAEpD,OAAoB/C,EAAOsV,QAAQjR,cAAcu/D,EAAYtuD,QAASkiC,EAAW,gCCnBnFh3C,OAAOC,eAAelC,EAAS,KAA/B,CACEuD,YAAY,EACZzB,IAAK,WACH,OAAOilE,EAAShwD,OAClB,IAEF9U,OAAOC,eAAelC,EAAS,KAA/B,CACEuD,YAAY,EACZzB,IAAK,WACH,OAAOklE,EAAajwD,OACtB,IAEF9U,OAAOC,eAAelC,EAAS,KAA/B,CACEuD,YAAY,EACZzB,IAAK,WACH,OAAOmlE,EAAgBlwD,OACzB,IAGF,IAAIgwD,EAAWpkE,EAAuB,EAAQ,QAE1CqkE,EAAerkE,EAAuB,EAAQ,QAE9CskE,EAAkBtkE,EAAuB,EAAQ,QAErD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,gCC5B9Fa,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAsBI25C,EAAQC,EAASC,EAtBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDi6C,EAAU,EAAQ,MAElB9C,EAAcn3C,EAAuB,EAAQ,QAE7Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDs5C,EAAYt5C,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDs3C,EAAgBt3C,EAAuB,EAAQ,QAE/Cu5C,EAAav5C,EAAuB,EAAQ,QAE5CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAQJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CARztBU,CAAwB,EAAQ,QAM7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAV5T,EAAQ,OAuBN,EAAQ,OAGuI,EAAQ,MACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAC3J,MAAMqjE,EAAwB,+DACxBC,EAAiCD,EAAwB,eAEzDE,EAAmB,CAAC5iE,EAAOJ,IAAUI,EAAMwB,UAUnC,IAV+CxB,EAAMwB,SAAS3C,QAAOwuB,IACjF,MAAM,SACJ7rB,GACE6rB,EAAErtB,MAEN,OAAIwB,GAAgC,iBAAbA,EACdohE,EAAiBv1C,EAAErtB,MAAOJ,GAG5BytB,EAAErtB,MAAMJ,QAAUA,CAAK,IAC7BN,OAEH,IAAIujE,GAAU,EAAIttB,EAAqBhjC,SAAS4iC,GAAS,EAAIiF,EAAmB7nC,SAAS4iC,GAAS,EAAIuC,EAAWnlC,UAAmB8iC,EAAQD,EAAU,cAAsBn4C,EAAOqnB,UACjL,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKmyC,MAAQ,CACXl2C,MAAO+D,KAAK3D,MAAMshB,cAAgB3d,KAAK3D,MAAMJ,OAE/C+D,KAAKjH,IAAK,EAAI+6C,EAAUllC,UAC1B,CAEA,gCAAAyjC,CAAiCC,GAC/B,MAAM,MACJr2C,GACEq2C,EAEAr2C,IAAU+D,KAAK3D,MAAMJ,OACvB+D,KAAKuyC,SAAS,CACZt2C,SAGN,CAEA,UAAAu9C,CAAWhnC,GACT,OAAOA,EAAMnW,MAAMJ,QAAU+D,KAAKmyC,MAAMl2C,KAC1C,CAEA,iBAAAkjE,CAAkB3sD,GAChB,OAAOA,EAAMnW,MAAMJ,QAAU+D,KAAK3D,MAAMshB,YAC1C,CAEA,QAAAhL,CAAS1W,EAAOslB,QACWxe,IAArB/C,KAAK3D,MAAMJ,OACb+D,KAAKuyC,SAAS,CACZt2C,UAIJ+D,KAAK3D,MAAMsW,SAAS1W,EAAOslB,EAC7B,CAEA,iBAAA69C,CAAkB5sD,GAChB,YAAoCzP,IAAhCyP,EAAMnW,MAAMgjE,gBACP7sD,EAAMnW,MAAMgjE,gBAIdn6D,MAAMwgC,QAAQlzB,EAAMnW,MAAMwB,WAAaohE,EAAiBzsD,EAAMnW,MAAO2D,KAAKmyC,MAAMl2C,MACzF,CAEA,MAAA+S,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,UACJoT,EAAS,SACT5R,EAAQ,OACRyhE,EAAM,QACNzvD,EAAO,GACP9W,EAAKiH,KAAKjH,GAAE,eACZ26C,EAAc,aACdyR,EAAY,UACZrS,EAAY,EAAC,UACbtjC,EAAS,SACT+vD,EACA,aAAcrsD,EACd,kBAAmBgqC,GACjB/J,EACErC,EAjGV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAiGpdu1C,CAAyBoC,EAAa,CAAC,YAAa,WAAY,SAAU,UAAW,KAAM,iBAAkB,eAAgB,YAAa,YAAa,WAAY,aAAc,oBAE9LqsB,EAA2B,eAAZ3vD,EACf0lC,EAAUgqB,EAAW,MAAQ,aAC5BzuB,EAAW70C,MAElB,IAAIwjE,EAAkBnmE,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAChExgC,WAAW,EAAIkiC,EAAY/iC,SAAS,mBAAoB,CACtD,+BAAgC4wD,IAElCzmE,GAAIA,EAAK,QACT,aAAcwmE,EAAWrsD,OAAYnQ,EACrC,kBAAmBw8D,EAAWriB,OAAiBn6C,IAC9C,EAAI8uC,EAAgBjjC,SAASkiC,IAAcx3C,EAAOy5C,SAASxgC,IAAI1U,GAAU2U,IAAsB,EAAIlZ,EAAO43C,cAAc1+B,EAAO,CAChI8sD,SACA5rB,iBACA8rB,eACA1sB,UAAW0sB,EAAe1sB,OAAY/vC,EACtC28D,gBAAiB1/D,KAAKmyC,MAAMl2C,MAC5B0jE,YAAa3/D,KAAKw5C,WAAWhnC,GAC7BG,UAAU,EAAI8hC,EAAQ2B,OAAO5jC,EAAMnW,MAAMsW,SAAU3S,KAAK2S,UACxD0sD,gBAAiBr/D,KAAKo/D,kBAAkB5sD,QAW1C,OAPK+sD,IACHE,EAAkBnmE,EAAOsV,QAAQjR,cAAc,MAAO,CACpD6c,KAAM,UACN,mBAAoB,YACnBilD,IAGenmE,EAAOsV,QAAQjR,cAAc43C,EAAS,CACxDx8C,GAAIA,EACJumE,OAAQA,EACR,cAAeA,EACf9kD,KAAM+kD,EAAW,oBAAiBx8D,EAClC,aAAew8D,OAAuBx8D,EAAZmQ,EAC1B,kBAAoBqsD,OAA4Bx8D,EAAjBm6C,EAC/BztC,WAAW,EAAIkiC,EAAY/iC,SAASa,EAAW,2BAC9C8vD,EAAWE,EAAkBnmE,EAAOsV,QAAQjR,cAAcm0C,EAAcljC,QAAS,CAClF6kC,aAAcsrB,EACdjlB,qBAAsBklB,EACtBtrB,eAAgB8rB,GAAgB9rB,EAChCyR,aAAcqa,GAAgBra,EAC9B31C,UAAWA,GACViwD,GACL,GAEChuB,EAAQzzC,UAAY,CAIrB6R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,UAAW,eAK9C7C,eAAgBn5C,EAAWqU,QAAQ3Q,KAKnCknD,aAAc5qD,EAAWqU,QAAQ3Q,KAKjCwR,UAAWlV,EAAWqU,QAAQ1Q,OAK9BjC,MAAO1B,EAAWqU,QAAQ1Q,OAK1Byf,aAAcpjB,EAAWqU,QAAQ1Q,OAKjCsR,UAAWjV,EAAWqU,QAAQ3Q,KAK9BshE,SAAUhlE,EAAWqU,QAAQ3Q,KAK7B0U,SAAUpY,EAAWqU,QAAQjQ,MAC5B8yC,EAAQ1zC,aAAe,CACxB8R,QAAS,UACT6jC,gBAAgB,EAChByR,cAAc,EACd31C,WAAW,EACX+vD,UAAU,EACV5sD,SAAU,QApK8G6+B,EAqKvHE,KAAWF,IAAWA,IAAWA,EAEpC35C,EAAA,QAAkBqnE,gCC7OlBplE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAcA,SAAwB6K,GACtB,IAAI,MACFqN,GACErN,EACArG,EARN,SAAkCT,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAQ7du1C,CAAyBruC,EAAM,CAAC,UAE5C,OAAoBpJ,EAAOsV,QAAQjR,cAAckhE,EAAajwD,QAASqhC,EAAS,CAC9E33B,OAAQvI,GACP1T,EAAO,CACRgjE,iBAAiB,IAErB,EAvBA,IAAI/lE,EAASkB,EAAuB,EAAQ,QAExCqkE,EAAerkE,EAAuB,EAAQ,QAElD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,gCCX5T5B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAwBI25C,EAAQC,EAASC,EAxBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDi6C,EAAU,EAAQ,MAElB9C,EAAcn3C,EAAuB,EAAQ,QAE7Ck6C,EAAQ,EAAQ,OAEhB9C,EAAuBp3C,EAAuB,EAAQ,QAEtDs5C,EAAYt5C,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDu5C,EAAav5C,EAAuB,EAAQ,QAE5CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAUJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAVztBU,CAAwB,EAAQ,QAIzCskE,GAFYpkE,EAAuB,EAAQ,QAEhCA,EAAuB,EAAQ,SAI9C,SAASf,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,SAASd,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAEhN,MAAM2mE,EAAO,OAEPC,EAAsC,uCAK5C,IAAIC,GAAc,EAAIluB,EAAqBhjC,SAAS4iC,GAAS,EAAIiF,EAAmB7nC,SAAS4iC,GAAS,EAAIuC,EAAWnlC,UAAmB8iC,EAAQD,EAAU,cAA0Bn4C,EAAOqnB,UACzL,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKmyC,MAAQ,CACX4tB,SAAU//D,KAAK3D,MAAMgjE,iBAAmBr/D,KAAK3D,MAAM0jE,SACnDntD,SAAS,GAGX5S,KAAKggE,kBAAoBp8C,GAAK5jB,KAAKigE,eAAiBr8C,EAEpD5jB,KAAKjH,IAAK,EAAI+6C,EAAUllC,UAC1B,CAEA,gBAAIsxD,GACF,MAAM,SACJriE,GACEmC,KAAK3D,MACT,OAAOwB,GAAgC,iBAAbA,CAC5B,CAEA,gCAAAw0C,CAAiCC,GAC/B,MAAM,SACJytB,GACEztB,EAEAytB,IAAa//D,KAAK3D,MAAM0jE,UAC1B//D,KAAKuyC,UAAS4tB,GAAa5kE,EAAcA,EAAc,CAAC,EAAG4kE,GAAY,CAAC,EAAG,CACzEJ,cAGN,CAEA,WAAAK,CAAY7+C,GACVvhB,KAAK3D,MAAM63C,QAAQ3yB,GACnBvhB,KAAK2lD,gBAAgBpkC,EACvB,CAEA,eAAAokC,CAAgBpkC,GACd,MAAM,SACJ5O,EAAQ,MACR1W,EAAK,SACL8jE,EAAQ,KACR/pB,GAAOz0B,EAAE/lB,OAAS+lB,EAAE/lB,OAAOw6C,UAAOjzC,IAChC/C,KAAK3D,MACT,IAAIgkE,EAAuB,YAAX9+C,EAAExS,KAEbinC,IAAQqqB,IAGX9+C,EAAEwzB,iBACFxzB,EAAEq8B,mBAEEyiB,GAAwB,UAAV9+C,EAAEtnB,KAA6B,MAAVsnB,EAAEtnB,WAM1B8I,IAAbg9D,GACF//D,KAAKuyC,UAAS4tB,GAAa5kE,EAAcA,EAAc,CAAC,EAAG4kE,GAAY,CAAC,EAAG,CACzEJ,UAAWI,EAAUJ,aAIzBptD,EAAS1W,EAAOslB,IAXZA,EAAE/lB,OAAO05C,OAYf,CAOA,SAAAX,CAAUhzB,GACR,MAAM,aACJi+C,GACEx/D,KAAK3D,OACH,SACJ0jE,GACE//D,KAAKmyC,MACHmuB,EAAmBd,GAAgBx/D,KAAKkgE,aAE9C,OAAQ3+C,EAAEtnB,KACR,IAAK,YACL,IAAK,OACCqmE,GACEP,IACE//D,KAAKigE,gBAAkBjgE,KAAKigE,eAAelX,cAAc8W,KAAyC99C,SAAS0nC,cAC7GzpD,KAAK2lD,gBAAgBpkC,IAErBA,EAAEwzB,iBACFxzB,EAAEq8B,mBAGJ59C,KAAKs1C,SAIT,MAEF,IAAK,aACL,IAAK,QACH,GAAIgrB,EACF,GAAKP,GAEE,GAAI//D,KAAKigE,eAAgB,CAC9B,MAAMM,EAAQr7D,MAAM+B,KAAKjH,KAAKigE,eAAezD,iBAAiBqD,IAE9B,IAA5BU,EAAMl8B,QAAQ9iB,EAAE/lB,SAClB+kE,EAAM,GAAGjrB,OAEb,OAPEt1C,KAAK2lD,gBAAgBpkC,GAY/B,CAEA,OAAAi7B,GACEx8C,KAAKuyC,SAAS,CACZ3/B,SAAS,GAEb,CAEA,MAAA8yC,GACE1lD,KAAKuyC,SAAS,CACZ3/B,SAAS,GAEb,CAEA,KAAA0iC,GACMt1C,KAAKigE,gBACMjgE,KAAKigE,eAAelX,cAAc8W,GAC1CvqB,OAET,CAEA,eAAAkrB,CAAgBC,GACd,MAAM,GACJ1nE,EAAKiH,KAAKjH,IACRiH,KAAK3D,MACT,OAAOokE,EAAU,GAAG1nE,KAAM0nE,IAAY1nE,CACxC,CAEA,YAAA2nE,GACE,MAAO,CAAC,CACV,CAEA,UAAAC,CAAW5wD,EAAOkjC,GAChB,IAAI,OACFqsB,EAAM,GACNvmE,EAAKiH,KAAKjH,GAAE,KACZ+V,EAAI,SACJvS,EAAQ,KACRy5C,EAAI,WACJ2qB,EAAU,aACVnB,EAAY,OACZhkE,EAAM,YACNmkE,EACA,eAAgBiB,GACd5gE,KAAK3D,MACT,MAAM,SACJ0jE,EAAQ,QACRntD,GACE5S,KAAKmyC,MACH0uB,EAAsB7gE,KAAKkgE,cAAgBV,EACjD,IAAIhlD,EAAOje,IAAay5C,EAAO,YAASjzC,EACxC,MAAM1G,EAAQ,CACZ25C,KAAMz5C,OAAWwG,EAAYizC,EAC7B9B,QAAS33C,OAAWwG,EAAY/C,KAAKogE,YACrC5jB,QAASjgD,OAAWwG,EAAY/C,KAAKw8C,QACrCkJ,OAAQnpD,OAAWwG,EAAY/C,KAAK0lD,OACpCzS,SAAU12C,OAAWwG,EAAYkwC,EACjCxjC,WAAW,EAAIkiC,EAAY/iC,SAAS,4BAA6B,CAC/D,cAAe+wD,EACf,cAAepjE,EACf,aAAcqW,EACd,YAAa0sD,IAEfvmE,KACAyhB,OACA,gBAAiBje,QAAYwG,EAC7B,gBAAiB89D,EAAsBd,OAAWh9D,EAClD,gBAAiB89D,GAAuBd,EAAW//D,KAAKwgE,gBAAgB,mBAAgBz9D,EACxF,eAAgB48D,IAAgBkB,EAAsBD,OAAc79D,EACpEvH,OAAQe,IAAay5C,OAAOjzC,EAAYvH,GAG1C,OAAImlE,EACKA,EAAWtkE,GAGA/C,EAAOsV,QAAQjR,cAAc,IAAKtB,GAAO,EAAIq4C,EAAM4B,WAAWxnC,EAAM,CACtFW,UAAW,4BACXmH,KAAM,MACJ7G,EACN,CAEA,MAAAf,GACE,IAAImkC,EAAcnzC,KAAK3D,OACnB,OACFic,EAAM,UACN7I,EAAS,SACT5R,EAAQ,SACRtB,EAAQ,aACRijE,EAAY,WACZmB,EAAU,GACV5nE,EAAKiH,KAAKjH,GAAE,MACZkD,EAAK,YACL0jE,EAAW,gBACXD,EAAe,eACfhsB,EAAc,SACd/gC,EAAQ,UACRmgC,EAAS,OACTwsB,GACEnsB,EACArC,EAxOR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAwOtdu1C,CAAyBoC,EAAa,CAAC,SAAU,YAAa,WAAY,WAAY,eAAgB,aAAc,KAAM,QAAS,cAAe,kBAAmB,iBAAkB,WAAY,YAAa,WAEjO,MAAM,SACJ4sB,EAAQ,QACRntD,GACE5S,KAAKmyC,MACT,IAAI,MACFpiC,EAAK,SACLkjC,EAAW,GACTjzC,KAAK3D,MAeT,OAbK0T,GAAUuI,IACbvI,EAAQlS,IAKN2hE,GAAgB9rB,KAClBT,EAHgBysB,GAAmBzjE,IAAUyjE,EAGtBzsB,GAAY,UAG9BnC,EAAW/gC,aACX+gC,EAAWt1C,cACXs1C,EAAW,gBACEx3C,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAC9DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,wBAAyB,CAC3D,cAAe+wD,EACf,cAAepjE,EACf,aAAcqW,GACbnD,GACH8kC,UAAWh4C,OAAWwG,GAAY,EAAI0xC,EAAQ2B,OAAOp2C,KAAKu0C,UAAWE,EAAQmR,uBAAuBzlD,KAAKH,OACzG/C,IAAK+C,KAAKggE,oBACT,EAAInuB,EAAgBjjC,SAASkiC,KAAe/gC,GAAS4wD,IAAe3gE,KAAK2gE,WAAW5wD,EAAOkjC,EAAUusB,GAAelnD,GAAuBhf,EAAOsV,QAAQjR,cAAc,KAAM,CAC/K8R,UAAW,2BACX1W,GAAIiH,KAAKwgE,gBAAgB,WACxBloD,GAAStY,KAAKkgE,cAA6B5mE,EAAOsV,QAAQjR,cAAcihE,EAAShwD,QAAS,CAC3F2wD,UAAU,EACV1vD,QAAS2vD,EAAe,kBAAez8D,EACvChK,GAAIiH,KAAKwgE,gBAAgB,SACzB,kBAAmBloD,EAAStY,KAAKwgE,gBAAgB,UAAYznE,EAC7D+5C,UAAWA,EAAY,EACvBwsB,OAAQA,IAAWE,GAAgBO,OAAWh9D,GAC9C9G,MAAOyjE,EACP/sD,SAAUA,GACT9U,GACL,GAEC4zC,EAAQzzC,UAAY,CAIrByR,UAAWlV,EAAWqU,QAAQ1Q,OAK9B3B,SAAUhC,EAAWqU,QAAQ3Q,KAK7B8R,MAAOxV,EAAWqU,QAAQ1Q,OAK1BjC,MAAO1B,EAAWqU,QAAQ1Q,OAK1B83C,KAAMz7C,EAAWqU,QAAQ1Q,OAKzB1C,OAAQjB,EAAWqU,QAAQ1Q,OAK3B4Q,KAAMvU,EAAWqU,QAAQrQ,KAOzB,eAAgBhE,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,aAKlDwpB,SAAUxlE,EAAWqU,QAAQ3Q,KAK7BohE,gBAAiB9kE,EAAWqU,QAAQ3Q,KAWpC0iE,WAAYpmE,EAAWqU,QAAQjQ,KAK/Bu1C,QAAS35C,EAAWqU,QAAQjQ,KAK5BgU,SAAUpY,EAAWqU,QAAQjQ,MAC5B8yC,EAAQ1zC,aAAe,CACxB,eAAgB,OAChBxB,UAAU,EACVf,OAAQ,QACRmX,SAAUitD,EACV1rB,QAAS0rB,GApVmHpuB,EAqV3HE,KAAWF,IAAWA,IAAWA,EAEpC35C,EAAA,QAAkBioE,gCC/XlBhoE,EAAOD,QAAU,EAAjB,qCChBA,IAEgCoB,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAIvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,cAAc,IAAM,EAAQ,SAAoB,IAAM,EAAQ,uCCN1Gr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkB6mB,EAElB,IAAIizB,EAAcn3C,EAAuB,EAAQ,QAE7CD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExC8/D,EAAsB9/D,EAAuB,EAAQ,QAEzD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAqB5T,SAASgjB,EAAOhc,GACd,IAAI,QACFmN,EAAO,MAEPD,EAAK,UACLH,GACE/M,EACAouC,EA1BN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA0Bxdu1C,CAAyBruC,EAAM,CAAC,UAAW,QAAS,cAErE,OAAoBpJ,EAAOsV,QAAQjR,cAAc28D,EAAoB1rD,QAASqhC,EAAS,CACrFuK,UAAW,WACX/qC,WAAW,EAAIkiC,EAAY/iC,SAAS,wBAAyB,CAC3D,CAAC,0BAA0BiB,KAAYA,EACvC,+BAAgCD,GAC/BH,GACHgrC,eAAgB,8BAChBC,cAAe,+BACfC,eAAgB,8BAChBngC,KAAM,UACLs2B,GACL,CA5BE,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAwB3JpyB,EAAO5gB,YAAc,SACrB4gB,EAAO1gB,UAAY,CAIjByR,UAAWlV,EAAWqU,QAAQ1Q,OAK9Bye,QAASpiB,EAAWqU,QAAQ3Q,KAK5BwgB,eAAgBlkB,EAAWqU,QAAQ3Q,KAGnC8R,MAAOxV,EAAWqU,QAAQ+kC,UAAU,CAACp5C,EAAWqU,QAAQ1Q,OAAQ3D,EAAWqU,QAAQ/T,SAKnF4W,SAAUlX,EAAWqU,QAAQjQ,KAK7BiR,MAAOrV,EAAWqU,QAAQ3Q,KAK1B4R,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,sCC3FrCz8C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAgBI25C,EAAQC,EAASC,EAhBjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Co3C,EAAuBp3C,EAAuB,EAAQ,QAEtDq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDi6C,EAAU,EAAQ,MAElBV,EAAav5C,EAAuB,EAAQ,QAE5CsmE,EAAU,EAAQ,OAElBxnE,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAIqlE,GAAa,EAAInvB,EAAqBhjC,SAAS4iC,GAAS,EAAIuC,EAAWnlC,SAAS4iC,GAAS,EAAIiF,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAyBn4C,EAAOqnB,UACvL,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN,MAAM,QACJsgB,EAAO,eACP8B,GACEpiB,EACJ2D,KAAKmyC,MAAQ,CACXx1B,aAAqB5Z,IAAZ4Z,EAAwBA,EAAU8B,IAAkB,EAEjE,CAEA,gCAAA4zB,CAAiCC,GAC3B,YAAaA,GACftyC,KAAKuyC,SAAS,CACZ51B,QAAS21B,EAAU31B,SAGzB,CAEA,KAAA24B,GACMt1C,KAAKq6C,WAAar6C,KAAKzD,UACzByD,KAAKq6C,SAAS/E,OAElB,CAEA,UAAAyF,CAAWp+B,GACH,YAAa3c,KAAK3D,OACtB2D,KAAKuyC,SAAS,CACZ51B,WAGN,CAEA,QAAA29B,GACE,OAAOt6C,KAAKq6C,QACd,CAEA,YAAA9hC,CAAagJ,GACX,MAAM,SACJ9P,GACEzR,KAAK3D,OACH,QACJsgB,GACE4E,EAAE/lB,OACNwE,KAAK+6C,WAAWp+B,GAChBlL,EAASkL,EAAS4E,EACpB,CAEA,MAAAvS,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,MACJ0T,EAAK,MACL9T,EAAK,KACLkL,EAAI,SACJ5K,EAAQ,SACRyX,EAAQ,QACRnB,EAAO,SACPiM,EAAQ,UACRrP,EAAS,MACT4H,EAAK,SACLxZ,EAAQ,UACR28C,EAAS,YACT99B,EAAW,eACX+9B,EAAc,cACdC,EAAa,SACbH,EAAQ,eACRI,EAAc,YACdjF,EAAW,UACXC,GACExC,EACErC,EA3EV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA2Epdu1C,CAAyBoC,EAAa,CAAC,QAAS,QAAS,OAAQ,WAAY,WAAY,UAAW,WAAY,YAAa,QAAS,WAAY,YAAa,cAAe,iBAAkB,gBAAiB,WAAY,iBAAkB,cAAe,eAE3Q,QACJx2B,GACE3c,KAAKmyC,MACH6uB,EAAoBtkD,IAAgB3M,GAASlS,GAC7C03C,EAAUyrB,EAAoB,QAAU,aAGvClwB,EAAWr/B,SAGlB,IAAIyB,EAAY,KAEhB,GAAI49B,EAAW,cACb59B,EAAY49B,EAAW,qBAChBA,EAAW,mBACb,IAAKp0B,IAAgB3M,GAASlS,GAAW,CAC9C,IAAIojE,EAAS,GAMb,GAJIlxD,GACFkxD,EAAO5lE,KAAK0U,GAGVlS,EAAU,CACZ,IAAIgJ,GAAM,EAAIi6D,EAAQI,kBAAkBrjE,GAEpCgJ,IAAQkJ,GACVkxD,EAAO5lE,KAAKwL,EAEhB,CAEAqM,EAAY+tD,EAAOt8D,KAAK,IAC1B,CAOA,OAJI61C,IAAc1J,EAAW,kBAC3BA,EAAW,gBAAkBn0B,GAGXrjB,EAAOsV,QAAQjR,cAAc43C,EAAS,CACxD9lC,WAAW,EAAIkiC,EAAY/iC,SAASa,EAAW,CAC7C,aAAcoD,EACd,cAAetW,IAEjB8a,MAAOA,GACO/d,EAAOsV,QAAQjR,cAAc,QAASsyC,EAAS,CAC7DhzC,IAAK04B,GAAM31B,KAAKq6C,SAAW1kB,EAC3B5mB,KAAMyrC,EACN/qC,UAAWgrC,EACX99B,QAASA,EACTpgB,SAAUA,EACV4K,KAAMA,EACNlL,MAAOA,EACP+X,WAAUA,GAAkB,KAC5B8K,SAAUA,EACVrN,SAAUzR,KAAKuY,aACfm9B,YAAajB,EAAQ4B,qBAAqBl2C,KAAKH,KAAM01C,GACrDC,UAAWlB,EAAQ4B,qBAAqBl2C,KAAKH,KAAM21C,GACnD,eAAgB9iC,GAAW,KAC3B,aAAcK,IACb,EAAI2+B,EAAgBjjC,SAASkiC,KAA4Bx3C,EAAOsV,QAAQjR,cAAc,OAAQ,CAC/F8R,UAAWirC,GACVH,GAAWymB,GAAkC1nE,EAAOsV,QAAQjR,cAAc,OAAQ,CACnF8R,UAAWkrC,GACV5qC,EAIHA,GAASlS,GAAY,IAAKA,GAC5B,GAEC4zC,EAAQ1zC,aAAe,CACxB2e,aAAa,EAIb+B,oBAAgB1b,EAChBxG,UAAU,EACVyX,UAAU,EACVnB,SAAS,EACTiM,UAAU,EACVrN,SAAU,WAAa,GAzJoG+/B,EA0J1HE,KAAWF,IAAWA,IAAWA,EAEpC35C,EAAA,QAAkBkpE,EAClBA,EAAWjjE,YAAc,2CChMzBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI85C,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDi6C,EAAU,EAAQ,MAElBqsB,EAAU,EAAQ,OAElBxnE,EAASkB,EAAuB,EAAQ,QAExCy/C,EAAcz/C,EAAuB,EAAQ,QAIjD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAJ5T,EAAQ,OAUR,MAAMylE,UAAsBlnB,EAAYrrC,QACtC,WAAAxV,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKohE,YAAcC,IAChDA,EAAIzjB,iBAAiB,EACpBlM,CACL,CAEA,MAAA1iC,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,MACJ0T,EAAK,MACL9T,EAAK,KACLkL,EAAI,SACJ5K,EAAQ,SACRyX,EAAQ,QACRnB,EAAO,SACPiM,EAAQ,UACRrP,EAAS,MACT4H,EAAK,SACLxZ,EAAQ,UACR28C,EAAS,YACT99B,EAAW,eACX+9B,EAAc,cACdC,EAAa,SACbH,EAAQ,eACRI,EAAc,YACdjF,EAAW,UACXC,GACExC,EACErC,EAnCV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAmCpdu1C,CAAyBoC,EAAa,CAAC,QAAS,QAAS,OAAQ,WAAY,WAAY,UAAW,WAAY,YAAa,QAAS,WAAY,YAAa,cAAe,iBAAkB,gBAAiB,WAAY,iBAAkB,cAAe,eAE3Q,QACJx2B,GACE3c,KAAKmyC,MACH6uB,EAAoBtkD,IAAgB3M,GAASlS,GAG/C28C,IAAc1J,EAAW,kBAC3BA,EAAW,gBAAkBn0B,UAKxBm0B,EAAWr/B,SAGlB,IAAIyB,EAAY,KAEhB,GAAI49B,EAAW,cACb59B,EAAY49B,EAAW,qBAChBA,EAAW,mBACb,IAAKp0B,IAAgB3M,GAASlS,GAAW,CAC9C,IAAIojE,EAAS,GAMb,GAJIlxD,GACFkxD,EAAO5lE,KAAK0U,GAGVlS,EAAU,CACZ,IAAIgJ,GAAM,EAAIi6D,EAAQI,kBAAkBrjE,GAEpCgJ,IAAQkJ,GACVkxD,EAAO5lE,KAAKwL,EAEhB,CAEAqM,EAAY+tD,EAAOt8D,KAAK,IAC1B,CAEA,OAAoBrL,EAAOsV,QAAQjR,cAlCnB,QAkC0C,CACxD8R,WAAW,EAAIkiC,EAAY/iC,SAASa,EAAW,CAC7C,aAAcoD,EACd,cAAetW,IAEjB8a,MAAOA,GACO/d,EAAOsV,QAAQjR,cAAc,QAASsyC,EAAS,CAC7DhzC,IAAK04B,GAAM31B,KAAKq6C,SAAW1kB,EAC3B5mB,KAAMyrC,EACN/qC,WAAW,EAAIkiC,EAAY/iC,SAAS6rC,EAAgB,kBACpD99B,QAASA,EACTpgB,SAAUA,EACV4K,KAAMA,EACNlL,MAAOA,EACP+X,WAAUA,GAAkB,KAC5B8K,SAAUA,EACVrN,SAAUzR,KAAKuY,aACfm9B,YAAajB,EAAQ4B,qBAAqBl2C,KAAKH,KAAM01C,GACrDC,UAAWlB,EAAQ4B,qBAAqBl2C,KAAKH,KAAM21C,GACnD,eAAgB9iC,GAAW,KAC3B,aAAcK,IACb,EAAI2+B,EAAgBjjC,SAASkiC,KAA4Bx3C,EAAOsV,QAAQjR,cAAc,OAAQ,CAC/Fu2C,QAASl0C,KAAKohE,YACd3xD,UAAWirC,GACVH,GAAWymB,GAAkC1nE,EAAOsV,QAAQjR,cAAc,OAAQ,CACnFu2C,QAASl0C,KAAKohE,YACd3xD,UAAWkrC,GACV5qC,EAIHA,GAASlS,GAAY,IAAKA,GAC5B,EAIFhG,EAAA,QAAkBspE,EAClBA,EAAcrjE,YAAc,8CCpI5BhE,OAAOC,eAAelC,EAAS,KAA/B,CACEuD,YAAY,EACZzB,IAAK,WACH,OAAO2nE,EAAO1yD,OAChB,IAQF9U,OAAOC,eAAelC,EAAS,KAA/B,CACEuD,YAAY,EACZzB,IAAK,WACH,OAAO4nE,EAAO3yD,OAChB,IAEF9U,OAAOC,eAAelC,EAAS,KAAM,CACnCuD,YAAY,EACZzB,IAAK,WACH,OAAO6nE,EAAY5yD,OACrB,IAEF9U,OAAOC,eAAelC,EAAS,KAAM,CACnCuD,YAAY,EACZzB,IAAK,WACH,OAAO8nE,EAAI7yD,OACb,IASF,IAAI0yD,EAAS9mE,EAAuB,EAAQ,QAIxC+mE,GAFS/mE,EAAuB,EAAQ,QAE/BA,EAAuB,EAAQ,QAExCgnE,EAAchnE,EAAuB,EAAQ,QAE7CinE,EAAMjnE,EAAuB,EAAQ,QAE/BA,EAAuB,EAAQ,QAEzC,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,gCCpD9F,IAEgCA,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAIvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,MAAM,IAAM,EAAQ,SAAY,IAAM,EAAQ,sCCN1Fr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkB6pE,EAElB,IAAI/vB,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDlB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAS5T,SAASgmE,EAAMh/D,GACb,IAAI,UACF+M,EAAS,SACT5R,GACE6E,EACAouC,EAZN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAYxdu1C,CAAyBruC,EAAM,CAAC,YAAa,aAE9D,OAAoBpJ,EAAOsV,QAAQjR,cAAc,QAASsyC,EAAS,CACjExgC,WAAW,EAAIkiC,EAAY/iC,SAAS,sBAAuBa,KAC1D,EAAIoiC,EAAgBjjC,SAASkiC,IAAcjzC,EAChD,CAEA6jE,EAAM5jE,YAAc,sCClCpBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkB8pE,EAElB,IAAIhwB,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAS5T,SAASimE,EAAGj/D,GACV,IAAI,UACF+M,EAAS,SACT5R,EAAQ,QACR+jE,GACEl/D,EACAouC,EAbN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAaxdu1C,CAAyBruC,EAAM,CAAC,YAAa,WAAY,YAE1E,OAAoBpJ,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAC9DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,sBAAuB,CACzD,+BAAgCgzD,GAC/BnyD,KACF,EAAIoiC,EAAgBjjC,SAASkiC,IAAcjzC,EAChD,CAEA8jE,EAAG7jE,YAAc,KACjB6jE,EAAG3jE,UAAY,CAEb6jE,UAAWtnE,EAAWqU,QAAQ3Q,oCC1ChCnE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBiqE,EAElB,IAAInwB,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDlB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAS5T,SAASomE,EAAGp/D,GACV,IAAI,UACF+M,EAAS,SACT5R,GACE6E,EACAouC,EAZN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAYxdu1C,CAAyBruC,EAAM,CAAC,YAAa,aAE9D,OAAoBpJ,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAC9DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,0BAA2Ba,KAC9D,EAAIoiC,EAAgBjjC,SAASkiC,IAAcjzC,EAChD,CAEAikE,EAAGhkE,YAAc,mCClCjBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBkqE,EAElB,IAAIpwB,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDlB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAS5T,SAASqmE,EAAMr/D,GACb,IAAI,UACF+M,EAAS,SACT5R,GACE6E,EACAouC,EAZN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAYxdu1C,CAAyBruC,EAAM,CAAC,YAAa,aAE9D,OAAoBpJ,EAAOsV,QAAQjR,cAAc,QAASsyC,EAAS,CACjExgC,WAAW,EAAIkiC,EAAY/iC,SAAS,sBAAuBa,KAC1D,EAAIoiC,EAAgBjjC,SAASkiC,IAA2Bx3C,EAAOsV,QAAQjR,cAAc,KAAM,KAAME,GACtG,CAEAkkE,EAAMjkE,YAAc,sCClCpBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBmqE,EAElB,IAAIrwB,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDlB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAS5T,SAASsmE,EAAGt/D,GACV,IAAI,UACF+M,EAAS,SACT5R,GACE6E,EACAouC,EAZN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAYxdu1C,CAAyBruC,EAAM,CAAC,YAAa,aAE9D,OAAoBpJ,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAC9DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,qBAAsBa,KACzD,EAAIoiC,EAAgBjjC,SAASkiC,IAAcjzC,EAChD,CAEAmkE,EAAGlkE,YAAc,mCClCjBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBoqE,EAElB,IAAItwB,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAwB5T,SAASumE,EAAMv/D,GACb,IAAI,MACFkN,EAAK,UACLH,EAAS,SACT5R,GACE6E,EACAouC,EA5BN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA4Bxdu1C,CAAyBruC,EAAM,CAAC,QAAS,YAAa,aAEvE,OAAoBpJ,EAAOsV,QAAQjR,cAAc,QAASsyC,EAAS,CACjExgC,WAAW,EAAIkiC,EAAY/iC,SAAS,iBAAkB,CACpD,wBAAyBgB,GACxBH,KACF,EAAIoiC,EAAgBjjC,SAASkiC,IAAcjzC,EAChD,CAxBE,EAAQ,OAGuI,EAAQ,MACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAoB3JokE,EAAMnkE,YAAc,QACpBmkE,EAAMjkE,UAAY,CAEhBH,SAAUtD,EAAWqU,QAAQrQ,KAG7BqR,MAAOrV,EAAWqU,QAAQ3Q,oCC5D5BnE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI85C,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDlB,EAMJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CANztBU,CAAwB,EAAQ,QAI7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAR5T,EAAQ,OAcR,MAAMwmE,UAAc5oE,EAAOqnB,UACzB,WAAAvnB,CAAYiD,GACV01C,MAAM11C,EACR,CAEA,MAAA2S,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,UACJoT,EAAS,SACT5R,GACEs1C,EACErC,EAfV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAepdu1C,CAAyBoC,EAAa,CAAC,YAAa,aAEvE,OAAoB75C,EAAOsV,QAAQjR,cAAc,KAAMsyC,EAAS,CAC9DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,qBAAsB,8BAA+Ba,KACxF,EAAIoiC,EAAgBjjC,SAASkiC,IAAcjzC,EAChD,EAIFhG,EAAA,QAAkBqqE,gCC7ClBpoE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAQI25C,EAAQC,EAASC,EARjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAQJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CARztBU,CAAwB,EAAQ,QAEzC6nE,EAAa3nE,EAAuB,EAAQ,MAIhD,SAASf,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,IAAI0mE,GAAW,EAAI3rB,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAuBn4C,EAAOqnB,UACvG,kBAAA0hD,CAAmBpmE,EAAOslB,GACxB,MAAM,MACJ3R,EAAK,SACL6B,GACEzR,KAAK3D,MAEe,mBAAboV,GACTA,EAASxV,EAAOslB,GAGd3R,IACF2R,EAAE/lB,OAAO6b,MAAMkkC,OAAS,OACxBh6B,EAAE/lB,OAAO6b,MAAMkkC,OAAS,GAAGh6B,EAAE/lB,OAAO+2D,iBAExC,CAEA,MAAAvjD,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,MACJuT,GACEujC,EACErC,EA1BV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA0Bpdu1C,CAAyBoC,EAAa,CAAC,UAE1D,OAAoB75C,EAAOsV,QAAQjR,cAAcwkE,EAAWvzD,QAASqhC,EAAS,CAAC,EAAGa,EAAY,CAC5FlyB,WAAW,EACXhP,MAAOA,EACP6B,SAAUzR,KAAKqiE,qBAEnB,GAEC5wB,EAAQzzC,UAAY,CAErByR,UAAWlV,EAAWqU,QAAQ1Q,OAG9B3B,SAAUhC,EAAWqU,QAAQ3Q,KAG7B4U,QAAStY,EAAWqU,QAAQ3Q,KAG5BynD,OAAQnrD,EAAWqU,QAAQjQ,KAG3B8S,SAAUlX,EAAWqU,QAAQjQ,KAG7B69C,QAASjiD,EAAWqU,QAAQjQ,KAG5Bif,YAAarjB,EAAWqU,QAAQ1Q,OAGhC0R,MAAOrV,EAAWqU,QAAQ3Q,KAG1B6gB,SAAUvkB,EAAWqU,QAAQ3Q,KAG7B+V,SAAUzZ,EAAWqU,QAAQ3Q,MAC5BwzC,EAAQ1zC,aAAe,CACxBxB,UAAU,EACVsW,SAAS,EACTjD,OAAO,EACPkP,UAAU,EACV9K,UAAU,GAlEmCw9B,EAmE5CE,KAAWF,EAEd35C,EAAA,QAAkBuqE,8BChGlB,IAEgCnpE,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,aAAa,IAAM,EAAQ,SAAsB,IAAM,EAAQ,QAAmB,IAAM,EAAQ,uCCpB5Ir8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI4+C,EAAqBj8C,EAAuB,EAAQ,QAEpDwhE,EAA2BxhE,EAAuB,EAAQ,QAE1Dm3C,EAAcn3C,EAAuB,EAAQ,QAE7Cw7D,EAAOx7D,EAAuB,EAAQ,QAEtC8nE,EAAsB,EAAQ,OAE9B/nE,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExCunD,EAAe,EAAQ,OAEvBogB,EAAa3nE,EAAuB,EAAQ,OAE5C62C,EAAc72C,EAAuB,EAAQ,QAEjD,EAAQ,OAER,EAAQ,OAER,IAIIg3C,EAAQC,EAASC,EAJjBgD,EAAQ,EAAQ,OAEhB8B,EAAgB,EAAQ,OAI5B,SAASh8C,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAEhN,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,MAAM6mE,EAAM5pE,OAAO2oB,SAAW3oB,OAAO2oB,QAAQ,OAS3C,EAAQ,MAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAE3J,IAAIkhD,GAAiB,EAAI/rB,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAA6B0wB,EAAWvzD,QACvH,WAAAxV,CAAYiD,GACV01C,MAAM11C,GAEN2D,KAAKyiE,aAAe,KACdziE,KAAK0iE,iBACP1iE,KAAK2iE,WAAahqE,OAAOovD,iBAAiB/nD,KAAK0iE,gBAAgBE,iBAAiB,eAChF5iE,KAAK6iE,SAAWlqE,OAAOovD,iBAAiB/nD,KAAK0iE,gBAAgBE,iBAAiB,aAC9E5iE,KAAK8iE,YAAcnqE,OAAOovD,iBAAiB/nD,KAAK0iE,gBAAgBE,iBAAiB,gBACjF5iE,KAAK0iE,eAAez+D,oBAAoB,SAAUjE,KAAKyiE,cACzD,EAGFziE,KAAK+iE,WAAa,KAChB/iE,KAAK0iE,eAAeptB,QACpBt1C,KAAK0iE,eAAez+D,oBAAoB,SAAUjE,KAAK+iE,WAAW,EAGpE/iE,KAAK2/C,OAAS,KACR3/C,KAAK0iE,iBACP1iE,KAAK0iE,eAAeptB,QACpBt1C,KAAKgjE,SAAU,EACfhjE,KAAK0iE,eAAez+D,oBAAoB,SAAUjE,KAAK2/C,QACzD,EAGF3/C,KAAKmyC,MAAQ,CACX8wB,UAAW,GACXC,WAAW,EACXC,gBAAgB,GAElBnjE,KAAKojE,YAAc,IAAI1hD,IACvB1hB,KAAKqjE,aAAc,EAInBrjE,KAAKsjE,WAAa,CAAC,UAAW,SAAU,UAAW,WACrD,CAEA,WAAA/rB,CAAYj0C,GACV,MAAMk0C,EAAY19C,OAAOiB,KAAKiF,KAAK3D,OAAOnB,QAAOu8C,GAAYA,EAASlzC,OAAO,GAAG0nB,gBAAkB3oB,EAAMyL,OAEpG/O,KAAK3D,MAAMm7C,IACbx3C,KAAK3D,MAAMm7C,GAAWr9C,KAAKmJ,EAAM9H,OAAQ8H,EAE7C,CAEA,kBAAAigE,GACE,SAAIvjE,KAAK3D,MAAMuhB,aAAgB5d,KAAK3D,MAAMJ,OAAU+D,KAAKmyC,MAAM8wB,UAKjE,CAEA,eAAAO,GAGExjE,KAAK0iE,eAAerrD,MAAMsrD,WAAa3iE,KAAK2iE,WAC5C3iE,KAAK0iE,eAAerrD,MAAMwrD,SAAW7iE,KAAK6iE,SAC1C7iE,KAAK0iE,eAAerrD,MAAMyrD,YAAc9iE,KAAK8iE,YAEzCP,EAAIkB,MAA0B,cAAlBlB,EAAIkB,KAAKt8D,MACnBnH,KAAKujE,uBACPvjE,KAAK0iE,eAAerrD,MAAMqsD,UAAY,SACtC1jE,KAAK0iE,eAAerrD,MAAMssD,cAAgB,MAGhD,CAEA,mBAAAC,GACM5jE,KAAK0iE,iBACP1iE,KAAK0iE,eAAepiE,iBAAiB,QAASN,KAAK6jE,SAChC/pE,OAAOyiC,QAAQv8B,KAAK3D,OAAOnB,QAAO,EAAE8rB,EAAGG,KAAOH,EAAEoC,WAAW,QAAUppB,KAAKsjE,WAAW38D,SAASqgB,KACtGnrB,SAAQ,EAAEmrB,EAAGG,KAAOnnB,KAAK0iE,eAAepiE,iBAAiB0mB,EAAEziB,OAAO,GAAG0nB,cAAejsB,KAAKu3C,eAE/Fv3C,KAAK3D,MAAME,WACdyD,KAAK0iE,eAAepiE,iBAAiB,QAASN,KAAKwlD,aACnDxlD,KAAK0iE,eAAepiE,iBAAiB,OAAQN,KAAKylD,aAGxD,CAEA,iBAAArQ,GACEp1C,KAAK4jE,sBAED5jE,KAAK0iE,iBACP1iE,KAAK0iE,eAAepiE,iBAAiB,SAAUN,KAAKyiE,cAE/CziE,KAAK3D,MAAME,UACVyD,KAAK3D,MAAMmT,WAEbxP,KAAK0iE,eAAepiE,iBAAiB,SAAUN,KAAK2/C,QAI5D,CAEA,kBAAA9H,GAQE,GANA73C,KAAK4jE,sBAED5jE,KAAK0iE,gBAAmD,SAAjC1iE,KAAK0iE,eAAeoB,UAC7C9jE,KAAKwjE,mBAGc,IAAjBxjE,KAAKgjE,QAAkB,CACzB,MAAMe,EAAK/jE,KAAKgkE,sBAEZD,IACF/jE,KAAKqjE,aAAc,EACnBrjE,KAAK0iE,eAAepiE,iBAAiB,SAAUN,KAAK+iE,aAGjD/iE,KAAKqjE,aAAgBU,IACxB/jE,KAAK0iE,eAAepiE,iBAAiB,SAAUN,KAAK+iE,YACpD/iE,KAAKqjE,aAAc,EAEvB,CAGIrjE,KAAK0iE,qBAAuC3/D,IAArB/C,KAAK3D,MAAMJ,OACpC+D,KAAK0iE,eAAe7a,aAAa,QAAS7nD,KAAK3D,MAAMJ,MAEzD,CAEA,oBAAA07C,GACM33C,KAAK0iE,iBACP1iE,KAAK0iE,eAAez+D,oBAAoB,QAASjE,KAAK6jE,SACnC/pE,OAAOyiC,QAAQv8B,KAAK3D,OAAOnB,QAAO,EAAE8rB,EAAGG,KAAOH,EAAEoC,WAAW,QAAUppB,KAAKsjE,WAAW38D,SAASqgB,KACtGnrB,SAAQ,EAAEmrB,EAAGG,KAAOnnB,KAAK0iE,eAAez+D,oBAAoB+iB,EAAEziB,OAAO,GAAG0nB,cAAejsB,KAAKu3C,eAElGv3C,KAAK3D,MAAME,WACdyD,KAAK0iE,eAAez+D,oBAAoB,QAASjE,KAAKwlD,aACtDxlD,KAAK0iE,eAAez+D,oBAAoB,OAAQjE,KAAKylD,YAEjDzlD,KAAK3D,MAAMmT,WACbxP,KAAK0iE,eAAez+D,oBAAoB,SAAUjE,KAAK2/C,SAI/D,CAEA,KAAArK,IACOt1C,KAAK3D,MAAME,UAAYyD,KAAK0iE,gBAC/B1iE,KAAK0iE,eAAeptB,OAExB,CAEA,mBAAA0uB,GACE,IAAI/8C,EAASjnB,KAAKojE,YAAYn8C,SAE9B,IAAK,IAAIhuB,KAAOguB,EACd,GAAIhuB,EAAI+gE,QACN,OAAO,EAIX,OAAO,CACT,CAEA,OAAA6J,CAAQtiD,GAEN,IAAI0iD,EAAW1iD,EAAE/lB,OAAOS,MACxB+D,KAAKuyC,SAAS,CACZ0wB,UAAW1hD,EAAE/lB,OAAOS,QAGlB+D,KAAK3D,MAAMoV,UACbzR,KAAK3D,MAAMoV,SAASwyD,EAAU1iD,EAElC,CAEA,WAAA6+C,CAAY7+C,GACVvhB,KAAK0iE,eAAeptB,QACpBt1C,KAAKgjE,SAAU,EAEXhjE,KAAK3D,MAAM63C,SACbl0C,KAAK3D,MAAM63C,QAAQ3yB,EAEvB,CAEA,WAAAikC,CAAYjkC,GACVvhB,KAAKuyC,SAAS,CACZ2wB,WAAW,IAGTljE,KAAK3D,MAAMmgD,SACbx8C,KAAK3D,MAAMmgD,QAAQj7B,GAGrBvhB,KAAKgjE,SAAU,CACjB,CAEA,UAAAvd,CAAWlkC,GACTvhB,KAAKuyC,SAAS,CACZ2wB,WAAW,IAGTljE,KAAK3D,MAAMqpD,QACb1lD,KAAK3D,MAAMqpD,OAAOnkC,GAGpBvhB,KAAKgjE,SAAU,CACjB,CAEA,uBAAAkB,GACE,IAAIj9C,EAASjnB,KAAKojE,YAAYn8C,SAE9B,IAAK,IAAIhuB,KAAOguB,EACVhuB,EAAIuO,UACNvO,EAAIuO,UAGV,CAEA,eAAA28D,CAAgB5iD,GAYd,GAXIvhB,KAAK3D,MAAM+nE,SACbpkE,KAAK3D,MAAM+nE,QAAQ7iD,GAGrBvhB,KAAKkkE,0BACL3iD,EAAE/lB,OAAOS,MAAQslB,EAAE/lB,OAAO6oE,UAEL,IAAjB9iD,EAAEtnB,IAAI0B,SACR4lB,EAAE/lB,OAAOS,OAASslB,EAAEtnB,KAIf,IADCsnB,EAAEqvC,SAGFrvC,EAAE/lB,OAAOS,OAASslB,EAAE/lB,OAAOS,MAAMN,OAAS,EAAG,CAC/C,IAAI2oE,EAAS/iD,EAAE/lB,OAAOS,MACtBslB,EAAE/lB,OAAOS,MAAQqoE,EAAO13D,UAAU,EAAG03D,EAAO3oE,OAAS,EACvD,CAKJqE,KAAK6jE,QAAQtiD,EACf,CAEA,aAAAmqC,CAAcE,GACRA,GAAW5rD,KAAKojE,aAClBpjE,KAAKojE,YAAY19C,OAAOkmC,EAAQmO,WAEpC,CAEA,SAAAwK,CAAU3Y,GAER,OADA5rD,KAAKwkE,iBAAiB5Y,GACW,IAA1B5rD,KAAKojE,YAAYxsD,IAC1B,CAEA,gBAAA4tD,CAAiB5Y,GACf,IAAK5rD,KAAKykE,gBACR,OAGF,MAAMC,EAA8B1kE,KAAKykE,gBAAgBtS,wBAEzD,GAA2C,IAAvCuS,EAA4BnpB,QAAsD,IAAtCmpB,EAA4BpyD,OAIxEs5C,EAAS,CACPA,EAAQxtD,KAAK47D,UAAW,EAAIgC,EAAyBptD,SAAS81D,EAA6B9Y,EAAQxtD,KAAK8zD,cAC1GlyD,KAAKojE,YAAY/oE,IAAIuxD,EAAQmO,WAAYnO,EAAQxtD,MAEjD4B,KAAK0rD,cAAcE,GAGrB,MAAM+Y,EAAsB3kE,KAAKojE,YAAY1pE,IAAIkyD,EAAQmO,aACnD,eACJoJ,GACEnjE,KAAKmyC,MAELwyB,IAAwBxB,GAC1BnjE,KAAKuyC,SAAS,CACZ4wB,eAAgBwB,GAGtB,CACF,CAEA,MAAA31D,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,UACJoT,EAAS,KACTX,EAAI,MACJc,EAAK,MACLyH,EAAK,SACL9a,EAAQ,SACRyX,EAAQ,QACRnB,EAAO,SACPiM,EAAQ,UACRF,EAAS,gBACTK,EAAe,iBACfD,EAAgB,aAChB4lD,EAAY,mBACZC,GACE1xB,EACErC,EAlUV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAkUpdu1C,CAAyBoC,EAAa,CAAC,YAAa,OAAQ,QAAS,QAAS,WAAY,WAAY,UAAW,WAAY,YAAa,kBAAmB,mBAAoB,eAAgB,uBAEpN,IAAI+vB,EAAYljE,KAAKmyC,MAAM+wB,UACvB4B,EAAMlmD,EAAY,cAAgB,eACtC,MAAMmmD,EAAYlyD,GAA+B,YAApBoM,GAAiCjL,IAAahU,KAAKmyC,MAAM8wB,UAChF+B,EAA8B,UAApB/lD,SACT6xB,EAAWm0B,yBACXn0B,EAAW0L,eACX1L,EAAW4U,OAEd7yC,GACFnW,QAAQkvC,KAAK,gGAGf,IAAIs5B,EAAwBlxD,IAAahU,KAAKmyC,MAAM8wB,WAAa8B,GAAaC,EAC1EG,EAAiB7C,EAAoB8C,WAErCJ,IACFG,EAAiB7C,EAAoB+C,UAGvC,IAAI3X,EAAanxD,EAAW,WAAa,UACrC+oE,EAAU,CAAC,EACf,OAAoBhsE,EAAOsV,QAAQjR,cAAcokD,EAAaC,gBAAgBC,SAAU,MAAM,EAC5FpmC,QACAI,QACA29C,YACAC,wBACAjO,WACE,CAAC,KACH,IAAIgZ,GAAiBvzB,EAAYziC,QAAQ0vC,0BAA6Bt+C,KAAKukE,UAAU3Y,IAAY5sC,GAAoB66C,GAiB9G,CACDqJ,IAAc6B,IAChBO,EAAqB,YAAItP,EAAKpnD,QAAQytB,SAASpgB,GAAOJ,GAAO0pD,UAAmB,QAAE5O,OAAO,eAAe,iBAG1G,IAAI6O,EAAUxP,EAAKpnD,QAAQytB,SAASpgB,GAAOJ,GAAO0pD,UAAmB,QAAE5O,OAAOjJ,GAAY,oBAE1F,OADA4X,EAAyB,gBAAIE,EAO3BlsE,EAAOsV,QAAQjR,cAAc,MAAO,CAClC8R,WAAW,EAAIkiC,EAAY/iC,SAAS,qBAAsB,aAAaqN,IAAS,CAC9E,gCAAiC2C,EACjC,aAAcmmD,EACd,cAAexoE,EACf,WAAYyoE,EACZ,4BAA6Bp1D,GAC5BH,GACH4H,MAAOvd,OAAOo2C,OAAO,CAAC,EAAGo1B,EAASjuD,GAClCpa,IAAK2mB,GAAK5jB,KAAKykE,gBAAkB7gD,EACjCrnB,SAAUA,EACV23C,QAAU33C,OAA8BwG,EAAnB/C,KAAKogE,aACZ9mE,EAAOsV,QAAQjR,cAAc,OAAQ,CACnD8R,UAAW,YACXjU,OAAQwE,KAAK3D,MAAMJ,OAAS+D,KAAKmyC,MAAM8wB,UAAY,QAAU,cAG7DhwB,SAAU,EACVh2C,IAAK2mB,GAAK5jB,KAAK0iE,eAAiB9+C,EAChCwgD,QAASpkE,KAAKmkE,gBACd3nB,QAAUjgD,OAA8BwG,EAAnB/C,KAAKwlD,YAC1BE,OAASnpD,OAA6BwG,EAAlB/C,KAAKylD,YACxBzlD,KAAK3D,MAAMJ,OAAS+D,KAAKmyC,MAAM8wB,WAAajjE,KAAK3D,MAAMuhB,aAAcsnD,GAAsC5rE,EAAOsV,QAAQsiC,aAAai0B,GAE9I,CArDE,OAAoB7rE,EAAOsV,QAAQjR,cAAcmnE,EAAK70B,EAAS,CAC7DhzC,IAAK2mB,GAAK5jB,KAAK0iE,eAAiB9+C,EAChCnT,MAAOhB,EACPlT,WAAUA,GAAkB,KAC5BqT,QAAOA,GAAe,KACtBiD,UAASkyD,GAAmB,KAC5B5lD,QAAO6lD,GAAiB,KACxBlmD,WAAUA,GAAkB,KAC5B,aAAa+lD,GAA6B,KAC1C,mBAAoB/zB,EAAW20B,gBAC/BxpE,MAAO+D,KAAKmyC,MAAM8wB,YACjB,EAAIzsB,EAAc+B,kBAAkBzH,IAAchiC,GAAqBxV,EAAOsV,QAAQjR,cAAc,MAAO,CAC5GsR,KAAM,QACL,KAAK,EAAIylC,EAAM4B,WAAWxnC,EAAM,CACjC8H,KAAM,OAuCV,GAEJ,GAEC66B,EAAQzzC,UAAYzC,EAAcA,EAAc,CAAC,EAAG4mE,EAAWvzD,QAAQ5Q,WAAY,CAAC,EAAG,CACxF4mE,aAAcrqE,EAAWqU,QAAQ3Q,KAGjC4mE,mBAAoBtqE,EAAWqU,QAAQ3Q,KAIvCwnE,gBAAiBlrE,EAAWqU,QAAQ1Q,SAClCuzC,EAAQ1zC,aAAexC,EAAcA,EAAc,CAAC,EAAG4mE,EAAWvzD,QAAQ7Q,cAAe,CAAC,EAAG,CAC/F6mE,cAAc,IA/YqCpzB,EAgZjDE,KAAWF,EAEf35C,EAAA,QAAkB2qE,EAClBA,EAAe1kE,YAAc,8CCrd7BhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAYI25C,EAAQC,EAASC,EAZjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAQJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CARztBU,CAAwB,EAAQ,QAEzCmmD,EAAYjmD,EAAuB,EAAQ,QAI/C,SAASf,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAa1T,EAAQ,MAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAE3J,IAAIgkB,GAAY,EAAI+2B,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAAwBn4C,EAAOqnB,UACzG,iBAAAy0B,GACMp1C,KAAK3D,MAAMmT,WAEb6lC,uBAAsB,IAAMr1C,KAAKs1C,SAErC,CAEA,KAAAA,GACOt1C,KAAK3D,MAAME,UACdkkD,EAAU7xC,QAAQyyC,YAAYrhD,MAAMs1C,OAExC,CAEA,QAAA7jC,CAAS8P,GACHvhB,KAAK3D,MAAMoV,UACbzR,KAAK3D,MAAMoV,SAAS8P,EAAE/lB,OAAOS,MAAOslB,EAExC,CAEA,MAAAvS,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,UACJoT,EAAS,MACTG,EAAK,SACLrT,EAAQ,SACRyX,EAAQ,QACRnB,EAAO,SACPiM,EAAQ,UACRF,EAAS,gBACTK,GACEk0B,EACErC,EAnDV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAmDpdu1C,CAAyBoC,EAAa,CAAC,YAAa,QAAS,WAAY,WAAY,UAAW,WAAY,YAAa,oBAE5I,IAAI2xB,EAAMlmD,EAAY,WAAa,QACnC,MAAMmmD,EAAYlyD,GAA+B,YAApBoM,EAQ7B,cAPO6xB,EAAWthC,iBACXshC,EAAWm0B,kBAEdpyD,GACFnW,QAAQkvC,KAAK,gGAGKtyC,EAAOsV,QAAQjR,cAAcmnE,EAAK70B,EAAS,CAC7DlhC,KAAM,OACNU,WAAW,EAAIkiC,EAAY/iC,SAAS,qBAAsB,CACxD,gCAAiCgQ,EACjC,aAAcmmD,EACd,WAAgC,UAApB9lD,EACZ,4BAA6BrP,GAC5BH,GACHlT,SAAUA,EACVyX,SAAUA,EACV8K,SAAUA,EACV,eAAgBimD,GAAa,KAC7BpnD,aAAcmzB,EAAWnzB,eACxB,EAAIk0B,EAAgBjjC,SAASkiC,GAAa,CAC3Cr/B,SAAUzR,KAAKyR,SACfi0D,KAAM9mD,IAAchP,EAAQkhC,EAAW40B,KAAO,IAElD,GAECj0B,EAAQzzC,UAAY,CAErBwR,UAAWjV,EAAWqU,QAAQ3Q,KAG9BwR,UAAWlV,EAAWqU,QAAQ1Q,OAG9B3B,SAAUhC,EAAWqU,QAAQ3Q,KAG7B4U,QAAStY,EAAWqU,QAAQ3Q,KAG5B2gB,UAAWrkB,EAAWqU,QAAQ3Q,KAG9BynD,OAAQnrD,EAAWqU,QAAQjQ,KAG3B8S,SAAUlX,EAAWqU,QAAQjQ,KAG7B69C,QAASjiD,EAAWqU,QAAQjQ,KAG5Bif,YAAarjB,EAAWqU,QAAQ1Q,OAGhC0R,MAAOrV,EAAWqU,QAAQ3Q,KAG1B6gB,SAAUvkB,EAAWqU,QAAQ3Q,KAG7B+V,SAAUzZ,EAAWqU,QAAQ3Q,KAG7BghB,gBAAiB1kB,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,aACnD9E,EAAQ1zC,aAAe,CACxByR,WAAW,EACXjT,UAAU,EACVqT,OAAO,EACPoE,UAAU,EACVnB,SAAS,EACTiM,UAAU,GA3GoC0yB,EA4G7CE,KAAWF,EAEd35C,EAAA,QAAkB6nB,EAClBA,EAAU5hB,YAAc,0CC7JxBhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IA0BI25C,EAAQC,EAASC,EA1BjB+E,EAAqBj8C,EAAuB,EAAQ,QAEpDwhE,EAA2BxhE,EAAuB,EAAQ,QAE1Dm3C,EAAcn3C,EAAuB,EAAQ,QAE7Cw7D,EAAOx7D,EAAuB,EAAQ,QAEtCq3C,EAAkBr3C,EAAuB,EAAQ,QAEjD8nE,EAAsB,EAAQ,OAE9B/nE,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExCunD,EAAe,EAAQ,OAEvBogB,EAAa3nE,EAAuB,EAAQ,OAE5C62C,EAAc72C,EAAuB,EAAQ,QAQjD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAAS2B,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQd,OAAO8B,IAAS,GAAMC,SAAQ,SAAU5B,GAAO6B,EAAgBN,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQd,OAAO8B,IAASC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAErhB,SAASM,EAAgB7C,EAAKgB,EAAKgC,GAAiK,OAApJhC,KAAOhB,EAAOa,OAAOC,eAAed,EAAKgB,EAAK,CAAEgC,MAAOA,EAAOb,YAAY,EAAMc,cAAc,EAAMC,UAAU,IAAkBlD,EAAIgB,GAAOgC,EAAgBhD,CAAK,CAEhN,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,SAASogD,EAAmBC,EAAK58C,EAAS6D,EAAQg5C,EAAOC,EAAQhiD,EAAK66B,GAAO,IAAM,IAAIonB,EAAOH,EAAI9hD,GAAK66B,GAAU74B,EAAQigD,EAAKjgD,KAAO,CAAE,MAAOU,GAAwB,YAAfqG,EAAOrG,EAAgB,CAAMu/C,EAAKvV,KAAQxnC,EAAQlD,GAAiBiD,QAAQC,QAAQlD,GAAO6R,KAAKkuC,EAAOC,EAAW,CAExQ,SAAS0pB,EAAkB7/C,GAAM,OAAO,WAAc,IAAIjtB,EAAOmH,KAAMwT,EAAO9X,UAAW,OAAO,IAAIwD,SAAQ,SAAUC,EAAS6D,GAAU,IAAI+4C,EAAMj2B,EAAGxqB,MAAMzC,EAAM2a,GAAO,SAASwoC,EAAM//C,GAAS6/C,EAAmBC,EAAK58C,EAAS6D,EAAQg5C,EAAOC,EAAQ,OAAQhgD,EAAQ,CAAE,SAASggD,EAAOn4C,GAAOg4C,EAAmBC,EAAK58C,EAAS6D,EAAQg5C,EAAOC,EAAQ,QAASn4C,EAAM,CAAEk4C,OAAMj5C,EAAY,GAAI,CAAG,CAtBpY,EAAQ,OAER,EAAQ,OAsBR,MAAMw/D,EAAM5pE,OAAO2oB,SAAW3oB,OAAO2oB,QAAQ,OAS3C,EAAQ,MAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAE3J,IAAIskD,GAAe,EAAInvB,EAAmB7nC,UAAmB8iC,EAAQD,EAAU,cAA2B0wB,EAAWvzD,QACnH,WAAAxV,CAAYiD,GACV,IAAI+F,EAEJ2vC,MAAM11C,GACN+F,EAAQpC,KACRA,KAAK6lE,oBAAmCF,GAAkB,YACxD,GAAIpD,EAAIkB,KAAKqC,UAAyC,mBAAtBvD,EAAIkB,KAAKqC,SAAyB,CAChE,MAAMC,QAAkBxD,EAAIkB,KAAKqC,WAEjC1jE,EAAMmwC,SAAS,CACbwzB,aAEJ,CACF,IAEA/lE,KAAKyiE,aAAe,KACdziE,KAAK0iE,iBACP1iE,KAAK2iE,WAAahqE,OAAOovD,iBAAiB/nD,KAAK0iE,gBAAgBE,iBAAiB,eAChF5iE,KAAK6iE,SAAWlqE,OAAOovD,iBAAiB/nD,KAAK0iE,gBAAgBE,iBAAiB,aAC9E5iE,KAAK8iE,YAAcnqE,OAAOovD,iBAAiB/nD,KAAK0iE,gBAAgBE,iBAAiB,gBACjF5iE,KAAK0iE,eAAez+D,oBAAoB,SAAUjE,KAAKyiE,cACzD,EAGFziE,KAAK+iE,WAAa,KAChB/iE,KAAK0iE,eAAeptB,QACpBt1C,KAAK0iE,eAAez+D,oBAAoB,SAAUjE,KAAK+iE,WAAW,EAGpE/iE,KAAK2/C,OAAS,KACR3/C,KAAK0iE,iBACP1iE,KAAK0iE,eAAeptB,QACpBt1C,KAAK0iE,eAAevsC,SACpBn2B,KAAKgjE,SAAU,EACfhjE,KAAK0iE,eAAez+D,oBAAoB,SAAUjE,KAAK2/C,QACzD,EAGF3/C,KAAKmyC,MAAQ,CACX8wB,UAAW,GACXC,WAAW,EACXC,gBAAgB,EAChB4C,UAAW,SAEb/lE,KAAKojE,YAAc,IAAI1hD,IACvB1hB,KAAKqjE,aAAc,CACrB,CAEA,iBAAAjuB,GACMp1C,KAAK0iE,iBACP1iE,KAAK0iE,eAAepiE,iBAAiB,SAAUN,KAAKyiE,cAEhDziE,KAAK3D,MAAMmT,YAAcxP,KAAK3D,MAAME,UAEtCyD,KAAK0iE,eAAepiE,iBAAiB,SAAUN,KAAK2/C,SAKpD4iB,EAAIkB,MAAQlB,EAAIkB,KAAKnjE,kBAAyD,mBAA9BiiE,EAAIkB,KAAKnjE,mBAC3DN,KAAK6lE,sBACLtD,EAAIkB,KAAKnjE,iBAAiB,eAAgBN,KAAK6lE,qBAEnD,CAEA,kBAAAtC,GACE,SAAIvjE,KAAK3D,MAAMuhB,aAAgB5d,KAAK3D,MAAMJ,OAAU+D,KAAKmyC,MAAM8wB,UAKjE,CAEA,eAAAO,GAGExjE,KAAK0iE,eAAerrD,MAAMsrD,WAAa3iE,KAAK2iE,WAC5C3iE,KAAK0iE,eAAerrD,MAAMwrD,SAAW7iE,KAAK6iE,SAC1C7iE,KAAK0iE,eAAerrD,MAAMyrD,YAAc9iE,KAAK8iE,YAEzCP,EAAIkB,MAA0B,cAAlBlB,EAAIkB,KAAKt8D,KACnBnH,KAAKujE,uBACPvjE,KAAK0iE,eAAerrD,MAAMqsD,UAAY,SACtC1jE,KAAK0iE,eAAerrD,MAAMssD,cAAgB,OAEnCpB,EAAIkB,OAASlB,EAAIkB,KAAKuC,UAA8B,gBAAlBzD,EAAIkB,KAAKt8D,QAChDnH,KAAKujE,uBAEe,aAAlBhB,EAAIkB,KAAKt8D,MACXnH,KAAK0iE,eAAerrD,MAAMsrD,WAAa,kBACvC3iE,KAAK0iE,eAAerrD,MAAMssD,cAAgB,OACf,gBAAlBpB,EAAIkB,KAAKt8D,KAClBnH,KAAK0iE,eAAerrD,MAAMqsD,UAAY,UAEtC1jE,KAAK0iE,eAAerrD,MAAMqsD,UAAY,SACtC1jE,KAAK0iE,eAAerrD,MAAMwrD,SAAW,SAInB,gBAAlBN,EAAIkB,KAAKt8D,OACXnH,KAAK0iE,eAAerrD,MAAMssD,cAAgB,OAG5C3jE,KAAK0iE,eAAerrD,MAAM4uD,YAAc,MAEnCjmE,KAAK3D,MAAMuT,OAA2B,gBAAlB2yD,EAAIkB,KAAKt8D,OAChCnH,KAAK0iE,eAAerrD,MAAMssD,cAAgB,OAGhD,CAEA,kBAAA9rB,GAKE,GAJI73C,KAAK0iE,gBAAmD,SAAjC1iE,KAAK0iE,eAAeoB,UAC7C9jE,KAAKwjE,mBAGc,IAAjBxjE,KAAKgjE,QAAkB,CACzB,MAAMe,EAAK/jE,KAAKgkE,sBAEZD,IACF/jE,KAAKqjE,aAAc,EACnBrjE,KAAK0iE,eAAepiE,iBAAiB,SAAUN,KAAK+iE,aAGjD/iE,KAAKqjE,aAAgBU,IACxB/jE,KAAK0iE,eAAepiE,iBAAiB,SAAUN,KAAK+iE,YACpD/iE,KAAKqjE,aAAc,EAEvB,CACF,CAEA,KAAA/tB,IACOt1C,KAAK3D,MAAME,UAAYyD,KAAK0iE,gBAC/B1iE,KAAK0iE,eAAeptB,OAExB,CAEA,mBAAA0uB,GACE,IAAI/8C,EAASjnB,KAAKojE,YAAYn8C,SAE9B,IAAK,IAAIhuB,KAAOguB,EACd,GAAIhuB,EAAI+gE,QACN,OAAO,EAIX,OAAO,CACT,CAEA,oBAAAriB,GACM4qB,EAAIkB,MAAQlB,EAAIkB,KAAKx/D,qBAA+D,mBAAjCs+D,EAAIkB,KAAKx/D,qBAC9Ds+D,EAAIkB,KAAKx/D,oBAAoB,eAAgBjE,KAAK6lE,qBAGhD7lE,KAAK3D,MAAMmT,YAAcxP,KAAK3D,MAAME,UAAYyD,KAAK0iE,gBACvD1iE,KAAK0iE,eAAez+D,oBAAoB,SAAUjE,KAAK2/C,OAE3D,CAEA,QAAAluC,CAAS8P,GACPvhB,KAAKuyC,SAAS,CACZ0wB,UAAW1hD,EAAE/lB,OAAOS,QAGlB+D,KAAK3D,MAAMoV,UACbzR,KAAK3D,MAAMoV,SAAS8P,EAAE/lB,OAAOS,MAAOslB,EAExC,CAEA,WAAA6+C,CAAY7+C,GACVvhB,KAAK0iE,eAAeptB,QACpBt1C,KAAKgjE,SAAU,EAEXhjE,KAAK3D,MAAM63C,SACbl0C,KAAK3D,MAAM63C,QAAQ3yB,EAEvB,CAEA,WAAAikC,CAAYjkC,GACVvhB,KAAKuyC,SAAS,CACZ2wB,WAAW,IAGTljE,KAAK3D,MAAMmgD,SACbx8C,KAAK3D,MAAMmgD,QAAQj7B,GAGrBvhB,KAAKgjE,SAAU,CACjB,CAEA,UAAAvd,CAAWlkC,GACTvhB,KAAKuyC,SAAS,CACZ2wB,WAAW,IAGTljE,KAAK3D,MAAMqpD,QACb1lD,KAAK3D,MAAMqpD,OAAOnkC,GAGpBvhB,KAAKgjE,SAAU,CACjB,CAEA,uBAAAkB,GACE,IAAIj9C,EAASjnB,KAAKojE,YAAYn8C,SAE9B,IAAK,IAAIhuB,KAAOguB,EACVhuB,EAAIuO,UACNvO,EAAIuO,UAGV,CAEA,eAAA28D,CAAgB5iD,GAYd,GAXIvhB,KAAK3D,MAAM+nE,SACbpkE,KAAK3D,MAAM+nE,QAAQ7iD,GAGrBvhB,KAAKkkE,0BACL3iD,EAAE/lB,OAAOS,MAAQslB,EAAE/lB,OAAO6oE,UAEL,IAAjB9iD,EAAEtnB,IAAI0B,SACR4lB,EAAE/lB,OAAOS,OAASslB,EAAEtnB,KAIf,IADCsnB,EAAEqvC,SAGFrvC,EAAE/lB,OAAOS,OAASslB,EAAE/lB,OAAOS,MAAMN,OAAS,EAAG,CAC/C,IAAI2oE,EAAS/iD,EAAE/lB,OAAOS,MACtBslB,EAAE/lB,OAAOS,MAAQqoE,EAAO13D,UAAU,EAAG03D,EAAO3oE,OAAS,EACvD,CAKJqE,KAAKyR,SAAS8P,EAChB,CAEA,aAAAmqC,CAAcE,GACRA,GAAW5rD,KAAKojE,aAClBpjE,KAAKojE,YAAY19C,OAAOkmC,EAAQmO,WAEpC,CAEA,SAAAwK,CAAU3Y,GAER,OADA5rD,KAAKwkE,iBAAiB5Y,GACW,IAA1B5rD,KAAKojE,YAAYxsD,IAC1B,CAEA,gBAAA4tD,CAAiB5Y,GACf,IAAK5rD,KAAKykE,gBACR,OAGF,MAAMC,EAA8B1kE,KAAKykE,gBAAgBtS,wBAEzD,GAA2C,IAAvCuS,EAA4BnpB,QAAsD,IAAtCmpB,EAA4BpyD,OAIxEs5C,EAAS,CACPA,EAAQxtD,KAAK47D,UAAW,EAAIgC,EAAyBptD,SAAS81D,EAA6B9Y,EAAQxtD,KAAK8zD,cAC1GlyD,KAAKojE,YAAY/oE,IAAIuxD,EAAQmO,WAAYnO,EAAQxtD,MAEjD4B,KAAK0rD,cAAcE,GAGrB,MAAM+Y,EAAsB3kE,KAAKojE,YAAY1pE,IAAIkyD,EAAQmO,aACnD,eACJoJ,GACEnjE,KAAKmyC,MAELwyB,IAAwBxB,GAC1BnjE,KAAKuyC,SAAS,CACZ4wB,eAAgBwB,GAGtB,CACF,CAEA,cAAAuB,CAAe7pE,GACb,IAAI8pE,EAAa,GACbC,EAAO,GAEP/pE,EAAMJ,QACRkqE,EAAa9pE,EAAMJ,MAAMN,QAGvBU,EAAM4mE,WAAa5mE,EAAM4mE,UAAUtnE,OAASwqE,IAC9CA,EAAa9pE,EAAM4mE,UAAUtnE,QAK/B,IAAK,IAAIF,EAAI,EAAGA,EAAI0qE,EAAY1qE,IAC9B2qE,GAAQ,IAGV,OAAOA,GAAc/pE,EAAMuhB,WAC7B,CAEA,qBAAAsnD,CAAsB7oE,GACpB,SAAIA,EAAM2X,WAAahU,KAAKmyC,MAAM8wB,YAAc5mE,EAAMJ,OAASI,EAAMwW,SAAWxW,EAAM4iB,gBAKxF,CAEA,MAAAjQ,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,UACJoT,EAAS,MACT4H,EAAK,MACLzH,EAAK,SACLrT,EAAQ,SACRyX,EAAQ,QACRnB,EAAO,SACPiM,EAAQ,UACRF,EAAS,gBACTK,EAAe,iBACfD,EAAgB,aAChB4lD,GACEzxB,EACErC,EA9VV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CA8Vpdu1C,CAAyBoC,EAAa,CAAC,YAAa,QAAS,QAAS,WAAY,WAAY,UAAW,WAAY,YAAa,kBAAmB,mBAAoB,iBAE5L,IAAI+vB,EAAYljE,KAAKmyC,MAAM+wB,UACvB4B,EAAMlmD,EAAY,WAAa,QACnC,MAAMmmD,EAAYlyD,GAA+B,YAApBoM,GAAiCjL,IAAahU,KAAKmyC,MAAM8wB,UAChF+B,EAA8B,UAApB/lD,SACT6xB,EAAWthC,iBACXshC,EAAWm0B,yBACXn0B,EAAW0L,eACX1L,EAAW4U,OAEd7yC,GACFnW,QAAQkvC,KAAK,gGAGf,IAAIu5B,EAAiB7C,EAAoB8C,WAErCJ,IACFG,EAAiB7C,EAAoB+C,UAGvC,IAAI3X,EAAanxD,EAAW,WAAa,UACrC+oE,EAAU,CAAC,EACf,OAAoBhsE,EAAOsV,QAAQjR,cAAcokD,EAAaC,gBAAgBC,SAAU,MAAM,EAC5FpmC,QACAI,MAAOoqD,EACPzM,YACAC,wBACAjO,WACE,CAAC,KACH,MAAM,UACJma,GACE/lE,KAAKmyC,MACT,IAAIl2B,EAAQoqD,EAGE,UAAVpqD,GAAqB,CAAC,OAAQ,WAAWtV,SAASo/D,KACpD9pD,EAAQ,QAGNinD,IAAc6B,IAChBO,EAAqB,YAAItP,EAAKpnD,QAAQytB,SAASpgB,GAAOJ,GAAO0pD,UAAmB,QAAE5O,OAAO,eAAe,iBAG1G,IAAI6O,EAAUxP,EAAKpnD,QAAQytB,SAASpgB,GAAOJ,GAAO0pD,UAAmB,QAAE5O,OAAOjJ,GAAY,oBAE1F,OADA4X,EAAyB,gBAAIE,EAI3BlsE,EAAOsV,QAAQjR,cAAc,MAAO,CAClC8R,WAAW,EAAIkiC,EAAY/iC,SAAS,qBAAsB,aAAaqN,IAAS,CAC9E,gCAAiC2C,EACjC,aAAcmmD,EACd,cAAexoE,EACf,WAAYyoE,EACZ,4BAA6Bp1D,GAC5BH,GACH4H,MAAOvd,OAAOo2C,OAAO,CAAC,EAAGo1B,EAASjuD,GAClCpa,IAAK2mB,GAAK5jB,KAAKykE,gBAAkB7gD,EACjCrnB,SAAUA,EACV23C,QAAU33C,OAA8BwG,EAAnB/C,KAAKogE,cACzBwE,GAAiBvzB,EAAYziC,QAAQ0vC,0BAA6Bt+C,KAAKukE,UAAU3Y,IAAY5sC,GAAoB66C,GAwBpHvgE,EAAOsV,QAAQjR,cAAc,OAAQ,CACnC8R,UAAW,YACXjU,OAAQwE,KAAK3D,MAAMJ,OAAS+D,KAAKmyC,MAAM8wB,UAAY,QAAU,cAG7DhwB,SAAU,EACVh2C,IAAK2mB,GAAK5jB,KAAK0iE,eAAiB9+C,EAChCwgD,QAASpkE,KAAKmkE,gBACd3nB,QAAUjgD,OAA8BwG,EAAnB/C,KAAKwlD,YAC1BE,OAASnpD,OAA6BwG,EAAlB/C,KAAKylD,YACJ,aAApBzlD,KAAK3D,MAAM0S,KAAsB/O,KAAK3D,MAAMJ,OAAS+D,KAAKmyC,MAAM8wB,WAAajjE,KAAK3D,MAAMuhB,YAAc5d,KAAKkmE,eAAelmE,KAAK3D,QAlCwB/C,EAAOsV,QAAQjR,cAAcmnE,EAAK70B,EAAS,CACnMlhC,KAAM,OACNU,UAAW,YACXxS,IAAK2mB,GAAK5jB,KAAK0iE,eAAiB9+C,EAChCvM,MAAO,CACLivD,WAAY,OACZb,gBAAiB,WAEnBjpB,QAAUjgD,OAA8BwG,EAAnB/C,KAAKwlD,YAC1BE,OAASnpD,OAA6BwG,EAAlB/C,KAAKylD,WACzBxpD,MAAO+D,KAAKmyC,MAAM8wB,UAClB1mE,SAAUA,EACVyX,SAAUA,EACV8K,SAAUA,EACV,eAAgBimD,GAAa,KAC7BpnD,aAAcmzB,EAAWnzB,eACxB,EAAIk0B,EAAgBjjC,SAASkiC,GAAa,CAC3Cr/B,SAAUzR,KAAKyR,SACfi0D,KAAM9mD,IAAchP,EAAQkhC,EAAW40B,KAAO,KAgB2F1lE,KAAKklE,sBAAsBllE,KAAK3D,QAAuB/C,EAAOsV,QAAQsiC,aAAai0B,GAC/N,GAEL,GAEC1zB,EAAQzzC,UAAYzC,EAAcA,EAAc,CAAC,EAAG4mE,EAAWvzD,QAAQ5Q,WAAY,CAAC,EAAG,CACxF4mE,aAAcrqE,EAAWqU,QAAQ3Q,OAC/BwzC,EAAQ1zC,aAAexC,EAAcA,EAAc,CAAC,EAAG4mE,EAAWvzD,QAAQ7Q,cAAe,CAAC,EAAG,CAC/F6mE,cAAc,IA5amCpzB,EA6a/CE,KAAWF,EAEf35C,EAAA,QAAkB+tE,EAClBA,EAAa9nE,YAAc,6CCpf3BhE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQutE,WAAavtE,EAAQwtE,cAAW,EAExC,IAEgCpsE,EAF5BK,GAE4BL,EAFI,EAAQ,SAESA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAEvF,MAAMosE,EAAwB/rE,EAAOsV,QAAQjR,cAAc,MAAO,CAChE5E,GAAI,YACJwiD,OAAQ,KACRvL,QAAS,YACT19B,MAAO,MACOhZ,EAAOsV,QAAQjR,cAAc,OAAQ,CACnD0Z,MAAO,CACLo/C,KAAM,oBAERhzC,EAAG,iJAGL5rB,EAAQwtE,SAAWA,EAEnB,MAAMD,EAA0B9rE,EAAOsV,QAAQjR,cAAc,MAAO,CAClE5E,GAAI,cACJwiD,OAAQ,KACRvL,QAAS,YACT19B,MAAO,MACOhZ,EAAOsV,QAAQjR,cAAc,OAAQ,CACnD0Z,MAAO,CACLo/C,KAAM,oBAERhzC,EAAG,2UAGL5rB,EAAQutE,WAAaA,gCCnCrBtrE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETnC,OAAOC,eAAelC,EAAS,UAAW,CACxCuD,YAAY,EACZzB,IAAK,WACH,OAAO4sE,EAAe33D,OACxB,IAEF9U,OAAOC,eAAelC,EAAS,QAAS,CACtCuD,YAAY,EACZzB,IAAK,WACH,OAAO4sE,EAAe33D,OACxB,IAGF,IAEgC3V,EAF5BstE,GAE4BttE,EAFY,EAAQ,SAECA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,iCClBvF,IAEgCA,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAIvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,SAAS,IAAM,EAAQ,SAAe,IAAM,EAAQ,uCCNhGr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkB2uE,EAClB3uE,EAAQ4uE,aAAe5uE,EAAQ6uE,MAAQ7uE,EAAQ+qD,mBAAgB,EAE/D,IAAIzE,EAAe3jD,EAAuB,EAAQ,QAE9Ck8C,EAAUl8C,EAAuB,EAAQ,QAEzCm3C,EAAcn3C,EAAuB,EAAQ,QAE7CmsE,EAAensE,EAAuB,EAAQ,QAE9Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDosE,EAAcpsE,EAAuB,EAAQ,QAE7CkoD,EAAQ,EAAQ,OAEhBnoD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExCqsE,EAAiBrsE,EAAuB,EAAQ,QAEpD,SAASy1C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,SAASlB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,MAAM0pD,EAAe,CACnB,QAASnoD,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,OAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,OAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,OAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,OAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,OAAyBoU,QACjE,QAASpU,EAAuB,EAAQ,QAAyBoU,SAUjE,EAAQ,OAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAC3J,MAAMg0C,GAAgB,EAAIF,EAAMG,kBAAkBF,GAClD9qD,EAAQ+qD,cAAgBA,EACxB,MAAM8jB,EAAQ,CACZ/pE,MAAOwhD,EAAavvC,QACpBsoC,QAASiH,EAAavvC,QACtBstC,KAAM0qB,EAAYh4D,QAClBk4D,QAASD,EAAej4D,SAE1B/W,EAAQ6uE,MAAQA,EAChB,MAAMD,EAAe,QAGrB,SAASD,EAAM9jE,GACb,IAAI,QACFmN,EAAO,SACPhS,EAAQ,SACRkpE,EAAQ,QACRzvD,EAAO,SACP0vD,EAAQ,UACRv3D,EAAS,QACTw3D,EAAO,YACPC,EAAW,cACXC,GACEzkE,EACAouC,EApEN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAoExdu1C,CAAyBruC,EAAM,CAAC,UAAW,WAAY,WAAY,UAAW,WAAY,YAAa,UAAW,cAAe,kBAE9I4tC,EAAOo2B,EAAM72D,GACb2K,EAAOs2B,EAAWt2B,MAAQisD,EAY9B,OAAoBntE,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC/Dz1B,KAAMA,EACN/K,WAAW,EAAIkiC,EAAY/iC,SAAS,iBAAkB,CACpD,CAAC,mBAAqBiB,GAAUA,GAC/BJ,KACF,EAAIoiC,EAAgBjjC,SAASkiC,IAAcR,GAAqBh3C,EAAOsV,QAAQjR,cAAc2yC,EAAM,CACpG15B,KAAM,KACNnH,UAAW,0BACXqH,IAAK8rC,EAAc/yC,KACJvW,EAAOsV,QAAQjR,cAAc,MAAO,CACnD8R,UAAW,uBACGnW,EAAOsV,QAAQjR,cAAc,MAAO,CAClD8R,UAAW,0BACV5R,GAAWqpE,GAA4B5tE,EAAOsV,QAAQjR,cAAc+4C,EAAQ9nC,QAAS,CACtFmB,MAAOm3D,EACPt3D,OAAO,EACPC,QAAS,iBACTqkC,QA3BmB,IAAI1gC,KACnBwzD,GACFA,KAAYxzD,GAGV2zD,GAAiB7vD,GACnBA,KAAW9D,EACb,KAqBGuzD,GAAyBztE,EAAOsV,QAAQjR,cAAc,MAAO,CAChE8R,UAAW,0BACGnW,EAAOsV,QAAQjR,cAAc,SAAU,CACrD,aAAcilD,EAAc,SAC5BnzC,UAAW,yFACXykC,QAAS58B,GACKhe,EAAOsV,QAAQjR,cAAcgpE,EAAa/3D,QAAS,CACjEgI,KAAM,SAEV,CAxDA/e,EAAQ4uE,aAAeA,EA0DvBD,EAAMxoE,UAAY,CAEhBH,SAAUtD,EAAWqU,QAAQrQ,KAG7BsR,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,QAAS,UAAW,OAAQ,YAG/DwwB,SAAUxsE,EAAWqU,QAAQ3Q,KAG7BipE,YAAa3sE,EAAWqU,QAAQ1Q,OAGhCipE,cAAe5sE,EAAWqU,QAAQ3Q,KAGlCqZ,QAAS/c,EAAWqU,QAAQjQ,KAG5BqoE,SAAUzsE,EAAWqU,QAAQjQ,KAM7BsoE,QAAS1sE,EAAWqU,QAAQtQ,sCCtK9BxE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBA,EAAQuvE,cAAW,EAErC,IAkBI51B,EAlBAiF,EAAqBj8C,EAAuB,EAAQ,QAEpDm3C,EAAcn3C,EAAuB,EAAQ,QAE7CmsE,EAAensE,EAAuB,EAAQ,QAE9Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDlB,EAASgB,EAAwB,EAAQ,QAEzCu3D,EAAwBr3D,EAAuB,EAAQ,QAEvD6sE,EAAS7sE,EAAuB,EAAQ,QAExC8sE,EAAShtE,EAAwB,EAAQ,QAM7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAEzL,SAASc,EAAwBrB,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAEtuB,SAASY,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAV5T,EAAQ,OAgBR,MACM0rE,EAAW,CACfG,QAAS,UACTC,KAAM,QAER3vE,EAAQuvE,SAAWA,EAEnB,IAAIK,GAAW,EAAIhxB,EAAmB7nC,SAAS4iC,EAAS,cAAuBl4C,EAAOqnB,UACpF,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GAEN2D,KAAK0nE,aAAe,MAClB,EAAI7V,EAAsBjjD,SAAS5O,KAAK2nE,UAAU,EAAK,CAE3D,CAEA,iBAAAvyB,GACE,GAAIp1C,KAAK2nE,SAAU,CACjBhvE,OAAO2H,iBAAiB,SAAUN,KAAK0nE,cACvC,IAAIT,EAAUjnE,KAAK3D,MAAM4qE,QAErBA,IACEA,EAAU,IACZA,EAvBY,KA0BdjnE,KAAK4nE,eAA6B,IAAZX,EAAgB,KAAO,IAAII,EAAOz4D,QAAQ5O,KAAK6nE,cAAc1nE,OAAQ8mE,GAE/F,CACF,CAEA,oBAAAtvB,IACE,EAAIka,EAAsBjjD,SAAS5O,KAAK2nE,UAAU,GAClDhvE,OAAOsL,oBAAoB,SAAUjE,KAAK0nE,cAC1C1nE,KAAK4nE,eAAiB,IACxB,CAEA,aAAAtzB,CAAchxC,GAEU,KAAlBA,EAAMstD,UACR7uC,SAAS+lD,eAAe,eAAer4D,WAAY,EAAIkiC,EAAY/iC,SAAS,0NAEhF,CAEA,WAAAm5D,CAAYzkE,GAEY,KAAlBA,EAAMstD,UACR7uC,SAAS+lD,eAAe,eAAer4D,WAAY,EAAIkiC,EAAY/iC,SAAS,kOAC5E5O,KAAKgoE,gBAET,CAEA,YAAAC,CAAa3kE,GACXye,SAAS+lD,eAAe,eAAer4D,WAAY,EAAIkiC,EAAY/iC,SAAS,wHAC9E,CAEA,aAAAi5D,GACM7nE,KAAK4nE,gBAAkB5nE,KAAK3D,MAAMib,SACpCtX,KAAK3D,MAAMib,QAAQ8vD,EAASG,QAEhC,CAEA,aAAAS,GACMhoE,KAAK3D,MAAMib,SACbtX,KAAK3D,MAAMib,QAAQ8vD,EAASI,KAEhC,CAEA,MAAAx4D,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,QACJwT,EAAO,SACPhS,EAAQ,SACRkpE,EAAQ,QACRzvD,EAAO,SACP0vD,EAAQ,UACRv3D,EAAS,YACTy3D,EAAW,cACXC,EAAa,KACbr4D,GACEqkC,EACErC,EArFV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAqFpdu1C,CAAyBoC,EAAa,CAAC,UAAW,WAAY,WAAY,UAAW,WAAY,YAAa,cAAe,gBAAiB,SAEjK,IAAI7C,EAAOxhC,GAAQw4D,EAAOZ,MAAM72D,GAC5B2K,EAAOs2B,EAAWt2B,MAAQ8sD,EAAOb,aAYrC,OAAoBntE,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC/DhzC,IAAKkI,GAAKnF,KAAK2nE,SAAWxiE,EAC1BqV,KAAMA,EACN/K,WAAW,EAAIkiC,EAAY/iC,SAAS,iBAAkB,CACpD,CAAC,mBAAqBiB,GAAUA,GAC/BJ,KACF,EAAIoiC,EAAgBjjC,SAASkiC,IAAcR,GAAqBh3C,EAAOsV,QAAQjR,cAAc2yC,EAAM,CACpG15B,KAAM,KACNnH,UAAW,0BACXqH,KAAK,EAAIwwD,EAAO1kB,eAAe/yC,KAChBvW,EAAOsV,QAAQjR,cAAc,MAAO,CACnD8R,UAAW,uBACGnW,EAAOsV,QAAQjR,cAAc,MAAO,CAClD8R,UAAW,0BACV5R,GAAWqpE,GAA4B5tE,EAAOsV,QAAQjR,cAAc,MAAO,CAC5Es1C,SAAU,IACVz4B,KAAM,SACN/K,WAAW,EAAIkiC,EAAY/iC,SAAS,yEAA0E,kBAC9GslC,QA5BmB,IAAI1gC,KACnBwzD,GACFA,KAAYxzD,GAGV2zD,GAAiB7vD,GACnBA,KAAW9D,EACb,GAsBC0zD,IAAeH,GAAyBztE,EAAOsV,QAAQjR,cAAc,MAAO,CAC7E8R,UAAW,0BACGnW,EAAOsV,QAAQjR,cAAc,MAAO,CAClD5E,GAAI,cACJk6C,SAAU,IACVz4B,KAAM,SACNkrC,OAAQ1lD,KAAKioE,aACb1zB,UAAWv0C,KAAKs0C,cAChB8vB,QAASpkE,KAAK+nE,YACdt4D,WAAW,EAAIkiC,EAAY/iC,SAAS,yFAA0F,iCAC9HslC,QAASl0C,KAAKgoE,eACA1uE,EAAOsV,QAAQjR,cAAcgpE,EAAa/3D,QAAS,CACjEgI,KAAM,SAEV,KAEI46B,EAEN35C,EAAA,QAAkB4vE,EAClBA,EAASzpE,UAAYspE,EAAO14D,QAAQ5Q,sCC3KpClE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQ2hE,kBAwBR,SAA2BvmD,GACzBpb,EAAQqwE,gBAAkBA,EAAkBj1D,EAE5C,IAAK,IAAI61C,KAAaqf,EAAiBlhD,SACrC6hC,EAAUvW,SAAS,CACjBt/B,aAGN,EA/BApb,EAAQqwE,gBAAkBrwE,EAAQswE,sBAAmB,EAkBrD,MAAMA,EAAmB,IAAIzmD,IAC7B7pB,EAAQswE,iBAAmBA,EAC3B,IAAID,EAAkB,aACtBrwE,EAAQqwE,gBAAkBA,gCCzB1B,IAEgCjvE,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,WAAW,IAAM,EAAQ,SAAoB,IAAM,EAAQ,QAAiB,IAAM,EAAQ,uCCpBtIr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI85C,EAAcn3C,EAAuB,EAAQ,QAE7ClB,EAASkB,EAAuB,EAAQ,QAExC4tE,EAAW5tE,EAAuB,EAAQ,OAI9C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAJ5T,EAAQ,OAWR,MAAM2sE,EAAkB,CACtBC,QAAS,UACTpsB,KAAM,OACNv/C,MAAO,WACPmqE,QAAS,YAGX,MAAMyB,UAAqBH,EAASx5D,QAClC,MAAAI,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,QACJwT,EAAO,SACPhS,EAAQ,UACR4R,EAAS,UACTwD,EAAY,QAAO,KACnBH,EAAI,GACJ/Z,EAAKiH,KAAKwoE,WACRr1B,EACErC,EAvBV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAuBpdu1C,CAAyBoC,EAAa,CAAC,UAAW,WAAY,YAAa,YAAa,OAAQ,OAInH,OAAoB75C,EAAOsV,QAAQjR,cAAc,aAAcsyC,EAAS,CACtEhzC,IAAKkI,GAAKnF,KAAKgyD,WAAa7sD,EAC5BsL,OAAO,EAAIkhC,EAAY/iC,SAAS,wBAAwBqE,IAAaxD,GACrE1W,GAAIA,EACJ8W,QAASw4D,EAAgBx4D,GACzBoD,UAAWA,EACXH,KAAMA,GACLg+B,GAAajzC,EAClB,EAIFhG,EAAA,QAAkB0wE,+BCxDlBzuE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI85C,EAAcn3C,EAAuB,EAAQ,QAE7Cs5C,EAAYt5C,EAAuB,EAAQ,QAE3Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAIJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CAJztBU,CAAwB,EAAQ,QAE7C,SAASb,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAa1T,EAAQ,OAGuI,EAAQ,OACT,EAAQ,MACJ,EAAQ,OACT,EAAQ,OAE3J,MAAM+sE,UAAgBnvE,EAAOqnB,UAC3B,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GACN2D,KAAKwoE,WAAY,EAAI10B,EAAUllC,UACjC,CAEA,MAAAI,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,QACJwT,EAAO,SACPhS,EAAQ,UACR4R,EAAS,UACTwD,EAAS,KACTH,EAAI,GACJ/Z,EAAKiH,KAAKwoE,WACRr1B,EACErC,EAnCV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAmCpdu1C,CAAyBoC,EAAa,CAAC,UAAW,WAAY,YAAa,YAAa,OAAQ,OAEnH,OAAoB75C,EAAOsV,QAAQjR,cAAc,OAAQsyC,EAAS,CAChExgC,WAAW,EAAIkiC,EAAY/iC,SAAS,mBAAoB,qBAAqBiB,IAAW,qBAAqBoD,EAAUmV,MAAM,KAAK,KAAM,CACtI,UAAWtV,GACVrD,GACH1W,GAAIA,IACH,EAAI84C,EAAgBjjC,SAASkiC,IAA2Bx3C,EAAOsV,QAAQjR,cAAc,OAAQ,CAC9F8R,UAAW,0BACV5R,GAAWmC,KAAK+1D,YACrB,CAEA,SAAAA,GACE,OAAoBz8D,EAAOsV,QAAQjR,cAAc,OAAQ,CACvD8R,UAAW,uBACX4H,MAAOrX,KAAK3D,MAAM+zD,YAEtB,EAIFv4D,EAAA,QAAkB4wE,EAClBA,EAAQzqE,UAAY,CAIlBiV,UAAW1Y,EAAWqU,QAAQ2nC,MAAM,CAAC,SAAU,MAAO,OAAQ,UAK9D1mC,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,UAAW,OAAQ,UAAW,UAKjE9mC,UAAWlV,EAAWqU,QAAQ1Q,OAK9BnF,GAAIwB,EAAWqU,QAAQ1Q,OAKvBsc,KAAMjgB,EAAWqU,QAAQ2nC,MAAM,CAAC,YAKhCzjC,KAAMvY,EAAWqU,QAAQ3Q,MAE3BwqE,EAAQ1qE,aAAe,CACrB8R,QAAS,UACToD,UAAW,QACXH,MAAM,EACN0H,KAAM,yCCnHR1gB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAI85C,EAAcn3C,EAAuB,EAAQ,QAE7Cw7D,EAAOx7D,EAAuB,EAAQ,QAEtCq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDlB,EAASkB,EAAuB,EAAQ,QAExCq3D,EAAwBr3D,EAAuB,EAAQ,QAEvDunD,EAAe,EAAQ,OAEvBqmB,EAAW5tE,EAAuB,EAAQ,OAE9C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAM5T,SAASgtE,EAAY9xD,EAAM3D,GACzB,MAAkB,UAAdA,EACK,KAAY,EAAP2D,UAAiBA,KAAQA,OAAUA,KAAQA,MAGvC,SAAd3D,EACK,WAAW2D,KAAQA,QAAWA,KAAQA,MAG7B,QAAd3D,EACK,WAAW2D,KAAQA,OAAUA,MAASA,MAG7B,WAAd3D,EACK,OAAc,EAAP2D,OAAcA,MAASA,OAAUA,KAAQA,WADzD,CAGF,CAGA,MAAM+xD,EAAa,CACjBL,QAAS,UACTpsB,KAAM,OACNv/C,MAAO,WACPmqE,QAAS,YAGX,MAAM8B,UAAmBR,EAASx5D,QAChC,WAAAxV,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKk2D,kBAAoB,MACtD,EAAIrE,EAAsBjjD,SAAS5O,KAAKgyD,YAAY,EAAMhyD,KAAK+gD,KAAK,EACnE/gD,KAAKm2D,iBAAmB,MACzB,EAAItE,EAAsBjjD,SAAS5O,KAAKgyD,YAAY,EAAM,EACzDhyD,KAAK+gD,KAAO,KACT/gD,KAAKgyD,aACPhyD,KAAKgyD,WAAW36C,MAAM6jC,QAAU,OAClC,EACCxJ,CACL,CAEA,iBAAA0D,GACMp1C,KAAKgyD,YACPhyD,KAAKgyD,WAAW1xD,iBAAiB,SAAUN,KAAKk2D,kBAEpD,CAEA,oBAAAve,GACM33C,KAAKgyD,YACPhyD,KAAKgyD,WAAW/tD,oBAAoB,SAAUjE,KAAKk2D,mBAGrDl2D,KAAKm2D,kBACP,CAEA,SAAAJ,GACE,MAAM,QACJlmD,EAAO,UACPoD,EAAS,WACTm9C,GACEpwD,KAAK3D,MAGT,OAAoB/C,EAAOsV,QAAQjR,cAAcokD,EAAaC,gBAAgBC,SAAU,MAAM,EAC5FpmC,QACAI,SACE,CAAC,IAGL3iB,EAAOsV,QAAQjR,cAAc,MAAO,CAClC8R,UAAW,uBACX4H,MAAO,CACL/E,MAAOsR,EACP23B,OAAQ33B,EACR2yC,OAAQ,OACRE,KAAMT,EAAKpnD,QAAQytB,SAASpgB,GAAOJ,GAAOgtD,QAAQF,EAAW94D,IAAU8mD,OAAO/nD,QAAQ,aACtF8J,KAAM03C,EAAaA,EAAW13C,KAAO,KACrCE,IAAKw3C,EAAaA,EAAWx3C,IAAM,OAEvBtf,EAAOsV,QAAQjR,cAAc,OAAQ,CACnD8lB,EAAGilD,EAnBK,EAmBUz1D,OAEtB,CAEA,MAAAjE,GACE,MAAMmkC,EAAcnzC,KAAK3D,OACnB,QACJwT,EAAO,SACPhS,EAAQ,UACR4R,EAAS,UACTwD,EAAS,KACTH,EAAI,GACJ/Z,EAAKiH,KAAKwoE,WACRr1B,EACErC,EAlGV,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAkGpdu1C,CAAyBoC,EAAa,CAAC,UAAW,WAAY,YAAa,YAAa,OAAQ,OAEnH,OAAoB75C,EAAOsV,QAAQjR,cAAc,OAAQsyC,EAAS,CAChEhzC,IAAKkI,GAAKnF,KAAKgyD,WAAa7sD,EAC5BsK,WAAW,EAAIkiC,EAAY/iC,SAAS,mBAAoB,qBAAqBiB,IAAW,qBAAqBoD,EAAUmV,MAAM,KAAK,KAAM,CACtI,UAAWtV,GACVrD,GACH1W,GAAIA,IACH,EAAI84C,EAAgBjjC,SAASkiC,IAA2Bx3C,EAAOsV,QAAQjR,cAAc,OAAQ,CAC9F8R,UAAW,0BACV5R,GAAWmC,KAAK+1D,YACrB,EAIFl+D,EAAA,QAAkB+wE,gCCxIlB,IAEgC3vE,EAF5Bo4C,GAE4Bp4C,EAFS,EAAQ,SAEIA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvFnB,EAAOD,QAAUw5C,EAAYziC,QAAQunB,OAAO,QAAQ,IAAM,EAAQ,SAAiB,IAAM,EAAQ,uCCpBjGr8B,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIixE,EAAQ,EAAQ,OAEhB9S,EAAOx7D,EAAuB,EAAQ,QAEtCq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAQJ,SAAiCL,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAO,GAAY,OAARA,GAA+B,iBAARA,GAAmC,mBAARA,EAAsB,MAAO,CAAE2V,QAAS3V,GAAS,IAAIO,EAAQC,IAA4B,GAAID,GAASA,EAAME,IAAIT,GAAQ,OAAOO,EAAMG,IAAIV,GAAQ,IAAIW,EAAS,CAAC,EAAOC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAA0B,IAAK,IAAIC,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAOP,EAAwBC,OAAOE,yBAAyBf,EAAKgB,GAAO,KAAUG,IAASA,EAAKT,KAAOS,EAAKC,KAAQP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAAiE,OAA7DL,EAAOgV,QAAU3V,EAASO,GAASA,EAAMa,IAAIpB,EAAKW,GAAkBA,CAAQ,CARztBU,CAAwB,EAAQ,QAEzCynD,EAAe,EAAQ,OAI3B,SAAStoD,IAA6B,GAAuB,mBAAZkB,QAAwB,OAAO,KAAM,IAAInB,EAAQ,IAAImB,QAAqE,OAA1DlB,EAA2B,WAAc,OAAOD,CAAO,EAAUA,CAAO,CAIzL,SAASgB,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAgB5T,SAASqtE,EAAe/hD,GACtB,SAAS2I,EAAKpM,GACZ,OAAO,GAAK,EAAIne,KAAK4jE,KAAKhiD,EAAIzD,IAAM,EACtC,CAEA,IAAI0lD,EAAa,GAAMt5C,EAAK,GAC5B,OAAO,SAAUpM,GAUnB,IAAeqa,EARX,OAQWA,EATDra,EAAG,EAAG,EAAhBA,EAUKne,KAAK8F,IAAI9F,KAAKm/B,IAAI3G,EAVP,GAAH,GACNqrC,EAAat5C,EAAK,EAAIpM,EAAI,GAAK,EACxC,CACF,CAUA,SAAS2lD,EAAUC,EAAQC,EAAmBC,GACxCA,EAAqBD,IACvBC,GAAsB,KAGxB,IAAIC,EAAmBD,EAAqBD,EAE5C,GAAIE,GAAoB,IAEtB,MAAO,KAAc,EAATH,KAAcA,OAAYA,KAAUA,aAAkBA,OAAYA,KAAUA,WAAyB,EAATA,KAAcA,IAGxH,IAAII,EAAa,EAAInkE,KAAKokE,IAAMJ,EAAoB,KAChDK,EAAc,EAAIrkE,KAAKokE,IAAMH,EAAqB,KAClDK,GAAatkE,KAAKokE,GAAK,IAK3B,MAAO,KAJEL,EAASA,EAAS/jE,KAAKukE,IAAIJ,EAAaG,MACxCP,EAASA,EAAS/jE,KAAKwkE,IAAIL,EAAaG,QAGvBP,KAAUA,OAAYG,GAAoB,IAAM,EAAI,OAFrEH,EAASA,EAAS/jE,KAAKukE,IAAIF,EAAcC,MACzCP,EAASA,EAAS/jE,KAAKwkE,IAAIH,EAAcC,IAEpD,CAhEA,EAAQ,OAuFR,MAAMG,EAAsB,CAC1B7pD,EAAG,CACD8pD,YAAa,QACbxuD,cAAe,QACf67B,eAAgB,yBAElBp3B,EAAG,CACD+pD,YAAa,SACbxuD,cAAe,SACf67B,eAAgB,0BAElBr3B,EAAG,CACDgqD,YAAa,QACbxuD,cAAe,QACf67B,eAAgB,0BAIpB,MAAM4yB,UAAgBzwE,EAAOqnB,UAC3B,WAAAvnB,CAAYiD,GACV01C,MAAM11C,GAEN2D,KAAKgqE,KAAO,KACVhqE,KAAK24D,OAAStjB,uBAAsB,KAClC,IAAIp5C,GAAS+D,KAAKiqE,WAAa,KAAO,IACtCjqE,KAAKuyC,SAAS,CACZt2C,UAEF+D,KAAKgqE,MAAM,GACX,EAGJhqE,KAAK84D,gBAAkB,KACjB94D,KAAK24D,SACP5R,qBAAqB/mD,KAAK24D,QAC1B34D,KAAK24D,OAAS,KAChB,EAGF34D,KAAK24D,OAAS,IAChB,CAEA,QAAAsR,GACE,OAAIjqE,KAAK3D,OAAS2D,KAAK3D,MAAMJ,MACpB+D,KAAK3D,MAAMJ,MAGhB+D,KAAKmyC,OAASnyC,KAAKmyC,MAAMl2C,MACpB+D,KAAKmyC,MAAMl2C,MAGb,CACT,CAEA,iBAAAm5C,GACEp1C,KAAKgqE,MACP,CAEA,oBAAAryB,GACE33C,KAAK84D,iBACP,CAEA,MAAA9pD,GACE,IAYIu6D,EAAYE,EAZZt2B,EAAcnzC,KAAK3D,OACnB,KACFua,EAAO,IAAG,UACVnH,EAAS,cAGT6L,GAAgB,EAAI,SACpB4uD,GAAW,EAAK,QAChBr6D,GAAUyL,EAAgBwtD,EAAMqB,cAAgBrB,EAAMsB,cACpDj3B,EACArC,EAtJR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAsJtdu1C,CAAyBoC,EAAa,CAAC,OAAQ,YAAa,gBAAiB,WAAY,YAGtGl3C,EAAQ+D,KAAKiqE,WAEbI,EAA4B,mBAAZx6D,EAA+B,MAAQ,MAa3D,OAXIyL,GAAiBzL,IAAYi5D,EAAMsB,aAGpCb,EAAYE,GAxGnB,SAAsBa,GAOpB,IAAIxvC,EAAmC,IAA3BiuC,EAAe,EAAfA,CAAkBuB,GAC1BC,EAAkD,IAAzCxB,EAAe,IAAfA,EAAqBuB,EAAQ,IAAO,GAUjD,OARIxvC,EAAQ,IACVA,GAAS,GAGPyvC,EAASzvC,IACXyvC,GAAU,GAGL,CAACzvC,EAAOyvC,EACjB,CAqFkCC,CAAavuE,EAAQ,MAIjDstE,EAAa,EACbE,EAAczpE,KAAK3D,MAAMJ,MAAQ,IAAM,KAGrB3C,EAAOsV,QAAQjR,cAAcokD,EAAaC,gBAAgBC,SAAU,MAAM,EAC5FpmC,QACAI,SACE,CAAC,KACH,MAAMwuD,EAASzU,EAAKpnD,QAAQytB,SAASpgB,GAAOJ,GAAO6uD,aAAab,EAAoBjzD,GAAM/G,IACpF86D,EAAqBF,EAAO9T,OAAO/nD,QAAQ,eAC3Cg8D,EAAoBH,EAAO9T,OAAO/nD,QAAQ,oBAChD,IAAIi8D,EAAc7/D,SAASy/D,EAAOK,WAAW,eAAe/+D,MAAM,GAAI,GAAI,IAItEo9D,EAFQn+D,SAASy/D,EAAOK,WAAWx4D,MAAMvG,MAAM,GAAI,GAAI,IAEtC,EAAI8+D,EACrBE,EAAc3lE,KAAKoF,MAAMqgE,EAAc,EAAI,GAC3CG,EAAe,iBAAiBnB,EAAoBjzD,GAAqB,gBAC7E,OAAoBtd,EAAOsV,QAAQjR,cAAc,MAAO,CACtD8R,UAAW,yBAAyBu7D,KAAgBv7D,KAAay6D,EAAW,gCAAkC,MAChG5wE,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC3DD,SA/JqBuL,EA+JQkvB,EAAOK,WAAWvvB,OA/JlBjpC,EA+J0Bm4D,EAAOK,WAAWx4D,MA9JxE,OAASipC,EAAO/iD,QAAQ,OAAQ,IAAM,IAAM8Z,EAAM9Z,QAAQ,OAAQ,KA+JnEiX,UAAWu7D,IAGV,EAAIn5B,EAAgBjjC,SAASkiC,IAA2Bx3C,EAAOsV,QAAQjR,cAAc,OAAQ,CAC9F8lB,EAAGylD,EAAUC,EAAQ,EAAG,KACxBvS,OAAQ+T,EACRN,cAAeA,EACf5T,KAAM,cACNoU,YAAaA,EACb9R,UAAW,aAAagS,MAAgBA,OACzBzxE,EAAOsV,QAAQjR,cAAc,OAAQ,CACpD8lB,EAAGylD,EAAUC,EAAQI,EAAYE,GACjC7S,OAAQgU,EACRnU,KAAM,cACNoU,YAAaA,EAAc,EAC3B9R,UAAW,aAAagS,MAAgBA,SA/KhD,IAA6BxvB,EAAQjpC,CAgL3B,GAER,EAIFza,EAAA,QAAkBkyE,EAClBA,EAAQ/rE,UAAY,CAElBksE,SAAU3vE,EAAWqU,QAAQ3Q,KAG7BwR,UAAWlV,EAAWqU,QAAQ1Q,OAM9Bod,cAAe/gB,EAAWqU,QAAQ3Q,KAGlC2Y,KAAMrc,EAAWqU,QAAQ1Q,OAGzBjC,MAAO1B,EAAWqU,QAAQtQ,OAK1BuR,QAAStV,EAAWqU,QAAQ1Q,sCClQ9BpE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkBA,EAAQsyE,cAAgBtyE,EAAQuyE,iBAAc,EAEhE,IAAIz4B,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAI5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAJ5T,EAAQ,OAiBN,EAAQ,OAGuI,EAAQ,MACT,EAAQ,MACJ,EAAQ,OACT,EAAQ,OAC3J,MAAM0uE,EAAc,cACpBvyE,EAAQuyE,YAAcA,EACtB,MAAMD,EAAgB,gBACtBtyE,EAAQsyE,cAAgBA,EAExB,MAAMc,UAAa3xE,EAAOsV,QAAQ+R,UAChC,MAAA3R,GACE,IAiBIk8D,EAGAC,EApBAh4B,EAAcnzC,KAAK3D,OACnB,MACFJ,EAAQ,EAAC,KACT2a,EAAO,IAAG,cACV0E,GAAgB,EAAI,SACpB4uD,GAAW,EAAK,UAChBz6D,EAAS,QACTI,GACEsjC,EACArC,EAlCR,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAkCtdu1C,CAAyBoC,EAAa,CAAC,QAAS,OAAQ,gBAAiB,WAAY,YAAa,YAS/Gi4B,EAAoB,CAAC,EACrBC,EAAoB,CAAC,EAsBzB,OAnBIx7D,IAAYu6D,GAAev6D,IAAYs6D,GACzCztE,QAAQkvC,KAAK,QAAQ/7B,kFAGnBA,IAAYu6D,GAAgB9uD,IAC9Brf,EAAQmJ,KAAKm/B,IAAIn/B,KAAK8F,KAAKjP,EAAO,GAAI,KACtCkvE,EAAYlvE,EAERA,EAAQ,GAAKA,GAAS,IACxBivE,EAAejvE,EAAQ,GAAK,IAAnB,IACTmvE,EAAkBrS,UAAY,UAAYmS,EAAQ,OAClDG,EAAkBtS,UAAY,mBACrB98D,EAAQ,KACjBivE,GAAgBjvE,EAAQ,IAAM,GAAK,IAA1B,IACTmvE,EAAkBrS,UAAY,eAC9BsS,EAAkBtS,UAAY,UAAYmS,EAAQ,SAIlC5xE,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC/DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,wBAAyB,CAC3D,uCAAwCiB,IAAYs6D,GAAiB7uD,GAAiBzL,IAAYu6D,EAClG,+BAAyC,MAATxzD,EAChC,+BAAyC,MAATA,EAChC,wCAAqD,mBAAZ/G,EACzC,gCAAiCq6D,GAChCz6D,GACH+K,KAAM,cACN,gBAAiB2wD,EACjB,gBAAiB,EACjB,gBAAiB,MAChB,EAAIt5B,EAAgBjjC,SAASkiC,IAA2Bx3C,EAAOsV,QAAQjR,cAAc,MAAO,CAC7F8R,UAAW,gCACInW,EAAOsV,QAAQjR,cAAc,MAAO,CACnD8R,UAAW,+BACGnW,EAAOsV,QAAQjR,cAAc,MAAO,CAClD8R,UAAW,mCACGnW,EAAOsV,QAAQjR,cAAc,MAAO,CAClD8R,UAAW,qCACX4H,MAAO+zD,GACO9xE,EAAOsV,QAAQjR,cAAc,MAAO,CAClD8R,UAAW,iCACMnW,EAAOsV,QAAQjR,cAAc,MAAO,CACrD8R,UAAW,mCACGnW,EAAOsV,QAAQjR,cAAc,MAAO,CAClD8R,UAAW,qCACX4H,MAAOg0D,GACO/xE,EAAOsV,QAAQjR,cAAc,MAAO,CAClD8R,UAAW,kCAEf,EAIF5X,EAAA,QAAkBozE,EAClBA,EAAKjtE,UAAY,CAEfksE,SAAU3vE,EAAWqU,QAAQ3Q,KAG7BwR,UAAWlV,EAAWqU,QAAQ1Q,OAM9Bod,cAAe/gB,EAAWqU,QAAQ3Q,KAGlC2Y,KAAMrc,EAAWqU,QAAQ1Q,OAGzBjC,MAAO1B,EAAWqU,QAAQtQ,OAK1BuR,QAAStV,EAAWqU,QAAQ2nC,MAAM,CAAC,kDC/HrCz+C,EAAOD,QAAU,EAAjB,qCCbAA,EAAA,QAAkByzE,EAElB,IAAI35B,EAAcn3C,EAAuB,EAAQ,QAE7Cq3C,EAAkBr3C,EAAuB,EAAQ,QAEjDD,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAqB5T,SAAS4vE,EAAK5oE,GACZ,IAAI,SACF7E,EAAQ,UACR4R,GACE/M,EACAouC,EAxBN,SAAkCl1C,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAAkE3B,EAAKwB,EAAnED,EAEzF,SAAuCI,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAFhN83C,CAA8B13C,EAAQw3C,GAAuB,GAAIt5C,OAAOkB,sBAAuB,CAAE,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GAAS,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IAAOxB,EAAMs5C,EAAiB93C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,GAAkBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KAAgBuB,EAAOvB,GAAO2B,EAAO3B,GAAQ,CAAE,OAAOuB,CAAQ,CAwBxdu1C,CAAyBruC,EAAM,CAAC,WAAY,cAE7D,OAAoBpJ,EAAOsV,QAAQjR,cAAc,MAAOsyC,EAAS,CAC/DxgC,WAAW,EAAIkiC,EAAY/iC,SAAS,gBAAiBa,KACpD,EAAIoiC,EAAgBjjC,SAASkiC,IAAcjzC,EAChD,CAlBE,EAAQ,MAGuI,EAAQ,OACT,EAAQ,OACJ,EAAQ,OACT,EAAQ,OAc3JytE,EAAKxtE,YAAc,OACnBwtE,EAAKttE,UAAY,CAEfyR,UAAWlV,EAAWqU,QAAQ1Q,OAG9Bsc,KAAMjgB,EAAWqU,QAAQ2nC,MAAM,CAAC,OAAQ,QAAS,aAAc,SAAU,yBC3C3E,SAAUg1B,GAER,GAAKA,EAAL,CAIA,IAAIC,EAAkB,CACpB,MACA,UACA,aACA,YACA,YACA,OACA,MACA,SACA,WACA,QACA,IACA,SAGA,KACA,QACA,OACA,OACA,OAEEC,EAAmB,CACrB,OACA,OACA,iBACA,QACA,QACA,SACA,WACA,SACA,MACA,OACA,MACA,QAEEC,GAAgB,EAChBrvC,EAAWkvC,EAAII,uBAAuB,cAsC1CJ,EAAIjrE,iBAAiB,WApCrB,SAA0BgD,GACpBA,EAAMsoE,SAAWtoE,EAAMqrD,QAAUrrD,EAAMuoE,UAAmD,IAAxCL,EAAgBnnC,QAAQ/gC,EAAMrJ,OAGpFyxE,GAAgB,GAEZH,EAAI9hB,eACJ8hB,EAAI9hB,gBAAkB8hB,EAAI39D,MACI,aAA9B29D,EAAI9hB,cAAc/wD,SACc,UAA9B6yE,EAAI9hB,cAAc/wD,UACoC,IAAtD+yE,EAAiBpnC,QAAQknC,EAAI9hB,cAAc16C,OAC/Cw8D,EAAI9hB,cAAcqiB,UAAUnoC,IAAI,cAEpC,IAuBkD,GAClD4nC,EAAIjrE,iBAAiB,aAtBrB,WACEorE,GAAgB,EAEhB,IAAK,IAAIjwE,EAAI,EAAGA,EAAI4gC,EAAS1gC,OAAQF,IACnC4gC,EAAS5gC,GAAGqwE,UAAUziB,OAAO,aAGjC,IAesD,GACtDkiB,EAAIjrE,iBAAiB,SAdrB,SAAwBgD,GACtB,IAAIwoE,EAAYxoE,EAAM9H,OAAOswE,UACzBA,GAAaJ,GACfI,EAAUnoC,IAAI,aAElB,IAS8C,GAC9C4nC,EAAIjrE,iBAAiB,QARrB,SAAuBgD,GACrB,IAAIwoE,EAAYxoE,EAAM9H,OAAOswE,UAC7BA,GAAaA,EAAUziB,OAAO,aAChC,IAK4C,EA/E5C,CAgFD,CApFD,CAoFqB,oBAAX1wD,YAAyBoK,EAAYgf,sCC7D/C,SAASgqD,EAAWvwE,GAElB,IAAIT,OAAOgI,EAyBX,MAvBuB,oBAAZipE,SAAsD,mBAApBA,QAAQpxE,QACnDG,EAAOixE,QAAQpxE,QAAQY,EAAOnC,YAE9B0B,EAAOjB,OAAOoN,oBAAoB1L,EAAOnC,WAEG,mBAAjCS,OAAOkB,wBAChBD,EAAOA,EAAKuH,OAAOxI,OAAOkB,sBAAsBQ,EAAOnC,cAI3D0B,EAAKc,SAAQ,SAAU5B,GAErB,GAAY,gBAARA,EAAJ,CAIA,IAAIuF,EAAa1F,OAAOE,yBAAyBwB,EAAOnC,UAAWY,GAGnC,mBAArBuF,EAAWvD,OACpBnC,OAAOC,eAAeyB,EAAOnC,UAAWY,EAAKgyE,EAAYzwE,EAAQvB,EAAKuF,GANxE,CAQF,IACOhE,CACT,CAOA,SAASywE,EAAYzwE,EAAQvB,EAAKuF,GAChC,IAAIsmB,EAAKtmB,EAAWvD,MAEpB,GAAkB,mBAAP6pB,EACT,MAAM,IAAI3f,MAAM,kEAAoE2f,GAMtF,IAAIomD,GAAmB,EAEvB,MAAO,CACLhwE,cAAc,EACdvC,IAAK,WACH,GAAIuyE,GAAoBlsE,OAASxE,EAAOnC,WAAa2G,KAAK9F,eAAeD,GACvE,OAAO6rB,EAGT,IAAIqmD,EAAUrmD,EAAG3lB,KAAKH,MAQtB,OAPAksE,GAAmB,EACnBpyE,OAAOC,eAAeiG,KAAM/F,EAAK,CAC/BgC,MAAOkwE,EACPjwE,cAAc,EACdC,UAAU,IAEZ+vE,GAAmB,EACZC,CACT,EAEJ,CArFAryE,OAAOC,eAAelC,EAAS,aAA/B,CACEoE,OAAO,IAETpE,EAAA,QAEA,WACE,IAAK,IAAIu0E,EAAO1wE,UAAUC,OAAQ6X,EAAOtO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3E74D,EAAK64D,GAAQ3wE,UAAU2wE,GAGzB,OAAoB,IAAhB74D,EAAK7X,OACAowE,EAAWzwE,WAAMyH,EAAWyQ,GAE5By4D,EAAY3wE,WAAMyH,EAAWyQ,EAExC,EAuEA1b,EAAOD,QAAUA,EAAiB,sCClGlC,IAAIy0E,EAAoB,WAIxB,EAAQ,QAKRz0E,EAAUC,EAAOD,QAAUy0E,GAC3B,QAAqBz0E,6BCJrB,SAAS00E,EAAS9mC,EAAS+mC,EAASC,GAChCzsE,KAAKylC,QAAWA,EAChBzlC,KAAKwsE,QAAWA,EAChBxsE,KAAKysE,SAAWA,CACpB,CA2IA,SAASC,EAAa3zE,GAClBiH,KAAKjH,GAAKA,CACd,CAUA,SAAS4zE,EAAa5zE,EAAI6zE,EAAYnoE,EAAQ1D,EAAS0rE,GACnDzsE,KAAKjH,GAAaA,EAClBiH,KAAK4sE,WAAaA,EAClB5sE,KAAKyE,OAAaA,EAClBzE,KAAKe,QAAaA,EAClBf,KAAKysE,SAAaA,CACtB,CAWA,SAASI,EAAmB9zE,EAAI0L,EAAQqoE,EAAc5uE,GAClD8B,KAAKjH,GAAeA,EACpBiH,KAAKyE,OAAeA,EACpBzE,KAAK8sE,aAAeA,EACpB9sE,KAAK9B,OAAeA,CACxB,CAUA,SAAS6uE,EAAah0E,EAAIgI,GACtBf,KAAKjH,GAAUA,EACfiH,KAAKe,QAAUA,CACnB,WAhMewrE,EAQfA,EAASlzE,UAAU2zE,QAAU,SAAUC,GAKnC,OAJAjtE,KAAKktE,YAAqB,GAC1BltE,KAAKmtE,cAAqB,KAC1BntE,KAAKotE,mBAAqB,KAEnBptE,KAAKqtE,eAAeJ,EAC/B,EAEAV,EAASlzE,UAAUg0E,eAAiB,SAAUJ,GAC1C,IAAMA,GAAoB,yBAAbA,EAAIl+D,KACb,MAAM,IAAI5I,MAAM,sDAGpB,IAGI1K,EAAG6rB,EAAKlF,EAHRia,EAAW4wC,EAAI5wC,SACfkF,EAAW,GAIf,IAAK9lC,EAAI,EAAG6rB,EAAM+U,EAAS1gC,OAAQF,EAAI6rB,EAAK7rB,GAAK,EAG7C,QAFA2mB,EAAUia,EAAS5gC,IAEHsT,MACZ,IAAK,qBACDwyB,EAAQlmC,KAAK2E,KAAKstE,mBAAmBlrD,IACrC,MAEJ,IAAK,kBACDmf,EAAQlmC,KAAK2E,KAAKutE,gBAAgBnrD,IAClC,MAEJ,QACI,MAAM,IAAIjc,MAAM,8CAI5B,OAAOo7B,CACX,EAEAgrC,EAASlzE,UAAUi0E,mBAAqB,SAAUlrD,GAI9C,OAAIpiB,KAAKmtE,eAAiB,cAAcrkD,KAAK1G,EAAQnmB,QAG5C+D,KAAKotE,qBACNptE,KAAKotE,mBAAqB,IAAInoC,KAAKuoC,aAAaxtE,KAAKylC,UAGlD,IAAIonC,EACH7sE,KAAKmtE,cAAcp0E,GACnBiH,KAAKmtE,cAAc3jD,OAAO/kB,OAC1BzE,KAAKotE,mBACLhrD,EAAQnmB,QAIbmmB,EAAQnmB,MAAMzD,QAAQ,OAAQ,IACzC,EAEA+zE,EAASlzE,UAAUk0E,gBAAkB,SAAUnrD,GAC3C,IAAIoH,EAASpH,EAAQoH,OAErB,IAAKA,EACD,OAAO,IAAIkjD,EAAatqD,EAAQrpB,IAGpC,IAGIgI,EAHAyrE,EAAWxsE,KAAKwsE,QAChB/mC,EAAWzlC,KAAKylC,QAChBgnC,EAAWzsE,KAAKysE,SAGpB,OAAQjjD,EAAOza,MACX,IAAK,eAED,OADAhO,EAAUyrE,EAAQluE,OAAOkrB,EAAOnS,OACzB,CACHte,GAAQqpB,EAAQrpB,GAChBywB,OAAQ,IAAIyb,KAAKuoC,aAAa/nC,EAAS1kC,GAASyoB,QAGxD,IAAK,aAED,OADAzoB,EAAUyrE,EAAQljE,KAAKkgB,EAAOnS,OACvB,CACHte,GAAQqpB,EAAQrpB,GAChBywB,OAAQ,IAAIyb,KAAKC,eAAeO,EAAS1kC,GAASyoB,QAG1D,IAAK,aAED,OADAzoB,EAAUyrE,EAAQh+D,KAAKgb,EAAOnS,OACvB,CACHte,GAAQqpB,EAAQrpB,GAChBywB,OAAQ,IAAIyb,KAAKC,eAAeO,EAAS1kC,GAASyoB,QAG1D,IAAK,eAED,OADAzoB,EAAUf,KAAKytE,eAAerrD,GACvB,IAAIuqD,EACPvqD,EAAQrpB,GAAIywB,EAAOkkD,QAASlkD,EAAO/kB,OAAQ1D,EAAS0rE,GAG5D,IAAK,eAED,OADA1rE,EAAUf,KAAKytE,eAAerrD,GACvB,IAAI2qD,EAAa3qD,EAAQrpB,GAAIgI,GAExC,QACI,MAAM,IAAIoF,MAAM,qDAE5B,EAEAomE,EAASlzE,UAAUo0E,eAAiB,SAAUrrD,GAC1C,IAUI3mB,EAAG6rB,EAAK5e,EAVR8gB,EAAcpH,EAAQoH,OACtBzoB,EAAcyoB,EAAOzoB,QACrB4sE,EAAc,CAAC,EAUnB,IALA3tE,KAAKktE,YAAY7xE,KAAK2E,KAAKmtE,eAC3BntE,KAAKmtE,cAAgC,iBAAhB3jD,EAAOza,KAA0BqT,EAAU,KAI3D3mB,EAAI,EAAG6rB,EAAMvmB,EAAQpF,OAAQF,EAAI6rB,EAAK7rB,GAAK,EAI5CkyE,GAHAjlE,EAAS3H,EAAQtF,IAGEynC,UAAYljC,KAAKqtE,eAAe3kE,EAAOzM,OAM9D,OAFA+D,KAAKmtE,cAAgBntE,KAAKktE,YAAYxlD,MAE/BimD,CACX,EAQAjB,EAAarzE,UAAUmwB,OAAS,SAAUvtB,GACtC,OAAKA,GAA0B,iBAAVA,EAIG,iBAAVA,EAAqBA,EAAQg/B,OAAOh/B,GAHvC,EAIf,EAUA0wE,EAAatzE,UAAUu0E,UAAY,SAAU3xE,GACzC,IAAI8E,EAAUf,KAAKe,QAKnB,OAHaA,EAAQ,IAAM9E,IACnB8E,EAAQf,KAAKysE,SAASxwE,EAAQ+D,KAAKyE,OAAQzE,KAAK4sE,cAEvC7rE,EAAQmuB,KAC7B,EASA29C,EAAmBxzE,UAAUmwB,OAAS,SAAUvtB,GAC5C,IAAIqC,EAAS0B,KAAK8sE,aAAatjD,OAAOvtB,EAAQ+D,KAAKyE,QAEnD,OAAOzE,KAAK9B,OACH1F,QAAQ,cAAe,KAAO8F,GAC9B9F,QAAQ,OAAQ,IAC7B,EAOAu0E,EAAa1zE,UAAUu0E,UAAY,SAAU3xE,GACzC,IAAI8E,EAAUf,KAAKe,QACnB,OAAOA,EAAQ9E,IAAU8E,EAAQmuB,KACrC,+EC5LA,SAAS2+C,EAAc/sE,EAAS2kC,EAAS+mC,GAErC,IAAIS,EAAyB,iBAAZnsE,EACT+sE,EAAcC,QAAQhtE,GAAWA,EAEzC,IAAMmsE,GAAoB,yBAAbA,EAAIl+D,KACb,MAAM,IAAIjP,UAAU,kDAKxB0sE,EAAUxsE,KAAK+tE,cAAcF,EAAcrB,QAASA,oBAGrCxsE,KAAM,UAAY,CAAC/D,MAAO+D,KAAKguE,eAAevoC,KAK7D,IAAIgnC,EAAWzsE,KAAKiuE,wBAAwBjuE,KAAKkuE,SAC7C3sC,EAAWvhC,KAAKmuE,gBAAgBlB,EAAKxnC,EAAS+mC,EAASC,GAIvD2B,EAAgBpuE,KACpBA,KAAKwpB,OAAS,SAAUvC,GACtB,IACE,OAAOmnD,EAAcC,QAAQ9sC,EAASta,EACxC,CAAE,MAAO1F,GACP,MAAIA,EAAE+sD,WACE,IAAInoE,MACR,qCAAwCob,EAAE+sD,WAA1C,qCACuCxtE,EAAU,KAG7CygB,CAEV,CACF,CACJ,WA3CessD,mBAgDAA,EAAe,UAAW,CACrCzyE,YAAY,EAEZa,MAAO,CACHqC,OAAQ,CACJ,SAAY,CACR+Y,MAAO,YAGX,QAAW,CACPA,MAAO,YAIf/N,KAAM,CACF,MAAS,CACL8tB,MAAO,UACPC,IAAO,UACPH,KAAO,WAGX,OAAU,CACNE,MAAO,QACPC,IAAO,UACPH,KAAO,WAGX,KAAQ,CACJE,MAAO,OACPC,IAAO,UACPH,KAAO,WAGX,KAAQ,CACJI,QAAS,OACTF,MAAS,OACTC,IAAS,UACTH,KAAS,YAIjB1oB,KAAM,CACF,MAAS,CACLipB,KAAQ,UACRC,OAAQ,WAGZ,OAAW,CACPD,KAAQ,UACRC,OAAQ,UACRC,OAAQ,WAGZ,KAAQ,CACJF,KAAc,UACdC,OAAc,UACdC,OAAc,UACdC,aAAc,SAGlB,KAAQ,CACJH,KAAc,UACdC,OAAc,UACdC,OAAc,UACdC,aAAc,8BAOfi2C,EAAe,iBAAkB,CAAC5xE,MAAO,EAAF,UAAY,yBACnD4xE,EAAe,kBAAmB,CAAC5xE,MAAO,SAAUmC,GAC/D,IAAMA,IAAQA,EAAKie,OACf,MAAM,IAAIlW,MACN,4EAKR0nE,EAAcU,eAAenwE,EAAKie,OAAO4P,eAAiB7tB,CAC9D,qBAGeyvE,EAAe,UAAW,CAAC5xE,MAAO,EAAF,QAASmP,yBAIzCyiE,EAAe,gBAAiB,CAC3CzyE,YAAY,EACZe,UAAY,EACZF,WAAY8G,IAGhB8qE,EAAcx0E,UAAUksC,gBAAkB,WAEtC,MAAO,CACHlpB,OAAQrc,KAAKkuE,QAErB,EAEAL,EAAcx0E,UAAU80E,gBAAkB,SAAUlB,EAAKxnC,EAAS+mC,EAASC,GAEvE,OADe,IAAI,EAAF,QAAWhnC,EAAS+mC,EAASC,GAC9BO,QAAQC,EAC5B,EAEAY,EAAcx0E,UAAU40E,wBAA0B,SAAU5xD,GAMxD,IALA,IAAIyqB,EAAa+mC,EAAcU,eAC3BnwE,EAAa0oC,EAAWzqB,EAAO4P,eAI5B7tB,GAAM,CACT,GAAIA,EAAKowE,mBACL,OAAOpwE,EAAKowE,mBAGhBpwE,EAAOA,EAAKqwE,cAAgB3nC,EAAW1oC,EAAKqwE,aAAaxiD,cAC7D,CAEA,MAAM,IAAI9lB,MACN,iFAC+BkW,EAEvC,EAEAwxD,EAAcx0E,UAAUg1E,QAAU,SAAU9sC,EAASta,GACjD,IACIxrB,EAAG6rB,EAAKonD,EAAM31E,EAAIkD,EAAO6H,EADzBb,EAAS,GAGb,IAAKxH,EAAI,EAAG6rB,EAAMia,EAAQ5lC,OAAQF,EAAI6rB,EAAK7rB,GAAK,EAI5C,GAAoB,iBAHpBizE,EAAOntC,EAAQ9lC,IAGf,CAQA,GAHA1C,EAAK21E,EAAK31E,IAGJkuB,IAAU,EAAF,IAAM9sB,KAAK8sB,EAAQluB,GAG/B,MAFA+K,EAAM,IAAIqC,MAAM,iCAAmCpN,IAC/Cu1E,WAAav1E,EACX+K,EAGR7H,EAAQgrB,EAAOluB,GAKX21E,EAAK3tE,QACLkC,GAAUjD,KAAKquE,QAAQK,EAAKd,UAAU3xE,GAAQgrB,GAE9ChkB,GAAUyrE,EAAKllD,OAAOvtB,EAnB1B,MAFIgH,GAAUyrE,EAyBlB,OAAOzrE,CACX,EAEA4qE,EAAcx0E,UAAU00E,cAAgB,SAAUY,EAAUnC,GACxD,IACIz9D,EAAM6/D,EADNC,EAAgB,CAAC,EAGrB,IAAK9/D,KAAQ4/D,EACJ,EAAD,IAAKx0E,KAAKw0E,EAAU5/D,KAExB8/D,EAAc9/D,GAAQ6/D,EAAa,EAAF,UAAYD,EAAS5/D,IAElDy9D,GAAW,EAAF,IAAMryE,KAAKqyE,EAASz9D,aACtB6/D,EAAYpC,EAAQz9D,KAInC,OAAO8/D,CACX,EAEAhB,EAAcx0E,UAAU20E,eAAiB,SAAUvoC,GACxB,iBAAZA,IACPA,EAAU,CAACA,IAIfA,GAAWA,GAAW,IAAInjC,OAAOurE,EAAcllC,eAE/C,IACIltC,EAAG6rB,EAAKwnD,EAAa1wE,EADrB0oC,EAAa+mC,EAAcU,eAQ/B,IAAK9yE,EAAI,EAAG6rB,EAAMme,EAAQ9pC,OAAQF,EAAI6rB,EAAK7rB,GAAK,EAG5C,IAFAqzE,EAAcrpC,EAAQhqC,GAAGwwB,cAAc7D,MAAM,KAEtC0mD,EAAYnzE,QAAQ,CAEvB,GADAyC,EAAO0oC,EAAWgoC,EAAYnqE,KAAK,MAI/B,OAAOvG,EAAKie,OAGhByyD,EAAYpnD,KAChB,CAGJ,IAAIihB,EAAgBlD,EAAQ/d,MAC5B,MAAM,IAAIvhB,MACN,2DACAs/B,EAAQ9gC,KAAK,MAAQ,4BAA8BgkC,EAE3D,wCCpRe,CAAC,OAAS,KAAK,mBAAqB,SAAUriC,EAAEyoE,GAAK,IAAInrD,EAAEqX,OAAO30B,GAAG8hB,MAAM,KAAK4mD,GAAIprD,EAAE,GAAGqrD,EAAGr/C,OAAOhM,EAAE,KAAKtd,EAAE4oE,EAAID,GAAIrrD,EAAE,GAAG7X,OAAO,GAAGojE,EAAKF,GAAIrrD,EAAE,GAAG7X,OAAO,GAAG,OAAGgjE,EAAgB,GAALG,GAAc,IAANC,EAAS,MAAW,GAALD,GAAc,IAANC,EAAS,MAAW,GAALD,GAAc,IAANC,EAAS,MAAM,QAAkB,GAAH7oE,GAAM0oE,EAAG,MAAM,OAAO,gDCY9RI,EAAiB,WACjB,IAAM,QAASt1E,OAAOC,eAAe,CAAC,EAAG,IAAK,CAAC,EAAI,CACnD,MAAOwnB,GAAK,OAAO,CAAO,CAC7B,CAHoB,GAOjBxnB,IAFOq1E,GAAmBt1E,OAAOT,UAAUg2E,iBAE1BD,EAAiBt1E,OAAOC,eACrC,SAAUd,EAAKkO,EAAM/M,GAErB,QAASA,GAAQnB,EAAIo2E,iBACrBp2E,EAAIo2E,iBAAiBloE,EAAM/M,EAAKT,KACxB,EAAD,IAAKQ,KAAKlB,EAAKkO,MAAS,UAAW/M,KAC1CnB,EAAIkO,GAAQ/M,EAAK6B,MAEzB,GAEIqzE,EAAYx1E,OAAO05B,QAAU,SAAU+7C,EAAOlzE,GAC9C,IAAIpD,EAAK+tB,EAET,SAASwoD,IAAK,CAId,IAAKxoD,KAHLwoD,EAAEn2E,UAAYk2E,EACdt2E,EAAM,IAAIu2E,EAEAnzE,EACF,EAAD,IAAKlC,KAAKkC,EAAO2qB,IAChBjtB,EAAed,EAAK+tB,EAAG3qB,EAAM2qB,IAIrC,OAAO/tB,CACX,qGCvCkBw2E,gBAAgB,EAAD,mBACf9mC,cAAgB,wDCI3B,SAAgB1vC,GACnB,IACIwC,EAAG6rB,EAAK1rB,EAAQ3B,EADhBy1E,EAAUxqE,MAAM7L,UAAU0S,MAAM5R,KAAKuB,UAAW,GAGpD,IAAKD,EAAI,EAAG6rB,EAAMooD,EAAQ/zE,OAAQF,EAAI6rB,EAAK7rB,GAAK,EAE5C,GADAG,EAAS8zE,EAAQj0E,GAGjB,IAAKxB,KAAO2B,EACJ+zE,EAAIx1E,KAAKyB,EAAQ3B,KACjBhB,EAAIgB,GAAO2B,EAAO3B,IAK9B,OAAOhB,CACX,EAlBO,IAAI02E,EAAM71E,OAAOT,UAAUa,qDCNlCrC,EAAQ0B,YAAa,EAErB,IAEIq2E,EAAcp1E,EAFD,EAAQ,QAMrBq1E,EAAuBr1E,EAFD,EAAQ,QAM9B41C,EAAU51C,EAFD,EAAQ,QAMjBs1E,EAAat1E,EAFD,EAAQ,QAMpBu1E,EAAiBv1E,EAFD,EAAQ,QAMxBw1E,EAAkBx1E,EAFD,EAAQ,QAI7B,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAI9F,SAASg3E,EAA2Bp3E,EAAMsB,GAAQ,IAAKtB,EAAQ,MAAM,IAAIq3E,eAAe,6DAAgE,OAAO/1E,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BtB,EAAPsB,CAAa,CAS/O,IAAIg2E,EAAS,SAAUC,GAGrB,SAASD,IACP,IAAIz+B,EAAOtvC,GAff,SAAyBxC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAiBpJC,CAAgBC,KAAMmwE,GAEtB,IAAK,IAAI/D,EAAO1wE,UAAUC,OAAQ6X,EAAOtO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3E74D,EAAK64D,GAAQ3wE,UAAU2wE,GAGzB,OAAe36B,EAAStvC,EAAQ6tE,EAA2BjwE,KAAMowE,EAAiBj2E,KAAKmB,MAAM80E,EAAkB,CAACpwE,MAAMsC,OAAOkR,KAAiBpR,EAAMiuE,oBAAsB,WACnKjuE,EAAMkuE,iBACTluE,EAAMkuE,eAAiBvuD,SAASpkB,cAAc,OAC9CyE,EAAMmuE,sBAAuB,EAAIR,EAAenhE,SAASxM,EAAM/F,MAAMysD,WAAW,EAAIknB,EAAgBphE,SAASxM,GAAOwL,MACpHxL,EAAMmuE,qBAAqBlf,YAAYjvD,EAAMkuE,gBAEjD,EAAGluE,EAAMouE,sBAAwB,WAC3BpuE,EAAMkuE,iBACRluE,EAAMmuE,qBAAqB5e,YAAYvvD,EAAMkuE,gBAC7CluE,EAAMkuE,eAAiB,MAEzBluE,EAAMmuE,qBAAuB,IAC/B,EAAGnuE,EAAMquE,eAAiB,WACxB,IAAI7kB,EAAWxpD,EAAM/F,MAAMwB,SAAkBuyC,EAAQxhC,QAAQmkC,SAASod,KAAK/tD,EAAM/F,MAAMwB,UAAjD,KAGtC,GAAgB,OAAZ+tD,EAAkB,CACpBxpD,EAAMiuE,sBAEN,IAAIK,GAAiBtuE,EAAMuuE,iBAE3BvuE,EAAMuuE,iBAAmBb,EAAWlhE,QAAQqgD,oCAAoC7sD,EAAOwpD,EAASxpD,EAAMkuE,gBAAgB,WAChHI,GAAiBtuE,EAAM/F,MAAMu0E,YAC/BxuE,EAAM/F,MAAMu0E,YAEhB,GACF,MAEExuE,EAAMyuE,mBACNzuE,EAAMouE,uBAEV,EAAGpuE,EAAMyuE,iBAAmB,WACtBzuE,EAAMkuE,iBACRR,EAAWlhE,QAAQi/C,uBAAuBzrD,EAAMkuE,gBAChDluE,EAAMuuE,iBAAmB,KAE7B,EAAGvuE,EAAM0uE,aAAe,WACtB,OAAO1uE,EAAMkuE,cACf,EAAWL,EAA2B7tE,EAAnCsvC,EACL,CA6BA,OAvFF,SAAmBq/B,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIlxE,UAAU,kEAAoEkxE,GAAeD,EAAS13E,UAAYS,OAAO05B,OAAOw9C,GAAcA,EAAW33E,UAAW,CAAED,YAAa,CAAE6C,MAAO80E,EAAU31E,YAAY,EAAOe,UAAU,EAAMD,cAAc,KAAe80E,IAAYl3E,OAAOm3E,eAAiBn3E,OAAOm3E,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,EAAY,CAQ3eG,CAAUhB,EAAQC,GAoDlBD,EAAO92E,UAAU+7C,kBAAoB,WACnCp1C,KAAKoxE,YAAa,EAClBpxE,KAAKywE,gBACP,EAEAN,EAAO92E,UAAUw+C,mBAAqB,WACpC73C,KAAKywE,gBACP,EAEAN,EAAO92E,UAAUg5C,iCAAmC,SAA0CC,GACxFtyC,KAAKswE,gBAAkBh+B,EAAUwW,YAAc9oD,KAAK3D,MAAMysD,YAC5D9oD,KAAKuwE,qBAAqB5e,YAAY3xD,KAAKswE,gBAC3CtwE,KAAKuwE,sBAAuB,EAAIR,EAAenhE,SAAS0jC,EAAUwW,WAAW,EAAIknB,EAAgBphE,SAAS5O,MAAM4N,MAChH5N,KAAKuwE,qBAAqBlf,YAAYrxD,KAAKswE,gBAE/C,EAEAH,EAAO92E,UAAUs+C,qBAAuB,WACtC33C,KAAKoxE,YAAa,EAClBpxE,KAAK6wE,mBACL7wE,KAAKwwE,uBACP,EAEAL,EAAO92E,UAAU2V,OAAS,WACxB,OAAO,IACT,EAEOmhE,CACT,CAjFa,CAiFX//B,EAAQxhC,QAAQ+R,WAElBwvD,EAAOryE,YAAc,SACrBqyE,EAAOnyE,UAAY,CAKjB8qD,UAAW8mB,EAAYhhE,QAAQ+kC,UAAU,CAACk8B,EAAqBjhE,QAASghE,EAAYhhE,QAAQjQ,OAE5FiyE,WAAYhB,EAAYhhE,QAAQjQ,MAElC9G,EAAA,QAAkBs4E,EAClBr4E,EAAOD,QAAUA,EAAiB,qCCrIlCA,EAAQ0B,YAAa,EAErB,IAAI02C,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAI3P61E,EAAkB72E,EAFD,EAAQ,QAMzB82E,EAAa92E,EAFD,EAAQ,OAMpB+2E,EAAU/2E,EAFD,EAAQ,OAMjBo1E,EAAcp1E,EAFD,EAAQ,QAMrBq1E,EAAuBr1E,EAFD,EAAQ,QAM9Bg3E,EAAeh3E,EAFD,EAAQ,QAMtBi3E,EAAgBj3E,EAFD,EAAQ,QAIvBlB,EAAS,EAAQ,OAEjB82C,EAAU51C,EAAuBlB,GAIjCw2E,EAAat1E,EAFD,EAAQ,QAMpBk3E,EAAYl3E,EAFD,EAAQ,QAMnBm3E,EAAiBn3E,EAFD,EAAQ,QAMxBo3E,EAAWp3E,EAFD,EAAQ,QAMlBq3E,EAAcr3E,EAFD,EAAQ,QAMrBs3E,EAAqBt3E,EAFD,EAAQ,QAM5Bu3E,EAAqBv3E,EAFD,EAAQ,QAM5Bu1E,EAAiBv1E,EAFD,EAAQ,QAMxBw1E,EAAkBx1E,EAFD,EAAQ,QAI7B,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAI9F,SAASg3E,EAA2Bp3E,EAAMsB,GAAQ,IAAKtB,EAAQ,MAAM,IAAIq3E,eAAe,6DAAgE,OAAO/1E,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BtB,EAAPsB,CAAa,CAI/O,IAAI+tD,EAAe,IAAIypB,EAAe/iE,QAuBlCu5C,EAAQ,SAAUioB,GAGpB,SAASjoB,IACP,IAAIzW,EAAOtvC,GAjCf,SAAyBxC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAmCpJC,CAAgBC,KAAMmoD,GAEtB,IAAK,IAAIikB,EAAO1wE,UAAUC,OAAQ6X,EAAOtO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3E74D,EAAK64D,GAAQ3wE,UAAU2wE,GAGzB,OAAe36B,EAAStvC,EAAQ6tE,EAA2BjwE,KAAMowE,EAAiBj2E,KAAKmB,MAAM80E,EAAkB,CAACpwE,MAAMsC,OAAOkR,KAAiBwnC,EAAiB7gD,KAAKiI,GAAgB6tE,EAA2B7tE,EAAnCsvC,EAC9K,CAmLA,OAzNF,SAAmBq/B,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIlxE,UAAU,kEAAoEkxE,GAAeD,EAAS13E,UAAYS,OAAO05B,OAAOw9C,GAAcA,EAAW33E,UAAW,CAAED,YAAa,CAAE6C,MAAO80E,EAAU31E,YAAY,EAAOe,UAAU,EAAMD,cAAc,KAAe80E,IAAYl3E,OAAOm3E,eAAiBn3E,OAAOm3E,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,EAAY,CA0B3eG,CAAUhpB,EAAOioB,GAcjBjoB,EAAM9uD,UAAU24E,UAAY,SAAmB31E,EAAO2B,GAEpD,IAAIjD,EAAOjB,OAAOiB,KAAKsB,GACnB41E,EAAW,CAAC,EAOhB,OANAl3E,EAAKwX,KAAI,SAAU2/D,GACZp4E,OAAOT,UAAUa,eAAeC,KAAK6D,EAAWk0E,KACnDD,EAASC,GAAQ71E,EAAM61E,GAE3B,IAEOD,CACT,EAEA9pB,EAAM9uD,UAAU2V,OAAS,WACvB,IAAImjE,EAASnyE,KAAK3D,MACd+c,EAAO+4D,EAAO/4D,KACd0vC,EAAYqpB,EAAOrpB,UACnBjrD,EAAWs0E,EAAOt0E,SAClBu0E,EAAaD,EAAOnoB,WACpBL,EAAWwoB,EAAOxoB,SAClBl6C,EAAY0iE,EAAO1iE,UACnB4H,EAAQ86D,EAAO96D,MACf80C,EAASgmB,EAAOhmB,OAChBC,EAAY+lB,EAAO/lB,UACnBC,EAAU8lB,EAAO9lB,QACjB/C,EAAa6oB,EAAO7oB,WACpBuC,EAAYsmB,EAAOtmB,UAGnBwmB,EAASjiC,EAAQxhC,QAAQmkC,SAASod,KAAKtyD,GACvCq4C,EAAgBl2C,KAAKgyE,UAAUhyE,KAAK3D,MAAO8rD,EAAMnqD,WAGrD,KADiBob,GAAQg5D,IAAepyE,KAAKmyC,MAAMkZ,QAEjD,OAAO,KAGT,IAAIinB,EAAgBD,EAAOh2E,MACvBme,EAAO83D,EAAc93D,KACrBy4B,EAAWq/B,EAAcr/B,SA4B7B,YAzBalwC,IAATyX,QAAmCzX,IAAbkwC,IACxBo/B,GAAS,EAAI/4E,EAAO43C,cAAcmhC,EAAQ,CACxC73D,UAAezX,IAATyX,EAAqB,WAAaA,EACxCy4B,SAAsB,MAAZA,EAAmB,KAAOA,KAIpCm/B,IACFC,EAASjiC,EAAQxhC,QAAQjR,cACvBy0E,EACA,CACE7lB,QAAQ,EACRgmB,eAAe,EACf,GAAMn5D,EACN+yC,OAAQA,EACRC,UAAWA,EACXnD,SAAUjpD,KAAKwyE,aACfnmB,QAASA,EACT/C,WAAYA,EACZuC,UAAWA,GAEbwmB,IAIGjiC,EAAQxhC,QAAQjR,cACrBi0E,EAAShjE,QACT,CACE3R,IAAK+C,KAAKyyE,aACV3pB,UAAWA,EACX8nB,WAAY5wE,KAAK0yE,kBAEnBtiC,EAAQxhC,QAAQjR,cACd,MACAsyC,EAAS,CACPhzC,IAAK+C,KAAK2yE,gBACVn4D,KAAMA,GAAQ,UACb07B,EAAe,CAChB7+B,MAAOA,EACP5H,UAAWA,IAEbk6C,GAAY3pD,KAAK8pD,iBACjB1Z,EAAQxhC,QAAQjR,cACdk0E,EAAYjjE,QACZ,CAAE3R,IAAK+C,KAAK4yE,cACZP,IAIR,EAEAlqB,EAAM9uD,UAAUg5C,iCAAmC,SAA0CC,GACvFA,EAAUl5B,KACZpZ,KAAKuyC,SAAS,CAAE8Y,QAAQ,IACd/Y,EAAU0X,YAEpBhqD,KAAKuyC,SAAS,CAAE8Y,QAAQ,GAE5B,EAEAlD,EAAM9uD,UAAUw5E,2BAA6B,SAAoCvgC,IAC1EtyC,KAAK3D,MAAM+c,MAAQk5B,EAAUl5B,MAChCpZ,KAAK8yE,eAET,EAEA3qB,EAAM9uD,UAAU+7C,kBAAoB,WAClCp1C,KAAKoxE,YAAa,EACdpxE,KAAK3D,MAAM+c,MACbpZ,KAAKiZ,QAET,EAEAkvC,EAAM9uD,UAAUw+C,mBAAqB,SAA4BC,GAC/D,IAAIkS,EAAahqD,KAAK3D,MAAM2tD,YAGxBlS,EAAU1+B,MAASpZ,KAAK3D,MAAM+c,MAAS4wC,GAG/BlS,EAAU1+B,MAAQpZ,KAAK3D,MAAM+c,MACvCpZ,KAAKiZ,SAFLjZ,KAAKgZ,QAIT,EAEAmvC,EAAM9uD,UAAUs+C,qBAAuB,WACrC,IAAIo7B,EAAU/yE,KAAK3D,MACf+c,EAAO25D,EAAQ35D,KACf4wC,EAAa+oB,EAAQ/oB,WAGzBhqD,KAAKoxE,YAAa,GAEdh4D,GAAQ4wC,IAAehqD,KAAKmyC,MAAMkZ,SACpCrrD,KAAKgZ,QAET,EAEAmvC,EAAM9uD,UAAUmW,UAAY,WAC1B,GAAKxP,KAAK3D,MAAMmT,UAAhB,CAIA,IAAIwjE,EAAgBhzE,KAAKizE,mBACrBC,GAAuB,EAAI7B,EAAgBziE,UAAS,EAAIohE,EAAgBphE,SAAS5O,OAEjFgzE,KAAkB,EAAI1B,EAAW1iE,SAASokE,EAAeE,KAC3DlzE,KAAKwpD,UAAY0pB,EAEZF,EAAc/qB,aAAa,eAC9B,EAAIypB,EAAU9iE,UAAS,EAAO,2IAE9BokE,EAAcnrB,aAAa,YAAa,IAG1CmrB,EAAc19B,QAdhB,CAgBF,EAEA6S,EAAM9uD,UAAU85E,iBAAmB,WAE7BnzE,KAAKwpD,WAAaxpD,KAAKwpD,UAAUlU,QACnCt1C,KAAKwpD,UAAUlU,QACft1C,KAAKwpD,UAAY,KAErB,EAEArB,EAAM9uD,UAAU45E,iBAAmB,WACjC,OAAOnD,EAAWlhE,QAAQyyC,YAAYrhD,KAAKqyE,OAC7C,EAEAlqB,EAAM9uD,UAAU+5E,WAAa,WAC3B,OAAOpzE,KAAK3D,MAAMwtD,QAAQupB,WAAWpzE,KACvC,EAEOmoD,CACT,CAjMY,CAiMV/X,EAAQxhC,QAAQ+R,WAElBwnC,EAAMnqD,UAAYiyC,EAAS,CAAC,EAAG2hC,EAAShjE,QAAQ5Q,UAAW,CAKzDob,KAAMw2D,EAAYhhE,QAAQ3Q,KAQ1B6qD,UAAW8mB,EAAYhhE,QAAQ+kC,UAAU,CAACk8B,EAAqBjhE,QAASghE,EAAYhhE,QAAQjQ,OAK5Fsa,OAAQ22D,EAAYhhE,QAAQjQ,KAQ5Bqa,OAAQ42D,EAAYhhE,QAAQjQ,KAK5BgrD,SAAUimB,EAAYhhE,QAAQ+kC,UAAU,CAACi8B,EAAYhhE,QAAQ3Q,KAAM2xE,EAAYhhE,QAAQ2nC,MAAM,CAAC,aAU9FuT,eAAgB8lB,EAAYhhE,QAAQjQ,KAKpC00E,gBAAiBzD,EAAYhhE,QAAQjQ,KAOrC20E,eAAe,EAAI9B,EAAa5iE,SAASghE,EAAYhhE,QAAQjQ,KAAM,sDAKnE40E,gBAAiB3D,EAAYhhE,QAAQjQ,KAKrC60E,cAAe5D,EAAYhhE,QAAQ/T,OAKnC44E,kBAAmB7D,EAAYhhE,QAAQ1Q,OAMvCw1E,mBAAoB9D,EAAYhhE,QAAQ1Q,OAKxCkrD,SAAUwmB,EAAYhhE,QAAQ3Q,KAM9B+rD,WAAYynB,EAAc7iE,QAM1Bq7C,mBAAoBwnB,EAAc7iE,QAUlCY,UAAWogE,EAAYhhE,QAAQ3Q,KAQ/B01E,aAAc/D,EAAYhhE,QAAQ3Q,KAMlC4wD,aAAc+gB,EAAYhhE,QAAQ3Q,KAKlCouD,QAASujB,EAAYhhE,QAAQjQ,KAK7B2qD,WAAYsmB,EAAYhhE,QAAQjQ,KAKhCktD,UAAW+jB,EAAYhhE,QAAQjQ,KAK/BwtD,OAAQyjB,EAAYhhE,QAAQjQ,KAK5BytD,UAAWwjB,EAAYhhE,QAAQjQ,KAK/BsqD,SAAU2mB,EAAYhhE,QAAQjQ,KAM9BkrD,QAAS+lB,EAAYhhE,QAAQ/T,OAAOsD,aAEtCgqD,EAAMpqD,aAAe,CACnBqb,MAAM,EACNuwC,UAAU,EACVP,UAAU,EACV55C,WAAW,EACXmkE,cAAc,EACd9kB,cAAc,EACd71C,OAAQ,WAAmB,EAC3B6wC,QAAS3B,EACT4B,eAAgB,SAAwBztD,GACtC,OAAO+zC,EAAQxhC,QAAQjR,cAAc,MAAOtB,EAC9C,GAGF,IAAI2+C,EAAmB,WACrB,IAAIv4C,EAASzC,KAEbA,KAAKmyC,MAAQ,CAAEkZ,QAASrrD,KAAK3D,MAAM+c,MAEnCpZ,KAAK8pD,eAAiB,WACpB,IAAI8pB,EAAUnxE,EAAOpG,MACjBm3E,EAAgBI,EAAQJ,cACxBC,EAAoBG,EAAQH,kBAC5B3pB,EAAiB8pB,EAAQ9pB,eACzBsoB,EAAawB,EAAQ3pB,mBAOrBN,EAAWG,EAAe,CAC5B7sD,IALgB,SAAqBA,GACrC,OAAOwF,EAAOknD,SAAW1sD,CAC3B,EAIEoa,MAAOm8D,EACP/jE,UAAWgkE,EACXv/B,QAASzxC,EAAOoxE,sBAclB,OAXIzB,IACFzoB,EAAWvZ,EAAQxhC,QAAQjR,cACzBy0E,EACA,CACE7lB,QAAQ,EACR,GAAM9pD,EAAOpG,MAAM+c,MAErBuwC,IAIGA,CACT,EAEA3pD,KAAK0yE,iBAAmB,WACtBjwE,EAAO+M,YAEH/M,EAAOpG,MAAM4c,QACfxW,EAAOpG,MAAM4c,QAEjB,EAEAjZ,KAAKiZ,OAAS,WACZ,IAAIsyD,GAAM,EAAIyE,EAAgBphE,SAASnM,GACnCqmD,GAAY,EAAIinB,EAAenhE,SAASnM,EAAOpG,MAAMysD,UAAWyiB,EAAI39D,MAExEnL,EAAOpG,MAAMwtD,QAAQlmB,IAAIlhC,EAAQqmD,EAAWrmD,EAAOpG,MAAMq3E,oBAEzDjxE,EAAOqxE,4BAA6B,EAAIhC,EAAmBljE,SAAS28D,EAAK,UAAW9oE,EAAOsxE,uBAE3FtxE,EAAOuxE,0BAA2B,EAAIlC,EAAmBljE,SAAS28D,EAAK,QAAS9oE,EAAOwxE,qBAEvFxxE,EAAOyxE,oBAAqB,EAAInC,EAAmBnjE,SAASnM,EAAOkxE,aACrE,EAEA3zE,KAAKgZ,OAAS,WACZvW,EAAOpG,MAAMwtD,QAAQR,OAAO5mD,GAE5BA,EAAOqxE,2BAA2BzqB,SAElC5mD,EAAOuxE,yBAAyB3qB,SAEhC5mD,EAAOyxE,mBAAmB7qB,SAEtB5mD,EAAOpG,MAAMwyD,cACfpsD,EAAO0wE,kBAEX,EAEAnzE,KAAKyyE,aAAe,SAAUx1E,GAC5BwF,EAAO0xE,UAAYl3E,EAAMA,EAAI6zE,eAAiB7zE,CAChD,EAEA+C,KAAK2yE,gBAAkB,SAAU11E,GAC/BwF,EAAO2xE,UAAYn3E,CACrB,EAEA+C,KAAK4yE,aAAe,SAAU31E,GAC5BwF,EAAO4vE,OAASp1E,CAClB,EAEA+C,KAAKwyE,aAAe,WAKhB,IAAI6B,EAJN5xE,EAAO8vC,SAAS,CAAE8Y,QAAQ,IAC1B5oD,EAAOuW,SAEHvW,EAAOpG,MAAM4sD,WAGdorB,EAAU5xE,EAAOpG,OAAO4sD,SAAS3tD,MAAM+4E,EAAS34E,UAErD,EAEAsE,KAAK6zE,oBAAsB,SAAUtyD,GAC/BA,EAAE/lB,SAAW+lB,EAAEgkC,gBAIf9iD,EAAOpG,MAAMk3E,iBACf9wE,EAAOpG,MAAMk3E,gBAAgBhyD,IAGD,IAA1B9e,EAAOpG,MAAMstD,UACflnD,EAAOpG,MAAM2c,SAEjB,EAEAhZ,KAAK+zE,sBAAwB,SAAUxyD,GACjC9e,EAAOpG,MAAM+sD,UAA0B,KAAd7nC,EAAEqvC,SAAkBnuD,EAAO2wE,eAClD3wE,EAAOpG,MAAMg3E,iBACf5wE,EAAOpG,MAAMg3E,gBAAgB9xD,GAG/B9e,EAAOpG,MAAM2c,SAEjB,EAEAhZ,KAAKi0E,oBAAsB,SAAU1yD,GAC/B9e,EAAOpG,MAAM+sD,UAA0B,KAAd7nC,EAAEqvC,SAAkBnuD,EAAO2wE,cAClD3wE,EAAOpG,MAAMi3E,eACf7wE,EAAOpG,MAAMi3E,cAAc/xD,EAGjC,EAEAvhB,KAAK8yE,cAAgB,WACfvB,EAAQ3iE,UACVnM,EAAO+mD,WAAY,EAAI6nB,EAAgBziE,WAE3C,EAEA5O,KAAK2zE,aAAe,WAClB,GAAKlxE,EAAOpG,MAAMs3E,cAAiBlxE,EAAO2uE,YAAe3uE,EAAO2wE,aAAhE,CAIA,IAAIJ,EAAgBvwE,EAAOwwE,mBACvBC,GAAuB,EAAI7B,EAAgBziE,UAAS,EAAIohE,EAAgBphE,SAASnM,IAEjFuwE,KAAkB,EAAI1B,EAAW1iE,SAASokE,EAAeE,IAC3DF,EAAc19B,OANhB,CAQF,CACF,EAEA6S,EAAMmsB,QAAU3C,EAAe/iE,QAE/B/W,EAAA,QAAkBswD,EAClBrwD,EAAOD,QAAUA,EAAiB,sCCxmBlCA,EAAQ0B,YAAa,EAErB,IAEIk4C,EAAUj3C,EAFD,EAAQ,QAMjB+5E,EAAU/5E,EAFD,EAAQ,OAMjBg6E,EAAkBh6E,EAFD,EAAQ,QAMzBi6E,EAAkBj6E,EAFD,EAAQ,QAIzBk6E,EAAoB,EAAQ,OAEhC,SAASl6E,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAuJ9FpB,EAAA,QAjGmB,SAAS88E,IAC1B,IAAIvyE,EAAQpC,KAER40E,EAAQl5E,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7Em5E,EAAwBD,EAAMhqB,iBAC9BA,OAA6C7nD,IAA1B8xE,GAA6CA,EAChEC,EAAwBF,EAAMjsB,wBAC9BA,OAAoD5lD,IAA1B+xE,GAA6CA,GA3D7E,SAAyBl1E,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CA6DtJC,CAAgBC,KAAM20E,GAEtB30E,KAAK2jC,IAAM,SAAUwlB,EAAOL,EAAWr5C,GACrC,IAAIslE,EAAW3yE,EAAM4yE,OAAO3wC,QAAQ8kB,GAChC8rB,EAAe7yE,EAAM8yE,WAAW7wC,QAAQykB,GAE5C,IAAkB,IAAdisB,EACF,OAAOA,EAUT,GAPAA,EAAW3yE,EAAM4yE,OAAOr5E,OACxByG,EAAM4yE,OAAO35E,KAAK8tD,GAEd/mD,EAAMwoD,mBACR,EAAI8pB,EAAkBS,cAAcrsB,EAAWK,EAAMirB,YAGjC,IAAlBa,EAEF,OADA7yE,EAAMhE,KAAK62E,GAAcD,OAAO35E,KAAK8tD,GAC9B4rB,EAGT,IAAI32E,EAAO,CACT42E,OAAQ,CAAC7rB,GAETvP,QAASnqC,EAAYA,EAAU2Y,MAAM,OAAS,GAE9CgtD,aAAa,EAAIX,EAAgB7lE,SAASk6C,IAY5C,OATI1mD,EAAMumD,yBAxEd,SAA2BxW,EAAO2W,GAChC,IAAIzxC,EAAQ,CAAE2wC,SAAU,UAIxB7V,EAAM96B,MAAQ,CACZ2wC,SAAUc,EAAUzxC,MAAM2wC,SAC1BqtB,aAAcvsB,EAAUzxC,MAAMg+D,cAG5BljC,EAAMijC,cAGR/9D,EAAMg+D,aAAerqE,UAAS,EAAIupE,EAAQ3lE,SAASk6C,EAAW,iBAAmB,EAAG,KAAM,EAAI0rB,EAAgB5lE,WAAa,OAG7H,EAAI2lE,EAAQ3lE,SAASk6C,EAAWzxC,EAClC,CAwDMi+D,CAAkBl3E,EAAM0qD,GAG1B1qD,EAAKw7C,QAAQ/9C,QAAQ41C,EAAQ7iC,QAAQ2mE,SAASp1E,KAAK,KAAM2oD,IAEzD1mD,EAAM8yE,WAAW75E,KAAKytD,GACtB1mD,EAAMhE,KAAK/C,KAAK+C,GAET22E,CACT,EAEA/0E,KAAKqpD,OAAS,SAAUF,GACtB,IAAI4rB,EAAW3yE,EAAM4yE,OAAO3wC,QAAQ8kB,GAEpC,IAAkB,IAAd4rB,EAAJ,CAIA,IAAIE,EAjGR,SAAuB72E,EAAM+qD,GAC3B,OAZwBvoD,EAYC,SAAU6iB,GACjC,OAAoC,IAA7BA,EAAEuxD,OAAO3wC,QAAQ8kB,EAC1B,EAbIqsB,GAAO,EAWQp3E,EAVf6sB,MAAK,SAAUxH,EAAGhoB,GACpB,GAAImF,EAAG6iB,GAEL,OADA+xD,EAAM/5E,GACC,CAEX,IACO+5E,EART,IAA0B50E,EACpB40E,CAcN,CA6FuBC,CAAcrzE,EAAMhE,KAAM+qD,GACzC/qD,EAAOgE,EAAMhE,KAAK62E,GAClBnsB,EAAY1mD,EAAM8yE,WAAWD,GAEjC72E,EAAK42E,OAAOtiC,OAAOt0C,EAAK42E,OAAO3wC,QAAQ8kB,GAAQ,GAE/C/mD,EAAM4yE,OAAOtiC,OAAOqiC,EAAU,GAIH,IAAvB32E,EAAK42E,OAAOr5E,QACdyC,EAAKw7C,QAAQ/9C,QAAQ41C,EAAQ7iC,QAAQ8mE,YAAYv1E,KAAK,KAAM2oD,IAExD1mD,EAAMumD,yBArFhB,SAA8BjmD,EAAMomD,GAClC,IAAIzxC,EAAQ3U,EAAK2U,MAGjBvd,OAAOiB,KAAKsc,GAAOxb,SAAQ,SAAU5B,GACnC,OAAO6uD,EAAUzxC,MAAMpd,GAAOod,EAAMpd,EACtC,GACF,CA+EQ07E,CAAqBv3E,EAAM0qD,GAGzB1mD,EAAMwoD,mBACR,EAAI8pB,EAAkBkB,cAAc9sB,EAAWK,EAAMirB,WAEvDhyE,EAAM8yE,WAAWxiC,OAAOuiC,EAAc,GACtC7yE,EAAMhE,KAAKs0C,OAAOuiC,EAAc,IACvB7yE,EAAMwoD,mBAEf,EAAI8pB,EAAkBrwB,aAAY,EAAOjmD,EAAK42E,OAAO52E,EAAK42E,OAAOr5E,OAAS,GAAGy4E,UA1B/E,CA4BF,EAEAp0E,KAAKozE,WAAa,SAAUjqB,GAC1B,QAAS/mD,EAAM4yE,OAAOr5E,QAAUyG,EAAM4yE,OAAO5yE,EAAM4yE,OAAOr5E,OAAS,KAAOwtD,CAC5E,EAEAnpD,KAAK4qD,iBAAmBA,EACxB5qD,KAAK2oD,wBAA0BA,EAC/B3oD,KAAKg1E,OAAS,GACdh1E,KAAKk1E,WAAa,GAClBl1E,KAAK5B,KAAO,EACd,EAGAtG,EAAOD,QAAUA,EAAiB,sCC5KlCA,EAAQ0B,YAAa,EAErB,IAEIg4E,EAAU/2E,EAFD,EAAQ,OAMjBo1E,EAAcp1E,EAFD,EAAQ,QAMrBq1E,EAAuBr1E,EAFD,EAAQ,QAM9B41C,EAAU51C,EAFD,EAAQ,QAMjBs1E,EAAat1E,EAFD,EAAQ,QAMpBu1E,EAAiBv1E,EAFD,EAAQ,QAMxBw1E,EAAkBx1E,EAFD,EAAQ,QAMzBq7E,EAAiBr7E,EAFD,EAAQ,QAI5B,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAI9F,SAASg3E,EAA2Bp3E,EAAMsB,GAAQ,IAAKtB,EAAQ,MAAM,IAAIq3E,eAAe,6DAAgE,OAAO/1E,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BtB,EAAPsB,CAAa,CAS/O,IAAIg2E,EAAS,SAAUC,GAGrB,SAASD,IACP,IAAIz+B,EAAOtvC,GAff,SAAyBxC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAiBpJC,CAAgBC,KAAMmwE,GAEtB,IAAK,IAAI/D,EAAO1wE,UAAUC,OAAQ6X,EAAOtO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3E74D,EAAK64D,GAAQ3wE,UAAU2wE,GAGzB,OAAe36B,EAAStvC,EAAQ6tE,EAA2BjwE,KAAMowE,EAAiBj2E,KAAKmB,MAAM80E,EAAkB,CAACpwE,MAAMsC,OAAOkR,KAAiBpR,EAAM0uE,aAAe,WACjK,OAAO1uE,EAAMmuE,oBACf,EAAWN,EAA2B7tE,EAAnCsvC,EACL,CAiDA,OAvEF,SAAmBq/B,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIlxE,UAAU,kEAAoEkxE,GAAeD,EAAS13E,UAAYS,OAAO05B,OAAOw9C,GAAcA,EAAW33E,UAAW,CAAED,YAAa,CAAE6C,MAAO80E,EAAU31E,YAAY,EAAOe,UAAU,EAAMD,cAAc,KAAe80E,IAAYl3E,OAAOm3E,eAAiBn3E,OAAOm3E,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,EAAY,CAQ3eG,CAAUhB,EAAQC,GAgBlBD,EAAO92E,UAAUy8E,0BAA4B,WAC3C,GAAKvE,EAAQ3iE,QAAb,CAIA,IAAIk6C,EAAY9oD,KAAK3D,MAAMysD,UAEF,mBAAdA,IACTA,EAAYA,KAGVA,IAAcgnB,EAAWlhE,QAAQyyC,YAAYyH,IAMjD9oD,KAAK+1E,aAAajtB,EAdlB,CAeF,EAEAqnB,EAAO92E,UAAU+7C,kBAAoB,WAC9Bp1C,KAAKuwE,qBAGCvwE,KAAK3D,MAAMu0E,YACpB5wE,KAAK3D,MAAMu0E,cAHX5wE,KAAK+1E,aAAa/1E,KAAK3D,MAAMysD,WAC7B9oD,KAAK4a,YAAY5a,KAAK3D,MAAMu0E,YAIhC,EAEAT,EAAO92E,UAAUg5C,iCAAmC,SAA0CC,GACxFA,EAAUwW,YAAc9oD,KAAK3D,MAAMysD,WACrC9oD,KAAK+1E,aAAazjC,EAAUwW,UAEhC,EAEAqnB,EAAO92E,UAAUs+C,qBAAuB,WACtC33C,KAAKuwE,qBAAuB,IAC9B,EAEAJ,EAAO92E,UAAU08E,aAAe,SAAsBjtB,GACpD9oD,KAAKuwE,sBAAuB,EAAIR,EAAenhE,SAASk6C,GAAW,EAAIknB,EAAgBphE,SAAS5O,MAAM4N,KACxG,EAEAuiE,EAAO92E,UAAU2V,OAAS,WACxB,OAAOhP,KAAK3D,MAAMwB,UAAYmC,KAAKuwE,qBAAuBT,EAAWlhE,QAAQsM,aAAalb,KAAK3D,MAAMwB,SAAUmC,KAAKuwE,sBAAwB,IAC9I,EAEOJ,CACT,CAjEa,CAiEX//B,EAAQxhC,QAAQ+R,WAElBwvD,EAAOryE,YAAc,SACrBqyE,EAAOnyE,UAAY,CAKjB8qD,UAAW8mB,EAAYhhE,QAAQ+kC,UAAU,CAACk8B,EAAqBjhE,QAASghE,EAAYhhE,QAAQjQ,OAE5FiyE,WAAYhB,EAAYhhE,QAAQjQ,MAElC9G,EAAA,QAAkBi4E,EAAWlhE,QAAQsM,aAAei1D,EAAS0F,EAAejnE,QAC5E9W,EAAOD,QAAUA,EAAiB,sCC7HlCA,EAAQ0B,YAAa,EAErB,IAEIq2E,EAAcp1E,EAFD,EAAQ,QAMrB41C,EAAU51C,EAFD,EAAQ,QAIrB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAQ9F,IAAI+E,EAAY,CACdH,SAAU+xE,EAAYhhE,QAAQrQ,MAQ5By3E,EAAY,SAAU5F,GAGxB,SAAS4F,IAGP,OArBJ,SAAyBp2E,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAmBpJC,CAAgBC,KAAMg2E,GAjB1B,SAAoCn9E,EAAMsB,GAAQ,IAAKtB,EAAQ,MAAM,IAAIq3E,eAAe,6DAAgE,OAAO/1E,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BtB,EAAPsB,CAAa,CAmBpO81E,CAA2BjwE,KAAMowE,EAAiB90E,MAAM0E,KAAMtE,WACvE,CAMA,OAxBF,SAAmBq1E,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIlxE,UAAU,kEAAoEkxE,GAAeD,EAAS13E,UAAYS,OAAO05B,OAAOw9C,GAAcA,EAAW33E,UAAW,CAAED,YAAa,CAAE6C,MAAO80E,EAAU31E,YAAY,EAAOe,UAAU,EAAMD,cAAc,KAAe80E,IAAYl3E,OAAOm3E,eAAiBn3E,OAAOm3E,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,EAAY,CAY3eG,CAAU6E,EAAW5F,GAQrB4F,EAAU38E,UAAU2V,OAAS,WAC3B,OAAOhP,KAAK3D,MAAMwB,QACpB,EAEOm4E,CACT,CAdgB,CAcd5lC,EAAQxhC,QAAQ+R,WAElBq1D,EAAUh4E,UAAYA,EAEtBnG,EAAA,QAAkBm+E,EAClBl+E,EAAOD,QAAUA,EAAiB,sCC9ClCA,EAAQ0B,YAAa,EAErB,IAEI+3E,EAAa92E,EAFD,EAAQ,OAMpBo1E,EAAcp1E,EAFD,EAAQ,QAMrB41C,EAAU51C,EAFD,EAAQ,QAMjBs1E,EAAat1E,EAFD,EAAQ,QAMpBs3E,EAAqBt3E,EAFD,EAAQ,QAM5Bw1E,EAAkBx1E,EAFD,EAAQ,QAI7B,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAyB9F,IAAIg9E,EAAmB,SAAU7F,GAG/B,SAAS6F,EAAiB55E,EAAO84B,IA1BnC,SAAyBv1B,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CA2BpJC,CAAgBC,KAAMi2E,GAEtB,IAAI7zE,EA3BR,SAAoCvJ,EAAMsB,GAAQ,IAAKtB,EAAQ,MAAM,IAAIq3E,eAAe,6DAAgE,OAAO/1E,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BtB,EAAPsB,CAAa,CA2B/N81E,CAA2BjwE,KAAMowE,EAAiBj2E,KAAK6F,KAAM3D,EAAO84B,IAgEhF,OA9DA/yB,EAAM48C,kBAAoB,WAGxB58C,EAAM8zE,aAAev9E,OAAO2K,MAE5B,IAAIA,EAAQlB,EAAM/F,MAAMiH,MAEpBioE,GAAM,EAAIyE,EAAgBphE,SAASxM,GAKvCA,EAAM+zE,8BAA+B,EAAIrE,EAAmBljE,SAAS28D,EAAKjoE,EAAOlB,EAAMg0E,oBAAoB,GAE3Gh0E,EAAMi0E,uBAAwB,EAAIvE,EAAmBljE,SAAS28D,EAAKjoE,EAAOlB,EAAMk0E,aAEhFl0E,EAAMm0E,uBAAwB,EAAIzE,EAAmBljE,SAAS28D,EAAK,QAASnpE,EAAM2lE,YACpF,EAEA3lE,EAAMw1C,qBAAuB,WACvBx1C,EAAM+zE,8BACR/zE,EAAM+zE,6BAA6B9sB,SAGjCjnD,EAAMi0E,uBACRj0E,EAAMi0E,sBAAsBhtB,SAG1BjnD,EAAMm0E,uBACRn0E,EAAMm0E,sBAAsBltB,QAEhC,EAEAjnD,EAAMg0E,mBAAqB,SAAU70D,GApDzC,IAAyBje,EAqDnBlB,EAAMo0E,0BArDalzE,EAqD2Bie,GApDlCsqD,SAAWvoE,EAAMqrD,QAAUrrD,EAAMsoE,SAAWtoE,EAAMmzE,YALpE,SAA0BnzE,GACxB,OAAwB,IAAjBA,EAAM+1C,MACf,CAuD2Dq9B,CAAiBn1D,KAAM,EAAI+vD,EAAW1iE,SAASkhE,EAAWlhE,QAAQyyC,YAAYj/C,GAAQmf,EAAE/lB,OAC/I,EAEA4G,EAAMk0E,YAAc,SAAU/0D,GAExBA,IAAMnf,EAAM8zE,cAKX9zE,EAAMo0E,uBAAyBp0E,EAAM/F,MAAMmwD,aAC9CpqD,EAAM/F,MAAMmwD,YAAYjrC,GALxBnf,EAAM8zE,kBAAenzE,CAOzB,EAEAX,EAAM2lE,YAAc,SAAUxmD,GAExBA,IAAMnf,EAAM8zE,aA5EF,KAiFV30D,EAAEqvC,SAA6BxuD,EAAM/F,MAAMmwD,aAC7CpqD,EAAM/F,MAAMmwD,YAAYjrC,GALxBnf,EAAM8zE,kBAAenzE,CAOzB,EAEAX,EAAMo0E,uBAAwB,EACvBp0E,CACT,CA0BA,OApHF,SAAmB2uE,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIlxE,UAAU,kEAAoEkxE,GAAeD,EAAS13E,UAAYS,OAAO05B,OAAOw9C,GAAcA,EAAW33E,UAAW,CAAED,YAAa,CAAE6C,MAAO80E,EAAU31E,YAAY,EAAOe,UAAU,EAAMD,cAAc,KAAe80E,IAAYl3E,OAAOm3E,eAAiBn3E,OAAOm3E,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,EAAY,CAoB3eG,CAAU8E,EAAkB7F,GAwE5B6F,EAAiB58E,UAAU+7C,kBAAoB,WACxCp1C,KAAK3D,MAAME,UACdyD,KAAKg/C,mBAET,EAEAi3B,EAAiB58E,UAAUw+C,mBAAqB,SAA4BC,IACrE93C,KAAK3D,MAAME,UAAYu7C,EAAUv7C,SACpCyD,KAAKg/C,oBACIh/C,KAAK3D,MAAME,WAAau7C,EAAUv7C,UAC3CyD,KAAK43C,sBAET,EAEAq+B,EAAiB58E,UAAUs+C,qBAAuB,WAC3C33C,KAAK3D,MAAME,UACdyD,KAAK43C,sBAET,EAEAq+B,EAAiB58E,UAAU2V,OAAS,WAClC,OAAOhP,KAAK3D,MAAMwB,QACpB,EAEOo4E,CACT,CAlGuB,CAkGrB7lC,EAAQxhC,QAAQ+R,WAElBs1D,EAAiBn4E,YAAc,mBAE/Bm4E,EAAiBj4E,UAAY,CAI3BwuD,YAAaojB,EAAYhhE,QAAQjQ,KAIjCd,SAAU+xE,EAAYhhE,QAAQwT,QAI9B7lB,SAAUqzE,EAAYhhE,QAAQ3Q,KAI9BqF,MAAOssE,EAAYhhE,QAAQ2nC,MAAM,CAAC,QAAS,eAG7C0/B,EAAiBl4E,aAAe,CAC9BuF,MAAO,SAGTzL,EAAA,QAAkBo+E,EAClBn+E,EAAOD,QAAUA,EAAiB,sCCjLlCA,EAAQ0B,YAAa,EAErB1B,EAAA,QAAkB,SAAU0G,EAAM+E,EAAO8qD,EAASuoB,GAGhD,OAFA,EAAIC,EAAKhoE,SAASrQ,EAAM+E,EAAO8qD,EAASuoB,GAEjC,CACLttB,OAAQ,YACN,EAAIwtB,EAAMjoE,SAASrQ,EAAM+E,EAAO8qD,EAASuoB,EAC3C,EAEJ,EAEA,IAEIC,EAAOp8E,EAFD,EAAQ,QAMdq8E,EAAQr8E,EAFD,EAAQ,QAInB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9FnB,EAAOD,QAAUA,EAAiB,oCCtBlCA,EAAQ0B,YAAa,EACrB1B,EAAA,QAOA,SAA0Bu2D,GACxB,IACI/E,OAAS,EAcb,OAfkBtnC,SAASzhB,kBAIzByhB,SAAS+0D,YAAY,YAAa1oB,GAClC/E,EAAS,WACP,OAAOtnC,SAASg1D,YAAY,YAAa3oB,EAC3C,IAEArsC,SAASzhB,iBAAiB,QAAS8tD,GAAS,GAC5C/E,EAAS,WACP,OAAOtnC,SAAS9d,oBAAoB,QAASmqD,GAAS,EACxD,GAGK,CAAE/E,OAAQA,EACnB,EACAvxD,EAAOD,QAAUA,EAAiB,sCC1BlCA,EAAQ0B,YAAa,EACrB1B,EAAA,QAQA,SAAsBixD,EAAWkuB,GAE/B,OADAluB,EAAiC,mBAAdA,EAA2BA,IAAcA,EACrDgnB,EAAWlhE,QAAQyyC,YAAYyH,IAAckuB,CACtD,EATA,IAIgC/9E,EAF5B62E,GAE4B72E,EAJhB,EAAQ,SAI6BA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAMvFnB,EAAOD,QAAUA,EAAiB,sCCblCA,EAAQ0B,YAAa,EACrB1B,EAAA,QA8BA,SAAuBixD,GAGrB,OAFU,EAAImuB,EAAWroE,SAASk6C,KAnBpBvqD,EAqBOuqD,IApByB,SAA/BvqD,EAAK7F,QAAQuzB,cAG9B,SAA2B1tB,GACzB,IAAIgtE,GAAM,EAAIyE,EAAgBphE,SAASrQ,GAEnC24E,GADM,EAAID,EAAWroE,SAAS28D,GACdrX,WAGpB,IAAKgjB,EAAW,CACd,IAAIC,EAAsB5L,EAAIjX,gBAAgBnC,wBAC9C+kB,EAAYC,EAAoBx+D,MAAQvT,KAAKqF,IAAI0sE,EAAoBz+D,KACvE,CAEA,OAAO6yD,EAAI39D,KAAKumD,YAAc+iB,CAChC,CAKoCE,CAAkBtuB,GAAaA,EAAUyJ,aAAezJ,EAAUuL,aArBtG,IAAgB91D,CAsBhB,EAhCA,IAEI04E,EAAaz8E,EAFD,EAAQ,QAMpBw1E,EAAkBx1E,EAFD,EAAQ,QAI7B,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAyB9FnB,EAAOD,QAAUA,EAAiB,oCCpClCA,EAAQ0B,YAAa,EACrB1B,EAAQwsD,WAAaA,EACrBxsD,EAAQs9E,aAgCR,SAAsBrsB,EAAWqrB,GAC/BkD,EAASvuB,EAAWqrB,GAAW,SAAU51E,GACvC,OAAO8lD,GAAW,EAAM9lD,EAC1B,GACF,EAnCA1G,EAAQ+9E,aAqCR,SAAsB9sB,EAAWqrB,GAC/BkD,EAASvuB,EAAWqrB,GAAW,SAAU51E,GACvC,OAAO8lD,GAAW,EAAO9lD,EAC3B,GACF,EAvCA,IAAI+4E,EAAY,CAAC,WAAY,SAAU,SAQnCD,EAAW,SAAkBvuB,EAAWyuB,EAAO32E,GACjD22E,EAAQ,GAAGj1E,OAAOi1E,GAElB,GAAG17E,QAAQ1B,KAAK2uD,EAAUjrD,UAAU,SAAUU,GAThC,IAAmBmE,EAC7B80E,EACA9+E,GAQ2B,IAAzB6+E,EAAMlzC,QAAQ9lC,KAThBi5E,GAD6B90E,EAUanE,GAT1Bi5E,SAChB9+E,EAAUgK,EAAKhK,QACC,IAAb8+E,IAAgE,IAA9CF,EAAUjzC,QAAQ3rC,EAAQuzB,iBAQ/CrrB,EAAGrC,EAEP,GACF,EAEA,SAAS8lD,EAAWjrC,EAAM7a,GACnBA,IAGD6a,EACF7a,EAAKspD,aAAa,cAAe,QAEjCtpD,EAAKw+D,gBAAgB,eAEzB,gCChCAllE,EAAQ0B,YAAa,EAErB1B,EAAA,QAAkB,SAAU4/E,GAC1B,OAAO,EAAIzH,EAAgBphE,SAASkhE,EAAWlhE,QAAQyyC,YAAYo2B,GACrE,EAEA,IAEI3H,EAAat1E,EAFD,EAAQ,QAMpBw1E,EAAkBx1E,EAFD,EAAQ,QAI7B,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9FnB,EAAOD,QAAUA,EAAiB,sCChBlCiC,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQyiB,UAyZR,SAAmBm9D,EAAoBn0E,GACrC,MAAM,KACJyL,EAAI,IACJ9U,EAAG,SACHw8E,EAAQ,OACRj7E,GACE8H,EACJ,IAAI/E,EACAm5E,EACAC,EACAhuD,EACAiuD,EAES,YAAT7oE,GAA+B,UAATA,IACxBxQ,EAAOkiD,EAAU7xC,QAAQyyC,YAAYo2B,GAEjCl5E,IAEFm5E,EAAYxyE,MAAM+B,KAAK1I,EAAKi+D,iBAAiBqb,IAA4B38E,QAAOy6B,GAAMA,IAAOp3B,IAC7ForB,EAAQ+tD,EAAU,IAAMn5E,EACxBq5E,EAAOF,EAAUA,EAAU/7E,OAAS,IAAM4C,IAKjC,YAATwQ,GAA8B,QAAR9U,EACpBsE,IACEk4E,EAEEj7E,IAAWmuB,GAASnuB,IAAW+C,IAEjCo5E,EAAWC,GAGJp8E,IAAWo8E,GAAQp8E,IAAW+C,IAEvCo5E,EAAWhuD,IAGG,UAAT5a,GAAoBvT,IAAW+C,IACxCo5E,EAAWhuD,GAGTguD,IACFr0E,EAAMyxC,iBACNzxC,EAAMs6C,kBAEF+5B,IAAa51D,SAAS0nC,eACxBkuB,EAASriC,QAGf,EA3cAz9C,EAAQggF,0BAA4BhgF,EAAQigF,2BAA6BjgF,EAAA,aAAkB,EAE3F,IAcI25C,EAAQC,EAAS+C,EAdjBiC,EAAqBj8C,EAAuB,EAAQ,QAEpDi6C,EAAU,EAAQ,MAElBl6C,EAAaC,EAAuB,EAAQ,QAE5ClB,EAASkB,EAAuB,EAAQ,QAExCimD,EAAYjmD,EAAuB,EAAQ,QAE3CsmE,EAAU,EAAQ,OAElBiX,EAAmBv9E,EAAuB,EAAQ,QAItD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,MAAM++E,EAAoB,oBAG1B,IAAIC,GAAe,EAAIxhC,EAAmB7nC,UAAmB4lC,EAAS/C,EAAU,cAA2Bn4C,EAAOsV,QAAQ+R,UACxH,WAAAvnB,IAAeoa,GACb,IAAIk+B,EAEJ,OAAOA,EAAQK,SAASv+B,GAAOxT,KAAKk4E,UAAY,GAAIl4E,KAAKm4E,gBAAkB,KAAMzmC,CACnF,CAEA,QAAAmB,CAAS1iC,GAAW,GAClB,MAAM,aACJsjC,EAAY,qBACZqG,EAAoB,YACpBs+B,GACEp4E,KAAK3D,MACH6mC,EAAW/yB,GAAY2pC,EAAuBA,EAAuBrG,EAErEl1C,EAAOkiD,EAAU7xC,QAAQyyC,YAAYrhD,MAErCq4E,EAAQ,GAEVD,GAAe75E,EAAK6T,QAAQ8wB,IAC9Bm1C,EAAMh9E,KAAKkD,GAGb,IAAI+5E,EAAQD,EAAM/1E,OAAO4C,MAAM+B,KAAK1I,EAAKi+D,iBAAiBt5B,KAa1D,OARIo1C,EAAM38E,OAAS,QAA6CoH,IAAxCu1E,EAAM,GAAGC,aAAa,eAC5CD,EAAME,MAAK,SAAUnpD,EAAGzpB,GACtB,IAAI6yE,EAAKppD,EAAEkpD,aAAa,cACpBG,EAAK9yE,EAAE2yE,aAAa,cACxB,OAAOvtE,SAASytE,EAAI,IAAMztE,SAAS0tE,EAAI,GACzC,IAGKJ,CACT,CAEA,YAAAK,CAAap3D,GACX,MAAM+2D,EAAQt4E,KAAK6yC,YAEfylC,EAAM38E,QAAY4lB,IAAkC,IAA7B+2D,EAAMj0C,QAAQ9iB,EAAE/lB,UACrC+lB,GACFA,EAAEwzB,iBAGJujC,EAAM,GAAGhjC,QAEb,CAEA,WAAAsjC,CAAYr3D,GACV,MAAM+2D,EAAQt4E,KAAK6yC,YAEfylC,EAAM38E,QAAY4lB,IAAkC,IAA7B+2D,EAAMj0C,QAAQ9iB,EAAE/lB,UACrC+lB,GACFA,EAAEwzB,iBAGJujC,EAAMA,EAAM38E,OAAS,GAAG25C,QAE5B,CAEA,eAAAujC,CAAgBt3D,EAAG9c,EAAS,GAC1B,MAAM6zE,EAAQt4E,KAAK6yC,WAEnB,GAAIylC,EAAM38E,QAAU4lB,IAAkC,IAA7B+2D,EAAMj0C,QAAQ9iB,EAAE/lB,QAAgB,CACvD+lB,EAAEwzB,iBACF,IAAI12B,EAAQi6D,EAAMj0C,QAAQ9iB,EAAE/lB,QAAUiJ,EAEtC,GAAI4Z,EAAQ,EAAG,CACb,GAAIre,KAAK3D,MAAMy8E,mBACb,OAGFz6D,EAAQi6D,EAAM38E,OAAS,CACzB,CAEA28E,EAAMj6D,GAAOi3B,OACf,CACF,CAEA,WAAAyjC,CAAYx3D,EAAG9c,EAAS,GACtB,MAAM6zE,EAAQt4E,KAAK6yC,WAEnB,GAAIylC,EAAM38E,QAAU4lB,IAAkC,IAA7B+2D,EAAMj0C,QAAQ9iB,EAAE/lB,QAAgB,CACvD+lB,EAAEwzB,iBACF,IAAI12B,EAAQi6D,EAAMj0C,QAAQ9iB,EAAE/lB,QAAUiJ,EAEtC,GAAI4Z,GAASi6D,EAAM38E,OAAQ,CACzB,GAAIqE,KAAK3D,MAAMy8E,mBACb,OAGFz6D,EAAQ,CACV,CAEAi6D,EAAMj6D,GAAOi3B,OACf,CACF,CAEA,QAAA0jC,CAASz3D,GACP,GAAIvhB,KAAK3D,MAAM48E,qBACb,OAGF,MAAMX,EAAQt4E,KAAK6yC,WAEnB,GAAIylC,EAAM38E,QAAU4lB,IAAkC,IAA7B+2D,EAAMj0C,QAAQ9iB,EAAE/lB,QAAgB,CACvD+lB,EAAEwzB,iBAEF,MAAMmkC,EAAWz4B,EAAU7xC,QAAQyyC,YAAYrhD,MAEzCm5E,EAAW/zE,KAAK8F,IAAIqW,EAAE/lB,OAAO49E,UAAY73D,EAAE/lB,OAAO69E,aAAeH,EAAS7kB,aAAc,GACxFh2C,EAAQi6D,EAAMj0C,QAAQ9iB,EAAE/lB,QACxB+rB,EAAO+wD,EAAMvsE,MAAM,EAAGsS,GAAOi7D,UAAUpwC,MAAK3hB,GAAQA,EAAK6xD,UAAYD,IAEvE5xD,GACFA,EAAK+tB,SACL,EAAIyiC,EAAiBnpE,SAAS2Y,EAAM2xD,GAAU,IAE9Cl5E,KAAK24E,aAAap3D,EAEtB,CACF,CAEA,UAAAg4D,CAAWh4D,GACT,GAAIvhB,KAAK3D,MAAM48E,qBACb,OAGF,MAAMX,EAAQt4E,KAAK6yC,WAEnB,GAAIylC,EAAM38E,QAAU4lB,IAAkC,IAA7B+2D,EAAMj0C,QAAQ9iB,EAAE/lB,QAAgB,CACvD+lB,EAAEwzB,iBAEF,MAAMmkC,EAAWz4B,EAAU7xC,QAAQyyC,YAAYrhD,MAEzCm5E,EAAW/zE,KAAKm/B,IAAIhjB,EAAE/lB,OAAO49E,UAAYF,EAAS7kB,aAAc6kB,EAAS3mB,aAAe2mB,EAAS7kB,cACjGh2C,EAAQi6D,EAAMj0C,QAAQ9iB,EAAE/lB,QAAU,EAClC+rB,EAAO+wD,EAAMvsE,MAAMsS,GAAO6qB,MAAK3hB,GAAQA,EAAK6xD,UAAY7xD,EAAK8xD,aAAeF,IAE9E5xD,GACFA,EAAK+tB,SACL,EAAIyiC,EAAiBnpE,SAAS2Y,EAAM2xD,GAAU,IAE9Cl5E,KAAK44E,YAAYr3D,EAErB,CACF,CAEA,eAAAi4D,CAAgBj4D,GACd,MAAM,OACJ/lB,EAAM,SACNi7E,EAAQ,SACRgD,GACEl4D,EACEm4D,GAAY,EAAI5Y,EAAQ6Y,kBAAkB1+C,OAAOqB,aAAam9C,IAAWlwC,cAC/E,IAAI+uC,EAAQt4E,KAAK6yC,YAEM,KAAnB7yC,KAAKk4E,WAAoBwB,IAAc15E,KAAKk4E,WAAazB,KAEvDA,IACF6B,EAAQA,EAAMgB,WAGhBt5E,KAAK45E,YAActB,EAAMj0C,QAAQ7oC,IAG/Bk+E,IAAc15E,KAAKk4E,YACrBl4E,KAAKk4E,WAAawB,GAGpB15E,KAAK65E,2BACL,IAAItyD,EAAOvnB,KAAK85E,iBAAiBxB,EAAOt4E,KAAK45E,YAAc,EAAGtB,EAAM38E,QAE/D4rB,IACHA,EAAOvnB,KAAK85E,iBAAiBxB,EAAO,EAAGt4E,KAAK45E,cAG1CryD,GACFA,EAAK+tB,OAET,CAEA,wBAAAukC,GACM75E,KAAKm4E,iBACP/rE,aAAapM,KAAKm4E,iBAGpBn4E,KAAKm4E,gBAAkB1wE,YAAW,IAAMzH,KAAKk4E,UAAY,IAAI,IAC/D,CAEA,gBAAA4B,CAAiBxB,EAAOxsE,EAAYiuE,GAElC,IAAK,IAAIt+E,EAAIqQ,EAAYrQ,EAAIs+E,EAAUt+E,IAAK,CAC1C,MAAMsU,EAAQuoE,EAAM78E,GAAGu+E,WAAa1B,EAAM78E,GAAGw+E,YAE7C,GAAIlqE,GAAuH,KAA9G,EAAI+wD,EAAQ6Y,kBAAkB5pE,GAAOvX,QAAQw/E,EAAmB,IAAIzuC,cAAclF,QAAQrkC,KAAKk4E,WAC1G,OAAOI,EAAM78E,EAEjB,CAEA,OAAO,IACT,CAOA,SAAA84C,CAAUhzB,GACJA,EAAEq7B,wBAINnI,EAAQmR,uBAAuBzrD,KAAK6F,KAAMuhB,EAAGvhB,KAAK3D,MAAM2U,YAC1D,CAOA,UAAAkpE,CAAW34D,GACLA,EAAEq7B,wBAIN58C,KAAKw5E,gBAAgBj4D,EACvB,CAOA,OAAAi7B,CAAQj7B,GACFA,EAAEq7B,wBAIN58C,KAAK6yC,WAAWh3C,SAAQ0rB,GAAQA,EAAK0rB,SAAW1rB,IAAShG,EAAE/lB,OAAS,GAAK,GAC3E,CAWA,MAAAkqD,CAAOnkC,GACL,GAAIA,EAAEq7B,uBACJ,OAGF,MAAMu9B,EAAgBn6E,KAAK6yC,UAAS,GAEpC,GAAIsnC,EAAcx+E,OAAQ,CAExB,MAAMy+E,GAAsD,IAArCD,EAAc91C,QAAQ9iB,EAAE/lB,QAC/CwE,KAAK6yC,WAAWh3C,SAAQ0rB,IAEtB,MAAMpX,GAA4C,IAAjCgqE,EAAc91C,QAAQ9c,GAIvCA,EAAK0rB,SAAW1rB,IAAShG,EAAE/lB,QAAU4+E,IAAmBA,GAAkBjqE,EAAW,GAAK,CAAC,GAE/F,CACF,CAEA,iBAAAilC,GACE,MAAM,UACJ5lC,EAAS,qBACTsqC,GACE95C,KAAK3D,MAET,GAAImT,EAAW,CACb,MAAM6qE,EAAevgC,EAAuB2G,EAAU7xC,QAAQyyC,YAAYrhD,MAAM+oD,cAAcjP,GAAwB,KAEtH95C,KAAKs6E,WAAa7yE,YAAW,KACvB4yE,EACFA,EAAa/kC,QAEbt1C,KAAK24E,cACP,GAnSuB,IAqS3B,CACF,CAEA,oBAAAhhC,GACEvrC,aAAapM,KAAKs6E,WACpB,CAEA,MAAAtrE,GACE,MAAM,SACJnR,EAAQ,SACRtB,EAAQ,eACRm3C,EAAc,aACdyR,GACEnlD,KAAK3D,MAEHmW,EAAQlZ,EAAOsV,QAAQmkC,SAASod,KAAKtyD,IAErC,UACJ02C,EAAS,WACT2lC,EAAU,QACV19B,EAAO,OACPkJ,GACElzC,EAAMnW,MACV,OAAoB/C,EAAOsV,QAAQsiC,aAAa1+B,EAAO,CACrD+hC,UAAYh4C,EAA2Dg4C,GAAhD,EAAIE,EAAQ2B,OAAO7B,EAAWv0C,KAAKu0C,WAC1D2lC,WAAY/0B,IAAiB5oD,GAAW,EAAIk4C,EAAQ2B,OAAO8jC,EAAYl6E,KAAKk6E,YAAcA,EAC1F19B,QAAS9I,IAAmBn3C,GAAW,EAAIk4C,EAAQ2B,OAAOoG,EAASx8C,KAAKw8C,SAAWA,EACnFkJ,OAAQhS,IAAmBn3C,GAAW,EAAIk4C,EAAQ2B,OAAOsP,EAAQ1lD,KAAK0lD,QAAUA,GAEpF,GAECjU,EAAQzzC,UAAY,CAIrBy1C,aAAcl5C,EAAWqU,QAAQ1Q,OAAOC,WAKxCu1C,eAAgBn5C,EAAWqU,QAAQ3Q,KAKnC+S,YAAazW,EAAWqU,QAAQ2nC,MAAM,CAAC,aAAc,WAAY,SAKjEuD,qBAAsBv/C,EAAWqU,QAAQ1Q,OAKzC3B,SAAUhC,EAAWqU,QAAQ3Q,KAK7BknD,aAAc5qD,EAAWqU,QAAQ3Q,KAKjCm6E,YAAa79E,EAAWqU,QAAQ3Q,KAKhCg7E,qBAAsB1+E,EAAWqU,QAAQ3Q,KAKzCuR,UAAWjV,EAAWqU,QAAQ3Q,MAC7BwzC,EAAQ1zC,aAAe,CACxB21C,gBAAgB,EAChB1iC,YAAa,WACbm0C,cAAc,EACdizB,aAAa,EACba,sBAAsB,GApX2BznC,EAqXhDgD,KAAYhD,EAEf35C,EAAA,QAAkBogF,EAClB,MAAMsC,EAAoB,CAAC,2CAA4C,yBAA0B,2BAA4B,yBAA0B,UAAW,aAAc,UAAW,SAAU,SAAU,QAAS,kBAAmB,kBAAmB,qBAE9PA,EAAkBl/E,KADU,CAAC,mCAAoC,4BAA6B,8BAA+B,0BAA2B,2BAA4B,iCAAkC,8BAEtN,MAAMy8E,EAA6ByC,EAAkB51E,KAAK,KAAO,cACjE9M,EAAQigF,2BAA6BA,EACrCyC,EAAkBl/E,KAAK,mCACvB,MAAMw8E,EAA4B0C,EAAkB51E,KAAK,0BACzD9M,EAAQggF,0BAA4BA,gCC1ZpC/9E,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QA2BA,SAAwBwE,GACtB,OAAoB/C,EAAOsV,QAAQjR,cAAc68E,EAAY5rE,QAASqhC,EAAS,CAC7Eg3B,QAAS,CACPwT,MAAO,EACPC,KAAM,MAEPr+E,IAAQ81C,GAAsB74C,EAAOsV,QAAQsiC,aAAa70C,EAAMwB,SAAU,CAC3EiV,OAAQ6nE,EAAYxoC,MAExB,EAlCA,IAAI74C,EAASkB,EAAuB,EAAQ,QAExCggF,EAAchgF,EAAuB,EAAQ,QAEjD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAE9F,SAASg3C,IAA2Q,OAA9PA,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAAUy0C,EAAS30C,MAAM0E,KAAMtE,UAAY,CAE5T,MAAMi/E,EAAc,CAClBC,UAAU,EACVC,SAAS,+BC6BX,SAASnjC,EAAqBojC,EAAWz+E,EAAOk7C,GAC1CujC,GACiBhhF,OAAOiB,KAAKsB,GAAOnB,QAAOu8C,GAAYA,EAASruB,WAAW,QAClEvtB,SAAQ27C,GAAasjC,EAAUx6E,iBAAiBk3C,EAAUjzC,OAAO,GAAG0nB,cAAesrB,IAElG,CAjDAz9C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQ0gD,iBAyBR,SAA0Bl8C,GACxB,MAAM65C,EAAgB,CAAC,EAEvB,IAAK,MAAMg8B,KAAQ71E,EACZ61E,EAAK9oD,WAAW,QACnB8sB,EAAcg8B,GAAQ71E,EAAM61E,IAIhC,OAAOh8B,CACT,EAlCAr+C,EAAQ6/C,qBAAuBA,EAC/B7/C,EAAQ+/C,qBAkDR,SAA8BkjC,EAAWz+E,EAAOk7C,GAC1CujC,GACiBhhF,OAAOiB,KAAKsB,GAAOnB,QAAOu8C,GAAYA,EAASruB,WAAW,QAClEvtB,SAAQ,EAAE27C,KAAesjC,EAAU72E,oBAAoBuzC,EAAUjzC,OAAO,GAAG0nB,cAAesrB,IAEzG,EAtDA1/C,EAAQmgD,qBA6DR,SAA8B8iC,EAAWhjC,EAAWz7C,EAAOk7C,EAAaQ,GACtE,OAAI+iC,GAAa/iC,GACfL,EAAqBojC,EAAWz+E,EAAOk7C,IAChC,KACEujC,IACUhhF,OAAOiB,KAAKsB,GAAOnB,QAAOu8C,IAAaK,EAAUL,IAAaA,EAASruB,WAAW,QAC1FvtB,SAAQ27C,GAAasjC,EAAUx6E,iBAAiBk3C,EAAUjzC,OAAO,GAAG0nB,cAAesrB,MACvF,EAIX,gCC9EAz9C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAElB,IAAIkjF,EAAevgF,EAAuB,EAAQ,QAIlD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAFjFuB,EAAuB,EAAQ,QAI5C,MAAMwgF,EAAqC,YAA7BriF,OAAOwlC,SAAS88C,SACxBC,EAAiBphF,OAAOi3B,OAAO,CACnCoqD,QAASH,EACTI,mBAAmB,EACnBxsE,QAASosE,EACT18B,uBAAwB08B,IAAS,EAAID,EAAansE,aAAc,EAChE2iC,mBAAexuC,EACfs4E,kBAAct4E,EACdu4E,iBAAav4E,EACb+xC,YAAQ/xC,EACRm3C,cAAUn3C,EACVw4E,eAAWx4E,EACXy4E,wBAAoBz4E,EACpB04E,sBAAkB14E,EAClBiY,YAAQjY,EACR29C,cAAU39C,EACVq/C,gBAAYr/C,EACZ24E,uBAAmB34E,EACnB44E,UAAM54E,EACN64E,WAAO74E,EACPuhD,UAAMvhD,EACN6hD,cAAU7hD,EACVqU,UAAMrU,EACNmV,aAASnV,EACT84E,kBAAc94E,EACdmX,oBAAgBnX,EAChBgY,aAAShY,EACTi0D,cAAUj0D,EACVnF,cAAUmF,EACVs3D,WAAOt3D,EACPma,gBAAYna,EACZy4D,UAAMz4D,EACN+4E,YAAQ/4E,EACRq6D,YAAQr6D,EACRw7D,gBAAYx7D,EACZg5E,YAAQh5E,EACRg+D,gBAAYh+D,EACZi5E,SAAKj5E,EACLi/D,QAAIj/D,EACJk5E,aAASl5E,EACT+hE,SAAK/hE,EACL2c,eAAW3c,EACXyjE,WAAOzjE,EACP0lE,aAAS1lE,EACTm5E,WAAOn5E,EACPkoE,UAAMloE,EACNo5E,qBAAiBp5E,EACjBk5D,mBAAel5D,IAGjB,SAASq5E,EAAiBC,GACxB,OAAOA,EAAcztE,SAAWytE,CAClC,CA0BA,IAAIj4E,EAAW,IAAIk4E,MAAM,IAxBzB,MACE,WAAAljF,GACE4G,KAAKsmB,OACP,CAEA,KAAAA,GACExsB,OAAOo2C,OAAOlwC,KAAMk7E,EACtB,CAEA,MAAA/kD,CAAOhvB,EAAMo1E,EAAgBC,EAAgBC,GAC3C,OAAIv3E,MAAMwgC,QAAQ1lC,KAAwB,oBAAMA,KAAwB,kBAAE2G,SAASQ,IAASs1E,EACnFL,EAAiBK,KAGtBz8E,KAAKmH,GACAi1E,EAAiBG,KAGnBH,EAAiBI,IAC1B,GAKyC,CACzC,GAAA7iF,CAAIoH,EAASurB,GACX,IAAIrwB,EAAQ8E,EAAQurB,GAEpB,OAAI4uD,EAAehhF,eAAeoyB,KAC5BvrB,EAAQo6E,UACM,MAATl/E,EAAgBA,EAAQ8E,EAAQ6N,SAMpC3S,CACT,IAIFpE,EAAA,QAAkBuM,8BC7FlB,SAASs4E,EAAyBC,GAChC,OAAgB,IAAZA,EAAGjkE,MAA2B,IAAbikE,EAAGhkE,OAA0B,IAAXgkE,EAAG/jE,KAA2B,IAAd+jE,EAAG9jE,MAK5D,CAnBA/e,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAEA,SAAiC+kF,EAAKC,GACpC,OAAIH,EAAyBE,KAAQF,EAAyBG,MAIrDA,EAAInkE,MAAQkkE,EAAIjkE,OAASkkE,EAAIlkE,OAASikE,EAAIlkE,MAAQmkE,EAAIjkE,KAAOgkE,EAAI/jE,QAAUgkE,EAAIhkE,QAAU+jE,EAAIhkE,IACxG,6BCXA9e,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAkBA,SAA0BsrB,GACxB,MAAMnH,EAAS,CACbqH,MAAOF,EACPG,cAAe,KAGjB,IAAK3qB,OAAOyqB,QAAS,CAEnB,MAAMgE,EAAIrF,SAAS8B,qBAAqB,QAAQ,GAChDuD,EAAE3X,WAAa,cACf,MAAM8T,EAAI9b,YAAW,KACnB2f,EAAE3X,UAAY2X,EAAE3X,UAAUjX,QAAQ,0BAA2B,KAC7D4uB,EAAE3X,WAAa,cAAc,GAC5BuM,EAAOsH,eACJE,EAAKzB,SAASpkB,cAAc,UAClC,IAAI8lB,GAAI,EACRD,EAAGE,IAAM,2BAA2B1H,EAAOqH,WAC3CG,EAAGzU,KAAO,kBACVyU,EAAG9H,MAAQ,OAEX8H,EAAGG,OAASH,EAAGs5D,mBAAqB,WAClC,MAAMztD,EAAIrvB,KAAK+8E,WAEf,KAAIt5D,GAAK4L,GAAW,aAANA,GAA0B,WAANA,GAAlC,CAIA5L,GAAI,EACJrX,aAAamX,GAEb,IACE5qB,OAAOyqB,QAAQb,KAAKvG,EACtB,CAAE,MAAOpW,GAET,CATA,CAUF,EAEA,MAAMge,EAAI7B,SAAS8B,qBAAqB,UAAU,GAClDD,EAAEE,WAAWC,aAAaP,EAAII,EAChC,CACF,gCC7DA9pB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QA4BA,SAA6BmlF,GAC3B,MAAMzN,EAAQyN,EAAiB3jF,UACzBw5E,EAA6BtD,EAAMsD,2BACnCiD,EAA4BvG,EAAMuG,0BAClCzjC,EAAmCk9B,EAAMl9B,kCAEwB,KAAnE,EAAI4qC,EAAeruE,SAAStV,EAAOsV,QAAQpI,QAAS,YAClDqsE,IACFtD,EAAM2N,oBAAsB,SAAU7gF,EAAO81C,GAC3C0gC,EAA2Bv3E,MAAM0E,KAAMtE,UACzC,GAGEo6E,IACFvG,EAAM4N,mBAAqB,WACzBrH,EAA0Bx6E,MAAM0E,KAAMtE,UACxC,GAGE22C,IACFk9B,EAAM6N,0BAA4B,SAAU/gF,GAC1Cg2C,EAAiC/2C,MAAM0E,KAAMtE,UAC/C,GAGN,EAnDA,IAAIuhF,EAAiBziF,EAAuB,EAAQ,QAEhDlB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,8BCT9Fa,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAmBlB,IAAIwlF,EAAc,EAIlBxlF,EAAA,QAFe,IAHA,qBAGiBwlF,8BCxBhCvjF,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAioDlBA,EAAA,QA5nDe,CACb,SAAY,CACV,SAAY,CACV,OAAU,CACR,aAAgB,CACd,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,OAAU,CACR,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,yBAA0B,CACxB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,SAIrB,UAAa,CACX,QAAW,CACT,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,uBAItC,MAAS,CACP,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,OAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,wBAKxC,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,qBACpB,eAAgB,yBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,YAAa,CACX,oBAAqB,uBAI3B,WAAc,CACZ,OAAU,CACR,YAAa,CACX,oBAAqB,wBAK7B,UAAa,CACX,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,qBACpB,eAAgB,sBAElB,SAAY,CACV,mBAAoB,qBACpB,eAAgB,eAElB,cAAe,CACb,mBAAoB,qBACpB,eAAgB,uBAItB,MAAS,CACP,OAAU,CACR,QAAW,CACT,mBAAoB,cACpB,eAAgB,sBAElB,SAAY,CACV,mBAAoB,cACpB,eAAgB,sBAElB,cAAe,CACb,mBAAoB,cACpB,eAAgB,wBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,YAAa,wBAInB,KAAQ,CACN,OAAU,CACR,QAAW,CACT,YAAa,uBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,sBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,wBAMvB,MAAS,CACP,aAAgB,CACd,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,OAAU,CACR,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,yBAA0B,CACxB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,SAIrB,UAAa,CACX,QAAW,CACT,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,uBAItC,MAAS,CACP,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,wBAKxC,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,qBACpB,eAAgB,yBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,YAAa,CACX,oBAAqB,uBAI3B,WAAc,CACZ,OAAU,CACR,YAAa,CACX,oBAAqB,wBAK7B,UAAa,CACX,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,qBACpB,eAAgB,sBAElB,SAAY,CACV,mBAAoB,qBACpB,eAAgB,eAElB,cAAe,CACb,mBAAoB,qBACpB,eAAgB,uBAItB,MAAS,CACP,OAAU,CACR,QAAW,CACT,mBAAoB,cACpB,eAAgB,sBAElB,SAAY,CACV,mBAAoB,cACpB,eAAgB,sBAElB,cAAe,CACb,mBAAoB,cACpB,eAAgB,wBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,YAAa,wBAInB,KAAQ,CACN,OAAU,CACR,QAAW,CACT,YAAa,uBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,sBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,yBAOzB,MAAS,CACP,OAAU,CACR,aAAgB,CACd,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,OAAU,CACR,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,yBAA0B,CACxB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,SAIrB,UAAa,CACX,QAAW,CACT,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,uBAItC,MAAS,CACP,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,OAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,wBAKxC,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,qBACpB,eAAgB,yBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,YAAa,CACX,oBAAqB,uBAI3B,WAAc,CACZ,OAAU,CACR,YAAa,CACX,oBAAqB,wBAK7B,UAAa,CACX,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,qBACpB,eAAgB,sBAElB,SAAY,CACV,mBAAoB,qBACpB,eAAgB,eAElB,cAAe,CACb,mBAAoB,qBACpB,eAAgB,uBAItB,MAAS,CACP,OAAU,CACR,QAAW,CACT,mBAAoB,cACpB,eAAgB,sBAElB,SAAY,CACV,mBAAoB,cACpB,eAAgB,sBAElB,cAAe,CACb,mBAAoB,cACpB,eAAgB,wBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,YAAa,wBAInB,KAAQ,CACN,OAAU,CACR,QAAW,CACT,YAAa,uBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,sBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,wBAMvB,MAAS,CACP,aAAgB,CACd,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,OAAU,CACR,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,yBAA0B,CACxB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,kBACd,cAAe,qBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,SAIrB,UAAa,CACX,QAAW,CACT,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,uBAItC,MAAS,CACP,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,wBAKxC,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,qBACpB,eAAgB,yBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,YAAa,CACX,oBAAqB,uBAI3B,WAAc,CACZ,OAAU,CACR,YAAa,CACX,oBAAqB,wBAK7B,UAAa,CACX,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,qBACpB,eAAgB,sBAElB,SAAY,CACV,mBAAoB,qBACpB,eAAgB,eAElB,cAAe,CACb,mBAAoB,qBACpB,eAAgB,uBAItB,MAAS,CACP,OAAU,CACR,QAAW,CACT,mBAAoB,cACpB,eAAgB,sBAElB,SAAY,CACV,mBAAoB,cACpB,eAAgB,sBAElB,cAAe,CACb,mBAAoB,cACpB,eAAgB,wBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,YAAa,wBAInB,KAAQ,CACN,OAAU,CACR,QAAW,CACT,YAAa,uBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,sBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,yBAOzB,KAAQ,CACN,OAAU,CACR,aAAgB,CACd,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,OAAU,CACR,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,yBAA0B,CACxB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,SAIrB,UAAa,CACX,QAAW,CACT,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,uBAItC,MAAS,CACP,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,OAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,wBAKxC,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,kBACpB,eAAgB,sBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,YAAa,CACX,oBAAqB,uBAI3B,WAAc,CACZ,OAAU,CACR,YAAa,CACX,oBAAqB,wBAK7B,UAAa,CACX,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,kBACpB,eAAgB,mBAElB,SAAY,CACV,mBAAoB,kBACpB,eAAgB,eAElB,cAAe,CACb,mBAAoB,kBACpB,eAAgB,uBAItB,MAAS,CACP,OAAU,CACR,QAAW,CACT,mBAAoB,cACpB,eAAgB,mBAElB,SAAY,CACV,mBAAoB,cACpB,eAAgB,mBAElB,cAAe,CACb,mBAAoB,cACpB,eAAgB,wBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,YAAa,wBAInB,KAAQ,CACN,OAAU,CACR,QAAW,CACT,YAAa,uBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,sBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,wBAMvB,MAAS,CACP,aAAgB,CACd,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,OAAU,CACR,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,yBAA0B,CACxB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,SAIrB,UAAa,CACX,QAAW,CACT,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,uBAItC,MAAS,CACP,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,wBAKxC,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,kBACpB,eAAgB,sBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,YAAa,CACX,oBAAqB,uBAI3B,WAAc,CACZ,OAAU,CACR,YAAa,CACX,oBAAqB,wBAK7B,UAAa,CACX,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,kBACpB,eAAgB,mBAElB,SAAY,CACV,mBAAoB,kBACpB,eAAgB,eAElB,cAAe,CACb,mBAAoB,kBACpB,eAAgB,uBAItB,MAAS,CACP,OAAU,CACR,QAAW,CACT,mBAAoB,cACpB,eAAgB,mBAElB,SAAY,CACV,mBAAoB,cACpB,eAAgB,mBAElB,cAAe,CACb,mBAAoB,cACpB,eAAgB,wBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,YAAa,wBAInB,KAAQ,CACN,OAAU,CACR,QAAW,CACT,YAAa,uBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,sBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,yBAOzB,QAAW,CACT,OAAU,CACR,aAAgB,CACd,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,OAAU,CACR,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,yBAA0B,CACxB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,SAIrB,UAAa,CACX,QAAW,CACT,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,uBAItC,MAAS,CACP,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,OAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,wBAKxC,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,eACpB,eAAgB,sBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,YAAa,CACX,oBAAqB,uBAI3B,WAAc,CACZ,OAAU,CACR,YAAa,CACX,oBAAqB,wBAK7B,UAAa,CACX,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,eACpB,eAAgB,mBAElB,SAAY,CACV,mBAAoB,kBACpB,eAAgB,eAElB,cAAe,CACb,mBAAoB,eACpB,eAAgB,uBAItB,MAAS,CACP,OAAU,CACR,QAAW,CACT,mBAAoB,cACpB,eAAgB,mBAElB,SAAY,CACV,mBAAoB,cACpB,eAAgB,mBAElB,cAAe,CACb,mBAAoB,cACpB,eAAgB,wBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,YAAa,wBAInB,KAAQ,CACN,OAAU,CACR,QAAW,CACT,YAAa,uBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,sBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,wBAMvB,MAAS,CACP,aAAgB,CACd,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,OAAU,CACR,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,yBAA0B,CACxB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,MAAS,CACP,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,kBACf,mBAAoB,sBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,QAGnB,wBAAyB,CACvB,OAAU,CACR,QAAW,CACT,aAAc,qBACd,cAAe,wBACf,mBAAoB,uBAGxB,WAAc,CACZ,OAAU,OACV,MAAS,OACT,cAAe,SAIrB,UAAa,CACX,QAAW,CACT,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,uBAItC,MAAS,CACP,WAAc,CACZ,6BAA8B,MAC9B,oCAAqC,SACrC,0CAA2C,MAC3C,0BAA2B,QAE7B,OAAU,CACR,QAAW,CACT,+BAAgC,wBAKxC,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,eACpB,eAAgB,sBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,YAAa,CACX,oBAAqB,uBAI3B,WAAc,CACZ,OAAU,CACR,YAAa,CACX,oBAAqB,wBAK7B,UAAa,CACX,QAAW,CACT,OAAU,CACR,QAAW,CACT,mBAAoB,eACpB,eAAgB,mBAElB,SAAY,CACV,mBAAoB,kBACpB,eAAgB,eAElB,cAAe,CACb,mBAAoB,eACpB,eAAgB,uBAItB,MAAS,CACP,OAAU,CACR,QAAW,CACT,mBAAoB,cACpB,eAAgB,mBAElB,SAAY,CACV,mBAAoB,cACpB,eAAgB,mBAElB,cAAe,CACb,mBAAoB,cACpB,eAAgB,wBAKxB,QAAW,CACT,QAAW,CACT,OAAU,CACR,QAAW,CACT,YAAa,wBAInB,KAAQ,CACN,OAAU,CACR,QAAW,CACT,YAAa,uBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,sBAInB,SAAY,CACV,OAAU,CACR,QAAW,CACT,YAAa,sDC3nD7BiC,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQ+tD,uBAoBR,SAAgCtiD,EAAO0N,EAAc,YACnD,OAAQ1N,EAAMrJ,KACZ,IAAK,QACL,IAAK,IACC+F,KAAK2lD,iBACP3lD,KAAK2lD,gBAAgBriD,GAGvB,MAEF,IAAK,MACCtD,KAAK6lD,OACP7lD,KAAK6lD,MAAMviD,GAGb,MAEF,IAAK,SACCtD,KAAKg5E,SACPh5E,KAAKg5E,SAAS11E,GACLtD,KAAK24E,cACd34E,KAAK24E,aAAar1E,GAGpB,MAEF,IAAK,WACCtD,KAAKu5E,WACPv5E,KAAKu5E,WAAWj2E,GACPtD,KAAK44E,aACd54E,KAAK44E,YAAYt1E,GAGnB,MAEF,IAAK,OACCtD,KAAK24E,cACP34E,KAAK24E,aAAar1E,GAGpB,MAEF,IAAK,MACCtD,KAAK44E,aACP54E,KAAK44E,YAAYt1E,GAGnB,MAEF,IAAK,UACL,IAAK,KACH,GAAIA,EAAMqrD,QAAU3uD,KAAKs9E,aACvBt9E,KAAKs9E,aAAah6E,QACb,GAAItD,KAAK64E,gBACd,OAAQ7nE,GACN,IAAK,WACHhR,KAAK64E,gBAAgBv1E,GACrB,MAEF,IAAK,aACH,MAEF,QACEtD,KAAK3D,MAAMkhF,gBAAkBv9E,KAAK64E,gBAAgBv1E,EAAOtD,KAAK3D,MAAMkhF,mBAAqBv9E,KAAK64E,gBAAgBv1E,GAKpH,MAEF,IAAK,YACL,IAAK,OACH,GAAIA,EAAMqrD,QAAU3uD,KAAKw9E,eACvBx9E,KAAKw9E,eAAel6E,QACf,GAAItD,KAAK+4E,YACd,OAAQ/nE,GACN,IAAK,WACHhR,KAAK+4E,YAAYz1E,GACjB,MAEF,IAAK,aACH,MAEF,QACEtD,KAAK3D,MAAMkhF,gBAAkBv9E,KAAK+4E,YAAYz1E,EAAOtD,KAAK3D,MAAMkhF,mBAAqBv9E,KAAK+4E,YAAYz1E,GAK5G,MAEF,IAAK,YACL,IAAK,OACiB,aAAhB0N,GAA8BhR,KAAK64E,iBACrC74E,KAAK64E,gBAAgBv1E,GAGvB,MAEF,IAAK,aACL,IAAK,QACiB,aAAhB0N,GAA8BhR,KAAK+4E,aACrC/4E,KAAK+4E,YAAYz1E,GAGnB,MAEF,IAAK,SACL,IAAK,MACCtD,KAAKy9E,UACPz9E,KAAKy9E,SAASn6E,GAQtB,EAzIAzL,EAAQu+C,MA2IR,YAAkB9uC,GAChB,MAAO,IAAIkM,KACT,IAAK,IAAIhM,KAAYF,EACK,mBAAbE,GACTA,KAAYgM,EAEhB,CAEJ,EAlJA3b,EAAQw+C,qBAsJR,SAA8B+X,EAAS9qD,GAEhCye,SAMDqsC,IACFA,EAAQj0D,KAAK6F,KAAMsD,GAEfA,EAAM49C,sBACRw8B,EAAoC,cAAfp6E,EAAMyL,MAM1B2uE,GAA4C,mBAAf19E,KAAKs1C,OACrCt1C,KAAKs1C,QAGY,YAAfhyC,EAAMyL,OACR2uE,GAAqB,IApBrBtvB,GAAWA,EAAQj0D,KAAK6F,KAAMsD,EAsBlC,EA3BA,IAAIo6E,GAAqB,8BCzJzB5jF,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAwMA,SAA6BwE,GAC3B,MAAMshF,EAAc,CAAC,EAErB,IAAK,MAAMzL,KAAQ71E,EACbA,EAAMnC,eAAeg4E,KAAU0L,EAAS1L,IAAS2L,EAAO/0D,KAAKopD,MAC/DyL,EAAYzL,GAAQ71E,EAAM61E,IAI9B,OAAOyL,CACT,EAhMA,MAAMC,EAAW,CACf,KAAQ,EACR,OAAU,EACV,cAAiB,EACjB,UAAa,EACb,OAAU,EACV,gBAAmB,EACnB,kBAAqB,EACrB,IAAO,EACP,MAAS,EACT,aAAgB,EAChB,UAAa,EACb,SAAY,EACZ,kBAAqB,EACrB,YAAe,EACf,YAAe,EACf,UAAa,EACb,QAAW,EACX,QAAW,EACX,KAAQ,EACR,MAAS,EACT,UAAa,EACb,KAAQ,EACR,QAAW,EACX,QAAW,EACX,QAAW,EACX,gBAAmB,EACnB,YAAe,EACf,SAAY,EACZ,OAAU,EACV,YAAe,EACf,KAAQ,EACR,SAAY,EACZ,QAAW,EACX,qBAAwB,EACxB,qBAAwB,EACxB,uBAA0B,EAC1B,uBAA0B,EAC1B,MAAS,EACT,IAAO,EACP,SAAY,EACZ,SAAY,EACZ,UAAa,EACb,SAAY,EACZ,QAAW,EACX,IAAO,EACP,KAAQ,EACR,WAAc,EACd,YAAe,EACf,WAAc,EACd,eAAkB,EAClB,WAAc,EACd,YAAe,EACf,QAAW,EACX,OAAU,EACV,OAAU,EACV,KAAQ,EACR,KAAQ,EACR,SAAY,EACZ,QAAW,EACX,UAAa,EACb,KAAQ,EACR,GAAM,EACN,UAAa,EACb,MAAS,EACT,OAAU,EACV,SAAY,EACZ,QAAW,EACX,UAAa,EACb,SAAY,EACZ,KAAQ,EACR,MAAS,EACT,KAAQ,EACR,KAAQ,EACR,KAAQ,EACR,SAAY,EACZ,IAAO,EACP,UAAa,EACb,MAAS,EACT,WAAc,EACd,OAAU,EACV,IAAO,EACP,UAAa,EACb,SAAY,EACZ,MAAS,EACT,KAAQ,EACR,WAAc,EACd,KAAQ,EACR,QAAW,EACX,QAAW,EACX,KAAQ,EACR,YAAe,EACf,OAAU,EACV,QAAW,EACX,WAAc,EACd,SAAY,EACZ,IAAO,EACP,SAAY,EACZ,KAAQ,EACR,KAAQ,EACR,QAAW,EACX,QAAW,EACX,MAAS,EACT,OAAU,EACV,UAAa,EACb,SAAY,EACZ,SAAY,EACZ,MAAS,EACT,KAAQ,EACR,MAAS,EACT,SAAY,EACZ,KAAQ,EACR,WAAc,EACd,IAAO,EACP,OAAU,EACV,OAAU,EACV,MAAS,EACT,KAAQ,EACR,MAAS,EACT,SAAY,EACZ,OAAU,EACV,MAAS,EACT,UAAa,EACb,KAAQ,EACR,cAAiB,EACjB,OAAU,EACV,MAAS,EACT,MAAS,EACT,MAAS,EACT,KAAQ,EACR,OAAU,EACV,MAAS,EACT,QAAW,EACX,OAAU,EACV,QAAW,EACX,QAAW,EACX,SAAY,EACZ,iBAAoB,EACpB,mBAAsB,EACtB,oBAAuB,EACvB,UAAa,EACb,WAAc,EACd,QAAW,EACX,QAAW,EACX,OAAU,EACV,SAAY,EACZ,QAAW,EACX,SAAY,EACZ,QAAW,EACX,cAAiB,EACjB,cAAiB,EACjB,OAAU,EACV,UAAa,EACb,YAAe,EACf,WAAc,EACd,YAAe,EACf,WAAc,EACd,YAAe,EACf,OAAU,EACV,YAAe,EACf,aAAgB,EAChB,aAAgB,EAChB,YAAe,EACf,WAAc,EACd,YAAe,EACf,UAAa,EACb,SAAY,EACZ,cAAiB,EACjB,WAAc,EACd,YAAe,EACf,aAAgB,EAChB,iBAAoB,EACpB,eAAkB,EAClB,qBAAwB,EACxB,gBAAmB,GAMfC,EAAS,mDCzMf/jF,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAiCA,SAAmBmlF,GACjB,MAAMzN,EAAQyN,EAAiB3jF,UACzBw5E,EAA6BtD,EAAMsD,2BACnCh7B,EAAqB03B,EAAM13B,mBACjC,IAAIimC,EAAuB,KAE3BvO,EAAMsD,2BAA6B,SAAUx2E,EAAO81C,GAMlD,GAJI0gC,GACFA,EAA2Bv3E,MAAM0E,KAAMtE,WAGb,MAAxBoiF,GAAgCA,IAAyB/7D,SAAS0nC,cACpE,IACE,MAAMlrD,EAAOkiD,EAAU7xC,QAAQyyC,YAAYrhD,MAE3C89E,EAAuBv/E,EAAKulB,WAAWilC,cAAc,IAAM5S,EAC7D,CAAE,MAAOx5C,GACT,CAEJ,EAEA4yE,EAAM13B,mBAAqB,SAAUx7C,EAAO81C,GAEtC0F,GACFA,EAAmBv8C,MAAM0E,KAAMtE,WAGjC,IACE,MAAM6C,EAAOkiD,EAAU7xC,QAAQyyC,YAAYrhD,OAEvC89E,GAAyB/7D,SAAS0nC,gBAAkBq0B,IAAwBv/E,EAAK2uD,SAASnrC,SAAS0nC,gBAAoBq0B,EAAqBhS,UAAU5e,SAAS/W,KACjKp0B,SAAS0nC,cAAcqiB,UAAUnoC,IAAIwS,GACrC2nC,EAAuB,KAE3B,CAAE,MAAOnhF,GACT,CACF,CACF,EAtEA9E,EAAQs+C,0BAAuB,EAElB37C,EAAuB,EAAQ,QAA5C,IAEIimD,EAAYjmD,EAAuB,EAAQ,QAE/C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAkB9F,MAAMk9C,EAAuB,aAM7Bt+C,EAAQs+C,qBAAuBA,6BClC/Br8C,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAEA,WACE,MAAM0qE,EAAM5pE,OAAO2oB,SAAW3oB,OAAO2oB,QAAQ,OAI7C,OAFgBihD,GAAOA,EAAIkB,KAAOlB,EAAIkB,KAAKt8D,KAAO,WAGhD,IAAK,eA0CT,WACE,IAmII2f,EAAO/E,SAAS+E,MAAQ/E,SAAS8B,qBAAqB,QAAQ,GAC9DxM,EAAQ0K,SAASpkB,cAAc,SACnCmpB,EAAKuqC,YAAYh6C,GACjBA,EAAMtI,KAAO,WACbsI,EAAMg6C,YAAYtvC,SAASg8D,eAvIjB,kkJAwIZ,CAlLMC,GAEkC,WAA9BrlF,OAAO+K,UAAUu6E,UAe3B,WACE,IAgBIn3D,EAAO/E,SAAS+E,MAAQ/E,SAAS8B,qBAAqB,QAAQ,GAC9DxM,EAAQ0K,SAASpkB,cAAc,SACnCmpB,EAAKuqC,YAAYh6C,GACjBA,EAAMtI,KAAO,WACbsI,EAAMg6C,YAAYtvC,SAASg8D,eApBjB,maAqBZ,CApCQG,GAGF,MAEF,IAAK,aA4KT,WACE,IAyBIp3D,EAAO/E,SAAS+E,MAAQ/E,SAAS8B,qBAAqB,QAAQ,GAC9DxM,EAAQ0K,SAASpkB,cAAc,SACnCmpB,EAAKuqC,YAAYh6C,GACjBA,EAAMtI,KAAO,WACbsI,EAAMg6C,YAAYtvC,SAASg8D,eA7BjB,41BA8BZ,CA1MMI,GACA,MAEF,QACE,OAAO,KAEb,gCC3BArkF,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQy+C,UAwBR,SAAmBxnC,EAAM61B,EAAO,CAAC,GAC/B,IAAK71B,EACH,OAAO,KAGT,GAAoB,iBAATA,EACT,MAAM,IAAI3I,MAAM,gIAGlB,MAAM,UACJsJ,EAAS,KACTmH,EACA,aAAc1D,EACd,cAAemxC,EAAU,IACzBvtC,EAAM5D,GAAapE,EAAKzS,MAAM,eAAiByS,EAAKzS,MAAMya,KACxD6tB,EACJ,OAAoBrrC,EAAOsV,QAAQsiC,aAAapiC,EAAM,CACpDW,WAAW,EAAIkiC,EAAY/iC,SAASa,EAAWX,EAAKzS,MAAMoT,WAC1DmH,KAAM9H,EAAKzS,MAAMua,MAAQA,EACzB,aAAc1D,GAAa4D,EAC3BA,MACA,cAAeutC,IAAevtC,GAAMhI,EAAKzS,MAAM,gBAEnD,EA7CA,IAAIs1C,EAAcn3C,EAAuB,EAAQ,QAE7ClB,EAASkB,EAAuB,EAAQ,QAE5C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,gCCT9Fa,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQwhE,UA6BR,SAAmBh9C,GACjB+hE,EAAgB/hE,CAClB,EA9BAxkB,EAAQwmF,UAgCR,WACE,OAAOD,CACT,EAjCAvmF,EAAQgrD,iBAmCR,SAA0By7B,GACxB,IAAI9kF,EAAQ,CAAC,EACb,OAAO,SAAuBS,EAAKskF,EAAW/R,GAC5C,IAAI1rE,EAAUtH,EAAMS,EAAM,IAAMmkF,GAEhC,IAAKt9E,EAAS,CACZ,IACI09E,GADgBF,EAAQF,IAAkBE,EAAQ,UAC9BrkF,GAExB,IAAKukF,EACH,MAAM,IAAIr4E,MAAM,+BAA+BlM,QAAUmkF,YAG3Dt9E,EAAU,IAAI29E,EAAmB7vE,QAAQ4vE,EAAKJ,EAAe5R,GAC7DhzE,EAAMS,GAAO6G,CACf,CAEA,OAAOA,EAAQ0oB,OAAO+0D,EACxB,CACF,EArDA1mF,EAAQ8wC,mBAAgB,EAExB,IAEgC1vC,EAF5BwlF,GAE4BxlF,EAFgB,EAAQ,SAEHA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAkBvF,MAAM0vC,EAAqC,oBAAdjlC,YAA8BA,UAAU82B,UAAY92B,UAAUg7E,eAAiB,QAC5G7mF,EAAQ8wC,cAAgBA,EACxB,IAAIy1C,EAAgBz1C,8BC9BpB7uC,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAEA,WACE,MAAM0qE,EAAM5pE,OAAO2oB,SAAW3oB,OAAO2oB,QAAQ,OAE7C,SAAOihD,IAAOA,EAAIkB,QAAOlB,EAAIkB,KAAKuC,UAA8B,cAAlBzD,EAAIkB,KAAKt8D,MAA0C,gBAAlBo7D,EAAIkB,KAAKt8D,KAC1F,8BCTArN,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EAgElBA,EAAA,QA9Ce,CAAC0G,EAAMulB,EAAY66D,KAChC,GAAI76D,GAAcA,EAAWopC,SAAS3uD,GAAO,CAC3C,MAAM,aACJ81D,EAAY,YACZF,EAAW,UACX1C,EAAS,WACTD,GACE1tC,GACE,aACJu1D,EAAY,YACZ5b,EAAW,UACX2b,EAAS,WACTwF,GACErgF,EACEsgF,EAAiBlmF,OAAOovD,iBAAiBjkC,GAAYhQ,SAC3D,IAAIgrE,EAAkBh7D,EAAWs1D,UAC7B2F,EAAmBj7D,EAAW86D,WAMlC,GAJuB,WAAnBC,IACFC,EAAkBC,EAAmB,GAGnC3F,EAAY3nB,EACd3tC,EAAW2tC,UAAY2nB,MAClB,CACL,MAAM4F,EAAe5F,EAAYC,EAG7B2F,EAFiBvtB,EAAY4C,IAG/BvwC,EAAW2tC,UAAYktB,EAAevF,EAAY0F,EAAkBE,EAAe3qB,EAAeyqB,EAEtG,CAEA,GAAIF,EAAaptB,EACf1tC,EAAW0tC,WAAaotB,MACnB,CACL,MAAMK,EAAcL,EAAanhB,EAG7BwhB,EAFgBztB,EAAa2C,IAG/BrwC,EAAW0tC,WAAamtB,EAAeC,EAAaG,EAAmBE,EAAc9qB,EAAc4qB,EAEvG,CACF,iCChEFjlF,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAUA,SAA8BkiE,EAAYmlB,GAAoB,EAAOC,OAAkBp8E,EAAWmvD,EAAe,KAAMktB,GAAgB,GACrI,IAAKrlB,EACH,OAGkB,MAAhB7H,GAAwBgtB,IAC1BhtB,EAAe6H,EAAW5H,yBAGxBitB,GACFj/B,EAAevxC,QAAQzK,cAAck8C,2BAA2B6+B,GAAmB,EAAMnlB,EAAY7H,GAGvG,MACMmtB,GADmB,EAAIh3B,EAASz5C,SAAS6xC,EAAU7xC,QAAQyyC,YAAY0Y,GAAa,6BACrDh4C,SAASgnC,cAAc,4BAE5D,GAAIs2B,EAAU,CACZ,IAAIplB,EAAaolB,EAAS9G,aAAa,cAOnCte,GACFA,EAAWF,EAPF,CACTC,QAASklB,EACT13E,SAAU23E,EACVjtB,aAAcA,GAMlB,CACF,EApCA,IAAI7J,EAAW7tD,EAAuB,EAAQ,QAE1CimD,EAAYjmD,EAAuB,EAAQ,QAE3C2lD,EAAiB3lD,EAAuB,EAAQ,QAEpD,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,8BCiB9F,SAASkxC,EAAUjsC,EAAS,GAAIohF,EAAoB,OAKlD,MAJI,cAAerkD,OAAO5hC,YACxB6E,EAASA,EAAOisC,UAAUm1C,IAGrBphF,CACT,CAlCApE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQ0nF,MAqBR,SAAerhF,GACb,OAAOA,KAAYA,EAAO0qB,MAAM,WAClC,EAtBA/wB,EAAQsyC,UAAYA,EACpBtyC,EAAQ8hF,iBA+BR,SAA0Bz7E,EAAS,GAAIohF,EAAoB,OACzD,OAAOn1C,EAAUjsC,EAAQohF,EAAkB9mF,QAAQ,IAAK,MAAMA,QAAQ,mBAAoB,GAC5F,EAhCAX,EAAQqpE,iBAoCR,SAA0Bse,GACxB,IAAIv8E,EAAS,GAEb,MAAMw8E,EAAuBjtE,IAC3B,GAAqB,iBAAVA,GAAuC,iBAAVA,EACtCvP,EAAS,GAAGA,KAAUuP,SACjB,GAAItN,MAAMwgC,QAAQlzB,GACvBA,EAAM3W,SAAQ6tB,GAAK+1D,EAAqB/1D,UACnC,GAAIlX,GAASA,EAAMnW,MAAO,CAC/B,MAAM,SACJwB,GACE2U,EAAMnW,MAEN6I,MAAMwgC,QAAQ7nC,GAChBA,EAAShC,SAAQ6tB,GAAK+1D,EAAqB/1D,KAE3C+1D,EAAqB5hF,EAEzB,GAMF,OAHA4hF,EAAqBD,GAGdv8E,EAAOqiB,OAAO9sB,QADW,eACsB,KACxD,8BCnEAsB,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,aAAkB,EA0ClBA,EAAA,QAxBA,MACE,WAAAuB,CAAYoO,EAAU0mD,GACpBluD,KAAKwH,SAAWA,EAChBxH,KAAK0/E,UAAYxxB,EACjBluD,KAAK2/E,QACP,CAEA,KAAAC,GACEjnF,OAAOyT,aAAapM,KAAK6/E,SACzB7/E,KAAK0/E,WAAa,IAAIn9E,KAASvC,KAAK86B,KACtC,CAEA,MAAA6kD,GACE3/E,KAAK86B,MAAQ,IAAIv4B,KAEbvC,KAAK6/E,SACPlnF,OAAOyT,aAAapM,KAAK6/E,SAG3B7/E,KAAK6/E,QAAUlnF,OAAO8O,WAAWzH,KAAKwH,SAAUxH,KAAK0/E,UACvD,iCCzCF,IAAIllF,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAIA,SAAuB0zE,QACT,IAARA,IACFA,GAAM,EAAIzgB,EAAel8C,YAG3B,IACE,OAAO28D,EAAI9hB,aACb,CAAE,MAAOloC,GAET,CACF,EAZA,IAAIupC,EAAiBtwD,EAAuB,EAAQ,QAcpD1C,EAAOD,QAAUA,EAAiB,sCCnBlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAIA,SAAkBuqB,EAAS3S,GACrB2S,EAAQ0pD,UAAW1pD,EAAQ0pD,UAAUnoC,IAAIl0B,IAAqB,EAAIqwE,EAAUlxE,SAASwT,EAAS3S,KAA6C,iBAAtB2S,EAAQ3S,UAAwB2S,EAAQ3S,UAAY2S,EAAQ3S,UAAY,IAAMA,EAAe2S,EAAQylC,aAAa,SAAUzlC,EAAQ3S,WAAa2S,EAAQ3S,UAAUswE,SAAW,IAAM,IAAMtwE,GACrT,EAJA,IAAIqwE,EAAYtlF,EAAuB,EAAQ,OAM/C1C,EAAOD,QAAUA,EAAiB,mCCXlCA,EAAQ0B,YAAa,EACrB1B,EAAA,QAEA,SAAkBuqB,EAAS3S,GACzB,OAAI2S,EAAQ0pD,YAAoBr8D,GAAa2S,EAAQ0pD,UAAU5e,SAASz9C,IAA0H,KAAlG,KAAO2S,EAAQ3S,UAAUswE,SAAW39D,EAAQ3S,WAAa,KAAK40B,QAAQ,IAAM50B,EAAY,IAC1L,EAEA3X,EAAOD,QAAUA,EAAiB,sCCPlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,aAAkB,EAElB,IAAImoF,EAAYxlF,EAAuB,EAAQ,QAE/C3C,EAAQ09E,SAAWyK,EAAUpxE,QAE7B,IAAIqxE,EAAezlF,EAAuB,EAAQ,QAElD3C,EAAQ69E,YAAcuK,EAAarxE,QAEnC,IAAIkxE,EAAYtlF,EAAuB,EAAQ,OAE/C3C,EAAQqoF,SAAWJ,EAAUlxE,QAC7B,IAAIxK,EAAW,CACbmxE,SAAUyK,EAAUpxE,QACpB8mE,YAAauK,EAAarxE,QAC1BsxE,SAAUJ,EAAUlxE,SAEtB/W,EAAA,QAAkBuM,0BCrBlB,SAAS+7E,EAAiBC,EAAWC,GACnC,OAAOD,EAAU5nF,QAAQ,IAAIg5B,OAAO,UAAY6uD,EAAgB,YAAa,KAAM,MAAM7nF,QAAQ,OAAQ,KAAKA,QAAQ,aAAc,GACtI,CAEAV,EAAOD,QAAU,SAAqBuqB,EAAS3S,GACzC2S,EAAQ0pD,UAAW1pD,EAAQ0pD,UAAUziB,OAAO55C,GAAiD,iBAAtB2S,EAAQ3S,UAAwB2S,EAAQ3S,UAAY0wE,EAAiB/9D,EAAQ3S,UAAWA,GAAgB2S,EAAQylC,aAAa,QAASs4B,EAAiB/9D,EAAQ3S,WAAa2S,EAAQ3S,UAAUswE,SAAW,GAAItwE,GAC1R,gCCNA,IAAIjV,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,aAAkB,EAElB,IAEIyoF,EAAM,WAAgB,EAFb9lF,EAAuB,EAAQ,OAIjCoU,UACT0xE,EACMv+D,SAASzhB,iBAAyB,SAAU/B,EAAMi5C,EAAW4W,EAASuoB,GACxE,OAAOp4E,EAAK0F,oBAAoBuzC,EAAW4W,EAASuoB,IAAW,EACjE,EAAW50D,SAAS+0D,YAAoB,SAAUv4E,EAAMi5C,EAAW4W,GACjE,OAAO7vD,EAAKw4E,YAAY,KAAOv/B,EAAW4W,EAC5C,OAFO,GAMX,IAAIhqD,EAAWk8E,EACfzoF,EAAA,QAAkBuM,EAClBtM,EAAOD,QAAUA,EAAiB,sCCrBlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,aAAkB,EAElB,IAEI0oF,EAAK,WAAe,EAFX/lF,EAAuB,EAAQ,OAIjCoU,UACT2xE,EACMx+D,SAASzhB,iBAAyB,SAAU/B,EAAMi5C,EAAW4W,EAASuoB,GACxE,OAAOp4E,EAAK+B,iBAAiBk3C,EAAW4W,EAASuoB,IAAW,EAC9D,EAAW50D,SAAS+0D,YAAoB,SAAUv4E,EAAMi5C,EAAW4W,GACjE,OAAO7vD,EAAKu4E,YAAY,KAAOt/B,GAAW,SAAUj2B,IAClDA,EAAIA,GAAK5oB,OAAO2K,OACd9H,OAAS+lB,EAAE/lB,QAAU+lB,EAAEi/D,WACzBj/D,EAAEgkC,cAAgBhnD,EAClB6vD,EAAQj0D,KAAKoE,EAAMgjB,EACrB,GACF,OAPO,GAWX,IAAInd,EAAWm8E,EACf1oF,EAAA,QAAkBuM,EAClBtM,EAAOD,QAAUA,EAAiB,oCC1BlCA,EAAQ0B,YAAa,EACrB1B,EAAA,QAEA,SAAuB0G,GACrB,OAAOA,GAAQA,EAAKkiF,eAAiB1+D,QACvC,EAEAjqB,EAAOD,QAAUA,EAAiB,sCCPlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAQA,SAAiB0G,EAAM2kC,EAAU/N,GAC/B,KAAO52B,IAASmiF,EAAMniF,MAAU,EAAIoiF,EAAS/xE,SAASrQ,EAAM2kC,KAC1D3kC,EAAOA,IAAS42B,GAAYurD,EAAMniF,QAA0BwE,EAAlBxE,EAAKulB,WAGjD,OAAOvlB,CACT,EAZA,IAAIoiF,EAAWnmF,EAAuB,EAAQ,QAE1CkmF,EAAQ,SAAeznF,GACzB,OAAc,MAAPA,GAAeA,EAAIu+E,WAAav+E,EAAI2nF,aAC7C,EAUA9oF,EAAOD,QAAUA,EAAiB,qCCnBlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,aAAkB,EAElB,IAEIuM,EAFS5J,EAAuB,EAAQ,OAK5BoU,QAAU,SAAUumB,EAAS52B,GACzC,OAAI42B,EAAQ+3B,SACH/3B,EAAQ+3B,SAAS3uD,GACf42B,EAAQ0rD,wBACV1rD,IAAY52B,MAAmD,GAAxC42B,EAAQ0rD,wBAAwBtiF,IAEvD4Q,EAASgmB,EAAS52B,EAE7B,EAAI4Q,EAKN,SAASA,EAASgmB,EAAS52B,GACzB,GAAIA,EAAM,GACR,GAAIA,IAAS42B,EAAS,OAAO,QACtB52B,EAAOA,EAAKulB,YACrB,OAAO,CACT,CAPAjsB,EAAA,QAAkBuM,EASlBtM,EAAOD,QAAUA,EAAiB,oCC9BlCA,EAAQ0B,YAAa,EACrB1B,EAAA,QAEA,SAAmB0G,GACjB,OAAOA,IAASA,EAAK5F,OAAS4F,EAAyB,IAAlBA,EAAKi5E,WAAiBj5E,EAAKuiF,aAAeviF,EAAKwiF,aACtF,EAEAjpF,EAAOD,QAAUA,EAAiB,sCCPlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAQA,SAAiB0G,EAAM2kC,GACrB,IAAK89C,GAAgBC,EAAOryE,QAAS,CACnC,IAAIhB,EAAOmU,SAASnU,KAChBszE,EAActzE,EAAKwE,SAAWxE,EAAKuzE,iBAAmBvzE,EAAKwzE,uBAAyBxzE,EAAKyzE,oBAAsBzzE,EAAK0zE,kBACxHN,EAAeE,EAAc,SAAU3iF,EAAM2kC,GAC3C,OAAOg+C,EAAY/mF,KAAKoE,EAAM2kC,EAChC,EAAIq+C,CACN,CAEA,OAAOP,EAAeA,EAAaziF,EAAM2kC,GAAY,IACvD,EAhBA,IAII89C,EAJAC,EAASzmF,EAAuB,EAAQ,OAExCgnF,EAAoBhnF,EAAuB,EAAQ,QAgBvD,SAAS+mF,EAAmBhjF,EAAM2kC,GAIhC,IAHA,IAAI9wB,GAAU,EAAIovE,EAAkB5yE,SAASrQ,EAAKwjB,UAAYxjB,EAAKkiF,cAAev9C,GAC9EznC,EAAI,EAED2W,EAAQ3W,IAAM2W,EAAQ3W,KAAO8C,GAClC9C,IAGF,QAAS2W,EAAQ3W,EACnB,CAEA3D,EAAOD,QAAUA,EAAiB,sCClClC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAQA,SAAgB0G,GACd,IAAIgtE,GAAM,EAAIzgB,EAAel8C,SAASrQ,GAClCkjF,GAAM,EAAIC,EAAU9yE,SAAS28D,GAC7BoW,EAAUpW,GAAOA,EAAIjX,gBACrBstB,EAAM,CACRhpE,IAAK,EACLF,KAAM,EACN6iC,OAAQ,EACRjpC,MAAO,GAET,GAAKi5D,EAEL,OAAK,EAAIsW,EAAUjzE,SAAS+yE,EAASpjF,SACFwE,IAA/BxE,EAAK4zD,wBAAqCyvB,EAAMrjF,EAAK4zD,yBAEnD,CACJv5C,IAAKgpE,EAAIhpE,KAAO6oE,EAAIK,aAAeH,EAAQlwB,YAAckwB,EAAQI,WAAa,GAC9ErpE,KAAMkpE,EAAIlpE,MAAQ+oE,EAAIO,aAAeL,EAAQnwB,aAAemwB,EAAQM,YAAc,GAClF3vE,OAAqB,MAAbsvE,EAAItvE,MAAgB/T,EAAKk/D,YAAcmkB,EAAItvE,QAAU,EAC7DipC,QAAuB,MAAdqmC,EAAIrmC,OAAiBh9C,EAAK86E,aAAeuI,EAAIrmC,SAAW,IAPhBqmC,CAUrD,EA5BA,IAAIC,EAAYrnF,EAAuB,EAAQ,OAE3CknF,EAAYlnF,EAAuB,EAAQ,QAE3CswD,EAAiBtwD,EAAuB,EAAQ,QA0BpD1C,EAAOD,QAAUA,EAAiB,sCCnClC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAUA,SAAsB0G,GAIpB,IAHA,IAAIgtE,GAAM,EAAIzgB,EAAel8C,SAASrQ,GAClC2jF,EAAe3jF,GAAQA,EAAK2jF,aAEzBA,GAAmC,SAAnBpe,EAASvlE,IAAsE,YAAlD,EAAIw0D,EAAOnkD,SAASszE,EAAc,aACpFA,EAAeA,EAAaA,aAG9B,OAAOA,GAAgB3W,EAAIjX,eAC7B,EAjBA,IAAIxJ,EAAiBtwD,EAAuB,EAAQ,QAEhDu4D,EAASv4D,EAAuB,EAAQ,OAE5C,SAASspE,EAASvlE,GAChB,OAAOA,EAAKulE,UAAYvlE,EAAKulE,SAAS73C,aACxC,CAaAn0B,EAAOD,QAAUA,EAAiB,sCCxBlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAkBA,SAAkB0G,EAAM2jF,GACtB,IAIIz9E,EAJA09E,EAAe,CACjBvpE,IAAK,EACLF,KAAM,GAgBR,MAX8C,WAA1C,EAAIq6C,EAAOnkD,SAASrQ,EAAM,YAC5BkG,EAASlG,EAAK4zD,yBAEd+vB,EAAeA,IAAgB,EAAIE,EAAcxzE,SAASrQ,GAC1DkG,GAAS,EAAIouD,EAAQjkD,SAASrQ,GACC,SAjBnC,SAAkBA,GAChB,OAAOA,EAAKulE,UAAYvlE,EAAKulE,SAAS73C,aACxC,CAeQ63C,CAASoe,KAA0BC,GAAe,EAAItvB,EAAQjkD,SAASszE,IAC3EC,EAAavpE,KAAO5N,UAAS,EAAI+nD,EAAOnkD,SAASszE,EAAc,kBAAmB,KAAM,EAAI1uB,EAAW5kD,SAASszE,IAAiB,EACjIC,EAAazpE,MAAQ1N,UAAS,EAAI+nD,EAAOnkD,SAASszE,EAAc,mBAAoB,KAAM,EAAI3uB,EAAY3kD,SAASszE,IAAiB,IAI/H,EAAIG,EAAUzzE,SAAS,CAAC,EAAGnK,EAAQ,CACxCmU,IAAKnU,EAAOmU,IAAMupE,EAAavpE,KAAO5N,UAAS,EAAI+nD,EAAOnkD,SAASrQ,EAAM,aAAc,KAAO,GAC9Fma,KAAMjU,EAAOiU,KAAOypE,EAAazpE,MAAQ1N,UAAS,EAAI+nD,EAAOnkD,SAASrQ,EAAM,cAAe,KAAO,IAEtG,EAvCA,IAAI8jF,EAAY7nF,EAAuB,EAAQ,QAE3Cq4D,EAAUr4D,EAAuB,EAAQ,QAEzC4nF,EAAgB5nF,EAAuB,EAAQ,QAE/Cg5D,EAAah5D,EAAuB,EAAQ,QAE5C+4D,EAAc/4D,EAAuB,EAAQ,QAE7Cu4D,EAASv4D,EAAuB,EAAQ,OA+B5C1C,EAAOD,QAAUA,EAAiB,oCC9ClCA,EAAQ0B,YAAa,EACrB1B,EAAA,QAOA,SAAauqB,EAAS8gB,GACpB,IAIIo/C,EAJAC,EAA0B,MAAhBr/C,EAAS,GACnBs/C,EAA6B,MAAhBt/C,EAAS,GACtBu/C,EAAWF,GAAWC,EAAat/C,EAASn3B,MAAM,GAAKm3B,EAI3D,OAHew/C,EAAiB55D,KAAK25D,GAI/BF,GAEMD,GADRlgE,EAAUA,EAAQ0lD,eAAiB1lD,EAAUL,UACrB+lD,eAAe2a,IAAa,CAACH,GAAS,GAG5DlgE,EAAQupD,wBAA0B6W,EAAmBlpE,EAAQ8I,EAAQupD,uBAAuB8W,IACzFnpE,EAAQ8I,EAAQyB,qBAAqBqf,IAGvC5pB,EAAQ8I,EAAQo6C,iBAAiBt5B,GAC1C,EArBA,IAAIw/C,EAAmB,WACnBppE,EAAUqpE,SAAStpF,UAAU8G,KAAKhG,KAAKwoF,SAAStpF,UAAUc,KAAM,GAAG4R,OAsBvEjU,EAAOD,QAAUA,EAAiB,sCC5BlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAIA,SAAmB0G,EAAMq/B,GACvB,IAAI6jD,GAAM,EAAIC,EAAU9yE,SAASrQ,GACjC,QAAYwE,IAAR66B,EAAmB,OAAO6jD,EAAM,gBAAiBA,EAAMA,EAAIO,YAAcP,EAAI1/D,SAASuyC,gBAAgB9C,WAAajzD,EAAKizD,WACxHiwB,EAAKA,EAAImB,SAAShlD,EAAK,gBAAiB6jD,EAAMA,EAAIK,YAAcL,EAAI1/D,SAASuyC,gBAAgB7C,WAAgBlzD,EAAKizD,WAAa5zB,CACrI,EANA,IAAI8jD,EAAYlnF,EAAuB,EAAQ,QAQ/C1C,EAAOD,QAAUA,EAAiB,sCCblC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAIA,SAAmB0G,EAAMq/B,GACvB,IAAI6jD,GAAM,EAAIC,EAAU9yE,SAASrQ,GACjC,QAAYwE,IAAR66B,EAAmB,OAAO6jD,EAAM,gBAAiBA,EAAMA,EAAIK,YAAcL,EAAI1/D,SAASuyC,gBAAgB7C,UAAYlzD,EAAKkzD,UACvHgwB,EAAKA,EAAImB,SAAS,gBAAiBnB,EAAMA,EAAIO,YAAcP,EAAI1/D,SAASuyC,gBAAgB9C,WAAY5zB,GAAUr/B,EAAKkzD,UAAY7zB,CACrI,EANA,IAAI8jD,EAAYlnF,EAAuB,EAAQ,QAQ/C1C,EAAOD,QAAUA,EAAiB,sCCblC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAOA,SAA2B0G,GACzB,IAAKA,EAAM,MAAM,IAAIuB,UAAU,6CAC/B,IAAIyrE,EAAMhtE,EAAKkiF,cACf,MAAO,gBAAiBlV,EAAMA,EAAIuV,YAAY+B,OAAStkF,EAAKkiF,cAAcK,YAAY/4B,iBAAiBxpD,EAAM,MAAQ5F,OAAOovD,iBAAiBxpD,EAAM,MAAQ,CAEzJqkE,iBAAkB,SAA0BsP,GAC1C,IAAI76D,EAAQ9Y,EAAK8Y,MAEL,UADZ66D,GAAO,EAAI4Q,EAAel0E,SAASsjE,MACdA,EAAO,cAC5B,IAAIpgE,EAAUvT,EAAKwkF,aAAa7Q,IAAS,KAGzC,GAFe,MAAXpgE,GAAmBuF,GAASA,EAAM66D,KAAOpgE,EAAUuF,EAAM66D,IAEzD8Q,EAAUl6D,KAAKhX,KAAamxE,EAAUn6D,KAAKopD,GAAO,CAEpD,IAAIx5D,EAAOrB,EAAMqB,KACbwqE,EAAW3kF,EAAK4kF,aAChBC,EAASF,GAAYA,EAASxqE,KAE9B0qE,IAAQF,EAASxqE,KAAOna,EAAKwkF,aAAarqE,MAC9CrB,EAAMqB,KAAgB,aAATw5D,EAAsB,MAAQpgE,EAC3CA,EAAUuF,EAAMgsE,UAAY,KAE5BhsE,EAAMqB,KAAOA,EACT0qE,IAAQF,EAASxqE,KAAO0qE,EAC9B,CAEA,OAAOtxE,CACT,EAEJ,EAlCA,IAAIgxE,EAAiBtoF,EAAuB,EAAQ,QAEhDyoF,EAAY,4BACZD,EAAY,wDAiChBlrF,EAAOD,QAAUA,EAAiB,qCCzClC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAcA,SAAe0G,EAAMuqC,EAAU7sC,GAC7B,IAAIqnF,EAAM,GACNC,EAAa,GACblnF,EAAQysC,EAEZ,GAAwB,iBAAbA,EAAuB,CAChC,QAAc/lC,IAAV9G,EACF,OAAOsC,EAAK8Y,OAAM,EAAIyrE,EAAel0E,SAASk6B,MAAc,EAAI06C,EAAmB50E,SAASrQ,GAAMqkE,kBAAiB,EAAI6gB,EAAgB70E,SAASk6B,KAE/IzsC,EAAQ,CAAC,GAAGysC,GAAY7sC,CAE7B,CAEAnC,OAAOiB,KAAKsB,GAAOR,SAAQ,SAAU5B,GACnC,IAAIgC,EAAQI,EAAMpC,GAEbgC,GAAmB,IAAVA,GAEH,EAAIynF,EAAa90E,SAAS3U,GACnCspF,GAActpF,EAAM,IAAMgC,EAAQ,KAElCqnF,IAAO,EAAIG,EAAgB70E,SAAS3U,GAAO,KAAOgC,EAAQ,KAJ1D,EAAI0nF,EAAa/0E,SAASrQ,GAAM,EAAIklF,EAAgB70E,SAAS3U,GAMjE,IAEIspF,IACFD,GAAOM,EAAY7qB,UAAY,KAAOwqB,EAAa,KAGrDhlF,EAAK8Y,MAAMwsE,SAAW,IAAMP,CAC9B,EA1CA,IAAIR,EAAiBtoF,EAAuB,EAAQ,QAEhDipF,EAAkBjpF,EAAuB,EAAQ,QAEjDgpF,EAAqBhpF,EAAuB,EAAQ,QAEpDmpF,EAAenpF,EAAuB,EAAQ,QAE9CopF,EAAc,EAAQ,OAEtBF,EAAelpF,EAAuB,EAAQ,QAkClD1C,EAAOD,QAAUA,EAAiB,oCCjDlCA,EAAQ0B,YAAa,EACrB1B,EAAA,QAEA,SAAqB0G,EAAMtE,GACzB,MAAO,mBAAoBsE,EAAK8Y,MAAQ9Y,EAAK8Y,MAAMysE,eAAe7pF,GAAOsE,EAAK8Y,MAAM0lD,gBAAgB9iE,EACtG,EAEAnC,EAAOD,QAAUA,EAAiB,oCCPlCA,EAAQ0B,YAAa,EACrB1B,EAAA,QAGA,SAAqBixC,GACnB,SAAUA,IAAYi7C,EAAoBj7D,KAAKggB,GACjD,EAJA,IAAIi7C,EAAsB,8EAM1BjsF,EAAOD,QAAUA,EAAiB,sCCRlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAAkBA,EAAQmsF,aAAensF,EAAQosF,eAAiBpsF,EAAQqsF,gBAAkBrsF,EAAQssF,kBAAoBtsF,EAAQusF,cAAgBvsF,EAAQwsF,cAAgBxsF,EAAQysF,mBAAqBzsF,EAAQ0sF,gBAAkB1sF,EAAQ2sF,iBAAmB3sF,EAAQ4sF,mBAAqB5sF,EAAQkhE,eAAY,EAE3S,IAII50B,EAAQkgD,EAAeL,EAGvBS,EAAoBH,EAAoBE,EAAkBD,EAK1DH,EAAeD,EAAmBD,EAAiBD,EAZnDhD,EAASzmF,EAAuB,EAAQ,OAExCu+D,EAAY,YAgBhB,GAfAlhE,EAAQkhE,UAAYA,EAEpBlhE,EAAQmsF,aAAeA,EACvBnsF,EAAQwsF,cAAgBA,EAExBxsF,EAAQ0sF,gBAAkBA,EAC1B1sF,EAAQ2sF,iBAAmBA,EAC3B3sF,EAAQysF,mBAAqBA,EAC7BzsF,EAAQ4sF,mBAAqBA,EAE7B5sF,EAAQosF,eAAiBA,EACzBpsF,EAAQqsF,gBAAkBA,EAC1BrsF,EAAQssF,kBAAoBA,EAC5BtsF,EAAQusF,cAAgBA,EAEpBnD,EAAOryE,QAAS,CAClB,IAAI81E,EA0BN,WAoBE,IAnBA,IAgBIL,EAAeL,EAhBf3sE,EAAQ0K,SAASpkB,cAAc,OAAO0Z,MACtCstE,EAAY,CACdC,EAAG,SAAWrjE,GACZ,MAAO,IAAMA,EAAE0K,aACjB,EACA44D,IAAK,SAAatjE,GAChB,OAAOA,EAAE0K,aACX,EACA64D,OAAQ,SAAgBvjE,GACtB,MAAO,SAAWA,CACpB,EACAwjE,GAAI,SAAYxjE,GACd,MAAO,KAAOA,CAChB,GAEEyjE,EAAUlrF,OAAOiB,KAAK4pF,GAEtBxgD,EAAS,GAEJ1oC,EAAI,EAAGA,EAAIupF,EAAQrpF,OAAQF,IAAK,CACvC,IAAIwpF,EAASD,EAAQvpF,GAErB,GAAIwpF,EAAS,uBAAwB5tE,EAAO,CAC1C8sB,EAAS,IAAM8gD,EAAOh5D,cACtBo4D,EAAgBM,EAAUM,GAAQ,iBAClCjB,EAAeW,EAAUM,GAAQ,gBACjC,KACF,CACF,CAKA,OAHKZ,GAAiB,uBAAwBhtE,IAAOgtE,EAAgB,kBAChEL,GAAgB,kBAAmB3sE,IAAO2sE,EAAe,gBAC9D3sE,EAAQ,KACD,CACL2sE,aAAcA,EACdK,cAAeA,EACflgD,OAAQA,EAEZ,CAjE8B+gD,GAE5B/gD,EAASugD,EAAsBvgD,OAC/BtsC,EAAQwsF,cAAgBA,EAAgBK,EAAsBL,cAC9DxsF,EAAQmsF,aAAeA,EAAeU,EAAsBV,aAC5DnsF,EAAQkhE,UAAYA,EAAY50B,EAAS,IAAM40B,EAC/ClhE,EAAQ4sF,mBAAqBA,EAAqBtgD,EAAS,uBAC3DtsC,EAAQysF,mBAAqBA,EAAqBngD,EAAS,uBAC3DtsC,EAAQ0sF,gBAAkBA,EAAkBpgD,EAAS,oBACrDtsC,EAAQ2sF,iBAAmBA,EAAmBrgD,EAAS,8BACvDtsC,EAAQusF,cAAgBA,EAAgBjgD,EAAS,kBACjDtsC,EAAQssF,kBAAoBA,EAAoBhgD,EAAS,sBACzDtsC,EAAQqsF,gBAAkBA,EAAkB//C,EAAS,mBACrDtsC,EAAQosF,eAAiBA,EAAiB9/C,EAAS,4BACrD,CAEA,IAAI//B,EAAW,CACb20D,UAAWA,EACXh+B,IAAKspD,EACLv7C,SAAU27C,EACVU,OAAQX,EACRt2B,MAAOq2B,EACPa,SAAUd,GAEZzsF,EAAA,QAAkBuM,8BChDlBvM,EAAQ0B,YAAa,EACrB1B,EAAA,QAGA,SAAkBqG,GAChB,OAAOA,EAAO1F,QAAQ6sF,GAAS,SAAUh5D,EAAGi5D,GAC1C,OAAOA,EAAI/7C,aACb,GACF,EANA,IAAI87C,EAAU,QAQdvtF,EAAOD,QAAUA,EAAiB,sCCVlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAWA,SAA2BqG,GACzB,OAAO,EAAIqnF,EAAU32E,SAAS1Q,EAAO1F,QAAQgtF,EAAW,OAC1D,EAXA,IAAID,EAAY/qF,EAAuB,EAAQ,QAO3CgrF,EAAY,QAMhB1tF,EAAOD,QAAUA,EAAiB,oCClBlCA,EAAQ0B,YAAa,EACrB1B,EAAA,QAGA,SAAmBqG,GACjB,OAAOA,EAAO1F,QAAQitF,EAAQ,OAAOx5D,aACvC,EAJA,IAAIw5D,EAAS,WAMb3tF,EAAOD,QAAUA,EAAiB,sCCRlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAWA,SAA4BqG,GAC1B,OAAO,EAAIwnF,EAAW92E,SAAS1Q,GAAQ1F,QAAQgtF,EAAW,OAC5D,EAXA,IAAIE,EAAalrF,EAAuB,EAAQ,QAO5CgrF,EAAY,OAMhB1tF,EAAOD,QAAUA,EAAiB,mCClBlCA,EAAQ0B,YAAa,EACrB1B,EAAA,aAAkB,EAElB,IAAIuM,IAAgC,oBAAXzL,SAA0BA,OAAOopB,WAAYppB,OAAOopB,SAASpkB,eAEtF9F,EAAA,QAAkBuM,EAClBtM,EAAOD,QAAUA,EAAiB,sCCNlC,IAAI2C,EAAyB,EAAQ,OAErC3C,EAAQ0B,YAAa,EACrB1B,EAAA,QAMA,SAAuB8tF,GACrB,KAAK/uE,GAAiB,IAATA,GAAc+uE,IACrB1E,EAAOryE,QAAS,CAClB,IAAIg3E,EAAY7jE,SAASpkB,cAAc,OACvCioF,EAAUvuE,MAAMvD,SAAW,WAC3B8xE,EAAUvuE,MAAMuB,IAAM,UACtBgtE,EAAUvuE,MAAM/E,MAAQ,OACxBszE,EAAUvuE,MAAMkkC,OAAS,OACzBqqC,EAAUvuE,MAAM2wC,SAAW,SAC3BjmC,SAASnU,KAAKyjD,YAAYu0B,GAC1BhvE,EAAOgvE,EAAUnoB,YAAcmoB,EAAUzxB,YACzCpyC,SAASnU,KAAK+jD,YAAYi0B,EAC5B,CAGF,OAAOhvE,CACT,EApBA,IAEIA,EAFAqqE,EAASzmF,EAAuB,EAAQ,OAsB5C1C,EAAOD,QAAUA,EAAiB,sCC3BlC,IAAIguF,EAAU,EAAQ,OAMlBC,EAAgB,CAClBpsB,mBAAmB,EACnBqsB,aAAa,EACbC,cAAc,EACdjoF,cAAc,EACdD,aAAa,EACbmoF,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRpoF,WAAW,EACX+Q,MAAM,GAEJs3E,EAAgB,CAClBl/E,MAAM,EACNxL,QAAQ,EACRtC,WAAW,EACXitF,QAAQ,EACRC,QAAQ,EACR7qF,WAAW,EACX8qF,OAAO,GASLC,EAAe,CACjB,UAAY,EACZx3D,SAAS,EACTlxB,cAAc,EACdD,aAAa,EACbE,WAAW,EACX+Q,MAAM,GAEJ23E,EAAe,CAAC,EAIpB,SAASC,EAAW7L,GAElB,OAAI+K,EAAQe,OAAO9L,GACV2L,EAIFC,EAAa5L,EAAoB,WAAMgL,CAChD,CAXAY,EAAab,EAAQgB,YAhBK,CACxB,UAAY,EACZ73E,QAAQ,EACRjR,cAAc,EACdD,aAAa,EACbE,WAAW,GAYb0oF,EAAab,EAAQiB,MAAQL,EAY7B,IAAI1sF,EAAiBD,OAAOC,eACxBmN,EAAsBpN,OAAOoN,oBAC7BlM,EAAwBlB,OAAOkB,sBAC/BhB,EAA2BF,OAAOE,yBAClC+sF,EAAiBjtF,OAAOitF,eACxBC,EAAkBltF,OAAOT,UAsC7BvB,EAAOD,QArCP,SAASovF,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,iBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqBN,EAAeI,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,EAE9D,CAEA,IAAIrsF,EAAOmM,EAAoBigF,GAE3BnsF,IACFD,EAAOA,EAAKuH,OAAOtH,EAAsBmsF,KAM3C,IAHA,IAAIG,EAAgBX,EAAWO,GAC3BK,EAAgBZ,EAAWQ,GAEtB1rF,EAAI,EAAGA,EAAIV,EAAKY,SAAUF,EAAG,CACpC,IAAIxB,EAAMc,EAAKU,GAEf,KAAK4qF,EAAcpsF,IAAUmtF,GAAaA,EAAUntF,IAAWstF,GAAiBA,EAActtF,IAAWqtF,GAAiBA,EAAcrtF,IAAO,CAC7I,IAAIuF,EAAaxF,EAAyBmtF,EAAiBltF,GAE3D,IAEEF,EAAemtF,EAAiBjtF,EAAKuF,EACvC,CAAE,MAAO+hB,GAAI,CACf,CACF,CACF,CAEA,OAAO2lE,CACT,8BC3Fa,IAAIthF,EAAE,mBAAoB1M,QAAQA,OAAOib,IAAIuV,EAAE9jB,EAAE1M,OAAOib,IAAI,iBAAiB,MAAMsP,EAAE7d,EAAE1M,OAAOib,IAAI,gBAAgB,MAAMoN,EAAE3b,EAAE1M,OAAOib,IAAI,kBAAkB,MAAM8f,EAAEruB,EAAE1M,OAAOib,IAAI,qBAAqB,MAAMvb,EAAEgN,EAAE1M,OAAOib,IAAI,kBAAkB,MAAMiT,EAAExhB,EAAE1M,OAAOib,IAAI,kBAAkB,MAAM6S,EAAEphB,EAAE1M,OAAOib,IAAI,iBAAiB,MAAMyT,EAAEhiB,EAAE1M,OAAOib,IAAI,oBAAoB,MAAMwU,EAAE/iB,EAAE1M,OAAOib,IAAI,yBAAyB,MAAM7N,EAAEV,EAAE1M,OAAOib,IAAI,qBAAqB,MAAMmY,EAAE1mB,EAAE1M,OAAOib,IAAI,kBAAkB,MAAMqzE,EAAE5hF,EACpf1M,OAAOib,IAAI,uBAAuB,MAAMhP,EAAES,EAAE1M,OAAOib,IAAI,cAAc,MAAMoP,EAAE3d,EAAE1M,OAAOib,IAAI,cAAc,MAAMgT,EAAEvhB,EAAE1M,OAAOib,IAAI,eAAe,MAAMszE,EAAE7hF,EAAE1M,OAAOib,IAAI,qBAAqB,MAAM8e,EAAErtB,EAAE1M,OAAOib,IAAI,mBAAmB,MAAMiwC,EAAEx+C,EAAE1M,OAAOib,IAAI,eAAe,MAClQ,SAASyY,EAAEyC,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIq4D,EAAEr4D,EAAEs4D,SAAS,OAAOD,GAAG,KAAKh+D,EAAE,OAAO2F,EAAEA,EAAEtgB,MAAQ,KAAK6Y,EAAE,KAAKe,EAAE,KAAKpH,EAAE,KAAK3oB,EAAE,KAAKq7B,EAAE,KAAK3H,EAAE,OAAO+C,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEs4D,UAAY,KAAK3gE,EAAE,KAAK1gB,EAAE,KAAKid,EAAE,KAAKpe,EAAE,KAAKiiB,EAAE,OAAOiI,EAAE,QAAQ,OAAOq4D,GAAG,KAAKjkE,EAAE,OAAOikE,EAAE,CAAC,CAAC,SAASE,EAAEv4D,GAAG,OAAOzC,EAAEyC,KAAK1G,CAAC,CAAC9wB,EAAQgwF,UAAUjgE,EAAE/vB,EAAQiwF,eAAen/D,EAAE9wB,EAAQkwF,gBAAgB/gE,EAAEnvB,EAAQmwF,gBAAgB5gE,EAAEvvB,EAAQ09C,QAAQ7rB,EAAE7xB,EAAQgvF,WAAWvgF,EAAEzO,EAAQowF,SAAS1mE,EAAE1pB,EAAQqwF,KAAK3kE,EAAE1rB,EAAQivF,KAAK3hF,EAAEtN,EAAQs4E,OAAO1sD,EAChf5rB,EAAQswF,SAASvvF,EAAEf,EAAQuwF,WAAWn0D,EAAEp8B,EAAQwwF,SAAS/7D,EAAEz0B,EAAQywF,YAAY,SAASj5D,GAAG,OAAOu4D,EAAEv4D,IAAIzC,EAAEyC,KAAKzH,CAAC,EAAE/vB,EAAQ0wF,iBAAiBX,EAAE/vF,EAAQ2wF,kBAAkB,SAASn5D,GAAG,OAAOzC,EAAEyC,KAAKrI,CAAC,EAAEnvB,EAAQ4wF,kBAAkB,SAASp5D,GAAG,OAAOzC,EAAEyC,KAAKjI,CAAC,EAAEvvB,EAAQ6wF,UAAU,SAASr5D,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAEs4D,WAAWj+D,CAAC,EAAE7xB,EAAQ8wF,aAAa,SAASt5D,GAAG,OAAOzC,EAAEyC,KAAK/oB,CAAC,EAAEzO,EAAQ+wF,WAAW,SAASv5D,GAAG,OAAOzC,EAAEyC,KAAK9N,CAAC,EAAE1pB,EAAQgxF,OAAO,SAASx5D,GAAG,OAAOzC,EAAEyC,KAAK9L,CAAC,EAC1d1rB,EAAQ+uF,OAAO,SAASv3D,GAAG,OAAOzC,EAAEyC,KAAKlqB,CAAC,EAAEtN,EAAQixF,SAAS,SAASz5D,GAAG,OAAOzC,EAAEyC,KAAK5L,CAAC,EAAE5rB,EAAQkxF,WAAW,SAAS15D,GAAG,OAAOzC,EAAEyC,KAAKz2B,CAAC,EAAEf,EAAQmxF,aAAa,SAAS35D,GAAG,OAAOzC,EAAEyC,KAAK4E,CAAC,EAAEp8B,EAAQoxF,WAAW,SAAS55D,GAAG,OAAOzC,EAAEyC,KAAK/C,CAAC,EAC1Oz0B,EAAQqxF,mBAAmB,SAAS75D,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAI9N,GAAG8N,IAAI1G,GAAG0G,IAAIz2B,GAAGy2B,IAAI4E,GAAG5E,IAAI/C,GAAG+C,IAAIm4D,GAAG,iBAAkBn4D,GAAG,OAAOA,IAAIA,EAAEs4D,WAAWpkE,GAAG8L,EAAEs4D,WAAWxiF,GAAGkqB,EAAEs4D,WAAWvgE,GAAGiI,EAAEs4D,WAAW3gE,GAAGqI,EAAEs4D,WAAWrhF,GAAG+oB,EAAEs4D,WAAWF,GAAGp4D,EAAEs4D,WAAW10D,GAAG5D,EAAEs4D,WAAWvjC,GAAG/0B,EAAEs4D,WAAWxgE,EAAE,EAAEtvB,EAAQsxF,OAAOv8D,gCCXjU90B,EAAOD,QAAU,EAAjB,sCCDFA,EAAUC,EAAOD,QAAU,EAAjB,eACV,QAAqBA,uCCHN,WAeb,SAASuxF,EAAgBtoF,EAASuoF,EAAU/G,EAAOnkD,GACjDn+B,KAAKc,QAAWA,EAChBd,KAAKqpF,SAAWA,EAChBrpF,KAAKsiF,MAAWA,EAChBtiF,KAAKm+B,SAAWA,EAChBn+B,KAAKmH,KAAW,cAEuB,mBAA5BhB,MAAMmjF,mBACfnjF,MAAMmjF,kBAAkBtpF,KAAMopF,EAElC,CAu1CA,OAv2CA,SAAsB52E,EAAO+2E,GAC3B,SAASC,IAASxpF,KAAK5G,YAAcoZ,CAAO,CAC5Cg3E,EAAKnwF,UAAYkwF,EAAOlwF,UACxBmZ,EAAMnZ,UAAY,IAAImwF,CACxB,CAcAC,CAAaL,EAAiBjjF,OAq1CvB,CACLy+B,YAAawkD,EACbh+E,MAr1CF,SAAmBgvC,GACjB,IAkKIsvC,EAlKA3oF,EAAUrF,UAAUC,OAAS,EAAID,UAAU,GAAK,CAAC,EAGjDiuF,EAAa,CAAC,EAEdC,EAAyB,CAAE9uD,MAAO+uD,IAClCC,EAAyBD,GAEzBE,EAAS,SAAS1tD,GACV,MAAO,CACHttB,KAAU,uBACVstB,SAAUA,EACV8B,SAAUA,KAElB,EACJ6rD,EAAS,SAAS5jB,GACV,IACI3qE,EAAGwuF,EAAGC,EAAUC,EAAOC,EADvBlsF,EAAS,GAGb,IAAKzC,EAAI,EAAGyuF,EAAW9jB,EAAKzqE,OAAQF,EAAIyuF,EAAUzuF,GAAK,EAGnD,IAAKwuF,EAAI,EAAGG,GAFZD,EAAQ/jB,EAAK3qE,IAEgBE,OAAQsuF,EAAIG,EAAUH,GAAK,EACpD/rF,GAAUisF,EAAMF,GAIxB,OAAO/rF,CACX,EACJmsF,EAAS,SAASC,GACV,MAAO,CACHv7E,KAAO,qBACP9S,MAAOquF,EACPnsD,SAAUA,KAElB,EACJosD,EAAS,qBACTC,EAAS,CAAEz7E,KAAM,QAAS9S,MAAO,uBAAwB0b,YAAa,wBACtE8yE,EAAS,IACTC,EAAS,CAAE37E,KAAM,UAAW9S,MAAO,IAAK0b,YAAa,OACrDgzE,EAAS,IACTC,EAAS,CAAE77E,KAAM,UAAW9S,MAAO,IAAK0b,YAAa,OACrDkzE,EAAS,IACTC,EAAU,CAAE/7E,KAAM,UAAW9S,MAAO,IAAK0b,YAAa,OACtDozE,EAAU,SAAShyF,EAAIywB,GACf,MAAO,CACHza,KAAQ,kBACRhW,GAAQA,EACRywB,OAAQA,GAAUA,EAAO,GACzB2U,SAAUA,KAElB,EACJ6sD,EAAU,SACVC,EAAU,CAAEl8E,KAAM,UAAW9S,MAAO,SAAU0b,YAAa,YAC3DuzE,EAAU,OACVC,EAAU,CAAEp8E,KAAM,UAAW9S,MAAO,OAAQ0b,YAAa,UACzDyzE,EAAU,OACVC,EAAU,CAAEt8E,KAAM,UAAW9S,MAAO,OAAQ0b,YAAa,UACzD2zE,EAAU,SAASv8E,EAAMsI,GACjB,MAAO,CACHtI,KAAOA,EAAO,SACdsI,MAAOA,GAASA,EAAM,GACtB8mB,SAAUA,KAElB,EACJotD,EAAU,SACVC,EAAU,CAAEz8E,KAAM,UAAW9S,MAAO,SAAU0b,YAAa,YAC3D8zE,EAAU,SAASC,GACX,MAAO,CACH38E,KAAS28E,EAAY38E,KACrB2+D,SAAS,EACTjpE,OAASinF,EAAYjnF,QAAU,EAC/B1D,QAAS2qF,EAAY3qF,QACrBo9B,SAAUA,KAElB,EACJwtD,EAAU,gBACVC,EAAU,CAAE78E,KAAM,UAAW9S,MAAO,gBAAiB0b,YAAa,mBAClEk0E,EAAU,SAASH,GACX,MAAO,CACH38E,KAAS28E,EAAY38E,KACrB2+D,SAAS,EACTjpE,OAASinF,EAAYjnF,QAAU,EAC/B1D,QAAS2qF,EAAY3qF,QACrBo9B,SAAUA,KAElB,EACJ2tD,EAAU,SACVC,EAAU,CAAEh9E,KAAM,UAAW9S,MAAO,SAAU0b,YAAa,YAC3Dq0E,EAAU,SAASjrF,GACX,MAAO,CACHgO,KAAS,eACThO,QAASA,EACTo9B,SAAUA,KAElB,EACJ8tD,EAAU,IACVC,EAAU,CAAEn9E,KAAM,UAAW9S,MAAO,IAAK0b,YAAa,OACtDw0E,EAAU,SAASjpD,EAAU3B,GACrB,MAAO,CACHxyB,KAAU,wBACVm0B,SAAUA,EACVjnC,MAAUslC,EACVpD,SAAUA,KAElB,EACJiuD,EAAU,UACVC,EAAU,CAAEt9E,KAAM,UAAW9S,MAAO,UAAW0b,YAAa,aAC5D20E,EAAU,SAAShuF,GACX,OAAOA,CACX,EACJiuF,EAAU,SAAS9nF,EAAQ1D,GACnB,MAAO,CACHgO,KAAS,eACTtK,OAASA,EACT1D,QAASA,EACTo9B,SAAUA,KAElB,EACJquD,EAAU,CAAEz9E,KAAM,QAAS4I,YAAa,cACxC80E,EAAU,aACVC,EAAU,CAAE39E,KAAM,QAAS9S,MAAO,eAAgB0b,YAAa,gBAC/Dg1E,EAAU,CAAE59E,KAAM,QAAS4I,YAAa,sBACxCi1E,EAAU,SACVC,EAAU,CAAE99E,KAAM,QAAS9S,MAAO,QAAS0b,YAAa,SACxDm1E,EAAU,aACVC,EAAU,CAAEh+E,KAAM,QAAS9S,MAAO,YAAa0b,YAAa,aAC5Dq1E,EAAU,IACVC,EAAU,CAAEl+E,KAAM,UAAW9S,MAAO,IAAK0b,YAAa,OACtDu1E,EAAU,SACVC,EAAU,CAAEp+E,KAAM,QAAS9S,MAAO,QAAS0b,YAAa,SACxDy1E,GAAU,SAASC,GACf,OAAOriF,SAASqiF,EAAQ,GAC5B,EACAC,GAAU,0BACVC,GAAU,CAAEx+E,KAAM,QAAS9S,MAAO,oCAAqC0b,YAAa,qCACpF61E,GAAU,OACVC,GAAU,CAAE1+E,KAAM,UAAW9S,MAAO,OAAQ0b,YAAa,cACzD+1E,GAAU,WAAa,MAAO,IAAM,EACpCC,GAAU,MACVC,GAAU,CAAE7+E,KAAM,UAAW9S,MAAO,MAAO0b,YAAa,WACxDk2E,GAAU,WAAa,MAAO,KAAO,EACrCC,GAAU,MACVC,GAAU,CAAEh/E,KAAM,UAAW9S,MAAO,MAAO0b,YAAa,WACxDq2E,GAAU,WAAa,MAAO,GAAU,EACxCC,GAAU,MACVC,GAAU,CAAEn/E,KAAM,UAAW9S,MAAO,MAAO0b,YAAa,WACxDw2E,GAAU,WAAa,MAAO,GAAU,EACxCC,GAAU,MACVC,GAAU,CAAEt/E,KAAM,UAAW9S,MAAO,MAAO0b,YAAa,WACxD22E,GAAU,SAASjB,GACX,OAAOpyD,OAAOqB,aAAatxB,SAASqiF,EAAQ,IAChD,EACJkB,GAAU,SAASC,GAAS,OAAOA,EAAM7pF,KAAK,GAAK,EAEnD8pF,GAAuB,EACvBC,GAAuB,EACvBC,GAAuB,CAAC,CAAE3xD,KAAM,EAAGC,OAAQ,EAAG2xD,QAAQ,IACtDC,GAAuB,EACvBC,GAAuB,GACvBC,GAAuB,EAI3B,GAAI,cAAehuF,EAAS,CAC1B,KAAMA,EAAQiuF,aAAapF,GACzB,MAAM,IAAIzjF,MAAM,mCAAqCpF,EAAQiuF,UAAY,MAG3ElF,EAAwBF,EAAuB7oF,EAAQiuF,UACzD,CAMA,SAAS7wD,KACP,OAAO8wD,GAAoBP,GAAcD,GAC3C,CAoBA,SAASS,GAAsBlpD,GAC7B,IACI1Z,EAAG+S,EADH8vD,EAAUR,GAAoB3oD,GAGlC,GAAImpD,EACF,OAAOA,EAGP,IADA7iE,EAAI0Z,EAAM,GACF2oD,GAAoBriE,IAC1BA,IAUF,IANA6iE,EAAU,CACRnyD,MAFFmyD,EAAUR,GAAoBriE,IAEZ0Q,KAChBC,OAAQkyD,EAAQlyD,OAChB2xD,OAAQO,EAAQP,QAGXtiE,EAAI0Z,GAEE,QADX3G,EAAK+a,EAAMnZ,OAAO3U,KAEX6iE,EAAQP,QAAUO,EAAQnyD,OAC/BmyD,EAAQlyD,OAAS,EACjBkyD,EAAQP,QAAS,GACD,OAAPvvD,GAAsB,WAAPA,GAA0B,WAAPA,GAC3C8vD,EAAQnyD,OACRmyD,EAAQlyD,OAAS,EACjBkyD,EAAQP,QAAS,IAEjBO,EAAQlyD,SACRkyD,EAAQP,QAAS,GAGnBtiE,IAIF,OADAqiE,GAAoB3oD,GAAOmpD,EACpBA,CAEX,CAEA,SAASF,GAAoBG,EAAUC,GACrC,IAAIC,EAAkBJ,GAAsBE,GACxCG,EAAkBL,GAAsBG,GAE5C,MAAO,CACLv0D,MAAO,CACLr2B,OAAQ2qF,EACRpyD,KAAQsyD,EAAgBtyD,KACxBC,OAAQqyD,EAAgBryD,QAE1BlC,IAAK,CACHt2B,OAAQ4qF,EACRryD,KAAQuyD,EAAcvyD,KACtBC,OAAQsyD,EAActyD,QAG5B,CAEA,SAASuyD,GAASnG,GACZoF,GAAcI,KAEdJ,GAAcI,KAChBA,GAAiBJ,GACjBK,GAAsB,IAGxBA,GAAoBzzF,KAAKguF,GAC3B,CAyEA,SAASQ,KAKP,OAFK4F,IAGP,CAEA,SAASA,KACP,IAAIC,EAAIC,EAAIC,EAKZ,IAHAF,EAAKjB,GACLkB,EAAK,GACLC,EAAKC,KACED,IAAOjG,GACZgG,EAAGt0F,KAAKu0F,GACRA,EAAKC,KAQP,OANIF,IAAOhG,IACT+E,GAAegB,EACfC,EAAK5F,EAAO4F,IAETA,CAGP,CAEA,SAASE,KACP,IAAIH,EAOJ,OALAA,EAgFF,WACE,IAAIA,EAAIC,EAUR,OARAD,EAAKjB,GACLkB,EA5EF,WACE,IAAID,EAAIC,EAAIC,EAAIE,EAAIpjF,EAAIqjF,EAyBxB,GAvBAL,EAAKjB,GACLkB,EAAK,GACLC,EAAKnB,IACLqB,EAAKE,QACMrG,IACTj9E,EAAKujF,QACMtG,IACToG,EAAKC,QACMrG,EAETiG,EADAE,EAAK,CAACA,EAAIpjF,EAAIqjF,IAWlBtB,GAAcmB,EACdA,EAAKjG,GAEHiG,IAAOjG,EACT,KAAOiG,IAAOjG,GACZgG,EAAGt0F,KAAKu0F,GACRA,EAAKnB,IACLqB,EAAKE,QACMrG,IACTj9E,EAAKujF,QACMtG,IACToG,EAAKC,QACMrG,EAETiG,EADAE,EAAK,CAACA,EAAIpjF,EAAIqjF,IAWlBtB,GAAcmB,EACdA,EAAKjG,QAITgG,EAAKhG,EAiBP,OAfIgG,IAAOhG,IACT+E,GAAegB,EACfC,EAAK3F,EAAO2F,KAEdD,EAAKC,KACMhG,IACT+F,EAAKjB,GAGHiB,GAFFC,EAAKO,QACMvG,EACJvvC,EAAMxtC,UAAU8iF,EAAIjB,IAEpBkB,GAIFD,CACT,CAMOS,GACDR,IAAOhG,IACT+E,GAAegB,EACfC,EAAKtF,EAAOsF,IAEdD,EAAKC,CAGP,CA5FOS,MACMzG,IACT+F,EAkIJ,WACE,IAAIA,EAAIC,EAAQG,EAAQC,EAAIM,EAAIC,EAAIC,EA0FpC,OAxFAb,EAAKjB,GACiC,MAAlCr0C,EAAM3d,WAAWgyD,KACnBkB,EAAKlF,EACLgE,OAEAkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAAS9E,IAEpCiF,IAAOhG,GACJqG,OACMrG,GACTmG,EApDN,WACE,IAAIJ,EAAIC,EAAIC,EAGZ,IADAF,EAAKc,QACM7G,EAAY,CAUrB,GATA+F,EAAKjB,GACLkB,EAAK,GACDpF,EAAOzhE,KAAKsxB,EAAMnZ,OAAOwtD,MAC3BmB,EAAKx1C,EAAMnZ,OAAOwtD,IAClBA,OAEAmB,EAAKjG,EACmB,IAApBoF,IAAyBS,GAAShF,IAEpCoF,IAAOjG,EACT,KAAOiG,IAAOjG,GACZgG,EAAGt0F,KAAKu0F,GACJrF,EAAOzhE,KAAKsxB,EAAMnZ,OAAOwtD,MAC3BmB,EAAKx1C,EAAMnZ,OAAOwtD,IAClBA,OAEAmB,EAAKjG,EACmB,IAApBoF,IAAyBS,GAAShF,SAI1CmF,EAAKhG,EAGL+F,EADEC,IAAOhG,EACJvvC,EAAMxtC,UAAU8iF,EAAIjB,IAEpBkB,CAET,CAEA,OAAOD,CACT,CAgBWe,GACDX,IAAOnG,GACJqG,OACMrG,GACToG,EAAKtB,GACiC,KAAlCr0C,EAAM3d,WAAWgyD,KACnB4B,EAAK1F,EACL8D,OAEA4B,EAAK1G,EACmB,IAApBoF,IAAyBS,GAAS5E,IAEpCyF,IAAO1G,IACT2G,EAAKN,QACMrG,GACT4G,EAiEd,WACE,IAAIb,EAaJ,OAXAA,EAcF,WACE,IAAIA,EAAIC,EAAQG,EAAIpjF,EAAIqjF,EAAIM,EA8E5B,OA5EAX,EAAKjB,GACDr0C,EAAM71C,OAAOkqF,GAAa,KAAOzD,GACnC2E,EAAK3E,EACLyD,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAASvE,IAEpC0E,IAAOhG,IACLvvC,EAAM71C,OAAOkqF,GAAa,KAAOvD,GACnCyE,EAAKzE,EACLuD,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAASrE,IAEpCwE,IAAOhG,IACLvvC,EAAM71C,OAAOkqF,GAAa,KAAOrD,GACnCuE,EAAKvE,EACLqD,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAASnE,MAIxCsE,IAAOhG,GACJqG,OACMrG,GACTmG,EAAKrB,GACiC,KAAlCr0C,EAAM3d,WAAWgyD,KACnB/hF,EAAKi+E,EACL8D,OAEA/hF,EAAKi9E,EACmB,IAApBoF,IAAyBS,GAAS5E,IAEpCl+E,IAAOi9E,IACToG,EAAKC,QACMrG,IACT0G,EAAKJ,QACMtG,EAETmG,EADApjF,EAAK,CAACA,EAAIqjF,EAAIM,IAWlB5B,GAAcqB,EACdA,EAAKnG,GAEHmG,IAAOnG,IACTmG,EAAK,MAEHA,IAAOnG,GACT+E,GAAegB,EAEfA,EADAC,EAAKrE,EAAQqE,EAAIG,KAGjBrB,GAAciB,EACdA,EAAK/F,KAOT8E,GAAciB,EACdA,EAAK/F,GAGA+F,CACT,CA9FOgB,GACDhB,IAAO/F,IACT+F,EA8FJ,WACE,IAAIA,EAAIC,EAAQG,EAAQC,EAiDxB,OA/CAL,EAAKjB,GACDr0C,EAAM71C,OAAOkqF,GAAa,KAAOlD,GACnCoE,EAAKpE,EACLkD,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAAShE,IAEpCmE,IAAOhG,GACJqG,OACMrG,GAC6B,KAAlCvvC,EAAM3d,WAAWgyD,KACnBqB,EAAKnF,EACL8D,OAEAqB,EAAKnG,EACmB,IAApBoF,IAAyBS,GAAS5E,IAEpCkF,IAAOnG,GACJqG,OACMrG,IACToG,EAAKY,QACMhH,GACT+E,GAAegB,EAEfA,EADAC,EAAKlE,EAAQsE,KAWjBtB,GAAciB,EACdA,EAAK/F,KAOT8E,GAAciB,EACdA,EAAK/F,GAGA+F,CACT,CAjJSkB,GACDlB,IAAO/F,IACT+F,EAiJN,WACE,IAAIA,EAAIC,EAAQG,EAAQC,EAiDxB,OA/CAL,EAAKjB,GACDr0C,EAAM71C,OAAOkqF,GAAa,MAAQ9C,GACpCgE,EAAKhE,EACL8C,IAAe,KAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAAS5D,IAEpC+D,IAAOhG,GACJqG,OACMrG,GAC6B,KAAlCvvC,EAAM3d,WAAWgyD,KACnBqB,EAAKnF,EACL8D,OAEAqB,EAAKnG,EACmB,IAApBoF,IAAyBS,GAAS5E,IAEpCkF,IAAOnG,GACJqG,OACMrG,IACToG,EAAKY,QACMhH,GACT+E,GAAegB,EAEfA,EADAC,EAAK9D,EAAQkE,KAWjBtB,GAAciB,EACdA,EAAK/F,KAOT8E,GAAciB,EACdA,EAAK/F,GAGA+F,CACT,CApMWmB,GACDnB,IAAO/F,IACT+F,EAoMR,WACE,IAAIA,EAAIC,EAAQG,EAAQC,EAAIM,EAU5B,GARAX,EAAKjB,GACDr0C,EAAM71C,OAAOkqF,GAAa,KAAO3C,GACnC6D,EAAK7D,EACL2C,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAASzD,IAEpC4D,IAAOhG,EAET,GADKqG,OACMrG,EAQT,GAPsC,KAAlCvvC,EAAM3d,WAAWgyD,KACnBqB,EAAKnF,EACL8D,OAEAqB,EAAKnG,EACmB,IAApBoF,IAAyBS,GAAS5E,IAEpCkF,IAAOnG,EAET,GADKqG,OACMrG,EAAY,CAGrB,GAFAoG,EAAK,IACLM,EAAKS,QACMnH,EACT,KAAO0G,IAAO1G,GACZoG,EAAG10F,KAAKg1F,GACRA,EAAKS,UAGPf,EAAKpG,EAEHoG,IAAOpG,GACT+E,GAAegB,EAEfA,EADAC,EAAK3D,EAAQ+D,KAGbtB,GAAciB,EACdA,EAAK/F,EAET,MACE8E,GAAciB,EACdA,EAAK/F,OAGP8E,GAAciB,EACdA,EAAK/F,OAGP8E,GAAciB,EACdA,EAAK/F,OAGP8E,GAAciB,EACdA,EAAK/F,EAGP,OAAO+F,CACT,CAhQaqB,MAKJrB,CACT,CAhFmBsB,GACDT,IAAO5G,EAEToG,EADAM,EAAK,CAACA,EAAIC,EAAIC,IAGd9B,GAAcsB,EACdA,EAAKpG,KAOT8E,GAAcsB,EACdA,EAAKpG,GAEHoG,IAAOpG,IACToG,EAAK,MAEHA,IAAOpG,IACT0G,EAAKL,QACMrG,GAC6B,MAAlCvvC,EAAM3d,WAAWgyD,KACnB6B,EAAKzF,EACL4D,OAEA6B,EAAK3G,EACmB,IAApBoF,IAAyBS,GAAS1E,IAEpCwF,IAAO3G,GACT+E,GAAegB,EAEfA,EADAC,EAAK5E,EAAQ+E,EAAIC,KAGjBtB,GAAciB,EACdA,EAAK/F,KAOT8E,GAAciB,EACdA,EAAK/F,KAOT8E,GAAciB,EACdA,EAAK/F,KAOT8E,GAAciB,EACdA,EAAK/F,GAGA+F,CACT,CA9NSuB,IAGAvB,CACT,CA4gBA,SAASoB,KACP,IAAIpB,EAAQE,EAAQljF,EAAQ2jF,EAAQE,EAmEpC,OAjEAb,EAAKjB,GACAuB,OACMrG,GACTiG,EA3CJ,WACE,IAAIF,EAAIC,EAAIC,EAAIE,EAiChB,OA/BAJ,EAAKjB,GACLkB,EAAKlB,GACiC,KAAlCr0C,EAAM3d,WAAWgyD,KACnBmB,EAAK3D,EACLwC,OAEAmB,EAAKjG,EACmB,IAApBoF,IAAyBS,GAAStD,IAEpC0D,IAAOjG,IACTmG,EAAKU,QACM7G,EAETgG,EADAC,EAAK,CAACA,EAAIE,IAOZrB,GAAckB,EACdA,EAAKhG,IAGL+F,EADEC,IAAOhG,EACJvvC,EAAMxtC,UAAU8iF,EAAIjB,IAEpBkB,KAEIhG,IACT+F,EAAKO,MAGAP,CACT,CAQSwB,GACDtB,IAAOjG,GACJqG,OACMrG,GAC6B,MAAlCvvC,EAAM3d,WAAWgyD,KACnB/hF,EAAK+9E,EACLgE,OAEA/hF,EAAKi9E,EACmB,IAApBoF,IAAyBS,GAAS9E,IAEpCh+E,IAAOi9E,GACJqG,OACMrG,IACT0G,EAAKZ,QACM9F,GACJqG,OACMrG,GAC6B,MAAlCvvC,EAAM3d,WAAWgyD,KACnB8B,EAAK1F,EACL4D,OAEA8B,EAAK5G,EACmB,IAApBoF,IAAyBS,GAAS1E,IAEpCyF,IAAO5G,GACT+E,GAAegB,EAEfA,EADKvD,EAAQyD,EAAIS,KAGjB5B,GAAciB,EACdA,EAAK/F,KAeb8E,GAAciB,EACdA,EAAK/F,KAOT8E,GAAciB,EACdA,EAAK/F,KAGP8E,GAAciB,EACdA,EAAK/F,GAGA+F,CACT,CAqCA,SAASiB,KACP,IAAIjB,EAAIC,EAAQG,EAAIpjF,EAOpB,GALAgjF,EAAKjB,GACLkB,EAvCF,WACE,IAAID,EAAIC,EAAQG,EA+BhB,OA7BAJ,EAAKjB,GACDr0C,EAAM71C,OAAOkqF,GAAa,KAAOrC,GACnCuD,EAAKvD,EACLqC,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAASnD,IAEpCsD,IAAOhG,GACJqG,OACMrG,IACTmG,EAAKU,QACM7G,GACT+E,GAAegB,EAEfA,EADAC,EAAKrD,EAAQwD,KAWjBrB,GAAciB,EACdA,EAAK/F,GAGA+F,CACT,CAMOyB,GACDxB,IAAOhG,IACTgG,EAAK,MAEHA,IAAOhG,EAET,GADKqG,OACMrG,EAAY,CAGrB,GAFAmG,EAAK,IACLpjF,EAAKokF,QACMnH,EACT,KAAOj9E,IAAOi9E,GACZmG,EAAGz0F,KAAKqR,GACRA,EAAKokF,UAGPhB,EAAKnG,EAEHmG,IAAOnG,GACT+E,GAAegB,EAEfA,EADAC,EAAKpD,EAAQoD,EAAIG,KAGjBrB,GAAciB,EACdA,EAAK/F,EAET,MACE8E,GAAciB,EACdA,EAAK/F,OAGP8E,GAAciB,EACdA,EAAK/F,EAGP,OAAO+F,CACT,CAEA,SAASQ,KACP,IAAIR,EAAIC,EAWR,GATAZ,KACAW,EAAK,GACDjD,EAAQ3jE,KAAKsxB,EAAMnZ,OAAOwtD,MAC5BkB,EAAKv1C,EAAMnZ,OAAOwtD,IAClBA,OAEAkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAAS9C,IAEpCiD,IAAOhG,EACT,KAAOgG,IAAOhG,GACZ+F,EAAGr0F,KAAKs0F,GACJlD,EAAQ3jE,KAAKsxB,EAAMnZ,OAAOwtD,MAC5BkB,EAAKv1C,EAAMnZ,OAAOwtD,IAClBA,OAEAkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAAS9C,SAI1CgD,EAAK/F,EAQP,OANAoF,KACIW,IAAO/F,IACTgG,EAAKhG,EACmB,IAApBoF,IAAyBS,GAAShD,IAGjCkD,CACT,CAEA,SAASM,KACP,IAAIN,EAAIC,EAAIC,EAMZ,IAJAb,KACAW,EAAKjB,GACLkB,EAAK,GACLC,EAAKM,KACEN,IAAOjG,GACZgG,EAAGt0F,KAAKu0F,GACRA,EAAKM,KAaP,OAVER,EADEC,IAAOhG,EACJvvC,EAAMxtC,UAAU8iF,EAAIjB,IAEpBkB,EAEPZ,KACIW,IAAO/F,IACTgG,EAAKhG,EACmB,IAApBoF,IAAyBS,GAAS7C,IAGjC+C,CACT,CAEA,SAAS0B,KACP,IAAI1B,EAUJ,OARI9C,EAAQ9jE,KAAKsxB,EAAMnZ,OAAOwtD,MAC5BiB,EAAKt1C,EAAMnZ,OAAOwtD,IAClBA,OAEAiB,EAAK/F,EACmB,IAApBoF,IAAyBS,GAAS3C,IAGjC6C,CACT,CAEA,SAAS2B,KACP,IAAI3B,EAUJ,OARI5C,EAAQhkE,KAAKsxB,EAAMnZ,OAAOwtD,MAC5BiB,EAAKt1C,EAAMnZ,OAAOwtD,IAClBA,OAEAiB,EAAK/F,EACmB,IAApBoF,IAAyBS,GAASzC,IAGjC2C,CACT,CAEA,SAASc,KACP,IAAId,EAAIC,EAAIC,EAAIE,EAAIpjF,EAAIqjF,EAUxB,GARAL,EAAKjB,GACiC,KAAlCr0C,EAAM3d,WAAWgyD,KACnBkB,EAAK3C,EACLyB,OAEAkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAASvC,IAEpC0C,IAAOhG,EAAY,CAUrB,GATAgG,EAAKlB,GACLmB,EAAKnB,GACDvB,EAAQpkE,KAAKsxB,EAAMnZ,OAAOwtD,MAC5BqB,EAAK11C,EAAMnZ,OAAOwtD,IAClBA,OAEAqB,EAAKnG,EACmB,IAApBoF,IAAyBS,GAASrC,IAEpC2C,IAAOnG,EAAY,CAGrB,IAFAj9E,EAAK,GACLqjF,EAAKqB,KACErB,IAAOpG,GACZj9E,EAAGrR,KAAK00F,GACRA,EAAKqB,KAEH1kF,IAAOi9E,EAETiG,EADAE,EAAK,CAACA,EAAIpjF,IAGV+hF,GAAcmB,EACdA,EAAKjG,EAET,MACE8E,GAAcmB,EACdA,EAAKjG,EAGLgG,EADEC,IAAOjG,EACJvvC,EAAMxtC,UAAU+iF,EAAIlB,IAEpBmB,CAET,CAOA,OANID,IAAOhG,IACT+E,GAAegB,EACfC,EAAKvC,GAAQuC,IAEVA,CAGP,CAEA,SAAS2B,KACP,IAAI5B,EAAIC,EAAIC,EAAIE,EAAIpjF,EAAIqjF,EAAIM,EAAIC,EA8HhC,OA5HIhD,GAAQxkE,KAAKsxB,EAAMnZ,OAAOwtD,MAC5BiB,EAAKt1C,EAAMnZ,OAAOwtD,IAClBA,OAEAiB,EAAK/F,EACmB,IAApBoF,IAAyBS,GAASjC,KAEpCmC,IAAO/F,IACT+F,EAAKjB,GACDr0C,EAAM71C,OAAOkqF,GAAa,KAAOjB,IACnCmC,EAAKnC,GACLiB,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAAS/B,KAEpCkC,IAAOhG,IACT+E,GAAegB,EACfC,EAAKjC,OAEPgC,EAAKC,KACMhG,IACT+F,EAAKjB,GACDr0C,EAAM71C,OAAOkqF,GAAa,KAAOd,IACnCgC,EAAKhC,GACLc,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAAS5B,KAEpC+B,IAAOhG,IACT+E,GAAegB,EACfC,EAAK9B,OAEP6B,EAAKC,KACMhG,IACT+F,EAAKjB,GACDr0C,EAAM71C,OAAOkqF,GAAa,KAAOX,IACnC6B,EAAK7B,GACLW,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAASzB,KAEpC4B,IAAOhG,IACT+E,GAAegB,EACfC,EAAK3B,OAEP0B,EAAKC,KACMhG,IACT+F,EAAKjB,GACDr0C,EAAM71C,OAAOkqF,GAAa,KAAOR,IACnC0B,EAAK1B,GACLQ,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAAStB,KAEpCyB,IAAOhG,IACT+E,GAAegB,EACfC,EAAKxB,OAEPuB,EAAKC,KACMhG,IACT+F,EAAKjB,GACDr0C,EAAM71C,OAAOkqF,GAAa,KAAOL,IACnCuB,EAAKvB,GACLK,IAAe,IAEfkB,EAAKhG,EACmB,IAApBoF,IAAyBS,GAASnB,KAEpCsB,IAAOhG,GACTiG,EAAKnB,GACLqB,EAAKrB,IACL/hF,EAAK2kF,QACM1H,IACToG,EAAKsB,QACM1H,IACT0G,EAAKgB,QACM1H,IACT2G,EAAKe,QACM1H,EAETmG,EADApjF,EAAK,CAACA,EAAIqjF,EAAIM,EAAIC,IAexB7B,GAAcqB,EACdA,EAAKnG,IAGLiG,EADEE,IAAOnG,EACJvvC,EAAMxtC,UAAUgjF,EAAInB,IAEpBqB,KAEInG,GACT+E,GAAegB,EAEfA,EADAC,EAAKrB,GAAQsB,KAGbnB,GAAciB,EACdA,EAAK/F,KAGP8E,GAAciB,EACdA,EAAK/F,QAQV+F,CACT,CAEA,SAASO,KACP,IAAIP,EAAIC,EAAIC,EAKZ,GAHAF,EAAKjB,GACLkB,EAAK,IACLC,EAAK0B,QACM3H,EACT,KAAOiG,IAAOjG,GACZgG,EAAGt0F,KAAKu0F,GACRA,EAAK0B,UAGP3B,EAAKhG,EAQP,OANIgG,IAAOhG,IACT+E,GAAegB,EACfC,EAAKpB,GAAQoB,IAEVA,CAGP,CAIA,IAFAjG,EAAaI,OAEMH,GAAc8E,KAAgBr0C,EAAMz+C,OACrD,OAAO+tF,EAMP,MAJIA,IAAeC,GAAc8E,GAAcr0C,EAAMz+C,QACnD6zF,GAAS,CAAEzgF,KAAM,MAAO4I,YAAa,iBAvjCzC,SAA4B7W,EAASuoF,EAAU/G,EAAOnkD,GA+DpD,OAJiB,OAAbkrD,GA1DJ,SAAyBA,GACvB,IAAI5tF,EAAI,EAYR,IAVA4tF,EAAS7Q,MAAK,SAASnpD,EAAGzpB,GACxB,OAAIypB,EAAE1X,YAAc/R,EAAE+R,aACZ,EACC0X,EAAE1X,YAAc/R,EAAE+R,YACpB,EAEA,CAEX,IAEOlc,EAAI4tF,EAAS1tF,QACd0tF,EAAS5tF,EAAI,KAAO4tF,EAAS5tF,GAC/B4tF,EAAS32C,OAAOj3C,EAAG,GAEnBA,GAGN,CAuCE81F,CAAgBlI,GAGX,IAAID,EACG,OAAZtoF,EAAmBA,EAzCrB,SAAsBuoF,EAAU/G,GAkB9B,IAC6B7mF,EADzB+1F,EAAgB,IAAItsF,MAAMmkF,EAAS1tF,QAGvC,IAAKF,EAAI,EAAGA,EAAI4tF,EAAS1tF,OAAQF,IAC/B+1F,EAAc/1F,GAAK4tF,EAAS5tF,GAAGkc,YAWjC,MAAO,aARQ0xE,EAAS1tF,OAAS,EAC7B61F,EAAczlF,MAAM,GAAI,GAAGpH,KAAK,MAC5B,OACA6sF,EAAcnI,EAAS1tF,OAAS,GACpC61F,EAAc,IAIkB,SAFxBlP,EAAQ,IA9BpB,SAAsB1+D,GACpB,SAAS6tE,EAAIpyD,GAAM,OAAOA,EAAG5C,WAAW,GAAG74B,SAAS,IAAI2lC,aAAe,CAEvE,OAAO3lB,EACJprB,QAAQ,MAAS,QACjBA,QAAQ,KAAS,OACjBA,QAAQ,QAAS,OACjBA,QAAQ,MAAS,OACjBA,QAAQ,MAAS,OACjBA,QAAQ,MAAS,OACjBA,QAAQ,MAAS,OACjBA,QAAQ,4BAA4B,SAAS6mC,GAAM,MAAO,OAASoyD,EAAIpyD,EAAK,IAC5E7mC,QAAQ,yBAA4B,SAAS6mC,GAAM,MAAO,MAASoyD,EAAIpyD,EAAK,IAC5E7mC,QAAQ,oBAA4B,SAAS6mC,GAAM,MAAO,OAASoyD,EAAIpyD,EAAK,IAC5E7mC,QAAQ,oBAA4B,SAAS6mC,GAAM,MAAO,MAASoyD,EAAIpyD,EAAK,GACjF,CAe2BqyD,CAAapP,GAAS,IAAO,gBAEE,SAC5D,CAO+BqP,CAAatI,EAAU/G,GACpD+G,EACA/G,EACAnkD,EAEJ,CAq/BQyzD,CACJ,KACA9C,GACAD,GAAiBz0C,EAAMz+C,OAASy+C,EAAMnZ,OAAO4tD,IAAkB,KAC/DA,GAAiBz0C,EAAMz+C,OACnBszF,GAAoBJ,GAAgBA,GAAiB,GACrDI,GAAoBJ,GAAgBA,IAG9C,EAMD,CAp3Cc,iGC4Bf,SAASgD,EAAuBC,GAC5B,MAAO,CACHt+D,OAAQ,WACJ,MAAO,CACH75B,IAAK,SAAUM,GACX,OAAO63F,EAAM73F,EACjB,EACAI,IAAK,SAAUJ,EAAKgC,GAChB61F,EAAM73F,GAAOgC,CACjB,EAER,EAER,CA2CA,IAAIqwE,EAAmC,WACnC,SAASA,EAAkBxrE,EAAS2kC,EAASssD,EAAiBptD,GAC1D,IA5CyBnrC,EAvBXw4F,EAAeC,EAmEzB7vF,EAAQpC,KA2CZ,QA1CgB,IAAZylC,IAAsBA,EAAU6mC,EAAkB3jC,eACtD3oC,KAAKkyF,eAAiB,CAClB5zF,OAAQ,CAAC,EACTs4B,SAAU,CAAC,EACXu7D,YAAa,CAAC,GAElBnyF,KAAKwpB,OAAS,SAAUvC,GACpB,IAAImrE,EAAQhwF,EAAM+iC,cAAcle,GAEhC,GAAqB,IAAjBmrE,EAAMz2F,OACN,OAAOy2F,EAAM,GAAGn2F,MAEpB,IAAIgH,EAASmvF,EAAMp+D,QAAO,SAAU5X,EAAKsyD,GASrC,OARKtyD,EAAIzgB,QACL+yE,EAAK3/D,OAAS,KAAU6mB,SACO,iBAAxBxZ,EAAIA,EAAIzgB,OAAS,GAIxBygB,EAAIA,EAAIzgB,OAAS,IAAM+yE,EAAKzyE,MAH5BmgB,EAAI/gB,KAAKqzE,EAAKzyE,OAKXmgB,CACX,GAAG,IACH,OAAInZ,EAAOtH,QAAU,EACVsH,EAAO,IAAM,GAEjBA,CACX,EACAjD,KAAKmlC,cAAgB,SAAUle,GAC3B,OAAO,QAAc7kB,EAAM6qE,IAAK7qE,EAAMqjC,QAASrjC,EAAMiwF,WAAYjwF,EAAMoqE,QAASvlD,OAAQlkB,EAAWX,EAAMtB,QAC7G,EACAd,KAAKulC,gBAAkB,WACnB,IAAI5R,EACJ,MAAO,CACHtX,QAAyC,QAA/BsX,EAAKvxB,EAAMkwF,sBAAmC,IAAP3+D,OAAgB,EAASA,EAAG/vB,aACzEqhC,KAAKuoC,aAAa7nC,mBAAmBvjC,EAAMqjC,SAAS,GAEhE,EACAzlC,KAAKuyF,OAAS,WAAc,OAAOnwF,EAAM6qE,GAAK,EAE9CjtE,KAAKylC,QAAUA,EACfzlC,KAAKsyF,eAAiBhmB,EAAkBkmB,cAAc/sD,GAC/B,iBAAZ3kC,EAAsB,CAE7B,GADAd,KAAKc,QAAUA,GACVwrE,EAAkBwB,QACnB,MAAM,IAAIhuE,UAAU,+EAExB,IAAI6zB,EAAKgR,GAAQ,CAAC,EAA+B8tD,GAAf9+D,EAAG0+D,YAAwB,IAAAK,QAAO/+D,EAAI,CAAC,gBAEzE3zB,KAAKitE,IAAMX,EAAkBwB,QAAQhtE,GAAS,IAAA04B,WAAS,IAAAA,UAAS,CAAC,EAAGi5D,GAAY,CAAEp2E,OAAQrc,KAAKsyF,iBACnG,MAEItyF,KAAKitE,IAAMnsE,EAEf,IAAKoE,MAAMwgC,QAAQ1lC,KAAKitE,KACpB,MAAM,IAAIntE,UAAU,kDAIxBE,KAAKwsE,SA/HSwlB,EA+Hc1lB,EAAkBE,SA/HjBylB,EA+H0BF,GA3HpDj4F,OAAOiB,KAAKi3F,GAAeh+D,QAAO,SAAU5X,EAAK4K,GAb5D,IAAqB2rE,EAAIC,EAejB,OADAx2E,EAAI4K,IAdS2rE,EAcQX,EAAchrE,IAdlB4rE,EAcsBX,EAAQjrE,KAV5C,IAAAwS,WAAS,IAAAA,WAAS,IAAAA,UAAS,CAAC,EAAIm5D,GAAM,CAAC,GAAMC,GAAM,CAAC,GAAK94F,OAAOiB,KAAK43F,GAAI3+D,QAAO,SAAU5X,EAAK4K,GAElG,OADA5K,EAAI4K,IAAK,IAAAwS,WAAS,IAAAA,UAAS,CAAC,EAAGm5D,EAAG3rE,IAAM4rE,EAAG5rE,IAAM,CAAC,GAC3C5K,CACX,GAAG,CAAC,IALOu2E,GAaAv2E,CACX,IAAG,IAAAod,UAAS,CAAC,EAAGw4D,IALLA,GA8HPhyF,KAAKqyF,WACA1tD,GAAQA,EAAK0tD,kBAzGR,KADe74F,EA0GgCwG,KAAKkyF,kBAzG1C14F,EAAQ,CAC5B8E,OAAQ,CAAC,EACTs4B,SAAU,CAAC,EACXu7D,YAAa,CAAC,IAEX,CACHU,iBAAiB,QAAQ,WAGrB,IAFA,IAAIl/D,EACAngB,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,KAAMC,EAAKsR,KAAKuoC,cAAcrtE,KAAK7E,MAAMq4B,GAAI,IAAAm/D,eAAc,MAAC,GAASt/E,GAAM,IACtF,GAAG,CACCha,MAAOq4F,EAAuBr4F,EAAM8E,QACpCq2B,SAAU,IAAWM,WAEzB89D,mBAAmB,QAAQ,WAGvB,IAFA,IAAIp/D,EACAngB,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,KAAMC,EAAKsR,KAAKC,gBAAgB/kC,KAAK7E,MAAMq4B,GAAI,IAAAm/D,eAAc,MAAC,GAASt/E,GAAM,IACxF,GAAG,CACCha,MAAOq4F,EAAuBr4F,EAAMo9B,UACpCjC,SAAU,IAAWM,WAEzB+9D,gBAAgB,QAAQ,WAGpB,IAFA,IAAIr/D,EACAngB,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,KAAMC,EAAKsR,KAAKguD,aAAa9yF,KAAK7E,MAAMq4B,GAAI,IAAAm/D,eAAc,MAAC,GAASt/E,GAAM,IACrF,GAAG,CACCha,MAAOq4F,EAAuBr4F,EAAM24F,aACpCx9D,SAAU,IAAWM,YAqE7B,CAsFA,OArFAn7B,OAAOC,eAAeuyE,EAAmB,gBAAiB,CACtD3yE,IAAK,WAKD,OAJK2yE,EAAkB4mB,wBACnB5mB,EAAkB4mB,uBACd,IAAIjuD,KAAKuoC,cAAejoC,kBAAkBlpB,QAE3CiwD,EAAkB4mB,qBAC7B,EACA93F,YAAY,EACZc,cAAc,IAElBowE,EAAkB4mB,sBAAwB,KAC1C5mB,EAAkBkmB,cAAgB,SAAU/sD,GACxC,QAA2B,IAAhBR,KAAKuC,OAAhB,CAGA,IAAI5B,EAAmBX,KAAKuoC,aAAa7nC,mBAAmBF,GAC5D,OAAIG,EAAiBjqC,OAAS,EACnB,IAAIspC,KAAKuC,OAAO5B,EAAiB,IAErC,IAAIX,KAAKuC,OAA0B,iBAAZ/B,EAAuBA,EAAUA,EAAQ,GALvE,CAMJ,EACA6mC,EAAkBwB,QAAU,KAI5BxB,EAAkBE,QAAU,CACxBluE,OAAQ,CACJ60F,QAAS,CACL95D,sBAAuB,GAE3BF,SAAU,CACN9hB,MAAO,YAEX+7E,QAAS,CACL/7E,MAAO,YAGf/N,KAAM,CACF+pF,MAAO,CACHj8D,MAAO,UACPC,IAAK,UACLH,KAAM,WAEV3Z,OAAQ,CACJ6Z,MAAO,QACPC,IAAK,UACLH,KAAM,WAEVo8D,KAAM,CACFl8D,MAAO,OACPC,IAAK,UACLH,KAAM,WAEVq8D,KAAM,CACFj8D,QAAS,OACTF,MAAO,OACPC,IAAK,UACLH,KAAM,YAGd1oB,KAAM,CACF6kF,MAAO,CACH57D,KAAM,UACNC,OAAQ,WAEZna,OAAQ,CACJka,KAAM,UACNC,OAAQ,UACRC,OAAQ,WAEZ27D,KAAM,CACF77D,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,aAAc,SAElB27D,KAAM,CACF97D,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,aAAc,WAInB00C,CACX,CAxJsC,2FCnF3BknB,cACX,SAAWA,GAEPA,EAAyB,cAAI,gBAE7BA,EAAyB,cAAI,gBAE7BA,EAA4B,iBAAI,kBACnC,CAPD,CAOGA,IAAcA,EAAY,CAAC,IAC9B,IAAIC,EAA6B,SAAUC,GAEvC,SAASD,EAAYjV,EAAKpiD,EAAMyI,GAC5B,IAAIziC,EAAQsxF,EAAOv5F,KAAK6F,KAAMw+E,IAAQx+E,KAGtC,OAFAoC,EAAMg6B,KAAOA,EACbh6B,EAAMyiC,gBAAkBA,EACjBziC,CACX,CAIA,OAVA,IAAAuxF,WAAUF,EAAaC,GAOvBD,EAAYp6F,UAAUuK,SAAW,WAC7B,MAAO,oBAAoBtB,OAAOtC,KAAKo8B,KAAM,MAAM95B,OAAOtC,KAAKc,QACnE,EACO2yF,CACX,CAZgC,CAY9BttF,OAEEytF,EAAmC,SAAUF,GAE7C,SAASE,EAAkBtlB,EAAYryE,EAAO8E,EAAS8jC,GACnD,OAAO6uD,EAAOv5F,KAAK6F,KAAM,uBAAwBsC,OAAOgsE,EAAY,QAAUhsE,OAAOrG,EAAO,oBAAsBqG,OAAOxI,OAAOiB,KAAKgG,GAAS4D,KAAK,QAAS,KAAO6uF,EAAUK,cAAehvD,IAAoB7kC,IACpN,CACA,OAJA,IAAA2zF,WAAUC,EAAmBF,GAItBE,CACX,CANsC,CAMpCH,GAEEK,EAAuC,SAAUJ,GAEjD,SAASI,EAAsB73F,EAAO8S,EAAM81B,GACxC,OAAO6uD,EAAOv5F,KAAK6F,KAAM,cAAesC,OAAOrG,EAAO,sBAAuBqG,OAAOyM,GAAOykF,EAAUK,cAAehvD,IAAoB7kC,IAC5I,CACA,OAJA,IAAA2zF,WAAUG,EAAuBJ,GAI1BI,CACX,CAN0C,CAMxCL,GAEEM,EAAmC,SAAUL,GAE7C,SAASK,EAAkBzlB,EAAYzpC,GACnC,OAAO6uD,EAAOv5F,KAAK6F,KAAM,qCAAsCsC,OAAOgsE,EAAY,sCAAwChsE,OAAOuiC,EAAiB,KAAO2uD,EAAUQ,cAAenvD,IAAoB7kC,IAC1M,CACA,OAJA,IAAA2zF,WAAUI,EAAmBL,GAItBK,CACX,CANsC,CAMpCN,wEC5CSQ,wBAsBJ,SAASC,EAAqBv+D,GACjC,MAAqB,mBAAPA,CAClB,CAEO,SAASwP,EAAcT,EAAKe,EAAS4sD,EAAY7lB,EAASvlD,EAAQktE,EAEzEtvD,GAEI,GAAmB,IAAfH,EAAI/oC,SAAgB,QAAiB+oC,EAAI,IACzC,MAAO,CACH,CACI31B,KAAMklF,EAAUr+D,QAChB35B,MAAOyoC,EAAI,GAAGzoC,QAK1B,IADA,IAAIgH,EAAS,GACJywB,EAAK,EAAG0gE,EAAQ1vD,EAAKhR,EAAK0gE,EAAMz4F,OAAQ+3B,IAAM,CACnD,IAAIiC,EAAKy+D,EAAM1gE,GAEf,IAAI,QAAiBiC,GACjB1yB,EAAO5H,KAAK,CACR0T,KAAMklF,EAAUr+D,QAChB35B,MAAO05B,EAAG15B,aAMlB,IAAI,QAAe05B,GACmB,iBAAvBw+D,GACPlxF,EAAO5H,KAAK,CACR0T,KAAMklF,EAAUr+D,QAChB35B,MAAOo2F,EAAWQ,gBAAgBptD,GAASjc,OAAO2qE,SAJ9D,CASA,IAAIE,EAAU1+D,EAAG15B,MAEjB,IAAMgrB,KAAUotE,KAAWptE,GACvB,MAAM,IAAI,KAAkBotE,EAASxvD,GAEzC,IAAI5oC,EAAQgrB,EAAOotE,GACnB,IAAI,QAAkB1+D,GACb15B,GAA0B,iBAAVA,GAAuC,iBAAVA,IAC9CA,EACqB,iBAAVA,GAAuC,iBAAVA,EAC9Bg/B,OAAOh/B,GACP,IAEdgH,EAAO5H,KAAK,CACR0T,KAAuB,iBAAV9S,EAAqBg4F,EAAUr+D,QAAUq+D,EAAUp5F,OAChEoB,MAAOA,SAOf,IAAI,QAAc05B,GAAlB,CACI,IAAIte,EAA4B,iBAAbse,EAAGte,MAChBm1D,EAAQljE,KAAKqsB,EAAGte,QAChB,QAAmBse,EAAGte,OAClBse,EAAGte,MAAMmqB,mBACTz+B,EACVE,EAAO5H,KAAK,CACR0T,KAAMklF,EAAUr+D,QAChB35B,MAAOo2F,EACFU,kBAAkBttD,EAASpuB,GAC3BmS,OAAOvtB,IAGpB,MACA,IAAI,QAAc05B,GACVte,EAA4B,iBAAbse,EAAGte,MAChBm1D,EAAQh+D,KAAKmnB,EAAGte,QAChB,QAAmBse,EAAGte,OAClBse,EAAGte,MAAMmqB,cACTgrC,EAAQh+D,KAAK+O,OACvBta,EAAO5H,KAAK,CACR0T,KAAMklF,EAAUr+D,QAChB35B,MAAOo2F,EACFU,kBAAkBttD,EAASpuB,GAC3BmS,OAAOvtB,UAIpB,IAAI,QAAgB05B,IACZte,EAA4B,iBAAbse,EAAGte,MAChBm1D,EAAQluE,OAAOq3B,EAAGte,QAClB,QAAiBse,EAAGte,OAChBse,EAAGte,MAAMmqB,mBACTz+B,IACGsU,EAAMwE,QACf5f,GAESob,EAAMwE,OAAS,GAE5B5Y,EAAO5H,KAAK,CACR0T,KAAMklF,EAAUr+D,QAChB35B,MAAOo2F,EACFQ,gBAAgBptD,EAASpuB,GACzBmS,OAAOvtB,SAfpB,CAmBA,IAAI,QAAa05B,GAAK,CAClB,IAAI93B,EAAW83B,EAAG93B,SAAUy2F,EAAU3+D,EAAG15B,MACrCs4F,EAAWttE,EAAOqtE,GACtB,IAAKJ,EAAqBK,GACtB,MAAM,IAAI,KAAsBD,EAAS,WAAYzvD,GAEzD,IACI2vD,EAASD,EADDpvD,EAActnC,EAAU4nC,EAAS4sD,EAAY7lB,EAASvlD,EAAQktE,GAC9C5hF,KAAI,SAAU+Z,GAAK,OAAOA,EAAErwB,KAAO,KAC1DiJ,MAAMwgC,QAAQ8uD,KACfA,EAAS,CAACA,IAEdvxF,EAAO5H,KAAKC,MAAM2H,EAAQuxF,EAAOjiF,KAAI,SAAUmX,GAC3C,MAAO,CACH3a,KAAmB,iBAAN2a,EAAiBuqE,EAAUr+D,QAAUq+D,EAAUp5F,OAC5DoB,MAAOytB,EAEf,IACJ,CACA,IAAI,QAAgBiM,GAApB,CAEI,KADIoD,EAAMpD,EAAG50B,QAAQ9E,IAAU05B,EAAG50B,QAAQmuB,OAEtC,MAAM,IAAI,KAAkByG,EAAG15B,MAAOA,EAAOnC,OAAOiB,KAAK46B,EAAG50B,SAAU8jC,GAE1E5hC,EAAO5H,KAAKC,MAAM2H,EAAQkiC,EAAcpM,EAAI98B,MAAOwpC,EAAS4sD,EAAY7lB,EAASvlD,GAErF,MACA,IAAI,QAAgB0O,GAApB,CACI,IAAIoD,EACJ,KADIA,EAAMpD,EAAG50B,QAAQ,IAAIuB,OAAOrG,KACtB,CACN,IAAKgpC,KAAKguD,YACN,MAAM,IAAI,KAAY,kHAAqH,KAAUwB,iBAAkB5vD,GAE3K,IAAI6vD,EAAOrC,EACNW,eAAevtD,EAAS,CAAE12B,KAAM4mB,EAAGwM,aACnChM,OAAOl6B,GAAS05B,EAAGlxB,QAAU,IAClCs0B,EAAMpD,EAAG50B,QAAQ2zF,IAAS/+D,EAAG50B,QAAQmuB,KACzC,CACA,IAAK6J,EACD,MAAM,IAAI,KAAkBpD,EAAG15B,MAAOA,EAAOnC,OAAOiB,KAAK46B,EAAG50B,SAAU8jC,GAE1E5hC,EAAO5H,KAAKC,MAAM2H,EAAQkiC,EAAcpM,EAAI98B,MAAOwpC,EAAS4sD,EAAY7lB,EAASvlD,EAAQhrB,GAAS05B,EAAGlxB,QAAU,IAEnH,CA3CA,CArEA,CAiHJ,CACA,OAxKkB2tF,EAwKEnvF,GAvKVtH,OAAS,EACRy2F,EAEJA,EAAMp+D,QAAO,SAAU5X,EAAKsyD,GAC/B,IAAIimB,EAAWv4E,EAAIA,EAAIzgB,OAAS,GAShC,OARKg5F,GACDA,EAAS5lF,OAASklF,EAAUr+D,SAC5B84C,EAAK3/D,OAASklF,EAAUr+D,QAIxB++D,EAAS14F,OAASyyE,EAAKzyE,MAHvBmgB,EAAI/gB,KAAKqzE,GAKNtyD,CACX,GAAG,IAfP,IAAsBg2E,CAyKtB,EA7KA,SAAW6B,GACPA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAkB,OAAI,GAAK,QACxC,CAHD,CAGGA,IAAcA,EAAY,CAAC,+BCI9B,IAGIW,EAAiB,4BAGjBC,EAAuB,EACvBC,EAAyB,EAGzBnmE,EAAmB,iBAGnBomE,EAAU,qBACVC,EAAW,iBACXC,EAAW,yBACXC,EAAU,mBACVC,EAAU,gBACVC,EAAW,iBACXC,EAAU,oBACVC,EAAS,6BACTC,EAAS,eACTC,EAAY,kBACZC,EAAU,gBACVC,EAAY,kBACZC,EAAa,mBACbC,EAAW,iBACXC,EAAY,kBACZC,EAAS,eACTC,EAAY,kBAEZC,EAAe,qBACfC,EAAa,mBAEbC,EAAiB,uBACjBC,EAAc,oBAkBdC,EAAe,8BAGfC,EAAW,mBAGXC,EAAiB,CAAC,EACtBA,EAxBiB,yBAwBYA,EAvBZ,yBAwBjBA,EAvBc,sBAuBYA,EAtBX,uBAuBfA,EAtBe,uBAsBYA,EArBZ,uBAsBfA,EArBsB,8BAqBYA,EApBlB,wBAqBhBA,EApBgB,yBAoBY,EAC5BA,EAAevB,GAAWuB,EAAetB,GACzCsB,EAAeJ,GAAkBI,EAAepB,GAChDoB,EAAeH,GAAeG,EAAenB,GAC7CmB,EAAelB,GAAYkB,EAAejB,GAC1CiB,EAAef,GAAUe,EAAed,GACxCc,EAAeZ,GAAaY,EAAeT,GAC3CS,EAAeR,GAAUQ,EAAeP,GACxCO,EAAeL,IAAc,EAG7B,IAAIM,EAA8B,iBAAV,EAAA39F,GAAsB,EAAAA,GAAU,EAAAA,EAAOkB,SAAWA,QAAU,EAAAlB,EAGhF49F,EAA0B,iBAAR39F,MAAoBA,MAAQA,KAAKiB,SAAWA,QAAUjB,KAGxElB,EAAO4+F,GAAcC,GAAY7T,SAAS,cAATA,GAGjC8T,EAA4C5+F,IAAYA,EAAQ2/E,UAAY3/E,EAG5E6+F,EAAaD,GAA4C3+F,IAAWA,EAAO0/E,UAAY1/E,EAGvFukF,EAAgBqa,GAAcA,EAAW7+F,UAAY4+F,EAGrDE,EAActa,GAAiBka,EAAWr1E,QAG1C01E,EAAY,WACd,IACE,OAAOD,GAAeA,EAAYE,SAAWF,EAAYE,QAAQ,OACnE,CAAE,MAAOt1E,GAAI,CACf,CAJe,GAOXu1E,EAAmBF,GAAYA,EAASG,aAuD5C,SAASC,EAAU3e,EAAO4e,GAIxB,IAHA,IAAI54E,GAAS,EACT1iB,EAAkB,MAAT08E,EAAgB,EAAIA,EAAM18E,SAE9B0iB,EAAQ1iB,GACf,GAAIs7F,EAAU5e,EAAMh6D,GAAQA,EAAOg6D,GACjC,OAAO,EAGX,OAAO,CACT,CAiEA,SAAS6e,EAAW3kF,GAClB,IAAI8L,GAAS,EACTpb,EAASiC,MAAMqN,EAAIqE,MAKvB,OAHArE,EAAI1W,SAAQ,SAASI,EAAOhC,GAC1BgJ,IAASob,GAAS,CAACpkB,EAAKgC,EAC1B,IACOgH,CACT,CAuBA,SAASk0F,EAAW98F,GAClB,IAAIgkB,GAAS,EACTpb,EAASiC,MAAM7K,EAAIuc,MAKvB,OAHAvc,EAAIwB,SAAQ,SAASI,GACnBgH,IAASob,GAASpiB,CACpB,IACOgH,CACT,CAGA,IAeMm0F,EAvCWz4F,EAAMo6D,EAwBnBs+B,EAAanyF,MAAM7L,UACnBi+F,EAAY3U,SAAStpF,UACrBk+F,EAAcz9F,OAAOT,UAGrBm+F,EAAa7/F,EAAK,sBAGlB8/F,EAAeH,EAAU1zF,SAGzB1J,EAAiBq9F,EAAYr9F,eAG7Bw9F,GACEN,EAAM,SAASp7D,KAAKw7D,GAAcA,EAAWz8F,MAAQy8F,EAAWz8F,KAAK48F,UAAY,KACvE,iBAAmBP,EAAO,GAQtCQ,EAAuBL,EAAY3zF,SAGnCi0F,GAAarmE,OAAO,IACtBimE,EAAat9F,KAAKD,GAAgB1B,QA7PjB,sBA6PuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5Es/F,GAASzb,EAAgB1kF,EAAKmgG,YAAS/0F,EACvC7J,GAASvB,EAAKuB,OACd8L,GAAarN,EAAKqN,WAClBwuC,GAAuB+jD,EAAY/jD,qBACnCd,GAAS2kD,EAAW3kD,OACpBqlD,GAAiB7+F,GAASA,GAAO8+F,iBAAcj1F,EAG/Ck1F,GAAmBn+F,OAAOkB,sBAC1Bk9F,GAAiBJ,GAASA,GAAOK,cAAWp1F,EAC5Cq1F,IAnEaz5F,EAmEQ7E,OAAOiB,KAnETg+D,EAmEej/D,OAlE7B,SAASg7B,GACd,OAAOn2B,EAAKo6D,EAAUjkC,GACxB,GAmEEujE,GAAWC,GAAU3gG,EAAM,YAC3B+pB,GAAM42E,GAAU3gG,EAAM,OACtBuH,GAAUo5F,GAAU3gG,EAAM,WAC1BsrC,GAAMq1D,GAAU3gG,EAAM,OACtBgD,GAAU29F,GAAU3gG,EAAM,WAC1B4gG,GAAeD,GAAUx+F,OAAQ,UAGjC0+F,GAAqBC,GAASJ,IAC9BK,GAAgBD,GAAS/2E,IACzBi3E,GAAoBF,GAASv5F,IAC7B05F,GAAgBH,GAASx1D,IACzB41D,GAAoBJ,GAAS99F,IAG7Bm+F,GAAc5/F,GAASA,GAAOG,eAAY0J,EAC1Cg2F,GAAgBD,GAAcA,GAAYxtF,aAAUvI,EASxD,SAASi2F,GAAKz8D,GACZ,IAAIle,GAAS,EACT1iB,EAAoB,MAAX4gC,EAAkB,EAAIA,EAAQ5gC,OAG3C,IADAqE,KAAK4xD,UACIvzC,EAAQ1iB,GAAQ,CACvB,IAAIs9F,EAAQ18D,EAAQle,GACpBre,KAAK3F,IAAI4+F,EAAM,GAAIA,EAAM,GAC3B,CACF,CA6FA,SAASC,GAAU38D,GACjB,IAAIle,GAAS,EACT1iB,EAAoB,MAAX4gC,EAAkB,EAAIA,EAAQ5gC,OAG3C,IADAqE,KAAK4xD,UACIvzC,EAAQ1iB,GAAQ,CACvB,IAAIs9F,EAAQ18D,EAAQle,GACpBre,KAAK3F,IAAI4+F,EAAM,GAAIA,EAAM,GAC3B,CACF,CA0GA,SAASE,GAAS58D,GAChB,IAAIle,GAAS,EACT1iB,EAAoB,MAAX4gC,EAAkB,EAAIA,EAAQ5gC,OAG3C,IADAqE,KAAK4xD,UACIvzC,EAAQ1iB,GAAQ,CACvB,IAAIs9F,EAAQ18D,EAAQle,GACpBre,KAAK3F,IAAI4+F,EAAM,GAAIA,EAAM,GAC3B,CACF,CA6FA,SAASG,GAASnyE,GAChB,IAAI5I,GAAS,EACT1iB,EAAmB,MAAVsrB,EAAiB,EAAIA,EAAOtrB,OAGzC,IADAqE,KAAKq5F,SAAW,IAAIF,KACX96E,EAAQ1iB,GACfqE,KAAK2jC,IAAI1c,EAAO5I,GAEpB,CAyCA,SAASi7E,GAAM/8D,GACb,IAAIn+B,EAAO4B,KAAKq5F,SAAW,IAAIH,GAAU38D,GACzCv8B,KAAK4W,KAAOxY,EAAKwY,IACnB,CAqIA,SAAS2iF,GAAalhB,EAAOp+E,GAE3B,IADA,IAAI0B,EAAS08E,EAAM18E,OACZA,KACL,GAAIm0B,GAAGuoD,EAAM18E,GAAQ,GAAI1B,GACvB,OAAO0B,EAGX,OAAQ,CACV,CAyBA,SAAS69F,GAAWv9F,GAClB,OAAa,MAATA,OACe8G,IAAV9G,EAAsB+5F,EAAeP,EAEtCsC,IAAkBA,MAAkBj+F,OAAOmC,GA0arD,SAAmBA,GACjB,IAAIw9F,EAAQv/F,EAAeC,KAAK8B,EAAO87F,IACnCthE,EAAMx6B,EAAM87F,IAEhB,IACE97F,EAAM87F,SAAkBh1F,EACxB,IAAI22F,GAAW,CACjB,CAAE,MAAOn4E,GAAI,CAEb,IAAIte,EAAS20F,EAAqBz9F,KAAK8B,GAQvC,OAPIy9F,IACED,EACFx9F,EAAM87F,IAAkBthE,SAEjBx6B,EAAM87F,KAGV90F,CACT,CA3bM02F,CAAU19F,GA4iBhB,SAAwBA,GACtB,OAAO27F,EAAqBz9F,KAAK8B,EACnC,CA7iBM29F,CAAe39F,EACrB,CASA,SAAS49F,GAAgB59F,GACvB,OAAO69F,GAAa79F,IAAUu9F,GAAWv9F,IAAU84F,CACrD,CAgBA,SAASgF,GAAY99F,EAAOizB,EAAO8qE,EAASC,EAAYC,GACtD,OAAIj+F,IAAUizB,IAGD,MAATjzB,GAA0B,MAATizB,IAAmB4qE,GAAa79F,KAAW69F,GAAa5qE,GACpEjzB,GAAUA,GAASizB,GAAUA,EAmBxC,SAAyBr0B,EAAQq0B,EAAO8qE,EAASC,EAAYE,EAAWD,GACtE,IAAIE,EAAW10D,GAAQ7qC,GACnBw/F,EAAW30D,GAAQxW,GACnBorE,EAASF,EAAWpF,EAAWuF,GAAO1/F,GACtC2/F,EAASH,EAAWrF,EAAWuF,GAAOrrE,GAKtCurE,GAHJH,EAASA,GAAUvF,EAAUW,EAAY4E,IAGhB5E,EACrBgF,GAHJF,EAASA,GAAUzF,EAAUW,EAAY8E,IAGhB9E,EACrBiF,EAAYL,GAAUE,EAE1B,GAAIG,GAAaxC,GAASt9F,GAAS,CACjC,IAAKs9F,GAASjpE,GACZ,OAAO,EAETkrE,GAAW,EACXK,GAAW,CACb,CACA,GAAIE,IAAcF,EAEhB,OADAP,IAAUA,EAAQ,IAAIZ,IACdc,GAAYrD,GAAal8F,GAC7B+/F,GAAY//F,EAAQq0B,EAAO8qE,EAASC,EAAYE,EAAWD,GAiKnE,SAAoBr/F,EAAQq0B,EAAOuH,EAAKujE,EAASC,EAAYE,EAAWD,GACtE,OAAQzjE,GACN,KAAK0/D,EACH,GAAKt7F,EAAOggG,YAAc3rE,EAAM2rE,YAC3BhgG,EAAOigG,YAAc5rE,EAAM4rE,WAC9B,OAAO,EAETjgG,EAASA,EAAOkgG,OAChB7rE,EAAQA,EAAM6rE,OAEhB,KAAK7E,EACH,QAAKr7F,EAAOggG,YAAc3rE,EAAM2rE,aAC3BV,EAAU,IAAIn1F,GAAWnK,GAAS,IAAImK,GAAWkqB,KAKxD,KAAKgmE,EACL,KAAKC,EACL,KAAKK,EAGH,OAAO1lE,IAAIj1B,GAASq0B,GAEtB,KAAKkmE,EACH,OAAOv6F,EAAOsM,MAAQ+nB,EAAM/nB,MAAQtM,EAAOiG,SAAWouB,EAAMpuB,QAE9D,KAAK+0F,EACL,KAAKE,EAIH,OAAOl7F,GAAWq0B,EAAQ,GAE5B,KAAKqmE,EACH,IAAIyF,EAAU9D,EAEhB,KAAKpB,EACH,IAAImF,EAAYjB,EAAUnF,EAG1B,GAFAmG,IAAYA,EAAU7D,GAElBt8F,EAAO+b,MAAQsY,EAAMtY,OAASqkF,EAChC,OAAO,EAGT,IAAIC,EAAUhB,EAAMvgG,IAAIkB,GACxB,GAAIqgG,EACF,OAAOA,GAAWhsE,EAEpB8qE,GAAWlF,EAGXoF,EAAM7/F,IAAIQ,EAAQq0B,GAClB,IAAIjsB,EAAS23F,GAAYI,EAAQngG,GAASmgG,EAAQ9rE,GAAQ8qE,EAASC,EAAYE,EAAWD,GAE1F,OADAA,EAAc,OAAEr/F,GACToI,EAET,IAhoCY,kBAioCV,GAAI81F,GACF,OAAOA,GAAc5+F,KAAKU,IAAWk+F,GAAc5+F,KAAK+0B,GAG9D,OAAO,CACT,CA/NQisE,CAAWtgG,EAAQq0B,EAAOorE,EAAQN,EAASC,EAAYE,EAAWD,GAExE,KAAMF,EAAUnF,GAAuB,CACrC,IAAIuG,EAAeX,GAAYvgG,EAAeC,KAAKU,EAAQ,eACvDwgG,EAAeX,GAAYxgG,EAAeC,KAAK+0B,EAAO,eAE1D,GAAIksE,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAevgG,EAAOoB,QAAUpB,EAC/C0gG,EAAeF,EAAensE,EAAMjzB,QAAUizB,EAGlD,OADAgrE,IAAUA,EAAQ,IAAIZ,IACfa,EAAUmB,EAAcC,EAAcvB,EAASC,EAAYC,EACpE,CACF,CACA,QAAKS,IAGLT,IAAUA,EAAQ,IAAIZ,IA6NxB,SAAsBz+F,EAAQq0B,EAAO8qE,EAASC,EAAYE,EAAWD,GACnE,IAAIe,EAAYjB,EAAUnF,EACtB2G,EAAWC,GAAW5gG,GACtB6gG,EAAYF,EAAS7/F,OAIzB,GAAI+/F,GAHWD,GAAWvsE,GACDvzB,SAEMs/F,EAC7B,OAAO,EAGT,IADA,IAAI58E,EAAQq9E,EACLr9E,KAAS,CACd,IAAIpkB,EAAMuhG,EAASn9E,GACnB,KAAM48E,EAAYhhG,KAAOi1B,EAAQh1B,EAAeC,KAAK+0B,EAAOj1B,IAC1D,OAAO,CAEX,CAEA,IAAIihG,EAAUhB,EAAMvgG,IAAIkB,GACxB,GAAIqgG,GAAWhB,EAAMvgG,IAAIu1B,GACvB,OAAOgsE,GAAWhsE,EAEpB,IAAIjsB,GAAS,EACbi3F,EAAM7/F,IAAIQ,EAAQq0B,GAClBgrE,EAAM7/F,IAAI60B,EAAOr0B,GAGjB,IADA,IAAI8gG,EAAWV,IACN58E,EAAQq9E,GAAW,CAE1B,IAAIE,EAAW/gG,EADfZ,EAAMuhG,EAASn9E,IAEXw9E,EAAW3sE,EAAMj1B,GAErB,GAAIggG,EACF,IAAI6B,EAAWb,EACXhB,EAAW4B,EAAUD,EAAU3hG,EAAKi1B,EAAOr0B,EAAQq/F,GACnDD,EAAW2B,EAAUC,EAAU5hG,EAAKY,EAAQq0B,EAAOgrE,GAGzD,UAAmBn3F,IAAb+4F,EACGF,IAAaC,GAAY1B,EAAUyB,EAAUC,EAAU7B,EAASC,EAAYC,GAC7E4B,GACD,CACL74F,GAAS,EACT,KACF,CACA04F,IAAaA,EAAkB,eAAP1hG,EAC1B,CACA,GAAIgJ,IAAW04F,EAAU,CACvB,IAAII,EAAUlhG,EAAOzB,YACjB4iG,EAAU9sE,EAAM91B,YAGhB2iG,GAAWC,KACV,gBAAiBnhG,MAAU,gBAAiBq0B,IACzB,mBAAX6sE,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvD/4F,GAAS,EAEb,CAGA,OAFAi3F,EAAc,OAAEr/F,GAChBq/F,EAAc,OAAEhrE,GACTjsB,CACT,CA1RSg5F,CAAaphG,EAAQq0B,EAAO8qE,EAASC,EAAYE,EAAWD,GACrE,CA5DSgC,CAAgBjgG,EAAOizB,EAAO8qE,EAASC,EAAYF,GAAaG,GACzE,CA0HA,SAASU,GAAYviB,EAAOnpD,EAAO8qE,EAASC,EAAYE,EAAWD,GACjE,IAAIe,EAAYjB,EAAUnF,EACtBsH,EAAY9jB,EAAM18E,OAClBygG,EAAYltE,EAAMvzB,OAEtB,GAAIwgG,GAAaC,KAAenB,GAAamB,EAAYD,GACvD,OAAO,EAGT,IAAIjB,EAAUhB,EAAMvgG,IAAI0+E,GACxB,GAAI6iB,GAAWhB,EAAMvgG,IAAIu1B,GACvB,OAAOgsE,GAAWhsE,EAEpB,IAAI7Q,GAAS,EACTpb,GAAS,EACTo5F,EAAQrC,EAAUlF,EAA0B,IAAIsE,QAAWr2F,EAM/D,IAJAm3F,EAAM7/F,IAAIg+E,EAAOnpD,GACjBgrE,EAAM7/F,IAAI60B,EAAOmpD,KAGRh6D,EAAQ89E,GAAW,CAC1B,IAAIG,EAAWjkB,EAAMh6D,GACjBw9E,EAAW3sE,EAAM7Q,GAErB,GAAI47E,EACF,IAAI6B,EAAWb,EACXhB,EAAW4B,EAAUS,EAAUj+E,EAAO6Q,EAAOmpD,EAAO6hB,GACpDD,EAAWqC,EAAUT,EAAUx9E,EAAOg6D,EAAOnpD,EAAOgrE,GAE1D,QAAiBn3F,IAAb+4F,EAAwB,CAC1B,GAAIA,EACF,SAEF74F,GAAS,EACT,KACF,CAEA,GAAIo5F,GACF,IAAKrF,EAAU9nE,GAAO,SAAS2sE,EAAUU,GACnC,GA72BatiG,EA62BOsiG,GAANF,EA52BX3iG,IAAIO,KA62BFqiG,IAAaT,GAAY1B,EAAUmC,EAAUT,EAAU7B,EAASC,EAAYC,IAC/E,OAAOmC,EAAKhhG,KAAKkhG,GA/2B/B,IAAyBtiG,CAi3Bf,IAAI,CACNgJ,GAAS,EACT,KACF,OACK,GACDq5F,IAAaT,IACX1B,EAAUmC,EAAUT,EAAU7B,EAASC,EAAYC,GACpD,CACLj3F,GAAS,EACT,KACF,CACF,CAGA,OAFAi3F,EAAc,OAAE7hB,GAChB6hB,EAAc,OAAEhrE,GACTjsB,CACT,CAwKA,SAASw4F,GAAW5gG,GAClB,OApZF,SAAwBA,EAAQ2hG,EAAUC,GACxC,IAAIx5F,EAASu5F,EAAS3hG,GACtB,OAAO6qC,GAAQ7qC,GAAUoI,EAhuB3B,SAAmBo1E,EAAOpxD,GAKxB,IAJA,IAAI5I,GAAS,EACT1iB,EAASsrB,EAAOtrB,OAChB8I,EAAS4zE,EAAM18E,SAEV0iB,EAAQ1iB,GACf08E,EAAM5zE,EAAS4Z,GAAS4I,EAAO5I,GAEjC,OAAOg6D,CACT,CAutBoCqkB,CAAUz5F,EAAQw5F,EAAY5hG,GAClE,CAiZS8hG,CAAe9hG,EAAQE,GAAM6hG,GACtC,CAUA,SAASC,GAAWtqF,EAAKtY,GACvB,IAsHiBgC,EACb8S,EAvHA3Q,EAAOmU,EAAI8mF,SACf,OAuHgB,WADZtqF,SADa9S,EArHAhC,KAuHmB,UAAR8U,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV9S,EACU,OAAVA,GAxHDmC,EAAmB,iBAAPnE,EAAkB,SAAW,QACzCmE,EAAKmU,GACX,CAUA,SAAS+lF,GAAUz9F,EAAQZ,GACzB,IAAIgC,EAxjCN,SAAkBpB,EAAQZ,GACxB,OAAiB,MAAVY,OAAiBkI,EAAYlI,EAAOZ,EAC7C,CAsjCcgwE,CAASpvE,EAAQZ,GAC7B,OArTF,SAAsBgC,GACpB,SAAK6gG,GAAS7gG,IAwahB,SAAkB0C,GAChB,QAAS+4F,GAAeA,KAAc/4F,CACxC,CA1a0Bo+F,CAAS9gG,MAGnB+gG,GAAW/gG,GAAS47F,GAAazB,GAChCttE,KAAK2vE,GAASx8F,GAC/B,CA+SSghG,CAAahhG,GAASA,OAAQ8G,CACvC,CAr2BAi2F,GAAK3/F,UAAUu4D,MAvEf,WACE5xD,KAAKq5F,SAAWd,GAAeA,GAAa,MAAQ,CAAC,EACrDv4F,KAAK4W,KAAO,CACd,EAqEAoiF,GAAK3/F,UAAkB,OAzDvB,SAAoBY,GAClB,IAAIgJ,EAASjD,KAAKtG,IAAIO,WAAe+F,KAAKq5F,SAASp/F,GAEnD,OADA+F,KAAK4W,MAAQ3T,EAAS,EAAI,EACnBA,CACT,EAsDA+1F,GAAK3/F,UAAUM,IA3Cf,SAAiBM,GACf,IAAImE,EAAO4B,KAAKq5F,SAChB,GAAId,GAAc,CAChB,IAAIt1F,EAAS7E,EAAKnE,GAClB,OAAOgJ,IAAW2xF,OAAiB7xF,EAAYE,CACjD,CACA,OAAO/I,EAAeC,KAAKiE,EAAMnE,GAAOmE,EAAKnE,QAAO8I,CACtD,EAqCAi2F,GAAK3/F,UAAUK,IA1Bf,SAAiBO,GACf,IAAImE,EAAO4B,KAAKq5F,SAChB,OAAOd,QAA8Bx1F,IAAd3E,EAAKnE,GAAsBC,EAAeC,KAAKiE,EAAMnE,EAC9E,EAwBA++F,GAAK3/F,UAAUgB,IAZf,SAAiBJ,EAAKgC,GACpB,IAAImC,EAAO4B,KAAKq5F,SAGhB,OAFAr5F,KAAK4W,MAAQ5W,KAAKtG,IAAIO,GAAO,EAAI,EACjCmE,EAAKnE,GAAQs+F,SAA0Bx1F,IAAV9G,EAAuB24F,EAAiB34F,EAC9D+D,IACT,EAsHAk5F,GAAU7/F,UAAUu4D,MApFpB,WACE5xD,KAAKq5F,SAAW,GAChBr5F,KAAK4W,KAAO,CACd,EAkFAsiF,GAAU7/F,UAAkB,OAvE5B,SAAyBY,GACvB,IAAImE,EAAO4B,KAAKq5F,SACZh7E,EAAQk7E,GAAan7F,EAAMnE,GAE/B,QAAIokB,EAAQ,IAIRA,GADYjgB,EAAKzC,OAAS,EAE5ByC,EAAKspB,MAELgrB,GAAOv4C,KAAKiE,EAAMigB,EAAO,KAEzBre,KAAK4W,KACA,GACT,EAyDAsiF,GAAU7/F,UAAUM,IA9CpB,SAAsBM,GACpB,IAAImE,EAAO4B,KAAKq5F,SACZh7E,EAAQk7E,GAAan7F,EAAMnE,GAE/B,OAAOokB,EAAQ,OAAItb,EAAY3E,EAAKigB,GAAO,EAC7C,EA0CA66E,GAAU7/F,UAAUK,IA/BpB,SAAsBO,GACpB,OAAOs/F,GAAav5F,KAAKq5F,SAAUp/F,IAAQ,CAC7C,EA8BAi/F,GAAU7/F,UAAUgB,IAlBpB,SAAsBJ,EAAKgC,GACzB,IAAImC,EAAO4B,KAAKq5F,SACZh7E,EAAQk7E,GAAan7F,EAAMnE,GAQ/B,OANIokB,EAAQ,KACRre,KAAK4W,KACPxY,EAAK/C,KAAK,CAACpB,EAAKgC,KAEhBmC,EAAKigB,GAAO,GAAKpiB,EAEZ+D,IACT,EAwGAm5F,GAAS9/F,UAAUu4D,MAtEnB,WACE5xD,KAAK4W,KAAO,EACZ5W,KAAKq5F,SAAW,CACd,KAAQ,IAAIL,GACZ,IAAO,IAAKt3E,IAAOw3E,IACnB,OAAU,IAAIF,GAElB,EAgEAG,GAAS9/F,UAAkB,OArD3B,SAAwBY,GACtB,IAAIgJ,EAAS45F,GAAW78F,KAAM/F,GAAa,OAAEA,GAE7C,OADA+F,KAAK4W,MAAQ3T,EAAS,EAAI,EACnBA,CACT,EAkDAk2F,GAAS9/F,UAAUM,IAvCnB,SAAqBM,GACnB,OAAO4iG,GAAW78F,KAAM/F,GAAKN,IAAIM,EACnC,EAsCAk/F,GAAS9/F,UAAUK,IA3BnB,SAAqBO,GACnB,OAAO4iG,GAAW78F,KAAM/F,GAAKP,IAAIO,EACnC,EA0BAk/F,GAAS9/F,UAAUgB,IAdnB,SAAqBJ,EAAKgC,GACxB,IAAImC,EAAOy+F,GAAW78F,KAAM/F,GACxB2c,EAAOxY,EAAKwY,KAIhB,OAFAxY,EAAK/D,IAAIJ,EAAKgC,GACd+D,KAAK4W,MAAQxY,EAAKwY,MAAQA,EAAO,EAAI,EAC9B5W,IACT,EAwDAo5F,GAAS//F,UAAUsqC,IAAMy1D,GAAS//F,UAAUgC,KAnB5C,SAAqBY,GAEnB,OADA+D,KAAKq5F,SAASh/F,IAAI4B,EAAO24F,GAClB50F,IACT,EAiBAo5F,GAAS//F,UAAUK,IANnB,SAAqBuC,GACnB,OAAO+D,KAAKq5F,SAAS3/F,IAAIuC,EAC3B,EAoGAq9F,GAAMjgG,UAAUu4D,MA3EhB,WACE5xD,KAAKq5F,SAAW,IAAIH,GACpBl5F,KAAK4W,KAAO,CACd,EAyEA0iF,GAAMjgG,UAAkB,OA9DxB,SAAqBY,GACnB,IAAImE,EAAO4B,KAAKq5F,SACZp2F,EAAS7E,EAAa,OAAEnE,GAG5B,OADA+F,KAAK4W,KAAOxY,EAAKwY,KACV3T,CACT,EAyDAq2F,GAAMjgG,UAAUM,IA9ChB,SAAkBM,GAChB,OAAO+F,KAAKq5F,SAAS1/F,IAAIM,EAC3B,EA6CAq/F,GAAMjgG,UAAUK,IAlChB,SAAkBO,GAChB,OAAO+F,KAAKq5F,SAAS3/F,IAAIO,EAC3B,EAiCAq/F,GAAMjgG,UAAUgB,IArBhB,SAAkBJ,EAAKgC,GACrB,IAAImC,EAAO4B,KAAKq5F,SAChB,GAAIj7F,aAAgB86F,GAAW,CAC7B,IAAIgE,EAAQ9+F,EAAKi7F,SACjB,IAAK33E,IAAQw7E,EAAMvhG,OAASwhG,IAG1B,OAFAD,EAAM7hG,KAAK,CAACpB,EAAKgC,IACjB+D,KAAK4W,OAASxY,EAAKwY,KACZ5W,KAET5B,EAAO4B,KAAKq5F,SAAW,IAAIF,GAAS+D,EACtC,CAGA,OAFA9+F,EAAK/D,IAAIJ,EAAKgC,GACd+D,KAAK4W,KAAOxY,EAAKwY,KACV5W,IACT,EA8hBA,IAAI48F,GAAc3E,GAA+B,SAASp9F,GACxD,OAAc,MAAVA,EACK,IAETA,EAASf,OAAOe,GA9sClB,SAAqBw9E,EAAO4e,GAM1B,IALA,IAAI54E,GAAS,EACT1iB,EAAkB,MAAT08E,EAAgB,EAAIA,EAAM18E,OACnCyhG,EAAW,EACXn6F,EAAS,KAEJob,EAAQ1iB,GAAQ,CACvB,IAAIM,EAAQo8E,EAAMh6D,GAwsCkCg/E,EAvsCtCphG,EAwsCPu3C,GAAqBr5C,KAAKU,EAAQwiG,KAvsCvCp6F,EAAOm6F,KAAcnhG,EAEzB,CAosC6C,IAASohG,EAnsCtD,OAAOp6F,CACT,CAksCSq6F,CAAYrF,GAAiBp9F,IAGtC,EAodA,WACE,MAAO,EACT,EA7cI0/F,GAASf,GAkCb,SAAS+D,GAAQthG,EAAON,GAEtB,SADAA,EAAmB,MAAVA,EAAiBgzB,EAAmBhzB,KAE1B,iBAATM,GAAqBo6F,EAASvtE,KAAK7sB,KAC1CA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQN,CAC7C,CA2DA,SAAS88F,GAAS95F,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO84F,EAAat9F,KAAKwE,EAC3B,CAAE,MAAO4iB,GAAI,CACb,IACE,OAAQ5iB,EAAO,EACjB,CAAE,MAAO4iB,GAAI,CACf,CACA,MAAO,EACT,CAkCA,SAASuO,GAAG7zB,EAAOizB,GACjB,OAAOjzB,IAAUizB,GAAUjzB,GAAUA,GAASizB,GAAUA,CAC1D,EA7IKmpE,IAAYkC,GAAO,IAAIlC,GAAS,IAAImF,YAAY,MAAQrH,GACxDz0E,IAAO64E,GAAO,IAAI74E,KAAQ6zE,GAC1Br2F,IAAWq7F,GAAOr7F,GAAQC,YAAcw2F,GACxC1yD,IAAOs3D,GAAO,IAAIt3D,KAAQ6yD,GAC1Bn7F,IAAW4/F,GAAO,IAAI5/F,KAAYs7F,KACrCsE,GAAS,SAASt+F,GAChB,IAAIgH,EAASu2F,GAAWv9F,GACpBwhG,EAAOx6F,GAAUyyF,EAAYz5F,EAAM7C,iBAAc2J,EACjD26F,EAAaD,EAAOhF,GAASgF,GAAQ,GAEzC,GAAIC,EACF,OAAQA,GACN,KAAKlF,GAAoB,OAAOrC,EAChC,KAAKuC,GAAe,OAAOnD,EAC3B,KAAKoD,GAAmB,OAAOhD,EAC/B,KAAKiD,GAAe,OAAO9C,EAC3B,KAAK+C,GAAmB,OAAO5C,EAGnC,OAAOhzF,CACT,GA6IF,IAAI06F,GAAc9D,GAAgB,WAAa,OAAOn+F,SAAW,CAA/B,IAAsCm+F,GAAkB,SAAS59F,GACjG,OAAO69F,GAAa79F,IAAU/B,EAAeC,KAAK8B,EAAO,YACtDu3C,GAAqBr5C,KAAK8B,EAAO,SACtC,EAyBIypC,GAAUxgC,MAAMwgC,QAgDhByyD,GAAWD,IA4Of,WACE,OAAO,CACT,EA3LA,SAAS8E,GAAW/gG,GAClB,IAAK6gG,GAAS7gG,GACZ,OAAO,EAIT,IAAIw6B,EAAM+iE,GAAWv9F,GACrB,OAAOw6B,GAAO4+D,GAAW5+D,GAAO6+D,GAAU7+D,GAAOw+D,GAAYx+D,GAAOm/D,CACtE,CA4BA,SAASgI,GAAS3hG,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GAAS0yB,CAC7C,CA2BA,SAASmuE,GAAS7gG,GAChB,IAAI8S,SAAc9S,EAClB,OAAgB,MAATA,IAA0B,UAAR8S,GAA4B,YAARA,EAC/C,CA0BA,SAAS+qF,GAAa79F,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,CAmBA,IAAI86F,GAAeD,EAhiDnB,SAAmBn4F,GACjB,OAAO,SAAS1C,GACd,OAAO0C,EAAK1C,EACd,CACF,CA4hDsC4hG,CAAU/G,GAnvBhD,SAA0B76F,GACxB,OAAO69F,GAAa79F,IAClB2hG,GAAS3hG,EAAMN,WAAa26F,EAAekD,GAAWv9F,GAC1D,EA8wBA,SAASlB,GAAKF,GACZ,OA1NgB,OADGoB,EA2NApB,IA1NK+iG,GAAS3hG,EAAMN,UAAYqhG,GAAW/gG,GA1vBhE,SAAuBA,EAAO6hG,GAC5B,IAAIC,EAAQr4D,GAAQzpC,GAChB+hG,GAASD,GAASJ,GAAY1hG,GAC9BgiG,GAAUF,IAAUC,GAAS7F,GAASl8F,GACtCiiG,GAAUH,IAAUC,IAAUC,GAAUlH,GAAa96F,GACrDkiG,EAAcJ,GAASC,GAASC,GAAUC,EAC1Cj7F,EAASk7F,EAloBf,SAAmB73F,EAAG83F,GAIpB,IAHA,IAAI//E,GAAS,EACTpb,EAASiC,MAAMoB,KAEV+X,EAAQ/X,GACfrD,EAAOob,GAAS+/E,EAAS//E,GAE3B,OAAOpb,CACT,CA0nB6Bo7F,CAAUpiG,EAAMN,OAAQs/B,QAAU,GACzDt/B,EAASsH,EAAOtH,OAEpB,IAAK,IAAI1B,KAAOgC,GACT6hG,IAAa5jG,EAAeC,KAAK8B,EAAOhC,IACvCkkG,IAEQ,UAAPlkG,GAECgkG,IAAkB,UAAPhkG,GAA0B,UAAPA,IAE9BikG,IAAkB,UAAPjkG,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDsjG,GAAQtjG,EAAK0B,KAElBsH,EAAO5H,KAAKpB,GAGhB,OAAOgJ,CACT,CA27B+Bq7F,CAAczjG,GAtwB7C,SAAkBA,GAChB,GAyZI4iG,GADexhG,EAxZFpB,IAyZGoB,EAAM7C,YAGnB6C,KAFqB,mBAARwhG,GAAsBA,EAAKpkG,WAAck+F,GAzZ3D,OAAOa,GAAWv9F,GAuZtB,IAAqBoB,EACfwhG,EAtZAx6F,EAAS,GACb,IAAK,IAAIhJ,KAAOH,OAAOe,GACjBX,EAAeC,KAAKU,EAAQZ,IAAe,eAAPA,GACtCgJ,EAAO5H,KAAKpB,GAGhB,OAAOgJ,CACT,CA2vBuDs7F,CAAS1jG,GA3NhE,IAAqBoB,CA4NrB,CAyCAnE,EAAOD,QAlNP,SAAiBoE,EAAOizB,GACtB,OAAO6qE,GAAY99F,EAAOizB,EAC5B,8BC7lDA,IAGI0lE,EAAiB,4BAOjBjmE,EAAmB,iBAGnBomE,EAAU,qBAEVE,EAAW,yBAIXI,EAAU,oBACVC,EAAS,6BAGTG,EAAU,gBACVC,EAAY,kBACZE,EAAW,iBAIXI,EAAe,qBAsBfI,EAAe,8BAGfC,EAAW,mBAGXC,EAAiB,CAAC,EACtBA,EAxBiB,yBAwBYA,EAvBZ,yBAwBjBA,EAvBc,sBAuBYA,EAtBX,uBAuBfA,EAtBe,uBAsBYA,EArBZ,uBAsBfA,EArBsB,8BAqBYA,EApBlB,wBAqBhBA,EApBgB,yBAoBY,EAC5BA,EAAevB,GAAWuB,EAjDX,kBAkDfA,EAhCqB,wBAgCYA,EAhDnB,oBAiDdA,EAhCkB,qBAgCYA,EAhDhB,iBAiDdA,EAhDe,kBAgDYA,EAAejB,GAC1CiB,EA9Ca,gBA8CYA,EA7CT,mBA8ChBA,EAAeZ,GAAaY,EA1CZ,mBA2ChBA,EA1Ca,gBA0CYA,EAzCT,mBA0ChBA,EAxCiB,qBAwCY,EAG7B,IAoIMc,EAtBWz4F,EAAMo6D,EA9GnBw9B,EAA8B,iBAAV,EAAA39F,GAAsB,EAAAA,GAAU,EAAAA,EAAOkB,SAAWA,QAAU,EAAAlB,EAGhF49F,EAA0B,iBAAR39F,MAAoBA,MAAQA,KAAKiB,SAAWA,QAAUjB,KAGxElB,EAAO4+F,GAAcC,GAAY7T,SAAS,cAATA,GAGjC8T,EAA4C5+F,IAAYA,EAAQ2/E,UAAY3/E,EAG5E6+F,EAAaD,GAA4C3+F,IAAWA,EAAO0/E,UAAY1/E,EAGvFukF,EAAgBqa,GAAcA,EAAW7+F,UAAY4+F,EAGrDE,EAActa,GAAiBka,EAAWr1E,QAG1C01E,EAAY,WACd,IAIE,OAFYF,GAAcA,EAAWp1E,SAAWo1E,EAAWp1E,QAAQ,QAAQk9E,OAOpE7H,GAAeA,EAAYE,SAAWF,EAAYE,QAAQ,OACnE,CAAE,MAAOt1E,GAAI,CACf,CAZe,GAeXu1E,EAAmBF,GAAYA,EAASG,aAiFxCM,EAAanyF,MAAM7L,UACnBi+F,EAAY3U,SAAStpF,UACrBk+F,EAAcz9F,OAAOT,UAGrBm+F,EAAa7/F,EAAK,sBAGlB8/F,EAAeH,EAAU1zF,SAGzB1J,EAAiBq9F,EAAYr9F,eAG7Bw9F,GACEN,EAAM,SAASp7D,KAAKw7D,GAAcA,EAAWz8F,MAAQy8F,EAAWz8F,KAAK48F,UAAY,KACvE,iBAAmBP,EAAO,GAQtCQ,EAAuBL,EAAY3zF,SAGnC66F,EAAmBhH,EAAat9F,KAAKL,QAGrC+9F,EAAarmE,OAAO,IACtBimE,EAAat9F,KAAKD,GAAgB1B,QA7KjB,sBA6KuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5Es/F,EAASzb,EAAgB1kF,EAAKmgG,YAAS/0F,EACvC7J,EAASvB,EAAKuB,OACd8L,EAAarN,EAAKqN,WAElB05F,GADc5G,GAASA,EAAO6G,YA9CjBhgG,EA+CU7E,OAAOitF,eA/CXhuB,EA+C2Bj/D,OA9CzC,SAASg7B,GACd,OAAOn2B,EAAKo6D,EAAUjkC,GACxB,GA6CE8pE,EAAe9kG,OAAO05B,OACtBggB,EAAuB+jD,EAAY/jD,qBACnCd,EAAS2kD,EAAW3kD,OACpBqlD,EAAiB7+F,EAASA,EAAO8+F,iBAAcj1F,EAE/ChJ,EAAkB,WACpB,IACE,IAAI4E,EAAO25F,GAAUx+F,OAAQ,kBAE7B,OADA6E,EAAK,CAAC,EAAG,GAAI,CAAC,GACPA,CACT,CAAE,MAAO4iB,GAAI,CACf,CANqB,GASjB22E,EAAiBJ,EAASA,EAAOK,cAAWp1F,EAC5C87F,EAAYz5F,KAAK8F,IACjB4zF,EAAYv8F,KAAK8I,IAGjBqW,EAAM42E,GAAU3gG,EAAM,OACtB4gG,EAAeD,GAAUx+F,OAAQ,UAUjCilG,EAAc,WAChB,SAASlkG,IAAU,CACnB,OAAO,SAAS00E,GACd,IAAKutB,GAASvtB,GACZ,MAAO,CAAC,EAEV,GAAIqvB,EACF,OAAOA,EAAarvB,GAEtB10E,EAAOxB,UAAYk2E,EACnB,IAAItsE,EAAS,IAAIpI,EAEjB,OADAA,EAAOxB,eAAY0J,EACZE,CACT,CACF,CAdiB,GAuBjB,SAAS+1F,EAAKz8D,GACZ,IAAIle,GAAS,EACT1iB,EAAoB,MAAX4gC,EAAkB,EAAIA,EAAQ5gC,OAG3C,IADAqE,KAAK4xD,UACIvzC,EAAQ1iB,GAAQ,CACvB,IAAIs9F,EAAQ18D,EAAQle,GACpBre,KAAK3F,IAAI4+F,EAAM,GAAIA,EAAM,GAC3B,CACF,CA6FA,SAASC,GAAU38D,GACjB,IAAIle,GAAS,EACT1iB,EAAoB,MAAX4gC,EAAkB,EAAIA,EAAQ5gC,OAG3C,IADAqE,KAAK4xD,UACIvzC,EAAQ1iB,GAAQ,CACvB,IAAIs9F,EAAQ18D,EAAQle,GACpBre,KAAK3F,IAAI4+F,EAAM,GAAIA,EAAM,GAC3B,CACF,CA0GA,SAASE,GAAS58D,GAChB,IAAIle,GAAS,EACT1iB,EAAoB,MAAX4gC,EAAkB,EAAIA,EAAQ5gC,OAG3C,IADAqE,KAAK4xD,UACIvzC,EAAQ1iB,GAAQ,CACvB,IAAIs9F,EAAQ18D,EAAQle,GACpBre,KAAK3F,IAAI4+F,EAAM,GAAIA,EAAM,GAC3B,CACF,CA4FA,SAASK,GAAM/8D,GACb,IAAIn+B,EAAO4B,KAAKq5F,SAAW,IAAIH,GAAU38D,GACzCv8B,KAAK4W,KAAOxY,EAAKwY,IACnB,CAsIA,SAASooF,GAAiBnkG,EAAQZ,EAAKgC,SACtB8G,IAAV9G,IAAwB6zB,GAAGj1B,EAAOZ,GAAMgC,SAC9B8G,IAAV9G,KAAyBhC,KAAOY,KACnCokG,GAAgBpkG,EAAQZ,EAAKgC,EAEjC,CAYA,SAASijG,GAAYrkG,EAAQZ,EAAKgC,GAChC,IAAI2/F,EAAW/gG,EAAOZ,GAChBC,EAAeC,KAAKU,EAAQZ,IAAQ61B,GAAG8rE,EAAU3/F,UACxC8G,IAAV9G,GAAyBhC,KAAOY,IACnCokG,GAAgBpkG,EAAQZ,EAAKgC,EAEjC,CAUA,SAASs9F,GAAalhB,EAAOp+E,GAE3B,IADA,IAAI0B,EAAS08E,EAAM18E,OACZA,KACL,GAAIm0B,GAAGuoD,EAAM18E,GAAQ,GAAI1B,GACvB,OAAO0B,EAGX,OAAQ,CACV,CAWA,SAASsjG,GAAgBpkG,EAAQZ,EAAKgC,GACzB,aAAPhC,GAAsBF,EACxBA,EAAec,EAAQZ,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASgC,EACT,UAAY,IAGdpB,EAAOZ,GAAOgC,CAElB,CA7aA+8F,EAAK3/F,UAAUu4D,MAvEf,WACE5xD,KAAKq5F,SAAWd,EAAeA,EAAa,MAAQ,CAAC,EACrDv4F,KAAK4W,KAAO,CACd,EAqEAoiF,EAAK3/F,UAAkB,OAzDvB,SAAoBY,GAClB,IAAIgJ,EAASjD,KAAKtG,IAAIO,WAAe+F,KAAKq5F,SAASp/F,GAEnD,OADA+F,KAAK4W,MAAQ3T,EAAS,EAAI,EACnBA,CACT,EAsDA+1F,EAAK3/F,UAAUM,IA3Cf,SAAiBM,GACf,IAAImE,EAAO4B,KAAKq5F,SAChB,GAAId,EAAc,CAChB,IAAIt1F,EAAS7E,EAAKnE,GAClB,OAAOgJ,IAAW2xF,OAAiB7xF,EAAYE,CACjD,CACA,OAAO/I,EAAeC,KAAKiE,EAAMnE,GAAOmE,EAAKnE,QAAO8I,CACtD,EAqCAi2F,EAAK3/F,UAAUK,IA1Bf,SAAiBO,GACf,IAAImE,EAAO4B,KAAKq5F,SAChB,OAAOd,OAA8Bx1F,IAAd3E,EAAKnE,GAAsBC,EAAeC,KAAKiE,EAAMnE,EAC9E,EAwBA++F,EAAK3/F,UAAUgB,IAZf,SAAiBJ,EAAKgC,GACpB,IAAImC,EAAO4B,KAAKq5F,SAGhB,OAFAr5F,KAAK4W,MAAQ5W,KAAKtG,IAAIO,GAAO,EAAI,EACjCmE,EAAKnE,GAAQs+F,QAA0Bx1F,IAAV9G,EAAuB24F,EAAiB34F,EAC9D+D,IACT,EAsHAk5F,GAAU7/F,UAAUu4D,MApFpB,WACE5xD,KAAKq5F,SAAW,GAChBr5F,KAAK4W,KAAO,CACd,EAkFAsiF,GAAU7/F,UAAkB,OAvE5B,SAAyBY,GACvB,IAAImE,EAAO4B,KAAKq5F,SACZh7E,EAAQk7E,GAAan7F,EAAMnE,GAE/B,QAAIokB,EAAQ,IAIRA,GADYjgB,EAAKzC,OAAS,EAE5ByC,EAAKspB,MAELgrB,EAAOv4C,KAAKiE,EAAMigB,EAAO,KAEzBre,KAAK4W,KACA,GACT,EAyDAsiF,GAAU7/F,UAAUM,IA9CpB,SAAsBM,GACpB,IAAImE,EAAO4B,KAAKq5F,SACZh7E,EAAQk7E,GAAan7F,EAAMnE,GAE/B,OAAOokB,EAAQ,OAAItb,EAAY3E,EAAKigB,GAAO,EAC7C,EA0CA66E,GAAU7/F,UAAUK,IA/BpB,SAAsBO,GACpB,OAAOs/F,GAAav5F,KAAKq5F,SAAUp/F,IAAQ,CAC7C,EA8BAi/F,GAAU7/F,UAAUgB,IAlBpB,SAAsBJ,EAAKgC,GACzB,IAAImC,EAAO4B,KAAKq5F,SACZh7E,EAAQk7E,GAAan7F,EAAMnE,GAQ/B,OANIokB,EAAQ,KACRre,KAAK4W,KACPxY,EAAK/C,KAAK,CAACpB,EAAKgC,KAEhBmC,EAAKigB,GAAO,GAAKpiB,EAEZ+D,IACT,EAwGAm5F,GAAS9/F,UAAUu4D,MAtEnB,WACE5xD,KAAK4W,KAAO,EACZ5W,KAAKq5F,SAAW,CACd,KAAQ,IAAIL,EACZ,IAAO,IAAKt3E,GAAOw3E,IACnB,OAAU,IAAIF,EAElB,EAgEAG,GAAS9/F,UAAkB,OArD3B,SAAwBY,GACtB,IAAIgJ,EAAS45F,GAAW78F,KAAM/F,GAAa,OAAEA,GAE7C,OADA+F,KAAK4W,MAAQ3T,EAAS,EAAI,EACnBA,CACT,EAkDAk2F,GAAS9/F,UAAUM,IAvCnB,SAAqBM,GACnB,OAAO4iG,GAAW78F,KAAM/F,GAAKN,IAAIM,EACnC,EAsCAk/F,GAAS9/F,UAAUK,IA3BnB,SAAqBO,GACnB,OAAO4iG,GAAW78F,KAAM/F,GAAKP,IAAIO,EACnC,EA0BAk/F,GAAS9/F,UAAUgB,IAdnB,SAAqBJ,EAAKgC,GACxB,IAAImC,EAAOy+F,GAAW78F,KAAM/F,GACxB2c,EAAOxY,EAAKwY,KAIhB,OAFAxY,EAAK/D,IAAIJ,EAAKgC,GACd+D,KAAK4W,MAAQxY,EAAKwY,MAAQA,EAAO,EAAI,EAC9B5W,IACT,EAuGAs5F,GAAMjgG,UAAUu4D,MA3EhB,WACE5xD,KAAKq5F,SAAW,IAAIH,GACpBl5F,KAAK4W,KAAO,CACd,EAyEA0iF,GAAMjgG,UAAkB,OA9DxB,SAAqBY,GACnB,IAAImE,EAAO4B,KAAKq5F,SACZp2F,EAAS7E,EAAa,OAAEnE,GAG5B,OADA+F,KAAK4W,KAAOxY,EAAKwY,KACV3T,CACT,EAyDAq2F,GAAMjgG,UAAUM,IA9ChB,SAAkBM,GAChB,OAAO+F,KAAKq5F,SAAS1/F,IAAIM,EAC3B,EA6CAq/F,GAAMjgG,UAAUK,IAlChB,SAAkBO,GAChB,OAAO+F,KAAKq5F,SAAS3/F,IAAIO,EAC3B,EAiCAq/F,GAAMjgG,UAAUgB,IArBhB,SAAkBJ,EAAKgC,GACrB,IAAImC,EAAO4B,KAAKq5F,SAChB,GAAIj7F,aAAgB86F,GAAW,CAC7B,IAAIgE,EAAQ9+F,EAAKi7F,SACjB,IAAK33E,GAAQw7E,EAAMvhG,OAASwhG,IAG1B,OAFAD,EAAM7hG,KAAK,CAACpB,EAAKgC,IACjB+D,KAAK4W,OAASxY,EAAKwY,KACZ5W,KAET5B,EAAO4B,KAAKq5F,SAAW,IAAIF,GAAS+D,EACtC,CAGA,OAFA9+F,EAAK/D,IAAIJ,EAAKgC,GACd+D,KAAK4W,KAAOxY,EAAKwY,KACV5W,IACT,EA0IA,SAASw5F,GAAWv9F,GAClB,OAAa,MAATA,OACe8G,IAAV9G,EAAsB+5F,EAAeP,EAEtCsC,GAAkBA,KAAkBj+F,OAAOmC,GA6YrD,SAAmBA,GACjB,IAAIw9F,EAAQv/F,EAAeC,KAAK8B,EAAO87F,GACnCthE,EAAMx6B,EAAM87F,GAEhB,IACE97F,EAAM87F,QAAkBh1F,EACxB,IAAI22F,GAAW,CACjB,CAAE,MAAOn4E,GAAI,CAEb,IAAIte,EAAS20F,EAAqBz9F,KAAK8B,GAQvC,OAPIy9F,IACED,EACFx9F,EAAM87F,GAAkBthE,SAEjBx6B,EAAM87F,IAGV90F,CACT,CA9ZM02F,CAAU19F,GAwhBhB,SAAwBA,GACtB,OAAO27F,EAAqBz9F,KAAK8B,EACnC,CAzhBM29F,CAAe39F,EACrB,CASA,SAAS49F,GAAgB59F,GACvB,OAAO69F,GAAa79F,IAAUu9F,GAAWv9F,IAAU84F,CACrD,CA+DA,SAASoK,GAAUtkG,EAAQe,EAAQwjG,EAAUnF,EAAYC,GACnDr/F,IAAWe,GA4QR,SAASf,EAAQujG,EAAU5B,GAMhC,IALA,IAAIn+E,GAAS,EACTghF,EAAWvlG,OAAOe,GAClBwB,EAAQmgG,EAAS3hG,GACjBc,EAASU,EAAMV,OAEZA,KAAU,CACf,IAAI1B,EAAMoC,IAA6BgiB,GACvC,IAA+C,IAA3C+/E,EAASiB,EAASplG,GAAMA,EAAKolG,GAC/B,KAEJ,CAEF,CAtRAC,CAAQ1jG,GAAQ,SAAS2jG,EAAUtlG,GAEjC,GADAigG,IAAUA,EAAQ,IAAIZ,IAClBwD,GAASyC,IA+BjB,SAAuB1kG,EAAQe,EAAQ3B,EAAKmlG,EAAUI,EAAWvF,EAAYC,GAC3E,IAAI0B,EAAW6D,GAAQ5kG,EAAQZ,GAC3BslG,EAAWE,GAAQ7jG,EAAQ3B,GAC3BihG,EAAUhB,EAAMvgG,IAAI4lG,GAExB,GAAIrE,EACF8D,GAAiBnkG,EAAQZ,EAAKihG,OADhC,CAIA,IA0HuBwE,EACnB3E,EAfoB4E,EACpB18F,EA2iBqBhH,EAxpBrBgoE,EAAWg2B,EACXA,EAAW2B,EAAU2D,EAAWtlG,EAAM,GAAKY,EAAQe,EAAQs+F,QAC3Dn3F,EAEA68F,OAAwB78F,IAAbkhE,EAEf,GAAI27B,EAAU,CACZ,IAAI7B,EAAQr4D,GAAQ65D,GAChBtB,GAAUF,GAAS5F,GAASoH,GAC5BM,GAAW9B,IAAUE,GAAUlH,GAAawI,GAEhDt7B,EAAWs7B,EACPxB,GAASE,GAAU4B,EACjBn6D,GAAQk2D,GACV33B,EAAW23B,EA2oBV9B,GADkB79F,EAxoBM2/F,IAyoBDkE,GAAY7jG,GAxoBpCgoE,EAsHR,SAAmBroE,EAAQy8E,GACzB,IAAIh6D,GAAS,EACT1iB,EAASC,EAAOD,OAGpB,IADA08E,IAAUA,EAAQnzE,MAAMvJ,MACf0iB,EAAQ1iB,GACf08E,EAAMh6D,GAASziB,EAAOyiB,GAExB,OAAOg6D,CACT,CA/HmB0nB,CAAUnE,GAEdqC,GACP2B,GAAW,EACX37B,EAqER,SAAqB82B,EAAQiF,GAEzB,OAAOjF,EAAOhvF,OAOlB,CA9EmBk0F,CAAYV,IAEhBM,GACPD,GAAW,EAqFb38F,EAAS,IADW08F,GAcDD,EAjGUH,GAkGiBxE,QAdrB3hG,YAAYumG,EAAY9E,YACrD,IAAI71F,EAAW/B,GAAQ5I,IAAI,IAAI2K,EAAW26F,IAatC5E,EAZG93F,EAtFDghE,EAmGC,IAAIy7B,EAAWtmG,YAAY2hG,EAAQ2E,EAAW5E,WAAY4E,EAAW/jG,SAhGtEsoE,EAAW,GAmyBnB,SAAuBhoE,GACrB,IAAK69F,GAAa79F,IAAUu9F,GAAWv9F,IAAUy5F,EAC/C,OAAO,EAET,IAAInmB,EAAQmvB,EAAaziG,GACzB,GAAc,OAAVszE,EACF,OAAO,EAET,IAAIkuB,EAAOvjG,EAAeC,KAAKo1E,EAAO,gBAAkBA,EAAMn2E,YAC9D,MAAsB,mBAARqkG,GAAsBA,aAAgBA,GAClDhG,EAAat9F,KAAKsjG,IAASgB,CAC/B,CA3yBayB,CAAcX,IAAa5B,GAAY4B,IAC9Ct7B,EAAW23B,EACP+B,GAAY/B,GACd33B,EAq1BR,SAAuBhoE,GACrB,OA5tBF,SAAoBL,EAAQS,EAAOxB,EAAQo/F,GACzC,IAAIkG,GAAStlG,EACbA,IAAWA,EAAS,CAAC,GAKrB,IAHA,IAAIwjB,GAAS,EACT1iB,EAASU,EAAMV,SAEV0iB,EAAQ1iB,GAAQ,CACvB,IAAI1B,EAAMoC,EAAMgiB,GAEZ4lD,OAEAlhE,OAEaA,IAAbkhE,IACFA,EAAWroE,EAAO3B,IAEhBkmG,EACFlB,GAAgBpkG,EAAQZ,EAAKgqE,GAE7Bi7B,GAAYrkG,EAAQZ,EAAKgqE,EAE7B,CACA,OAAOppE,CACT,CAosBSulG,CAAWnkG,EAAOokG,GAAOpkG,GAClC,CAv1BmBqkG,CAAc1E,GAEjBkB,GAASlB,KAAaoB,GAAWpB,KACzC33B,EAwQR,SAAyBppE,GACvB,MAAqC,mBAAtBA,EAAOzB,aAA8BmnG,GAAY1lG,GAE5D,CAAC,EADDkkG,EAAWL,EAAa7jG,GAE9B,CA5QmB2lG,CAAgBjB,KAI7BK,GAAW,CAEf,CACIA,IAEF1F,EAAM7/F,IAAIklG,EAAUt7B,GACpBu7B,EAAUv7B,EAAUs7B,EAAUH,EAAUnF,EAAYC,GACpDA,EAAc,OAAEqF,IAElBP,GAAiBnkG,EAAQZ,EAAKgqE,EAnD9B,CAoDF,CA1FMw8B,CAAc5lG,EAAQe,EAAQ3B,EAAKmlG,EAAUD,GAAWlF,EAAYC,OAEjE,CACH,IAAIj2B,EAAWg2B,EACXA,EAAWwF,GAAQ5kG,EAAQZ,GAAMslG,EAAWtlG,EAAM,GAAKY,EAAQe,EAAQs+F,QACvEn3F,OAEaA,IAAbkhE,IACFA,EAAWs7B,GAEbP,GAAiBnkG,EAAQZ,EAAKgqE,EAChC,CACF,GAAGo8B,GACL,CAmGA,IAAIK,GAAmB3mG,EAA4B,SAAS4E,EAAMT,GAChE,OAAOnE,EAAe4E,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,OA+3Bc1C,EA/3BIiC,EAg4Bb,WACL,OAAOjC,CACT,GAj4BE,UAAY,IA83BhB,IAAkBA,CA53BlB,EAPwC0kG,GA8KxC,SAAS9D,GAAWtqF,EAAKtY,GACvB,IA4GiBgC,EACb8S,EA7GA3Q,EAAOmU,EAAI8mF,SACf,OA6GgB,WADZtqF,SADa9S,EA3GAhC,KA6GmB,UAAR8U,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV9S,EACU,OAAVA,GA9GDmC,EAAmB,iBAAPnE,EAAkB,SAAW,QACzCmE,EAAKmU,GACX,CAUA,SAAS+lF,GAAUz9F,EAAQZ,GACzB,IAAIgC,EAnhCN,SAAkBpB,EAAQZ,GACxB,OAAiB,MAAVY,OAAiBkI,EAAYlI,EAAOZ,EAC7C,CAihCcgwE,CAASpvE,EAAQZ,GAC7B,OA3WF,SAAsBgC,GACpB,SAAK6gG,GAAS7gG,IAodhB,SAAkB0C,GAChB,QAAS+4F,GAAeA,KAAc/4F,CACxC,CAtd0Bo+F,CAAS9gG,MAGnB+gG,GAAW/gG,GAAS47F,EAAazB,GAChCttE,KAgmBjB,SAAkBnqB,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO84F,EAAat9F,KAAKwE,EAC3B,CAAE,MAAO4iB,GAAI,CACb,IACE,OAAQ5iB,EAAO,EACjB,CAAE,MAAO4iB,GAAI,CACf,CACA,MAAO,EACT,CA1mBsBk3E,CAASx8F,GAC/B,CAqWSghG,CAAahhG,GAASA,OAAQ8G,CACvC,CAkDA,SAASw6F,GAAQthG,EAAON,GACtB,IAAIoT,SAAc9S,EAGlB,SAFAN,EAAmB,MAAVA,EAAiBgzB,EAAmBhzB,KAGlC,UAARoT,GACU,UAARA,GAAoBsnF,EAASvtE,KAAK7sB,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQN,CACjD,CA0DA,SAAS4kG,GAAYtkG,GACnB,IAAIwhG,EAAOxhG,GAASA,EAAM7C,YAG1B,OAAO6C,KAFqB,mBAARwhG,GAAsBA,EAAKpkG,WAAck+F,EAG/D,CAsEA,SAASkI,GAAQ5kG,EAAQZ,GACvB,IAAY,gBAARA,GAAgD,mBAAhBY,EAAOZ,KAIhC,aAAPA,EAIJ,OAAOY,EAAOZ,EAChB,CAUA,IAAI2mG,GAWJ,SAAkBjiG,GAChB,IAAIkiG,EAAQ,EACRC,EAAa,EAEjB,OAAO,WACL,IAAIC,EAAQjC,IACRpf,EA75CO,IA65CiBqhB,EAAQD,GAGpC,GADAA,EAAaC,EACTrhB,EAAY,GACd,KAAMmhB,GAl6CI,IAm6CR,OAAOnlG,UAAU,QAGnBmlG,EAAQ,EAEV,OAAOliG,EAAKrD,WAAMyH,EAAWrH,UAC/B,CACF,CA7BkBslG,CAASN,IAkF3B,SAAS5wE,GAAG7zB,EAAOizB,GACjB,OAAOjzB,IAAUizB,GAAUjzB,GAAUA,GAASizB,GAAUA,CAC1D,CAoBA,IAAIyuE,GAAc9D,GAAgB,WAAa,OAAOn+F,SAAW,CAA/B,IAAsCm+F,GAAkB,SAAS59F,GACjG,OAAO69F,GAAa79F,IAAU/B,EAAeC,KAAK8B,EAAO,YACtDu3C,EAAqBr5C,KAAK8B,EAAO,SACtC,EAyBIypC,GAAUxgC,MAAMwgC,QA2BpB,SAASo6D,GAAY7jG,GACnB,OAAgB,MAATA,GAAiB2hG,GAAS3hG,EAAMN,UAAYqhG,GAAW/gG,EAChE,CAgDA,IAAIk8F,GAAWD,GAsUf,WACE,OAAO,CACT,EArTA,SAAS8E,GAAW/gG,GAClB,IAAK6gG,GAAS7gG,GACZ,OAAO,EAIT,IAAIw6B,EAAM+iE,GAAWv9F,GACrB,OAAOw6B,GAAO4+D,GAAW5+D,GAAO6+D,GAAU7+D,GAAOw+D,GAAYx+D,GAAOm/D,CACtE,CA4BA,SAASgI,GAAS3hG,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GAAS0yB,CAC7C,CA2BA,SAASmuE,GAAS7gG,GAChB,IAAI8S,SAAc9S,EAClB,OAAgB,MAATA,IAA0B,UAAR8S,GAA4B,YAARA,EAC/C,CA0BA,SAAS+qF,GAAa79F,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,CA4DA,IAAI86F,GAAeD,EAvnDnB,SAAmBn4F,GACjB,OAAO,SAAS1C,GACd,OAAO0C,EAAK1C,EACd,CACF,CAmnDsC4hG,CAAU/G,GAj7BhD,SAA0B76F,GACxB,OAAO69F,GAAa79F,IAClB2hG,GAAS3hG,EAAMN,WAAa26F,EAAekD,GAAWv9F,GAC1D,EAm+BA,SAASokG,GAAOxlG,GACd,OAAOilG,GAAYjlG,GA3oCrB,SAAuBoB,EAAO6hG,GAC5B,IAAIC,EAAQr4D,GAAQzpC,GAChB+hG,GAASD,GAASJ,GAAY1hG,GAC9BgiG,GAAUF,IAAUC,GAAS7F,GAASl8F,GACtCiiG,GAAUH,IAAUC,IAAUC,GAAUlH,GAAa96F,GACrDkiG,EAAcJ,GAASC,GAASC,GAAUC,EAC1Cj7F,EAASk7F,EAzjBf,SAAmB73F,EAAG83F,GAIpB,IAHA,IAAI//E,GAAS,EACTpb,EAASiC,MAAMoB,KAEV+X,EAAQ/X,GACfrD,EAAOob,GAAS+/E,EAAS//E,GAE3B,OAAOpb,CACT,CAijB6Bo7F,CAAUpiG,EAAMN,OAAQs/B,QAAU,GACzDt/B,EAASsH,EAAOtH,OAEpB,IAAK,IAAI1B,KAAOgC,GACT6hG,IAAa5jG,EAAeC,KAAK8B,EAAOhC,IACvCkkG,IAEQ,UAAPlkG,GAECgkG,IAAkB,UAAPhkG,GAA0B,UAAPA,IAE9BikG,IAAkB,UAAPjkG,GAA0B,cAAPA,GAA8B,cAAPA,IAEtDsjG,GAAQtjG,EAAK0B,KAElBsH,EAAO5H,KAAKpB,GAGhB,OAAOgJ,CACT,CAknC+Bq7F,CAAczjG,GAAQ,GA39BrD,SAAoBA,GAClB,IAAKiiG,GAASjiG,GACZ,OAmdJ,SAAsBA,GACpB,IAAIoI,EAAS,GACb,GAAc,MAAVpI,EACF,IAAK,IAAIZ,KAAOH,OAAOe,GACrBoI,EAAO5H,KAAKpB,GAGhB,OAAOgJ,CACT,CA3dWg+F,CAAapmG,GAEtB,IAAIqmG,EAAUX,GAAY1lG,GACtBoI,EAAS,GAEb,IAAK,IAAIhJ,KAAOY,GACD,eAAPZ,IAAyBinG,GAAYhnG,EAAeC,KAAKU,EAAQZ,KACrEgJ,EAAO5H,KAAKpB,GAGhB,OAAOgJ,CACT,CA88B6Dk+F,CAAWtmG,EACxE,CAiCA,IAxvBwBumG,GAwvBpBC,IAxvBoBD,GAwvBG,SAASvmG,EAAQe,EAAQwjG,GAClDD,GAAUtkG,EAAQe,EAAQwjG,EAC5B,EA13BA,SAAkBzgG,EAAMm8B,GACtB,OAAO8lE,GA6WT,SAAkBjiG,EAAMm8B,EAAOi+B,GAE7B,OADAj+B,EAAQ+jE,OAAoB97F,IAAV+3B,EAAuBn8B,EAAKhD,OAAS,EAAKm/B,EAAO,GAC5D,WAML,IALA,IAAItnB,EAAO9X,UACP2iB,GAAS,EACT1iB,EAASkjG,EAAUrrF,EAAK7X,OAASm/B,EAAO,GACxCu9C,EAAQnzE,MAAMvJ,KAET0iB,EAAQ1iB,GACf08E,EAAMh6D,GAAS7K,EAAKsnB,EAAQzc,GAE9BA,GAAS,EAET,IADA,IAAIijF,EAAYp8F,MAAM41B,EAAQ,KACrBzc,EAAQyc,GACfwmE,EAAUjjF,GAAS7K,EAAK6K,GAG1B,OADAijF,EAAUxmE,GAASi+B,EAAUsf,GAzvCjC,SAAe15E,EAAM4iG,EAAS/tF,GAC5B,OAAQA,EAAK7X,QACX,KAAK,EAAG,OAAOgD,EAAKxE,KAAKonG,GACzB,KAAK,EAAG,OAAO5iG,EAAKxE,KAAKonG,EAAS/tF,EAAK,IACvC,KAAK,EAAG,OAAO7U,EAAKxE,KAAKonG,EAAS/tF,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAO7U,EAAKxE,KAAKonG,EAAS/tF,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,OAAO7U,EAAKrD,MAAMimG,EAAS/tF,EAC7B,CAkvCWlY,CAAMqD,EAAMqB,KAAMshG,EAC3B,CACF,CAhYqBE,CAAS7iG,EAAMm8B,EAAO6lE,IAAWhiG,EAAO,GAC7D,CA+HS8iG,EAAS,SAAS5mG,EAAQ60E,GAC/B,IAAIrxD,GAAS,EACT1iB,EAAS+zE,EAAQ/zE,OACjBs+F,EAAat+F,EAAS,EAAI+zE,EAAQ/zE,EAAS,QAAKoH,EAChD2+F,EAAQ/lG,EAAS,EAAI+zE,EAAQ,QAAK3sE,EAWtC,IATAk3F,EAAcmH,GAASzlG,OAAS,GAA0B,mBAAds+F,GACvCt+F,IAAUs+F,QACXl3F,EAEA2+F,GAuIR,SAAwBzlG,EAAOoiB,EAAOxjB,GACpC,IAAKiiG,GAASjiG,GACZ,OAAO,EAET,IAAIkU,SAAcsP,EAClB,SAAY,UAARtP,EACK+wF,GAAYjlG,IAAW0iG,GAAQl/E,EAAOxjB,EAAOc,QACrC,UAARoT,GAAoBsP,KAASxjB,IAE7Bi1B,GAAGj1B,EAAOwjB,GAAQpiB,EAG7B,CAnJiB0lG,CAAejyB,EAAQ,GAAIA,EAAQ,GAAIgyB,KAClDzH,EAAat+F,EAAS,OAAIoH,EAAYk3F,EACtCt+F,EAAS,GAEXd,EAASf,OAAOe,KACPwjB,EAAQ1iB,GAAQ,CACvB,IAAIC,EAAS8zE,EAAQrxD,GACjBziB,GACFwlG,GAASvmG,EAAQe,EAAQyiB,EAE7B,CACA,OAAOxjB,CACT,KA8wBF,SAAS8lG,GAAS1kG,GAChB,OAAOA,CACT,CAmBAnE,EAAOD,QAAUwpG,4GCt7DjB,IAAK,EAAAxmF,SACD,MAAM,IAAI1U,MAAM,qDAEpB,IAAK,KACD,MAAM,IAAIA,MAAM,mFCNhBy7F,EAAkC,SAAUhkC,EAAGt3D,GAC/C,IAAIqiB,EAAsB,mBAAXzvB,QAAyB0kE,EAAE1kE,OAAOC,UACjD,IAAKwvB,EAAG,OAAOi1C,EACf,IAAmBz4D,EAAYoc,EAA3B9lB,EAAIktB,EAAExuB,KAAKyjE,GAAOikC,EAAK,GAC3B,IACI,WAAc,IAANv7F,GAAgBA,KAAM,MAAQnB,EAAI1J,EAAEsrB,QAAQ4f,MAAMk7D,EAAGxmG,KAAK8J,EAAElJ,MACxE,CACA,MAAOU,GAAS4kB,EAAI,CAAE5kB,MAAOA,EAAS,CACtC,QACI,IACQwI,IAAMA,EAAEwhC,OAAShe,EAAIltB,EAAU,SAAIktB,EAAExuB,KAAKsB,EAClD,CACA,QAAU,GAAI8lB,EAAG,MAAMA,EAAE5kB,KAAO,CACpC,CACA,OAAOklG,CACX,EAMO,SAASC,IACZ,IAAiCC,EAAxBH,GAAO,IAAA/mF,UAAS,GAAI,GAAiB,GAI9C,OAHa,IAAAmnF,cAAY,WACrBD,GAAQ,SAAU/3B,GAAQ,OAAOA,EAAO,CAAG,GAC/C,GAAG,GAEP,CAcA,IAN0B7iE,ECjCtB86F,GDiCsB96F,ECjCuB,mBDkCvB,mBAAXjO,OACAA,OAAOib,IAAIhN,GAEf,iBAAmBA,EAAO,MCvB9B,IChBH+6F,GAA+B,EAI5B,SAASC,IACZ,OAAOD,CACX,CCLO,SAASE,EAAgBj7E,GAC5B,OAAO,QAAkBA,EAC7B,CCUO,IAYHk7E,EAZOC,EAAwC,IAIxCC,EAA4B,IAInCC,EAA0B,IAAIv/D,IAKlC,SAASw/D,SACyB1/F,IAA1Bs/F,IACAA,EAAwB56F,WAAWi7F,EAA2BH,GAEtE,CAWA,SAASG,IACLL,OAAwBt/F,EAGxB,IAAIsI,EAAM9I,KAAK8I,MACfm3F,EAAwB3mG,SAAQ,SAAUoB,GACtC,IAAI0lG,EAAW1lG,EAAI6U,QACf6wF,GACIt3F,GAAOs3F,EAASC,UAEhBD,EAASE,SAAS18E,UAClBlpB,EAAI6U,QAAU,KACd0wF,EAAwB98E,OAAOzoB,GAG3C,IACIulG,EAAwB5rF,KAAO,GAG/B6rF,GAER,CC7DA,IAAIK,GAAe,EACfC,EAAmB,GCKnBC,EAAe,CAAC,EACpB,SAASC,EAAyBC,GAC9B,MAAO,WAAaA,CACxB,CACO,SAASC,EAAYr9E,EAAIo9E,EAAmBniG,GAG/C,QAF0B,IAAtBmiG,IAAgCA,EAAoB,iBACxC,IAAZniG,IAAsBA,EAAUiiG,GAChCb,IACA,OAAOr8E,IAEX,IFc8C7oB,EC5Bb2d,ECgB7BwoF,GDhB6BxoF,GCcL7Z,EAAQ+gG,gBAAkBA,KDb/C,WACCgB,EACAC,EAAiB1nG,KAAKuf,GAGtBA,GAER,GCYIyoF,EAAsB,SAAa,MACvC,IAAKA,EAAoBvxF,QAAS,CAG9B,IAAIwxF,EAAgB,IAAI,KAASL,EAAyBC,IAAoB,WAMtEK,EAAe/3C,QAEf43C,KAMAE,EAAcn9E,UACdk9E,EAAoBvxF,QAAU,KAEtC,IACIyxF,EF7CL,SAA4BV,GAK/B,MAJmB,CACfD,QAASrgG,KAAK8I,MAAQi3F,EACtBO,SAAUA,EAGlB,CEuC6BW,CAAmBF,GACxCD,EAAoBvxF,QAAUyxF,EFfYtmG,EEgBRomG,EFftCb,EAAwB7+D,IAAI1mC,GAC5BwlG,GEeA,CACA,IAAII,EAAWQ,EAAoBvxF,QAAQ+wF,SAiC3C,OAhCA,gBAAoBA,EAAUT,GAC9B,aAAgB,WFhBb,IAAmCqB,EEyClC,OFzCkCA,EEkBRJ,EFjB9Bb,EAAwB98E,OAAO+9E,GEkBvBJ,EAAoBvxF,QAIpBuxF,EAAoBvxF,QAAQ05C,SAAU,GAStC63C,EAAoBvxF,QAAU,CAC1B+wF,SAAU,IAAI,KAASI,EAAyBC,IAAoB,WAEhEE,GACJ,IACAR,QAAS58E,KAEbo9E,KAEG,WACHC,EAAoBvxF,QAAQ+wF,SAAS18E,UACrCk9E,EAAoBvxF,QAAU,IAClC,CACJ,GAAG,IDnEA,SAAmCtK,GAEtCs7F,GAAe,EACfC,EAAmB,GACnB,IACI,IAAI9/F,ECgEyB,WAI7B,IAAIygG,EACAC,EASJ,GARAd,EAASe,OAAM,WACX,IACIF,EAAY59E,GAChB,CACA,MAAOvE,GACHoiF,EAAYpiF,CAChB,CACJ,IACIoiF,EACA,MAAMA,EAEV,OAAOD,CACX,CDlFiBl8F,GAEbs7F,GAAe,EAEf,IAAIe,EAAUd,EAAiBpnG,OAAS,EAAIonG,OAAmBhgG,EAO/D,OALA,mBAAsB,WACd8gG,GACAA,EAAQhoG,SAAQ,SAAUo3B,GAAK,OAAOA,GAAK,GAEnD,GAAG,CAAC4wE,IACG5gG,CACX,CACA,QACI6/F,GAAe,CACnB,CACJ,CCgDWgB,EAmBX,CCrGA,IAAItqE,EAAsC,WAStC,OARAA,EAAW1/B,OAAOo2C,QAAU,SAAS3sB,GACjC,IAAK,IAAIK,EAAGnoB,EAAI,EAAG6K,EAAI5K,UAAUC,OAAQF,EAAI6K,EAAG7K,IAE5C,IAAK,IAAI6wB,KADT1I,EAAIloB,UAAUD,GACO3B,OAAOT,UAAUa,eAAeC,KAAKypB,EAAG0I,KACzD/I,EAAE+I,GAAK1I,EAAE0I,IAEjB,OAAO/I,CACX,EACOiW,EAASl+B,MAAM0E,KAAMtE,UAChC,EAmCA,INvCiCqoG,EMuC7BC,EAAiB,CACjBrc,UAAU,EACV34E,QAAQ,EACRigB,SAAS,EACTlgB,MAAM,GChDV,SAASk1F,EAAkBtwE,GACvB,IAAI91B,EAAW81B,EAAG91B,SAAUmR,EAAS2kB,EAAG3kB,OACpC8rE,EAAYj9E,GAAYmR,EAC5B,MAAyB,mBAAd8rE,EACA,KAEJqoB,EAAYroB,EACvB,CAOA,SAASopB,EAAmB7nG,EAAOpC,EAAKsoD,EAAepkB,EAAUgmE,GAC7D,IAAIC,EAAmB,aAARnqG,EAAqB,SAAW,WAC3CoqG,EAAgC,mBAAfhoG,EAAMpC,GACvBqqG,EAA0C,mBAApBjoG,EAAM+nG,GAChC,OAAIC,GAAWC,EACJ,IAAIn+F,MAAM,qEAAuEo8C,GAExF8hD,GAAWC,EACJ,KAEJ,IAAIn+F,MAAM,iBACbg+F,EACA,qBACO9nG,EAAMpC,GAHA,kBAMbsoD,EACA,0BACR,CAxBA0hD,EAAkBjmG,UAAY,CAC1BH,SAAUqmG,EACVl1F,OAAQk1F,GAEZD,EAAkBnmG,YAAc,YPPCimG,EQHhB,6BRKTA,EALD,SAA0Bv8F,GAC7BA,GACJ,IAQI,QAAU,CAAEu8F,kBAAmBA,KD8BT,oBAAXprG,OACAA,YAEW,IAAX,EAAAC,EACA,EAAAA,EAES,oBAATC,KACAA,KATE,CAAC,GC3BFopG,IAAoC,4qKMC7C,SAAkBsC,EAAexjG,GAEpC,GAAIohG,IACA,OAAOoC,EAEX,IASIC,EAsBsB70E,EAAMn0B,EA/B5BipG,EAAcjrE,EAAS,CAAEx8B,YAAY,GAAS+D,GAC9CmiG,EAAoBqB,EAAczmG,aAAeymG,EAAcp9F,KAC/Du9F,EAAmB,SAAUroG,EAAOY,GACpC,OAAOkmG,GAAY,WAAc,OAAOoB,EAAcloG,EAAOY,EAAM,GAAGimG,EAC1E,EAkBA,OAjBAwB,EAAiB5mG,YAAcolG,EAU3BsB,EALAC,EAAYznG,YAKI,IAAA2nG,OAAK,IAAA3nG,YAAW0nG,KAGhB,IAAAC,MAAKD,GAaC/0E,EAXL40E,EAWW/oG,EAXIgpG,EAYpC1qG,OAAOiB,KAAK40B,GAAM9zB,SAAQ,SAAU5B,GAC3B+pG,EAAe/pG,IAChBH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB21B,EAAM11B,GAEjF,IAfAuqG,EAAc1mG,YAAcolG,EACrBsB,CACX,w/FG1CII,EAAmB,2FACnBC,EAAc,GAClB/qG,OAAOi3B,OAAO8zE,GACd,IAAI7B,EAAe,CAAC,EAEpB,SAAS8B,IACL,QAASC,GAAYC,QACzB,CACA,SAASC,EAAKnkG,GAEV,MADAszB,GAAU,EAAOtzB,GACX,GACV,CACA,SAASszB,EAAU8wE,EAAOpkG,GACtB,IAAKokG,EACD,MAAM,IAAI/+F,MAAM,WAAarF,GAAW8jG,GAChD,CAqBA,SAASO,EAAKxmG,GACV,IAAIymG,GAAU,EACd,OAAO,WACH,IAAIA,EAGJ,OADAA,GAAU,EACHzmG,EAAKrD,MAAM0E,KAAMtE,UAC5B,CACJ,CAxCA5B,OAAOi3B,OAAOiyE,GAyCd,IAAIqC,EAAO,WAAc,EASzB,SAASvI,EAAS7gG,GACd,OAAiB,OAAVA,GAAmC,iBAAVA,CACpC,CACA,SAASikG,EAAcjkG,GACnB,GAAc,OAAVA,GAAmC,iBAAVA,EACzB,OAAO,EACX,IAAIszE,EAAQz1E,OAAOitF,eAAe9qF,GAClC,OAAOszE,IAAUz1E,OAAOT,WAAuB,OAAVk2E,CACzC,CAmBA,SAAS+1B,EAAczqG,EAAQ48C,EAAUx7C,GACrCnC,OAAOC,eAAec,EAAQ48C,EAAU,CACpCr8C,YAAY,EACZe,UAAU,EACVD,cAAc,EACdD,MAAOA,GAEf,CAiBA,SAASspG,EAA0Bp+F,EAAMq+F,GACrC,IAAI/tD,EAAW,SAAWtwC,EAE1B,OADAq+F,EAAMnsG,UAAUo+C,IAAY,EACrB,SAAUxkB,GACb,OAAO6pE,EAAS7pE,KAAsB,IAAhBA,EAAEwkB,EAC5B,CACJ,CAOA,SAASguD,EAASC,GACd,OAAOA,aAAiBhkF,GAC5B,CACA,SAASikF,EAASD,GACd,OAAOA,aAAiBziE,GAC5B,CAIA,SAAS2iE,EAAmB/qG,GACxB,IAAIgrG,EAAc,IAAI5iE,IACtB,IAAK,IAAIhpC,KAAOY,EACZgrG,EAAYliE,IAAI1pC,GAOpB,OANAH,OAAOkB,sBAAsBH,GAAQgB,SAAQ,SAAUmrB,GAC/CltB,OAAOE,yBAAyBa,EAAQmsB,GAAG5rB,YAC3CyqG,EAAYliE,IAAI3c,EACxB,IAGO9hB,MAAM+B,KAAK4+F,EACtB,CACA,SAASC,EAAa7rG,GAClB,OAAIA,GAAOA,EAAI2J,SACJ3J,EAAI2J,WAEJ,IAAIq3B,OAAOhhC,GAAK2J,UAC/B,CACA,SAASmiG,EAAY9pG,GACjB,OAAiB,OAAVA,EAAiB,KAAwB,iBAAVA,EAAqB,GAAKA,EAAQA,CAC5E,CACA,IAAIrB,EAA6B,oBAAZoxE,SAA2BA,QAAQpxE,QAClDoxE,QAAQpxE,QACRd,OAAOkB,sBACH,SAAU/B,GAAO,OAAOa,OAAOoN,oBAAoBjO,GAAKqJ,OAAOxI,OAAOkB,sBAAsB/B,GAAO,EACxEa,OAAOoN,oBAExC8+F,EAAQ9sG,OAAO,uBACf+sG,EAAsB,WAKtB,SAASA,EAAK9+F,QACG,IAATA,IAAmBA,EAAO,QAAU29F,KACxC9kG,KAAKmH,KAAOA,EACZnH,KAAKkmG,wBAAyB,EAC9BlmG,KAAKmmG,iBAAkB,EACvBnmG,KAAKomG,UAAY,IAAInjE,IACrBjjC,KAAKqmG,UAAY,EACjBrmG,KAAKsmG,eAAiB,EACtBtmG,KAAKumG,oBAAsBC,EAAiBC,YAChD,CA6BA,OA5BAR,EAAK5sG,UAAUqtG,iBAAmB,WAC1B1mG,KAAK2mG,2BACL3mG,KAAK2mG,0BAA0B9qG,SAAQ,SAAU+qG,GAAY,OAAOA,GAAY,GAExF,EACAX,EAAK5sG,UAAUwtG,mBAAqB,WAC5B7mG,KAAK8mG,6BACL9mG,KAAK8mG,4BAA4BjrG,SAAQ,SAAU+qG,GAAY,OAAOA,GAAY,GAE1F,EAKAX,EAAK5sG,UAAU0tG,eAAiB,WAC5B,OAAOA,GAAe/mG,KAC1B,EAIAimG,EAAK5sG,UAAU2tG,cAAgB,WAC3BC,KA87CR,SAA0BC,GAElBA,EAAWX,sBAAwBC,EAAiBW,QAExDD,EAAWX,oBAAsBC,EAAiBW,MAElDD,EAAWd,UAAUvqG,SAAQ,SAAU4nB,GAC/BA,EAAE2jF,oBAAsBZ,EAAiBa,aACrC5jF,EAAE6jF,YAAcC,EAAUC,MAC1BC,GAAahkF,EAAGyjF,GAEpBzjF,EAAEikF,iBAENjkF,EAAE2jF,kBAAoBZ,EAAiBW,KAC3C,IAEJ,CA78CQQ,CAAiB3nG,MACjB4nG,IACJ,EACA3B,EAAK5sG,UAAUuK,SAAW,WACtB,OAAO5D,KAAKmH,IAChB,EACO8+F,CACX,CA5CyB,GA6CrB4B,EAAStC,EAA0B,OAAQU,GAC/C,SAAS6B,EAAW3gG,EAAM4gG,EAAyBC,QACf,IAA5BD,IAAsCA,EAA0B1C,QAClC,IAA9B2C,IAAwCA,EAA4B3C,GACxE,IAAI4C,EAAO,IAAIhC,EAAK9+F,GAQpB,OANI4gG,IAA4B1C,GA67DzB6C,GAAc,mBA57DAD,EAAMF,EA27DQI,WAz7D/BH,IAA8B3C,GAC9BwB,GAAmBoB,EAAMD,GAEtBC,CACX,CAcA,IAAIG,EAAW,CACXzH,SAbJ,SAA0BtxE,EAAGzpB,GACzB,OAAOypB,IAAMzpB,CACjB,EAYIyiG,WAXJ,SAA4Bh5E,EAAGzpB,GAC3B,OAAO0iG,GAAUj5E,EAAGzpB,EACxB,EAUIgJ,QANJ,SAAyBygB,EAAGzpB,GACxB,OAAO9L,OAAOyuG,GAAGl5E,EAAGzpB,EACxB,EAKI4iG,QAVJ,SAAyBn5E,EAAGzpB,GACxB,OAAO0iG,GAAUj5E,EAAGzpB,EAAG,EAC3B,GA2BI6iG,EAAgB,SAAShlF,EAAG7d,GAI5B,OAHA6iG,EAAgB3uG,OAAOm3E,gBAClB,CAAEC,UAAW,cAAgBhsE,OAAS,SAAUue,EAAG7d,GAAK6d,EAAEytD,UAAYtrE,CAAG,GAC1E,SAAU6d,EAAG7d,GAAK,IAAK,IAAI0mB,KAAK1mB,EAAOA,EAAE1L,eAAeoyB,KAAI7I,EAAE6I,GAAK1mB,EAAE0mB,GAAI,EACtEm8E,EAAchlF,EAAG7d,EAC5B,EAQI4zB,EAAW,WAQX,OAPAA,EAAW1/B,OAAOo2C,QAAU,SAAkB3sB,GAC1C,IAAK,IAAIK,EAAGnoB,EAAI,EAAG6K,EAAI5K,UAAUC,OAAQF,EAAI6K,EAAG7K,IAE5C,IAAK,IAAI6wB,KADT1I,EAAIloB,UAAUD,GACO3B,OAAOT,UAAUa,eAAeC,KAAKypB,EAAG0I,KAAI/I,EAAE+I,GAAK1I,EAAE0I,IAE9E,OAAO/I,CACX,EACOiW,EAASl+B,MAAM0E,KAAMtE,UAChC,EAEA,SAASgtG,EAAS9qC,GACd,IAAIj1C,EAAsB,mBAAXzvB,QAAyB0kE,EAAE1kE,OAAOC,UAAWsC,EAAI,EAChE,OAAIktB,EAAUA,EAAExuB,KAAKyjE,GACd,CACH72C,KAAM,WAEF,OADI62C,GAAKniE,GAAKmiE,EAAEjiE,SAAQiiE,OAAI,GACrB,CAAE3hE,MAAO2hE,GAAKA,EAAEniE,KAAMkrC,MAAOi3B,EACxC,EAER,CAEA,SAASgkC,EAAOhkC,EAAGt3D,GACf,IAAIqiB,EAAsB,mBAAXzvB,QAAyB0kE,EAAE1kE,OAAOC,UACjD,IAAKwvB,EAAG,OAAOi1C,EACf,IAAmBz4D,EAAYoc,EAA3B9lB,EAAIktB,EAAExuB,KAAKyjE,GAAOikC,EAAK,GAC3B,IACI,WAAc,IAANv7F,GAAgBA,KAAM,MAAQnB,EAAI1J,EAAEsrB,QAAQ4f,MAAMk7D,EAAGxmG,KAAK8J,EAAElJ,MACxE,CACA,MAAOU,GAAS4kB,EAAI,CAAE5kB,MAAOA,EAAS,CACtC,QACI,IACQwI,IAAMA,EAAEwhC,OAAShe,EAAIltB,EAAU,SAAIktB,EAAExuB,KAAKsB,EAClD,CACA,QAAU,GAAI8lB,EAAG,MAAMA,EAAE5kB,KAAO,CACpC,CACA,OAAOklG,CACX,CAEA,SAAS8G,IACL,IAAK,IAAI9G,EAAK,GAAIpmG,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAC3ComG,EAAKA,EAAGv/F,OAAOs/F,EAAOlmG,UAAUD,KACpC,OAAOomG,CACX,CAEA,IAAI+G,EAAmC1vG,OAAO,kCAC1C2vG,EAAwB3vG,OAAO,2BAC/B4vG,EAA4B,CAAC,EAC7BC,EAA+B,CAAC,EAiBpC,SAASC,EAAmBxtG,GACxB,IAAIytG,EAAKt1E,EACT,IAAiD,IAA7Cn4B,EAAOotG,GAAX,CAEA,IAAIM,EAAa1tG,EAAOqtG,GACxB,GAAIK,EAAY,CACZ5D,EAAc9pG,EAAQotG,GAAkC,GAExD,IAAI7tG,EAAO4tG,EAAS7uG,OAAOkB,sBAAsBkuG,GAAapvG,OAAOiB,KAAKmuG,IAC1E,IACI,IAAK,IAAIC,EAAST,EAAS3tG,GAAOquG,EAAWD,EAAOpiF,QAASqiF,EAASziE,KAAMyiE,EAAWD,EAAOpiF,OAAQ,CAClG,IACItD,EAAIylF,EADEE,EAASntG,OAEnBwnB,EAAE4lF,gBAAgB7tG,EAAQioB,EAAEyuD,KAAMzuD,EAAEjkB,WAAYikB,EAAE6lF,gBAAiB7lF,EAAE8lF,mBACzE,CACJ,CACA,MAAOC,GAASP,EAAM,CAAEtsG,MAAO6sG,EAAS,CACxC,QACI,IACQJ,IAAaA,EAASziE,OAAShT,EAAKw1E,EAAOM,SAAS91E,EAAGx5B,KAAKgvG,EACpE,CACA,QAAU,GAAIF,EAAK,MAAMA,EAAItsG,KAAO,CACxC,CACJ,CApBU,CAqBd,CACA,SAAS+sG,EAAoBC,EAA6BN,GACtD,OAAO,WACH,IAAIE,EAoCkB/1F,EAnClBo2F,EAAY,SAAkBpuG,EAAQ02E,EAAM1yE,EAAYqqG,GAIxD,IAAyB,IAArBA,EAEA,OADAR,EAAgB7tG,EAAQ02E,EAAM1yE,EAAYhE,EAAQ+tG,GAC3C,KAIX,IAAKzvG,OAAOT,UAAUa,eAAeC,KAAKqB,EAAQqtG,GAAwB,CACtE,IAAIiB,EAAsBtuG,EAAOqtG,GACjCvD,EAAc9pG,EAAQqtG,EAAuBrvE,EAAS,CAAC,EAAGswE,GAC9D,CAQA,OAPAtuG,EAAOqtG,GAAuB32B,GAAQ,CAClCA,KAAMA,EACNm3B,gBAAiBA,EACjB7pG,WAAYA,EACZ8pG,gBAAiB9tG,EACjB+tG,mBAAoBA,GA/DpC,SAA6Cr3B,EAAM92E,GAC/C,IAAI5B,EAAQ4B,EAAa0tG,EAA4BC,EACrD,OAAQvvG,EAAM04E,KACT14E,EAAM04E,GAAQ,CACXh2E,cAAc,EACdd,WAAYA,EACZzB,IAAK,WAED,OADAqvG,EAAmBhpG,MACZA,KAAKkyE,EAChB,EACA73E,IAAK,SAAU4B,GACX+sG,EAAmBhpG,MACnBA,KAAKkyE,GAAQj2E,CACjB,GAEZ,CAkDmB8tG,CAAoC73B,EAAMy3B,EACrD,EACA,OAasB,KADAn2F,EAZG9X,WAadC,QAAgC,IAAhB6X,EAAK7X,UACZ,iBAAZ6X,EAAK,IAAsC,iBAAZA,EAAK,KAC3B,IAAhBA,EAAK7X,SAA4B,IAAZ6X,EAAK,IAbvB+1F,EAAqB1E,EACd+E,EAAUtuG,MAAM,KAAMI,aAI7B6tG,EAAqBrkG,MAAM7L,UAAU0S,MAAM5R,KAAKuB,WACzCkuG,EAEf,CACJ,CAOA,SAASI,EAAa7iF,EAAGkF,EAAGllB,GAExB,OAAI8iG,GAAa9iF,GACNA,EAEPjiB,MAAMwgC,QAAQve,GACP+/E,EAAW7uB,MAAMlxD,EAAG,CAAEhgB,KAAMA,IACnC+4F,EAAc/4E,GACP+/E,EAAWrsG,OAAOssB,OAAGpkB,EAAW,CAAEoE,KAAMA,IAC/Cs+F,EAASt+E,GACF+/E,EAAW30F,IAAI4U,EAAG,CAAEhgB,KAAMA,IACjCw+F,EAASx+E,GACF+/E,EAAW7sG,IAAI8sB,EAAG,CAAEhgB,KAAMA,IAC9BggB,CACX,CAiBA,SAAS+iF,EAAkBjmC,GAEvB,OAAOA,CACX,CASA,SAASkmC,EAA2BC,GAChCh2E,EAAUg2E,GACV,IAAIR,EAAYF,GAAoB,GAAM,SAAUluG,EAAQ6uG,EAAc7qG,EAAY8qG,EAAkBC,GAIpG,IAAIC,EAAehrG,EACbA,EAAWirG,YACPjrG,EAAWirG,YAAYtwG,KAAKqB,GAC5BgE,EAAWvD,WACf8G,EACN2nG,GAAmBlvG,GAAQmvG,kBAAkBN,EAAcG,EAAcJ,EAC7E,IACIQ,QAEe,IAAZ1pF,GAA2BA,EAAQ1kB,IAQpCotG,GAEN,OADAgB,EAAIR,SAAWA,EACRQ,CACX,CAIA,IAAIC,EAAiC,CACjCC,MAAM,EACN3jG,UAAMpE,EACNgoG,sBAAkBhoG,EAClBioG,OAAO,GAOX,SAASC,EAA0BvF,GAC/B,OAAIA,QACOmF,EACU,iBAAVnF,EACA,CAAEv+F,KAAMu+F,EAAOoF,MAAM,EAAME,OAAO,GAMtCtF,CACX,CAhBA5rG,OAAOi3B,OAAO85E,GAiBd,IAAIK,EAAgBf,EAA2BH,GAC3CmB,EAAmBhB,GAlFvB,SAAyBhjF,EAAGkF,EAAGllB,GAC3B,OAAIggB,SAEAikF,GAAmBjkF,IAAMkkF,GAAkBlkF,IAAMmkF,GAAgBnkF,IAAMokF,GAAgBpkF,GADhFA,EAGPjiB,MAAMwgC,QAAQve,GACP+/E,EAAW7uB,MAAMlxD,EAAG,CAAEhgB,KAAMA,EAAM2jG,MAAM,IAC/C5K,EAAc/4E,GACP+/E,EAAWrsG,OAAOssB,OAAGpkB,EAAW,CAAEoE,KAAMA,EAAM2jG,MAAM,IAC3DrF,EAASt+E,GACF+/E,EAAW30F,IAAI4U,EAAG,CAAEhgB,KAAMA,EAAM2jG,MAAM,IAC7CnF,EAASx+E,GACF+/E,EAAW7sG,IAAI8sB,EAAG,CAAEhgB,KAAMA,EAAM2jG,MAAM,IAC1C7F,GAAK,EAEhB,IAoEIuG,EAAerB,EAA2BD,GAC1CuB,EAAqBtB,GAhEzB,SAA2BhjF,EAAGukF,EAAUvkG,GAGpC,OAAImhG,GAAUnhF,EAAGukF,GACNA,EACJvkF,CACX,IA2DA,SAASwkF,EAAuB5qG,GAC5B,OAAOA,EAAQgqG,iBACThqG,EAAQgqG,iBAAiBX,UACR,IAAjBrpG,EAAQ+pG,KACJZ,EACAF,CACd,CA8BA,IAAI4B,EAAsB,CACtBhqB,IAAK,SAAU3lF,EAAO8E,GACdrF,UAAUC,OAAS,GACnBkwG,EAA2B,OAC/B,IAAIjuC,EAAIqtC,EAA0BlqG,GAClC,OAAO,IAAI+qG,GAAgB7vG,EAAO0vG,EAAuB/tC,GAAIA,EAAEz2D,MAAM,EAAMy2D,EAAEmuC,OACjF,EACA1zB,MAAO,SAAU2zB,EAAejrG,GACxBrF,UAAUC,OAAS,GACnBkwG,EAA2B,SAC/B,IAAIjuC,EAAIqtC,EAA0BlqG,GAClC,OAu+ER,SAA+BirG,EAAe5B,EAAUjjG,EAAM8kG,QAC7C,IAAT9kG,IAAmBA,EAAO,mBAAqB29F,UACrC,IAAVmH,IAAoBA,GAAQ,GAChC,IAj7FwBpxG,EAAQ48C,EAAUx7C,EAi7FtCiwG,EAAM,IAAIC,GAA8BhlG,EAAMijG,EAAU6B,GAj7FpCpxG,EAk7FLqxG,EAAIjlF,OAl7FSwwB,EAk7FDuuD,EAl7FW/pG,EAk7FJiwG,EAj7FtCpyG,OAAOC,eAAec,EAAQ48C,EAAU,CACpCr8C,YAAY,EACZe,UAAU,EACVD,cAAc,EACdD,MAAOA,IA86FX,IAAI+uG,EAAQ,IAAI1uB,MAAM4vB,EAAIjlF,OAAQmlF,IAElC,GADAF,EAAIlB,MAAQA,EACRgB,GAAiBA,EAAcrwG,OAAQ,CACvC,IAAI8pB,EAAO4mF,IAAuB,GAClCH,EAAII,gBAAgB,EAAG,EAAGN,GAC1BO,GAAqB9mF,EACzB,CACA,OAAOulF,CACX,CAp/EewB,CAAsBR,EAAeL,EAAuB/tC,GAAIA,EAAEz2D,KAC7E,EACAoL,IAAK,SAAUy5F,EAAejrG,GACtBrF,UAAUC,OAAS,GACnBkwG,EAA2B,OAC/B,IAAIjuC,EAAIqtC,EAA0BlqG,GAClC,OAAO,IAAI0rG,GAAcT,EAAeL,EAAuB/tC,GAAIA,EAAEz2D,KACzE,EACA9M,IAAK,SAAU2xG,EAAejrG,GACtBrF,UAAUC,OAAS,GACnBkwG,EAA2B,OAC/B,IAAIjuC,EAAIqtC,EAA0BlqG,GAClC,OAAO,IAAI2rG,GAAcV,EAAeL,EAAuB/tC,GAAIA,EAAEz2D,KACzE,EACAtM,OAAQ,SAAUwB,EAAO6sG,EAAYnoG,GACL,iBAAjBrF,UAAU,IACjBmwG,EAA2B,UAC/B,IAAIjuC,EAAIqtC,EAA0BlqG,GAClC,IAAgB,IAAZ68D,EAAEotC,MACF,OAAO2B,GAAiB,CAAC,EAAGtwG,EAAO6sG,EAAYtrC,GAG/C,IAAImtC,EAAmB6B,GAAqChvC,GAExDotC,EA42EhB,SAAuCr7E,GACnC,IAAIq7E,EAAQ,IAAI1uB,MAAM3sD,EAAMk9E,IAE5B,OADAl9E,EAAKq2E,GAAOgF,MAAQA,EACbA,CACX,CAh3EwB8B,CADDH,GAAiB,CAAC,OAAG5pG,OAAWA,EAAW66D,IAGtD,OADAmvC,GAAqC/B,EAAO3uG,EAAO6sG,EAAY6B,GACxDC,CAEf,EACA/tG,IAAKuuG,EACLhD,QAAS2C,EACTL,KAAMI,EACN8B,OAAQvB,GAERvE,EAtEJ,SAA0B//E,EAAG8lF,EAAM9E,GAE/B,GAA4B,iBAAjBzsG,UAAU,IAA2C,iBAAjBA,UAAU,GACrD,OAAOwvG,EAAc5vG,MAAM,KAAMI,WAGrC,GAAIuuG,GAAa9iF,GACb,OAAOA,EAEX,IAAIyjF,EAAM1K,EAAc/4E,GAClB+/E,EAAWrsG,OAAOssB,EAAG8lF,EAAM9E,GAC3BjjG,MAAMwgC,QAAQve,GACV+/E,EAAW7uB,MAAMlxD,EAAG8lF,GACpBxH,EAASt+E,GACL+/E,EAAW30F,IAAI4U,EAAG8lF,GAClBtH,EAASx+E,GACL+/E,EAAW7sG,IAAI8sB,EAAG8lF,GAClB9lF,EAElB,GAAIyjF,IAAQzjF,EACR,OAAOyjF,EAEX3F,GAAK,EAET,EAiDA,SAAS4G,EAA2BqB,GAChCjI,EAEA,+CAAiDiI,EAAa,gDAAkDA,EAAa,iBACjI,CALApzG,OAAOiB,KAAK6wG,GAAqB/vG,SAAQ,SAAUsL,GAAQ,OAAQ+/F,EAAW//F,GAAQykG,EAAoBzkG,EAAQ,IAOlH,IAuCIq/F,EAoBAe,EA3DA4F,EAAoBzD,GAAoB,GAAO,SAAU9pG,EAAUyqG,EAAc7qG,EAAY8pG,EAAiBiB,GAI9G,IAAI5wG,EAAM6F,EAAW7F,IAAKU,EAAMmF,EAAWnF,IAIvC0G,EAAUwpG,EAAc,IAAM,CAAC,EACnCG,GAAmB9qG,GAAUwtG,gBAAgBxtG,EAAUyqG,EAAc7wE,EAAS,CAAE7/B,IAAKA,EACjFU,IAAKA,EAAK86B,QAASv1B,GAAYmB,GACvC,IACIssG,GAA0BF,EAAkB,CAAEpB,OAAQ3D,EAASC,aAK/DiF,GAAW,SAAkBC,EAAMN,EAAM9E,GACzC,GAAoB,iBAAT8E,EAEP,OAAOE,EAAkB7xG,MAAM,KAAMI,WAEzC,GAAa,OAAT6xG,GAAiC,iBAATA,GAA0C,IAArB7xG,UAAUC,OAEvD,OAAOwxG,EAAkB7xG,MAAM,KAAMI,WAOzC,IAAIipC,EAAuB,iBAATsoE,EAAoBA,EAAO,CAAC,EAI9C,OAHAtoE,EAAKhrC,IAAM4zG,EACX5oE,EAAKtqC,IAAsB,mBAAT4yG,EAAsBA,EAAOtoE,EAAKtqC,IACpDsqC,EAAKx9B,KAAOw9B,EAAKx9B,MAAQomG,EAAKpmG,MAAQ,GAC/B,IAAIqmG,GAAc7oE,EAC7B,EACA2oE,GAASN,OAASK,GAGlB,SAAW7G,GAGPA,EAAiBA,EAA+B,cAAK,GAAK,eAI1DA,EAAiBA,EAA6B,WAAI,GAAK,aAOvDA,EAAiBA,EAAiC,eAAI,GAAK,iBAG3DA,EAAiBA,EAAwB,MAAI,GAAK,OACrD,CAlBD,CAkBGA,IAAqBA,EAAmB,CAAC,IAE5C,SAAWe,GACPA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAe,IAAI,GAAK,MAClCA,EAAUA,EAAiB,MAAI,GAAK,OACvC,CAJD,CAIGA,IAAcA,EAAY,CAAC,IAC9B,IAAIkG,GACA,SAAyBC,GACrB1tG,KAAK0tG,MAAQA,CAEjB,EAGJ,SAASC,GAAkBpsF,GACvB,OAAOA,aAAaksF,EACxB,CAYA,SAASG,GAAcC,GACnB,OAAQA,EAAWzG,mBACf,KAAKZ,EAAiBa,WAClB,OAAO,EACX,KAAKb,EAAiBC,aACtB,KAAKD,EAAiBW,MAClB,OAAO,EACX,KAAKX,EAAiBsH,eAKlB,IAHA,IAAIC,EAAsBC,IAAqB,GAC3CC,EAAgBC,KAChBC,EAAMN,EAAWO,UAAWxmF,EAAIumF,EAAIxyG,OAC/BF,EAAI,EAAGA,EAAImsB,EAAGnsB,IAAK,CACxB,IAAIxC,EAAMk1G,EAAI1yG,GACd,GAAI4yG,GAAgBp1G,GAAM,CACtB,GAAI8rG,GAAYuJ,uBACZr1G,EAAIU,WAGJ,IACIV,EAAIU,KACR,CACA,MAAO4nB,GAIH,OAFAgtF,GAAaN,GACbO,GAAmBT,IACZ,CACX,CAKJ,GAAIF,EAAWzG,oBAAsBZ,EAAiBW,MAGlD,OAFAoH,GAAaN,GACbO,GAAmBT,IACZ,CAEf,CACJ,CAIA,OAHAU,GAA2BZ,GAC3BU,GAAaN,GACbO,GAAmBT,IACZ,EAGnB,CAaA,SAASW,GAAoCzG,GACzC,IAAI0G,EAAe1G,EAAK7B,UAAUxvF,KAAO,EAErCmuF,GAAY6J,iBAAmB,GAAKD,GACpC1J,GAAK,GAGJF,GAAY8J,oBAAsBF,GAA+C,WAA/B5J,GAAY+J,gBAC/D7J,GAAK,EAKb,CAaA,SAAS8J,GAAqBlB,EAAY55E,EAAGkB,GACzC,IAAI44E,EAAsBC,IAAqB,GAG/CS,GAA2BZ,GAC3BA,EAAWmB,aAAe,IAAI9pG,MAAM2oG,EAAWO,UAAUzyG,OAAS,KAClEkyG,EAAWoB,iBAAmB,EAC9BpB,EAAWqB,QAAUnK,GAAYmK,MACjC,IAEIjsG,EAFAksG,EAAepK,GAAYqK,mBAG/B,GAFArK,GAAYqK,mBAAqBvB,GAEU,IAAvC9I,GAAYuJ,uBACZrrG,EAASgxB,EAAE95B,KAAKg7B,QAGhB,IACIlyB,EAASgxB,EAAE95B,KAAKg7B,EACpB,CACA,MAAO5T,GACHte,EAAS,IAAIwqG,GAAgBlsF,EACjC,CAMJ,OAJAwjF,GAAYqK,mBAAqBD,EAoBrC,SAA0BtB,GAStB,IAPA,IAAIwB,EAAgBxB,EAAWO,UAC3BA,EAAaP,EAAWO,UAAYP,EAAWmB,aAC/CM,EAAoC9I,EAAiBa,WAIrDkI,EAAK,EAAG3nF,EAAIimF,EAAWoB,iBAClBxzG,EAAI,EAAGA,EAAImsB,EAAGnsB,IAEG,KADlB+zG,EAAMpB,EAAU3yG,IACZ4qG,YACJmJ,EAAInJ,UAAY,EACZkJ,IAAO9zG,IACP2yG,EAAUmB,GAAMC,GACpBD,KAIAC,EAAIpI,kBAAoBkI,IACxBA,EAAoCE,EAAIpI,mBAShD,IANAgH,EAAUzyG,OAAS4zG,EACnB1B,EAAWmB,aAAe,KAI1BpnF,EAAIynF,EAAc1zG,OACXisB,KAEmB,KADlB4nF,EAAMH,EAAcznF,IAChBy+E,WACJoJ,GAAeD,EAAK3B,GAExB2B,EAAInJ,UAAY,EAKpB,KAAOkJ,KAAM,CACT,IAAIC,EACkB,KADlBA,EAAMpB,EAAUmB,IACZlJ,YACJmJ,EAAInJ,UAAY,EAChBqJ,GAAYF,EAAK3B,GAEzB,CAGIyB,IAAsC9I,EAAiBa,aACvDwG,EAAWzG,kBAAoBkI,EAC/BzB,EAAWnG,gBAEnB,CAvEIiI,CAAiB9B,GAEjBW,GAAmBT,GACZ9qG,CACX,CAoEA,SAAS2sG,GAAe/B,GAEpB,IAAIM,EAAMN,EAAWO,UACrBP,EAAWO,UAAY,GAEvB,IADA,IAAI3yG,EAAI0yG,EAAIxyG,OACLF,KACHg0G,GAAetB,EAAI1yG,GAAIoyG,GAC3BA,EAAWzG,kBAAoBZ,EAAiBC,YACpD,CACA,SAASoJ,GAAUh5D,GACf,IAAIpxB,EAAOyoF,KACX,IACI,OAAOr3D,GACX,CACA,QACI03D,GAAa9oF,EACjB,CACJ,CACA,SAASyoF,KACL,IAAIzoF,EAAOs/E,GAAYqK,mBAEvB,OADArK,GAAYqK,mBAAqB,KAC1B3pF,CACX,CACA,SAAS8oF,GAAa9oF,GAClBs/E,GAAYqK,mBAAqB3pF,CACrC,CACA,SAASuoF,GAAqB8B,GAC1B,IAAIrqF,EAAOs/E,GAAY+K,gBAEvB,OADA/K,GAAY+K,gBAAkBA,EACvBrqF,CACX,CACA,SAAS+oF,GAAmB/oF,GACxBs/E,GAAY+K,gBAAkBrqF,CAClC,CAKA,SAASgpF,GAA2BZ,GAChC,GAAIA,EAAWzG,oBAAsBZ,EAAiBa,WAAtD,CAEAwG,EAAWzG,kBAAoBZ,EAAiBa,WAGhD,IAFA,IAAI8G,EAAMN,EAAWO,UACjB3yG,EAAI0yG,EAAIxyG,OACLF,KACH0yG,EAAI1yG,GAAG8qG,oBAAsBC,EAAiBa,UALxC,CAMd,CAIA,IAAI0I,GAAkB,EAClBC,GAAe,EACfC,GAAyBn2G,OAAOE,0BAAyB,WAAc,GAAG,QAE9E,SAASk2G,GAAaC,EAAYrqF,EAAI7oB,GAMlC,IAAI2tG,EAAM,WACN,OAAOwF,GAAcD,EAAYrqF,EAAI7oB,GAAO+C,KAAMtE,UACtD,EAOA,OANAkvG,EAAIyF,cAAe,EAMZzF,CACX,CACA,SAASwF,GAAcD,EAAYrqF,EAAIwqF,EAAO98F,GAC1C,IAAI+8F,EAYR,SAAsBJ,EAAYG,EAAO98F,GACrC,IAgBIg9F,EAAiBtC,KACrBjH,KACA,IAEIsJ,EAAU,CACVC,eAAgBA,EAChBC,sBAJwBpE,IAAuB,GAK/C0B,oBAJsBC,IAAqB,GAK3C0C,WAg8BG,EA/7BH73C,UAxBY,EAyBZ83C,SAAUX,KACVY,eAAgBb,IAGpB,OADAA,GAAkBQ,EAAQI,SACnBJ,CACX,CA5CkBM,GACd,IACI,OAAO/qF,EAAGxqB,MAAMg1G,EAAO98F,EAC3B,CACA,MAAO1P,GAEH,MADAysG,EAAQ5zG,MAAQmH,EACVA,CACV,CACA,SAqCJ,SAAoBysG,GACZR,KAAoBQ,EAAQI,UAC5B1L,EAAK,6DAET8K,GAAkBQ,EAAQK,oBACJ7tG,IAAlBwtG,EAAQ5zG,QACRooG,GAAY+L,wBAAyB,GAEzCvE,GAAqBgE,EAAQE,uBAC7BjC,GAAmB+B,EAAQxC,qBAC3BnG,KACA2G,GAAagC,EAAQC,gBACjBD,EAAQG,UAGZ3L,GAAY+L,wBAAyB,CACzC,CApDQC,CAAWR,EACf,CACJ,CAmDA,SAAS1B,GAAkBA,EAAmBlwG,GAC1C,IACIisG,EADAnlF,EAAO4mF,GAAuBwC,GAElC,IACIjE,EAAMjsG,GACV,CACA,QACI4tG,GAAqB9mF,EACzB,CACA,OAAOmlF,CACX,CACA,SAASyB,GAAuBwC,GAC5B,IAAIppF,EAAOs/E,GAAY8J,kBAEvB,OADA9J,GAAY8J,kBAAoBA,EACzBppF,CACX,CACA,SAAS8mF,GAAqB9mF,GAC1Bs/E,GAAY8J,kBAAoBppF,CACpC,CAnGiCwqF,IAA0BA,GAAuB/zG,aAiHlF,IAAI4vG,GAAiC,SAAUpY,GAE3C,SAASoY,EAAgB7vG,EAAOmuG,EAAUjjG,EAAMupG,EAAW3E,QAC1C,IAAT5kG,IAAmBA,EAAO,mBAAqB29F,UACjC,IAAd4L,IAAwBA,GAAY,QACzB,IAAX3E,IAAqBA,EAAS3D,EAASx5F,SAC3C,IAAIxM,EAAQsxF,EAAOv5F,KAAK6F,KAAMmH,IAASnH,KAUvC,OATAoC,EAAMgoG,SAAWA,EACjBhoG,EAAM+E,KAAOA,EACb/E,EAAM2pG,OAASA,EACf3pG,EAAM4uG,qBAAsB,EAC5B5uG,EAAMnG,MAAQmuG,EAASnuG,OAAO8G,EAAWoE,GAKlC/E,CACX,CAkFA,OA51BJ,SAAmBqhB,EAAG7d,GAElB,SAASqrG,IAAOjxG,KAAK5G,YAAcqqB,CAAG,CADtCglF,EAAchlF,EAAG7d,GAEjB6d,EAAEpqB,UAAkB,OAANuM,EAAa9L,OAAO05B,OAAO5tB,IAAMqrG,EAAG53G,UAAYuM,EAAEvM,UAAW,IAAI43G,EACnF,CAsvBItd,CAAUmY,EAAiBpY,GAiB3BoY,EAAgBzyG,UAAU63G,aAAe,SAAUj1G,GAC/C,YAAsB8G,IAAlB/C,KAAKmxG,SACEnxG,KAAKmxG,SAASl1G,GAClBA,CACX,EACA6vG,EAAgBzyG,UAAUgB,IAAM,SAAU4pE,GACvBjkE,KAAK/D,OACpBgoE,EAAWjkE,KAAKoxG,gBAAgBntC,MACf8gC,GAAYsM,WAUzBrxG,KAAKsxG,YAAYrtC,EAIzB,EACA6nC,EAAgBzyG,UAAU+3G,gBAAkB,SAAUntC,GAElD,GADAyqC,GAAoC1uG,MAChCuxG,GAAgBvxG,MAAO,CACvB,IAAIid,EAASu0F,GAAgBxxG,KAAM,CAC/BnF,OAAQmF,KACR+O,KAAM,SACNk1D,SAAUA,IAEd,IAAKhnD,EACD,OAAO8nF,GAAYsM,UACvBptC,EAAWhnD,EAAOgnD,QACtB,CAGA,OADAA,EAAWjkE,KAAKoqG,SAASnmC,EAAUjkE,KAAK/D,MAAO+D,KAAKmH,MAC7CnH,KAAK+rG,OAAO/rG,KAAK/D,MAAOgoE,GAAY8gC,GAAYsM,UAAYptC,CACvE,EACA6nC,EAAgBzyG,UAAUi4G,YAAc,SAAUrtC,GAC9C,IAAIynC,EAAW1rG,KAAK/D,MACpB+D,KAAK/D,MAAQgoE,EACbjkE,KAAKgnG,gBACDyK,GAAazxG,OACb0xG,GAAgB1xG,KAAM,CAClB+O,KAAM,SACNlU,OAAQmF,KACRikE,SAAUA,EACVynC,SAAUA,GAGtB,EACAI,EAAgBzyG,UAAUM,IAAM,WAE5B,OADAqG,KAAK+mG,iBACE/mG,KAAKkxG,aAAalxG,KAAK/D,MAClC,EACA6vG,EAAgBzyG,UAAUs4G,UAAY,SAAUvjD,GAC5C,OAAOwjD,GAAoB5xG,KAAMouD,EACrC,EACA09C,EAAgBzyG,UAAUw4G,QAAU,SAAUjL,EAAUhkG,GAQpD,OAPIA,GACAgkG,EAAS,CACL/rG,OAAQmF,KACR+O,KAAM,SACNk1D,SAAUjkE,KAAK/D,MACfyvG,cAAU3oG,IAEX+uG,GAAiB9xG,KAAM4mG,EAClC,EACAkF,EAAgBzyG,UAAU04G,OAAS,WAC/B,OAAO/xG,KAAKrG,KAChB,EACAmyG,EAAgBzyG,UAAUuK,SAAW,WACjC,OAAO5D,KAAKmH,KAAO,IAAMnH,KAAK/D,MAAQ,GAC1C,EACA6vG,EAAgBzyG,UAAUiS,QAAU,WAChC,OAAOy6F,EAAY/lG,KAAKrG,MAC5B,EACAmyG,EAAgBzyG,UAAUH,OAAO6sG,aAAe,WAC5C,OAAO/lG,KAAKsL,SAChB,EACOwgG,CACX,CApGoC,CAoGlC7F,GACE+L,GAAoBzM,EAA0B,kBAAmBuG,IAqBjE0B,GAA+B,WAa/B,SAASA,EAAczsG,GACnBf,KAAKonG,kBAAoBZ,EAAiBC,aAC1CzmG,KAAKouG,UAAY,GACjBpuG,KAAKgvG,aAAe,KACpBhvG,KAAKmmG,iBAAkB,EACvBnmG,KAAKkmG,wBAAyB,EAC9BlmG,KAAKomG,UAAY,IAAInjE,IACrBjjC,KAAKqmG,UAAY,EACjBrmG,KAAKkvG,MAAQ,EACblvG,KAAKsmG,eAAiB,EACtBtmG,KAAKumG,oBAAsBC,EAAiBa,WAC5CrnG,KAAKivG,iBAAmB,EACxBjvG,KAAKiyG,QAAU,IAAMnN,IACrB9kG,KAAK/D,MAAQ,IAAIwxG,GAAgB,MACjCztG,KAAKkyG,aAAc,EACnBlyG,KAAKmyG,iBAAkB,EACvBnyG,KAAKsnG,UAAYC,EAAUC,KAC3BpzE,EAAUrzB,EAAQpH,IAAK,oCACvBqG,KAAK6tG,WAAa9sG,EAAQpH,IAC1BqG,KAAKmH,KAAOpG,EAAQoG,MAAQ,iBAAmB29F,IAC3C/jG,EAAQ1G,MACR2F,KAAKoyG,OAASlC,GAAalwG,KAAKmH,KAAkBpG,EAAQ1G,MAC9D2F,KAAK+rG,OACDhrG,EAAQgrG,SACHhrG,EAAQsxG,mBAAqBtxG,EAAQisG,OAChC5E,EAASC,WACTD,EAASx5F,SACvB5O,KAAKswG,MAAQvvG,EAAQo0B,QACrBn1B,KAAKsyG,mBAAqBvxG,EAAQuxG,iBAClCtyG,KAAKuyG,YAAcxxG,EAAQwxG,SAC/B,CA6JA,OA5JA/E,EAAcn0G,UAAUquG,cAAgB,YA8f5C,SAA+BR,GAEvBA,EAAWX,sBAAwBC,EAAiBa,aAExDH,EAAWX,oBAAsBC,EAAiBsH,eAClD5G,EAAWd,UAAUvqG,SAAQ,SAAU4nB,GAC/BA,EAAE2jF,oBAAsBZ,EAAiBa,aACzC5jF,EAAE2jF,kBAAoBZ,EAAiBsH,eACnCrqF,EAAE6jF,YAAcC,EAAUC,MAC1BC,GAAahkF,EAAGyjF,GAEpBzjF,EAAEikF,gBAEV,IAEJ,CA5gBQ8K,CAAsBxyG,KAC1B,EACAwtG,EAAcn0G,UAAUqtG,iBAAmB,WACnC1mG,KAAK2mG,2BACL3mG,KAAK2mG,0BAA0B9qG,SAAQ,SAAU+qG,GAAY,OAAOA,GAAY,GAExF,EACA4G,EAAcn0G,UAAUwtG,mBAAqB,WACrC7mG,KAAK8mG,6BACL9mG,KAAK8mG,4BAA4BjrG,SAAQ,SAAU+qG,GAAY,OAAOA,GAAY,GAE1F,EAKA4G,EAAcn0G,UAAUM,IAAM,WACtBqG,KAAKkyG,aACLjN,EAAK,iCAAmCjlG,KAAKmH,KAAO,KAAOnH,KAAK6tG,YACxC,IAAxB9I,GAAY0N,SAAyC,IAAxBzyG,KAAKomG,UAAUxvF,MAAe5W,KAAKuyG,WAShExL,GAAe/mG,MACX4tG,GAAc5tG,OACVA,KAAK0yG,mBAgdzB,SAAkCxL,GAE1BA,EAAWX,sBAAwBC,EAAiBW,QAExDD,EAAWX,oBAAsBC,EAAiBW,MAClDD,EAAWd,UAAUvqG,SAAQ,SAAU4nB,GAC/BA,EAAE2jF,oBAAsBZ,EAAiBsH,eACzCrqF,EAAE2jF,kBAAoBZ,EAAiBW,MAClC1jF,EAAE2jF,oBAAsBZ,EAAiBa,aAE9CH,EAAWX,oBAAsBC,EAAiBa,WAC1D,IAEJ,CA5doBsL,CAAyB3yG,OAX7B4tG,GAAc5tG,QACdA,KAAK4yG,yBACL3L,KACAjnG,KAAK/D,MAAQ+D,KAAK6yG,cAAa,GAC/BjL,MASR,IAAI3kG,EAASjD,KAAK/D,MAClB,GAAI0xG,GAAkB1qG,GAClB,MAAMA,EAAOyqG,MACjB,OAAOzqG,CACX,EACAuqG,EAAcn0G,UAAUouB,KAAO,WAC3B,IAAImjF,EAAM5qG,KAAK6yG,cAAa,GAC5B,GAAIlF,GAAkB/C,GAClB,MAAMA,EAAI8C,MACd,OAAO9C,CACX,EACA4C,EAAcn0G,UAAUgB,IAAM,SAAU4B,GACpC,GAAI+D,KAAKoyG,OAAQ,CACbh+E,GAAWp0B,KAAKmyG,gBAAiB,iCAAmCnyG,KAAKmH,KAAO,mHAChFnH,KAAKmyG,iBAAkB,EACvB,IACInyG,KAAKoyG,OAAOj4G,KAAK6F,KAAKswG,MAAOr0G,EACjC,CACA,QACI+D,KAAKmyG,iBAAkB,CAC3B,CACJ,MAEI/9E,GAAU,GAAO,EAEzB,EACAo5E,EAAcn0G,UAAUq5G,gBAAkB,WAQtC,IAAIhH,EAAW1rG,KAAK/D,MAChB62G,EACY9yG,KAAKonG,oBAAsBZ,EAAiBC,aACxDxiC,EAAWjkE,KAAK6yG,cAAa,GAC7BE,EAAUD,GACVnF,GAAkBjC,IAClBiC,GAAkB1pC,KACjBjkE,KAAK+rG,OAAOL,EAAUznC,GAI3B,OAHI8uC,IACA/yG,KAAK/D,MAAQgoE,GAEV8uC,CACX,EACAvF,EAAcn0G,UAAUw5G,aAAe,SAAUjP,GAG7C,IAAIgH,EACJ,GAHA5qG,KAAKkyG,aAAc,EACnBnN,GAAY6J,mBAERhL,EACAgH,EAAMmE,GAAqB/uG,KAAMA,KAAK6tG,WAAY7tG,KAAKswG,YAGvD,IAA2C,IAAvCvL,GAAYuJ,uBACZ1D,EAAM5qG,KAAK6tG,WAAW1zG,KAAK6F,KAAKswG,YAGhC,IACI1F,EAAM5qG,KAAK6tG,WAAW1zG,KAAK6F,KAAKswG,MACpC,CACA,MAAO/uF,GACHqpF,EAAM,IAAI6C,GAAgBlsF,EAC9B,CAKR,OAFAwjF,GAAY6J,mBACZ5uG,KAAKkyG,aAAc,EACZtH,CACX,EACA4C,EAAcn0G,UAAU25G,QAAU,WACzBhzG,KAAKuyG,YACN3C,GAAe5vG,MACfA,KAAK/D,WAAQ8G,EAErB,EACAyqG,EAAcn0G,UAAUw4G,QAAU,SAAUjL,EAAUhkG,GAClD,IAAIR,EAAQpC,KACRizG,GAAY,EACZC,OAAYnwG,EAChB,OAAOowG,IAAQ,WACX,IAAIlvC,EAAW7hE,EAAMzI,MACrB,IAAKs5G,GAAarwG,EAAiB,CAC/B,IAAIwwG,EAAQlF,KACZtH,EAAS,CACL73F,KAAM,SACNlU,OAAQuH,EACR6hE,SAAUA,EACVynC,SAAUwH,IAEd3E,GAAa6E,EACjB,CACAH,GAAY,EACZC,EAAYjvC,CAChB,GACJ,EACAupC,EAAcn0G,UAAUu5G,uBAAyB,WAYjD,EACApF,EAAcn0G,UAAU04G,OAAS,WAC7B,OAAO/xG,KAAKrG,KAChB,EACA6zG,EAAcn0G,UAAUuK,SAAW,WAC/B,OAAO5D,KAAKmH,KAAO,IAAMnH,KAAK6tG,WAAWjqG,WAAa,GAC1D,EACA4pG,EAAcn0G,UAAUiS,QAAU,WAC9B,OAAOy6F,EAAY/lG,KAAKrG,MAC5B,EACA6zG,EAAcn0G,UAAUH,OAAO6sG,aAAe,WAC1C,OAAO/lG,KAAKsL,SAChB,EACOkiG,CACX,CAzMkC,GA0M9Ba,GAAkB9I,EAA0B,gBAAiBiI,IAiB7D6F,GACA,WASIrzG,KAAKwG,QAAU,EAIfxG,KAAKqxG,UAAY,CAAC,EAIlBrxG,KAAKovG,mBAAqB,KAI1BpvG,KAAK4uG,iBAAmB,EAIxB5uG,KAAKkvG,MAAQ,EAIblvG,KAAKglG,SAAW,EAIhBhlG,KAAKyyG,QAAU,EAOfzyG,KAAKszG,sBAAwB,GAI7BtzG,KAAKuzG,iBAAmB,GAIxBvzG,KAAKwzG,oBAAqB,EAM1BxzG,KAAK6uG,mBAAoB,EAKzB7uG,KAAK8vG,iBAAkB,EAIvB9vG,KAAK8uG,gBAAiB,EAItB9uG,KAAKyzG,aAAe,GAIpBzzG,KAAK0zG,4BAA8B,GAInC1zG,KAAK2zG,0BAA2B,EAKhC3zG,KAAK4zG,4BAA6B,EAKlC5zG,KAAK6zG,4BAA6B,EAKlC7zG,KAAK8zG,sBAAuB,EAK5B9zG,KAAKsuG,wBAAyB,EAK9BtuG,KAAK8wG,wBAAyB,CAClC,EAGAiD,GAAa,CAAC,EAClB,SAASC,KACL,MAAsB,oBAAXr7G,OACAA,YAEW,IAAX,EAAAC,EACA,EAAAA,EAES,oBAATC,KACAA,KAEJk7G,EACX,CACA,IAAIE,IAAsB,EACtBC,IAAgB,EAChBnP,GAAc,WACd,IAAIoP,EAASH,KAKb,OAJIG,EAAOC,oBAAsB,IAAMD,EAAOE,gBAC1CJ,IAAsB,GACtBE,EAAOE,eAAiBF,EAAOE,cAAc7tG,WAAY,IAAI6sG,IAAc7sG,UAC3EytG,IAAsB,GACrBA,GAQIE,EAAOE,eACZF,EAAOC,qBAAuB,EACzBD,EAAOE,cAAchD,YACtB8C,EAAOE,cAAchD,UAAY,CAAC,GAC/B8C,EAAOE,gBAGdF,EAAOC,oBAAsB,EACrBD,EAAOE,cAAgB,IAAIhB,KAfnC5rG,YAAW,WACFysG,IACDjP,EAAK,6IAEb,GAAG,GACI,IAAIoO,GAYlB,CAxBiB,GA2ElB,SAAS3D,GAAYxI,EAAY3oG,GAI7B2oG,EAAWd,UAAUziE,IAAIplC,GACrB2oG,EAAWX,oBAAsBhoG,EAAK6oG,oBACtCF,EAAWX,oBAAsBhoG,EAAK6oG,kBAG9C,CACA,SAASqI,GAAevI,EAAY3oG,GAIhC2oG,EAAWd,UAAU1gF,OAAOnnB,GACM,IAA9B2oG,EAAWd,UAAUxvF,MAErB09F,GAAsBpN,EAI9B,CACA,SAASoN,GAAsBpN,IACe,IAAtCA,EAAWhB,yBAEXgB,EAAWhB,wBAAyB,EACpCnB,GAAYuO,sBAAsBj4G,KAAK6rG,GAE/C,CAMA,SAASD,KACLlC,GAAY0N,SAChB,CACA,SAAS7K,KACL,GAA8B,KAAxB7C,GAAY0N,QAAe,CAC7B8B,KAGA,IADA,IAAIC,EAAOzP,GAAYuO,sBACd73G,EAAI,EAAGA,EAAI+4G,EAAK74G,OAAQF,IAAK,CAClC,IAAIyrG,EAAasN,EAAK/4G,GACtByrG,EAAWhB,wBAAyB,EACF,IAA9BgB,EAAWd,UAAUxvF,OACjBswF,EAAWf,kBAEXe,EAAWf,iBAAkB,EAC7Be,EAAWL,sBAEXK,aAAsBsG,IAGtBtG,EAAW8L,UAGvB,CACAjO,GAAYuO,sBAAwB,EACxC,CACJ,CACA,SAASvM,GAAeG,GAEpB,IAAI2G,EAAa9I,GAAYqK,mBAC7B,OAAmB,OAAfvB,GAMIA,EAAWqB,QAAUhI,EAAWZ,iBAChCY,EAAWZ,eAAiBuH,EAAWqB,MAEvCrB,EAAWmB,aAAanB,EAAWoB,oBAAsB/H,EACpDA,EAAWf,kBACZe,EAAWf,iBAAkB,EAC7Be,EAAWR,sBAGZ,IAE4B,IAA9BQ,EAAWd,UAAUxvF,MAAcmuF,GAAY0N,QAAU,GAC9D6B,GAAsBpN,IAEnB,EACX,CAuEA,SAASO,GAAaoG,EAAY3G,GAE9B,GADAxqG,QAAQmE,IAAI,iBAAmBgtG,EAAW1mG,KAAO,yCAA2C+/F,EAAW//F,KAAO,KAC1G0mG,EAAWvG,YAAcC,EAAUkN,MAAO,CAC1C,IAAIC,EAAQ,GACZC,GAAaC,GAAkB/G,GAAa6G,EAAO,GAEnD,IAAI/xB,SAAS,2BAA6BkrB,EAAW1mG,KAAO,8DAAgE0mG,EAAW1mG,KAAO,0BAA4B+/F,EAAW//F,KAAO,2OAA6O0mG,aAAsBL,GAAgBK,EAAWA,WAAWjqG,WAAWpL,QAAQ,SAAU,KAAO,IAAM,oDAAsDk8G,EAAM/vG,KAAK,MAAQ,aAAxlB,EACJ,CACJ,CACA,SAASgwG,GAAaE,EAAMH,EAAOI,GAC3BJ,EAAM/4G,QAAU,IAChB+4G,EAAMr5G,KAAK,oBAGfq5G,EAAMr5G,KAAK,GAAK,IAAI6J,MAAM4vG,GAAOnwG,KAAK,MAAQkwG,EAAK1tG,MAC/C0tG,EAAKn0G,cACLm0G,EAAKn0G,aAAa7E,SAAQ,SAAU2W,GAAS,OAAOmiG,GAAaniG,EAAOkiG,EAAOI,EAAQ,EAAI,IACnG,CAEA,IAAIC,GAA0B,WAC1B,SAASA,EAAS5tG,EAAM6tG,EAAcC,EAAcC,QACnC,IAAT/tG,IAAmBA,EAAO,YAAc29F,UACjB,IAAvBoQ,IAAiCA,GAAqB,GAC1Dl1G,KAAKmH,KAAOA,EACZnH,KAAKg1G,aAAeA,EACpBh1G,KAAKi1G,aAAeA,EACpBj1G,KAAKk1G,mBAAqBA,EAC1Bl1G,KAAKouG,UAAY,GACjBpuG,KAAKgvG,aAAe,GACpBhvG,KAAKonG,kBAAoBZ,EAAiBC,aAC1CzmG,KAAKqmG,UAAY,EACjBrmG,KAAKkvG,MAAQ,EACblvG,KAAKivG,iBAAmB,EACxBjvG,KAAKiyG,QAAU,IAAMnN,IACrB9kG,KAAKm1G,YAAa,EAClBn1G,KAAKo1G,cAAe,EACpBp1G,KAAKq1G,iBAAkB,EACvBr1G,KAAKs1G,YAAa,EAClBt1G,KAAKsnG,UAAYC,EAAUC,IAC/B,CA2HA,OA1HAuN,EAAS17G,UAAUquG,cAAgB,WAC/B1nG,KAAKu1G,UACT,EACAR,EAAS17G,UAAUk8G,SAAW,WACrBv1G,KAAKo1G,eACNp1G,KAAKo1G,cAAe,EACpBrQ,GAAYwO,iBAAiBl4G,KAAK2E,MAClCu0G,KAER,EACAQ,EAAS17G,UAAUm8G,YAAc,WAC7B,OAAOx1G,KAAKo1G,YAChB,EAIAL,EAAS17G,UAAUo8G,YAAc,WAC7B,IAAKz1G,KAAKm1G,WAAY,CAGlB,GAFAlO,KACAjnG,KAAKo1G,cAAe,EAChBxH,GAAc5tG,MAAO,CACrBA,KAAKq1G,iBAAkB,EACvB,IACIr1G,KAAKg1G,eACDh1G,KAAKq1G,eASb,CACA,MAAO9zF,GACHvhB,KAAK01G,4BAA4Bn0F,EACrC,CACJ,CACAqmF,IACJ,CACJ,EACAmN,EAAS17G,UAAUuqG,MAAQ,SAAU99E,GACjC,IAAI9lB,KAAKm1G,WAAT,CAIAlO,KAUAjnG,KAAKs1G,YAAa,EAClB,IAAIryG,EAAS8rG,GAAqB/uG,KAAM8lB,OAAI/iB,GAC5C/C,KAAKs1G,YAAa,EAClBt1G,KAAKq1G,iBAAkB,EACnBr1G,KAAKm1G,YAELvF,GAAe5vG,MAEf2tG,GAAkB1qG,IAClBjD,KAAK01G,4BAA4BzyG,EAAOyqG,OAM5C9F,IA1BA,CA2BJ,EACAmN,EAAS17G,UAAUq8G,4BAA8B,SAAU/4G,GACvD,IAAIyF,EAAQpC,KACZ,GAAIA,KAAKi1G,aACLj1G,KAAKi1G,aAAat4G,EAAOqD,UAD7B,CAIA,GAAI+kG,GAAYuJ,uBACZ,MAAM3xG,EACV,IAAImE,EAAU,sGAAwGd,KAAO,IACzH+kG,GAAY+L,uBACZp0G,QAAQkvC,KAAK,8BAAgC5rC,KAAKmH,KAAO,oDAGzDzK,QAAQC,MAAMmE,EAASnE,GAW3BooG,GAAY2O,4BAA4B73G,SAAQ,SAAUo4B,GAAK,OAAOA,EAAEt3B,EAAOyF,EAAQ,GAnBvF,CAoBJ,EACA2yG,EAAS17G,UAAU8sB,QAAU,WACpBnmB,KAAKm1G,aACNn1G,KAAKm1G,YAAa,EACbn1G,KAAKs1G,aAENrO,KACA2I,GAAe5vG,MACf4nG,MAGZ,EACAmN,EAAS17G,UAAUs8G,YAAc,WAC7B,IAAIxwG,EAAInF,KAAKmmB,QAAQhmB,KAAKH,MAE1B,OADAmF,EAAE6gG,GAAShmG,KACJmF,CACX,EACA4vG,EAAS17G,UAAUuK,SAAW,WAC1B,MAAO,YAAc5D,KAAKmH,KAAO,GACrC,EACA4tG,EAAS17G,UAAUu8G,MAAQ,SAAUC,QACT,IAApBA,IAA8BA,GAAkB,GA07B5D,WAEI,IADA,IAAIriG,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,IAAImiF,GAAkB,EACe,kBAA1BriG,EAAKA,EAAK7X,OAAS,KAC1Bk6G,EAAkBriG,EAAKkU,OAC3B,IAAImmF,EAUR,SAAyBr6F,GACrB,OAAQA,EAAK7X,QACT,KAAK,EACD,OAAOopG,GAAYqK,mBACvB,KAAK,EACD,OAAO0G,GAAQtiG,EAAK,IACxB,KAAK,EACD,OAAOsiG,GAAQtiG,EAAK,GAAIA,EAAK,IAEzC,CAnBqBuiG,CAAgBviG,GACjC,IAAKq6F,EACD,OAAO5I,GAAK,GAGZ4I,EAAWvG,YAAcC,EAAUC,MACnC9qG,QAAQmE,IAAI,iBAAmBgtG,EAAW1mG,KAAO,qBAErD0mG,EAAWvG,UAAYuO,EAAkBtO,EAAUkN,MAAQlN,EAAUyO,GACzE,CA18BQJ,CAAM51G,KAAM61G,EAChB,EACOd,CACX,CAhJ6B,GA8JzBkB,GAA0B,IAC1BlS,GAAoB,SAAU9vE,GAAK,OAAOA,GAAK,EACnD,SAASsgF,KAEDxP,GAAY0N,QAAU,GAAK1N,GAAYyO,oBAE3CzP,GAAkBmS,GACtB,CACA,SAASA,KACLnR,GAAYyO,oBAAqB,EAMjC,IALA,IAAI2C,EAAepR,GAAYwO,iBAC3B6C,EAAa,EAIVD,EAAax6G,OAAS,GAAG,GACtBy6G,IAAeH,KACjBv5G,QAAQC,MAAM,qDAAuDs5G,GAAvD,oEACiDE,EAAa,IAC5EA,EAAazjE,OAAO,IAGxB,IADA,IAAI2jE,EAAqBF,EAAazjE,OAAO,GACpCj3C,EAAI,EAAGmsB,EAAIyuF,EAAmB16G,OAAQF,EAAImsB,EAAGnsB,IAClD46G,EAAmB56G,GAAGg6G,aAC9B,CACA1Q,GAAYyO,oBAAqB,CACrC,CACA,IAAI8C,GAAa/Q,EAA0B,WAAYwP,IACvD,SAASwB,GAAqBzwF,GAC1B,IAAI0wF,EAAgBzS,GACpBA,GAAoB,SAAU9vE,GAAK,OAAOnO,GAAG,WAAc,OAAO0wF,EAAcviF,EAAI,GAAI,CAC5F,CA6BA,SAASwiF,GAAI7P,GAGL,OADAlqG,QAAQkvC,KAAK,8CACN,WAAc,CAQ7B,CAEA,SAAS8qE,KACLzR,GAAK,EACT,CACA,SAAS0R,GAAqBxvG,GAC1B,OAAO,SAAU3L,EAAQ02E,EAAM1yE,GAC3B,GAAIA,EAAY,CAMZ,GAAIA,EAAWvD,MAEX,MAAO,CACHA,MAAOi0G,GAAa/oG,EAAM3H,EAAWvD,OACrCb,YAAY,EACZc,cAAc,EACdC,UAAU,GAIlB,IAAIy6G,EAAgBp3G,EAAWirG,YAC/B,MAAO,CACHrvG,YAAY,EACZc,cAAc,EACdC,UAAU,EACVsuG,YAAa,WAET,OAAOyF,GAAa/oG,EAAMyvG,EAAcz8G,KAAK6F,MACjD,EAER,CAEA,OAGR,SAA8BmH,GAE1B,OAAO,SAAU3L,EAAQ02E,EAAM1yE,GAC3B1F,OAAOC,eAAeyB,EAAQ02E,EAAM,CAChCh2E,cAAc,EACdd,YAAY,EACZzB,IAAK,WAEL,EACAU,IAAK,SAAU4B,GACXqpG,EAActlG,KAAMkyE,EAAMr7B,GAAO1vC,EAAMlL,GAC3C,GAER,CACJ,CAjBe46G,CAAqB1vG,GAAM7L,MAAM0E,KAAMtE,UAClD,CACJ,CAgDA,IAAIm7C,GAAS,SAAgB02D,EAAMN,EAAM9E,EAAM2O,GAE3C,OAAyB,IAArBp7G,UAAUC,QAAgC,mBAAT4xG,EAC1B2C,GAAa3C,EAAKpmG,KAA4BomG,GAEhC,IAArB7xG,UAAUC,QAAgC,mBAATsxG,EAC1BiD,GAAa3C,EAAMN,GAEL,IAArBvxG,UAAUC,QAAgC,iBAAT4xG,EAC1BoJ,GAAqBpJ,IAEnB,IAATuJ,EAKOH,GAAqB1J,GAAM3xG,MAAM,KAAMI,gBAH9C4pG,EAAciI,EAAMN,EAAMiD,GAAa3C,EAAKpmG,KAAcghG,EAAKlsG,MAAO+D,MAK9E,EAEA,SAAS+2G,GAAYxJ,EAAMN,GAQvB,MAPiC,iBAATM,GAA2BA,EAAKpmG,KAOjDipG,GAAcD,EANI,mBAAT5C,EAAsBA,EAAON,EAMRjtG,UAAM+C,EAC/C,CAIA,SAASi0G,GAAkBx7G,EAAQ6uG,EAAcvkF,GAC7Cw/E,EAAc9pG,EAAQ6uG,EAAc6F,GAAa7F,EAAcvkF,EAAG3lB,KAAK3E,IAC3E,CAQA,SAAS23G,GAAQ8D,EAAMtyE,QACN,IAATA,IAAmBA,EAAOq+D,GAK9B,IAEIH,EAFA17F,EAAQw9B,GAAQA,EAAKx9B,MAAS8vG,EAAK9vG,MAAQ,WAAa29F,IAG5D,GAFengE,EAAKuyE,WAAcvyE,EAAKupB,MAQlC,CACD,IAAIipD,EAAcC,GAA2BzyE,GAEzC0yE,GAAgB,EACpBxU,EAAW,IAAIkS,GAAS5tG,GAAM,WACrBkwG,IACDA,GAAgB,EAChBF,GAAY,WACRE,GAAgB,EACXxU,EAASsS,YACVtS,EAASe,MAAM0T,EACvB,IAER,GAAG3yE,EAAK4yE,QAAS5yE,EAAKuwE,mBAC1B,MAlBIrS,EAAW,IAAIkS,GAAS5tG,GAAM,WAC1BnH,KAAK4jG,MAAM0T,EACf,GAAG3yE,EAAK4yE,QAAS5yE,EAAKuwE,oBAiB1B,SAASoC,IACLL,EAAKpU,EACT,CAEA,OADAA,EAAS0S,WACF1S,EAAS8S,aACpB,CA3DA9+D,GAAO2gE,MAnDP,SAA8Bh8G,EAAQ6uG,EAAc7qG,EAAYi4G,GAC5D,OAAwB,IAApBA,GACAT,GAAkBx7G,EAAQ6uG,EAAc7qG,EAAWvD,OAC5C,MAEPuD,EAIO,CACHtD,cAAc,EACdd,YAAY,EACZzB,IAAK,WAED,OADAq9G,GAAkBh3G,KAAMqqG,EAAc7qG,EAAWvD,OAASuD,EAAWirG,YAAYtwG,KAAK6F,OAC/EA,KAAKqqG,EAChB,EACAhwG,IAAKq8G,IAIN,CACHt7G,YAAY,EACZc,cAAc,EACd7B,IAAK,SAAU8sB,GACX6vF,GAAkBh3G,KAAMqqG,EAAcljF,EAC1C,EACAxtB,IAAK,WAEL,EAER,EAiFA,IAAI+9G,GAAM,SAAUzjF,GAAK,OAAOA,GAAK,EACrC,SAASmjF,GAA2BzyE,GAChC,OAAOA,EAAKuyE,UACNvyE,EAAKuyE,UACLvyE,EAAKupB,MACD,SAAUj6B,GAAK,OAAOxsB,WAAWwsB,EAAG0Q,EAAKupB,MAAQ,EACjDwpD,EACd,CACA,SAAS7U,GAAS8U,EAAYC,EAAQjzE,QACrB,IAATA,IAAmBA,EAAOq+D,GAK9B,IAuCsBiS,EAAc4C,EAjChC57G,EANAkL,EAAOw9B,EAAKx9B,MAAQ,YAAc29F,IAClCgT,EAAejhE,GAAO1vC,EAAMw9B,EAAK4yE,SAsCftC,EAtC0CtwE,EAAK4yE,QAsCjCM,EAtC0CD,EAuCvE,WACH,IACI,OAAOC,EAAOv8G,MAAM0E,KAAMtE,UAC9B,CACA,MAAO6lB,GACH0zF,EAAa96G,KAAK6F,KAAMuhB,EAC5B,CACJ,GA9CwFq2F,GACpFG,GAAWpzE,EAAKuyE,YAAcvyE,EAAKupB,MACnCgpD,EAAYE,GAA2BzyE,GACvCsuE,GAAY,EACZuC,GAAc,EAEdzJ,EAASpnE,EAAK0tE,kBACZjK,EAASC,WACT1jE,EAAKonE,QAAU3D,EAASx5F,QAC1BzJ,EAAI,IAAI4vG,GAAS5tG,GAAM,WACnB8rG,GAAa8E,EACbT,IAEM9B,IACNA,GAAc,EACd0B,EAAUI,GAElB,GAAG3yE,EAAK4yE,QAAS5yE,EAAKuwE,oBACtB,SAASoC,IAEL,GADA9B,GAAc,GACVrwG,EAAEgwG,WAAN,CAEA,IAAIpC,GAAU,EACd5tG,EAAEy+F,OAAM,WACJ,IAAIoU,EAAYL,EAAWxyG,GAC3B4tG,EAAUE,IAAclH,EAAO9vG,EAAO+7G,GACtC/7G,EAAQ+7G,CACZ,IACI/E,GAAatuE,EAAK/hC,iBAClBk1G,EAAa77G,EAAOkJ,GACnB8tG,IAAyB,IAAZF,GACd+E,EAAa77G,EAAOkJ,GACpB8tG,IACAA,GAAY,EAZN,CAad,CAEA,OADA9tG,EAAEowG,WACKpwG,EAAEwwG,aACb,CAeA,SAAS9O,GAAmBnB,EAAOuH,EAAM9E,GACrC,OAAOD,GAAc,qBAAsBxC,EAAOuH,EAAM9E,EAC5D,CACA,SAASD,GAAc+P,EAAMvS,EAAOuH,EAAM9E,GACtC,IAAIF,EAAuB,mBAATE,EAAsB2N,GAAQpQ,EAAOuH,GAAQ6I,GAAQpQ,GACnE9kG,EAAqB,mBAATunG,EAAsBA,EAAO8E,EACzCiL,EAAeD,EAAO,YAQ1B,OAPIhQ,EAAKiQ,GACLjQ,EAAKiQ,GAAcv0E,IAAI/iC,GAGvBqnG,EAAKiQ,GAAgB,IAAIj1E,IAAI,CAACriC,IAGd,mBADTqnG,EAAKgQ,GAELhT,GAAK,GACT,WACH,IAAIkT,EAAgBlQ,EAAKiQ,GACrBC,IACAA,EAAczyF,OAAO9kB,GACM,IAAvBu3G,EAAcvhG,aACPqxF,EAAKiQ,GAGxB,CACJ,CAEA,SAASj4G,GAAUc,GACf,IAAI+tG,EAAiB/tG,EAAQ+tG,eAAgB6E,EAA2B5yG,EAAQ4yG,yBAA0BG,EAAuB/yG,EAAQ+yG,qBAAsBxF,EAAyBvtG,EAAQutG,uBAAwBvK,EAAoBhjG,EAAQgjG,kBAAmB6P,EAA6B7yG,EAAQ6yG,2BAA4BC,EAA6B9yG,EAAQ8yG,2BAI7W,IAHmC,IAA/B9yG,EAAQq3G,sBAzsBRrT,GAAYwO,iBAAiB53G,QAC7BopG,GAAY0N,SACZ1N,GAAYyO,qBACZvO,EAAK,4EACTiP,IAAgB,EACZD,KAC0C,KAApCD,KAAYI,sBACdJ,KAAYK,mBAAgBtxG,GAChCgiG,GAAc,IAAIsO,UAosBCtwG,IAAnB+rG,EAA8B,CAG9B,IAAIuJ,OAAK,EACT,OAAQvJ,GACJ,KAAK,EACL,IAAK,WACDuJ,GAAK,EACL,MACJ,KAAK,EACL,IAAK,QACDA,GAAK,EACL,MACJ,IAAK,SACL,IAAK,SACDA,EAAK,SACL,MACJ,QACIpT,EAAK,wCAA0C6J,EAAiB,+CAExE/J,GAAY+J,eAAiBuJ,EAC7BtT,GAAY8J,mBAA2B,IAAPwJ,GAAsB,WAAPA,CACnD,MACiCt1G,IAA7B4wG,IACA5O,GAAY4O,2BAA6BA,QAEV5wG,IAA/B6wG,IACA7O,GAAY6O,6BAA+BA,QAEZ7wG,IAA/B8wG,IACA9O,GAAY8O,6BAA+BA,EAC3C9O,GAAY+K,iBAAmB/K,GAAY8O,iCAElB9wG,IAAzB+wG,IACA/O,GAAY+O,uBAAyBA,QAEV/wG,IAA3BurG,KAC+B,IAA3BA,GACA5xG,QAAQkvC,KAAK,4GACjBm5D,GAAYuJ,yBAA2BA,GAEvCvK,GACAwS,GAAqBxS,EAE7B,CAwBA,SAAS4I,GAAiBnxG,EAAQ88G,EAAYpP,EAAYnoG,GAOtD,IAAIgqG,EAAmB6B,GADvB7rG,EAAUkqG,EAA0BlqG,IAMpC,OAJAioG,EAAmBxtG,GACnBkvG,GAAmBlvG,EAAQuF,EAAQoG,KAAM4jG,EAAiBX,UACtDkO,GACAvL,GAAqCvxG,EAAQ88G,EAAYpP,EAAY6B,GAClEvvG,CACX,CACA,SAASoxG,GAAqC7rG,GAC1C,OAAOA,EAAQgqG,oBAAsC,IAAjBhqG,EAAQ+pG,KAAiBU,EAAeN,EAChF,CACA,SAAS6B,GAAqCvxG,EAAQ88G,EAAYpP,EAAY6B,GAC1E,IAAawN,EAAKC,EAqBlBvR,KACA,IACI,IAAIlsG,EAAOH,EAAQ09G,GACnB,IACI,IAAK,IAAIG,EAAS/P,EAAS3tG,GAAO29G,EAAWD,EAAO1xF,QAAS2xF,EAAS/xE,KAAM+xE,EAAWD,EAAO1xF,OAAQ,CAClG,IAAI9sB,EAAMy+G,EAASz8G,MACfuD,EAAa1F,OAAOE,yBAAyBs+G,EAAYr+G,GAczD0+G,GAPYzP,GAAcjvG,KAAOivG,EAC/BA,EAAWjvG,GACXuF,EAAW7F,IACPwzG,EACApC,GAGuBvvG,EAAQvB,EAAKuF,GAAY,GACtDm5G,GAEA7+G,OAAOC,eAAeyB,EAAQvB,EAAK0+G,EAC3C,CACJ,CACA,MAAOC,GAASL,EAAM,CAAE57G,MAAOi8G,EAAS,CACxC,QACI,IACQF,IAAaA,EAAS/xE,OAAS6xE,EAAKC,EAAOhP,SAAS+O,EAAGr+G,KAAKs+G,EACpE,CACA,QAAU,GAAIF,EAAK,MAAMA,EAAI57G,KAAO,CACxC,CACJ,CACA,QACIirG,IACJ,CACJ,CAEA,SAASgN,GAAkBlP,EAAO58D,GAC9B,OAAO+vE,GAAqB/C,GAAQpQ,EAAO58D,GAC/C,CACA,SAAS+vE,GAAqBt6G,GAC1B,IArxEYi2G,EACR5J,EAoxEA3nG,EAAS,CACTkE,KAAM5I,EAAK4I,MAIf,OAFI5I,EAAK6vG,WAAa7vG,EAAK6vG,UAAUzyG,OAAS,IAC1CsH,EAAOvC,cAzxEC8zG,EAyxEqBj2G,EAAK6vG,UAxxElCxD,EAAM,GACV4J,EAAK34G,SAAQ,SAAU0rB,IACQ,IAAvBqjF,EAAIvmE,QAAQ9c,IACZqjF,EAAIvvG,KAAKksB,EACjB,IACOqjF,GAmxE0Cr4F,IAAIsmG,KAC9C51G,CACX,CAaA,IAAI61G,GAAc,EAClB,SAASC,KACL/4G,KAAKc,QAAU,gBACnB,CAKA,SAASk4G,GAAKC,GACe,IAArBv9G,UAAUC,QACVspG,EAA+B,2DACnC,IAAI99F,EAAO8xG,EAAU9xG,MAAQ,iBAE7B,OAAO,WACH,IAII+xG,EAHA1lG,EAAO9X,UACPwzG,IAAU4J,GACV/8D,EAAMlF,GAAO1vC,EAAO,aAAe+nG,EAAQ,UAAW+J,GAAW39G,MAH3D0E,KAGsEwT,GAE5E2lG,OAAiBp2G,EACjBq2G,EAAU,IAAIl6G,SAAQ,SAAUC,EAAS6D,GACzC,IAAIq2G,EAAS,EAEb,SAASC,EAAY1O,GAEjB,IAAIp+E,EADJ2sF,OAAiBp2G,EAEjB,IACIypB,EAAMqqB,GAAO1vC,EAAO,aAAe+nG,EAAQ,YAAcmK,IAAUt9D,EAAIh1B,MAAM5sB,KAAK4hD,EAAK6uD,EAC3F,CACA,MAAOrpF,GACH,OAAOve,EAAOue,EAClB,CACAwF,EAAKyF,EACT,CACA,SAAS+sF,EAAWz1G,GAEhB,IAAI0oB,EADJ2sF,OAAiBp2G,EAEjB,IACIypB,EAAMqqB,GAAO1vC,EAAO,aAAe+nG,EAAQ,YAAcmK,IAAUt9D,EAAIy9D,OAAOr/G,KAAK4hD,EAAKj4C,EAC5F,CACA,MAAOyd,GACH,OAAOve,EAAOue,EAClB,CACAwF,EAAKyF,EACT,CACA,SAASzF,EAAKyF,GACV,IAAIA,GAA2B,mBAAbA,EAAI1e,KAKtB,OAAI0e,EAAIma,KACGxnC,EAAQqtB,EAAIvwB,QACvBk9G,EAAiBj6G,QAAQC,QAAQqtB,EAAIvwB,QACf6R,KAAKwrG,EAAaC,GANpC/sF,EAAI1e,KAAKiZ,EAAM/jB,EAOvB,CAjCAk2G,EAAWl2G,EAkCXs2G,OAAYv2G,EAChB,IAkBA,OAjBAq2G,EAAQK,OAAS5iE,GAAO1vC,EAAO,aAAe+nG,EAAQ,aAAa,WAC/D,IACQiK,GACAO,GAAcP,GAElB,IAAIvO,EAAM7uD,EAAI0tD,YAAO1mG,GAEjB42G,EAAiBz6G,QAAQC,QAAQyrG,EAAI3uG,OACzC09G,EAAe7rG,KAAKu3F,EAAMA,GAC1BqU,GAAcC,GAEdT,EAAS,IAAIH,GACjB,CACA,MAAOx3F,GACH23F,EAAS33F,EACb,CACJ,IACO63F,CACX,CACJ,CACA,SAASM,GAAcN,GACW,mBAAnBA,EAAQK,QACfL,EAAQK,QAChB,CAmFA,SAASxP,GAAahuG,GAIlB,OAHyB,IAArBP,UAAUC,QACVspG,GAAK,GArBb,SAAuBhpG,EAAO6sC,GAC1B,OAAI7sC,eAEa8G,IAAb+lC,IAIIsiE,GAAmBnvG,IACZA,EAAM+pG,GAAO/+E,OAAOvtB,IAAIovC,GAK/BsiE,GAAmBnvG,MACrBA,EAAM+pG,IACR6B,EAAO5rG,IACPq6G,GAAWr6G,IACXoyG,GAAgBpyG,GACxB,CAKW29G,CAAc39G,EACzB,CAuDA,SAAS5B,GAAIpB,EAAKgB,EAAKgC,GACnB,GAAyB,IAArBP,UAAUC,QAAiB4vG,GAAgBtyG,GAY/C,GAAImyG,GAAmBnyG,GAAM,CACzB,IAAIizG,EAAMjzG,EAAI+sG,GACWkG,EAAIjlF,OAAOttB,IAAIM,GAEpCiyG,EAAI2N,MAAM5/G,EAAKgC,GAGfiwG,EAAIvB,kBAAkB1wG,EAAKgC,EAAOiwG,EAAI4N,gBAE9C,MACK,GAAIxO,GAAgBryG,GACrBA,EAAIoB,IAAIJ,EAAKgC,QAEZ,GAAIsvG,GAAgBtyG,GACrBA,EAAI0qC,IAAI1pC,OAEP,KAAIoxG,GAAkBpyG,GAWvB,OAAOgsG,GAAK,GAVO,iBAARhrG,IACPA,EAAM+Q,SAAS/Q,EAAK,KACxBm6B,EAAUn6B,GAAO,EAAG,uBAAyBA,EAAM,KACnDgtG,KACIhtG,GAAOhB,EAAI0C,SACX1C,EAAI0C,OAAS1B,EAAM,GACvBhB,EAAIgB,GAAOgC,EACX2rG,IAKJ,KAzCA,CACIX,KACA,IAAI8S,EAAW9/G,EACf,IACI,IAAK,IAAI+/G,KAASD,EACd1/G,GAAIpB,EAAK+gH,EAAOD,EAASC,GACjC,CACA,QACIpS,IACJ,CAEJ,CA+BJ,CAvQAmR,GAAsB1/G,UAAYS,OAAO05B,OAAOrtB,MAAM9M,WAgVtD,IAAI6hF,GAAiB,CACjB++B,cAAc,EACdC,qBAAqB,EACrBC,mBAAmB,GAEvB,SAAS3gH,GAAM+Y,EAAKtY,EAAKgC,EAAO8E,GAG5B,OAFIA,EAAQk5G,cACR1nG,EAAIlY,IAAIJ,EAAKgC,GACVA,CACX,CACA,SAASm+G,GAAWx+G,EAAQmF,EAASs5G,GACjC,IAAKt5G,EAAQo5G,oBAAsBlQ,GAAaruG,GAC5C,OAAOA,EACX,GAAsB,iBAAXA,EACP,OAAOA,EAEX,GAAe,OAAXA,EACA,OAAO,KAEX,GAAIA,aAAkB2G,KAClB,OAAO3G,EACX,GAAIo2G,GAAkBp2G,GAClB,OAAOw+G,GAAWx+G,EAAOjC,MAAOoH,EAASs5G,GAK7C,GAHIpQ,GAAaruG,KA3LbwvG,GADMnyG,EA6LD2C,GA3LE3C,EAAI+sG,GAAOsU,UAElBhP,GAAgBryG,IAGhBsyG,GAAgBtyG,GAFTiM,MAAM+B,KAAKhO,EAAI8B,QAKtBswG,GAAkBpyG,GACXA,EAAIsZ,KAAI,SAAU8Z,EAAGhO,GAAS,OAAOA,CAAO,IAEhD4mF,GAAK,KAiLgC,IAAzBlkG,EAAQk5G,cACI,OAAXr+G,GAAmBy+G,EAAc3gH,IAAIkC,GACrD,OAAOy+G,EAAc1gH,IAAIiC,GAhMjC,IAAc3C,EAkMV,GAAIoyG,GAAkBzvG,IAAWsJ,MAAMwgC,QAAQ9pC,GAAS,CACpD,IAAI2+G,EAAQ/gH,GAAM6gH,EAAez+G,EAAQ,GAAImF,GACzCy5G,EAAQ5+G,EAAO2W,KAAI,SAAUtW,GAAS,OAAOm+G,GAAWn+G,EAAO8E,EAASs5G,EAAgB,IAC5FE,EAAM5+G,OAAS6+G,EAAM7+G,OACrB,IAAK,IAAIF,EAAI,EAAGmsB,EAAI4yF,EAAM7+G,OAAQF,EAAImsB,EAAGnsB,IACrC8+G,EAAM9+G,GAAK++G,EAAM/+G,GACrB,OAAO8+G,CACX,CACA,GAAIhP,GAAgB3vG,IAAW9B,OAAOitF,eAAenrF,KAAYqnC,IAAI5pC,UAAW,CAC5E,IAAoC,IAAhC0H,EAAQm5G,oBAA+B,CACvC,IAAIO,EAAQjhH,GAAM6gH,EAAez+G,EAAQ,IAAIqnC,IAAOliC,GAIpD,OAHAnF,EAAOC,SAAQ,SAAUI,GACrBw+G,EAAM92E,IAAIy2E,GAAWn+G,EAAO8E,EAASs5G,GACzC,IACOI,CACX,CAEI,IAAIC,EAAQlhH,GAAM6gH,EAAez+G,EAAQ,GAAImF,GAI7C,OAHAnF,EAAOC,SAAQ,SAAUI,GACrBy+G,EAAMr/G,KAAK++G,GAAWn+G,EAAO8E,EAASs5G,GAC1C,IACOK,CAEf,CACA,GAAIpP,GAAgB1vG,IAAW9B,OAAOitF,eAAenrF,KAAY8lB,IAAIroB,UAAW,CAC5E,IAAoC,IAAhC0H,EAAQm5G,oBAA+B,CACvC,IAAIS,EAAQnhH,GAAM6gH,EAAez+G,EAAQ,IAAI8lB,IAAO3gB,GAIpD,OAHAnF,EAAOC,SAAQ,SAAUI,EAAOhC,GAC5B0gH,EAAMtgH,IAAIJ,EAAKmgH,GAAWn+G,EAAO8E,EAASs5G,GAC9C,IACOM,CACX,CAEI,IAAIC,EAAQphH,GAAM6gH,EAAez+G,EAAQ,CAAC,EAAGmF,GAI7C,OAHAnF,EAAOC,SAAQ,SAAUI,EAAOhC,GAC5B2gH,EAAM3gH,GAAOmgH,GAAWn+G,EAAO8E,EAASs5G,EAC5C,IACOO,CAEf,CAEA,IAAIhQ,EAAMpxG,GAAM6gH,EAAez+G,EAAQ,CAAC,EAAGmF,GAI3C,OAHA6kG,EAAmBhqG,GAAQC,SAAQ,SAAU5B,GACzC2wG,EAAI3wG,GAAOmgH,GAAWx+G,EAAO3B,GAAM8G,EAASs5G,EAChD,IACOzP,CACX,CACA,SAASiQ,GAAKj/G,EAAQmF,GAUlB,IAAIs5G,EAGJ,MAXuB,kBAAZt5G,IACPA,EAAU,CAAEk5G,aAAcl5G,IACzBA,IACDA,EAAUm6E,IACdn6E,EAAQk5G,kBACqBl3G,IAAzBhC,EAAQk5G,cAC4B,IAA9Bl5G,EAAQo5G,mBACiB,IAAzBp5G,EAAQk5G,aAEdl5G,EAAQk5G,eACRI,EAAgB,IAAI34F,KACjB04F,GAAWx+G,EAAQmF,EAASs5G,EACvC,CAsCA,SAASS,GAAYjkE,EAAQ0qD,QACT,IAAZA,IAAsBA,OAAUx+F,GACpCkkG,KACA,IACI,OAAOpwD,EAAOv7C,MAAMimG,EACxB,CACA,QACIqG,IACJ,CACJ,CAEA,SAASmT,GAAK9jB,EAAWsW,EAAMN,GAC3B,OAAyB,IAArBvxG,UAAUC,QAAiB4xG,GAAwB,iBAATA,EA8BlD,SAAqBtW,EAAWtyD,GAG5B,IAAI80E,EACA7O,EAAM,IAAI1rG,SAAQ,SAAUC,EAAS6D,GACrC,IAAIg4G,EAAWC,GAAMhkB,EAAW93F,EAASq6B,EAASA,EAAS,CAAC,EAAGmL,GAAO,CAAE4yE,QAASv0G,KACjFy2G,EAAS,WACLuB,IACAh4G,EAAO,iBACX,CACJ,IAEA,OADA4nG,EAAI6O,OAASA,EACN7O,CACX,CA1CesQ,CAAYjkB,EAAWsW,GAC3B0N,GAAMhkB,EAAWsW,EAAMN,GAAQ,CAAC,EAC3C,CACA,SAASgO,GAAMhkB,EAAW2gB,EAAQjzE,GAC9B,IAAIw2E,EACwB,iBAAjBx2E,EAAKsiC,UACZk0C,EAAgB1zG,YAAW,WACvB,IAAKuzG,EAAShV,GAAOmP,WAAY,CAC7B6F,IACA,IAAIr+G,EAAQ,IAAIwJ,MAAM,gBACtB,IAAIw+B,EAAK4yE,QAGL,MAAM56G,EAFNgoC,EAAK4yE,QAAQ56G,EAGrB,CACJ,GAAGgoC,EAAKsiC,UAEZtiC,EAAKx9B,KAAOw9B,EAAKx9B,MAAQ,QAAU29F,IACnC,IAAIgT,EAAe5H,GAAavrE,EAAKx9B,KAAkBywG,GACnDoD,EAAW7H,IAAQ,SAAUhuG,GACzB8xF,MACA9xF,EAAEghB,UACEg1F,GACA/uG,aAAa+uG,GACjBrD,IAER,GAAGnzE,GACH,OAAOq2E,CACX,CAgBA,SAASI,GAAO5/G,GACZ,OAAOA,EAAOwqG,EAClB,CACA,SAASqV,GAAcz9E,GACnB,MAAsB,iBAARA,GAAmC,iBAARA,GAAmC,iBAARA,CACxE,CAGA,IAAIivE,GAAmB,CACnBnzG,IAAK,SAAU8B,EAAQ2L,GACnB,GAAIA,IAAS6+F,GAAkB,gBAAT7+F,GAA0BA,IAASyhG,EACrD,OAAO,EACX,IAAIsD,EAAMkP,GAAO5/G,GAIjB,OAAI6/G,GAAcl0G,GACP+kG,EAAIxyG,IAAIyN,GACZA,KAAQ3L,CACnB,EACA7B,IAAK,SAAU6B,EAAQ2L,GACnB,GAAIA,IAAS6+F,GAAkB,gBAAT7+F,GAA0BA,IAASyhG,EACrD,OAAOptG,EAAO2L,GAClB,IAAI+kG,EAAMkP,GAAO5/G,GACb0rG,EAAagF,EAAIjlF,OAAOttB,IAAIwN,GAChC,GAAI+/F,aAAsBjB,EAAM,CAC5B,IAAIhjG,EAASikG,EAAWvtG,MAOxB,YANeoJ,IAAXE,GAIAipG,EAAIxyG,IAAIyN,GAELlE,CACX,CAKA,OAFIo4G,GAAcl0G,IACd+kG,EAAIxyG,IAAIyN,GACL3L,EAAO2L,EAClB,EACA9M,IAAK,SAAUmB,EAAQ2L,EAAMlL,GACzB,QAAKo/G,GAAcl0G,KAEnB9M,GAAImB,EAAQ2L,EAAMlL,IACX,EACX,EACAq/G,eAAgB,SAAU9/G,EAAQ2L,GAC9B,QAAKk0G,GAAcl0G,KAETi0G,GAAO5/G,GACb6tD,OAAOliD,IACJ,EACX,EACAvM,QAAS,SAAUY,GAGf,OAFU4/G,GAAO5/G,GACb+/G,SAASxU,iBACN/6B,QAAQpxE,QAAQY,EAC3B,EACAggH,kBAAmB,SAAUhgH,GAEzB,OADAypG,EAAK,gDACE,CACX,GAQJ,SAASsM,GAAgBkK,GACrB,YAAsC14G,IAA/B04G,EAAcC,cAA8BD,EAAcC,aAAa//G,OAAS,CAC3F,CACA,SAASi2G,GAAoB6J,EAAertD,GACxC,IAAIstD,EAAeD,EAAcC,eAAiBD,EAAcC,aAAe,IAE/E,OADAA,EAAargH,KAAK+yD,GACX+2C,GAAK,WACR,IAAI3vB,EAAMkmC,EAAar3E,QAAQ+pB,IAClB,IAATonB,GACAkmC,EAAahpE,OAAO8iC,EAAK,EACjC,GACJ,CACA,SAASg8B,GAAgBiK,EAAex+F,GACpC,IAAIm2F,EAAQlF,KACZ,IAGI,IADA,IAAIwN,EAAe/S,EAAU8S,EAAcC,cAAgB,IAClDjgH,EAAI,EAAGmsB,EAAI8zF,EAAa//G,OAAQF,EAAImsB,IAEzCwM,IADAnX,EAASy+F,EAAajgH,GAAGwhB,KACJA,EAAOlO,KAAM,+DAC7BkO,GAHuCxhB,KAMhD,OAAOwhB,CACX,CACA,QACIsxF,GAAa6E,EACjB,CACJ,CAEA,SAAS3B,GAAakK,GAClB,YAAsC54G,IAA/B44G,EAAWC,iBAAiCD,EAAWC,gBAAgBjgH,OAAS,CAC3F,CACA,SAASm2G,GAAiB6J,EAAYvtD,GAClC,IAAIytD,EAAYF,EAAWC,kBAAoBD,EAAWC,gBAAkB,IAE5E,OADAC,EAAUxgH,KAAK+yD,GACR+2C,GAAK,WACR,IAAI3vB,EAAMqmC,EAAUx3E,QAAQ+pB,IACf,IAATonB,GACAqmC,EAAUnpE,OAAO8iC,EAAK,EAC9B,GACJ,CACA,SAASk8B,GAAgBiK,EAAY1+F,GACjC,IAAIm2F,EAAQlF,KACR2N,EAAYF,EAAWC,gBAC3B,GAAKC,EAAL,CAGA,IAAK,IAAIpgH,EAAI,EAAGmsB,GADhBi0F,EAAYA,EAAU9vG,SACQpQ,OAAQF,EAAImsB,EAAGnsB,IACzCogH,EAAUpgH,GAAGwhB,GAEjBsxF,GAAa6E,EALH,CAMd,CAEA,IACIhH,GAAa,CACbzyG,IAAK,SAAU6B,EAAQ2L,GACnB,OAAIA,IAAS6+F,EACFxqG,EAAOwqG,GACL,WAAT7+F,EACO3L,EAAOwqG,GAAO8V,iBACL,iBAAT30G,EACA40G,GAAgBpiH,IAAIQ,KAAKqB,EAAQ2L,GAExB,iBAATA,GAAsB0oB,MAAM1oB,GAGnC40G,GAAgB7hH,eAAeiN,GACxB40G,GAAgB50G,GAEpB3L,EAAO2L,GALH40G,GAAgBpiH,IAAIQ,KAAKqB,EAAQwP,SAAS7D,GAMzD,EACA9M,IAAK,SAAUmB,EAAQ2L,EAAMlL,GAczB,MAba,WAATkL,GACA3L,EAAOwqG,GAAOgW,eAAe//G,GAEb,iBAATkL,GACP40G,GAAgB1hH,IAAIF,KAAKqB,EAAQ2L,EAAMlL,GAEvB,iBAATkL,GAAqB0oB,MAAM1oB,GAClC3L,EAAO2L,GAAQlL,EAIf8/G,GAAgB1hH,IAAIF,KAAKqB,EAAQwP,SAAS7D,GAAOlL,IAE9C,CACX,EACAu/G,kBAAmB,SAAUhgH,GAEzB,OADAypG,EAAK,uCACE,CACX,GAgBAkH,GAA+C,WAC/C,SAASA,EAA8BhlG,EAAMijG,EAAU6B,GACnDjsG,KAAKisG,MAAQA,EACbjsG,KAAKinB,OAAS,GACdjnB,KAAKgrG,WAAQjoG,EACb/C,KAAKi8G,gBAAkB,EACvBj8G,KAAKioG,KAAO,IAAIhC,EAAK9+F,GAAQ,mBAAqB29F,KAClD9kG,KAAKoqG,SAAW,SAAU8R,EAAMC,GAAQ,OAAO/R,EAAS8R,EAAMC,EAAMh1G,EAAO,OAAS,CACxF,CAwJA,OAvJAglG,EAA8B9yG,UAAU63G,aAAe,SAAUj1G,GAC7D,YAAsB8G,IAAlB/C,KAAKmxG,SACEnxG,KAAKmxG,SAASl1G,GAClBA,CACX,EACAkwG,EAA8B9yG,UAAU+iH,cAAgB,SAAUn1F,GAC9D,YAAsBlkB,IAAlB/C,KAAKmxG,UAA0BlqF,EAAOtrB,OAAS,EACxCsrB,EAAO1U,IAAIvS,KAAKmxG,UACpBlqF,CACX,EACAklF,EAA8B9yG,UAAUs4G,UAAY,SAAUvjD,GAC1D,OAAOwjD,GAAoB5xG,KAAMouD,EACrC,EACA+9C,EAA8B9yG,UAAUw4G,QAAU,SAAUjL,EAAUhkG,GAalE,YAZwB,IAApBA,IAA8BA,GAAkB,GAChDA,GACAgkG,EAAS,CACL/rG,OAAQmF,KAAKgrG,MACbj8F,KAAM,SACNsP,MAAO,EACPg+F,MAAOr8G,KAAKinB,OAAOlb,QACnBuwG,WAAYt8G,KAAKinB,OAAOtrB,OACxB4gH,QAAS,GACTC,aAAc,IAGf1K,GAAiB9xG,KAAM4mG,EAClC,EACAuF,EAA8B9yG,UAAUyiH,eAAiB,WAErD,OADA97G,KAAKioG,KAAKlB,iBACH/mG,KAAKinB,OAAOtrB,MACvB,EACAwwG,EAA8B9yG,UAAU2iH,eAAiB,SAAUS,GAC/D,GAAyB,iBAAdA,GAA0BA,EAAY,EAC7C,MAAM,IAAIt2G,MAAM,8BAAgCs2G,GACpD,IAAIC,EAAgB18G,KAAKinB,OAAOtrB,OAChC,GAAI8gH,IAAcC,EAEb,GAAID,EAAYC,EAAe,CAEhC,IADA,IAAIC,EAAW,IAAIz3G,MAAMu3G,EAAYC,GAC5BjhH,EAAI,EAAGA,EAAIghH,EAAYC,EAAejhH,IAC3CkhH,EAASlhH,QAAKsH,EAClB/C,KAAKssG,gBAAgBoQ,EAAe,EAAGC,EAC3C,MAEI38G,KAAKssG,gBAAgBmQ,EAAWC,EAAgBD,EACxD,EACAtQ,EAA8B9yG,UAAUujH,kBAAoB,SAAUC,EAAWlnD,GAC7E,GAAIknD,IAAc78G,KAAKi8G,gBACnB,MAAM,IAAI91G,MAAM,6FACpBnG,KAAKi8G,iBAAmBtmD,CAC5B,EACAw2C,EAA8B9yG,UAAUizG,gBAAkB,SAAUjuF,EAAOy+F,EAAaH,GACpF,IAAIv6G,EAAQpC,KACZ0uG,GAAoC1uG,KAAKioG,MACzC,IAAItsG,EAASqE,KAAKinB,OAAOtrB,OAezB,QAdcoH,IAAVsb,EACAA,EAAQ,EACHA,EAAQ1iB,EACb0iB,EAAQ1iB,EACH0iB,EAAQ,IACbA,EAAQjZ,KAAK8F,IAAI,EAAGvP,EAAS0iB,IAE7By+F,EADqB,IAArBphH,UAAUC,OACIA,EAAS0iB,EAClBy+F,QACS,EAEA13G,KAAK8F,IAAI,EAAG9F,KAAKm/B,IAAIu4E,EAAanhH,EAAS0iB,SAC5Ctb,IAAb45G,IACAA,EAAW9X,GACX0M,GAAgBvxG,MAAO,CACvB,IAAIid,EAASu0F,GAAgBxxG,KAAM,CAC/BnF,OAAQmF,KAAKgrG,MACbj8F,KAAM,SACNsP,MAAOA,EACPm+F,aAAcM,EACdT,MAAOM,IAEX,IAAK1/F,EACD,OAAO4nF,EACXiY,EAAc7/F,EAAOu/F,aACrBG,EAAW1/F,EAAOo/F,KACtB,CACAM,EAA+B,IAApBA,EAAShhH,OAAeghH,EAAWA,EAASpqG,KAAI,SAAU4U,GAAK,OAAO/kB,EAAMgoG,SAASjjF,OAAGpkB,EAAY,IAK/G,IAAI6nG,EAAM5qG,KAAK+8G,sBAAsB1+F,EAAOy+F,EAAaH,GAGzD,OAFoB,IAAhBG,GAAyC,IAApBH,EAAShhH,QAC9BqE,KAAKg9G,kBAAkB3+F,EAAOs+F,EAAU/R,GACrC5qG,KAAKo8G,cAAcxR,EAC9B,EACAuB,EAA8B9yG,UAAU0jH,sBAAwB,SAAU1+F,EAAOy+F,EAAaH,GAC1F,IAAIhpF,EACJ,GAAIgpF,EAAShhH,OA7JC,IA8JV,OAAQg4B,EAAK3zB,KAAKinB,QAAQyrB,OAAOp3C,MAAMq4B,EAAIg1E,EAAS,CAACtqF,EAAOy+F,GAAcH,IAG1E,IAAI/R,EAAM5qG,KAAKinB,OAAOlb,MAAMsS,EAAOA,EAAQy+F,GAI3C,OAHA98G,KAAKinB,OAASjnB,KAAKinB,OACdlb,MAAM,EAAGsS,GACT/b,OAAOq6G,EAAU38G,KAAKinB,OAAOlb,MAAMsS,EAAQy+F,IACzClS,CAEf,EACAuB,EAA8B9yG,UAAU4jH,uBAAyB,SAAU5+F,EAAO4lD,EAAUynC,GACxF,IAAIgF,GAAa1wG,KAAKisG,QAxwCnB,EAywCCiR,EAASzL,GAAazxG,MACtBid,EAASigG,GAAUxM,EACjB,CACE71G,OAAQmF,KAAKgrG,MACbj8F,KAAM,SACNsP,MAAOA,EACP4lD,SAAUA,EACVynC,SAAUA,GAEZ,KAKN1rG,KAAKioG,KAAKjB,gBACNkW,GACAxL,GAAgB1xG,KAAMid,EAG9B,EACAkvF,EAA8B9yG,UAAU2jH,kBAAoB,SAAU3+F,EAAOg+F,EAAOE,GAChF,IAAI7L,GAAa1wG,KAAKisG,QA9xCnB,EA+xCCiR,EAASzL,GAAazxG,MACtBid,EAASigG,GAAUxM,EACjB,CACE71G,OAAQmF,KAAKgrG,MACbj8F,KAAM,SACNsP,MAAOA,EACPk+F,QAASA,EACTF,MAAOA,EACPG,aAAcD,EAAQ5gH,OACtB2gH,WAAYD,EAAM1gH,QAEpB,KAGNqE,KAAKioG,KAAKjB,gBAENkW,GACAxL,GAAgB1xG,KAAMid,EAG9B,EACOkvF,CACX,CAjKkD,GAkK9C4P,GAAkB,CAClBpK,UAAW,SAAUvjD,GACjB,OAAOpuD,KAAKgmG,GAAO2L,UAAUvjD,EACjC,EACAyjD,QAAS,SAAUjL,EAAUhkG,GAGzB,YAFwB,IAApBA,IAA8BA,GAAkB,GAC1C5C,KAAKgmG,GACJ6L,QAAQjL,EAAUhkG,EACjC,EACAgvD,MAAO,WACH,OAAO5xD,KAAK0yC,OAAO,EACvB,EACAl6C,QAAS,SAAUmkH,GACf,IAAIzQ,EAAMlsG,KAAKgmG,GACf,OAAOkG,EAAII,gBAAgB,EAAGJ,EAAIjlF,OAAOtrB,OAAQghH,EACrD,EAKA9B,KAAM,WACF,OAAO76G,KAAK+L,OAChB,EACAgmG,OAAQ,WAEJ,OAAO/xG,KAAK66G,MAChB,EAOAnoE,OAAQ,SAAUr0B,EAAOy+F,GAErB,IADA,IAAIH,EAAW,GACNjpF,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpCipF,EAASjpF,EAAK,GAAKh4B,UAAUg4B,GAEjC,IAAIw4E,EAAMlsG,KAAKgmG,GACf,OAAQtqG,UAAUC,QACd,KAAK,EACD,MAAO,GACX,KAAK,EACD,OAAOuwG,EAAII,gBAAgBjuF,GAC/B,KAAK,EACD,OAAO6tF,EAAII,gBAAgBjuF,EAAOy+F,GAE1C,OAAO5Q,EAAII,gBAAgBjuF,EAAOy+F,EAAaH,EACnD,EACArQ,gBAAiB,SAAUjuF,EAAOy+F,EAAaH,GAE3C,OADU38G,KAAKgmG,GACJsG,gBAAgBjuF,EAAOy+F,EAAaH,EACnD,EACAthH,KAAM,WAEF,IADA,IAAIi9E,EAAQ,GACH5kD,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpC4kD,EAAM5kD,GAAMh4B,UAAUg4B,GAE1B,IAAIw4E,EAAMlsG,KAAKgmG,GAEf,OADAkG,EAAII,gBAAgBJ,EAAIjlF,OAAOtrB,OAAQ,EAAG28E,GACnC4zB,EAAIjlF,OAAOtrB,MACtB,EACA+rB,IAAK,WACD,OAAO1nB,KAAK0yC,OAAOttC,KAAK8F,IAAIlL,KAAKgmG,GAAO/+E,OAAOtrB,OAAS,EAAG,GAAI,GAAG,EACtE,EACA6P,MAAO,WACH,OAAOxL,KAAK0yC,OAAO,EAAG,GAAG,EAC7B,EACAlrB,QAAS,WAEL,IADA,IAAI8wD,EAAQ,GACH5kD,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpC4kD,EAAM5kD,GAAMh4B,UAAUg4B,GAE1B,IAAIw4E,EAAMlsG,KAAKgmG,GAEf,OADAkG,EAAII,gBAAgB,EAAG,EAAGh0B,GACnB4zB,EAAIjlF,OAAOtrB,MACtB,EACA29E,QAAS,WAOL,IAAI6jC,EAAQn9G,KAAK+L,QACjB,OAAOoxG,EAAM7jC,QAAQh+E,MAAM6hH,EAAOzhH,UACtC,EACA88E,KAAM,SAAU4kC,GAMZ,IAAID,EAAQn9G,KAAK+L,QACjB,OAAOoxG,EAAM3kC,KAAKl9E,MAAM6hH,EAAOzhH,UACnC,EACA2tD,OAAQ,SAAUptD,GACd,IAAIiwG,EAAMlsG,KAAKgmG,GACXxwB,EAAM02B,EAAIkQ,cAAclQ,EAAIjlF,QAAQod,QAAQpoC,GAChD,OAAIu5E,GAAO,IACPx1E,KAAK0yC,OAAO8iC,EAAK,IACV,EAGf,EACA77E,IAAK,SAAU0kB,GACX,IAAI6tF,EAAMlsG,KAAKgmG,GACf,GAAIkG,EAAK,CACL,GAAI7tF,EAAQ6tF,EAAIjlF,OAAOtrB,OAEnB,OADAuwG,EAAIjE,KAAKlB,iBACFmF,EAAIgF,aAAahF,EAAIjlF,OAAO5I,IAEvC3hB,QAAQkvC,KAAK,gDAAkDvtB,EAAQ,4BAA8B6tF,EAAIjlF,OAAOtrB,OAAS,iFAC7H,CAEJ,EACAtB,IAAK,SAAUgkB,EAAO4lD,GAClB,IAAIioC,EAAMlsG,KAAKgmG,GACX/+E,EAASilF,EAAIjlF,OACjB,GAAI5I,EAAQ4I,EAAOtrB,OAAQ,CAEvB+yG,GAAoCxC,EAAIjE,MACxC,IAAIyD,EAAWzkF,EAAO5I,GACtB,GAAIkzF,GAAgBrF,GAAM,CACtB,IAAIjvF,EAASu0F,GAAgBtF,EAAK,CAC9Bn9F,KAAM,SACNlU,OAAQqxG,EAAIlB,MACZ3sF,MAAOA,EACP4lD,SAAUA,IAEd,IAAKhnD,EACD,OACJgnD,EAAWhnD,EAAOgnD,QACtB,EACAA,EAAWioC,EAAI9B,SAASnmC,EAAUynC,MACPA,IAEvBzkF,EAAO5I,GAAS4lD,EAChBioC,EAAI+Q,uBAAuB5+F,EAAO4lD,EAAUynC,GAEpD,KACK,IAAIrtF,IAAU4I,EAAOtrB,OAMtB,MAAM,IAAIwK,MAAM,qCAAuCkY,EAAQ,mBAAqB4I,EAAOtrB,QAJ3FuwG,EAAII,gBAAgBjuF,EAAO,EAAG,CAAC4lD,GAKnC,CACJ,GAEJ,CACI,SACA,OACA,WACA,UACA,OACA,cACA,QACA,WACA,kBACFpoE,SAAQ,SAAUwhH,GAEyB,mBAA9Bn4G,MAAM7L,UAAUgkH,KAG3BtB,GAAgBsB,GAAY,WACxB,IAAInR,EAAMlsG,KAAKgmG,GACfkG,EAAIjE,KAAKlB,iBACT,IAAIuW,EAAiBpR,EAAIkQ,cAAclQ,EAAIjlF,QAC3C,OAAOq2F,EAAeD,GAAU/hH,MAAMgiH,EAAgB5hH,UAC1D,EACJ,IACA,CAAC,QAAS,SAAU,OAAQ,YAAa,UAAW,UAAW,MAAO,QAAQG,SAAQ,SAAUwhH,GAEnD,mBAA9Bn4G,MAAM7L,UAAUgkH,KAG3BtB,GAAgBsB,GAAY,SAAU71G,EAAU+5F,GAC5C,IAAIn/F,EAAQpC,KACRksG,EAAMlsG,KAAKgmG,GAGf,OAFAkG,EAAIjE,KAAKlB,iBACYmF,EAAIkQ,cAAclQ,EAAIjlF,QACrBo2F,IAAU,SAAUj7F,EAAS/D,GAC/C,OAAO7W,EAASrN,KAAKonG,EAASn/E,EAAS/D,EAAOjc,EAClD,GAAGm/F,EACP,EACJ,IACA,CAAC,SAAU,eAAe1lG,SAAQ,SAAUwhH,GACxCtB,GAAgBsB,GAAY,WACxB,IAAIj7G,EAAQpC,KACRksG,EAAMlsG,KAAKgmG,GACfkG,EAAIjE,KAAKlB,iBAET,IAAIv/F,EAAW9L,UAAU,GAKzB,OAJAA,UAAU,GAAK,SAAU6hH,EAAaC,EAAcn/F,GAEhD,OADAm/F,EAAetR,EAAIgF,aAAasM,GACzBh2G,EAAS+1G,EAAaC,EAAcn/F,EAAOjc,EACtD,EACO8pG,EAAIjlF,OAAOo2F,GAAU/hH,MAAM4wG,EAAIjlF,OAAQvrB,UAClD,CACJ,IACA,IAKIi4B,GALA8pF,GAAkClY,EAA0B,gCAAiC4G,IACjG,SAASd,GAAkB3F,GACvB,OAAO5I,EAAS4I,IAAU+X,GAAgC/X,EAAMM,GACpE,CAGA,IAqbI0X,GArbAC,GAAsB,CAAC,EAGvBlR,GAA+B,WAC/B,SAASA,EAAcmR,EAAaxT,EAAUjjG,GAQ1C,QAPiB,IAAbijG,IAAuBA,EAAWJ,QACzB,IAAT7iG,IAAmBA,EAAO,iBAAmB29F,KACjD9kG,KAAKoqG,SAAWA,EAChBpqG,KAAKmH,KAAOA,EACZnH,KAAK2zB,IAAMgqF,GACX39G,KAAK69G,UAAY/V,EAAW9nG,KAAKmH,KAAO,WACxCnH,KAAK9G,OAAO8+F,aAAe,MACR,mBAARt2E,IACP,MAAM,IAAIvb,MAAM,sGAEpBnG,KAAK89G,MAAQ,IAAIp8F,IACjB1hB,KAAK+9G,QAAU,IAAIr8F,IACnB1hB,KAAKqhG,MAAMuc,EACf,CA8ZA,OA7ZAnR,EAAcpzG,UAAU2kH,KAAO,SAAU/jH,GACrC,OAAO+F,KAAK89G,MAAMpkH,IAAIO,EAC1B,EACAwyG,EAAcpzG,UAAUK,IAAM,SAAUO,GACpC,IAAImI,EAAQpC,KACZ,IAAK+kG,GAAYqK,mBACb,OAAOpvG,KAAKg+G,KAAK/jH,GACrB,IAAIg/F,EAAQj5F,KAAK+9G,QAAQpkH,IAAIM,GAC7B,IAAKg/F,EAAO,CAER,IAAIglB,EAAYhlB,EAAQ,IAAI6S,GAAgB9rG,KAAKg+G,KAAK/jH,GAAMiwG,EAAmBlqG,KAAKmH,KAAO,IAAM2+F,EAAa7rG,GAAO,KAAK,GAC1H+F,KAAK+9G,QAAQ1jH,IAAIJ,EAAKgkH,GACtBpX,GAAmBoX,GAAU,WAAc,OAAO77G,EAAM27G,QAAQr4F,OAAOzrB,EAAM,GACjF,CACA,OAAOg/F,EAAMt/F,KACjB,EACA8yG,EAAcpzG,UAAUgB,IAAM,SAAUJ,EAAKgC,GACzC,IAAIiiH,EAASl+G,KAAKg+G,KAAK/jH,GACvB,GAAIs3G,GAAgBvxG,MAAO,CACvB,IAAIid,EAASu0F,GAAgBxxG,KAAM,CAC/B+O,KAAMmvG,EAAS,SAAW,MAC1BrjH,OAAQmF,KACRikE,SAAUhoE,EACVkL,KAAMlN,IAEV,IAAKgjB,EACD,OAAOjd,KACX/D,EAAQghB,EAAOgnD,QACnB,CAOA,OANIi6C,EACAl+G,KAAKm+G,aAAalkH,EAAKgC,GAGvB+D,KAAKo+G,UAAUnkH,EAAKgC,GAEjB+D,IACX,EACAysG,EAAcpzG,UAAUqsB,OAAS,SAAUzrB,GACvC,IAAImI,EAAQpC,KAEZ,GADA0uG,GAAoC1uG,KAAK69G,WACrCtM,GAAgBvxG,SACZid,EAASu0F,GAAgBxxG,KAAM,CAC/B+O,KAAM,SACNlU,OAAQmF,KACRmH,KAAMlN,KAGN,OAAO,EAEf,GAAI+F,KAAKg+G,KAAK/jH,GAAM,CAChB,IACIijH,EAASzL,GAAazxG,MACtBid,EAASigG,EACP,CACEnuG,KAAM,SACNlU,OAAQmF,KACR0rG,SAAU1rG,KAAK89G,MAAMnkH,IAAIM,GAAKgC,MAC9BkL,KAAMlN,GAER,KAcN,OAXA6gH,IAAY,WACR14G,EAAMy7G,UAAU7W,gBAChB5kG,EAAMi8G,mBAAmBpkH,GAAK,GACbmI,EAAM07G,MAAMnkH,IAAIM,GACtBq3G,iBAAYvuG,GACvBX,EAAM07G,MAAMp4F,OAAOzrB,EACvB,IACIijH,GACAxL,GAAgB1xG,KAAMid,IAGnB,CACX,CACA,OAAO,CACX,EACAwvF,EAAcpzG,UAAUglH,mBAAqB,SAAUpkH,EAAKgC,GACxD,IAAIg9F,EAAQj5F,KAAK+9G,QAAQpkH,IAAIM,GACzBg/F,GACAA,EAAMqY,YAAYr1G,EAE1B,EACAwwG,EAAcpzG,UAAU8kH,aAAe,SAAUlkH,EAAKgqE,GAClD,IAAIijC,EAAalnG,KAAK89G,MAAMnkH,IAAIM,GAEhC,IADAgqE,EAAWijC,EAAWkK,gBAAgBntC,MACrB8gC,GAAYsM,UAAW,CACpC,IACI6L,EAASzL,GAAazxG,MACtBid,EAASigG,EACP,CACEnuG,KAAM,SACNlU,OAAQmF,KACR0rG,SAAUxE,EAAWjrG,MACrBkL,KAAMlN,EACNgqE,SAAUA,GAEZ,KAGNijC,EAAWoK,YAAYrtC,GACnBi5C,GACAxL,GAAgB1xG,KAAMid,EAG9B,CACJ,EACAwvF,EAAcpzG,UAAU+kH,UAAY,SAAUnkH,EAAKgqE,GAC/C,IAAI7hE,EAAQpC,KACZ0uG,GAAoC1uG,KAAK69G,WACzC/C,IAAY,WACR,IAAI5T,EAAa,IAAI4E,GAAgB7nC,EAAU7hE,EAAMgoG,SAAUhoG,EAAM+E,KAAO,IAAM2+F,EAAa7rG,IAAM,GACrGmI,EAAM07G,MAAMzjH,IAAIJ,EAAKitG,GACrBjjC,EAAWijC,EAAWjrG,MACtBmG,EAAMi8G,mBAAmBpkH,GAAK,GAC9BmI,EAAMy7G,UAAU7W,eACpB,IACA,IACIkW,EAASzL,GAAazxG,MAWtBk9G,GACAxL,GAAgB1xG,KAXPk9G,EACP,CACEnuG,KAAM,MACNlU,OAAQmF,KACRmH,KAAMlN,EACNgqE,SAAUA,GAEZ,KAOV,EACAwoC,EAAcpzG,UAAUM,IAAM,SAAUM,GACpC,OAAI+F,KAAKtG,IAAIO,GACF+F,KAAKkxG,aAAalxG,KAAK89G,MAAMnkH,IAAIM,GAAKN,OAC1CqG,KAAKkxG,kBAAanuG,EAC7B,EACA0pG,EAAcpzG,UAAU63G,aAAe,SAAUj1G,GAC7C,YAAsB8G,IAAlB/C,KAAKmxG,SACEnxG,KAAKmxG,SAASl1G,GAElBA,CACX,EACAwwG,EAAcpzG,UAAU0B,KAAO,WAE3B,OADAiF,KAAK69G,UAAU9W,iBACR/mG,KAAK89G,MAAM/iH,MACtB,EACA0xG,EAAcpzG,UAAU4tB,OAAS,WAC7B,IAAIpuB,EAAOmH,KACPjF,EAAOiF,KAAKjF,OAChB,OAAOujH,GAAa,CAChBv3F,KAAM,WACF,IAAIyxF,EAAKz9G,EAAKgsB,OAAQ4f,EAAO6xE,EAAG7xE,KAAM1qC,EAAQu8G,EAAGv8G,MACjD,MAAO,CACH0qC,KAAMA,EACN1qC,MAAO0qC,OAAO5jC,EAAYlK,EAAKc,IAAIsC,GAE3C,GAER,EACAwwG,EAAcpzG,UAAUkjC,QAAU,WAC9B,IAAI1jC,EAAOmH,KACPjF,EAAOiF,KAAKjF,OAChB,OAAOujH,GAAa,CAChBv3F,KAAM,WACF,IAAIyxF,EAAKz9G,EAAKgsB,OAAQ4f,EAAO6xE,EAAG7xE,KAAM1qC,EAAQu8G,EAAGv8G,MACjD,MAAO,CACH0qC,KAAMA,EACN1qC,MAAO0qC,OAAO5jC,EAAY,CAAC9G,EAAOpD,EAAKc,IAAIsC,IAEnD,GAER,EACAwwG,EAAcpzG,WAAWs6B,GAAKqyE,EAAO9sG,OAAOC,WAAa,WACrD,OAAO6G,KAAKu8B,SAChB,EACAkwE,EAAcpzG,UAAUwC,QAAU,SAAU2L,EAAU+5F,GAClD,IAAI0H,EAAKuP,EACT,IACI,IAAK,IAAI+F,EAAK7V,EAAS1oG,MAAOw+G,EAAKD,EAAGx3F,QAASy3F,EAAG73E,KAAM63E,EAAKD,EAAGx3F,OAAQ,CACpE,IAAI03F,EAAK7c,EAAO4c,EAAGviH,MAAO,GAAIhC,EAAMwkH,EAAG,GAAIxiH,EAAQwiH,EAAG,GACtDj3G,EAASrN,KAAKonG,EAAStlG,EAAOhC,EAAK+F,KACvC,CACJ,CACA,MAAOwpG,GAASP,EAAM,CAAEtsG,MAAO6sG,EAAS,CACxC,QACI,IACQgV,IAAOA,EAAG73E,OAAS6xE,EAAK+F,EAAG9U,SAAS+O,EAAGr+G,KAAKokH,EACpD,CACA,QAAU,GAAItV,EAAK,MAAMA,EAAItsG,KAAO,CACxC,CACJ,EAEA8vG,EAAcpzG,UAAUgoG,MAAQ,SAAUnyE,GACtC,IAAI9sB,EAAQpC,KA4BZ,OA3BIsrG,GAAgBp8E,KAChBA,EAAQA,EAAM2rF,QAElBC,IAAY,WACR,IAAIr1F,EAAO4mF,IAAuB,GAClC,IACQnM,EAAchxE,GACd02E,EAAmB12E,GAAOrzB,SAAQ,SAAU5B,GACxC,OAAOmI,EAAM/H,IAAIJ,EAAKi1B,EAAMj1B,GAChC,IACKiL,MAAMwgC,QAAQxW,GACnBA,EAAMrzB,SAAQ,SAAU28G,GACpB,IAAI+F,EAAK3c,EAAO4W,EAAI,GAAIv+G,EAAMskH,EAAG,GAAItiH,EAAQsiH,EAAG,GAChD,OAAOn8G,EAAM/H,IAAIJ,EAAKgC,EAC1B,IACKwpG,EAASv2E,IACVA,EAAM91B,cAAgBsoB,KACtBujF,EAAK,yDAA2D/1E,EAAM91B,YAAY+N,MACtF+nB,EAAMrzB,SAAQ,SAAUI,EAAOhC,GAAO,OAAOmI,EAAM/H,IAAIJ,EAAKgC,EAAQ,KAE/DizB,SACL+1E,EAAK,8BAAgC/1E,EAC7C,CACA,QACIq9E,GAAqB9mF,EACzB,CACJ,IACOzlB,IACX,EACAysG,EAAcpzG,UAAUu4D,MAAQ,WAC5B,IAAIxvD,EAAQpC,KACZ86G,IAAY,WACRjL,IAAU,WACN,IAAI0I,EAAKC,EACT,IACI,IAAK,IAAI+F,EAAK7V,EAAStmG,EAAMrH,QAASyjH,EAAKD,EAAGx3F,QAASy3F,EAAG73E,KAAM63E,EAAKD,EAAGx3F,OAAQ,CAC5E,IAAI9sB,EAAMukH,EAAGviH,MACbmG,EAAMsjB,OAAOzrB,EACjB,CACJ,CACA,MAAO2+G,GAASL,EAAM,CAAE57G,MAAOi8G,EAAS,CACxC,QACI,IACQ4F,IAAOA,EAAG73E,OAAS6xE,EAAK+F,EAAG9U,SAAS+O,EAAGr+G,KAAKokH,EACpD,CACA,QAAU,GAAIhG,EAAK,MAAMA,EAAI57G,KAAO,CACxC,CACJ,GACJ,GACJ,EACA8vG,EAAcpzG,UAAUb,QAAU,SAAUyuB,GACxC,IAAI7kB,EAAQpC,KAkGZ,OA3FA86G,IAAY,WACR,IAAI4D,EAAKlG,EAAImG,EAAKJ,EAEdK,EA7lHhB,SAAsBC,GAClB,GAAIpZ,EAASoZ,IAAkBvT,GAAgBuT,GAC3C,OAAOA,EAEN,GAAI35G,MAAMwgC,QAAQm5E,GACnB,OAAO,IAAIn9F,IAAIm9F,GAEd,GAAI3e,EAAc2e,GAAgB,CACnC,IAAItsG,EAAM,IAAImP,IACd,IAAK,IAAIznB,KAAO4kH,EACZtsG,EAAIlY,IAAIJ,EAAK4kH,EAAc5kH,IAE/B,OAAOsY,CACX,CAEI,OAAO0yF,EAAK,+BAAiC4Z,EAAgB,IAErE,CA4kHiCC,CAAa73F,GAC9B83F,EAAc,IAAIr9F,IAElBs9F,GAA0B,EAC9B,IAII,IAAK,IAAIR,EAAK9V,EAAStmG,EAAM07G,MAAM/iH,QAAS0jH,EAAKD,EAAGz3F,QAAS03F,EAAG93E,KAAM83E,EAAKD,EAAGz3F,OAAQ,CAClF,IAAI9sB,EAAMwkH,EAAGxiH,MAGb,IAAK2iH,EAAellH,IAAIO,GAGpB,GAFcmI,EAAMsjB,OAAOzrB,GAIvB+kH,GAA0B,MAEzB,CAED,IAAI/iH,EAAQmG,EAAM07G,MAAMnkH,IAAIM,GAC5B8kH,EAAY1kH,IAAIJ,EAAKgC,EACzB,CAER,CACJ,CACA,MAAOgjH,GAASP,EAAM,CAAE/hH,MAAOsiH,EAAS,CACxC,QACI,IACQR,IAAOA,EAAG93E,OAAS6xE,EAAKgG,EAAG/U,SAAS+O,EAAGr+G,KAAKqkH,EACpD,CACA,QAAU,GAAIE,EAAK,MAAMA,EAAI/hH,KAAO,CACxC,CACA,IAEI,IAAK,IAAIuiH,EAAKxW,EAASkW,EAAeriF,WAAY4iF,EAAKD,EAAGn4F,QAASo4F,EAAGx4E,KAAMw4E,EAAKD,EAAGn4F,OAAQ,CACxF,IAAIq4F,EAAKxd,EAAOud,EAAGljH,MAAO,GAEtBojH,GAF0BplH,EAAMmlH,EAAG,GAAInjH,EAAQmjH,EAAG,GAErCh9G,EAAM07G,MAAMpkH,IAAIO,IAIjC,GAFAmI,EAAM/H,IAAIJ,EAAKgC,GAEXmG,EAAM07G,MAAMpkH,IAAIO,GAAM,CAItB,IAAIq6F,EAAUlyF,EAAM07G,MAAMnkH,IAAIM,GAC9B8kH,EAAY1kH,IAAIJ,EAAKq6F,GAEhB+qB,IAEDL,GAA0B,EAElC,CACJ,CACJ,CACA,MAAOM,GAASX,EAAM,CAAEhiH,MAAO2iH,EAAS,CACxC,QACI,IACQH,IAAOA,EAAGx4E,OAAS43E,EAAKW,EAAGzV,SAAS8U,EAAGpkH,KAAK+kH,EACpD,CACA,QAAU,GAAIP,EAAK,MAAMA,EAAIhiH,KAAO,CACxC,CAEA,IAAKqiH,EACD,GAAI58G,EAAM07G,MAAMlnG,OAASmoG,EAAYnoG,KAEjCxU,EAAMy7G,UAAU7W,qBAOhB,IAJA,IAAIuY,EAAQn9G,EAAM07G,MAAM/iH,OACpBykH,EAAQT,EAAYhkH,OACpB0kH,EAAQF,EAAMx4F,OACd24F,EAAQF,EAAMz4F,QACV04F,EAAM94E,MAAM,CAChB,GAAI84E,EAAMxjH,QAAUyjH,EAAMzjH,MAAO,CAC7BmG,EAAMy7G,UAAU7W,gBAChB,KACJ,CACAyY,EAAQF,EAAMx4F,OACd24F,EAAQF,EAAMz4F,MAClB,CAIR3kB,EAAM07G,MAAQiB,CAClB,IACO/+G,IACX,EACAlG,OAAOC,eAAe0yG,EAAcpzG,UAAW,OAAQ,CACnDM,IAAK,WAED,OADAqG,KAAK69G,UAAU9W,iBACR/mG,KAAK89G,MAAMlnG,IACtB,EACAxb,YAAY,EACZc,cAAc,IAOlBuwG,EAAcpzG,UAAUsmH,OAAS,WAC7B,IAAIC,EAAKpH,EACL5N,EAAM,CAAC,EACX,IACI,IAAK,IAAI2T,EAAK7V,EAAS1oG,MAAOw+G,EAAKD,EAAGx3F,QAASy3F,EAAG73E,KAAM63E,EAAKD,EAAGx3F,OAAQ,CACpE,IAAI03F,EAAK7c,EAAO4c,EAAGviH,MAAO,GAAIhC,EAAMwkH,EAAG,GAAIxiH,EAAQwiH,EAAG,GAEtD7T,EAAmB,iBAAR3wG,EAAmBA,EAAM6rG,EAAa7rG,IAAQgC,CAC7D,CACJ,CACA,MAAO4jH,GAASD,EAAM,CAAEjjH,MAAOkjH,EAAS,CACxC,QACI,IACQrB,IAAOA,EAAG73E,OAAS6xE,EAAK+F,EAAG9U,SAAS+O,EAAGr+G,KAAKokH,EACpD,CACA,QAAU,GAAIqB,EAAK,MAAMA,EAAIjjH,KAAO,CACxC,CACA,OAAOiuG,CACX,EAKA6B,EAAcpzG,UAAUwhH,KAAO,WAC3B,OAAO,IAAIn5F,IAAI1hB,KACnB,EACAysG,EAAcpzG,UAAU04G,OAAS,WAE7B,OAAO/xG,KAAK2/G,QAChB,EACAlT,EAAcpzG,UAAUuK,SAAW,WAC/B,IAAIxB,EAAQpC,KACZ,OAAQA,KAAKmH,KACT,MACAjC,MAAM+B,KAAKjH,KAAKjF,QACXwX,KAAI,SAAUtY,GAAO,OAAO6rG,EAAa7rG,GAAO,KAAamI,EAAMzI,IAAIM,EAAO,IAC9E0K,KAAK,MACV,KACR,EAMA8nG,EAAcpzG,UAAUw4G,QAAU,SAAUjL,EAAUhkG,GAGlD,OAAOkvG,GAAiB9xG,KAAM4mG,EAClC,EACA6F,EAAcpzG,UAAUs4G,UAAY,SAAUvjD,GAC1C,OAAOwjD,GAAoB5xG,KAAMouD,EACrC,EACOq+C,CACX,CA9akC,GAgb9BnB,GAAkB/F,EAA0B,gBAAiBkH,IAG7DqT,GAAsB,CAAC,EACvBpT,GAA+B,WAC/B,SAASA,EAAckR,EAAaxT,EAAUjjG,GAQ1C,QAPiB,IAAbijG,IAAuBA,EAAWJ,QACzB,IAAT7iG,IAAmBA,EAAO,iBAAmB29F,KACjD9kG,KAAKmH,KAAOA,EACZnH,KAAK09G,IAAQoC,GACb9/G,KAAK89G,MAAQ,IAAI76E,IACjBjjC,KAAK+/G,MAAQjY,EAAW9nG,KAAKmH,MAC7BnH,KAAK9G,OAAO8+F,aAAe,MACR,mBAAR/0D,IACP,MAAM,IAAI98B,MAAM,sGAEpBnG,KAAKoqG,SAAW,SAAU8R,EAAMC,GAAQ,OAAO/R,EAAS8R,EAAMC,EAAMh1G,EAAO,EACvEy2G,GACA59G,KAAKxH,QAAQolH,EAErB,CA0MA,OAzMAlR,EAAcrzG,UAAU63G,aAAe,SAAUj1G,GAC7C,YAAsB8G,IAAlB/C,KAAKmxG,SACEnxG,KAAKmxG,SAASl1G,GAElBA,CACX,EACAywG,EAAcrzG,UAAUu4D,MAAQ,WAC5B,IAAIxvD,EAAQpC,KACZ86G,IAAY,WACRjL,IAAU,WACN,IAAI5G,EAAKuP,EACT,IACI,IAAK,IAAI+F,EAAK7V,EAAStmG,EAAM07G,MAAM72F,UAAWu3F,EAAKD,EAAGx3F,QAASy3F,EAAG73E,KAAM63E,EAAKD,EAAGx3F,OAAQ,CACpF,IAAI9qB,EAAQuiH,EAAGviH,MACfmG,EAAMsjB,OAAOzpB,EACjB,CACJ,CACA,MAAOutG,GAASP,EAAM,CAAEtsG,MAAO6sG,EAAS,CACxC,QACI,IACQgV,IAAOA,EAAG73E,OAAS6xE,EAAK+F,EAAG9U,SAAS+O,EAAGr+G,KAAKokH,EACpD,CACA,QAAU,GAAItV,EAAK,MAAMA,EAAItsG,KAAO,CACxC,CACJ,GACJ,GACJ,EACA+vG,EAAcrzG,UAAUwC,QAAU,SAAUmkH,EAAYze,GACpD,IAAIgX,EAAKC,EACT,IACI,IAAK,IAAI+F,EAAK7V,EAAS1oG,MAAOw+G,EAAKD,EAAGx3F,QAASy3F,EAAG73E,KAAM63E,EAAKD,EAAGx3F,OAAQ,CACpE,IAAI9qB,EAAQuiH,EAAGviH,MACf+jH,EAAW7lH,KAAKonG,EAAStlG,EAAOA,EAAO+D,KAC3C,CACJ,CACA,MAAO44G,GAASL,EAAM,CAAE57G,MAAOi8G,EAAS,CACxC,QACI,IACQ4F,IAAOA,EAAG73E,OAAS6xE,EAAK+F,EAAG9U,SAAS+O,EAAGr+G,KAAKokH,EACpD,CACA,QAAU,GAAIhG,EAAK,MAAMA,EAAI57G,KAAO,CACxC,CACJ,EACA7C,OAAOC,eAAe2yG,EAAcrzG,UAAW,OAAQ,CACnDM,IAAK,WAED,OADAqG,KAAK+/G,MAAMhZ,iBACJ/mG,KAAK89G,MAAMlnG,IACtB,EACAxb,YAAY,EACZc,cAAc,IAElBwwG,EAAcrzG,UAAUsqC,IAAM,SAAU1nC,GACpC,IAAImG,EAAQpC,KAEZ,GADA0uG,GAAoC1uG,KAAK+/G,OACrCxO,GAAgBvxG,SACZid,EAASu0F,GAAgBxxG,KAAM,CAC/B+O,KAAM,MACNlU,OAAQmF,KACRikE,SAAUhoE,KAGV,OAAO+D,KAIf,IAAKA,KAAKtG,IAAIuC,GAAQ,CAClB6+G,IAAY,WACR14G,EAAM07G,MAAMn6E,IAAIvhC,EAAMgoG,SAASnuG,OAAO8G,IACtCX,EAAM29G,MAAM/Y,eAChB,IACA,IACIkW,EAASzL,GAAazxG,MACtBid,EAASigG,EACP,CACEnuG,KAAM,MACNlU,OAAQmF,KACRikE,SAAUhoE,GAEZ,KAGFihH,GACAxL,GAAgB1xG,KAAMid,EAG9B,CACA,OAAOjd,IACX,EACA0sG,EAAcrzG,UAAUqsB,OAAS,SAAUzpB,GACvC,IAAImG,EAAQpC,KACZ,GAAIuxG,GAAgBvxG,SACZid,EAASu0F,GAAgBxxG,KAAM,CAC/B+O,KAAM,SACNlU,OAAQmF,KACR0rG,SAAUzvG,KAGV,OAAO,EAEf,GAAI+D,KAAKtG,IAAIuC,GAAQ,CACjB,IACIihH,EAASzL,GAAazxG,MACtBid,EAASigG,EACP,CACEnuG,KAAM,SACNlU,OAAQmF,KACR0rG,SAAUzvG,GAEZ,KAWN,OARA6+G,IAAY,WACR14G,EAAM29G,MAAM/Y,gBACZ5kG,EAAM07G,MAAMp4F,OAAOzpB,EACvB,IACIihH,GACAxL,GAAgB1xG,KAAMid,IAGnB,CACX,CACA,OAAO,CACX,EACAyvF,EAAcrzG,UAAUK,IAAM,SAAUuC,GAEpC,OADA+D,KAAK+/G,MAAMhZ,iBACJ/mG,KAAK89G,MAAMpkH,IAAIsG,KAAKkxG,aAAaj1G,GAC5C,EACAywG,EAAcrzG,UAAUkjC,QAAU,WAC9B,IAAI0jF,EAAY,EACZllH,EAAOmK,MAAM+B,KAAKjH,KAAKjF,QACvBksB,EAAS/hB,MAAM+B,KAAKjH,KAAKinB,UAC7B,OAAOq3F,GAAa,CAChBv3F,KAAM,WACF,IAAI1I,EAAQ4hG,EAEZ,OADAA,GAAa,EACN5hG,EAAQ4I,EAAOtrB,OAChB,CAAEM,MAAO,CAAClB,EAAKsjB,GAAQ4I,EAAO5I,IAASsoB,MAAM,GAC7C,CAAEA,MAAM,EAClB,GAER,EACA+lE,EAAcrzG,UAAU0B,KAAO,WAC3B,OAAOiF,KAAKinB,QAChB,EACAylF,EAAcrzG,UAAU4tB,OAAS,WAC7BjnB,KAAK+/G,MAAMhZ,iBACX,IAAIluG,EAAOmH,KACPigH,EAAY,EACZC,EAAmBh7G,MAAM+B,KAAKjH,KAAK89G,MAAM72F,UAC7C,OAAOq3F,GAAa,CAChBv3F,KAAM,WACF,OAAOk5F,EAAYC,EAAiBvkH,OAC9B,CAAEM,MAAOpD,EAAKq4G,aAAagP,EAAiBD,MAAet5E,MAAM,GACjE,CAAEA,MAAM,EAClB,GAER,EACA+lE,EAAcrzG,UAAUb,QAAU,SAAU02B,GACxC,IAAI9sB,EAAQpC,KAuBZ,OAtBIurG,GAAgBr8E,KAChBA,EAAQA,EAAM2rF,QAElBC,IAAY,WACR,IAAIr1F,EAAO4mF,IAAuB,GAClC,IACQnnG,MAAMwgC,QAAQxW,IAITy2E,EAASz2E,IAHd9sB,EAAMwvD,QACN1iC,EAAMrzB,SAAQ,SAAUI,GAAS,OAAOmG,EAAMuhC,IAAI1nC,EAAQ,KAMrDizB,SACL+1E,EAAK,8BAAgC/1E,EAE7C,CACA,QACIq9E,GAAqB9mF,EACzB,CACJ,IACOzlB,IACX,EACA0sG,EAAcrzG,UAAUw4G,QAAU,SAAUjL,EAAUhkG,GAIlD,OAAOkvG,GAAiB9xG,KAAM4mG,EAClC,EACA8F,EAAcrzG,UAAUs4G,UAAY,SAAUvjD,GAC1C,OAAOwjD,GAAoB5xG,KAAMouD,EACrC,EACAs+C,EAAcrzG,UAAUwhH,KAAO,WAC3B,OAAO,IAAI53E,IAAIjjC,KACnB,EACA0sG,EAAcrzG,UAAUuK,SAAW,WAC/B,OAAO5D,KAAKmH,KAAO,KAAOjC,MAAM+B,KAAKjH,MAAM2E,KAAK,MAAQ,IAC5D,EACA+nG,EAAcrzG,WAAWqkH,GAAO1X,EAAO9sG,OAAOC,WAAa,WACvD,OAAO6G,KAAKinB,QAChB,EACOylF,CACX,CA3NkC,GA4N9BnB,GAAkBhG,EAA0B,gBAAiBmH,IAE7DyT,GAAgD,WAChD,SAASA,EAA+B3kH,EAAQyrB,EAAQ9f,EAAM2yG,QAC3C,IAAX7yF,IAAqBA,EAAS,IAAIvF,KACtC1hB,KAAKxE,OAASA,EACdwE,KAAKinB,OAASA,EACdjnB,KAAKmH,KAAOA,EACZnH,KAAK85G,gBAAkBA,EACvB95G,KAAKu7G,SAAW,IAAItV,EAAK9+F,EAAO,QACpC,CA0NA,OAzNAg5G,EAA+B9mH,UAAU+mH,KAAO,SAAUnmH,GACtD,OAAO+F,KAAKinB,OAAOttB,IAAIM,GAAKN,KAChC,EACAwmH,EAA+B9mH,UAAUwgH,MAAQ,SAAU5/G,EAAKgqE,GAC5D,IAAIrkE,EAAWI,KAAKxE,OAChB0rG,EAAalnG,KAAKinB,OAAOttB,IAAIM,GACjC,GAAIitG,aAAsBsG,GACtBtG,EAAW7sG,IAAI4pE,OADnB,CAKA,GAAIstC,GAAgBvxG,MAAO,CAOvB,KANIid,EAASu0F,GAAgBxxG,KAAM,CAC/B+O,KAAM,SACNlU,OAAQmF,KAAKgrG,OAASprG,EACtBuH,KAAMlN,EACNgqE,SAAUA,KAGV,OACJA,EAAWhnD,EAAOgnD,QACtB,CAGA,IAFAA,EAAWijC,EAAWkK,gBAAgBntC,MAErB8gC,GAAYsM,UAAW,CACpC,IAAI6L,EAASzL,GAAazxG,MAEtBid,EAASigG,EACP,CACEnuG,KAAM,SACNlU,OAAQmF,KAAKgrG,OAASprG,EACtB8rG,SAAUxE,EAAWjrG,MACrBkL,KAAMlN,EACNgqE,SAAUA,GAEZ,KAGNijC,EAAWoK,YAAYrtC,GACnBi5C,GACAxL,GAAgB1xG,KAAMid,EAG9B,CAlCA,CAmCJ,EACAkjG,EAA+B9mH,UAAUK,IAAM,SAAUO,GACrD,IAAIsY,EAAMvS,KAAKqgH,cAAgBrgH,KAAKqgH,YAAc,IAAI3+F,KAClDu3E,EAAQ1mF,EAAI5Y,IAAIM,GACpB,GAAIg/F,EACA,OAAOA,EAAMt/F,MAEb,IAAI2mH,IAAWtgH,KAAKinB,OAAOttB,IAAIM,GAK/B,OAFAg/F,EAAQ,IAAI6S,GAAgBwU,EAAQpW,EAAmBlqG,KAAKmH,KAAO,IAAM2+F,EAAa7rG,GAAO,KAAK,GAClGsY,EAAIlY,IAAIJ,EAAKg/F,GACNA,EAAMt/F,KAErB,EACAwmH,EAA+B9mH,UAAUsxG,kBAAoB,SAAUlzD,EAAUwsB,EAAUmmC,QACtE,IAAbA,IAAuBA,EAAWpqG,KAAK85G,iBAC3C,IAAIt+G,EAASwE,KAAKxE,OAElB,GAAI+1G,GAAgBvxG,MAAO,CACvB,IAAIid,EAASu0F,GAAgBxxG,KAAM,CAC/BnF,OAAQmF,KAAKgrG,OAASxvG,EACtB2L,KAAMswC,EACN1oC,KAAM,MACNk1D,SAAUA,IAEd,IAAKhnD,EACD,OACJgnD,EAAWhnD,EAAOgnD,QACtB,CACA,IAAIijC,EAAa,IAAI4E,GAAgB7nC,EAAUmmC,EAAUpqG,KAAKmH,KAAO,IAAM2+F,EAAaruD,IAAW,GACnGz3C,KAAKinB,OAAO5sB,IAAIo9C,EAAUyvD,GAC1BjjC,EAAWijC,EAAWjrG,MACtBnC,OAAOC,eAAeyB,EAAQi8C,EA+JtC,SAAsCA,GAClC,OAAQ8oE,GAA0B9oE,KAC7B8oE,GAA0B9oE,GAAY,CACnCv7C,cAAc,EACdd,YAAY,EACZzB,IAAK,WACD,OAAOqG,KAAKgmG,GAAOoa,KAAK3oE,EAC5B,EACAp9C,IAAK,SAAU8sB,GACXnnB,KAAKgmG,GAAO6T,MAAMpiE,EAAUtwB,EAChC,GAEZ,CA3KgDq5F,CAA6B/oE,IACrEz3C,KAAKygH,uBAAuBhpE,EAAUwsB,EAC1C,EACAk8C,EAA+B9mH,UAAU+zG,gBAAkB,SAAUsT,EACrEjpE,EAAU12C,GACN,IAthIwBlG,EAAQq3E,EAChC1yE,EAqhIIhE,EAASwE,KAAKxE,OAClBuF,EAAQoG,KAAOpG,EAAQoG,MAAQnH,KAAKmH,KAAO,IAAM2+F,EAAaruD,GAC9Dz3C,KAAKinB,OAAO5sB,IAAIo9C,EAAU,IAAI+1D,GAAczsG,KACxC2/G,IAAkBllH,IAzhIEX,EAyhI+B6lH,EAzhIvBxuC,EAyhIsCz6B,IAxhItEj4C,EAAa1F,OAAOE,yBAAyBa,EAAQq3E,MACN,IAA5B1yE,EAAWtD,eAAkD,IAAxBsD,EAAWrD,YAwhI/DrC,OAAOC,eAAe2mH,EAAejpE,EA6KjD,SAAoCA,GAChC,OAAQkpE,GAAwBlpE,KAC3BkpE,GAAwBlpE,GAAY,CACjCv7C,aAAc6oG,GAAY+O,qBAC1B14G,YAAY,EACZzB,IAAK,WACD,OAAOinH,GAAsC5gH,MAAMogH,KAAK3oE,EAC5D,EACAp9C,IAAK,SAAU8sB,GACXy5F,GAAsC5gH,MAAM65G,MAAMpiE,EAAUtwB,EAChE,GAEZ,CAzL2D05F,CAA2BppE,GAClF,EACA0oE,EAA+B9mH,UAAUgwD,OAAS,SAAUpvD,GACxD,GAAK+F,KAAKinB,OAAOvtB,IAAIO,GAArB,CAEA,IAAIuB,EAASwE,KAAKxE,OAClB,GAAI+1G,GAAgBvxG,SACZid,EAASu0F,GAAgBxxG,KAAM,CAC/BnF,OAAQmF,KAAKgrG,OAASxvG,EACtB2L,KAAMlN,EACN8U,KAAM,YAGN,OAER,IACIk4F,KACA,IAAIiW,EAASzL,GAAazxG,MAEtB8gH,EAAgB9gH,KAAKinB,OAAOttB,IAAIM,GAChCyxG,EAAWoV,GAAiBA,EAAcnnH,MAK9C,GAJAmnH,GAAiBA,EAAczmH,SAAI0I,GAEnC/C,KAAKu7G,SAASvU,gBACdhnG,KAAKinB,OAAOvB,OAAOzrB,GACf+F,KAAKqgH,YAAa,CAClB,IAAIpnB,EAAQj5F,KAAKqgH,YAAY1mH,IAAIM,GAC7Bg/F,GACAA,EAAM5+F,KAAI,EAClB,QAEO2F,KAAKxE,OAAOvB,GACnB,IAAIgjB,EAASigG,EACP,CACEnuG,KAAM,SACNlU,OAAQmF,KAAKgrG,OAASxvG,EACtBkwG,SAAUA,EACVvkG,KAAMlN,GAER,KAGFijH,GACAxL,GAAgB1xG,KAAMid,EAG9B,CACA,QACI2qF,IACJ,CA7CU,CA8Cd,EACAuY,EAA+B9mH,UAAU0nH,cAAgB,SAAUC,EAAOvpE,GAoBtE/6C,QAAQkvC,KAAK,aAAe6L,EAAW,SAAWupE,EAAQ,oIAC9D,EAMAb,EAA+B9mH,UAAUw4G,QAAU,SAAUrqG,EAAU5E,GAGnE,OAAOkvG,GAAiB9xG,KAAMwH,EAClC,EACA24G,EAA+B9mH,UAAUs4G,UAAY,SAAUvjD,GAC3D,OAAOwjD,GAAoB5xG,KAAMouD,EACrC,EACA+xD,EAA+B9mH,UAAUonH,uBAAyB,SAAUxmH,EAAKgqE,GAC7E,IAAIi5C,EAASzL,GAAazxG,MAEtBid,EAASigG,EACP,CACEnuG,KAAM,MACNlU,OAAQmF,KAAKgrG,OAAShrG,KAAKxE,OAC3B2L,KAAMlN,EACNgqE,SAAUA,GAEZ,KAON,GAJIi5C,GACAxL,GAAgB1xG,KAAMid,GAGtBjd,KAAKqgH,YAAa,CAClB,IAAIpnB,EAAQj5F,KAAKqgH,YAAY1mH,IAAIM,GAC7Bg/F,GACAA,EAAM5+F,KAAI,EAClB,CACA2F,KAAKu7G,SAASvU,eAClB,EACAmZ,EAA+B9mH,UAAUihH,QAAU,WAC/C,IAAIrR,EAAKt1E,EACT3zB,KAAKu7G,SAASxU,iBAEd,IAAI6D,EAAM,GACV,IACI,IAAK,IAAI4N,EAAK9P,EAAS1oG,KAAKinB,QAASs3F,EAAK/F,EAAGzxF,QAASw3F,EAAG53E,KAAM43E,EAAK/F,EAAGzxF,OAAQ,CAC3E,IAAIy3F,EAAK5c,EAAO2c,EAAGtiH,MAAO,GAAIhC,EAAMukH,EAAG,GAAYA,EAAG,aACjC1S,IACjBlB,EAAIvvG,KAAKpB,EACjB,CACJ,CACA,MAAOuvG,GAASP,EAAM,CAAEtsG,MAAO6sG,EAAS,CACxC,QACI,IACQ+U,IAAOA,EAAG53E,OAAShT,EAAK6kF,EAAG/O,SAAS91E,EAAGx5B,KAAKq+G,EACpD,CACA,QAAU,GAAIvP,EAAK,MAAMA,EAAItsG,KAAO,CACxC,CACA,OAAOiuG,CACX,EACOuV,CACX,CAnOmD,GAoOnD,SAASzV,GAAmBlvG,EAAQ2L,EAAM2yG,GAGtC,QAFa,IAAT3yG,IAAmBA,EAAO,SACN,IAApB2yG,IAA8BA,EAAkB9P,GAChDlwG,OAAOT,UAAUa,eAAeC,KAAKqB,EAAQwqG,GAC7C,OAAOxqG,EAAOwqG,GAGb9F,EAAc1kG,KACf2L,GAAQ3L,EAAOpC,YAAY+N,MAAQ,oBAAsB,IAAM29F,KAC9D39F,IACDA,EAAO,oBAAsB29F,KACjC,IAAIoH,EAAM,IAAIiU,GAA+B3kH,EAAQ,IAAIkmB,IAAOokF,EAAa3+F,GAAO2yG,GAEpF,OADAxU,EAAc9pG,EAAQwqG,EAAOkG,GACtBA,CACX,CACA,IAAIqU,GAA4BzmH,OAAO05B,OAAO,MAC1CmtF,GAA0B7mH,OAAO05B,OAAO,MAc5C,SAASotF,GAAsCI,GAE3C,OADUA,EAAMhb,KAIZgD,EAAmBgY,GACZA,EAAMhb,GAGrB,CAcA,IAAIib,GAAmC1b,EAA0B,iCAAkC4a,IACnG,SAAS/U,GAAmB1F,GACxB,QAAI5I,EAAS4I,KAETsD,EAAmBtD,GACZub,GAAiCvb,EAAMM,IAGtD,CAEA,SAAS8P,GAAQpQ,EAAO58D,GACpB,GAAqB,iBAAV48D,GAAgC,OAAVA,EAAgB,CAC7C,GAAI2F,GAAkB3F,GAIlB,YAHiB3iG,IAAb+lC,GACAm8D,GAAK,GAEFS,EAAMM,GAAOiC,KAExB,GAAIsD,GAAgB7F,GAChB,OAAOA,EAAMM,GAEjB,GAAIsF,GAAgB5F,GAAQ,CACxB,IAAIwb,EAAWxb,EACf,YAAiB3iG,IAAb+lC,EACOo4E,EAASrD,YAChB3W,EAAaga,EAASpD,MAAMnkH,IAAImvC,IAAao4E,EAASnD,QAAQpkH,IAAImvC,KAElEm8D,GAAK,GAEFiC,EACX,CAQI,IAAIA,EAHR,GAHA8B,EAAmBtD,GACf58D,IAAa48D,EAAMM,IACnBN,EAAM58D,GACNsiE,GAAmB1F,GACnB,OAAK58D,IAEDo+D,EAAaxB,EAAMM,GAAO/+E,OAAOttB,IAAImvC,KAErCm8D,GAAK,GAEFiC,GALIjC,GAAK,GAOpB,GAAI4C,EAAOnC,IAAU2I,GAAgB3I,IAAU4Q,GAAW5Q,GACtD,OAAOA,CAEf,MACK,GAAqB,mBAAVA,GACR4Q,GAAW5Q,EAAMM,IAEjB,OAAON,EAAMM,GAGrB,OAAOf,GAAK,EAChB,CACA,SAASkc,GAAkBzb,EAAO58D,GAG9B,OAFK48D,GACDT,EAAK,8BACQliG,IAAb+lC,EACOq4E,GAAkBrL,GAAQpQ,EAAO58D,IACxC++D,EAAOnC,IAAU2I,GAAgB3I,IAAU4Q,GAAW5Q,IAEtD4F,GAAgB5F,IAAU6F,GAAgB7F,GADnCA,GAIXsD,EAAmBtD,GACfA,EAAMM,GACCN,EAAMM,QACjBf,GAAK,GACT,CAYA,IAAIrhG,GAAW9J,OAAOT,UAAUuK,SAChC,SAAS0kG,GAAUj5E,EAAGzpB,EAAGkvG,GAErB,YADc,IAAVA,IAAoBA,GAAS,GAC1BhlF,GAAGT,EAAGzpB,EAAGkvG,EACpB,CAGA,SAAShlF,GAAGT,EAAGzpB,EAAGkvG,EAAOsM,EAAQC,GAG7B,GAAIhyF,IAAMzpB,EACN,OAAa,IAANypB,GAAW,EAAIA,GAAM,EAAIzpB,EAEpC,GAAS,MAALypB,GAAkB,MAALzpB,EACb,OAAO,EAEX,GAAIypB,GAAMA,EACN,OAAOzpB,GAAMA,EAEjB,IAAImJ,SAAcsgB,EAClB,GAAa,aAATtgB,GAAgC,WAATA,GAAiC,iBAALnJ,EACnD,OAAO,EAEX,IAAI6J,EAAY7L,GAASzJ,KAAKk1B,GAC9B,GAAI5f,IAAc7L,GAASzJ,KAAKyL,GAC5B,OAAO,EACX,OAAQ6J,GAEJ,IAAK,kBAEL,IAAK,kBAGD,MAAO,GAAK4f,GAAM,GAAKzpB,EAC3B,IAAK,kBAGD,OAAKypB,IAAOA,GACAzpB,IAAOA,EAEL,IAANypB,EAAU,GAAKA,GAAM,EAAIzpB,GAAKypB,IAAOzpB,EACjD,IAAK,gBACL,IAAK,mBAID,OAAQypB,IAAOzpB,EACnB,IAAK,kBACD,MAA0B,oBAAX1M,QAA0BA,OAAOoS,QAAQnR,KAAKk1B,KAAOn2B,OAAOoS,QAAQnR,KAAKyL,GAC5F,IAAK,eACL,IAAK,eAGGkvG,GAAS,GACTA,IAKZzlF,EAAIiyF,GAAOjyF,GACXzpB,EAAI07G,GAAO17G,GACX,IAAI27G,EAA0B,mBAAd9xG,EAChB,IAAK8xG,EAAW,CACZ,GAAgB,iBAALlyF,GAA6B,iBAALzpB,EAC/B,OAAO,EAGX,IAAI47G,EAAQnyF,EAAEj2B,YAAaqoH,EAAQ77G,EAAExM,YACrC,GAAIooH,IAAUC,KACS,mBAAVD,GACLA,aAAiBA,GACA,mBAAVC,GACPA,aAAiBA,IACpB,gBAAiBpyF,GAAK,gBAAiBzpB,EACxC,OAAO,CAEf,CACA,GAAc,IAAVkvG,EACA,OAAO,EAEFA,EAAQ,IACbA,GAAS,GAObuM,EAASA,GAAU,GAEnB,IADA,IAAI1lH,GAFJylH,EAASA,GAAU,IAECzlH,OACbA,KAGH,GAAIylH,EAAOzlH,KAAY0zB,EACnB,OAAOgyF,EAAO1lH,KAAYiK,EAMlC,GAHAw7G,EAAO/lH,KAAKg0B,GACZgyF,EAAOhmH,KAAKuK,GAER27G,EAAW,CAGX,IADA5lH,EAAS0zB,EAAE1zB,UACIiK,EAAEjK,OACb,OAAO,EAEX,KAAOA,KACH,IAAKm0B,GAAGT,EAAE1zB,GAASiK,EAAEjK,GAASm5G,EAAQ,EAAGsM,EAAQC,GAC7C,OAAO,CAEnB,KACK,CAED,IAAItmH,EAAOjB,OAAOiB,KAAKs0B,GACnBp1B,OAAM,EAGV,GAFA0B,EAASZ,EAAKY,OAEV7B,OAAOiB,KAAK6K,GAAGjK,SAAWA,EAC1B,OAAO,EACX,KAAOA,KAGH,IAAM+lH,GAAM97G,EADZ3L,EAAMc,EAAKY,MACYm0B,GAAGT,EAAEp1B,GAAM2L,EAAE3L,GAAM66G,EAAQ,EAAGsM,EAAQC,GACzD,OAAO,CAEnB,CAIA,OAFAD,EAAO15F,MACP25F,EAAO35F,OACA,CACX,CACA,SAAS45F,GAAOjyF,GACZ,OAAIg8E,GAAkBh8E,GACXA,EAAEtjB,QACT05F,EAASp2E,IAAMi8E,GAAgBj8E,IAE/Bs2E,EAASt2E,IAAMk8E,GAAgBl8E,GADxBnqB,MAAM+B,KAAKooB,EAAEkN,WAGjBlN,CACX,CACA,SAASqyF,GAAMryF,EAAGp1B,GACd,OAAOH,OAAOT,UAAUa,eAAeC,KAAKk1B,EAAGp1B,EACnD,CAEA,SAASqkH,GAAanlH,GAElB,OADAA,EAASD,OAAOC,UAAYwoH,GACrBxoH,CACX,CACA,SAASwoH,KACL,OAAO3hH,IACX,CAmBA,GAAqB,oBAAVs8E,OAA2C,oBAAXpjF,OACvC,MAAM,IAAIiN,MAAM,mMAwByB,iBAAlCy7G,+BAEPA,8BAA8BC,WAAW,CACrCpL,IAAKA,GACLqL,OAAQ,CACJC,aAlNZ,SAAsBrc,EAAO58D,GAQzB,YANiB/lC,IAAb+lC,EACQgtE,GAAQpQ,EAAO58D,GAClBsiE,GAAmB1F,IAAU4F,GAAgB5F,IAAU6F,GAAgB7F,GACpEyb,GAAkBzb,GAElBoQ,GAAQpQ,IACPv+F,IACjB,GA2MQ6+F,MAAOA,2BCzkJf,IAAIhrG,EAAwBlB,OAAOkB,sBAC/Bd,EAAiBJ,OAAOT,UAAUa,eAClC8nH,EAAmBloH,OAAOT,UAAUm6C,qBAsDxC17C,EAAOD,QA5CP,WACC,IACC,IAAKiC,OAAOo2C,OACX,OAAO,EAMR,IAAI+xE,EAAQ,IAAIhnF,OAAO,OAEvB,GADAgnF,EAAM,GAAK,KACkC,MAAzCnoH,OAAOoN,oBAAoB+6G,GAAO,GACrC,OAAO,EAKR,IADA,IAAIC,EAAQ,CAAC,EACJzmH,EAAI,EAAGA,EAAI,GAAIA,IACvBymH,EAAM,IAAMjnF,OAAOqB,aAAa7gC,IAAMA,EAKvC,GAAwB,eAHX3B,OAAOoN,oBAAoBg7G,GAAO3vG,KAAI,SAAUjM,GAC5D,OAAO47G,EAAM57G,EACd,IACW3B,KAAK,IACf,OAAO,EAIR,IAAIw9G,EAAQ,CAAC,EAIb,MAHA,uBAAuB/5F,MAAM,IAAIvsB,SAAQ,SAAUumH,GAClDD,EAAMC,GAAUA,CACjB,IAEE,yBADEtoH,OAAOiB,KAAKjB,OAAOo2C,OAAO,CAAC,EAAGiyE,IAAQx9G,KAAK,GAMhD,CAAE,MAAOb,GAER,OAAO,CACR,CACD,CAEiBu+G,GAAoBvoH,OAAOo2C,OAAS,SAAU10C,EAAQI,GAKtE,IAJA,IAAIqL,EAEAhM,EADA8yB,EAtDL,SAAkB6P,GACjB,GAAIA,QACH,MAAM,IAAI99B,UAAU,yDAGrB,OAAOhG,OAAO8jC,EACf,CAgDU0kF,CAAS9mH,GAGTooB,EAAI,EAAGA,EAAIloB,UAAUC,OAAQioB,IAAK,CAG1C,IAAK,IAAI3pB,KAFTgN,EAAOnN,OAAO4B,UAAUkoB,IAGnB1pB,EAAeC,KAAK8M,EAAMhN,KAC7B8zB,EAAG9zB,GAAOgN,EAAKhN,IAIjB,GAAIe,EAAuB,CAC1BC,EAAUD,EAAsBiM,GAChC,IAAK,IAAIxL,EAAI,EAAGA,EAAIR,EAAQU,OAAQF,IAC/BumH,EAAiB7nH,KAAK8M,EAAMhM,EAAQQ,MACvCsyB,EAAG9yB,EAAQQ,IAAMwL,EAAKhM,EAAQQ,IAGjC,CACD,CAEA,OAAOsyB,CACR,+CC/DA,SAASw0F,EAAWC,GAClB,GAAoB,iBAATA,EACT,MAAM,IAAI1iH,UAAU,mCAAqCoN,KAAKC,UAAUq1G,GAE5E,CAGA,SAASC,EAAqBD,EAAME,GAMlC,IALA,IAIItmF,EAJAwuE,EAAM,GACN+X,EAAoB,EACpBC,GAAa,EACbC,EAAO,EAEFpnH,EAAI,EAAGA,GAAK+mH,EAAK7mH,SAAUF,EAAG,CACrC,GAAIA,EAAI+mH,EAAK7mH,OACXygC,EAAOomF,EAAK/lF,WAAWhhC,OACpB,IAAa,KAAT2gC,EACP,MAEAA,EAAO,EAAQ,CACjB,GAAa,KAATA,EAAmB,CACrB,GAAIwmF,IAAcnnH,EAAI,GAAc,IAATonH,QAEpB,GAAID,IAAcnnH,EAAI,GAAc,IAATonH,EAAY,CAC5C,GAAIjY,EAAIjvG,OAAS,GAA2B,IAAtBgnH,GAA8D,KAAnC/X,EAAInuE,WAAWmuE,EAAIjvG,OAAS,IAAsD,KAAnCivG,EAAInuE,WAAWmuE,EAAIjvG,OAAS,GAC1H,GAAIivG,EAAIjvG,OAAS,EAAG,CAClB,IAAImnH,EAAiBlY,EAAI3kE,YAAY,KACrC,GAAI68E,IAAmBlY,EAAIjvG,OAAS,EAAG,EACb,IAApBmnH,GACFlY,EAAM,GACN+X,EAAoB,GAGpBA,GADA/X,EAAMA,EAAI7+F,MAAM,EAAG+2G,IACKnnH,OAAS,EAAIivG,EAAI3kE,YAAY,KAEvD28E,EAAYnnH,EACZonH,EAAO,EACP,QACF,CACF,MAAO,GAAmB,IAAfjY,EAAIjvG,QAA+B,IAAfivG,EAAIjvG,OAAc,CAC/CivG,EAAM,GACN+X,EAAoB,EACpBC,EAAYnnH,EACZonH,EAAO,EACP,QACF,CAEEH,IACE9X,EAAIjvG,OAAS,EACfivG,GAAO,MAEPA,EAAM,KACR+X,EAAoB,EAExB,MACM/X,EAAIjvG,OAAS,EACfivG,GAAO,IAAM4X,EAAKz2G,MAAM62G,EAAY,EAAGnnH,GAEvCmvG,EAAM4X,EAAKz2G,MAAM62G,EAAY,EAAGnnH,GAClCknH,EAAoBlnH,EAAImnH,EAAY,EAEtCA,EAAYnnH,EACZonH,EAAO,CACT,MAAoB,KAATzmF,IAA+B,IAAVymF,IAC5BA,EAEFA,GAAQ,CAEZ,CACA,OAAOjY,CACT,CAcA,IAAImY,EAAQ,CAEV5jH,QAAS,WAKP,IAJA,IAEI6jH,EAFAC,EAAe,GACfC,GAAmB,EAGdznH,EAAIC,UAAUC,OAAS,EAAGF,IAAM,IAAMynH,EAAkBznH,IAAK,CACpE,IAAI+mH,EACA/mH,GAAK,EACP+mH,EAAO9mH,UAAUD,SAELsH,IAARigH,IACFA,EAAM9hG,EAAQ8hG,OAChBR,EAAOQ,GAGTT,EAAWC,GAGS,IAAhBA,EAAK7mH,SAITsnH,EAAeT,EAAO,IAAMS,EAC5BC,EAA0C,KAAvBV,EAAK/lF,WAAW,GACrC,CAQA,OAFAwmF,EAAeR,EAAqBQ,GAAeC,GAE/CA,EACED,EAAatnH,OAAS,EACjB,IAAMsnH,EAEN,IACAA,EAAatnH,OAAS,EACxBsnH,EAEA,GAEX,EAEA94E,UAAW,SAAmBq4E,GAG5B,GAFAD,EAAWC,GAES,IAAhBA,EAAK7mH,OAAc,MAAO,IAE9B,IAAIwnH,EAAoC,KAAvBX,EAAK/lF,WAAW,GAC7B2mF,EAAyD,KAArCZ,EAAK/lF,WAAW+lF,EAAK7mH,OAAS,GAQtD,OAHoB,KAFpB6mH,EAAOC,EAAqBD,GAAOW,IAE1BxnH,QAAiBwnH,IAAYX,EAAO,KACzCA,EAAK7mH,OAAS,GAAKynH,IAAmBZ,GAAQ,KAE9CW,EAAmB,IAAMX,EACtBA,CACT,EAEAW,WAAY,SAAoBX,GAE9B,OADAD,EAAWC,GACJA,EAAK7mH,OAAS,GAA4B,KAAvB6mH,EAAK/lF,WAAW,EAC5C,EAEA93B,KAAM,WACJ,GAAyB,IAArBjJ,UAAUC,OACZ,MAAO,IAET,IADA,IAAI0nH,EACK5nH,EAAI,EAAGA,EAAIC,UAAUC,SAAUF,EAAG,CACzC,IAAIq5B,EAAMp5B,UAAUD,GACpB8mH,EAAWztF,GACPA,EAAIn5B,OAAS,SACAoH,IAAXsgH,EACFA,EAASvuF,EAETuuF,GAAU,IAAMvuF,EAEtB,CACA,YAAe/xB,IAAXsgH,EACK,IACFN,EAAM54E,UAAUk5E,EACzB,EAEAC,SAAU,SAAkBr8G,EAAM8mB,GAIhC,GAHAw0F,EAAWt7G,GACXs7G,EAAWx0F,GAEP9mB,IAAS8mB,EAAI,MAAO,GAKxB,IAHA9mB,EAAO87G,EAAM5jH,QAAQ8H,OACrB8mB,EAAKg1F,EAAM5jH,QAAQ4uB,IAEF,MAAO,GAIxB,IADA,IAAIw1F,EAAY,EACTA,EAAYt8G,EAAKtL,QACa,KAA/BsL,EAAKw1B,WAAW8mF,KADYA,GASlC,IALA,IAAIC,EAAUv8G,EAAKtL,OACf8nH,EAAUD,EAAUD,EAGpBG,EAAU,EACPA,EAAU31F,EAAGpyB,QACa,KAA3BoyB,EAAG0O,WAAWinF,KADUA,GAW9B,IAPA,IACIC,EADQ51F,EAAGpyB,OACK+nH,EAGhB/nH,EAAS8nH,EAAUE,EAAQF,EAAUE,EACrCC,GAAiB,EACjBnoH,EAAI,EACDA,GAAKE,IAAUF,EAAG,CACvB,GAAIA,IAAME,EAAQ,CAChB,GAAIgoH,EAAQhoH,EAAQ,CAClB,GAAmC,KAA/BoyB,EAAG0O,WAAWinF,EAAUjoH,GAG1B,OAAOsyB,EAAGhiB,MAAM23G,EAAUjoH,EAAI,GACzB,GAAU,IAANA,EAGT,OAAOsyB,EAAGhiB,MAAM23G,EAAUjoH,EAE9B,MAAWgoH,EAAU9nH,IACoB,KAAnCsL,EAAKw1B,WAAW8mF,EAAY9nH,GAG9BmoH,EAAgBnoH,EACD,IAANA,IAGTmoH,EAAgB,IAGpB,KACF,CACA,IAAIC,EAAW58G,EAAKw1B,WAAW8mF,EAAY9nH,GAE3C,GAAIooH,IADS91F,EAAG0O,WAAWinF,EAAUjoH,GAEnC,MACoB,KAAbooH,IACPD,EAAgBnoH,EACpB,CAEA,IAAIqoH,EAAM,GAGV,IAAKroH,EAAI8nH,EAAYK,EAAgB,EAAGnoH,GAAK+nH,IAAW/nH,EAClDA,IAAM+nH,GAAkC,KAAvBv8G,EAAKw1B,WAAWhhC,KAChB,IAAfqoH,EAAInoH,OACNmoH,GAAO,KAEPA,GAAO,OAMb,OAAIA,EAAInoH,OAAS,EACRmoH,EAAM/1F,EAAGhiB,MAAM23G,EAAUE,IAEhCF,GAAWE,EACoB,KAA3B71F,EAAG0O,WAAWinF,MACdA,EACG31F,EAAGhiB,MAAM23G,GAEpB,EAEAK,UAAW,SAAmBvB,GAC5B,OAAOA,CACT,EAEAwB,QAAS,SAAiBxB,GAExB,GADAD,EAAWC,GACS,IAAhBA,EAAK7mH,OAAc,MAAO,IAK9B,IAJA,IAAIygC,EAAOomF,EAAK/lF,WAAW,GACvBwnF,EAAmB,KAAT7nF,EACVrB,GAAO,EACPmpF,GAAe,EACVzoH,EAAI+mH,EAAK7mH,OAAS,EAAGF,GAAK,IAAKA,EAEtC,GAAa,MADb2gC,EAAOomF,EAAK/lF,WAAWhhC,KAEnB,IAAKyoH,EAAc,CACjBnpF,EAAMt/B,EACN,KACF,OAGFyoH,GAAe,EAInB,OAAa,IAATnpF,EAAmBkpF,EAAU,IAAM,IACnCA,GAAmB,IAARlpF,EAAkB,KAC1BynF,EAAKz2G,MAAM,EAAGgvB,EACvB,EAEAopF,SAAU,SAAkB3B,EAAM4B,GAChC,QAAYrhH,IAARqhH,GAAoC,iBAARA,EAAkB,MAAM,IAAItkH,UAAU,mCACtEyiH,EAAWC,GAEX,IAGI/mH,EAHAq/B,EAAQ,EACRC,GAAO,EACPmpF,GAAe,EAGnB,QAAYnhH,IAARqhH,GAAqBA,EAAIzoH,OAAS,GAAKyoH,EAAIzoH,QAAU6mH,EAAK7mH,OAAQ,CACpE,GAAIyoH,EAAIzoH,SAAW6mH,EAAK7mH,QAAUyoH,IAAQ5B,EAAM,MAAO,GACvD,IAAI6B,EAASD,EAAIzoH,OAAS,EACtB2oH,GAAoB,EACxB,IAAK7oH,EAAI+mH,EAAK7mH,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACrC,IAAI2gC,EAAOomF,EAAK/lF,WAAWhhC,GAC3B,GAAa,KAAT2gC,GAGA,IAAK8nF,EAAc,CACjBppF,EAAQr/B,EAAI,EACZ,KACF,OAEwB,IAAtB6oH,IAGFJ,GAAe,EACfI,EAAmB7oH,EAAI,GAErB4oH,GAAU,IAERjoF,IAASgoF,EAAI3nF,WAAW4nF,IACR,KAAZA,IAGJtpF,EAAMt/B,IAKR4oH,GAAU,EACVtpF,EAAMupF,GAId,CAGA,OADIxpF,IAAUC,EAAKA,EAAMupF,GAAmC,IAATvpF,IAAYA,EAAMynF,EAAK7mH,QACnE6mH,EAAKz2G,MAAM+uB,EAAOC,EAC3B,CACE,IAAKt/B,EAAI+mH,EAAK7mH,OAAS,EAAGF,GAAK,IAAKA,EAClC,GAA2B,KAAvB+mH,EAAK/lF,WAAWhhC,IAGhB,IAAKyoH,EAAc,CACjBppF,EAAQr/B,EAAI,EACZ,KACF,OACkB,IAATs/B,IAGXmpF,GAAe,EACfnpF,EAAMt/B,EAAI,GAId,OAAa,IAATs/B,EAAmB,GAChBynF,EAAKz2G,MAAM+uB,EAAOC,EAE7B,EAEAwpF,QAAS,SAAiB/B,GACxBD,EAAWC,GAQX,IAPA,IAAIgC,GAAY,EACZC,EAAY,EACZ1pF,GAAO,EACPmpF,GAAe,EAGfQ,EAAc,EACTjpH,EAAI+mH,EAAK7mH,OAAS,EAAGF,GAAK,IAAKA,EAAG,CACzC,IAAI2gC,EAAOomF,EAAK/lF,WAAWhhC,GAC3B,GAAa,KAAT2gC,GASS,IAATrB,IAGFmpF,GAAe,EACfnpF,EAAMt/B,EAAI,GAEC,KAAT2gC,GAEkB,IAAdooF,EACFA,EAAW/oH,EACY,IAAhBipH,IACPA,EAAc,IACK,IAAdF,IAGTE,GAAe,QArBb,IAAKR,EAAc,CACjBO,EAAYhpH,EAAI,EAChB,KACF,CAoBN,CAEA,OAAkB,IAAd+oH,IAA4B,IAATzpF,GAEH,IAAhB2pF,GAEgB,IAAhBA,GAAqBF,IAAazpF,EAAM,GAAKypF,IAAaC,EAAY,EACjE,GAEFjC,EAAKz2G,MAAMy4G,EAAUzpF,EAC9B,EAEAvR,OAAQ,SAAgBm7F,GACtB,GAAmB,OAAfA,GAA6C,iBAAfA,EAChC,MAAM,IAAI7kH,UAAU,0EAA4E6kH,GAElG,OAvVJ,SAAiBC,EAAKD,GACpB,IAAIE,EAAMF,EAAWE,KAAOF,EAAWhtH,KACnCg4B,EAAOg1F,EAAWh1F,OAASg1F,EAAWx9G,MAAQ,KAAOw9G,EAAWP,KAAO,IAC3E,OAAKS,EAGDA,IAAQF,EAAWhtH,KACdktH,EAAMl1F,EAERk1F,EA8UU,IA9UEl1F,EALVA,CAMX,CA6UW0+C,CAAQ,EAAKs2C,EACtB,EAEAv5G,MAAO,SAAeo3G,GACpBD,EAAWC,GAEX,IAAIh2F,EAAM,CAAE70B,KAAM,GAAIktH,IAAK,GAAIl1F,KAAM,GAAIy0F,IAAK,GAAIj9G,KAAM,IACxD,GAAoB,IAAhBq7G,EAAK7mH,OAAc,OAAO6wB,EAC9B,IAEIsO,EAFAsB,EAAOomF,EAAK/lF,WAAW,GACvB0mF,EAAsB,KAAT/mF,EAEb+mF,GACF32F,EAAI70B,KAAO,IACXmjC,EAAQ,GAERA,EAAQ,EAaV,IAXA,IAAI0pF,GAAY,EACZC,EAAY,EACZ1pF,GAAO,EACPmpF,GAAe,EACfzoH,EAAI+mH,EAAK7mH,OAAS,EAIlB+oH,EAAc,EAGXjpH,GAAKq/B,IAASr/B,EAEnB,GAAa,MADb2gC,EAAOomF,EAAK/lF,WAAWhhC,KAUV,IAATs/B,IAGFmpF,GAAe,EACfnpF,EAAMt/B,EAAI,GAEC,KAAT2gC,GAEkB,IAAdooF,EAAiBA,EAAW/oH,EAA2B,IAAhBipH,IAAmBA,EAAc,IACrD,IAAdF,IAGXE,GAAe,QAlBb,IAAKR,EAAc,CACjBO,EAAYhpH,EAAI,EAChB,KACF,CAwCN,OArBkB,IAAd+oH,IAA4B,IAATzpF,GAEP,IAAhB2pF,GAEgB,IAAhBA,GAAqBF,IAAazpF,EAAM,GAAKypF,IAAaC,EAAY,GACvD,IAAT1pF,IACiCvO,EAAImD,KAAOnD,EAAIrlB,KAAhC,IAAds9G,GAAmBtB,EAAkCX,EAAKz2G,MAAM,EAAGgvB,GAAgCynF,EAAKz2G,MAAM04G,EAAW1pF,KAG7G,IAAd0pF,GAAmBtB,GACrB32F,EAAIrlB,KAAOq7G,EAAKz2G,MAAM,EAAGy4G,GACzBh4F,EAAImD,KAAO6yF,EAAKz2G,MAAM,EAAGgvB,KAEzBvO,EAAIrlB,KAAOq7G,EAAKz2G,MAAM04G,EAAWD,GACjCh4F,EAAImD,KAAO6yF,EAAKz2G,MAAM04G,EAAW1pF,IAEnCvO,EAAI43F,IAAM5B,EAAKz2G,MAAMy4G,EAAUzpF,IAG7B0pF,EAAY,EAAGj4F,EAAIq4F,IAAMrC,EAAKz2G,MAAM,EAAG04G,EAAY,GAAYtB,IAAY32F,EAAIq4F,IAAM,KAElFr4F,CACT,EAEAo4F,IAAK,IACLE,UAAW,IACXC,MAAO,KACPhC,MAAO,MAGTA,EAAMA,MAAQA,EAEdjrH,EAAOD,QAAUkrH,aC/gBjB,IAOIiC,EACAC,EARA/jG,EAAUppB,EAAOD,QAAU,CAAC,EAUhC,SAASqtH,IACL,MAAM,IAAI/+G,MAAM,kCACpB,CACA,SAASg/G,IACL,MAAM,IAAIh/G,MAAM,oCACpB,CAqBA,SAASi/G,EAAWn8E,GAChB,GAAI+7E,IAAqBv9G,WAErB,OAAOA,WAAWwhC,EAAK,GAG3B,IAAK+7E,IAAqBE,IAAqBF,IAAqBv9G,WAEhE,OADAu9G,EAAmBv9G,WACZA,WAAWwhC,EAAK,GAE3B,IAEI,OAAO+7E,EAAiB/7E,EAAK,EACjC,CAAE,MAAM1nB,GACJ,IAEI,OAAOyjG,EAAiB7qH,KAAK,KAAM8uC,EAAK,EAC5C,CAAE,MAAM1nB,GAEJ,OAAOyjG,EAAiB7qH,KAAK6F,KAAMipC,EAAK,EAC5C,CACJ,CAGJ,EA5CC,WACG,IAEQ+7E,EADsB,mBAAfv9G,WACYA,WAEAy9G,CAE3B,CAAE,MAAO3jG,GACLyjG,EAAmBE,CACvB,CACA,IAEQD,EADwB,mBAAjB74G,aACcA,aAEA+4G,CAE7B,CAAE,MAAO5jG,GACL0jG,EAAqBE,CACzB,CACJ,CAnBA,GAwEA,IAEIE,EAFA15G,EAAQ,GACR25G,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaD,IAGlBC,GAAW,EACPD,EAAa1pH,OACbgQ,EAAQ05G,EAAa/iH,OAAOqJ,GAE5B45G,GAAc,EAEd55G,EAAMhQ,QACN8pH,IAER,CAEA,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAIr+C,EAAUm+C,EAAWI,GACzBF,GAAW,EAGX,IADA,IAAIh+F,EAAM3b,EAAMhQ,OACV2rB,GAAK,CAGP,IAFA+9F,EAAe15G,EACfA,EAAQ,KACC45G,EAAaj+F,GACd+9F,GACAA,EAAaE,GAAY7N,MAGjC6N,GAAc,EACdj+F,EAAM3b,EAAMhQ,MAChB,CACA0pH,EAAe,KACfC,GAAW,EAnEf,SAAyBI,GACrB,GAAIT,IAAuB74G,aAEvB,OAAOA,aAAas5G,GAGxB,IAAKT,IAAuBE,IAAwBF,IAAuB74G,aAEvE,OADA64G,EAAqB74G,aACdA,aAAas5G,GAExB,IAEI,OAAOT,EAAmBS,EAC9B,CAAE,MAAOnkG,GACL,IAEI,OAAO0jG,EAAmB9qH,KAAK,KAAMurH,EACzC,CAAE,MAAOnkG,GAGL,OAAO0jG,EAAmB9qH,KAAK6F,KAAM0lH,EACzC,CACJ,CAIJ,CA0CIC,CAAgB1+C,EAlBhB,CAmBJ,CAgBA,SAAS2+C,EAAK38E,EAAKovC,GACfr4E,KAAKipC,IAAMA,EACXjpC,KAAKq4E,MAAQA,CACjB,CAWA,SAASgtB,IAAQ,CA5BjBnkF,EAAQ2kG,SAAW,SAAU58E,GACzB,IAAIz1B,EAAO,IAAItO,MAAMxJ,UAAUC,OAAS,GACxC,GAAID,UAAUC,OAAS,EACnB,IAAK,IAAIF,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAClC+X,EAAK/X,EAAI,GAAKC,UAAUD,GAGhCkQ,EAAMtQ,KAAK,IAAIuqH,EAAK38E,EAAKz1B,IACJ,IAAjB7H,EAAMhQ,QAAiB2pH,GACvBF,EAAWK,EAEnB,EAOAG,EAAKvsH,UAAUq+G,IAAM,WACjB13G,KAAKipC,IAAI3tC,MAAM,KAAM0E,KAAKq4E,MAC9B,EACAn3D,EAAQ3J,MAAQ,UAChB2J,EAAQo4C,SAAU,EAClBp4C,EAAQ1kB,IAAM,CAAC,EACf0kB,EAAQ4kG,KAAO,GACf5kG,EAAQ1a,QAAU,GAClB0a,EAAQ6kG,SAAW,CAAC,EAIpB7kG,EAAQq/D,GAAK8kB,EACbnkF,EAAQ8kG,YAAc3gB,EACtBnkF,EAAQikF,KAAOE,EACfnkF,EAAQo/D,IAAM+kB,EACdnkF,EAAQ+kG,eAAiB5gB,EACzBnkF,EAAQglG,mBAAqB7gB,EAC7BnkF,EAAQilG,KAAO9gB,EACfnkF,EAAQklG,gBAAkB/gB,EAC1BnkF,EAAQmlG,oBAAsBhhB,EAE9BnkF,EAAQ26F,UAAY,SAAU10G,GAAQ,MAAO,EAAG,EAEhD+Z,EAAQ21E,QAAU,SAAU1vF,GACxB,MAAM,IAAIhB,MAAM,mCACpB,EAEA+a,EAAQ8hG,IAAM,WAAc,MAAO,GAAI,EACvC9hG,EAAQolG,MAAQ,SAAUzB,GACtB,MAAM,IAAI1+G,MAAM,iCACpB,EACA+a,EAAQqlG,MAAQ,WAAa,OAAO,CAAG,gCCrLvCzsH,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIjD,EAA4B,mBAAXE,QAAoD,iBAApBA,OAAOC,SAAwB,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,mBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAIvQm3C,EAAU51C,EAFD,EAAQ,QAMjBgsH,EAA+BhsH,EAFD,EAAQ,QAI1C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAiB9FpB,EAAA,SAAkB,EAAI2uH,EAA6B53G,UAfnD,SAAkBvS,EAAOo7C,EAAU8K,EAAepkB,EAAUgmE,GAC1D,IAAIsiB,EAAYpqH,EAAMo7C,GAClBivE,OAAgC,IAAdD,EAA4B,YAAcztH,EAAQytH,GAExE,OAAIr2E,EAAQxhC,QAAQokC,eAAeyzE,GAC1B,IAAItgH,MAAM,WAAag4B,EAAW,KAAOgmE,EAA/B,uCAA6F5hD,EAA7F,qJAGD,WAAbmkE,GAAqD,mBAArBD,EAAUz3G,QAAiD,IAAvBy3G,EAAUjvC,SAI5E,KAHE,IAAIrxE,MAAM,WAAag4B,EAAW,KAAOgmE,EAAe,eAAiBsiB,EAA/D,kBAAqGlkE,EAArG,gDAIrB,IAGAzqD,EAAOD,QAAUA,EAAiB,sCChClCiC,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAAkB8uH,EAElB,IAIgC1tH,EAF5By4E,GAE4Bz4E,EAJjB,EAAQ,SAI8BA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAEnF2tH,EAAS,CAAC,EAEd,SAASD,EAAWE,EAAWC,GAC7B,OAAO,SAAkBzqH,EAAOo7C,EAAU8K,EAAepkB,EAAUgmE,GACjE,IAAI4iB,EAAoBxkE,GAAiB,gBACrCykE,EAAmB7iB,GAAgB1sD,EAEvC,GAAuB,MAAnBp7C,EAAMo7C,GAAmB,CAC3B,IAAIwvE,EAAa1kE,EAAgB,IAAM9K,GAEvC,EAAIi6B,EAAU9iE,SAASg4G,EAAOK,GAAa,OAAS9oF,EAAW,KAAO6oF,EAA3B,SAA+DD,EAAoB,oBAAsBD,EAAS,KAE7JF,EAAOK,IAAc,CACvB,CAEA,IAAK,IAAI76C,EAAO1wE,UAAUC,OAAQ6X,EAAOtO,MAAMknE,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAC9F74D,EAAK64D,EAAO,GAAK3wE,UAAU2wE,GAG7B,OAAOw6C,EAAUvrH,WAAMyH,EAAW,CAAC1G,EAAOo7C,EAAU8K,EAAepkB,EAAUgmE,GAAc7hG,OAAOkR,GACpG,CACF,CAOAmzG,EAAWO,aAJX,WACEN,EAAS,CAAC,CACZ,EAKA9uH,EAAOD,QAAUA,EAAiB,sCC1ClCiC,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAEIm0C,EAAU51C,EAFD,EAAQ,QAIjB2sH,EAAW,EAAQ,MAInBX,EAA+BhsH,EAFD,EAAQ,QAI1C,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAgB9FpB,EAAA,SAAkB,EAAI2uH,EAA6B53G,UAdnD,SAAqBvS,EAAOo7C,EAAU8K,EAAepkB,EAAUgmE,GAC7D,IAAIsiB,EAAYpqH,EAAMo7C,GAEtB,OAAIrH,EAAQxhC,QAAQokC,eAAeyzE,GAC1B,IAAItgH,MAAM,WAAag4B,EAAW,KAAOgmE,EAA/B,uCAA6F5hD,EAA7F,oFAGd,EAAI4kE,EAASj+B,oBAAoBu9B,GAI/B,KAHE,IAAItgH,MAAM,WAAag4B,EAAW,KAAOgmE,EAAe,eAAiBsiB,EAA/D,kBAAqGlkE,EAArG,mFAIrB,IAGAzqD,EAAOD,QAAUA,EAAiB,oCC/BlCiC,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAA,QAYA,SAAoCuvH,GAClC,SAASC,EAAUlpH,EAAY9B,EAAOo7C,EAAU8K,EAAepkB,EAAUgmE,GACvE,IAAI4iB,EAAoBxkE,GAAiB,gBACrCykE,EAAmB7iB,GAAgB1sD,EAEvC,GAAuB,MAAnBp7C,EAAMo7C,GACR,OAAIt5C,EACK,IAAIgI,MAAM,YAAcg4B,EAAW,KAAO6oF,EAAhC,2BAAsFD,EAAoB,MAGtH,KAGT,IAAK,IAAI36C,EAAO1wE,UAAUC,OAAQ6X,EAAOtO,MAAMknE,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAC9F74D,EAAK64D,EAAO,GAAK3wE,UAAU2wE,GAG7B,OAAO+6C,EAAS9rH,WAAMyH,EAAW,CAAC1G,EAAOo7C,EAAUsvE,EAAmB5oF,EAAU6oF,GAAkB1kH,OAAOkR,GAC3G,CAEA,IAAI8zG,EAAmBD,EAAUlnH,KAAK,MAAM,GAG5C,OAFAmnH,EAAiBnpH,WAAakpH,EAAUlnH,KAAK,MAAM,GAE5CmnH,CACT,EACAxvH,EAAOD,QAAUA,EAAiB,oCCjCrB,IAAI+N,EAAE,mBAAoB1M,QAAQA,OAAOib,IAAIuV,EAAE9jB,EAAE1M,OAAOib,IAAI,iBAAiB,MAAMsP,EAAE7d,EAAE1M,OAAOib,IAAI,gBAAgB,MAAMoN,EAAE3b,EAAE1M,OAAOib,IAAI,kBAAkB,MAAM8f,EAAEruB,EAAE1M,OAAOib,IAAI,qBAAqB,MAAMvb,EAAEgN,EAAE1M,OAAOib,IAAI,kBAAkB,MAAMiT,EAAExhB,EAAE1M,OAAOib,IAAI,kBAAkB,MAAM6S,EAAEphB,EAAE1M,OAAOib,IAAI,iBAAiB,MAAMyT,EAAEhiB,EAAE1M,OAAOib,IAAI,oBAAoB,MAAMwU,EAAE/iB,EAAE1M,OAAOib,IAAI,yBAAyB,MAAM7N,EAAEV,EAAE1M,OAAOib,IAAI,qBAAqB,MAAMmY,EAAE1mB,EAAE1M,OAAOib,IAAI,kBAAkB,MAAMqzE,EAAE5hF,EACpf1M,OAAOib,IAAI,uBAAuB,MAAMhP,EAAES,EAAE1M,OAAOib,IAAI,cAAc,MAAMoP,EAAE3d,EAAE1M,OAAOib,IAAI,cAAc,MAAMgT,EAAEvhB,EAAE1M,OAAOib,IAAI,eAAe,MAAMszE,EAAE7hF,EAAE1M,OAAOib,IAAI,qBAAqB,MAAM8e,EAAErtB,EAAE1M,OAAOib,IAAI,mBAAmB,MAAMiwC,EAAEx+C,EAAE1M,OAAOib,IAAI,eAAe,MAClQ,SAASyY,EAAEyC,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIq4D,EAAEr4D,EAAEs4D,SAAS,OAAOD,GAAG,KAAKh+D,EAAE,OAAO2F,EAAEA,EAAEtgB,MAAQ,KAAK6Y,EAAE,KAAKe,EAAE,KAAKpH,EAAE,KAAK3oB,EAAE,KAAKq7B,EAAE,KAAK3H,EAAE,OAAO+C,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEs4D,UAAY,KAAK3gE,EAAE,KAAK1gB,EAAE,KAAKid,EAAE,KAAKpe,EAAE,KAAKiiB,EAAE,OAAOiI,EAAE,QAAQ,OAAOq4D,GAAG,KAAKjkE,EAAE,OAAOikE,EAAE,CAAC,CAAC,SAASE,EAAEv4D,GAAG,OAAOzC,EAAEyC,KAAK1G,CAAC,CAAC9wB,EAAQgwF,UAAUjgE,EAAE/vB,EAAQiwF,eAAen/D,EAAE9wB,EAAQkwF,gBAAgB/gE,EAAEnvB,EAAQmwF,gBAAgB5gE,EAAEvvB,EAAQ09C,QAAQ7rB,EAAE7xB,EAAQgvF,WAAWvgF,EAAEzO,EAAQowF,SAAS1mE,EAAE1pB,EAAQqwF,KAAK3kE,EAAE1rB,EAAQivF,KAAK3hF,EAAEtN,EAAQs4E,OAAO1sD,EAChf5rB,EAAQswF,SAASvvF,EAAEf,EAAQuwF,WAAWn0D,EAAEp8B,EAAQwwF,SAAS/7D,EAAEz0B,EAAQywF,YAAY,SAASj5D,GAAG,OAAOu4D,EAAEv4D,IAAIzC,EAAEyC,KAAKzH,CAAC,EAAE/vB,EAAQ0wF,iBAAiBX,EAAE/vF,EAAQ2wF,kBAAkB,SAASn5D,GAAG,OAAOzC,EAAEyC,KAAKrI,CAAC,EAAEnvB,EAAQ4wF,kBAAkB,SAASp5D,GAAG,OAAOzC,EAAEyC,KAAKjI,CAAC,EAAEvvB,EAAQ6wF,UAAU,SAASr5D,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAEs4D,WAAWj+D,CAAC,EAAE7xB,EAAQ8wF,aAAa,SAASt5D,GAAG,OAAOzC,EAAEyC,KAAK/oB,CAAC,EAAEzO,EAAQ+wF,WAAW,SAASv5D,GAAG,OAAOzC,EAAEyC,KAAK9N,CAAC,EAAE1pB,EAAQgxF,OAAO,SAASx5D,GAAG,OAAOzC,EAAEyC,KAAK9L,CAAC,EAC1d1rB,EAAQ+uF,OAAO,SAASv3D,GAAG,OAAOzC,EAAEyC,KAAKlqB,CAAC,EAAEtN,EAAQixF,SAAS,SAASz5D,GAAG,OAAOzC,EAAEyC,KAAK5L,CAAC,EAAE5rB,EAAQkxF,WAAW,SAAS15D,GAAG,OAAOzC,EAAEyC,KAAKz2B,CAAC,EAAEf,EAAQmxF,aAAa,SAAS35D,GAAG,OAAOzC,EAAEyC,KAAK4E,CAAC,EAAEp8B,EAAQoxF,WAAW,SAAS55D,GAAG,OAAOzC,EAAEyC,KAAK/C,CAAC,EAC1Oz0B,EAAQqxF,mBAAmB,SAAS75D,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAI9N,GAAG8N,IAAI1G,GAAG0G,IAAIz2B,GAAGy2B,IAAI4E,GAAG5E,IAAI/C,GAAG+C,IAAIm4D,GAAG,iBAAkBn4D,GAAG,OAAOA,IAAIA,EAAEs4D,WAAWpkE,GAAG8L,EAAEs4D,WAAWxiF,GAAGkqB,EAAEs4D,WAAWvgE,GAAGiI,EAAEs4D,WAAW3gE,GAAGqI,EAAEs4D,WAAWrhF,GAAG+oB,EAAEs4D,WAAWF,GAAGp4D,EAAEs4D,WAAW10D,GAAG5D,EAAEs4D,WAAWvjC,GAAG/0B,EAAEs4D,WAAWxgE,EAAE,EAAEtvB,EAAQsxF,OAAOv8D,+BCXjU90B,EAAOD,QAAU,EAAjB,+BC0DFC,EAAOD,QA3CO,WAAY,gCCT1B,IAAI0vH,EAAuB,EAAQ,OAEnC,SAASC,IAAiB,CAC1B,SAASC,IAA0B,CACnCA,EAAuBC,kBAAoBF,EAE3C1vH,EAAOD,QAAU,WACf,SAAS8vH,EAAKtrH,EAAOo7C,EAAU8K,EAAepkB,EAAUgmE,EAAcyjB,GACpE,GAAIA,IAAWL,EAAf,CAIA,IAAIzjH,EAAM,IAAIqC,MACZ,mLAKF,MADArC,EAAIqD,KAAO,sBACLrD,CAPN,CAQF,CAEA,SAAS+jH,IACP,OAAOF,CACT,CAHAA,EAAKxpH,WAAawpH,EAMlB,IAAIG,EAAiB,CACnBzvC,MAAOsvC,EACPI,OAAQJ,EACR1pH,KAAM0pH,EACNhpH,KAAMgpH,EACNrpH,OAAQqpH,EACR9sH,OAAQ8sH,EACRzpH,OAAQypH,EACRtqB,OAAQsqB,EAERK,IAAKL,EACL/zE,QAASi0E,EACTzlG,QAASulG,EACTM,YAAaN,EACbO,WAAYL,EACZtpH,KAAMopH,EACNpoE,SAAUsoE,EACVtxE,MAAOsxE,EACPl0E,UAAWk0E,EACXM,MAAON,EACPO,MAAOP,EAEPQ,eAAgBZ,EAChBC,kBAAmBF,GAKrB,OAFAM,EAAeQ,UAAYR,EAEpBA,CACT,mBC/CEhwH,EAAOD,QAAU,EAAQ,MAAR,2BCNnBC,EAAOD,QAFoB,6ECEd,IAAI0wH,EAAG,EAAQ,OAAS5/F,EAAE,EAAQ,MAAiBxjB,EAAE,EAAQ,OAAa,SAASi/C,EAAE/0B,GAAG,IAAI,IAAIzpB,EAAE,yDAAyDypB,EAAE3F,EAAE,EAAEA,EAAEhuB,UAAUC,OAAO+tB,IAAI9jB,GAAG,WAAW4iH,mBAAmB9sH,UAAUguB,IAAI,MAAM,yBAAyB2F,EAAE,WAAWzpB,EAAE,gHAAgH,CAAC,IAAI2iH,EAAG,MAAMpiH,MAAMi+C,EAAE,MAAM,IAAIqkE,EAAG,IAAIxlF,IAAIylF,EAAG,CAAC,EAAE,SAASC,EAAGt5F,EAAEzpB,GAAGyyG,EAAGhpF,EAAEzpB,GAAGyyG,EAAGhpF,EAAE,UAAUzpB,EAAE,CAC7e,SAASyyG,EAAGhpF,EAAEzpB,GAAW,IAAR8iH,EAAGr5F,GAAGzpB,EAAMypB,EAAE,EAAEA,EAAEzpB,EAAEjK,OAAO0zB,IAAIo5F,EAAG9kF,IAAI/9B,EAAEypB,GAAG,CAC5D,IAAIu5F,IAAK,oBAAqBjwH,aAAQ,IAAqBA,OAAOopB,eAAU,IAAqBppB,OAAOopB,SAASpkB,eAAekrH,EAAG,8VAA8VC,EAAGhvH,OAAOT,UAAUa,eACrf6uH,EAAG,CAAC,EAAEC,EAAG,CAAC,EAC8M,SAASC,EAAE55F,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,EAAEr7B,GAAGoH,KAAKkpH,gBAAgB,IAAItjH,GAAG,IAAIA,GAAG,IAAIA,EAAE5F,KAAKmpH,cAAc1lG,EAAEzjB,KAAKopH,mBAAmB7nG,EAAEvhB,KAAKqpH,gBAAgB3/F,EAAE1pB,KAAKqqG,aAAah7E,EAAErvB,KAAK+O,KAAKnJ,EAAE5F,KAAKspH,YAAYr1F,EAAEj0B,KAAKupH,kBAAkB3wH,CAAC,CAAC,IAAI4wH,EAAE,CAAC,EACpb,uIAAuIphG,MAAM,KAAKvsB,SAAQ,SAASwzB,GAAGm6F,EAAEn6F,GAAG,IAAI45F,EAAE55F,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAexzB,SAAQ,SAASwzB,GAAG,IAAIzpB,EAAEypB,EAAE,GAAGm6F,EAAE5jH,GAAG,IAAIqjH,EAAErjH,EAAE,GAAE,EAAGypB,EAAE,GAAG,MAAK,GAAG,EAAG,IAAG,CAAC,kBAAkB,YAAY,aAAa,SAASxzB,SAAQ,SAASwzB,GAAGm6F,EAAEn6F,GAAG,IAAI45F,EAAE55F,EAAE,GAAE,EAAGA,EAAEpD,cAAc,MAAK,GAAG,EAAG,IAC1e,CAAC,cAAc,4BAA4B,YAAY,iBAAiBpwB,SAAQ,SAASwzB,GAAGm6F,EAAEn6F,GAAG,IAAI45F,EAAE55F,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,8OAA8OjH,MAAM,KAAKvsB,SAAQ,SAASwzB,GAAGm6F,EAAEn6F,GAAG,IAAI45F,EAAE55F,EAAE,GAAE,EAAGA,EAAEpD,cAAc,MAAK,GAAG,EAAG,IACxb,CAAC,UAAU,WAAW,QAAQ,YAAYpwB,SAAQ,SAASwzB,GAAGm6F,EAAEn6F,GAAG,IAAI45F,EAAE55F,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,YAAYxzB,SAAQ,SAASwzB,GAAGm6F,EAAEn6F,GAAG,IAAI45F,EAAE55F,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,OAAO,OAAO,OAAO,QAAQxzB,SAAQ,SAASwzB,GAAGm6F,EAAEn6F,GAAG,IAAI45F,EAAE55F,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,SAASxzB,SAAQ,SAASwzB,GAAGm6F,EAAEn6F,GAAG,IAAI45F,EAAE55F,EAAE,GAAE,EAAGA,EAAEpD,cAAc,MAAK,GAAG,EAAG,IAAG,IAAIw9F,EAAG,gBAAgB,SAASC,EAAGr6F,GAAG,OAAOA,EAAE,GAAGka,aAAa,CAIxZ,SAASogF,EAAGt6F,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAEioG,EAAEtvH,eAAe0L,GAAG4jH,EAAE5jH,GAAG,MAAW,OAAO2b,EAAE,IAAIA,EAAExS,MAAK0U,GAAO,EAAE7d,EAAEjK,SAAS,MAAMiK,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,OAPnJ,SAAYypB,EAAEzpB,EAAE8jB,EAAEjG,GAAG,GAAG,MAAO7d,GADgG,SAAYypB,EAAEzpB,EAAE8jB,EAAEjG,GAAG,GAAG,OAAOiG,GAAG,IAAIA,EAAE3a,KAAK,OAAM,EAAG,cAAcnJ,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAG6d,IAAc,OAAOiG,GAASA,EAAEw/F,gBAAmD,WAAnC75F,EAAEA,EAAEpD,cAAclgB,MAAM,EAAE,KAAsB,UAAUsjB,GAAE,QAAQ,OAAM,EAAG,CAClUu6F,CAAGv6F,EAAEzpB,EAAE8jB,EAAEjG,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOiG,EAAE,OAAOA,EAAE3a,MAAM,KAAK,EAAE,OAAOnJ,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOiqB,MAAMjqB,GAAG,KAAK,EAAE,OAAOiqB,MAAMjqB,IAAI,EAAEA,EAAE,OAAM,CAAE,CAOvDikH,CAAGjkH,EAAE8jB,EAAEnI,EAAEkC,KAAKiG,EAAE,MAAMjG,GAAG,OAAOlC,EARpL,SAAY8N,GAAG,QAAGy5F,EAAG3uH,KAAK6uH,EAAG35F,KAAey5F,EAAG3uH,KAAK4uH,EAAG15F,KAAew5F,EAAG//F,KAAKuG,GAAU25F,EAAG35F,IAAG,GAAG05F,EAAG15F,IAAG,GAAS,GAAE,CAQoEy6F,CAAGlkH,KAAK,OAAO8jB,EAAE2F,EAAE0tC,gBAAgBn3D,GAAGypB,EAAEw4B,aAAajiD,EAAE,GAAG8jB,IAAInI,EAAE8nG,gBAAgBh6F,EAAE9N,EAAE8oF,cAAc,OAAO3gF,EAAE,IAAInI,EAAExS,MAAQ,GAAG2a,GAAG9jB,EAAE2b,EAAE4nG,cAAc1lG,EAAElC,EAAE6nG,mBAAmB,OAAO1/F,EAAE2F,EAAE0tC,gBAAgBn3D,IAAa8jB,EAAE,KAAXnI,EAAEA,EAAExS,OAAc,IAAIwS,IAAG,IAAKmI,EAAE,GAAG,GAAGA,EAAEjG,EAAE4L,EAAE06F,eAAetmG,EAAE7d,EAAE8jB,GAAG2F,EAAEw4B,aAAajiD,EAAE8jB,KAAK,CAHje,0jCAA0jCtB,MAAM,KAAKvsB,SAAQ,SAASwzB,GAAG,IAAIzpB,EAAEypB,EAAE72B,QAAQixH,EACzmCC,GAAIF,EAAE5jH,GAAG,IAAIqjH,EAAErjH,EAAE,GAAE,EAAGypB,EAAE,MAAK,GAAG,EAAG,IAAG,2EAA2EjH,MAAM,KAAKvsB,SAAQ,SAASwzB,GAAG,IAAIzpB,EAAEypB,EAAE72B,QAAQixH,EAAGC,GAAIF,EAAE5jH,GAAG,IAAIqjH,EAAErjH,EAAE,GAAE,EAAGypB,EAAE,gCAA+B,GAAG,EAAG,IAAG,CAAC,WAAW,WAAW,aAAaxzB,SAAQ,SAASwzB,GAAG,IAAIzpB,EAAEypB,EAAE72B,QAAQixH,EAAGC,GAAIF,EAAE5jH,GAAG,IAAIqjH,EAAErjH,EAAE,GAAE,EAAGypB,EAAE,wCAAuC,GAAG,EAAG,IAAG,CAAC,WAAW,eAAexzB,SAAQ,SAASwzB,GAAGm6F,EAAEn6F,GAAG,IAAI45F,EAAE55F,EAAE,GAAE,EAAGA,EAAEpD,cAAc,MAAK,GAAG,EAAG,IACldu9F,EAAEQ,UAAU,IAAIf,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAcptH,SAAQ,SAASwzB,GAAGm6F,EAAEn6F,GAAG,IAAI45F,EAAE55F,EAAE,GAAE,EAAGA,EAAEpD,cAAc,MAAK,GAAG,EAAG,IAE5L,IAAIg+F,EAAG1B,EAAG2B,mDAAmDC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAChN,GAAG,mBAAoBjyH,QAAQA,OAAOib,IAAI,CAAC,IAAIi3G,EAAElyH,OAAOib,IAAIg2G,EAAGiB,EAAE,iBAAiBhB,EAAGgB,EAAE,gBAAgBf,EAAGe,EAAE,kBAAkBd,EAAGc,EAAE,qBAAqBb,EAAGa,EAAE,kBAAkBZ,EAAGY,EAAE,kBAAkBX,EAAGW,EAAE,iBAAiBV,EAAGU,EAAE,qBAAqBT,EAAGS,EAAE,kBAAkBR,EAAGQ,EAAE,uBAAuBP,EAAGO,EAAE,cAAcN,EAAGM,EAAE,cAAcL,EAAGK,EAAE,eAAeA,EAAE,eAAeJ,EAAGI,EAAE,mBAAmBH,EAAGG,EAAE,0BAA0BF,EAAGE,EAAE,mBAAmBD,EAAGC,EAAE,sBAAsB,CAC9d,IAAmLC,EAA/KC,EAAG,mBAAoBpyH,QAAQA,OAAOC,SAAS,SAASoyH,EAAGl8F,GAAG,OAAG,OAAOA,GAAG,iBAAkBA,EAAS,KAAwC,mBAAnCA,EAAEi8F,GAAIj8F,EAAEi8F,IAAKj8F,EAAE,eAA0CA,EAAE,IAAI,CAAQ,SAASm8F,EAAGn8F,GAAG,QAAG,IAASg8F,EAAG,IAAI,MAAMllH,OAAQ,CAAC,MAAMujB,GAAG,IAAI9jB,EAAE8jB,EAAEwwE,MAAM50E,OAAOsD,MAAM,gBAAgByiG,EAAGzlH,GAAGA,EAAE,IAAI,EAAE,CAAC,MAAM,KAAKylH,EAAGh8F,CAAC,CAAC,IAAIo8F,GAAG,EACjU,SAASC,EAAGr8F,EAAEzpB,GAAG,IAAIypB,GAAGo8F,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAI/hG,EAAEvjB,MAAMwlH,kBAAkBxlH,MAAMwlH,uBAAkB,EAAO,IAAI,GAAG/lH,EAAE,GAAGA,EAAE,WAAW,MAAMO,OAAQ,EAAErM,OAAOC,eAAe6L,EAAEvM,UAAU,QAAQ,CAACgB,IAAI,WAAW,MAAM8L,OAAQ,IAAI,iBAAkB6lE,SAASA,QAAQ4/C,UAAU,CAAC,IAAI5/C,QAAQ4/C,UAAUhmH,EAAE,GAAG,CAAC,MAAMohB,GAAG,IAAIvD,EAAEuD,CAAC,CAACglD,QAAQ4/C,UAAUv8F,EAAE,GAAGzpB,EAAE,KAAK,CAAC,IAAIA,EAAEzL,MAAM,CAAC,MAAM6sB,GAAGvD,EAAEuD,CAAC,CAACqI,EAAEl1B,KAAKyL,EAAEvM,UAAU,KAAK,CAAC,IAAI,MAAM8M,OAAQ,CAAC,MAAM6gB,GAAGvD,EAAEuD,CAAC,CAACqI,GAAG,CAAC,CAAC,MAAMrI,GAAG,GAAGA,GAAGvD,GAAG,iBAAkBuD,EAAEkzE,MAAM,CAAC,IAAI,IAAI34E,EAAEyF,EAAEkzE,MAAM9xE,MAAM,MACnf6L,EAAExQ,EAAEy2E,MAAM9xE,MAAM,MAAMxvB,EAAE2oB,EAAE5lB,OAAO,EAAEyrB,EAAE6M,EAAEt4B,OAAO,EAAE,GAAG/C,GAAG,GAAGwuB,GAAG7F,EAAE3oB,KAAKq7B,EAAE7M,IAAIA,IAAI,KAAK,GAAGxuB,GAAG,GAAGwuB,EAAExuB,IAAIwuB,IAAI,GAAG7F,EAAE3oB,KAAKq7B,EAAE7M,GAAG,CAAC,GAAG,IAAIxuB,GAAG,IAAIwuB,EAAG,MAAMxuB,IAAQ,IAAJwuB,GAAS7F,EAAE3oB,KAAKq7B,EAAE7M,GAAG,MAAM,KAAK7F,EAAE3oB,GAAGJ,QAAQ,WAAW,cAAc,GAAGI,GAAG,GAAGwuB,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQqkG,GAAG,EAAGtlH,MAAMwlH,kBAAkBjiG,CAAC,CAAC,OAAO2F,EAAEA,EAAEA,EAAEvxB,aAAauxB,EAAEloB,KAAK,IAAIqkH,EAAGn8F,GAAG,EAAE,CAC/T,SAASw8F,EAAGx8F,GAAG,OAAOA,EAAEoH,KAAK,KAAK,EAAE,OAAO+0F,EAAGn8F,EAAEtgB,MAAM,KAAK,GAAG,OAAOy8G,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAASE,EAAGr8F,EAAEtgB,MAAK,GAAM,KAAK,GAAG,OAAS28G,EAAGr8F,EAAEtgB,KAAKC,QAAO,GAAM,KAAK,GAAG,OAAS08G,EAAGr8F,EAAEtgB,KAAK+8G,SAAQ,GAAM,KAAK,EAAE,OAASJ,EAAGr8F,EAAEtgB,MAAK,GAAM,QAAQ,MAAM,GAAG,CACjU,SAASg9G,EAAG18F,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,mBAAoBA,EAAE,OAAOA,EAAEvxB,aAAauxB,EAAEloB,MAAM,KAAK,GAAG,iBAAkBkoB,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAKg7F,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,iBAAkBv7F,EAAE,OAAOA,EAAEs4D,UAAU,KAAK8iC,EAAG,OAAOp7F,EAAEvxB,aAAa,WAAW,YAAY,KAAK0sH,EAAG,OAAOn7F,EAAE30B,SAASoD,aAAa,WAAW,YAAY,KAAK4sH,EAAG,IAAI9kH,EAAEypB,EAAErgB,OACnd,OAD0dpJ,EAAEA,EAAE9H,aAAa8H,EAAEuB,MAAM,GAC5ekoB,EAAEvxB,cAAc,KAAK8H,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAKilH,EAAG,OAAOkB,EAAG18F,EAAEtgB,MAAM,KAAKg8G,EAAG,OAAOgB,EAAG18F,EAAEy8F,SAAS,KAAKhB,EAAGllH,EAAEypB,EAAE28F,SAAS38F,EAAEA,EAAE48F,MAAM,IAAI,OAAOF,EAAG18F,EAAEzpB,GAAG,CAAC,MAAM8jB,GAAG,EAAE,OAAO,IAAI,CAAC,SAASwiG,EAAG78F,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,QAAQ,MAAM,GAAG,CAAC,SAAS88F,EAAG98F,GAAG,IAAIzpB,EAAEypB,EAAEtgB,KAAK,OAAOsgB,EAAEA,EAAEy0C,WAAW,UAAUz0C,EAAEpD,gBAAgB,aAAarmB,GAAG,UAAUA,EAAE,CAE5Z,SAASwmH,EAAG/8F,GAAGA,EAAEg9F,gBAAgBh9F,EAAEg9F,cADvD,SAAYh9F,GAAG,IAAIzpB,EAAEumH,EAAG98F,GAAG,UAAU,QAAQ3F,EAAE5vB,OAAOE,yBAAyBq1B,EAAEj2B,YAAYC,UAAUuM,GAAG6d,EAAE,GAAG4L,EAAEzpB,GAAG,IAAIypB,EAAEn1B,eAAe0L,SAAI,IAAqB8jB,GAAG,mBAAoBA,EAAE/vB,KAAK,mBAAoB+vB,EAAErvB,IAAI,CAAC,IAAIknB,EAAEmI,EAAE/vB,IAAIs6B,EAAEvK,EAAErvB,IAAiL,OAA7KP,OAAOC,eAAes1B,EAAEzpB,EAAE,CAAC1J,cAAa,EAAGvC,IAAI,WAAW,OAAO4nB,EAAEpnB,KAAK6F,KAAK,EAAE3F,IAAI,SAASg1B,GAAG5L,EAAE,GAAG4L,EAAE4E,EAAE95B,KAAK6F,KAAKqvB,EAAE,IAAIv1B,OAAOC,eAAes1B,EAAEzpB,EAAE,CAACxK,WAAWsuB,EAAEtuB,aAAmB,CAAC6uE,SAAS,WAAW,OAAOxmD,CAAC,EAAE6oG,SAAS,SAASj9F,GAAG5L,EAAE,GAAG4L,CAAC,EAAEk9F,aAAa,WAAWl9F,EAAEg9F,cACxf,YAAYh9F,EAAEzpB,EAAE,EAAE,CAAC,CAAkD4mH,CAAGn9F,GAAG,CAAC,SAASo9F,EAAGp9F,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIzpB,EAAEypB,EAAEg9F,cAAc,IAAIzmH,EAAE,OAAM,EAAG,IAAI8jB,EAAE9jB,EAAEqkE,WAAexmD,EAAE,GAAqD,OAAlD4L,IAAI5L,EAAE0oG,EAAG98F,GAAGA,EAAE1S,QAAQ,OAAO,QAAQ0S,EAAEpzB,QAAOozB,EAAE5L,KAAaiG,IAAG9jB,EAAE0mH,SAASj9F,IAAG,EAAM,CAAC,SAASq9F,EAAGr9F,GAAwD,QAAG,KAAxDA,EAAEA,IAAI,oBAAqBtN,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOsN,EAAEo6B,eAAep6B,EAAEzhB,IAAI,CAAC,MAAMhI,GAAG,OAAOypB,EAAEzhB,IAAI,CAAC,CACpa,SAAS++G,EAAGt9F,EAAEzpB,GAAG,IAAI8jB,EAAE9jB,EAAE+W,QAAQ,OAAOgM,EAAE,CAAC,EAAE/iB,EAAE,CAAC6Y,oBAAe,EAAOd,kBAAa,EAAO1hB,WAAM,EAAO0gB,QAAQ,MAAM+M,EAAEA,EAAE2F,EAAEu9F,cAAcC,gBAAgB,CAAC,SAASC,GAAGz9F,EAAEzpB,GAAG,IAAI8jB,EAAE,MAAM9jB,EAAE+X,aAAa,GAAG/X,EAAE+X,aAAa8F,EAAE,MAAM7d,EAAE+W,QAAQ/W,EAAE+W,QAAQ/W,EAAE6Y,eAAeiL,EAAEwiG,EAAG,MAAMtmH,EAAE3J,MAAM2J,EAAE3J,MAAMytB,GAAG2F,EAAEu9F,cAAc,CAACC,eAAeppG,EAAE+mF,aAAa9gF,EAAEqjG,WAAW,aAAannH,EAAEmJ,MAAM,UAAUnJ,EAAEmJ,KAAK,MAAMnJ,EAAE+W,QAAQ,MAAM/W,EAAE3J,MAAM,CAAC,SAAS+wH,GAAG39F,EAAEzpB,GAAe,OAAZA,EAAEA,EAAE+W,UAAiBgtG,EAAGt6F,EAAE,UAAUzpB,GAAE,EAAG,CAC9d,SAASqnH,GAAG59F,EAAEzpB,GAAGonH,GAAG39F,EAAEzpB,GAAG,IAAI8jB,EAAEwiG,EAAGtmH,EAAE3J,OAAOwnB,EAAE7d,EAAEmJ,KAAK,GAAG,MAAM2a,EAAK,WAAWjG,GAAM,IAAIiG,GAAG,KAAK2F,EAAEpzB,OAAOozB,EAAEpzB,OAAOytB,KAAE2F,EAAEpzB,MAAM,GAAGytB,GAAO2F,EAAEpzB,QAAQ,GAAGytB,IAAI2F,EAAEpzB,MAAM,GAAGytB,QAAQ,GAAG,WAAWjG,GAAG,UAAUA,EAA8B,YAA3B4L,EAAE0tC,gBAAgB,SAAgBn3D,EAAE1L,eAAe,SAASgzH,GAAG79F,EAAEzpB,EAAEmJ,KAAK2a,GAAG9jB,EAAE1L,eAAe,iBAAiBgzH,GAAG79F,EAAEzpB,EAAEmJ,KAAKm9G,EAAGtmH,EAAE+X,eAAe,MAAM/X,EAAE+W,SAAS,MAAM/W,EAAE6Y,iBAAiB4Q,EAAE5Q,iBAAiB7Y,EAAE6Y,eAAe,CACla,SAAS7d,GAAGyuB,EAAEzpB,EAAE8jB,GAAG,GAAG9jB,EAAE1L,eAAe,UAAU0L,EAAE1L,eAAe,gBAAgB,CAAC,IAAIupB,EAAE7d,EAAEmJ,KAAK,KAAK,WAAW0U,GAAG,UAAUA,QAAG,IAAS7d,EAAE3J,OAAO,OAAO2J,EAAE3J,OAAO,OAAO2J,EAAE,GAAGypB,EAAEu9F,cAAcpiB,aAAa9gF,GAAG9jB,IAAIypB,EAAEpzB,QAAQozB,EAAEpzB,MAAM2J,GAAGypB,EAAE1R,aAAa/X,CAAC,CAAU,MAAT8jB,EAAE2F,EAAEloB,QAAckoB,EAAEloB,KAAK,IAAIkoB,EAAE5Q,iBAAiB4Q,EAAEu9F,cAAcC,eAAe,KAAKnjG,IAAI2F,EAAEloB,KAAKuiB,EAAE,CACzV,SAASwjG,GAAG79F,EAAEzpB,EAAE8jB,GAAM,WAAW9jB,GAAG8mH,EAAGr9F,EAAEoxD,iBAAiBpxD,IAAE,MAAM3F,EAAE2F,EAAE1R,aAAa,GAAG0R,EAAEu9F,cAAcpiB,aAAan7E,EAAE1R,eAAe,GAAG+L,IAAI2F,EAAE1R,aAAa,GAAG+L,GAAE,CAAsF,SAASyjG,GAAG99F,EAAEzpB,GAA6D,OAA1DypB,EAAE1G,EAAE,CAAC9qB,cAAS,GAAQ+H,IAAMA,EAAlI,SAAYypB,GAAG,IAAIzpB,EAAE,GAAuD,OAApD2iH,EAAGx1E,SAASl3C,QAAQwzB,GAAE,SAASA,GAAG,MAAMA,IAAIzpB,GAAGypB,EAAE,IAAUzpB,CAAC,CAAgDwnH,CAAGxnH,EAAE/H,aAAUwxB,EAAExxB,SAAS+H,GAASypB,CAAC,CACxU,SAASvB,GAAGuB,EAAEzpB,EAAE8jB,EAAEjG,GAAe,GAAZ4L,EAAEA,EAAEtuB,QAAW6E,EAAE,CAACA,EAAE,CAAC,EAAE,IAAI,IAAI2b,EAAE,EAAEA,EAAEmI,EAAE/tB,OAAO4lB,IAAI3b,EAAE,IAAI8jB,EAAEnI,KAAI,EAAG,IAAImI,EAAE,EAAEA,EAAE2F,EAAE1zB,OAAO+tB,IAAInI,EAAE3b,EAAE1L,eAAe,IAAIm1B,EAAE3F,GAAGztB,OAAOozB,EAAE3F,GAAGvZ,WAAWoR,IAAI8N,EAAE3F,GAAGvZ,SAASoR,GAAGA,GAAGkC,IAAI4L,EAAE3F,GAAGqxC,iBAAgB,EAAG,KAAK,CAAmB,IAAlBrxC,EAAE,GAAGwiG,EAAGxiG,GAAG9jB,EAAE,KAAS2b,EAAE,EAAEA,EAAE8N,EAAE1zB,OAAO4lB,IAAI,CAAC,GAAG8N,EAAE9N,GAAGtlB,QAAQytB,EAAiD,OAA9C2F,EAAE9N,GAAGpR,UAAS,OAAGsT,IAAI4L,EAAE9N,GAAGw5C,iBAAgB,IAAW,OAAOn1D,GAAGypB,EAAE9N,GAAGhlB,WAAWqJ,EAAEypB,EAAE9N,GAAG,CAAC,OAAO3b,IAAIA,EAAEuK,UAAS,EAAG,CAAC,CACxY,SAASk9G,GAAGh+F,EAAEzpB,GAAG,GAAG,MAAMA,EAAE0nH,wBAAwB,MAAMnnH,MAAMi+C,EAAE,KAAK,OAAOz7B,EAAE,CAAC,EAAE/iB,EAAE,CAAC3J,WAAM,EAAO0hB,kBAAa,EAAO9f,SAAS,GAAGwxB,EAAEu9F,cAAcpiB,cAAc,CAAC,SAAS+iB,GAAGl+F,EAAEzpB,GAAG,IAAI8jB,EAAE9jB,EAAE3J,MAAM,GAAG,MAAMytB,EAAE,CAA+B,GAA9BA,EAAE9jB,EAAE/H,SAAS+H,EAAEA,EAAE+X,aAAgB,MAAM+L,EAAE,CAAC,GAAG,MAAM9jB,EAAE,MAAMO,MAAMi+C,EAAE,KAAK,GAAGl/C,MAAMwgC,QAAQhc,GAAG,CAAC,KAAK,GAAGA,EAAE/tB,QAAQ,MAAMwK,MAAMi+C,EAAE,KAAK16B,EAAEA,EAAE,EAAE,CAAC9jB,EAAE8jB,CAAC,CAAC,MAAM9jB,IAAIA,EAAE,IAAI8jB,EAAE9jB,CAAC,CAACypB,EAAEu9F,cAAc,CAACpiB,aAAa0hB,EAAGxiG,GAAG,CAClZ,SAAS8jG,GAAGn+F,EAAEzpB,GAAG,IAAI8jB,EAAEwiG,EAAGtmH,EAAE3J,OAAOwnB,EAAEyoG,EAAGtmH,EAAE+X,cAAc,MAAM+L,KAAIA,EAAE,GAAGA,KAAM2F,EAAEpzB,QAAQozB,EAAEpzB,MAAMytB,GAAG,MAAM9jB,EAAE+X,cAAc0R,EAAE1R,eAAe+L,IAAI2F,EAAE1R,aAAa+L,IAAI,MAAMjG,IAAI4L,EAAE1R,aAAa,GAAG8F,EAAE,CAAC,SAASgqG,GAAGp+F,GAAG,IAAIzpB,EAAEypB,EAAE4qD,YAAYr0E,IAAIypB,EAAEu9F,cAAcpiB,cAAc,KAAK5kG,GAAG,OAAOA,IAAIypB,EAAEpzB,MAAM2J,EAAE,CAAC,IAAI8nH,GAAG,CAACC,KAAK,+BAA+BC,OAAO,qCAAqC38E,IAAI,8BAC9X,SAAS48E,GAAGx+F,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,+BAA+B,CAAC,SAASy+F,GAAGz+F,EAAEzpB,GAAG,OAAO,MAAMypB,GAAG,iCAAiCA,EAAEw+F,GAAGjoH,GAAG,+BAA+BypB,GAAG,kBAAkBzpB,EAAE,+BAA+BypB,CAAC,CAC5U,IAAI0+F,GAAe1+F,GAAZ2+F,IAAY3+F,GAAsJ,SAASA,EAAEzpB,GAAG,GAAGypB,EAAE4+F,eAAeP,GAAGz8E,KAAK,cAAc5hB,EAAEA,EAAEg1C,UAAUz+D,MAAM,CAA2F,KAA1FmoH,GAAGA,IAAIhsG,SAASpkB,cAAc,QAAU0mE,UAAU,QAAQz+D,EAAE0F,UAAU1H,WAAW,SAAagC,EAAEmoH,GAAGn0G,WAAWyV,EAAEzV,YAAYyV,EAAEsiC,YAAYtiC,EAAEzV,YAAY,KAAKhU,EAAEgU,YAAYyV,EAAEgiC,YAAYzrD,EAAEgU,WAAW,CAAC,EAAja,oBAAqBs0G,OAAOA,MAAMC,wBAAwB,SAASvoH,EAAE8jB,EAAEjG,EAAElC,GAAG2sG,MAAMC,yBAAwB,WAAW,OAAO9+F,GAAEzpB,EAAE8jB,EAAM,GAAE,EAAE2F,IACtK,SAAS++F,GAAG/+F,EAAEzpB,GAAG,GAAGA,EAAE,CAAC,IAAI8jB,EAAE2F,EAAEzV,WAAW,GAAG8P,GAAGA,IAAI2F,EAAEg/F,WAAW,IAAI3kG,EAAE8tD,SAAwB,YAAd9tD,EAAE4kG,UAAU1oH,EAAS,CAACypB,EAAE4qD,YAAYr0E,CAAC,CACtH,IAAI2oH,GAAG,CAACC,yBAAwB,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGC,YAAW,EAAGC,SAAQ,EAAGC,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAG3mE,QAAO,EAAG4mE,MAAK,EAAGC,aAAY,EAC1fC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGzmD,eAAc,EAAGQ,aAAY,GAAIkmD,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAG3hG,EAAEzpB,EAAE8jB,GAAG,OAAO,MAAM9jB,GAAG,kBAAmBA,GAAG,KAAKA,EAAE,GAAG8jB,GAAG,iBAAkB9jB,GAAG,IAAIA,GAAG2oH,GAAGr0H,eAAem1B,IAAIk/F,GAAGl/F,IAAI,GAAGzpB,GAAG0f,OAAO1f,EAAE,IAAI,CACla,SAASwoB,GAAGiB,EAAEzpB,GAAa,IAAI,IAAI8jB,KAAlB2F,EAAEA,EAAEhY,MAAmBzR,EAAE,GAAGA,EAAE1L,eAAewvB,GAAG,CAAC,IAAIjG,EAAE,IAAIiG,EAAE2a,QAAQ,MAAM9iB,EAAEyvG,GAAGtnG,EAAE9jB,EAAE8jB,GAAGjG,GAAG,UAAUiG,IAAIA,EAAE,YAAYjG,EAAE4L,EAAE4hG,YAAYvnG,EAAEnI,GAAG8N,EAAE3F,GAAGnI,CAAC,CAAC,CADXznB,OAAOiB,KAAKwzH,IAAI1yH,SAAQ,SAASwzB,GAAG0hG,GAAGl1H,SAAQ,SAAS+J,GAAGA,EAAEA,EAAEypB,EAAE4R,OAAO,GAAGsI,cAAcla,EAAEziB,UAAU,GAAG2hH,GAAG3oH,GAAG2oH,GAAGl/F,EAAE,GAAE,IACzG,IAAI6hG,GAAGvoG,EAAE,CAACwoG,UAAS,GAAI,CAACC,MAAK,EAAGzhG,MAAK,EAAGgtD,IAAG,EAAG00C,KAAI,EAAGC,OAAM,EAAGpnG,IAAG,EAAGqnG,KAAI,EAAGn3E,OAAM,EAAGo3E,QAAO,EAAGC,MAAK,EAAGC,MAAK,EAAGC,OAAM,EAAG/1H,QAAO,EAAGgoG,OAAM,EAAGguB,KAAI,IAClT,SAASC,GAAGxiG,EAAEzpB,GAAG,GAAGA,EAAE,CAAC,GAAGsrH,GAAG7hG,KAAK,MAAMzpB,EAAE/H,UAAU,MAAM+H,EAAE0nH,yBAAyB,MAAMnnH,MAAMi+C,EAAE,IAAI/0B,IAAI,GAAG,MAAMzpB,EAAE0nH,wBAAwB,CAAC,GAAG,MAAM1nH,EAAE/H,SAAS,MAAMsI,MAAMi+C,EAAE,KAAK,GAAK,iBAAkBx+C,EAAE0nH,2BAAyB,WAAW1nH,EAAE0nH,yBAAyB,MAAMnnH,MAAMi+C,EAAE,IAAK,CAAC,GAAG,MAAMx+C,EAAEyR,OAAO,iBAAkBzR,EAAEyR,MAAM,MAAMlR,MAAMi+C,EAAE,IAAK,CAAC,CAClW,SAAS0tE,GAAGziG,EAAEzpB,GAAG,IAAI,IAAIypB,EAAEgV,QAAQ,KAAK,MAAM,iBAAkBz+B,EAAE2iG,GAAG,OAAOl5E,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAAS0iG,GAAG1iG,GAA6F,OAA1FA,EAAEA,EAAE7zB,QAAQ6zB,EAAEmxD,YAAY7nF,QAASq5H,0BAA0B3iG,EAAEA,EAAE2iG,yBAAgC,IAAI3iG,EAAEmoD,SAASnoD,EAAEvL,WAAWuL,CAAC,CAAC,IAAI4iG,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACxb,SAASC,GAAG/iG,GAAG,GAAGA,EAAEgjG,GAAGhjG,GAAG,CAAC,GAAG,mBAAoB4iG,GAAG,MAAM9rH,MAAMi+C,EAAE,MAAM,IAAIx+C,EAAEypB,EAAEijG,UAAU1sH,IAAIA,EAAE2sH,GAAG3sH,GAAGqsH,GAAG5iG,EAAEijG,UAAUjjG,EAAEtgB,KAAKnJ,GAAG,CAAC,CAAC,SAAS4sH,GAAGnjG,GAAG6iG,GAAGC,GAAGA,GAAG92H,KAAKg0B,GAAG8iG,GAAG,CAAC9iG,GAAG6iG,GAAG7iG,CAAC,CAAC,SAASojG,KAAK,GAAGP,GAAG,CAAC,IAAI7iG,EAAE6iG,GAAGtsH,EAAEusH,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAG/iG,GAAMzpB,EAAE,IAAIypB,EAAE,EAAEA,EAAEzpB,EAAEjK,OAAO0zB,IAAI+iG,GAAGxsH,EAAEypB,GAAG,CAAC,CAAC,SAASqjG,GAAGrjG,EAAEzpB,GAAG,OAAOypB,EAAEzpB,EAAE,CAAC,SAAS+sH,GAAGtjG,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,OAAO8N,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE,CAAC,SAASqxG,KAAK,CAAC,IAAIC,GAAGH,GAAGI,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAQ,OAAOd,IAAI,OAAOC,KAAGS,KAAKH,KAAI,CAEla,SAASQ,GAAG5jG,EAAEzpB,GAAG,IAAI8jB,EAAE2F,EAAEijG,UAAU,GAAG,OAAO5oG,EAAE,OAAO,KAAK,IAAIjG,EAAE8uG,GAAG7oG,GAAG,GAAG,OAAOjG,EAAE,OAAO,KAAKiG,EAAEjG,EAAE7d,GAAGypB,EAAE,OAAOzpB,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgB6d,GAAGA,EAAElnB,YAAqBknB,IAAI,YAAb4L,EAAEA,EAAEtgB,OAAuB,UAAUsgB,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAG5L,EAAE,MAAM4L,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAG3F,GAAG,mBACleA,EAAE,MAAMvjB,MAAMi+C,EAAE,IAAIx+C,SAAS8jB,IAAI,OAAOA,CAAC,CAAC,IAAIwpG,IAAG,EAAG,GAAGtK,EAAG,IAAI,IAAIuK,GAAG,CAAC,EAAEr5H,OAAOC,eAAeo5H,GAAG,UAAU,CAACx5H,IAAI,WAAWu5H,IAAG,CAAE,IAAIv6H,OAAO2H,iBAAiB,OAAO6yH,GAAGA,IAAIx6H,OAAOsL,oBAAoB,OAAOkvH,GAAGA,GAAG,CAAC,MAAM9jG,IAAG6jG,IAAG,CAAE,CAAC,SAASE,GAAG/jG,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,EAAEr7B,EAAEwuB,EAAEJ,GAAG,IAAIY,EAAE1iB,MAAM7L,UAAU0S,MAAM5R,KAAKuB,UAAU,GAAG,IAAIkK,EAAEtK,MAAMouB,EAAE9B,EAAE,CAAC,MAAMthB,GAAGtG,KAAKu3G,QAAQjxG,EAAE,CAAC,CAAC,IAAI+sH,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAAClc,QAAQ,SAASloF,GAAGgkG,IAAG,EAAGC,GAAGjkG,CAAC,GAAG,SAASqkG,GAAGrkG,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,EAAEr7B,EAAEwuB,EAAEJ,GAAGqsG,IAAG,EAAGC,GAAG,KAAKF,GAAG93H,MAAMm4H,GAAG/3H,UAAU,CACjW,SAASi4H,GAAGtkG,GAAG,IAAIzpB,EAAEypB,EAAE3F,EAAE2F,EAAE,GAAGA,EAAEukG,UAAU,KAAKhuH,EAAE6jG,QAAQ7jG,EAAEA,EAAE6jG,WAAW,CAACp6E,EAAEzpB,EAAE,GAAO,IAAa,MAAjBA,EAAEypB,GAASwkG,SAAcnqG,EAAE9jB,EAAE6jG,QAAQp6E,EAAEzpB,EAAE6jG,aAAap6E,EAAE,CAAC,OAAO,IAAIzpB,EAAE6wB,IAAI/M,EAAE,IAAI,CAAC,SAASoqG,GAAGzkG,GAAG,GAAG,KAAKA,EAAEoH,IAAI,CAAC,IAAI7wB,EAAEypB,EAAE0kG,cAAsE,GAAxD,OAAOnuH,GAAkB,QAAdypB,EAAEA,EAAEukG,aAAqBhuH,EAAEypB,EAAE0kG,eAAmB,OAAOnuH,EAAE,OAAOA,EAAEouH,UAAU,CAAC,OAAO,IAAI,CAAC,SAASC,GAAG5kG,GAAG,GAAGskG,GAAGtkG,KAAKA,EAAE,MAAMlpB,MAAMi+C,EAAE,KAAM,CAE1S,SAAS8vE,GAAG7kG,GAAW,GAARA,EADtN,SAAYA,GAAG,IAAIzpB,EAAEypB,EAAEukG,UAAU,IAAIhuH,EAAE,CAAS,GAAG,QAAXA,EAAE+tH,GAAGtkG,IAAe,MAAMlpB,MAAMi+C,EAAE,MAAM,OAAOx+C,IAAIypB,EAAE,KAAKA,CAAC,CAAC,IAAI,IAAI3F,EAAE2F,EAAE5L,EAAE7d,IAAI,CAAC,IAAI2b,EAAEmI,EAAE+/E,OAAO,GAAG,OAAOloF,EAAE,MAAM,IAAI0S,EAAE1S,EAAEqyG,UAAU,GAAG,OAAO3/F,EAAE,CAAY,GAAG,QAAdxQ,EAAElC,EAAEkoF,QAAmB,CAAC//E,EAAEjG,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAGlC,EAAE/O,QAAQyhB,EAAEzhB,MAAM,CAAC,IAAIyhB,EAAE1S,EAAE/O,MAAMyhB,GAAG,CAAC,GAAGA,IAAIvK,EAAE,OAAOuqG,GAAG1yG,GAAG8N,EAAE,GAAG4E,IAAIxQ,EAAE,OAAOwwG,GAAG1yG,GAAG3b,EAAEquB,EAAEA,EAAEkgG,OAAO,CAAC,MAAMhuH,MAAMi+C,EAAE,KAAM,CAAC,GAAG16B,EAAE+/E,SAAShmF,EAAEgmF,OAAO//E,EAAEnI,EAAEkC,EAAEwQ,MAAM,CAAC,IAAI,IAAIr7B,GAAE,EAAGwuB,EAAE7F,EAAE/O,MAAM4U,GAAG,CAAC,GAAGA,IAAIsC,EAAE,CAAC9wB,GAAE,EAAG8wB,EAAEnI,EAAEkC,EAAEwQ,EAAE,KAAK,CAAC,GAAG7M,IAAI3D,EAAE,CAAC7qB,GAAE,EAAG6qB,EAAElC,EAAEmI,EAAEuK,EAAE,KAAK,CAAC7M,EAAEA,EAAE+sG,OAAO,CAAC,IAAIv7H,EAAE,CAAC,IAAIwuB,EAAE6M,EAAEzhB,MAAM4U,GAAG,CAAC,GAAGA,IAC5fsC,EAAE,CAAC9wB,GAAE,EAAG8wB,EAAEuK,EAAExQ,EAAElC,EAAE,KAAK,CAAC,GAAG6F,IAAI3D,EAAE,CAAC7qB,GAAE,EAAG6qB,EAAEwQ,EAAEvK,EAAEnI,EAAE,KAAK,CAAC6F,EAAEA,EAAE+sG,OAAO,CAAC,IAAIv7H,EAAE,MAAMuN,MAAMi+C,EAAE,KAAM,CAAC,CAAC,GAAG16B,EAAEkqG,YAAYnwG,EAAE,MAAMtd,MAAMi+C,EAAE,KAAM,CAAC,GAAG,IAAI16B,EAAE+M,IAAI,MAAMtwB,MAAMi+C,EAAE,MAAM,OAAO16B,EAAE4oG,UAAUxgH,UAAU4X,EAAE2F,EAAEzpB,CAAC,CAAkBwuH,CAAG/kG,IAAOA,EAAE,OAAO,KAAK,IAAI,IAAIzpB,EAAEypB,IAAI,CAAC,GAAG,IAAIzpB,EAAE6wB,KAAK,IAAI7wB,EAAE6wB,IAAI,OAAO7wB,EAAE,GAAGA,EAAE4M,MAAM5M,EAAE4M,MAAMi3F,OAAO7jG,EAAEA,EAAEA,EAAE4M,UAAU,CAAC,GAAG5M,IAAIypB,EAAE,MAAM,MAAMzpB,EAAEuuH,SAAS,CAAC,IAAIvuH,EAAE6jG,QAAQ7jG,EAAE6jG,SAASp6E,EAAE,OAAO,KAAKzpB,EAAEA,EAAE6jG,MAAM,CAAC7jG,EAAEuuH,QAAQ1qB,OAAO7jG,EAAE6jG,OAAO7jG,EAAEA,EAAEuuH,OAAO,CAAC,CAAC,OAAO,IAAI,CAChd,SAASE,GAAGhlG,EAAEzpB,GAAG,IAAI,IAAI8jB,EAAE2F,EAAEukG,UAAU,OAAOhuH,GAAG,CAAC,GAAGA,IAAIypB,GAAGzpB,IAAI8jB,EAAE,OAAM,EAAG9jB,EAAEA,EAAE6jG,MAAM,CAAC,OAAM,CAAE,CAAC,IAAI6qB,GAAGC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAK3uG,GAAG,KAAK4uG,GAAG,KAAKC,GAAG,IAAIpzG,IAAIqzG,GAAG,IAAIrzG,IAAIszG,GAAG,GAAGC,GAAG,6PAA6P7sG,MAAM,KACrb,SAAS8sG,GAAG7lG,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,MAAM,CAAC4zG,UAAU9lG,EAAE+lG,aAAaxvH,EAAEyvH,iBAAmB,GAAF3rG,EAAK6kC,YAAYhtC,EAAE+zG,iBAAiB,CAAC7xG,GAAG,CAAC,SAAS8xG,GAAGlmG,EAAEzpB,GAAG,OAAOypB,GAAG,IAAK,UAAU,IAAK,WAAWulG,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAY3uG,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAW4uG,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGpvG,OAAO9f,EAAE4vH,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBT,GAAGrvG,OAAO9f,EAAE4vH,WAAW,CACta,SAASC,GAAGpmG,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,GAAG,OAAG,OAAO5E,GAAGA,EAAEk/B,cAAct6B,GAAS5E,EAAE6lG,GAAGtvH,EAAE8jB,EAAEjG,EAAElC,EAAE0S,GAAG,OAAOruB,GAAY,QAARA,EAAEysH,GAAGzsH,KAAa2uH,GAAG3uH,GAAIypB,IAAEA,EAAEgmG,kBAAkB5xG,EAAE7d,EAAEypB,EAAEimG,iBAAiB,OAAO/zG,IAAI,IAAI3b,EAAEy+B,QAAQ9iB,IAAI3b,EAAEvK,KAAKkmB,GAAU8N,EAAC,CAE/M,SAASqmG,GAAGrmG,GAAG,IAAIzpB,EAAE+vH,GAAGtmG,EAAE7zB,QAAQ,GAAG,OAAOoK,EAAE,CAAC,IAAI8jB,EAAEiqG,GAAG/tH,GAAG,GAAG,OAAO8jB,EAAE,GAAW,MAAR9jB,EAAE8jB,EAAE+M,MAAY,GAAW,QAAR7wB,EAAEkuH,GAAGpqG,IAAmH,OAAtG2F,EAAE8lG,UAAUvvH,OAAE6uH,GAAGplG,EAAEumG,cAAa,WAAWzwH,EAAE0wH,yBAAyBxmG,EAAEymG,UAAS,WAAWtB,GAAG9qG,EAAE,GAAE,SAAgB,GAAG,IAAI9jB,GAAG8jB,EAAE4oG,UAAUyD,QAA8D,YAArD1mG,EAAE8lG,UAAU,IAAIzrG,EAAE+M,IAAI/M,EAAE4oG,UAAU0D,cAAc,KAAY,CAAC3mG,EAAE8lG,UAAU,IAAI,CAC9U,SAASc,GAAG5mG,GAAG,GAAG,OAAOA,EAAE8lG,UAAU,OAAM,EAAG,IAAI,IAAIvvH,EAAEypB,EAAEimG,iBAAiB,EAAE1vH,EAAEjK,QAAQ,CAAC,IAAI+tB,EAAEwsG,GAAG7mG,EAAE+lG,aAAa/lG,EAAEgmG,iBAAiBzvH,EAAE,GAAGypB,EAAEk/B,aAAa,GAAG,OAAO7kC,EAAE,OAAe,QAAR9jB,EAAEysH,GAAG3oG,KAAa6qG,GAAG3uH,GAAGypB,EAAE8lG,UAAUzrG,GAAE,EAAG9jB,EAAE4F,OAAO,CAAC,OAAM,CAAE,CAAC,SAAS2qH,GAAG9mG,EAAEzpB,EAAE8jB,GAAGusG,GAAG5mG,IAAI3F,EAAEhE,OAAO9f,EAAE,CAC3Q,SAASwwH,KAAK,IAAI1B,IAAG,EAAG,EAAEC,GAAGh5H,QAAQ,CAAC,IAAI0zB,EAAEslG,GAAG,GAAG,GAAG,OAAOtlG,EAAE8lG,UAAU,CAAmB,QAAlB9lG,EAAEgjG,GAAGhjG,EAAE8lG,aAAqBb,GAAGjlG,GAAG,KAAK,CAAC,IAAI,IAAIzpB,EAAEypB,EAAEimG,iBAAiB,EAAE1vH,EAAEjK,QAAQ,CAAC,IAAI+tB,EAAEwsG,GAAG7mG,EAAE+lG,aAAa/lG,EAAEgmG,iBAAiBzvH,EAAE,GAAGypB,EAAEk/B,aAAa,GAAG,OAAO7kC,EAAE,CAAC2F,EAAE8lG,UAAUzrG,EAAE,KAAK,CAAC9jB,EAAE4F,OAAO,CAAC,OAAO6jB,EAAE8lG,WAAWR,GAAGnpH,OAAO,CAAC,OAAOopH,IAAIqB,GAAGrB,MAAMA,GAAG,MAAM,OAAO3uG,IAAIgwG,GAAGhwG,MAAMA,GAAG,MAAM,OAAO4uG,IAAIoB,GAAGpB,MAAMA,GAAG,MAAMC,GAAGj5H,QAAQs6H,IAAIpB,GAAGl5H,QAAQs6H,GAAG,CACxZ,SAASE,GAAGhnG,EAAEzpB,GAAGypB,EAAE8lG,YAAYvvH,IAAIypB,EAAE8lG,UAAU,KAAKT,KAAKA,IAAG,EAAGvvH,EAAEmxH,0BAA0BnxH,EAAEoxH,wBAAwBH,KAAK,CAC1H,SAASI,GAAGnnG,GAAG,SAASzpB,EAAEA,GAAG,OAAOywH,GAAGzwH,EAAEypB,EAAE,CAAC,GAAG,EAAEslG,GAAGh5H,OAAO,CAAC06H,GAAG1B,GAAG,GAAGtlG,GAAG,IAAI,IAAI3F,EAAE,EAAEA,EAAEirG,GAAGh5H,OAAO+tB,IAAI,CAAC,IAAIjG,EAAEkxG,GAAGjrG,GAAGjG,EAAE0xG,YAAY9lG,IAAI5L,EAAE0xG,UAAU,KAAK,CAAC,CAAyF,IAAxF,OAAOP,IAAIyB,GAAGzB,GAAGvlG,GAAG,OAAOpJ,IAAIowG,GAAGpwG,GAAGoJ,GAAG,OAAOwlG,IAAIwB,GAAGxB,GAAGxlG,GAAGylG,GAAGj5H,QAAQ+J,GAAGmvH,GAAGl5H,QAAQ+J,GAAO8jB,EAAE,EAAEA,EAAEsrG,GAAGr5H,OAAO+tB,KAAIjG,EAAEuxG,GAAGtrG,IAAKyrG,YAAY9lG,IAAI5L,EAAE0xG,UAAU,MAAM,KAAK,EAAEH,GAAGr5H,QAAiB,QAAR+tB,EAAEsrG,GAAG,IAAYG,WAAYO,GAAGhsG,GAAG,OAAOA,EAAEyrG,WAAWH,GAAGxpH,OAAO,CACtY,SAASirH,GAAGpnG,EAAEzpB,GAAG,IAAI8jB,EAAE,CAAC,EAAiF,OAA/EA,EAAE2F,EAAEpD,eAAermB,EAAEqmB,cAAcvC,EAAE,SAAS2F,GAAG,SAASzpB,EAAE8jB,EAAE,MAAM2F,GAAG,MAAMzpB,EAAS8jB,CAAC,CAAC,IAAIgtG,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,CAAC,EAAEC,GAAG,CAAC,EACpF,SAASC,GAAG5nG,GAAG,GAAG0nG,GAAG1nG,GAAG,OAAO0nG,GAAG1nG,GAAG,IAAIqnG,GAAGrnG,GAAG,OAAOA,EAAE,IAAY3F,EAAR9jB,EAAE8wH,GAAGrnG,GAAK,IAAI3F,KAAK9jB,EAAE,GAAGA,EAAE1L,eAAewvB,IAAIA,KAAKstG,GAAG,OAAOD,GAAG1nG,GAAGzpB,EAAE8jB,GAAG,OAAO2F,CAAC,CAA/Xu5F,IAAKoO,GAAGj1G,SAASpkB,cAAc,OAAO0Z,MAAM,mBAAmB1e,gBAAgB+9H,GAAGC,aAAaO,iBAAiBR,GAAGE,mBAAmBM,iBAAiBR,GAAGG,eAAeK,WAAW,oBAAoBv+H,eAAe+9H,GAAGI,cAAc9sE,YACxO,IAAImtE,GAAGF,GAAG,gBAAgBG,GAAGH,GAAG,sBAAsBI,GAAGJ,GAAG,kBAAkBK,GAAGL,GAAG,iBAAiBM,GAAG,IAAI71G,IAAI81G,GAAG,IAAI91G,IAAI+1G,GAAG,CAAC,QAAQ,QAAQN,GAAG,eAAeC,GAAG,qBAAqBC,GAAG,iBAAiB,UAAU,UAAU,iBAAiB,iBAAiB,iBAAiB,iBAAiB,UAAU,UAAU,YAAY,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,oBAAoB,oBAAoB,OAAO,OAAO,aAAa,aAAa,iBAAiB,iBAAiB,YAAY,YAC/e,qBAAqB,qBAAqB,UAAU,UAAU,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,aAAa,aAAaC,GAAG,gBAAgB,UAAU,WAAW,SAASI,GAAGroG,EAAEzpB,GAAG,IAAI,IAAI8jB,EAAE,EAAEA,EAAE2F,EAAE1zB,OAAO+tB,GAAG,EAAE,CAAC,IAAIjG,EAAE4L,EAAE3F,GAAGnI,EAAE8N,EAAE3F,EAAE,GAAGnI,EAAE,MAAMA,EAAE,GAAGgoB,cAAchoB,EAAExV,MAAM,IAAIyrH,GAAGn9H,IAAIopB,EAAE7d,GAAG2xH,GAAGl9H,IAAIopB,EAAElC,GAAGonG,EAAGpnG,EAAE,CAACkC,GAAG,CAAC,EAAuBk0G,EAAfxyH,EAAEyyH,gBAAkB,IAAIpoD,GAAE,EAC/X,SAASqoD,GAAGxoG,GAAG,GAAG,IAAK,EAAEA,GAAG,OAAOmgD,GAAE,GAAG,EAAE,GAAG,IAAK,EAAEngD,GAAG,OAAOmgD,GAAE,GAAG,EAAE,GAAG,IAAK,EAAEngD,GAAG,OAAOmgD,GAAE,GAAG,EAAE,IAAI5pE,EAAE,GAAGypB,EAAE,OAAG,IAAIzpB,GAAS4pE,GAAE,GAAG5pE,GAAK,IAAO,GAAFypB,IAAamgD,GAAE,GAAG,IAAc,IAAX5pE,EAAE,IAAIypB,IAAkBmgD,GAAE,GAAG5pE,GAAK,IAAO,IAAFypB,IAAcmgD,GAAE,EAAE,KAAgB,IAAZ5pE,EAAE,KAAKypB,IAAkBmgD,GAAE,EAAE5pE,GAAK,IAAO,KAAFypB,IAAemgD,GAAE,EAAE,MAAoB,IAAf5pE,EAAE,QAAQypB,IAAkBmgD,GAAE,EAAE5pE,GAAkB,IAAhBA,EAAE,SAASypB,IAAkBmgD,GAAE,EAAE5pE,GAAO,SAAFypB,GAAkBmgD,GAAE,EAAE,UAAY,IAAO,UAAFngD,IAAoBmgD,GAAE,EAAE,WAA2B,IAAjB5pE,EAAE,UAAUypB,IAAkBmgD,GAAE,EAAE5pE,GAAK,IAAK,WAAWypB,IAAUmgD,GAAE,EAAE,aACjfA,GAAE,EAASngD,EAAC,CACZ,SAASyoG,GAAGzoG,EAAEzpB,GAAG,IAAI8jB,EAAE2F,EAAE0oG,aAAa,GAAG,IAAIruG,EAAE,OAAO8lD,GAAE,EAAE,IAAI/rD,EAAE,EAAElC,EAAE,EAAE0S,EAAE5E,EAAE2oG,aAAap/H,EAAEy2B,EAAE4oG,eAAe7wG,EAAEiI,EAAE6oG,YAAY,GAAG,IAAIjkG,EAAExQ,EAAEwQ,EAAE1S,EAAEiuD,GAAE,QAAQ,GAAiB,IAAdv7C,EAAI,UAAFvK,GAAkB,CAAC,IAAI1C,EAAEiN,GAAGr7B,EAAE,IAAIouB,GAAGvD,EAAEo0G,GAAG7wG,GAAGzF,EAAEiuD,IAAS,IAALpoD,GAAG6M,KAAUxQ,EAAEo0G,GAAGzwG,GAAG7F,EAAEiuD,GAAG,MAAa,IAAPv7C,EAAEvK,GAAG9wB,IAAS6qB,EAAEo0G,GAAG5jG,GAAG1S,EAAEiuD,IAAG,IAAIpoD,IAAI3D,EAAEo0G,GAAGzwG,GAAG7F,EAAEiuD,IAAG,GAAG,IAAI/rD,EAAE,OAAO,EAAqC,GAAxBA,EAAEiG,IAAI,GAAjBjG,EAAE,GAAG00G,GAAG10G,IAAa,EAAE,GAAGA,IAAI,GAAG,EAAK,IAAI7d,GAAGA,IAAI6d,GAAG,IAAK7d,EAAEhN,GAAG,CAAO,GAANi/H,GAAGjyH,GAAM2b,GAAGiuD,GAAE,OAAO5pE,EAAE4pE,GAAEjuD,CAAC,CAAoB,GAAG,KAAtB3b,EAAEypB,EAAE+oG,gBAAwB,IAAI/oG,EAAEA,EAAEgpG,cAAczyH,GAAG6d,EAAE,EAAE7d,GAAc2b,EAAE,IAAbmI,EAAE,GAAGyuG,GAAGvyH,IAAU6d,GAAG4L,EAAE3F,GAAG9jB,IAAI2b,EAAE,OAAOkC,CAAC,CAC3e,SAAS60G,GAAGjpG,GAAgC,OAAO,IAApCA,GAAkB,WAAhBA,EAAE0oG,cAAsC1oG,EAAI,WAAFA,EAAa,WAAW,CAAC,CAAC,SAASkpG,GAAGlpG,EAAEzpB,GAAG,OAAOypB,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAmB,KAAZA,EAAEmpG,GAAG,IAAI5yH,IAAS2yH,GAAG,GAAG3yH,GAAGypB,EAAE,KAAK,GAAG,OAAoB,KAAbA,EAAEmpG,GAAG,KAAK5yH,IAAS2yH,GAAG,EAAE3yH,GAAGypB,EAAE,KAAK,EAAE,OAAqB,KAAdA,EAAEmpG,GAAG,MAAM5yH,KAA4B,KAAjBypB,EAAEmpG,GAAG,SAAS5yH,MAAWypB,EAAE,KAAMA,EAAE,KAAK,EAAE,OAA0B,KAAnBzpB,EAAE4yH,GAAG,WAAW5yH,MAAWA,EAAE,WAAWA,EAAE,MAAMO,MAAMi+C,EAAE,IAAI/0B,GAAI,CAAC,SAASmpG,GAAGnpG,GAAG,OAAOA,GAAGA,CAAC,CAAC,SAASopG,GAAGppG,GAAG,IAAI,IAAIzpB,EAAE,GAAG8jB,EAAE,EAAE,GAAGA,EAAEA,IAAI9jB,EAAEvK,KAAKg0B,GAAG,OAAOzpB,CAAC,CACtd,SAAS8yH,GAAGrpG,EAAEzpB,EAAE8jB,GAAG2F,EAAE0oG,cAAcnyH,EAAE,IAAI6d,EAAE7d,EAAE,EAAEypB,EAAE4oG,gBAAgBx0G,EAAE4L,EAAE6oG,aAAaz0G,GAAE4L,EAAEA,EAAEspG,YAAW/yH,EAAE,GAAGuyH,GAAGvyH,IAAQ8jB,CAAC,CAAC,IAAIyuG,GAAG/yH,KAAKwzH,MAAMxzH,KAAKwzH,MAAiC,SAAYvpG,GAAG,OAAO,IAAIA,EAAE,GAAG,IAAIwpG,GAAGxpG,GAAGypG,GAAG,GAAG,CAAC,EAAxED,GAAGzzH,KAAKvE,IAAIi4H,GAAG1zH,KAAK2zH,IAAyDC,GAAG7zH,EAAE8zH,8BAA8BC,GAAG/zH,EAAE0wH,yBAAyBsD,IAAG,EAAG,SAASC,GAAG/pG,EAAEzpB,EAAE8jB,EAAEjG,GAAGqvG,IAAIF,KAAK,IAAIrxG,EAAE83G,GAAGplG,EAAE6+F,GAAGA,IAAG,EAAG,IAAIH,GAAGpxG,EAAE8N,EAAEzpB,EAAE8jB,EAAEjG,EAAE,CAAC,SAASqvG,GAAG7+F,IAAI++F,IAAI,CAAC,CAAC,SAASj6H,GAAGs2B,EAAEzpB,EAAE8jB,EAAEjG,GAAGy1G,GAAGF,GAAGK,GAAGl5H,KAAK,KAAKkvB,EAAEzpB,EAAE8jB,EAAEjG,GAAG,CACpb,SAAS41G,GAAGhqG,EAAEzpB,EAAE8jB,EAAEjG,GAAU,IAAIlC,EAAX,GAAG43G,GAAU,IAAI53G,EAAE,IAAO,EAAF3b,KAAO,EAAE+uH,GAAGh5H,SAAS,EAAEs5H,GAAG5wF,QAAQhV,GAAGA,EAAE6lG,GAAG,KAAK7lG,EAAEzpB,EAAE8jB,EAAEjG,GAAGkxG,GAAGt5H,KAAKg0B,OAAO,CAAC,IAAI4E,EAAEiiG,GAAG7mG,EAAEzpB,EAAE8jB,EAAEjG,GAAG,GAAG,OAAOwQ,EAAE1S,GAAGg0G,GAAGlmG,EAAE5L,OAAO,CAAC,GAAGlC,EAAE,CAAC,IAAI,EAAE0zG,GAAG5wF,QAAQhV,GAA+B,OAA3BA,EAAE6lG,GAAGjhG,EAAE5E,EAAEzpB,EAAE8jB,EAAEjG,QAAGkxG,GAAGt5H,KAAKg0B,GAAU,GAfhO,SAAYA,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,OAAO3b,GAAG,IAAK,UAAU,OAAOgvH,GAAGa,GAAGb,GAAGvlG,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,IAAG,EAAG,IAAK,YAAY,OAAO0E,GAAGwvG,GAAGxvG,GAAGoJ,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,IAAG,EAAG,IAAK,YAAY,OAAOszG,GAAGY,GAAGZ,GAAGxlG,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,IAAG,EAAG,IAAK,cAAc,IAAI0S,EAAE1S,EAAEi0G,UAAkD,OAAxCV,GAAGz6H,IAAI45B,EAAEwhG,GAAGX,GAAGn7H,IAAIs6B,IAAI,KAAK5E,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,KAAU,EAAG,IAAK,oBAAoB,OAAO0S,EAAE1S,EAAEi0G,UAAUT,GAAG16H,IAAI45B,EAAEwhG,GAAGV,GAAGp7H,IAAIs6B,IAAI,KAAK5E,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,KAAI,EAAG,OAAM,CAAE,CAehI+3G,CAAGrlG,EAAE5E,EAAEzpB,EAAE8jB,EAAEjG,GAAG,OAAO8xG,GAAGlmG,EAAE5L,EAAE,CAAC81G,GAAGlqG,EAAEzpB,EAAE6d,EAAE,KAAKiG,EAAE,CAAC,CAAE,CACnR,SAASwsG,GAAG7mG,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAEwwG,GAAGtuG,GAAW,GAAG,QAAXlC,EAAEo0G,GAAGp0G,IAAe,CAAC,IAAI0S,EAAE0/F,GAAGpyG,GAAG,GAAG,OAAO0S,EAAE1S,EAAE,SAAS,CAAC,IAAI3oB,EAAEq7B,EAAEwC,IAAI,GAAG,KAAK79B,EAAE,CAAS,GAAG,QAAX2oB,EAAEuyG,GAAG7/F,IAAe,OAAO1S,EAAEA,EAAE,IAAI,MAAM,GAAG,IAAI3oB,EAAE,CAAC,GAAGq7B,EAAEq+F,UAAUyD,QAAQ,OAAO,IAAI9hG,EAAEwC,IAAIxC,EAAEq+F,UAAU0D,cAAc,KAAKz0G,EAAE,IAAI,MAAM0S,IAAI1S,IAAIA,EAAE,KAAK,CAAC,CAAe,OAAdg4G,GAAGlqG,EAAEzpB,EAAE6d,EAAElC,EAAEmI,GAAU,IAAI,CAAC,IAAI8vG,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACzT,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIrqG,EAAkB5L,EAAhB7d,EAAE6zH,GAAG/vG,EAAE9jB,EAAEjK,OAAS4lB,EAAE,UAAUi4G,GAAGA,GAAGv9H,MAAMu9H,GAAGv/C,YAAYhmD,EAAE1S,EAAE5lB,OAAO,IAAI0zB,EAAE,EAAEA,EAAE3F,GAAG9jB,EAAEypB,KAAK9N,EAAE8N,GAAGA,KAAK,IAAIz2B,EAAE8wB,EAAE2F,EAAE,IAAI5L,EAAE,EAAEA,GAAG7qB,GAAGgN,EAAE8jB,EAAEjG,KAAKlC,EAAE0S,EAAExQ,GAAGA,KAAK,OAAOi2G,GAAGn4G,EAAExV,MAAMsjB,EAAE,EAAE5L,EAAE,EAAEA,OAAE,EAAO,CAAC,SAASm2G,GAAGvqG,GAAG,IAAIzpB,EAAEypB,EAAEuhC,QAA+E,MAAvE,aAAavhC,EAAgB,KAAbA,EAAEA,EAAEoqD,WAAgB,KAAK7zE,IAAIypB,EAAE,IAAKA,EAAEzpB,EAAE,KAAKypB,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,CAAC,CAAC,SAASwqG,KAAK,OAAM,CAAE,CAAC,SAASC,KAAK,OAAM,CAAE,CACnY,SAASC,GAAG1qG,GAAG,SAASzpB,EAAEA,EAAE6d,EAAElC,EAAE0S,EAAEr7B,GAA6G,IAAI,IAAI8wB,KAAlH1pB,KAAKg6H,WAAWp0H,EAAE5F,KAAKi6H,YAAY14G,EAAEvhB,KAAK+O,KAAK0U,EAAEzjB,KAAKuuD,YAAYt6B,EAAEj0B,KAAKxE,OAAO5C,EAAEoH,KAAKulD,cAAc,KAAkBl2B,EAAEA,EAAEn1B,eAAewvB,KAAK9jB,EAAEypB,EAAE3F,GAAG1pB,KAAK0pB,GAAG9jB,EAAEA,EAAEquB,GAAGA,EAAEvK,IAAgI,OAA5H1pB,KAAKkhD,oBAAoB,MAAMjtB,EAAEktB,iBAAiBltB,EAAEktB,kBAAiB,IAAKltB,EAAEimG,aAAaL,GAAGC,GAAG95H,KAAK48C,qBAAqBk9E,GAAU95H,IAAI,CAC9E,OAD+E2oB,EAAE/iB,EAAEvM,UAAU,CAAC07C,eAAe,WAAW/0C,KAAKmhD,kBAAiB,EAAG,IAAI9xB,EAAErvB,KAAKuuD,YAAYl/B,IAAIA,EAAE0lB,eAAe1lB,EAAE0lB,iBAAiB,kBAAmB1lB,EAAE6qG,cAC7e7qG,EAAE6qG,aAAY,GAAIl6H,KAAKkhD,mBAAmB24E,GAAG,EAAEj8E,gBAAgB,WAAW,IAAIvuB,EAAErvB,KAAKuuD,YAAYl/B,IAAIA,EAAEuuB,gBAAgBvuB,EAAEuuB,kBAAkB,kBAAmBvuB,EAAE8qG,eAAe9qG,EAAE8qG,cAAa,GAAIn6H,KAAK48C,qBAAqBi9E,GAAG,EAAEO,QAAQ,WAAW,EAAEC,aAAaR,KAAYj0H,CAAC,CACjR,IAAoL00H,GAAGC,GAAGC,GAAtLC,GAAG,CAACC,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAASxrG,GAAG,OAAOA,EAAEwrG,WAAWt4H,KAAK8I,KAAK,EAAE81C,iBAAiB,EAAE25E,UAAU,GAAGC,GAAGhB,GAAGU,IAAIO,GAAGryG,EAAE,CAAC,EAAE8xG,GAAG,CAACxjB,KAAK,EAAEgkB,OAAO,IAAIC,GAAGnB,GAAGiB,IAAaG,GAAGxyG,EAAE,CAAC,EAAEqyG,GAAG,CAACI,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAE7vD,QAAQ,EAAE6K,SAAS,EAAE9nB,OAAO,EAAEkd,QAAQ,EAAE6vD,iBAAiBC,GAAGtiF,OAAO,EAAEuiF,QAAQ,EAAEttE,cAAc,SAASj/B,GAAG,YAAO,IAASA,EAAEi/B,cAAcj/B,EAAEwsG,cAAcxsG,EAAEmxD,WAAWnxD,EAAEm/B,UAAUn/B,EAAEwsG,YAAYxsG,EAAEi/B,aAAa,EAAEwtE,UAAU,SAASzsG,GAAG,MAAG,cAC3eA,EAASA,EAAEysG,WAAUzsG,IAAImrG,KAAKA,IAAI,cAAcnrG,EAAEtgB,MAAMurH,GAAGjrG,EAAE+rG,QAAQZ,GAAGY,QAAQb,GAAGlrG,EAAEgsG,QAAQb,GAAGa,SAASd,GAAGD,GAAG,EAAEE,GAAGnrG,GAAUirG,GAAE,EAAEyB,UAAU,SAAS1sG,GAAG,MAAM,cAAcA,EAAEA,EAAE0sG,UAAUxB,EAAE,IAAIyB,GAAGjC,GAAGoB,IAAiCc,GAAGlC,GAA7BpxG,EAAE,CAAC,EAAEwyG,GAAG,CAACe,aAAa,KAA4CC,GAAGpC,GAA9BpxG,EAAE,CAAC,EAAEqyG,GAAG,CAAC1sE,cAAc,KAA0E8tE,GAAGrC,GAA5DpxG,EAAE,CAAC,EAAE8xG,GAAG,CAACr2C,cAAc,EAAEi4C,YAAY,EAAEC,cAAc,KAAcC,GAAG5zG,EAAE,CAAC,EAAE8xG,GAAG,CAAC+B,cAAc,SAASntG,GAAG,MAAM,kBAAkBA,EAAEA,EAAEmtG,cAAc7jI,OAAO6jI,aAAa,IAAIC,GAAG1C,GAAGwC,IAAyBG,GAAG3C,GAArBpxG,EAAE,CAAC,EAAE8xG,GAAG,CAACr8H,KAAK,KAAcu+H,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAK/lH,KAAK,cAAcgmH,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGxuG,GAAG,IAAIzpB,EAAE5F,KAAKuuD,YAAY,OAAO3oD,EAAE81H,iBAAiB91H,EAAE81H,iBAAiBrsG,MAAIA,EAAEmuG,GAAGnuG,OAAMzpB,EAAEypB,EAAK,CAAC,SAASssG,KAAK,OAAOkC,EAAE,CAChS,IAAIC,GAAGn1G,EAAE,CAAC,EAAEqyG,GAAG,CAAC/gI,IAAI,SAASo1B,GAAG,GAAGA,EAAEp1B,IAAI,CAAC,IAAI2L,EAAE+2H,GAAGttG,EAAEp1B,MAAMo1B,EAAEp1B,IAAI,GAAG,iBAAiB2L,EAAE,OAAOA,CAAC,CAAC,MAAM,aAAaypB,EAAEtgB,KAAc,MAARsgB,EAAEuqG,GAAGvqG,IAAU,QAAQ4L,OAAOqB,aAAajN,GAAI,YAAYA,EAAEtgB,MAAM,UAAUsgB,EAAEtgB,KAAKwuH,GAAGluG,EAAEuhC,UAAU,eAAe,EAAE,EAAEx0B,KAAK,EAAE+B,SAAS,EAAEytC,QAAQ,EAAE6K,SAAS,EAAE9nB,OAAO,EAAEkd,QAAQ,EAAE14C,OAAO,EAAE9W,OAAO,EAAEq/G,iBAAiBC,GAAGliD,SAAS,SAASpqD,GAAG,MAAM,aAAaA,EAAEtgB,KAAK6qH,GAAGvqG,GAAG,CAAC,EAAEuhC,QAAQ,SAASvhC,GAAG,MAAM,YAAYA,EAAEtgB,MAAM,UAAUsgB,EAAEtgB,KAAKsgB,EAAEuhC,QAAQ,CAAC,EAAEmtE,MAAM,SAAS1uG,GAAG,MAAM,aAC7eA,EAAEtgB,KAAK6qH,GAAGvqG,GAAG,YAAYA,EAAEtgB,MAAM,UAAUsgB,EAAEtgB,KAAKsgB,EAAEuhC,QAAQ,CAAC,IAAIotE,GAAGjE,GAAG+D,IAAiIG,GAAGlE,GAA7HpxG,EAAE,CAAC,EAAEwyG,GAAG,CAAC3F,UAAU,EAAEljH,MAAM,EAAEipC,OAAO,EAAE2iF,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAG1E,GAArHpxG,EAAE,CAAC,EAAEqyG,GAAG,CAAC0D,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAEjwE,OAAO,EAAEkd,QAAQ,EAAED,QAAQ,EAAE6K,SAAS,EAAEilD,iBAAiBC,MAA0EkD,GAAG9E,GAA3DpxG,EAAE,CAAC,EAAE8xG,GAAG,CAACpwB,aAAa,EAAEgyB,YAAY,EAAEC,cAAc,KAAcwC,GAAGn2G,EAAE,CAAC,EAAEwyG,GAAG,CAAC4D,OAAO,SAAS1vG,GAAG,MAAM,WAAWA,EAAEA,EAAE0vG,OAAO,gBAAgB1vG,GAAGA,EAAE2vG,YAAY,CAAC,EACnfC,OAAO,SAAS5vG,GAAG,MAAM,WAAWA,EAAEA,EAAE4vG,OAAO,gBAAgB5vG,GAAGA,EAAE6vG,YAAY,eAAe7vG,GAAGA,EAAE8vG,WAAW,CAAC,EAAEC,OAAO,EAAEC,UAAU,IAAIC,GAAGvF,GAAG+E,IAAIS,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAG5W,GAAI,qBAAqBjwH,OAAO8mI,GAAG,KAAK7W,GAAI,iBAAiB7mG,WAAW09G,GAAG19G,SAAS29G,cAAc,IAAIC,GAAG/W,GAAI,cAAcjwH,SAAS8mI,GAAGG,GAAGhX,KAAM4W,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAG5kG,OAAOqB,aAAa,IAAIwjG,IAAG,EAC1W,SAASC,GAAG1wG,EAAEzpB,GAAG,OAAOypB,GAAG,IAAK,QAAQ,OAAO,IAAIkwG,GAAGl7F,QAAQz+B,EAAEgrD,SAAS,IAAK,UAAU,OAAO,MAAMhrD,EAAEgrD,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAASovE,GAAG3wG,GAAc,MAAM,iBAAjBA,EAAEA,EAAE4rG,SAAkC,SAAS5rG,EAAEA,EAAEjxB,KAAK,IAAI,CAAC,IAAIquC,IAAG,EAE1QwzF,GAAG,CAAClkH,OAAM,EAAGzS,MAAK,EAAG42H,UAAS,EAAG,kBAAiB,EAAGC,OAAM,EAAG/oG,OAAM,EAAG94B,QAAO,EAAG8hI,UAAS,EAAG92G,OAAM,EAAG4S,QAAO,EAAGmkG,KAAI,EAAGj6D,MAAK,EAAG53D,MAAK,EAAG1F,KAAI,EAAGw3H,MAAK,GAAI,SAASC,GAAGlxG,GAAG,IAAIzpB,EAAEypB,GAAGA,EAAEy0C,UAAUz0C,EAAEy0C,SAAS73C,cAAc,MAAM,UAAUrmB,IAAIq6H,GAAG5wG,EAAEtgB,MAAM,aAAanJ,CAAO,CAAC,SAAS46H,GAAGnxG,EAAEzpB,EAAE8jB,EAAEjG,GAAG+uG,GAAG/uG,GAAsB,GAAnB7d,EAAE66H,GAAG76H,EAAE,aAAgBjK,SAAS+tB,EAAE,IAAIqxG,GAAG,WAAW,SAAS,KAAKrxG,EAAEjG,GAAG4L,EAAEh0B,KAAK,CAACiI,MAAMomB,EAAEmyF,UAAUj2G,IAAI,CAAC,IAAI86H,GAAG,KAAKC,GAAG,KAAK,SAASn4G,GAAG6G,GAAGuxG,GAAGvxG,EAAE,EAAE,CAAC,SAASwxG,GAAGxxG,GAAe,GAAGo9F,EAATqU,GAAGzxG,IAAY,OAAOA,CAAC,CACpe,SAAS0xG,GAAG1xG,EAAEzpB,GAAG,GAAG,WAAWypB,EAAE,OAAOzpB,CAAC,CAAC,IAAIo7H,IAAG,EAAG,GAAGpY,EAAG,CAAC,IAAIqY,GAAG,GAAGrY,EAAG,CAAC,IAAIsY,GAAG,YAAYn/G,SAAS,IAAIm/G,GAAG,CAAC,IAAIC,GAAGp/G,SAASpkB,cAAc,OAAOwjI,GAAGt5E,aAAa,UAAU,WAAWq5E,GAAG,mBAAoBC,GAAGC,OAAO,CAACH,GAAGC,EAAE,MAAMD,IAAG,EAAGD,GAAGC,MAAMl/G,SAAS29G,cAAc,EAAE39G,SAAS29G,aAAa,CAAC,SAAS2B,KAAKX,KAAKA,GAAG3pD,YAAY,mBAAmBuqD,IAAIX,GAAGD,GAAG,KAAK,CAAC,SAASY,GAAGjyG,GAAG,GAAG,UAAUA,EAAEg7E,cAAcw2B,GAAGF,IAAI,CAAC,IAAI/6H,EAAE,GAAyB,GAAtB46H,GAAG56H,EAAE+6H,GAAGtxG,EAAE0iG,GAAG1iG,IAAIA,EAAE7G,GAAMsqG,GAAGzjG,EAAEzpB,OAAO,CAACktH,IAAG,EAAG,IAAIJ,GAAGrjG,EAAEzpB,EAAE,CAAC,QAAQktH,IAAG,EAAGE,IAAI,CAAC,CAAC,CAAC,CAClf,SAASuO,GAAGlyG,EAAEzpB,EAAE8jB,GAAG,YAAY2F,GAAGgyG,KAAUV,GAAGj3G,GAARg3G,GAAG96H,GAAUkxE,YAAY,mBAAmBwqD,KAAK,aAAajyG,GAAGgyG,IAAI,CAAC,SAASG,GAAGnyG,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOwxG,GAAGF,GAAG,CAAC,SAASc,GAAGpyG,EAAEzpB,GAAG,GAAG,UAAUypB,EAAE,OAAOwxG,GAAGj7H,EAAE,CAAC,SAAS87H,GAAGryG,EAAEzpB,GAAG,GAAG,UAAUypB,GAAG,WAAWA,EAAE,OAAOwxG,GAAGj7H,EAAE,CAAiE,IAAI+7H,GAAG,mBAAoB7nI,OAAOyuG,GAAGzuG,OAAOyuG,GAA5G,SAAYl5E,EAAEzpB,GAAG,OAAOypB,IAAIzpB,IAAI,IAAIypB,GAAG,EAAEA,GAAI,EAAEzpB,IAAIypB,GAAIA,GAAGzpB,GAAIA,CAAC,EAAmDg8H,GAAG9nI,OAAOT,UAAUa,eAC7a,SAAS2nI,GAAGxyG,EAAEzpB,GAAG,GAAG+7H,GAAGtyG,EAAEzpB,GAAG,OAAM,EAAG,GAAG,iBAAkBypB,GAAG,OAAOA,GAAG,iBAAkBzpB,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI8jB,EAAE5vB,OAAOiB,KAAKs0B,GAAG5L,EAAE3pB,OAAOiB,KAAK6K,GAAG,GAAG8jB,EAAE/tB,SAAS8nB,EAAE9nB,OAAO,OAAM,EAAG,IAAI8nB,EAAE,EAAEA,EAAEiG,EAAE/tB,OAAO8nB,IAAI,IAAIm+G,GAAGznI,KAAKyL,EAAE8jB,EAAEjG,MAAMk+G,GAAGtyG,EAAE3F,EAAEjG,IAAI7d,EAAE8jB,EAAEjG,KAAK,OAAM,EAAG,OAAM,CAAE,CAAC,SAASq+G,GAAGzyG,GAAG,KAAKA,GAAGA,EAAEzV,YAAYyV,EAAEA,EAAEzV,WAAW,OAAOyV,CAAC,CACnU,SAAS0yG,GAAG1yG,EAAEzpB,GAAG,IAAwB6d,EAApBiG,EAAEo4G,GAAGzyG,GAAO,IAAJA,EAAE,EAAY3F,GAAG,CAAC,GAAG,IAAIA,EAAE8tD,SAAS,CAA0B,GAAzB/zD,EAAE4L,EAAE3F,EAAEuwD,YAAYt+E,OAAU0zB,GAAGzpB,GAAG6d,GAAG7d,EAAE,MAAM,CAACrH,KAAKmrB,EAAEjlB,OAAOmB,EAAEypB,GAAGA,EAAE5L,CAAC,CAAC4L,EAAE,CAAC,KAAK3F,GAAG,CAAC,GAAGA,EAAEs4G,YAAY,CAACt4G,EAAEA,EAAEs4G,YAAY,MAAM3yG,CAAC,CAAC3F,EAAEA,EAAE5F,UAAU,CAAC4F,OAAE,CAAM,CAACA,EAAEo4G,GAAGp4G,EAAE,CAAC,CAAC,SAASu4G,GAAG5yG,EAAEzpB,GAAG,SAAOypB,IAAGzpB,KAAEypB,IAAIzpB,KAAKypB,GAAG,IAAIA,EAAEmoD,YAAY5xE,GAAG,IAAIA,EAAE4xE,SAASyqD,GAAG5yG,EAAEzpB,EAAEke,YAAY,aAAauL,EAAEA,EAAE69B,SAAStnD,KAAGypB,EAAEwxD,4BAAwD,GAA7BxxD,EAAEwxD,wBAAwBj7E,KAAY,CAC9Z,SAASs8H,KAAK,IAAI,IAAI7yG,EAAE12B,OAAOiN,EAAE8mH,IAAK9mH,aAAaypB,EAAE8yG,mBAAmB,CAAC,IAAI,IAAIz4G,EAAE,iBAAkB9jB,EAAEw8H,cAAcjkG,SAAS6X,IAAI,CAAC,MAAMvyB,GAAGiG,GAAE,CAAE,CAAC,IAAGA,EAAyB,MAAM9jB,EAAE8mH,GAA/Br9F,EAAEzpB,EAAEw8H,eAAgCrgH,SAAS,CAAC,OAAOnc,CAAC,CAAC,SAASy8H,GAAGhzG,GAAG,IAAIzpB,EAAEypB,GAAGA,EAAEy0C,UAAUz0C,EAAEy0C,SAAS73C,cAAc,OAAOrmB,IAAI,UAAUA,IAAI,SAASypB,EAAEtgB,MAAM,WAAWsgB,EAAEtgB,MAAM,QAAQsgB,EAAEtgB,MAAM,QAAQsgB,EAAEtgB,MAAM,aAAasgB,EAAEtgB,OAAO,aAAanJ,GAAG,SAASypB,EAAEizG,gBAAgB,CACxa,IAAIC,GAAG3Z,GAAI,iBAAiB7mG,UAAU,IAAIA,SAAS29G,aAAa8C,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAGvzG,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAEiG,EAAE/wB,SAAS+wB,EAAEA,EAAE3H,SAAS,IAAI2H,EAAE8tD,SAAS9tD,EAAEA,EAAE+2D,cAAckiD,IAAI,MAAMH,IAAIA,KAAK9V,EAAGjpG,KAAsCA,EAA5B,mBAALA,EAAE++G,KAAyBH,GAAG5+G,GAAK,CAACqX,MAAMrX,EAAEo/G,eAAe9nG,IAAItX,EAAEq/G,cAAyF,CAACC,YAA3Et/G,GAAGA,EAAEg9D,eAAeh9D,EAAEg9D,cAAcK,aAAanoF,QAAQqqI,gBAA+BD,WAAWE,aAAax/G,EAAEw/G,aAAaC,UAAUz/G,EAAEy/G,UAAUC,YAAY1/G,EAAE0/G,aAAcT,IAAIb,GAAGa,GAAGj/G,KAAKi/G,GAAGj/G,EAAsB,GAApBA,EAAEg9G,GAAGgC,GAAG,aAAgB9mI,SAASiK,EAAE,IAAIm1H,GAAG,WAAW,SAAS,KAAKn1H,EAAE8jB,GAAG2F,EAAEh0B,KAAK,CAACiI,MAAMsC,EAAEi2G,UAAUp4F,IAAI7d,EAAEpK,OAAOgnI,KAAK,CACtf9K,GAAG,mjBAAmjBtvG,MAAM,KAC5jB,GAAGsvG,GAAG,oRAAoRtvG,MAAM,KAAK,GAAGsvG,GAAGD,GAAG,GAAG,IAAI,IAAI2L,GAAG,qFAAqFh7G,MAAM,KAAKi7G,GAAG,EAAEA,GAAGD,GAAGznI,OAAO0nI,KAAK7L,GAAGn9H,IAAI+oI,GAAGC,IAAI,GAAGhrB,EAAG,eAAe,CAAC,WAAW,cACleA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBsQ,EAAG,WAAW,oEAAoEvgG,MAAM,MAAMugG,EAAG,WAAW,uFAAuFvgG,MAAM,MAAMugG,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2DvgG,MAAM,MAC5fugG,EAAG,qBAAqB,6DAA6DvgG,MAAM,MAAMugG,EAAG,sBAAsB,8DAA8DvgG,MAAM,MAAM,IAAIk7G,GAAG,sNAAsNl7G,MAAM,KAAKm7G,GAAG,IAAItgG,IAAI,0CAA0C7a,MAAM,KAAK9lB,OAAOghI,KACnf,SAASE,GAAGn0G,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE4L,EAAEtgB,MAAM,gBAAgBsgB,EAAEk2B,cAAc77B,EA/CjE,SAAY2F,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,EAAEr7B,EAAEwuB,EAAEJ,GAA4B,GAAzB0sG,GAAGp4H,MAAM0E,KAAKtE,WAAc23H,GAAG,CAAC,IAAGA,GAAgC,MAAMltH,MAAMi+C,EAAE,MAA1C,IAAIx8B,EAAE0rG,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAG5rG,EAAE,CAAC,CA+CpE67G,CAAGhgH,EAAE7d,OAAE,EAAOypB,GAAGA,EAAEk2B,cAAc,IAAI,CACxG,SAASq7E,GAAGvxG,EAAEzpB,GAAGA,EAAE,IAAO,EAAFA,GAAK,IAAI,IAAI8jB,EAAE,EAAEA,EAAE2F,EAAE1zB,OAAO+tB,IAAI,CAAC,IAAIjG,EAAE4L,EAAE3F,GAAGnI,EAAEkC,EAAEngB,MAAMmgB,EAAEA,EAAEo4F,UAAUxsF,EAAE,CAAC,IAAI4E,OAAE,EAAO,GAAGruB,EAAE,IAAI,IAAIhN,EAAE6qB,EAAE9nB,OAAO,EAAE,GAAG/C,EAAEA,IAAI,CAAC,IAAIwuB,EAAE3D,EAAE7qB,GAAGouB,EAAEI,EAAExnB,SAASgoB,EAAER,EAAEm+B,cAA2B,GAAbn+B,EAAEA,EAAEw/E,SAAY5/E,IAAIiN,GAAG1S,EAAEq7B,uBAAuB,MAAMvtB,EAAEm0G,GAAGjiH,EAAE6F,EAAEQ,GAAGqM,EAAEjN,CAAC,MAAM,IAAIpuB,EAAE,EAAEA,EAAE6qB,EAAE9nB,OAAO/C,IAAI,CAAoD,GAA5CouB,GAAPI,EAAE3D,EAAE7qB,IAAOgH,SAASgoB,EAAER,EAAEm+B,cAAcn+B,EAAEA,EAAEw/E,SAAY5/E,IAAIiN,GAAG1S,EAAEq7B,uBAAuB,MAAMvtB,EAAEm0G,GAAGjiH,EAAE6F,EAAEQ,GAAGqM,EAAEjN,CAAC,CAAC,CAAC,CAAC,GAAGusG,GAAG,MAAMlkG,EAAEmkG,GAAGD,IAAG,EAAGC,GAAG,KAAKnkG,CAAE,CAC5a,SAASq0G,GAAEr0G,EAAEzpB,GAAG,IAAI8jB,EAAEi6G,GAAG/9H,GAAG6d,EAAE4L,EAAE,WAAW3F,EAAEhwB,IAAI+pB,KAAKmgH,GAAGh+H,EAAEypB,EAAE,GAAE,GAAI3F,EAAEia,IAAIlgB,GAAG,CAAC,IAAIogH,GAAG,kBAAkBz+H,KAAKC,SAASzB,SAAS,IAAImI,MAAM,GAAG,SAAS+3H,GAAGz0G,GAAGA,EAAEw0G,MAAMx0G,EAAEw0G,KAAI,EAAGpb,EAAG5sH,SAAQ,SAAS+J,GAAG29H,GAAG7pI,IAAIkM,IAAIm+H,GAAGn+H,GAAE,EAAGypB,EAAE,MAAM00G,GAAGn+H,GAAE,EAAGypB,EAAE,KAAK,IAAG,CAC9O,SAAS00G,GAAG10G,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAE,EAAE7lB,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,EAAEu4B,EAAEvK,EAA6D,GAA3D,oBAAoB2F,GAAG,IAAI3F,EAAE8tD,WAAWvjD,EAAEvK,EAAE+2D,eAAkB,OAAOh9D,IAAI7d,GAAG29H,GAAG7pI,IAAI21B,GAAG,CAAC,GAAG,WAAWA,EAAE,OAAO9N,GAAG,EAAE0S,EAAExQ,CAAC,CAAC,IAAI7qB,EAAE+qI,GAAG1vG,GAAG7M,EAAEiI,EAAE,MAAMzpB,EAAE,UAAU,UAAUhN,EAAEc,IAAI0tB,KAAKxhB,IAAI2b,GAAG,GAAGqiH,GAAG3vG,EAAE5E,EAAE9N,EAAE3b,GAAGhN,EAAE+qC,IAAIvc,GAAG,CACrS,SAASw8G,GAAGv0G,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAEi2G,GAAG79H,IAAIiM,GAAG,YAAO,IAAS2b,EAAE,EAAEA,GAAG,KAAK,EAAEA,EAAE63G,GAAG,MAAM,KAAK,EAAE73G,EAAExoB,GAAG,MAAM,QAAQwoB,EAAE83G,GAAG3vG,EAAEnI,EAAEphB,KAAK,KAAKyF,EAAE8jB,EAAE2F,GAAG9N,OAAE,GAAQ2xG,IAAI,eAAettH,GAAG,cAAcA,GAAG,UAAUA,IAAI2b,GAAE,GAAIkC,OAAE,IAASlC,EAAE8N,EAAE/uB,iBAAiBsF,EAAE8jB,EAAE,CAACitD,SAAQ,EAAGqtD,QAAQziH,IAAI8N,EAAE/uB,iBAAiBsF,EAAE8jB,GAAE,QAAI,IAASnI,EAAE8N,EAAE/uB,iBAAiBsF,EAAE8jB,EAAE,CAACs6G,QAAQziH,IAAI8N,EAAE/uB,iBAAiBsF,EAAE8jB,GAAE,EAAG,CACvW,SAAS6vG,GAAGlqG,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,IAAI0S,EAAExQ,EAAE,GAAG,IAAO,EAAF7d,IAAM,IAAO,EAAFA,IAAM,OAAO6d,EAAE4L,EAAE,OAAO,CAAC,GAAG,OAAO5L,EAAE,OAAO,IAAI7qB,EAAE6qB,EAAEgT,IAAI,GAAG,IAAI79B,GAAG,IAAIA,EAAE,CAAC,IAAIwuB,EAAE3D,EAAE6uG,UAAU0D,cAAc,GAAG5uG,IAAI7F,GAAG,IAAI6F,EAAEowD,UAAUpwD,EAAEtD,aAAavC,EAAE,MAAM,GAAG,IAAI3oB,EAAE,IAAIA,EAAE6qB,EAAEgmF,OAAO,OAAO7wG,GAAG,CAAC,IAAIouB,EAAEpuB,EAAE69B,IAAI,IAAG,IAAIzP,GAAG,IAAIA,MAAKA,EAAEpuB,EAAE05H,UAAU0D,iBAAkBz0G,GAAG,IAAIyF,EAAEwwD,UAAUxwD,EAAElD,aAAavC,GAAE,OAAO3oB,EAAEA,EAAE6wG,MAAM,CAAC,KAAK,OAAOriF,GAAG,CAAS,GAAG,QAAXxuB,EAAE+8H,GAAGvuG,IAAe,OAAe,GAAG,KAAXJ,EAAEpuB,EAAE69B,MAAc,IAAIzP,EAAE,CAACvD,EAAEwQ,EAAEr7B,EAAE,SAASy2B,CAAC,CAACjI,EAAEA,EAAEtD,UAAU,CAAC,CAACL,EAAEA,EAAEgmF,MAAM,EAvDnd,SAAYp6E,EAAEzpB,EAAE8jB,GAAG,GAAGqpG,GAAG,OAAO1jG,IAAO0jG,IAAG,EAAG,IAAI,OAAOF,GAAGxjG,EAAEzpB,EAAE8jB,EAAE,CAAC,QAAQqpG,IAAG,EAAGC,IAAI,CAAC,CAuD+XiR,EAAG,WAAW,IAAIxgH,EAAEwQ,EAAE1S,EAAEwwG,GAAGroG,GAAG9wB,EAAE,GACpfy2B,EAAE,CAAC,IAAIjI,EAAEmwG,GAAG59H,IAAI01B,GAAG,QAAG,IAASjI,EAAE,CAAC,IAAIJ,EAAE+zG,GAAG9nG,EAAE5D,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIuqG,GAAGlwG,GAAG,MAAM2F,EAAE,IAAK,UAAU,IAAK,QAAQrI,EAAEg3G,GAAG,MAAM,IAAK,UAAU/qG,EAAE,QAAQjM,EAAEm1G,GAAG,MAAM,IAAK,WAAWlpG,EAAE,OAAOjM,EAAEm1G,GAAG,MAAM,IAAK,aAAa,IAAK,YAAYn1G,EAAEm1G,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAIzyG,EAAE2vB,OAAO,MAAMhqB,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcrI,EAAEg1G,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAOh1G,EAC1iBi1G,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAaj1G,EAAEy3G,GAAG,MAAM,KAAKtH,GAAG,KAAKC,GAAG,KAAKC,GAAGrwG,EAAEo1G,GAAG,MAAM,KAAK9E,GAAGtwG,EAAE63G,GAAG,MAAM,IAAK,SAAS73G,EAAEk0G,GAAG,MAAM,IAAK,QAAQl0G,EAAEs4G,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQt4G,EAAEy1G,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYz1G,EAAEi3G,GAAG,IAAIx2C,EAAE,IAAO,EAAF7hF,GAAKgnB,GAAG66D,GAAG,WAAWp4D,EAAEq4D,EAAED,EAAE,OAAOrgE,EAAEA,EAAE,UAAU,KAAKA,EAAEqgE,EAAE,GAAG,IAAI,IAAQD,EAAJjkE,EAAEE,EAAI,OAC/eF,GAAG,CAAK,IAAI4D,GAARqgE,EAAEjkE,GAAU+uG,UAAsF,GAA5E,IAAI9qC,EAAE/wD,KAAK,OAAOtP,IAAIqgE,EAAErgE,EAAE,OAAOugE,GAAc,OAAVvgE,EAAE8rG,GAAG1vG,EAAEmkE,KAAYD,EAAEpsF,KAAK6oI,GAAG3gH,EAAE4D,EAAEqgE,KAAS56D,EAAE,MAAMrJ,EAAEA,EAAEkmF,MAAM,CAAC,EAAEhiB,EAAE9rF,SAASyrB,EAAE,IAAIJ,EAAEI,EAAE6L,EAAE,KAAKvJ,EAAEnI,GAAG3oB,EAAEyC,KAAK,CAACiI,MAAM8jB,EAAEy0F,UAAUp0B,IAAI,CAAC,CAAC,GAAG,IAAO,EAAF7hF,GAAK,CAA4E,GAAnCohB,EAAE,aAAaqI,GAAG,eAAeA,KAAtEjI,EAAE,cAAciI,GAAG,gBAAgBA,IAA2C,IAAO,GAAFzpB,MAAQqtB,EAAEvJ,EAAE4kC,eAAe5kC,EAAEmyG,eAAelG,GAAG1iG,KAAIA,EAAEkxG,OAAgBn9G,GAAGI,KAAGA,EAAE7F,EAAE5oB,SAAS4oB,EAAEA,GAAG6F,EAAE7F,EAAEk/D,eAAer5D,EAAE05D,aAAa15D,EAAE25D,aAAapoF,OAAUquB,GAAqCA,EAAEvD,EAAiB,QAAfwP,GAAnCA,EAAEvJ,EAAE4kC,eAAe5kC,EAAE8kC,WAAkBmnE,GAAG1iG,GAAG,QACleA,KAARrG,EAAE+mG,GAAG1gG,KAAU,IAAIA,EAAEwD,KAAK,IAAIxD,EAAEwD,OAAKxD,EAAE,QAAUjM,EAAE,KAAKiM,EAAExP,GAAKuD,IAAIiM,GAAE,CAAgU,GAA/Tw0D,EAAEu0C,GAAG70G,EAAE,eAAeugE,EAAE,eAAenkE,EAAE,QAAW,eAAe8L,GAAG,gBAAgBA,IAAEo4D,EAAEw2C,GAAG92G,EAAE,iBAAiBugE,EAAE,iBAAiBnkE,EAAE,WAAUqJ,EAAE,MAAM5F,EAAEI,EAAE05G,GAAG95G,GAAGwgE,EAAE,MAAMv0D,EAAE7L,EAAE05G,GAAG7tG,IAAG7L,EAAE,IAAIqgE,EAAEtgE,EAAE5D,EAAE,QAAQyD,EAAE0C,EAAEnI,IAAK/lB,OAAOoxB,EAAExF,EAAEknC,cAAck5B,EAAErgE,EAAE,KAAKwuG,GAAGp0G,KAAKkC,KAAIgkE,EAAE,IAAIA,EAAEC,EAAEnkE,EAAE,QAAQ0P,EAAEvJ,EAAEnI,IAAK/lB,OAAOgsF,EAAEC,EAAEn5B,cAAc1hC,EAAEzF,EAAEsgE,GAAG76D,EAAEzF,EAAKH,GAAGiM,EAAErtB,EAAE,CAAa,IAAR8hF,EAAEz0D,EAAE1P,EAAE,EAAMikE,EAAhBC,EAAEzgE,EAAkBwgE,EAAEA,EAAE48C,GAAG58C,GAAGjkE,IAAQ,IAAJikE,EAAE,EAAMrgE,EAAEugE,EAAEvgE,EAAEA,EAAEi9G,GAAGj9G,GAAGqgE,IAAI,KAAK,EAAEjkE,EAAEikE,GAAGC,EAAE28C,GAAG38C,GAAGlkE,IAAI,KAAK,EAAEikE,EAAEjkE,GAAGmkE,EACpf08C,GAAG18C,GAAGF,IAAI,KAAKjkE,KAAK,CAAC,GAAGkkE,IAAIC,GAAG,OAAOA,GAAGD,IAAIC,EAAEksC,UAAU,MAAMhuH,EAAE6hF,EAAE28C,GAAG38C,GAAGC,EAAE08C,GAAG18C,EAAE,CAACD,EAAE,IAAI,MAAMA,EAAE,KAAK,OAAOzgE,GAAGq9G,GAAGzrI,EAAEwuB,EAAEJ,EAAEygE,GAAE,GAAI,OAAOx0D,GAAG,OAAOrG,GAAGy3G,GAAGzrI,EAAEg0B,EAAEqG,EAAEw0D,GAAE,EAAG,CAA8D,GAAG,YAA1CzgE,GAAjBI,EAAE3D,EAAEq9G,GAAGr9G,GAAG9qB,QAAWmrE,UAAU18C,EAAE08C,SAAS73C,gBAA+B,UAAUjF,GAAG,SAASI,EAAErY,KAAK,IAAIu1H,EAAEvD,QAAQ,GAAGR,GAAGn5G,GAAG,GAAG45G,GAAGsD,EAAE5C,OAAO,CAAC4C,EAAE9C,GAAG,IAAI+C,EAAEhD,EAAE,MAAMv6G,EAAEI,EAAE08C,WAAW,UAAU98C,EAAEiF,gBAAgB,aAAa7E,EAAErY,MAAM,UAAUqY,EAAErY,QAAQu1H,EAAE7C,IAClV,OADyV6C,IAAIA,EAAEA,EAAEj1G,EAAE5L,IAAK+8G,GAAG5nI,EAAE0rI,EAAE56G,EAAEnI,IAAWgjH,GAAGA,EAAEl1G,EAAEjI,EAAE3D,GAAG,aAAa4L,IAAIk1G,EAAEn9G,EAAEwlG,gBACte2X,EAAExX,YAAY,WAAW3lG,EAAErY,MAAMm+G,GAAG9lG,EAAE,SAASA,EAAEnrB,QAAOsoI,EAAE9gH,EAAEq9G,GAAGr9G,GAAG9qB,OAAc02B,GAAG,IAAK,WAAakxG,GAAGgE,IAAI,SAASA,EAAEjC,mBAAgBE,GAAG+B,EAAE9B,GAAGh/G,EAAEi/G,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAGhqI,EAAE8wB,EAAEnI,GAAG,MAAM,IAAK,kBAAkB,GAAGghH,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAGhqI,EAAE8wB,EAAEnI,GAAG,IAAIijH,EAAE,GAAGhF,GAAG55H,EAAE,CAAC,OAAOypB,GAAG,IAAK,mBAAmB,IAAIrP,EAAE,qBAAqB,MAAMpa,EAAE,IAAK,iBAAiBoa,EAAE,mBAAmB,MAAMpa,EACrf,IAAK,oBAAoBoa,EAAE,sBAAsB,MAAMpa,EAAEoa,OAAE,CAAM,MAAMysB,GAAGszF,GAAG1wG,EAAE3F,KAAK1J,EAAE,oBAAoB,YAAYqP,GAAG,MAAM3F,EAAEknC,UAAU5wC,EAAE,sBAAsBA,IAAI4/G,IAAI,OAAOl2G,EAAErN,SAASowB,IAAI,uBAAuBzsB,EAAE,qBAAqBA,GAAGysB,KAAK+3F,EAAE7K,OAAYF,GAAG,UAARD,GAAGj4G,GAAkBi4G,GAAGv9H,MAAMu9H,GAAGv/C,YAAYxtC,IAAG,IAAe,GAAV83F,EAAE9D,GAAGh9G,EAAEzD,IAAOrkB,SAASqkB,EAAE,IAAI08G,GAAG18G,EAAEqP,EAAE,KAAK3F,EAAEnI,GAAG3oB,EAAEyC,KAAK,CAACiI,MAAM0c,EAAE67F,UAAU0oB,KAAIC,GAAoB,QAARA,EAAExE,GAAGt2G,OAAf1J,EAAE5hB,KAAKomI,MAAsCA,EAAE7E,GA1BjK,SAAYtwG,EAAEzpB,GAAG,OAAOypB,GAAG,IAAK,iBAAiB,OAAO2wG,GAAGp6H,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEm4H,MAAa,MAAK+B,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAOxwG,EAAEzpB,EAAExH,QAASyhI,IAAIC,GAAG,KAAKzwG,EAAE,QAAQ,OAAO,KAAK,CA0B7Bo1G,CAAGp1G,EAAE3F,GAzB1b,SAAY2F,EAAEzpB,GAAG,GAAG6mC,GAAG,MAAM,mBAAmBpd,IAAImwG,IAAIO,GAAG1wG,EAAEzpB,IAAIypB,EAAEsqG,KAAKD,GAAGD,GAAGD,GAAG,KAAK/sF,IAAG,EAAGpd,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKzpB,EAAEgmE,SAAShmE,EAAE+oD,QAAQ/oD,EAAEimE,UAAUjmE,EAAEgmE,SAAShmE,EAAE+oD,OAAO,CAAC,GAAG/oD,EAAE83B,MAAM,EAAE93B,EAAE83B,KAAK/hC,OAAO,OAAOiK,EAAE83B,KAAK,GAAG93B,EAAEm4H,MAAM,OAAO9iG,OAAOqB,aAAa12B,EAAEm4H,MAAM,CAAC,OAAO,KAAK,IAAK,iBAAiB,OAAO6B,IAAI,OAAOh6H,EAAEyW,OAAO,KAAKzW,EAAExH,KAAyB,CAyBsDsmI,CAAGr1G,EAAE3F,KAA2B,GAAxBjG,EAAEg9G,GAAGh9G,EAAE,kBAAqB9nB,SAAS4lB,EAAE,IAAIm7G,GAAG,gBACnf,cAAc,KAAKhzG,EAAEnI,GAAG3oB,EAAEyC,KAAK,CAACiI,MAAMie,EAAEs6F,UAAUp4F,IAAIlC,EAAEnjB,KAAKomI,EAAE,CAAC5D,GAAGhoI,EAAEgN,EAAE,GAAE,CAAC,SAASs+H,GAAG70G,EAAEzpB,EAAE8jB,GAAG,MAAM,CAAC9pB,SAASyvB,EAAEu3E,SAAShhG,EAAE2/C,cAAc77B,EAAE,CAAC,SAAS+2G,GAAGpxG,EAAEzpB,GAAG,IAAI,IAAI8jB,EAAE9jB,EAAE,UAAU6d,EAAE,GAAG,OAAO4L,GAAG,CAAC,IAAI9N,EAAE8N,EAAE4E,EAAE1S,EAAE+wG,UAAU,IAAI/wG,EAAEkV,KAAK,OAAOxC,IAAI1S,EAAE0S,EAAY,OAAVA,EAAEg/F,GAAG5jG,EAAE3F,KAAYjG,EAAE+D,QAAQ08G,GAAG70G,EAAE4E,EAAE1S,IAAc,OAAV0S,EAAEg/F,GAAG5jG,EAAEzpB,KAAY6d,EAAEpoB,KAAK6oI,GAAG70G,EAAE4E,EAAE1S,KAAK8N,EAAEA,EAAEo6E,MAAM,CAAC,OAAOhmF,CAAC,CAAC,SAAS2gH,GAAG/0G,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEo6E,aAAap6E,GAAG,IAAIA,EAAEoH,KAAK,OAAOpH,GAAI,IAAI,CAC5a,SAASg1G,GAAGh1G,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,IAAI,IAAI0S,EAAEruB,EAAEo0H,WAAWphI,EAAE,GAAG,OAAO8wB,GAAGA,IAAIjG,GAAG,CAAC,IAAI2D,EAAEsC,EAAE1C,EAAEI,EAAEwsG,UAAUhsG,EAAER,EAAEkrG,UAAU,GAAG,OAAOtrG,GAAGA,IAAIvD,EAAE,MAAM,IAAI2D,EAAEqP,KAAK,OAAO7O,IAAIR,EAAEQ,EAAErG,EAAa,OAAVyF,EAAEisG,GAAGvpG,EAAEuK,KAAYr7B,EAAE4uB,QAAQ08G,GAAGx6G,EAAE1C,EAAEI,IAAK7F,GAAc,OAAVyF,EAAEisG,GAAGvpG,EAAEuK,KAAYr7B,EAAEyC,KAAK6oI,GAAGx6G,EAAE1C,EAAEI,KAAMsC,EAAEA,EAAE+/E,MAAM,CAAC,IAAI7wG,EAAE+C,QAAQ0zB,EAAEh0B,KAAK,CAACiI,MAAMsC,EAAEi2G,UAAUjjH,GAAG,CAAC,SAAS+rI,KAAK,CAAC,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGz1G,EAAEzpB,GAAG,OAAOypB,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW,QAAQzpB,EAAE4J,UAAU,OAAM,CAAE,CAC7b,SAASu1H,GAAG11G,EAAEzpB,GAAG,MAAM,aAAaypB,GAAG,WAAWA,GAAG,aAAaA,GAAG,iBAAkBzpB,EAAE/H,UAAU,iBAAkB+H,EAAE/H,UAAU,iBAAkB+H,EAAE0nH,yBAAyB,OAAO1nH,EAAE0nH,yBAAyB,MAAM1nH,EAAE0nH,wBAAwB0X,MAAM,CAAC,IAAIl4E,GAAG,mBAAoBrlD,WAAWA,gBAAW,EAAOw9H,GAAG,mBAAoB74H,aAAaA,kBAAa,EAAO,SAAS84H,GAAG71G,IAAG,IAAIA,EAAEmoD,UAA0B,IAAInoD,EAAEmoD,UAAoB,OAATnoD,EAAEA,EAAEzhB,SAAtCyhB,EAAE4qD,YAAY,GAAyD,CAC5c,SAASkrD,GAAG91G,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE2yG,YAAY,CAAC,IAAIp8H,EAAEypB,EAAEmoD,SAAS,GAAG,IAAI5xE,GAAG,IAAIA,EAAE,KAAK,CAAC,OAAOypB,CAAC,CAAC,SAAS+1G,GAAG/1G,GAAGA,EAAEA,EAAEg2G,gBAAgB,IAAI,IAAIz/H,EAAE,EAAEypB,GAAG,CAAC,GAAG,IAAIA,EAAEmoD,SAAS,CAAC,IAAI9tD,EAAE2F,EAAEjxB,KAAK,GAAG,MAAMsrB,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAI9jB,EAAE,OAAOypB,EAAEzpB,GAAG,KAAK,OAAO8jB,GAAG9jB,GAAG,CAACypB,EAAEA,EAAEg2G,eAAe,CAAC,OAAO,IAAI,CAAC,IAAIC,GAAG,EAA8DC,GAAGngI,KAAKC,SAASzB,SAAS,IAAImI,MAAM,GAAGy5H,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGpB,GAAG,oBAAoBoB,GAAGG,GAAG,iBAAiBH,GAC9d,SAAS5P,GAAGtmG,GAAG,IAAIzpB,EAAEypB,EAAEm2G,IAAI,GAAG5/H,EAAE,OAAOA,EAAE,IAAI,IAAI8jB,EAAE2F,EAAEvL,WAAW4F,GAAG,CAAC,GAAG9jB,EAAE8jB,EAAEy6G,KAAKz6G,EAAE87G,IAAI,CAAe,GAAd97G,EAAE9jB,EAAEguH,UAAa,OAAOhuH,EAAE4M,OAAO,OAAOkX,GAAG,OAAOA,EAAElX,MAAM,IAAI6c,EAAE+1G,GAAG/1G,GAAG,OAAOA,GAAG,CAAC,GAAG3F,EAAE2F,EAAEm2G,IAAI,OAAO97G,EAAE2F,EAAE+1G,GAAG/1G,EAAE,CAAC,OAAOzpB,CAAC,CAAK8jB,GAAJ2F,EAAE3F,GAAM5F,UAAU,CAAC,OAAO,IAAI,CAAC,SAASuuG,GAAGhjG,GAAkB,QAAfA,EAAEA,EAAEm2G,KAAKn2G,EAAE80G,MAAc,IAAI90G,EAAEoH,KAAK,IAAIpH,EAAEoH,KAAK,KAAKpH,EAAEoH,KAAK,IAAIpH,EAAEoH,IAAI,KAAKpH,CAAC,CAAC,SAASyxG,GAAGzxG,GAAG,GAAG,IAAIA,EAAEoH,KAAK,IAAIpH,EAAEoH,IAAI,OAAOpH,EAAEijG,UAAU,MAAMnsH,MAAMi+C,EAAE,IAAK,CAAC,SAASmuE,GAAGljG,GAAG,OAAOA,EAAEo2G,KAAK,IAAI,CACtb,SAAS9B,GAAGt0G,GAAG,IAAIzpB,EAAEypB,EAAEq2G,IAAkC,YAA9B,IAAS9/H,IAAIA,EAAEypB,EAAEq2G,IAAI,IAAIziG,KAAYr9B,CAAC,CAAC,IAAI+/H,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAGx2G,GAAG,MAAM,CAACvd,QAAQud,EAAE,CAAC,SAASy2G,GAAEz2G,GAAG,EAAEu2G,KAAKv2G,EAAEvd,QAAQ6zH,GAAGC,IAAID,GAAGC,IAAI,KAAKA,KAAK,CAAC,SAASG,GAAE12G,EAAEzpB,GAAGggI,KAAKD,GAAGC,IAAIv2G,EAAEvd,QAAQud,EAAEvd,QAAQlM,CAAC,CAAC,IAAIogI,GAAG,CAAC,EAAEjmH,GAAE8lH,GAAGG,IAAIC,GAAEJ,IAAG,GAAIK,GAAGF,GAC5P,SAASG,GAAG92G,EAAEzpB,GAAG,IAAI8jB,EAAE2F,EAAEtgB,KAAKi3E,aAAa,IAAIt8D,EAAE,OAAOs8G,GAAG,IAAIviH,EAAE4L,EAAEijG,UAAU,GAAG7uG,GAAGA,EAAE2iH,8CAA8CxgI,EAAE,OAAO6d,EAAE4iH,0CAA0C,IAASpyG,EAAL1S,EAAE,CAAC,EAAI,IAAI0S,KAAKvK,EAAEnI,EAAE0S,GAAGruB,EAAEquB,GAAoH,OAAjHxQ,KAAI4L,EAAEA,EAAEijG,WAAY8T,4CAA4CxgI,EAAEypB,EAAEg3G,0CAA0C9kH,GAAUA,CAAC,CAAC,SAAS+kH,GAAGj3G,GAAyB,OAAO,MAA3BA,EAAEqqC,iBAA6C,CAAC,SAAS6sE,KAAKT,GAAEG,IAAGH,GAAE/lH,GAAE,CAAC,SAASymH,GAAGn3G,EAAEzpB,EAAE8jB,GAAG,GAAG3J,GAAEjO,UAAUk0H,GAAG,MAAM7/H,MAAMi+C,EAAE,MAAM2hF,GAAEhmH,GAAEna,GAAGmgI,GAAEE,GAAEv8G,EAAE,CACjf,SAAS+8G,GAAGp3G,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE4L,EAAEijG,UAAgC,GAAtBjjG,EAAEzpB,EAAE8zD,kBAAqB,mBAAoBj2C,EAAEg2C,gBAAgB,OAAO/vC,EAAwB,IAAI,IAAInI,KAA9BkC,EAAEA,EAAEg2C,kBAAiC,KAAKl4C,KAAK8N,GAAG,MAAMlpB,MAAMi+C,EAAE,IAAI2nE,EAAGnmH,IAAI,UAAU2b,IAAI,OAAOoH,EAAE,CAAC,EAAEe,EAAEjG,EAAE,CAAC,SAASijH,GAAGr3G,GAAyG,OAAtGA,GAAGA,EAAEA,EAAEijG,YAAYjjG,EAAEs3G,2CAA2CX,GAAGE,GAAGnmH,GAAEjO,QAAQi0H,GAAEhmH,GAAEsP,GAAG02G,GAAEE,GAAEA,GAAEn0H,UAAe,CAAE,CAAC,SAAS80H,GAAGv3G,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE4L,EAAEijG,UAAU,IAAI7uG,EAAE,MAAMtd,MAAMi+C,EAAE,MAAM16B,GAAG2F,EAAEo3G,GAAGp3G,EAAEzpB,EAAEsgI,IAAIziH,EAAEkjH,0CAA0Ct3G,EAAEy2G,GAAEG,IAAGH,GAAE/lH,IAAGgmH,GAAEhmH,GAAEsP,IAAIy2G,GAAEG,IAAGF,GAAEE,GAAEv8G,EAAE,CAC/e,IAAIm9G,GAAG,KAAKC,GAAG,KAAKC,GAAG5hI,EAAE0wH,yBAAyBmR,GAAG7hI,EAAEmxH,0BAA0B2Q,GAAG9hI,EAAE+hI,wBAAwBC,GAAGhiI,EAAEiiI,qBAAqBC,GAAGliI,EAAEmiI,sBAAsBC,GAAGpiI,EAAEyyH,aAAa4P,GAAGriI,EAAEsiI,iCAAiCC,GAAGviI,EAAEwiI,2BAA2BC,GAAGziI,EAAE8zH,8BAA8B4O,GAAG1iI,EAAEoxH,wBAAwBuR,GAAG3iI,EAAE4iI,qBAAqBC,GAAG7iI,EAAE8iI,sBAAsBC,GAAG,CAAC,EAAEC,QAAG,IAASd,GAAGA,GAAG,WAAW,EAAEe,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAGC,GAAGhB,KAAK3iD,GAAE,IAAI2jD,GAAGhB,GAAG,WAAW,OAAOA,KAAKgB,EAAE,EACxd,SAASC,KAAK,OAAOhB,MAAM,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,QAAQ,MAAM7hI,MAAMi+C,EAAE,MAAO,CAAC,SAASqkF,GAAGp5G,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAOq4G,GAAG,KAAK,GAAG,OAAOE,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOE,GAAG,QAAQ,MAAM7hI,MAAMi+C,EAAE,MAAO,CAAC,SAASskF,GAAGr5G,EAAEzpB,GAAW,OAARypB,EAAEo5G,GAAGp5G,GAAU03G,GAAG13G,EAAEzpB,EAAE,CAAC,SAAS+iI,GAAGt5G,EAAEzpB,EAAE8jB,GAAW,OAAR2F,EAAEo5G,GAAGp5G,GAAU23G,GAAG33G,EAAEzpB,EAAE8jB,EAAE,CAAC,SAASk/G,KAAK,GAAG,OAAOP,GAAG,CAAC,IAAIh5G,EAAEg5G,GAAGA,GAAG,KAAKpB,GAAG53G,EAAE,CAACw5G,IAAI,CAC/a,SAASA,KAAK,IAAIP,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAIj5G,EAAE,EAAE,IAAI,IAAIzpB,EAAEwiI,GAAGM,GAAG,IAAG,WAAW,KAAKr5G,EAAEzpB,EAAEjK,OAAO0zB,IAAI,CAAC,IAAI3F,EAAE9jB,EAAEypB,GAAG,GAAG3F,EAAEA,GAAE,SAAU,OAAOA,EAAE,CAAC,IAAG0+G,GAAG,IAAI,CAAC,MAAM1+G,GAAG,MAAM,OAAO0+G,KAAKA,GAAGA,GAAGr8H,MAAMsjB,EAAE,IAAI23G,GAAGU,GAAGkB,IAAIl/G,CAAE,CAAC,QAAQ4+G,IAAG,CAAE,CAAC,CAAC,CAAC,IAAIQ,GAAG7e,EAAG8e,wBAAwB,SAASC,GAAG35G,EAAEzpB,GAAG,GAAGypB,GAAGA,EAAEtxB,aAAa,CAA4B,IAAI,IAAI2rB,KAAnC9jB,EAAE+iB,EAAE,CAAC,EAAE/iB,GAAGypB,EAAEA,EAAEtxB,kBAA4B,IAAS6H,EAAE8jB,KAAK9jB,EAAE8jB,GAAG2F,EAAE3F,IAAI,OAAO9jB,CAAC,CAAC,OAAOA,CAAC,CAAC,IAAIqjI,GAAGpD,GAAG,MAAMqD,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,IAAI,CAChc,SAASI,GAAGj6G,GAAG,IAAIzpB,EAAEqjI,GAAGn3H,QAAQg0H,GAAEmD,IAAI55G,EAAEtgB,KAAKrU,SAAS6uI,cAAc3jI,CAAC,CAAC,SAAS4jI,GAAGn6G,EAAEzpB,GAAG,KAAK,OAAOypB,GAAG,CAAC,IAAI3F,EAAE2F,EAAEukG,UAAU,IAAIvkG,EAAEo6G,WAAW7jI,KAAKA,EAAE,IAAG,OAAO8jB,IAAIA,EAAE+/G,WAAW7jI,KAAKA,EAAE,MAAW8jB,EAAE+/G,YAAY7jI,CAAC,MAAMypB,EAAEo6G,YAAY7jI,EAAE,OAAO8jB,IAAIA,EAAE+/G,YAAY7jI,GAAGypB,EAAEA,EAAEo6E,MAAM,CAAC,CAAC,SAASigC,GAAGr6G,EAAEzpB,GAAGsjI,GAAG75G,EAAE+5G,GAAGD,GAAG,KAAsB,QAAjB95G,EAAEA,EAAE3uB,eAAuB,OAAO2uB,EAAEs6G,eAAe,IAAKt6G,EAAEu6G,MAAMhkI,KAAKikI,IAAG,GAAIx6G,EAAEs6G,aAAa,KAAK,CAC5Y,SAASG,GAAGz6G,EAAEzpB,GAAG,GAAGwjI,KAAK/5G,IAAG,IAAKzpB,GAAG,IAAIA,EAAmG,GAA7F,iBAAkBA,GAAG,aAAaA,IAAEwjI,GAAG/5G,EAAEzpB,EAAE,YAAWA,EAAE,CAACuvB,QAAQ9F,EAAE06G,aAAankI,EAAEmhB,KAAK,MAAS,OAAOoiH,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAM/iI,MAAMi+C,EAAE,MAAM+kF,GAAGvjI,EAAEsjI,GAAGxoI,aAAa,CAACkpI,MAAM,EAAED,aAAa/jI,EAAEokI,WAAW,KAAK,MAAMb,GAAGA,GAAGpiH,KAAKnhB,EAAE,OAAOypB,EAAEk6G,aAAa,CAAC,IAAIU,IAAG,EAAG,SAASC,GAAG76G,GAAGA,EAAE86G,YAAY,CAACC,UAAU/6G,EAAE0kG,cAAcsW,gBAAgB,KAAKC,eAAe,KAAKC,OAAO,CAAC56H,QAAQ,MAAM66H,QAAQ,KAAK,CAC/a,SAASC,GAAGp7G,EAAEzpB,GAAGypB,EAAEA,EAAE86G,YAAYvkI,EAAEukI,cAAc96G,IAAIzpB,EAAEukI,YAAY,CAACC,UAAU/6G,EAAE+6G,UAAUC,gBAAgBh7G,EAAEg7G,gBAAgBC,eAAej7G,EAAEi7G,eAAeC,OAAOl7G,EAAEk7G,OAAOC,QAAQn7G,EAAEm7G,SAAS,CAAC,SAASE,GAAGr7G,EAAEzpB,GAAG,MAAM,CAAC+kI,UAAUt7G,EAAEu7G,KAAKhlI,EAAE6wB,IAAI,EAAEvoB,QAAQ,KAAK1G,SAAS,KAAKuf,KAAK,KAAK,CAAC,SAAS8jH,GAAGx7G,EAAEzpB,GAAmB,GAAG,QAAnBypB,EAAEA,EAAE86G,aAAwB,CAAY,IAAIzgH,GAAf2F,EAAEA,EAAEk7G,QAAe56H,QAAQ,OAAO+Z,EAAE9jB,EAAEmhB,KAAKnhB,GAAGA,EAAEmhB,KAAK2C,EAAE3C,KAAK2C,EAAE3C,KAAKnhB,GAAGypB,EAAE1f,QAAQ/J,CAAC,CAAC,CACvZ,SAASklI,GAAGz7G,EAAEzpB,GAAG,IAAI8jB,EAAE2F,EAAE86G,YAAY1mH,EAAE4L,EAAEukG,UAAU,GAAG,OAAOnwG,GAAoBiG,KAAhBjG,EAAEA,EAAE0mH,aAAmB,CAAC,IAAI5oH,EAAE,KAAK0S,EAAE,KAAyB,GAAG,QAAvBvK,EAAEA,EAAE2gH,iBAA4B,CAAC,EAAE,CAAC,IAAIzxI,EAAE,CAAC+xI,UAAUjhH,EAAEihH,UAAUC,KAAKlhH,EAAEkhH,KAAKn0G,IAAI/M,EAAE+M,IAAIvoB,QAAQwb,EAAExb,QAAQ1G,SAASkiB,EAAEliB,SAASuf,KAAK,MAAM,OAAOkN,EAAE1S,EAAE0S,EAAEr7B,EAAEq7B,EAAEA,EAAElN,KAAKnuB,EAAE8wB,EAAEA,EAAE3C,IAAI,OAAO,OAAO2C,GAAG,OAAOuK,EAAE1S,EAAE0S,EAAEruB,EAAEquB,EAAEA,EAAElN,KAAKnhB,CAAC,MAAM2b,EAAE0S,EAAEruB,EAAiH,OAA/G8jB,EAAE,CAAC0gH,UAAU3mH,EAAE2mH,UAAUC,gBAAgB9oH,EAAE+oH,eAAer2G,EAAEs2G,OAAO9mH,EAAE8mH,OAAOC,QAAQ/mH,EAAE+mH,cAASn7G,EAAE86G,YAAYzgH,EAAQ,CAAoB,QAAnB2F,EAAE3F,EAAE4gH,gBAAwB5gH,EAAE2gH,gBAAgBzkI,EAAEypB,EAAEtI,KACnfnhB,EAAE8jB,EAAE4gH,eAAe1kI,CAAC,CACpB,SAASmlI,GAAG17G,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAE8N,EAAE86G,YAAYF,IAAG,EAAG,IAAIh2G,EAAE1S,EAAE8oH,gBAAgBzxI,EAAE2oB,EAAE+oH,eAAeljH,EAAE7F,EAAEgpH,OAAO56H,QAAQ,GAAG,OAAOyX,EAAE,CAAC7F,EAAEgpH,OAAO56H,QAAQ,KAAK,IAAIqX,EAAEI,EAAEQ,EAAEZ,EAAED,KAAKC,EAAED,KAAK,KAAK,OAAOnuB,EAAEq7B,EAAErM,EAAEhvB,EAAEmuB,KAAKa,EAAEhvB,EAAEouB,EAAE,IAAI1gB,EAAE+oB,EAAEukG,UAAU,GAAG,OAAOttH,EAAE,CAAiB,IAAIshF,GAApBthF,EAAEA,EAAE6jI,aAAoBG,eAAe1iD,IAAIhvF,IAAI,OAAOgvF,EAAEthF,EAAE+jI,gBAAgBziH,EAAEggE,EAAE7gE,KAAKa,EAAEthB,EAAEgkI,eAAetjH,EAAE,CAAC,CAAC,GAAG,OAAOiN,EAAE,CAA8B,IAA7B2zD,EAAErmE,EAAE6oH,UAAUxxI,EAAE,EAAE0N,EAAEshB,EAAEZ,EAAE,OAAO,CAACI,EAAE6M,EAAE22G,KAAK,IAAIt+G,EAAE2H,EAAE02G,UAAU,IAAIlnH,EAAE2D,KAAKA,EAAE,CAAC,OAAO9gB,IAAIA,EAAEA,EAAEygB,KAAK,CAAC4jH,UAAUr+G,EAAEs+G,KAAK,EAAEn0G,IAAIxC,EAAEwC,IAAIvoB,QAAQ+lB,EAAE/lB,QAAQ1G,SAASysB,EAAEzsB,SACrfuf,KAAK,OAAOsI,EAAE,CAAC,IAAI27G,EAAE37G,EAAE4D,EAAEgB,EAAU,OAAR7M,EAAExhB,EAAE0mB,EAAE5C,EAASuJ,EAAEwD,KAAK,KAAK,EAAc,GAAG,mBAAfu0G,EAAE/3G,EAAE/kB,SAAiC,CAAC05E,EAAEojD,EAAE7wI,KAAKmyB,EAAEs7D,EAAExgE,GAAG,MAAMiI,CAAC,CAACu4D,EAAEojD,EAAE,MAAM37G,EAAE,KAAK,EAAE27G,EAAEnX,OAAe,KAATmX,EAAEnX,MAAY,GAAG,KAAK,EAAsD,GAAG,OAA3CzsG,EAAE,mBAAd4jH,EAAE/3G,EAAE/kB,SAAgC88H,EAAE7wI,KAAKmyB,EAAEs7D,EAAExgE,GAAG4jH,GAA0B,MAAM37G,EAAEu4D,EAAEj/D,EAAE,CAAC,EAAEi/D,EAAExgE,GAAG,MAAMiI,EAAE,KAAK,EAAE46G,IAAG,EAAG,CAAC,OAAOh2G,EAAEzsB,WAAW6nB,EAAEwkG,OAAO,GAAe,QAAZzsG,EAAE7F,EAAEipH,SAAiBjpH,EAAEipH,QAAQ,CAACv2G,GAAG7M,EAAE/rB,KAAK44B,GAAG,MAAM3H,EAAE,CAACq+G,UAAUr+G,EAAEs+G,KAAKxjH,EAAEqP,IAAIxC,EAAEwC,IAAIvoB,QAAQ+lB,EAAE/lB,QAAQ1G,SAASysB,EAAEzsB,SAASuf,KAAK,MAAM,OAAOzgB,GAAGshB,EAAEthB,EAAEgmB,EAAEtF,EAAE4gE,GAAGthF,EAAEA,EAAEygB,KAAKuF,EAAE1zB,GAAGwuB,EAAW,GAAG,QAAZ6M,EAAEA,EAAElN,MAC1e,IAAsB,QAAnBK,EAAE7F,EAAEgpH,OAAO56H,SAAiB,MAAWskB,EAAE7M,EAAEL,KAAKK,EAAEL,KAAK,KAAKxF,EAAE+oH,eAAeljH,EAAE7F,EAAEgpH,OAAO56H,QAAQ,KAAI,CAAU,OAAOrJ,IAAI0gB,EAAE4gE,GAAGrmE,EAAE6oH,UAAUpjH,EAAEzF,EAAE8oH,gBAAgBziH,EAAErG,EAAE+oH,eAAehkI,EAAE2kI,IAAIryI,EAAEy2B,EAAEu6G,MAAMhxI,EAAEy2B,EAAE0kG,cAAcnsC,CAAC,CAAC,CAAC,SAASsjD,GAAG77G,EAAEzpB,EAAE8jB,GAA8B,GAA3B2F,EAAEzpB,EAAE4kI,QAAQ5kI,EAAE4kI,QAAQ,KAAQ,OAAOn7G,EAAE,IAAIzpB,EAAE,EAAEA,EAAEypB,EAAE1zB,OAAOiK,IAAI,CAAC,IAAI6d,EAAE4L,EAAEzpB,GAAG2b,EAAEkC,EAAEjc,SAAS,GAAG,OAAO+Z,EAAE,CAAqB,GAApBkC,EAAEjc,SAAS,KAAKic,EAAEiG,EAAK,mBAAoBnI,EAAE,MAAMpb,MAAMi+C,EAAE,IAAI7iC,IAAIA,EAAEpnB,KAAKspB,EAAE,CAAC,CAAC,CAAC,IAAI0nH,IAAG,IAAK5iB,EAAG5nG,WAAWuD,KAC3b,SAASknH,GAAG/7G,EAAEzpB,EAAE8jB,EAAEjG,GAA8BiG,EAAE,OAAXA,EAAEA,EAAEjG,EAAtB7d,EAAEypB,EAAE0kG,gBAA8CnuH,EAAE+iB,EAAE,CAAC,EAAE/iB,EAAE8jB,GAAG2F,EAAE0kG,cAAcrqG,EAAE,IAAI2F,EAAEu6G,QAAQv6G,EAAE86G,YAAYC,UAAU1gH,EAAE,CAC7I,IAAI2hH,GAAG,CAACC,UAAU,SAASj8G,GAAG,SAAOA,EAAEA,EAAEk8G,kBAAiB5X,GAAGtkG,KAAKA,CAAI,EAAEm8G,gBAAgB,SAASn8G,EAAEzpB,EAAE8jB,GAAG2F,EAAEA,EAAEk8G,gBAAgB,IAAI9nH,EAAEgoH,KAAKlqH,EAAEmqH,GAAGr8G,GAAG4E,EAAEy2G,GAAGjnH,EAAElC,GAAG0S,EAAE/lB,QAAQtI,EAAE,MAAS8jB,IAAcuK,EAAEzsB,SAASkiB,GAAGmhH,GAAGx7G,EAAE4E,GAAG03G,GAAGt8G,EAAE9N,EAAEkC,EAAE,EAAEmoH,oBAAoB,SAASv8G,EAAEzpB,EAAE8jB,GAAG2F,EAAEA,EAAEk8G,gBAAgB,IAAI9nH,EAAEgoH,KAAKlqH,EAAEmqH,GAAGr8G,GAAG4E,EAAEy2G,GAAGjnH,EAAElC,GAAG0S,EAAEwC,IAAI,EAAExC,EAAE/lB,QAAQtI,EAAE,MAAS8jB,IAAcuK,EAAEzsB,SAASkiB,GAAGmhH,GAAGx7G,EAAE4E,GAAG03G,GAAGt8G,EAAE9N,EAAEkC,EAAE,EAAEooH,mBAAmB,SAASx8G,EAAEzpB,GAAGypB,EAAEA,EAAEk8G,gBAAgB,IAAI7hH,EAAE+hH,KAAKhoH,EAAEioH,GAAGr8G,GAAG9N,EAAEmpH,GAAGhhH,EAAEjG,GAAGlC,EAAEkV,IAAI,EAAE,MAAS7wB,IAAc2b,EAAE/Z,SACjf5B,GAAGilI,GAAGx7G,EAAE9N,GAAGoqH,GAAGt8G,EAAE5L,EAAEiG,EAAE,GAAG,SAASoiH,GAAGz8G,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,EAAEr7B,GAAiB,MAAM,mBAApBy2B,EAAEA,EAAEijG,WAAsCyZ,sBAAsB18G,EAAE08G,sBAAsBtoH,EAAEwQ,EAAEr7B,KAAGgN,EAAEvM,WAAWuM,EAAEvM,UAAU2yI,sBAAsBnK,GAAGn4G,EAAEjG,IAAKo+G,GAAGtgH,EAAE0S,GAAK,CACpN,SAASg4G,GAAG58G,EAAEzpB,EAAE8jB,GAAG,IAAIjG,GAAE,EAAGlC,EAAEykH,GAAO/xG,EAAEruB,EAAEmgF,YAA2W,MAA/V,iBAAkB9xD,GAAG,OAAOA,EAAEA,EAAE61G,GAAG71G,IAAI1S,EAAE+kH,GAAG1gI,GAAGsgI,GAAGnmH,GAAEjO,QAAyBmiB,GAAGxQ,EAAE,OAAtBA,EAAE7d,EAAEogF,eAAwCmgD,GAAG92G,EAAE9N,GAAGykH,IAAIpgI,EAAE,IAAIA,EAAE8jB,EAAEuK,GAAG5E,EAAE0kG,cAAc,OAAOnuH,EAAEusC,YAAO,IAASvsC,EAAEusC,MAAMvsC,EAAEusC,MAAM,KAAKvsC,EAAEsmI,QAAQb,GAAGh8G,EAAEijG,UAAU1sH,EAAEA,EAAE2lI,gBAAgBl8G,EAAE5L,KAAI4L,EAAEA,EAAEijG,WAAY8T,4CAA4C7kH,EAAE8N,EAAEg3G,0CAA0CpyG,GAAUruB,CAAC,CAC5Z,SAASumI,GAAG98G,EAAEzpB,EAAE8jB,EAAEjG,GAAG4L,EAAEzpB,EAAEusC,MAAM,mBAAoBvsC,EAAEw3E,2BAA2Bx3E,EAAEw3E,0BAA0B1zD,EAAEjG,GAAG,mBAAoB7d,EAAEysC,kCAAkCzsC,EAAEysC,iCAAiC3oB,EAAEjG,GAAG7d,EAAEusC,QAAQ9iB,GAAGg8G,GAAGO,oBAAoBhmI,EAAEA,EAAEusC,MAAM,KAAK,CACpQ,SAASi6F,GAAG/8G,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAE8N,EAAEijG,UAAU/wG,EAAEllB,MAAMqtB,EAAEnI,EAAE4wB,MAAM9iB,EAAE0kG,cAAcxyG,EAAE2C,KAAKinH,GAAGjB,GAAG76G,GAAG,IAAI4E,EAAEruB,EAAEmgF,YAAY,iBAAkB9xD,GAAG,OAAOA,EAAE1S,EAAE4T,QAAQ20G,GAAG71G,IAAIA,EAAEqyG,GAAG1gI,GAAGsgI,GAAGnmH,GAAEjO,QAAQyP,EAAE4T,QAAQgxG,GAAG92G,EAAE4E,IAAI82G,GAAG17G,EAAE3F,EAAEnI,EAAEkC,GAAGlC,EAAE4wB,MAAM9iB,EAAE0kG,cAA2C,mBAA7B9/F,EAAEruB,EAAEugF,4BAAiDilD,GAAG/7G,EAAEzpB,EAAEquB,EAAEvK,GAAGnI,EAAE4wB,MAAM9iB,EAAE0kG,eAAe,mBAAoBnuH,EAAEugF,0BAA0B,mBAAoB5kE,EAAE8qH,yBAAyB,mBAAoB9qH,EAAEu0D,2BAA2B,mBAAoBv0D,EAAE47D,qBACvev3E,EAAE2b,EAAE4wB,MAAM,mBAAoB5wB,EAAE47D,oBAAoB57D,EAAE47D,qBAAqB,mBAAoB57D,EAAEu0D,2BAA2Bv0D,EAAEu0D,4BAA4BlwE,IAAI2b,EAAE4wB,OAAOk5F,GAAGO,oBAAoBrqH,EAAEA,EAAE4wB,MAAM,MAAM44F,GAAG17G,EAAE3F,EAAEnI,EAAEkC,GAAGlC,EAAE4wB,MAAM9iB,EAAE0kG,eAAe,mBAAoBxyG,EAAE6zB,oBAAoB/lB,EAAEwkG,OAAO,EAAE,CAAC,IAAIyY,GAAGpnI,MAAMwgC,QACvT,SAAS6mG,GAAGl9G,EAAEzpB,EAAE8jB,GAAW,GAAG,QAAX2F,EAAE3F,EAAEzsB,MAAiB,mBAAoBoyB,GAAG,iBAAkBA,EAAE,CAAC,GAAG3F,EAAE8iH,OAAO,CAAY,GAAX9iH,EAAEA,EAAE8iH,OAAY,CAAC,GAAG,IAAI9iH,EAAE+M,IAAI,MAAMtwB,MAAMi+C,EAAE,MAAM,IAAI3gC,EAAEiG,EAAE4oG,SAAS,CAAC,IAAI7uG,EAAE,MAAMtd,MAAMi+C,EAAE,IAAI/0B,IAAI,IAAI9N,EAAE,GAAG8N,EAAE,OAAG,OAAOzpB,GAAG,OAAOA,EAAE3I,KAAK,mBAAoB2I,EAAE3I,KAAK2I,EAAE3I,IAAIwvI,aAAalrH,EAAS3b,EAAE3I,KAAI2I,EAAE,SAASypB,GAAG,IAAIzpB,EAAE6d,EAAES,KAAKte,IAAIulI,KAAKvlI,EAAE6d,EAAES,KAAK,CAAC,GAAG,OAAOmL,SAASzpB,EAAE2b,GAAG3b,EAAE2b,GAAG8N,CAAC,EAAEzpB,EAAE6mI,WAAWlrH,EAAS3b,EAAC,CAAC,GAAG,iBAAkBypB,EAAE,MAAMlpB,MAAMi+C,EAAE,MAAM,IAAI16B,EAAE8iH,OAAO,MAAMrmI,MAAMi+C,EAAE,IAAI/0B,GAAI,CAAC,OAAOA,CAAC,CACje,SAASq9G,GAAGr9G,EAAEzpB,GAAG,GAAG,aAAaypB,EAAEtgB,KAAK,MAAM5I,MAAMi+C,EAAE,GAAG,oBAAoBtqD,OAAOT,UAAUuK,SAASzJ,KAAKyL,GAAG,qBAAqB9L,OAAOiB,KAAK6K,GAAGjB,KAAK,MAAM,IAAIiB,GAAI,CACtK,SAAS+mI,GAAGt9G,GAAG,SAASzpB,EAAEA,EAAE8jB,GAAG,GAAG2F,EAAE,CAAC,IAAI5L,EAAE7d,EAAEgnI,WAAW,OAAOnpH,GAAGA,EAAEopH,WAAWnjH,EAAE9jB,EAAEgnI,WAAWljH,GAAG9jB,EAAEknI,YAAYlnI,EAAEgnI,WAAWljH,EAAEA,EAAEmjH,WAAW,KAAKnjH,EAAEmqG,MAAM,CAAC,CAAC,CAAC,SAASnqG,EAAEA,EAAEjG,GAAG,IAAI4L,EAAE,OAAO,KAAK,KAAK,OAAO5L,GAAG7d,EAAE8jB,EAAEjG,GAAGA,EAAEA,EAAE0wG,QAAQ,OAAO,IAAI,CAAC,SAAS1wG,EAAE4L,EAAEzpB,GAAG,IAAIypB,EAAE,IAAI3N,IAAI,OAAO9b,GAAG,OAAOA,EAAE3L,IAAIo1B,EAAEh1B,IAAIuL,EAAE3L,IAAI2L,GAAGypB,EAAEh1B,IAAIuL,EAAEyY,MAAMzY,GAAGA,EAAEA,EAAEuuH,QAAQ,OAAO9kG,CAAC,CAAC,SAAS9N,EAAE8N,EAAEzpB,GAAsC,OAAnCypB,EAAE09G,GAAG19G,EAAEzpB,IAAKyY,MAAM,EAAEgR,EAAE8kG,QAAQ,KAAY9kG,CAAC,CAAC,SAAS4E,EAAEruB,EAAE8jB,EAAEjG,GAAa,OAAV7d,EAAEyY,MAAMoF,EAAM4L,EAA4B,QAAjB5L,EAAE7d,EAAEguH,YAA6BnwG,EAAEA,EAAEpF,OAAQqL,GAAG9jB,EAAEiuH,MAAM,EACpfnqG,GAAGjG,GAAE7d,EAAEiuH,MAAM,EAASnqG,GADoaA,CACna,CAAC,SAAS9wB,EAAEgN,GAAsC,OAAnCypB,GAAG,OAAOzpB,EAAEguH,YAAYhuH,EAAEiuH,MAAM,GAAUjuH,CAAC,CAAC,SAASwhB,EAAEiI,EAAEzpB,EAAE8jB,EAAEjG,GAAG,OAAG,OAAO7d,GAAG,IAAIA,EAAE6wB,MAAW7wB,EAAEonI,GAAGtjH,EAAE2F,EAAE2tB,KAAKv5B,IAAKgmF,OAAOp6E,EAAEzpB,KAAEA,EAAE2b,EAAE3b,EAAE8jB,IAAK+/E,OAAOp6E,EAASzpB,EAAC,CAAC,SAASohB,EAAEqI,EAAEzpB,EAAE8jB,EAAEjG,GAAG,OAAG,OAAO7d,GAAGA,EAAEqiH,cAAcv+F,EAAE3a,OAAY0U,EAAElC,EAAE3b,EAAE8jB,EAAErtB,QAASY,IAAIsvI,GAAGl9G,EAAEzpB,EAAE8jB,GAAGjG,EAAEgmF,OAAOp6E,EAAE5L,KAAEA,EAAEwpH,GAAGvjH,EAAE3a,KAAK2a,EAAEzvB,IAAIyvB,EAAErtB,MAAM,KAAKgzB,EAAE2tB,KAAKv5B,IAAKxmB,IAAIsvI,GAAGl9G,EAAEzpB,EAAE8jB,GAAGjG,EAAEgmF,OAAOp6E,EAAS5L,EAAC,CAAC,SAASmE,EAAEyH,EAAEzpB,EAAE8jB,EAAEjG,GAAG,OAAG,OAAO7d,GAAG,IAAIA,EAAE6wB,KAAK7wB,EAAE0sH,UAAU0D,gBAAgBtsG,EAAEssG,eAAepwH,EAAE0sH,UAAU4a,iBAAiBxjH,EAAEwjH,iBAAsBtnI,EACrgBunI,GAAGzjH,EAAE2F,EAAE2tB,KAAKv5B,IAAKgmF,OAAOp6E,EAAEzpB,KAAEA,EAAE2b,EAAE3b,EAAE8jB,EAAE7rB,UAAU,KAAM4rG,OAAOp6E,EAASzpB,EAAC,CAAC,SAASU,EAAE+oB,EAAEzpB,EAAE8jB,EAAEjG,EAAEwQ,GAAG,OAAG,OAAOruB,GAAG,IAAIA,EAAE6wB,MAAW7wB,EAAEwnI,GAAG1jH,EAAE2F,EAAE2tB,KAAKv5B,EAAEwQ,IAAKw1E,OAAOp6E,EAAEzpB,KAAEA,EAAE2b,EAAE3b,EAAE8jB,IAAK+/E,OAAOp6E,EAASzpB,EAAC,CAAC,SAASgiF,EAAEv4D,EAAEzpB,EAAE8jB,GAAG,GAAG,iBAAkB9jB,GAAG,iBAAkBA,EAAE,OAAOA,EAAEonI,GAAG,GAAGpnI,EAAEypB,EAAE2tB,KAAKtzB,IAAK+/E,OAAOp6E,EAAEzpB,EAAE,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE+hF,UAAU,KAAKwiC,EAAG,OAAOzgG,EAAEujH,GAAGrnI,EAAEmJ,KAAKnJ,EAAE3L,IAAI2L,EAAEvJ,MAAM,KAAKgzB,EAAE2tB,KAAKtzB,IAAKzsB,IAAIsvI,GAAGl9G,EAAE,KAAKzpB,GAAG8jB,EAAE+/E,OAAOp6E,EAAE3F,EAAE,KAAK0gG,EAAG,OAAOxkH,EAAEunI,GAAGvnI,EAAEypB,EAAE2tB,KAAKtzB,IAAK+/E,OAAOp6E,EAAEzpB,EAAE,GAAG0mI,GAAG1mI,IAAI2lH,EAAG3lH,GAAG,OAAOA,EAAEwnI,GAAGxnI,EACnfypB,EAAE2tB,KAAKtzB,EAAE,OAAQ+/E,OAAOp6E,EAAEzpB,EAAE8mI,GAAGr9G,EAAEzpB,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS0mB,EAAE+C,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAE,OAAO3b,EAAEA,EAAE3L,IAAI,KAAK,GAAG,iBAAkByvB,GAAG,iBAAkBA,EAAE,OAAO,OAAOnI,EAAE,KAAK6F,EAAEiI,EAAEzpB,EAAE,GAAG8jB,EAAEjG,GAAG,GAAG,iBAAkBiG,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEi+D,UAAU,KAAKwiC,EAAG,OAAOzgG,EAAEzvB,MAAMsnB,EAAEmI,EAAE3a,OAAOs7G,EAAG/jH,EAAE+oB,EAAEzpB,EAAE8jB,EAAErtB,MAAMwB,SAAS4lB,EAAElC,GAAGyF,EAAEqI,EAAEzpB,EAAE8jB,EAAEjG,GAAG,KAAK,KAAK2mG,EAAG,OAAO1gG,EAAEzvB,MAAMsnB,EAAEqG,EAAEyH,EAAEzpB,EAAE8jB,EAAEjG,GAAG,KAAK,GAAG6oH,GAAG5iH,IAAI6hG,EAAG7hG,GAAG,OAAO,OAAOnI,EAAE,KAAKjb,EAAE+oB,EAAEzpB,EAAE8jB,EAAEjG,EAAE,MAAMipH,GAAGr9G,EAAE3F,EAAE,CAAC,OAAO,IAAI,CAAC,SAASshH,EAAE37G,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,GAAG,iBAAkBkC,GAAG,iBAAkBA,EAAE,OACle2D,EAAExhB,EADueypB,EAAEA,EAAE11B,IAAI+vB,IACtf,KAAW,GAAGjG,EAAElC,GAAG,GAAG,iBAAkBkC,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEkkE,UAAU,KAAKwiC,EAAG,OAAO96F,EAAEA,EAAE11B,IAAI,OAAO8pB,EAAExpB,IAAIyvB,EAAEjG,EAAExpB,MAAM,KAAKwpB,EAAE1U,OAAOs7G,EAAG/jH,EAAEV,EAAEypB,EAAE5L,EAAEpnB,MAAMwB,SAAS0jB,EAAEkC,EAAExpB,KAAK+sB,EAAEphB,EAAEypB,EAAE5L,EAAElC,GAAG,KAAK6oG,EAAG,OAA2CxiG,EAAEhiB,EAAtCypB,EAAEA,EAAE11B,IAAI,OAAO8pB,EAAExpB,IAAIyvB,EAAEjG,EAAExpB,MAAM,KAAWwpB,EAAElC,GAAG,GAAG+qH,GAAG7oH,IAAI8nG,EAAG9nG,GAAG,OAAwBnd,EAAEV,EAAnBypB,EAAEA,EAAE11B,IAAI+vB,IAAI,KAAWjG,EAAElC,EAAE,MAAMmrH,GAAG9mI,EAAE6d,EAAE,CAAC,OAAO,IAAI,CAAC,SAASwP,EAAE1R,EAAE3oB,EAAEwuB,EAAEJ,GAAG,IAAI,IAAIY,EAAE,KAAKrE,EAAE,KAAKmkE,EAAE9uF,EAAEg0B,EAAEh0B,EAAE,EAAE4uF,EAAE,KAAK,OAAOE,GAAG96D,EAAExF,EAAEzrB,OAAOixB,IAAI,CAAC86D,EAAErpE,MAAMuO,GAAG46D,EAAEE,EAAEA,EAAE,MAAMF,EAAEE,EAAEysC,QAAQ,IAAI7tH,EAAEgmB,EAAE/K,EAAEmmE,EAAEtgE,EAAEwF,GAAG5F,GAAG,GAAG,OAAO1gB,EAAE,CAAC,OAAOohF,IAAIA,EAAEF,GAAG,KAAK,CAACn4D,GAAGq4D,GAAG,OACjfphF,EAAEstH,WAAWhuH,EAAE2b,EAAEmmE,GAAG9uF,EAAEq7B,EAAE3tB,EAAE1N,EAAEg0B,GAAG,OAAOrJ,EAAEqE,EAAEthB,EAAEid,EAAE4wG,QAAQ7tH,EAAEid,EAAEjd,EAAEohF,EAAEF,CAAC,CAAC,GAAG56D,IAAIxF,EAAEzrB,OAAO,OAAO+tB,EAAEnI,EAAEmmE,GAAG9/D,EAAE,GAAG,OAAO8/D,EAAE,CAAC,KAAK96D,EAAExF,EAAEzrB,OAAOixB,IAAkB,QAAd86D,EAAEE,EAAErmE,EAAE6F,EAAEwF,GAAG5F,MAAcpuB,EAAEq7B,EAAEyzD,EAAE9uF,EAAEg0B,GAAG,OAAOrJ,EAAEqE,EAAE8/D,EAAEnkE,EAAE4wG,QAAQzsC,EAAEnkE,EAAEmkE,GAAG,OAAO9/D,CAAC,CAAC,IAAI8/D,EAAEjkE,EAAElC,EAAEmmE,GAAG96D,EAAExF,EAAEzrB,OAAOixB,IAAsB,QAAlB46D,EAAEwjD,EAAEtjD,EAAEnmE,EAAEqL,EAAExF,EAAEwF,GAAG5F,MAAcqI,GAAG,OAAOm4D,EAAEosC,WAAWlsC,EAAEhiE,OAAO,OAAO8hE,EAAEvtF,IAAI2yB,EAAE46D,EAAEvtF,KAAKrB,EAAEq7B,EAAEuzD,EAAE5uF,EAAEg0B,GAAG,OAAOrJ,EAAEqE,EAAE4/D,EAAEjkE,EAAE4wG,QAAQ3sC,EAAEjkE,EAAEikE,GAA4C,OAAzCn4D,GAAGq4D,EAAE7rF,SAAQ,SAASwzB,GAAG,OAAOzpB,EAAE2b,EAAE8N,EAAE,IAAUzH,CAAC,CAAC,SAAS6/D,EAAElmE,EAAE3oB,EAAEwuB,EAAEJ,GAAG,IAAIY,EAAE2jG,EAAGnkG,GAAG,GAAG,mBAAoBQ,EAAE,MAAMzhB,MAAMi+C,EAAE,MAAkB,GAAG,OAAfh9B,EAAEQ,EAAEztB,KAAKitB,IAC1e,MAAMjhB,MAAMi+C,EAAE,MAAM,IAAI,IAAI7gC,EAAEqE,EAAE,KAAK8/D,EAAE9uF,EAAEg0B,EAAEh0B,EAAE,EAAE4uF,EAAE,KAAKlhF,EAAE8gB,EAAEL,OAAO,OAAO2gE,IAAIphF,EAAEqgC,KAAK/Z,IAAItmB,EAAE8gB,EAAEL,OAAO,CAAC2gE,EAAErpE,MAAMuO,GAAG46D,EAAEE,EAAEA,EAAE,MAAMF,EAAEE,EAAEysC,QAAQ,IAAI1sC,EAAEn7D,EAAE/K,EAAEmmE,EAAEphF,EAAErK,MAAM+qB,GAAG,GAAG,OAAOygE,EAAE,CAAC,OAAOC,IAAIA,EAAEF,GAAG,KAAK,CAACn4D,GAAGq4D,GAAG,OAAOD,EAAEmsC,WAAWhuH,EAAE2b,EAAEmmE,GAAG9uF,EAAEq7B,EAAEwzD,EAAE7uF,EAAEg0B,GAAG,OAAOrJ,EAAEqE,EAAE6/D,EAAElkE,EAAE4wG,QAAQ1sC,EAAElkE,EAAEkkE,EAAEC,EAAEF,CAAC,CAAC,GAAGlhF,EAAEqgC,KAAK,OAAOjd,EAAEnI,EAAEmmE,GAAG9/D,EAAE,GAAG,OAAO8/D,EAAE,CAAC,MAAMphF,EAAEqgC,KAAK/Z,IAAItmB,EAAE8gB,EAAEL,OAAwB,QAAjBzgB,EAAEshF,EAAErmE,EAAEjb,EAAErK,MAAM+qB,MAAcpuB,EAAEq7B,EAAE3tB,EAAE1N,EAAEg0B,GAAG,OAAOrJ,EAAEqE,EAAEthB,EAAEid,EAAE4wG,QAAQ7tH,EAAEid,EAAEjd,GAAG,OAAOshB,CAAC,CAAC,IAAI8/D,EAAEjkE,EAAElC,EAAEmmE,IAAIphF,EAAEqgC,KAAK/Z,IAAItmB,EAAE8gB,EAAEL,OAA4B,QAArBzgB,EAAE0kI,EAAEtjD,EAAEnmE,EAAEqL,EAAEtmB,EAAErK,MAAM+qB,MAAcqI,GAAG,OAAO/oB,EAAEstH,WAChflsC,EAAEhiE,OAAO,OAAOpf,EAAErM,IAAI2yB,EAAEtmB,EAAErM,KAAKrB,EAAEq7B,EAAE3tB,EAAE1N,EAAEg0B,GAAG,OAAOrJ,EAAEqE,EAAEthB,EAAEid,EAAE4wG,QAAQ7tH,EAAEid,EAAEjd,GAA4C,OAAzC+oB,GAAGq4D,EAAE7rF,SAAQ,SAASwzB,GAAG,OAAOzpB,EAAE2b,EAAE8N,EAAE,IAAUzH,CAAC,CAAC,OAAO,SAASyH,EAAE5L,EAAEwQ,EAAE7M,GAAG,IAAIJ,EAAE,iBAAkBiN,GAAG,OAAOA,GAAGA,EAAEllB,OAAOs7G,GAAI,OAAOp2F,EAAEh6B,IAAI+sB,IAAIiN,EAAEA,EAAE53B,MAAMwB,UAAU,IAAI+pB,EAAE,iBAAkBqM,GAAG,OAAOA,EAAE,GAAGrM,EAAE,OAAOqM,EAAE0zD,UAAU,KAAKwiC,EAAG96F,EAAE,CAAS,IAARzH,EAAEqM,EAAEh6B,IAAQ+sB,EAAEvD,EAAE,OAAOuD,GAAG,CAAC,GAAGA,EAAE/sB,MAAM2tB,EAAE,CAAC,GAAmB,IAAZZ,EAAEyP,KAAY,GAAGxC,EAAEllB,OAAOs7G,EAAG,CAAC3gG,EAAE2F,EAAErI,EAAEmtG,UAAS1wG,EAAElC,EAAEyF,EAAEiN,EAAE53B,MAAMwB,WAAY4rG,OAAOp6E,EAAEA,EAAE5L,EAAE,MAAM4L,CAAC,OAAe,GAAGrI,EAAEihG,cAAch0F,EAAEllB,KAAK,CAAC2a,EAAE2F,EAAErI,EAAEmtG,UAC5e1wG,EAAElC,EAAEyF,EAAEiN,EAAE53B,QAASY,IAAIsvI,GAAGl9G,EAAErI,EAAEiN,GAAGxQ,EAAEgmF,OAAOp6E,EAAEA,EAAE5L,EAAE,MAAM4L,CAAC,CAAE3F,EAAE2F,EAAErI,GAAG,KAAK,CAAMphB,EAAEypB,EAAErI,GAAGA,EAAEA,EAAEmtG,OAAO,CAAClgG,EAAEllB,OAAOs7G,IAAI5mG,EAAE2pH,GAAGn5G,EAAE53B,MAAMwB,SAASwxB,EAAE2tB,KAAK51B,EAAE6M,EAAEh6B,MAAOwvG,OAAOp6E,EAAEA,EAAE5L,KAAI2D,EAAE6lH,GAAGh5G,EAAEllB,KAAKklB,EAAEh6B,IAAIg6B,EAAE53B,MAAM,KAAKgzB,EAAE2tB,KAAK51B,IAAKnqB,IAAIsvI,GAAGl9G,EAAE5L,EAAEwQ,GAAG7M,EAAEqiF,OAAOp6E,EAAEA,EAAEjI,EAAE,CAAC,OAAOxuB,EAAEy2B,GAAG,KAAK+6F,EAAG/6F,EAAE,CAAC,IAAIrI,EAAEiN,EAAEh6B,IAAI,OAAOwpB,GAAG,CAAC,GAAGA,EAAExpB,MAAM+sB,EAAE,IAAG,IAAIvD,EAAEgT,KAAKhT,EAAE6uG,UAAU0D,gBAAgB/hG,EAAE+hG,eAAevyG,EAAE6uG,UAAU4a,iBAAiBj5G,EAAEi5G,eAAe,CAACxjH,EAAE2F,EAAE5L,EAAE0wG,UAAS1wG,EAAElC,EAAEkC,EAAEwQ,EAAEp2B,UAAU,KAAM4rG,OAAOp6E,EAAEA,EAAE5L,EAAE,MAAM4L,CAAC,CAAM3F,EAAE2F,EAAE5L,GAAG,KAAK,CAAM7d,EAAEypB,EAAE5L,GAAGA,EAAEA,EAAE0wG,OAAO,EAAC1wG,EACpf0pH,GAAGl5G,EAAE5E,EAAE2tB,KAAK51B,IAAKqiF,OAAOp6E,EAAEA,EAAE5L,CAAC,CAAC,OAAO7qB,EAAEy2B,GAAG,GAAG,iBAAkB4E,GAAG,iBAAkBA,EAAE,OAAOA,EAAE,GAAGA,EAAE,OAAOxQ,GAAG,IAAIA,EAAEgT,KAAK/M,EAAE2F,EAAE5L,EAAE0wG,UAAS1wG,EAAElC,EAAEkC,EAAEwQ,IAAKw1E,OAAOp6E,EAAEA,EAAE5L,IAAIiG,EAAE2F,EAAE5L,IAAGA,EAAEupH,GAAG/4G,EAAE5E,EAAE2tB,KAAK51B,IAAKqiF,OAAOp6E,EAAEA,EAAE5L,GAAG7qB,EAAEy2B,GAAG,GAAGi9G,GAAGr4G,GAAG,OAAOhB,EAAE5D,EAAE5L,EAAEwQ,EAAE7M,GAAG,GAAGmkG,EAAGt3F,GAAG,OAAOwzD,EAAEp4D,EAAE5L,EAAEwQ,EAAE7M,GAAc,GAAXQ,GAAG8kH,GAAGr9G,EAAE4E,QAAM,IAAqBA,IAAIjN,EAAE,OAAOqI,EAAEoH,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,MAAMtwB,MAAMi+C,EAAE,IAAI2nE,EAAG18F,EAAEtgB,OAAO,cAAe,OAAO2a,EAAE2F,EAAE5L,EAAE,CAAC,CAAC,IAAI4pH,GAAGV,IAAG,GAAIW,GAAGX,IAAG,GAAIY,GAAG,CAAC,EAAEC,GAAG3H,GAAG0H,IAAIE,GAAG5H,GAAG0H,IAAIluG,GAAGwmG,GAAG0H,IACtd,SAASG,GAAGr+G,GAAG,GAAGA,IAAIk+G,GAAG,MAAMpnI,MAAMi+C,EAAE,MAAM,OAAO/0B,CAAC,CAAC,SAASs+G,GAAGt+G,EAAEzpB,GAAyC,OAAtCmgI,GAAE1mG,GAAGz5B,GAAGmgI,GAAE0H,GAAGp+G,GAAG02G,GAAEyH,GAAGD,IAAIl+G,EAAEzpB,EAAE4xE,UAAmB,KAAK,EAAE,KAAK,GAAG5xE,GAAGA,EAAEA,EAAE0uD,iBAAiB1uD,EAAEqoH,aAAaH,GAAG,KAAK,IAAI,MAAM,QAAkEloH,EAAEkoH,GAArCloH,GAAvBypB,EAAE,IAAIA,EAAEzpB,EAAEke,WAAWle,GAAMqoH,cAAc,KAAK5+F,EAAEA,EAAE32B,SAAkBotI,GAAE0H,IAAIzH,GAAEyH,GAAG5nI,EAAE,CAAC,SAASgoI,KAAK9H,GAAE0H,IAAI1H,GAAE2H,IAAI3H,GAAEzmG,GAAG,CAAC,SAASwuG,GAAGx+G,GAAGq+G,GAAGruG,GAAGvtB,SAAS,IAAIlM,EAAE8nI,GAAGF,GAAG17H,SAAa4X,EAAEokG,GAAGloH,EAAEypB,EAAEtgB,MAAMnJ,IAAI8jB,IAAIq8G,GAAE0H,GAAGp+G,GAAG02G,GAAEyH,GAAG9jH,GAAG,CAAC,SAASokH,GAAGz+G,GAAGo+G,GAAG37H,UAAUud,IAAIy2G,GAAE0H,IAAI1H,GAAE2H,IAAI,CAAC,IAAIM,GAAElI,GAAG,GAC9c,SAASmI,GAAG3+G,GAAG,IAAI,IAAIzpB,EAAEypB,EAAE,OAAOzpB,GAAG,CAAC,GAAG,KAAKA,EAAE6wB,IAAI,CAAC,IAAI/M,EAAE9jB,EAAEmuH,cAAc,GAAG,OAAOrqG,IAAmB,QAAfA,EAAEA,EAAEsqG,aAAqB,OAAOtqG,EAAEtrB,MAAM,OAAOsrB,EAAEtrB,MAAM,OAAOwH,CAAC,MAAM,GAAG,KAAKA,EAAE6wB,UAAK,IAAS7wB,EAAEqoI,cAAcC,aAAa,GAAG,IAAa,GAARtoI,EAAEiuH,OAAU,OAAOjuH,OAAO,GAAG,OAAOA,EAAE4M,MAAM,CAAC5M,EAAE4M,MAAMi3F,OAAO7jG,EAAEA,EAAEA,EAAE4M,MAAM,QAAQ,CAAC,GAAG5M,IAAIypB,EAAE,MAAM,KAAK,OAAOzpB,EAAEuuH,SAAS,CAAC,GAAG,OAAOvuH,EAAE6jG,QAAQ7jG,EAAE6jG,SAASp6E,EAAE,OAAO,KAAKzpB,EAAEA,EAAE6jG,MAAM,CAAC7jG,EAAEuuH,QAAQ1qB,OAAO7jG,EAAE6jG,OAAO7jG,EAAEA,EAAEuuH,OAAO,CAAC,OAAO,IAAI,CAAC,IAAIga,GAAG,KAAKC,GAAG,KAAKC,IAAG,EACpd,SAASC,GAAGj/G,EAAEzpB,GAAG,IAAI8jB,EAAE6kH,GAAG,EAAE,KAAK,KAAK,GAAG7kH,EAAEu+F,YAAY,UAAUv+F,EAAE3a,KAAK,UAAU2a,EAAE4oG,UAAU1sH,EAAE8jB,EAAE+/E,OAAOp6E,EAAE3F,EAAEmqG,MAAM,EAAE,OAAOxkG,EAAEu9G,YAAYv9G,EAAEu9G,WAAWC,WAAWnjH,EAAE2F,EAAEu9G,WAAWljH,GAAG2F,EAAEy9G,YAAYz9G,EAAEu9G,WAAWljH,CAAC,CAAC,SAAS8kH,GAAGn/G,EAAEzpB,GAAG,OAAOypB,EAAEoH,KAAK,KAAK,EAAE,IAAI/M,EAAE2F,EAAEtgB,KAAyE,OAAO,QAA3EnJ,EAAE,IAAIA,EAAE4xE,UAAU9tD,EAAEuC,gBAAgBrmB,EAAEk+D,SAAS73C,cAAc,KAAKrmB,KAAmBypB,EAAEijG,UAAU1sH,GAAE,GAAO,KAAK,EAAE,OAAoD,QAA7CA,EAAE,KAAKypB,EAAEo/G,cAAc,IAAI7oI,EAAE4xE,SAAS,KAAK5xE,KAAYypB,EAAEijG,UAAU1sH,GAAE,GAAwB,QAAQ,OAAM,EAAG,CAC1e,SAAS8oI,GAAGr/G,GAAG,GAAGg/G,GAAG,CAAC,IAAIzoI,EAAEwoI,GAAG,GAAGxoI,EAAE,CAAC,IAAI8jB,EAAE9jB,EAAE,IAAI4oI,GAAGn/G,EAAEzpB,GAAG,CAAqB,KAApBA,EAAEu/H,GAAGz7G,EAAEs4G,gBAAqBwM,GAAGn/G,EAAEzpB,GAAuC,OAAnCypB,EAAEwkG,OAAe,KAATxkG,EAAEwkG,MAAY,EAAEwa,IAAG,OAAGF,GAAG9+G,GAASi/G,GAAGH,GAAGzkH,EAAE,CAACykH,GAAG9+G,EAAE++G,GAAGjJ,GAAGv/H,EAAEgU,WAAW,MAAMyV,EAAEwkG,OAAe,KAATxkG,EAAEwkG,MAAY,EAAEwa,IAAG,EAAGF,GAAG9+G,CAAC,CAAC,CAAC,SAASs/G,GAAGt/G,GAAG,IAAIA,EAAEA,EAAEo6E,OAAO,OAAOp6E,GAAG,IAAIA,EAAEoH,KAAK,IAAIpH,EAAEoH,KAAK,KAAKpH,EAAEoH,KAAKpH,EAAEA,EAAEo6E,OAAO0kC,GAAG9+G,CAAC,CAC7S,SAASu/G,GAAGv/G,GAAG,GAAGA,IAAI8+G,GAAG,OAAM,EAAG,IAAIE,GAAG,OAAOM,GAAGt/G,GAAGg/G,IAAG,GAAG,EAAG,IAAIzoI,EAAEypB,EAAEtgB,KAAK,GAAG,IAAIsgB,EAAEoH,KAAK,SAAS7wB,GAAG,SAASA,IAAIm/H,GAAGn/H,EAAEypB,EAAE4+G,eAAe,IAAIroI,EAAEwoI,GAAGxoI,GAAG0oI,GAAGj/G,EAAEzpB,GAAGA,EAAEu/H,GAAGv/H,EAAEo8H,aAAmB,GAAN2M,GAAGt/G,GAAM,KAAKA,EAAEoH,IAAI,CAAgD,KAA7BpH,EAAE,QAApBA,EAAEA,EAAE0kG,eAAyB1kG,EAAE2kG,WAAW,MAAW,MAAM7tH,MAAMi+C,EAAE,MAAM/0B,EAAE,CAAiB,IAAhBA,EAAEA,EAAE2yG,YAAgBp8H,EAAE,EAAEypB,GAAG,CAAC,GAAG,IAAIA,EAAEmoD,SAAS,CAAC,IAAI9tD,EAAE2F,EAAEjxB,KAAK,GAAG,OAAOsrB,EAAE,CAAC,GAAG,IAAI9jB,EAAE,CAACwoI,GAAGjJ,GAAG91G,EAAE2yG,aAAa,MAAM3yG,CAAC,CAACzpB,GAAG,KAAK,MAAM8jB,GAAG,OAAOA,GAAG,OAAOA,GAAG9jB,GAAG,CAACypB,EAAEA,EAAE2yG,WAAW,CAACoM,GAAG,IAAI,CAAC,MAAMA,GAAGD,GAAGhJ,GAAG91G,EAAEijG,UAAU0P,aAAa,KAAK,OAAM,CAAE,CACxf,SAAS6M,KAAKT,GAAGD,GAAG,KAAKE,IAAG,CAAE,CAAC,IAAIS,GAAG,GAAG,SAASC,KAAK,IAAI,IAAI1/G,EAAE,EAAEA,EAAEy/G,GAAGnzI,OAAO0zB,IAAIy/G,GAAGz/G,GAAG2/G,8BAA8B,KAAKF,GAAGnzI,OAAO,CAAC,CAAC,IAAIszI,GAAGhlB,EAAGilB,uBAAuBC,GAAGllB,EAAG8e,wBAAwBqG,GAAG,EAAEn+G,GAAE,KAAKnR,GAAE,KAAKuvH,GAAE,KAAKC,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAK,MAAMrpI,MAAMi+C,EAAE,KAAM,CAAC,SAASqrF,GAAGpgH,EAAEzpB,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAI8jB,EAAE,EAAEA,EAAE9jB,EAAEjK,QAAQ+tB,EAAE2F,EAAE1zB,OAAO+tB,IAAI,IAAIi4G,GAAGtyG,EAAE3F,GAAG9jB,EAAE8jB,IAAI,OAAM,EAAG,OAAM,CAAE,CAChY,SAASgmH,GAAGrgH,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,GAAyH,GAAtHm7G,GAAGn7G,EAAEhD,GAAErrB,EAAEA,EAAEmuH,cAAc,KAAKnuH,EAAEukI,YAAY,KAAKvkI,EAAEgkI,MAAM,EAAEqF,GAAGn9H,QAAQ,OAAOud,GAAG,OAAOA,EAAE0kG,cAAc4b,GAAGC,GAAGvgH,EAAE3F,EAAEjG,EAAElC,GAAMguH,GAAG,CAACt7G,EAAE,EAAE,EAAE,CAAO,GAANs7G,IAAG,IAAQ,GAAGt7G,GAAG,MAAM9tB,MAAMi+C,EAAE,MAAMnwB,GAAG,EAAEo7G,GAAEvvH,GAAE,KAAKla,EAAEukI,YAAY,KAAK8E,GAAGn9H,QAAQ+9H,GAAGxgH,EAAE3F,EAAEjG,EAAElC,EAAE,OAAOguH,GAAG,CAA+D,GAA9DN,GAAGn9H,QAAQg+H,GAAGlqI,EAAE,OAAOka,IAAG,OAAOA,GAAEiH,KAAKqoH,GAAG,EAAEC,GAAEvvH,GAAEmR,GAAE,KAAKq+G,IAAG,EAAM1pI,EAAE,MAAMO,MAAMi+C,EAAE,MAAM,OAAO/0B,CAAC,CAAC,SAAS0gH,KAAK,IAAI1gH,EAAE,CAAC0kG,cAAc,KAAKqW,UAAU,KAAK4F,UAAU,KAAKrkI,MAAM,KAAKob,KAAK,MAA8C,OAAxC,OAAOsoH,GAAEp+G,GAAE8iG,cAAcsb,GAAEhgH,EAAEggH,GAAEA,GAAEtoH,KAAKsI,EAASggH,EAAC,CAChf,SAASY,KAAK,GAAG,OAAOnwH,GAAE,CAAC,IAAIuP,EAAE4B,GAAE2iG,UAAUvkG,EAAE,OAAOA,EAAEA,EAAE0kG,cAAc,IAAI,MAAM1kG,EAAEvP,GAAEiH,KAAK,IAAInhB,EAAE,OAAOypI,GAAEp+G,GAAE8iG,cAAcsb,GAAEtoH,KAAK,GAAG,OAAOnhB,EAAEypI,GAAEzpI,EAAEka,GAAEuP,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMlpB,MAAMi+C,EAAE,MAAU/0B,EAAE,CAAC0kG,eAAPj0G,GAAEuP,GAAqB0kG,cAAcqW,UAAUtqH,GAAEsqH,UAAU4F,UAAUlwH,GAAEkwH,UAAUrkI,MAAMmU,GAAEnU,MAAMob,KAAK,MAAM,OAAOsoH,GAAEp+G,GAAE8iG,cAAcsb,GAAEhgH,EAAEggH,GAAEA,GAAEtoH,KAAKsI,CAAC,CAAC,OAAOggH,EAAC,CAAC,SAASa,GAAG7gH,EAAEzpB,GAAG,MAAM,mBAAoBA,EAAEA,EAAEypB,GAAGzpB,CAAC,CACxY,SAASuqI,GAAG9gH,GAAG,IAAIzpB,EAAEqqI,KAAKvmH,EAAE9jB,EAAE+F,MAAM,GAAG,OAAO+d,EAAE,MAAMvjB,MAAMi+C,EAAE,MAAM16B,EAAE0mH,oBAAoB/gH,EAAE,IAAI5L,EAAE3D,GAAEyB,EAAEkC,EAAEusH,UAAU/7G,EAAEvK,EAAE/Z,QAAQ,GAAG,OAAOskB,EAAE,CAAC,GAAG,OAAO1S,EAAE,CAAC,IAAI3oB,EAAE2oB,EAAEwF,KAAKxF,EAAEwF,KAAKkN,EAAElN,KAAKkN,EAAElN,KAAKnuB,CAAC,CAAC6qB,EAAEusH,UAAUzuH,EAAE0S,EAAEvK,EAAE/Z,QAAQ,IAAI,CAAC,GAAG,OAAO4R,EAAE,CAACA,EAAEA,EAAEwF,KAAKtD,EAAEA,EAAE2mH,UAAU,IAAIhjH,EAAExuB,EAAEq7B,EAAE,KAAKjN,EAAEzF,EAAE,EAAE,CAAC,IAAIqG,EAAEZ,EAAE4jH,KAAK,IAAIwE,GAAGxnH,KAAKA,EAAE,OAAOR,IAAIA,EAAEA,EAAEL,KAAK,CAAC6jH,KAAK,EAAE/zF,OAAO7vB,EAAE6vB,OAAOw5F,aAAarpH,EAAEqpH,aAAaC,WAAWtpH,EAAEspH,WAAWvpH,KAAK,OAAOtD,EAAEuD,EAAEqpH,eAAehhH,EAAErI,EAAEspH,WAAWjhH,EAAE5L,EAAEuD,EAAE6vB,YAAY,CAAC,IAAIvwC,EAAE,CAACskI,KAAKhjH,EAAEivB,OAAO7vB,EAAE6vB,OAAOw5F,aAAarpH,EAAEqpH,aAC9fC,WAAWtpH,EAAEspH,WAAWvpH,KAAK,MAAM,OAAOK,GAAGxuB,EAAEwuB,EAAE9gB,EAAE2tB,EAAExQ,GAAG2D,EAAEA,EAAEL,KAAKzgB,EAAE2qB,GAAE24G,OAAOhiH,EAAEqjH,IAAIrjH,CAAC,CAACZ,EAAEA,EAAED,IAAI,OAAO,OAAOC,GAAGA,IAAIzF,GAAG,OAAO6F,EAAE6M,EAAExQ,EAAE2D,EAAEL,KAAKnuB,EAAE+oI,GAAGl+G,EAAE7d,EAAEmuH,iBAAiB8V,IAAG,GAAIjkI,EAAEmuH,cAActwG,EAAE7d,EAAEwkI,UAAUn2G,EAAEruB,EAAEoqI,UAAU5oH,EAAEsC,EAAE6mH,kBAAkB9sH,CAAC,CAAC,MAAM,CAAC7d,EAAEmuH,cAAcrqG,EAAE8mH,SAAS,CAC/Q,SAASC,GAAGphH,GAAG,IAAIzpB,EAAEqqI,KAAKvmH,EAAE9jB,EAAE+F,MAAM,GAAG,OAAO+d,EAAE,MAAMvjB,MAAMi+C,EAAE,MAAM16B,EAAE0mH,oBAAoB/gH,EAAE,IAAI5L,EAAEiG,EAAE8mH,SAASjvH,EAAEmI,EAAE/Z,QAAQskB,EAAEruB,EAAEmuH,cAAc,GAAG,OAAOxyG,EAAE,CAACmI,EAAE/Z,QAAQ,KAAK,IAAI/W,EAAE2oB,EAAEA,EAAEwF,KAAK,GAAGkN,EAAE5E,EAAE4E,EAAEr7B,EAAEi+C,QAAQj+C,EAAEA,EAAEmuB,WAAWnuB,IAAI2oB,GAAGogH,GAAG1tG,EAAEruB,EAAEmuH,iBAAiB8V,IAAG,GAAIjkI,EAAEmuH,cAAc9/F,EAAE,OAAOruB,EAAEoqI,YAAYpqI,EAAEwkI,UAAUn2G,GAAGvK,EAAE6mH,kBAAkBt8G,CAAC,CAAC,MAAM,CAACA,EAAExQ,EAAE,CACrV,SAASitH,GAAGrhH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE7d,EAAE+qI,YAAYltH,EAAEA,EAAE7d,EAAEgrI,SAAS,IAAIrvH,EAAE3b,EAAEopI,8BAAyI,GAAxG,OAAOztH,EAAE8N,EAAE9N,IAAIkC,GAAU4L,EAAEA,EAAEwhH,kBAAiBxhH,GAAG+/G,GAAG//G,KAAKA,KAAEzpB,EAAEopI,8BAA8BvrH,EAAEqrH,GAAGzzI,KAAKuK,KAAMypB,EAAE,OAAO3F,EAAE9jB,EAAEgrI,SAAoB,MAAX9B,GAAGzzI,KAAKuK,GAASO,MAAMi+C,EAAE,KAAM,CAC/P,SAAS0sF,GAAGzhH,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAEwvH,GAAE,GAAG,OAAOxvH,EAAE,MAAMpb,MAAMi+C,EAAE,MAAM,IAAInwB,EAAEruB,EAAE+qI,YAAY/3I,EAAEq7B,EAAEruB,EAAEgrI,SAASxpH,EAAE6nH,GAAGn9H,QAAQkV,EAAEI,EAAEvM,UAAS,WAAW,OAAO61H,GAAGnvH,EAAE3b,EAAE8jB,EAAE,IAAG9B,EAAEZ,EAAE,GAAG1gB,EAAE0gB,EAAE,GAAGA,EAAEqoH,GAAE,IAAIznD,EAAEv4D,EAAE0kG,cAAcznG,EAAEs7D,EAAE1jE,KAAK8mH,EAAE1+G,EAAE0kH,YAAY/9G,EAAE20D,EAAEhsF,OAAOgsF,EAAEA,EAAEqpD,UAAU,IAAIxpD,EAAEx2D,GACuO,OADrO5B,EAAE0kG,cAAc,CAAC7vG,KAAKoI,EAAE1wB,OAAOgK,EAAEqrI,UAAUxtH,GAAG2D,EAAE5pB,WAAU,WAAW8uB,EAAE0kH,YAAYtnH,EAAE4C,EAAE4kH,YAAYtpH,EAAE,IAAIyH,EAAE4E,EAAEruB,EAAEgrI,SAAS,IAAIjP,GAAG/oI,EAAEy2B,GAAG,CAACA,EAAE3F,EAAE9jB,EAAEgrI,SAASjP,GAAGr7H,EAAE+oB,KAAKzH,EAAEyH,GAAGA,EAAEq8G,GAAGjkD,GAAGlmE,EAAEsvH,kBAAkBxhH,EAAE9N,EAAEw2G,cAAc1oG,EAAE9N,EAAEsvH,iBAAiBtvH,EAAE62G,gBAAgB/oG,EAAE,IAAI,IAAI5L,EAC5flC,EAAE82G,cAAcjxG,EAAEiI,EAAE,EAAEjI,GAAG,CAAC,IAAIJ,EAAE,GAAGmxG,GAAG/wG,GAAGD,EAAE,GAAGH,EAAEvD,EAAEuD,IAAIqI,EAAEjI,IAAID,CAAC,CAAC,CAAC,GAAE,CAACuC,EAAE9jB,EAAE6d,IAAI2D,EAAE5pB,WAAU,WAAW,OAAOimB,EAAE7d,EAAEgrI,SAAQ,WAAW,IAAIvhH,EAAE/C,EAAE0kH,YAAYtnH,EAAE4C,EAAE4kH,YAAY,IAAIxnH,EAAE2F,EAAEzpB,EAAEgrI,UAAU,IAAIntH,EAAEioH,GAAGjkD,GAAGlmE,EAAEsvH,kBAAkBptH,EAAElC,EAAEw2G,YAAY,CAAC,MAAMvwC,GAAG99D,GAAE,WAAW,MAAM89D,CAAE,GAAE,CAAC,GAAE,GAAE,CAAC5hF,EAAE6d,IAAIk+G,GAAGqJ,EAAEthH,IAAIi4G,GAAG1uG,EAAErtB,IAAI+7H,GAAG/5C,EAAEnkE,MAAK4L,EAAE,CAAC1f,QAAQ,KAAK6gI,SAAS,KAAKJ,oBAAoBF,GAAGK,kBAAkBjqI,IAAKkqI,SAAS5oH,EAAEupH,GAAGhxI,KAAK,KAAK8wB,GAAE5B,GAAGrI,EAAErb,MAAM0jB,EAAErI,EAAEgpH,UAAU,KAAK1pI,EAAEoqI,GAAGnvH,EAAE3b,EAAE8jB,GAAG1C,EAAE+sG,cAAc/sG,EAAEojH,UAAU9jI,GAAUA,CAAC,CACve,SAAS8qI,GAAG/hH,EAAEzpB,EAAE8jB,GAAc,OAAOonH,GAAZb,KAAiB5gH,EAAEzpB,EAAE8jB,EAAE,CAAC,SAAS2nH,GAAGhiH,GAAG,IAAIzpB,EAAEmqI,KAAmL,MAA9K,mBAAoB1gH,IAAIA,EAAEA,KAAKzpB,EAAEmuH,cAAcnuH,EAAEwkI,UAAU/6G,EAAoFA,GAAlFA,EAAEzpB,EAAE+F,MAAM,CAACgE,QAAQ,KAAK6gI,SAAS,KAAKJ,oBAAoBF,GAAGK,kBAAkBlhH,IAAOmhH,SAASW,GAAGhxI,KAAK,KAAK8wB,GAAE5B,GAAS,CAACzpB,EAAEmuH,cAAc1kG,EAAE,CAClR,SAASiiH,GAAGjiH,EAAEzpB,EAAE8jB,EAAEjG,GAAkO,OAA/N4L,EAAE,CAACoH,IAAIpH,EAAEmE,OAAO5tB,EAAE2rI,QAAQ7nH,EAAE8nH,KAAK/tH,EAAEsD,KAAK,MAAsB,QAAhBnhB,EAAEqrB,GAAEk5G,cAAsBvkI,EAAE,CAACgnI,WAAW,MAAM37G,GAAEk5G,YAAYvkI,EAAEA,EAAEgnI,WAAWv9G,EAAEtI,KAAKsI,GAAmB,QAAf3F,EAAE9jB,EAAEgnI,YAAoBhnI,EAAEgnI,WAAWv9G,EAAEtI,KAAKsI,GAAG5L,EAAEiG,EAAE3C,KAAK2C,EAAE3C,KAAKsI,EAAEA,EAAEtI,KAAKtD,EAAE7d,EAAEgnI,WAAWv9G,GAAWA,CAAC,CAAC,SAASoiH,GAAGpiH,GAA4B,OAAdA,EAAE,CAACvd,QAAQud,GAAhB0gH,KAA4Bhc,cAAc1kG,CAAC,CAAC,SAASqiH,KAAK,OAAOzB,KAAKlc,aAAa,CAAC,SAAS4d,GAAGtiH,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAEwuH,KAAK9+G,GAAE4iG,OAAOxkG,EAAE9N,EAAEwyG,cAAcud,GAAG,EAAE1rI,EAAE8jB,OAAE,OAAO,IAASjG,EAAE,KAAKA,EAAE,CACnc,SAASmuH,GAAGviH,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAE0uH,KAAKxsH,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIwQ,OAAE,EAAO,GAAG,OAAOnU,GAAE,CAAC,IAAIlnB,EAAEknB,GAAEi0G,cAA0B,GAAZ9/F,EAAEr7B,EAAE24I,QAAW,OAAO9tH,GAAGgsH,GAAGhsH,EAAE7qB,EAAE44I,MAAmB,YAAZF,GAAG1rI,EAAE8jB,EAAEuK,EAAExQ,EAAU,CAACwN,GAAE4iG,OAAOxkG,EAAE9N,EAAEwyG,cAAcud,GAAG,EAAE1rI,EAAE8jB,EAAEuK,EAAExQ,EAAE,CAAC,SAASouH,GAAGxiH,EAAEzpB,GAAG,OAAO+rI,GAAG,IAAI,EAAEtiH,EAAEzpB,EAAE,CAAC,SAASksI,GAAGziH,EAAEzpB,GAAG,OAAOgsI,GAAG,IAAI,EAAEviH,EAAEzpB,EAAE,CAAC,SAASmsI,GAAG1iH,EAAEzpB,GAAG,OAAOgsI,GAAG,EAAE,EAAEviH,EAAEzpB,EAAE,CAAC,SAASosI,GAAG3iH,EAAEzpB,GAAG,MAAG,mBAAoBA,GAASypB,EAAEA,IAAIzpB,EAAEypB,GAAG,WAAWzpB,EAAE,KAAK,GAAK,MAAOA,GAAqBypB,EAAEA,IAAIzpB,EAAEkM,QAAQud,EAAE,WAAWzpB,EAAEkM,QAAQ,IAAI,QAA1E,CAA2E,CACnd,SAASmgI,GAAG5iH,EAAEzpB,EAAE8jB,GAA6C,OAA1CA,EAAE,MAAOA,EAAcA,EAAEpnB,OAAO,CAAC+sB,IAAI,KAAYuiH,GAAG,EAAE,EAAEI,GAAG7xI,KAAK,KAAKyF,EAAEypB,GAAG3F,EAAE,CAAC,SAASwoH,KAAK,CAAC,SAASC,GAAG9iH,EAAEzpB,GAAG,IAAI8jB,EAAEumH,KAAKrqI,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI6d,EAAEiG,EAAEqqG,cAAc,OAAG,OAAOtwG,GAAG,OAAO7d,GAAG6pI,GAAG7pI,EAAE6d,EAAE,IAAWA,EAAE,IAAGiG,EAAEqqG,cAAc,CAAC1kG,EAAEzpB,GAAUypB,EAAC,CAAC,SAAS+iH,GAAG/iH,EAAEzpB,GAAG,IAAI8jB,EAAEumH,KAAKrqI,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI6d,EAAEiG,EAAEqqG,cAAc,OAAG,OAAOtwG,GAAG,OAAO7d,GAAG6pI,GAAG7pI,EAAE6d,EAAE,IAAWA,EAAE,IAAG4L,EAAEA,IAAI3F,EAAEqqG,cAAc,CAAC1kG,EAAEzpB,GAAUypB,EAAC,CAC1Z,SAASgjH,GAAGhjH,EAAEzpB,GAAG,IAAI8jB,EAAE8+G,KAAKE,GAAG,GAAGh/G,EAAE,GAAGA,GAAE,WAAW2F,GAAE,EAAG,IAAGq5G,GAAG,GAAGh/G,EAAE,GAAGA,GAAE,WAAW,IAAIA,EAAEylH,GAAGnlF,WAAWmlF,GAAGnlF,WAAW,EAAE,IAAI36B,GAAE,GAAIzpB,GAAG,CAAC,QAAQupI,GAAGnlF,WAAWtgC,CAAC,CAAC,GAAE,CAChK,SAASynH,GAAG9hH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAEgoH,KAAKlqH,EAAEmqH,GAAGr8G,GAAG4E,EAAE,CAAC22G,KAAKrpH,EAAEs1B,OAAOntB,EAAE2mH,aAAa,KAAKC,WAAW,KAAKvpH,KAAK,MAAMnuB,EAAEgN,EAAE+J,QAA6E,GAArE,OAAO/W,EAAEq7B,EAAElN,KAAKkN,GAAGA,EAAElN,KAAKnuB,EAAEmuB,KAAKnuB,EAAEmuB,KAAKkN,GAAGruB,EAAE+J,QAAQskB,EAAEr7B,EAAEy2B,EAAEukG,UAAavkG,IAAI4B,IAAG,OAAOr4B,GAAGA,IAAIq4B,GAAEs+G,GAAGD,IAAG,MAAO,CAAC,GAAG,IAAIjgH,EAAEu6G,QAAQ,OAAOhxI,GAAG,IAAIA,EAAEgxI,QAAiC,QAAxBhxI,EAAEgN,EAAEwqI,qBAA8B,IAAI,IAAIhpH,EAAExhB,EAAE2qI,kBAAkBvpH,EAAEpuB,EAAEwuB,EAAEsC,GAAmC,GAAhCuK,EAAEo8G,aAAaz3I,EAAEq7B,EAAEq8G,WAAWtpH,EAAK26G,GAAG36G,EAAEI,GAAG,MAAM,CAAC,MAAMQ,GAAG,CAAU+jH,GAAGt8G,EAAE9N,EAAEkC,EAAE,CAAC,CACja,IAAIqsH,GAAG,CAACwC,YAAYxI,GAAG9nC,YAAYwtC,GAAGryI,WAAWqyI,GAAGhyI,UAAUgyI,GAAG9xI,oBAAoB8xI,GAAG+C,gBAAgB/C,GAAGjyI,QAAQiyI,GAAGgD,WAAWhD,GAAGj+H,OAAOi+H,GAAG30H,SAAS20H,GAAGiD,cAAcjD,GAAGkD,iBAAiBlD,GAAGmD,cAAcnD,GAAGoD,iBAAiBpD,GAAGqD,oBAAoBrD,GAAGsD,0BAAyB,GAAInD,GAAG,CAAC2C,YAAYxI,GAAG9nC,YAAY,SAAS3yE,EAAEzpB,GAA4C,OAAzCmqI,KAAKhc,cAAc,CAAC1kG,OAAE,IAASzpB,EAAE,KAAKA,GAAUypB,CAAC,EAAElyB,WAAW2sI,GAAGtsI,UAAUq0I,GAAGn0I,oBAAoB,SAAS2xB,EAAEzpB,EAAE8jB,GAA6C,OAA1CA,EAAE,MAAOA,EAAcA,EAAEpnB,OAAO,CAAC+sB,IAAI,KAAYsiH,GAAG,EAAE,EAAEK,GAAG7xI,KAAK,KACvfyF,EAAEypB,GAAG3F,EAAE,EAAE6oH,gBAAgB,SAASljH,EAAEzpB,GAAG,OAAO+rI,GAAG,EAAE,EAAEtiH,EAAEzpB,EAAE,EAAErI,QAAQ,SAAS8xB,EAAEzpB,GAAG,IAAI8jB,EAAEqmH,KAAqD,OAAhDnqI,OAAE,IAASA,EAAE,KAAKA,EAAEypB,EAAEA,IAAI3F,EAAEqqG,cAAc,CAAC1kG,EAAEzpB,GAAUypB,CAAC,EAAEmjH,WAAW,SAASnjH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAEssH,KAAuK,OAAlKnqI,OAAE,IAAS8jB,EAAEA,EAAE9jB,GAAGA,EAAE6d,EAAEswG,cAActwG,EAAE2mH,UAAUxkI,EAAmFypB,GAAjFA,EAAE5L,EAAE9X,MAAM,CAACgE,QAAQ,KAAK6gI,SAAS,KAAKJ,oBAAoB/gH,EAAEkhH,kBAAkB3qI,IAAO4qI,SAASW,GAAGhxI,KAAK,KAAK8wB,GAAE5B,GAAS,CAAC5L,EAAEswG,cAAc1kG,EAAE,EAAE9d,OAAOkgI,GAAG52H,SAASw2H,GAAGoB,cAAcP,GAAGQ,iBAAiB,SAASrjH,GAAG,IAAIzpB,EAAEyrI,GAAGhiH,GAAG3F,EAAE9jB,EAAE,GAAG6d,EAAE7d,EAAE,GAC5Z,OAD+ZisI,IAAG,WAAW,IAAIjsI,EAAEupI,GAAGnlF,WAC9emlF,GAAGnlF,WAAW,EAAE,IAAIvmC,EAAE4L,EAAE,CAAC,QAAQ8/G,GAAGnlF,WAAWpkD,CAAC,CAAC,GAAE,CAACypB,IAAW3F,CAAC,EAAEipH,cAAc,WAAW,IAAItjH,EAAEgiH,IAAG,GAAIzrI,EAAEypB,EAAE,GAA8B,OAANoiH,GAArBpiH,EAAEgjH,GAAGlyI,KAAK,KAAKkvB,EAAE,KAAgB,CAACA,EAAEzpB,EAAE,EAAEgtI,iBAAiB,SAASvjH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAEssH,KAAkF,OAA7EtsH,EAAEswG,cAAc,CAAC7vG,KAAK,CAAC8sH,YAAYprI,EAAEsrI,YAAY,MAAMt1I,OAAOyzB,EAAE4hH,UAAUvnH,GAAUonH,GAAGrtH,EAAE4L,EAAEzpB,EAAE8jB,EAAE,EAAEmpH,oBAAoB,WAAW,GAAGxE,GAAG,CAAC,IAAIh/G,GAAE,EAAGzpB,EAzDlD,SAAYypB,GAAG,MAAM,CAACs4D,SAASqjC,EAAGpnH,SAASyrB,EAAE/jB,QAAQ+jB,EAAE,CAyDH0jH,EAAG,WAAiD,MAAtC1jH,IAAIA,GAAE,EAAG3F,EAAE,MAAM47G,MAAM1hI,SAAS,MAAYuC,MAAMi+C,EAAE,KAAM,IAAG16B,EAAE2nH,GAAGzrI,GAAG,GAC1Z,OAD6Z,IAAY,EAAPqrB,GAAE+rB,QAAU/rB,GAAE4iG,OAAO,IAAIyd,GAAG,GAAE,WAAW5nH,EAAE,MAAM47G,MAAM1hI,SAAS,IAAI,QACpf,EAAO,OAAcgC,CAAC,CAAkC,OAANyrI,GAA3BzrI,EAAE,MAAM0/H,MAAM1hI,SAAS,KAAiBgC,CAAC,EAAEktI,0BAAyB,GAAIlD,GAAG,CAAC0C,YAAYxI,GAAG9nC,YAAYmwC,GAAGh1I,WAAW2sI,GAAGtsI,UAAUs0I,GAAGp0I,oBAAoBu0I,GAAGM,gBAAgBR,GAAGx0I,QAAQ60I,GAAGI,WAAWrC,GAAG5+H,OAAOmgI,GAAG72H,SAAS,WAAW,OAAOs1H,GAAGD,GAAG,EAAEuC,cAAcP,GAAGQ,iBAAiB,SAASrjH,GAAG,IAAIzpB,EAAEuqI,GAAGD,IAAIxmH,EAAE9jB,EAAE,GAAG6d,EAAE7d,EAAE,GAA6F,OAA1FksI,IAAG,WAAW,IAAIlsI,EAAEupI,GAAGnlF,WAAWmlF,GAAGnlF,WAAW,EAAE,IAAIvmC,EAAE4L,EAAE,CAAC,QAAQ8/G,GAAGnlF,WAAWpkD,CAAC,CAAC,GAAE,CAACypB,IAAW3F,CAAC,EAAEipH,cAAc,WAAW,IAAItjH,EAAE8gH,GAAGD,IAAI,GAAG,MAAM,CAACwB,KAAK5/H,QAC9eud,EAAE,EAAEujH,iBAAiBxB,GAAGyB,oBAAoB,WAAW,OAAO1C,GAAGD,IAAI,EAAE,EAAE4C,0BAAyB,GAAIjD,GAAG,CAACyC,YAAYxI,GAAG9nC,YAAYmwC,GAAGh1I,WAAW2sI,GAAGtsI,UAAUs0I,GAAGp0I,oBAAoBu0I,GAAGM,gBAAgBR,GAAGx0I,QAAQ60I,GAAGI,WAAW/B,GAAGl/H,OAAOmgI,GAAG72H,SAAS,WAAW,OAAO41H,GAAGP,GAAG,EAAEuC,cAAcP,GAAGQ,iBAAiB,SAASrjH,GAAG,IAAIzpB,EAAE6qI,GAAGP,IAAIxmH,EAAE9jB,EAAE,GAAG6d,EAAE7d,EAAE,GAA6F,OAA1FksI,IAAG,WAAW,IAAIlsI,EAAEupI,GAAGnlF,WAAWmlF,GAAGnlF,WAAW,EAAE,IAAIvmC,EAAE4L,EAAE,CAAC,QAAQ8/G,GAAGnlF,WAAWpkD,CAAC,CAAC,GAAE,CAACypB,IAAW3F,CAAC,EAAEipH,cAAc,WAAW,IAAItjH,EAAEohH,GAAGP,IAAI,GAAG,MAAM,CAACwB,KAAK5/H,QACrfud,EAAE,EAAEujH,iBAAiBxB,GAAGyB,oBAAoB,WAAW,OAAOpC,GAAGP,IAAI,EAAE,EAAE4C,0BAAyB,GAAIE,GAAG/oB,EAAGgpB,kBAAkBpJ,IAAG,EAAG,SAASqJ,GAAG7jH,EAAEzpB,EAAE8jB,EAAEjG,GAAG7d,EAAE4M,MAAM,OAAO6c,EAAEi+G,GAAG1nI,EAAE,KAAK8jB,EAAEjG,GAAG4pH,GAAGznI,EAAEypB,EAAE7c,MAAMkX,EAAEjG,EAAE,CAAC,SAAS0vH,GAAG9jH,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAGmI,EAAEA,EAAE1a,OAAO,IAAIilB,EAAEruB,EAAE3I,IAA8B,OAA1BysI,GAAG9jI,EAAE2b,GAAGkC,EAAEisH,GAAGrgH,EAAEzpB,EAAE8jB,EAAEjG,EAAEwQ,EAAE1S,GAAM,OAAO8N,GAAIw6G,IAA0EjkI,EAAEiuH,OAAO,EAAEqf,GAAG7jH,EAAEzpB,EAAE6d,EAAElC,GAAU3b,EAAE4M,QAAhG5M,EAAEukI,YAAY96G,EAAE86G,YAAYvkI,EAAEiuH,QAAQ,IAAIxkG,EAAEu6G,QAAQroH,EAAE6xH,GAAG/jH,EAAEzpB,EAAE2b,GAAwC,CAChZ,SAAS8xH,GAAGhkH,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,GAAG,GAAG,OAAO5E,EAAE,CAAC,IAAIz2B,EAAE8wB,EAAE3a,KAAK,MAAG,mBAAoBnW,GAAI06I,GAAG16I,SAAI,IAASA,EAAEmF,cAAc,OAAO2rB,EAAEuF,cAAS,IAASvF,EAAE3rB,eAAsDsxB,EAAE49G,GAAGvjH,EAAE3a,KAAK,KAAK0U,EAAE7d,EAAEA,EAAEo3C,KAAK/oB,IAAKh3B,IAAI2I,EAAE3I,IAAIoyB,EAAEo6E,OAAO7jG,EAASA,EAAE4M,MAAM6c,IAAvGzpB,EAAE6wB,IAAI,GAAG7wB,EAAEmJ,KAAKnW,EAAE26I,GAAGlkH,EAAEzpB,EAAEhN,EAAE6qB,EAAElC,EAAE0S,GAAyE,CAAW,OAAVr7B,EAAEy2B,EAAE7c,MAAS,IAAK+O,EAAE0S,KAAK1S,EAAE3oB,EAAEq1I,eAA0BvkH,EAAE,QAAdA,EAAEA,EAAEuF,SAAmBvF,EAAEm4G,IAAKtgH,EAAEkC,IAAI4L,EAAEpyB,MAAM2I,EAAE3I,KAAYm2I,GAAG/jH,EAAEzpB,EAAEquB,IAAGruB,EAAEiuH,OAAO,GAAExkG,EAAE09G,GAAGn0I,EAAE6qB,IAAKxmB,IAAI2I,EAAE3I,IAAIoyB,EAAEo6E,OAAO7jG,EAASA,EAAE4M,MAAM6c,EAAC,CACnb,SAASkkH,GAAGlkH,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,GAAG,GAAG,OAAO5E,GAAGwyG,GAAGxyG,EAAE4+G,cAAcxqH,IAAI4L,EAAEpyB,MAAM2I,EAAE3I,IAAI,IAAG4sI,IAAG,EAAG,IAAK51G,EAAE1S,GAAqC,OAAO3b,EAAEgkI,MAAMv6G,EAAEu6G,MAAMwJ,GAAG/jH,EAAEzpB,EAAEquB,GAAhE,IAAa,MAAR5E,EAAEwkG,SAAegW,IAAG,EAAyC,CAAC,OAAO2J,GAAGnkH,EAAEzpB,EAAE8jB,EAAEjG,EAAEwQ,EAAE,CACrL,SAASw/G,GAAGpkH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE7d,EAAE6oI,aAAaltH,EAAEkC,EAAE5lB,SAASo2B,EAAE,OAAO5E,EAAEA,EAAE0kG,cAAc,KAAK,GAAG,WAAWtwG,EAAEu5B,MAAM,kCAAkCv5B,EAAEu5B,KAAK,GAAG,IAAY,EAAPp3C,EAAEo3C,MAAQp3C,EAAEmuH,cAAc,CAAC2f,UAAU,GAAGC,GAAG/tI,EAAE8jB,OAAQ,IAAG,IAAO,WAAFA,GAA8E,OAAO2F,EAAE,OAAO4E,EAAEA,EAAEy/G,UAAUhqH,EAAEA,EAAE9jB,EAAEgkI,MAAMhkI,EAAE6jI,WAAW,WAAW7jI,EAAEmuH,cAAc,CAAC2f,UAAUrkH,GAAGskH,GAAG/tI,EAAEypB,GAAG,KAAxKzpB,EAAEmuH,cAAc,CAAC2f,UAAU,GAAGC,GAAG/tI,EAAE,OAAOquB,EAAEA,EAAEy/G,UAAUhqH,EAAoH,MAAM,OAAOuK,GAAGxQ,EAAEwQ,EAAEy/G,UAAUhqH,EAAE9jB,EAAEmuH,cAAc,MAAMtwG,EAAEiG,EAAEiqH,GAAG/tI,EAAE6d,GAAe,OAAZyvH,GAAG7jH,EAAEzpB,EAAE2b,EAAEmI,GAAU9jB,EAAE4M,KAAK,CAC/e,SAASohI,GAAGvkH,EAAEzpB,GAAG,IAAI8jB,EAAE9jB,EAAE3I,KAAO,OAAOoyB,GAAG,OAAO3F,GAAG,OAAO2F,GAAGA,EAAEpyB,MAAMysB,KAAE9jB,EAAEiuH,OAAO,IAAG,CAAC,SAAS2f,GAAGnkH,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,IAAI0S,EAAEqyG,GAAG58G,GAAGw8G,GAAGnmH,GAAEjO,QAA4C,OAApCmiB,EAAEkyG,GAAGvgI,EAAEquB,GAAGy1G,GAAG9jI,EAAE2b,GAAGmI,EAAEgmH,GAAGrgH,EAAEzpB,EAAE8jB,EAAEjG,EAAEwQ,EAAE1S,GAAM,OAAO8N,GAAIw6G,IAA0EjkI,EAAEiuH,OAAO,EAAEqf,GAAG7jH,EAAEzpB,EAAE8jB,EAAEnI,GAAU3b,EAAE4M,QAAhG5M,EAAEukI,YAAY96G,EAAE86G,YAAYvkI,EAAEiuH,QAAQ,IAAIxkG,EAAEu6G,QAAQroH,EAAE6xH,GAAG/jH,EAAEzpB,EAAE2b,GAAwC,CACtS,SAASsyH,GAAGxkH,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,GAAG+kH,GAAG58G,GAAG,CAAC,IAAIuK,GAAE,EAAGyyG,GAAG9gI,EAAE,MAAMquB,GAAE,EAAW,GAARy1G,GAAG9jI,EAAE2b,GAAM,OAAO3b,EAAE0sH,UAAU,OAAOjjG,IAAIA,EAAEukG,UAAU,KAAKhuH,EAAEguH,UAAU,KAAKhuH,EAAEiuH,OAAO,GAAGoY,GAAGrmI,EAAE8jB,EAAEjG,GAAG2oH,GAAGxmI,EAAE8jB,EAAEjG,EAAElC,GAAGkC,GAAE,OAAQ,GAAG,OAAO4L,EAAE,CAAC,IAAIz2B,EAAEgN,EAAE0sH,UAAUlrG,EAAExhB,EAAEqoI,cAAcr1I,EAAEyD,MAAM+qB,EAAE,IAAIJ,EAAEpuB,EAAEu8B,QAAQvN,EAAE8B,EAAEq8D,YAA0Cn+D,EAA9B,iBAAkBA,GAAG,OAAOA,EAAIkiH,GAAGliH,GAA2Bu+G,GAAGvgI,EAA1BgiB,EAAE0+G,GAAG58G,GAAGw8G,GAAGnmH,GAAEjO,SAAmB,IAAIxL,EAAEojB,EAAEy8D,yBAAyByB,EAAE,mBAAoBthF,GAAG,mBAAoB1N,EAAEyzI,wBAAwBzkD,GAAG,mBAAoBhvF,EAAEy5C,kCACpd,mBAAoBz5C,EAAEwkF,4BAA4Bh2D,IAAI3D,GAAGuD,IAAIY,IAAIukH,GAAGvmI,EAAEhN,EAAE6qB,EAAEmE,GAAGqiH,IAAG,EAAG,IAAI39G,EAAE1mB,EAAEmuH,cAAcn7H,EAAEu5C,MAAM7lB,EAAEy+G,GAAGnlI,EAAE6d,EAAE7qB,EAAE2oB,GAAGyF,EAAEphB,EAAEmuH,cAAc3sG,IAAI3D,GAAG6I,IAAItF,GAAGi/G,GAAEn0H,SAASm4H,IAAI,mBAAoB3jI,IAAI8kI,GAAGxlI,EAAE8jB,EAAEpjB,EAAEmd,GAAGuD,EAAEphB,EAAEmuH,gBAAgB3sG,EAAE6iH,IAAI6B,GAAGlmI,EAAE8jB,EAAEtC,EAAE3D,EAAE6I,EAAEtF,EAAEY,KAAKggE,GAAG,mBAAoBhvF,EAAEk9E,2BAA2B,mBAAoBl9E,EAAEukF,qBAAqB,mBAAoBvkF,EAAEukF,oBAAoBvkF,EAAEukF,qBAAqB,mBAAoBvkF,EAAEk9E,2BAA2Bl9E,EAAEk9E,6BAA6B,mBACzel9E,EAAEw8C,oBAAoBxvC,EAAEiuH,OAAO,KAAK,mBAAoBj7H,EAAEw8C,oBAAoBxvC,EAAEiuH,OAAO,GAAGjuH,EAAEqoI,cAAcxqH,EAAE7d,EAAEmuH,cAAc/sG,GAAGpuB,EAAEyD,MAAMonB,EAAE7qB,EAAEu5C,MAAMnrB,EAAEpuB,EAAEu8B,QAAQvN,EAAEnE,EAAE2D,IAAI,mBAAoBxuB,EAAEw8C,oBAAoBxvC,EAAEiuH,OAAO,GAAGpwG,GAAE,EAAG,KAAK,CAAC7qB,EAAEgN,EAAE0sH,UAAUmY,GAAGp7G,EAAEzpB,GAAGwhB,EAAExhB,EAAEqoI,cAAcrmH,EAAEhiB,EAAEmJ,OAAOnJ,EAAEqiH,YAAY7gG,EAAE4hH,GAAGpjI,EAAEmJ,KAAKqY,GAAGxuB,EAAEyD,MAAMurB,EAAEggE,EAAEhiF,EAAE6oI,aAAaniH,EAAE1zB,EAAEu8B,QAAsDnO,EAA9B,iBAAhBA,EAAE0C,EAAEq8D,cAAiC,OAAO/+D,EAAI8iH,GAAG9iH,GAA2Bm/G,GAAGvgI,EAA1BohB,EAAEs/G,GAAG58G,GAAGw8G,GAAGnmH,GAAEjO,SAAmB,IAAIk5H,EAAEthH,EAAEy8D,0BAA0B7/E,EAAE,mBAAoB0kI,GACnf,mBAAoBpyI,EAAEyzI,0BAA0B,mBAAoBzzI,EAAEy5C,kCAAkC,mBAAoBz5C,EAAEwkF,4BAA4Bh2D,IAAIwgE,GAAGt7D,IAAItF,IAAImlH,GAAGvmI,EAAEhN,EAAE6qB,EAAEuD,GAAGijH,IAAG,EAAG39G,EAAE1mB,EAAEmuH,cAAcn7H,EAAEu5C,MAAM7lB,EAAEy+G,GAAGnlI,EAAE6d,EAAE7qB,EAAE2oB,GAAG,IAAI0R,EAAErtB,EAAEmuH,cAAc3sG,IAAIwgE,GAAGt7D,IAAI2G,GAAGgzG,GAAEn0H,SAASm4H,IAAI,mBAAoBe,IAAII,GAAGxlI,EAAE8jB,EAAEshH,EAAEvnH,GAAGwP,EAAErtB,EAAEmuH,gBAAgBnsG,EAAEqiH,IAAI6B,GAAGlmI,EAAE8jB,EAAE9B,EAAEnE,EAAE6I,EAAE2G,EAAEjM,KAAK1gB,GAAG,mBAAoB1N,EAAEi6E,4BAA4B,mBAAoBj6E,EAAEskF,sBAAsB,mBAAoBtkF,EAAEskF,qBAAqBtkF,EAAEskF,oBAAoBz5D,EAC1gBwP,EAAEjM,GAAG,mBAAoBpuB,EAAEi6E,4BAA4Bj6E,EAAEi6E,2BAA2BpvD,EAAEwP,EAAEjM,IAAI,mBAAoBpuB,EAAEi/C,qBAAqBjyC,EAAEiuH,OAAO,GAAG,mBAAoBj7H,EAAEyzI,0BAA0BzmI,EAAEiuH,OAAO,OAAO,mBAAoBj7H,EAAEi/C,oBAAoBzwB,IAAIiI,EAAE4+G,eAAe3hH,IAAI+C,EAAE0kG,gBAAgBnuH,EAAEiuH,OAAO,GAAG,mBAAoBj7H,EAAEyzI,yBAAyBjlH,IAAIiI,EAAE4+G,eAAe3hH,IAAI+C,EAAE0kG,gBAAgBnuH,EAAEiuH,OAAO,KAAKjuH,EAAEqoI,cAAcxqH,EAAE7d,EAAEmuH,cAAc9gG,GAAGr6B,EAAEyD,MAAMonB,EAAE7qB,EAAEu5C,MAAMlf,EAAEr6B,EAAEu8B,QAAQnO,EAAEvD,EAAEmE,IAAI,mBAAoBhvB,EAAEi/C,oBAC7fzwB,IAAIiI,EAAE4+G,eAAe3hH,IAAI+C,EAAE0kG,gBAAgBnuH,EAAEiuH,OAAO,GAAG,mBAAoBj7H,EAAEyzI,yBAAyBjlH,IAAIiI,EAAE4+G,eAAe3hH,IAAI+C,EAAE0kG,gBAAgBnuH,EAAEiuH,OAAO,KAAKpwG,GAAE,EAAG,CAAC,OAAOqwH,GAAGzkH,EAAEzpB,EAAE8jB,EAAEjG,EAAEwQ,EAAE1S,EAAE,CAC3L,SAASuyH,GAAGzkH,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,GAAG2/G,GAAGvkH,EAAEzpB,GAAG,IAAIhN,EAAE,IAAa,GAARgN,EAAEiuH,OAAU,IAAIpwG,IAAI7qB,EAAE,OAAO2oB,GAAGqlH,GAAGhhI,EAAE8jB,GAAE,GAAI0pH,GAAG/jH,EAAEzpB,EAAEquB,GAAGxQ,EAAE7d,EAAE0sH,UAAU0gB,GAAGlhI,QAAQlM,EAAE,IAAIwhB,EAAExuB,GAAG,mBAAoB8wB,EAAEw8D,yBAAyB,KAAKziE,EAAEzU,SAAwI,OAA/HpJ,EAAEiuH,OAAO,EAAE,OAAOxkG,GAAGz2B,GAAGgN,EAAE4M,MAAM66H,GAAGznI,EAAEypB,EAAE7c,MAAM,KAAKyhB,GAAGruB,EAAE4M,MAAM66H,GAAGznI,EAAE,KAAKwhB,EAAE6M,IAAIi/G,GAAG7jH,EAAEzpB,EAAEwhB,EAAE6M,GAAGruB,EAAEmuH,cAActwG,EAAE0uB,MAAM5wB,GAAGqlH,GAAGhhI,EAAE8jB,GAAE,GAAW9jB,EAAE4M,KAAK,CAAC,SAASuhI,GAAG1kH,GAAG,IAAIzpB,EAAEypB,EAAEijG,UAAU1sH,EAAEouI,eAAexN,GAAGn3G,EAAEzpB,EAAEouI,eAAepuI,EAAEouI,iBAAiBpuI,EAAEuvB,SAASvvB,EAAEuvB,SAASqxG,GAAGn3G,EAAEzpB,EAAEuvB,SAAQ,GAAIw4G,GAAGt+G,EAAEzpB,EAAEowH,cAAc,CAC3e,IAS0Vie,GAAGC,GAAGC,GAAGC,GAT/VC,GAAG,CAACrgB,WAAW,KAAKsgB,UAAU,GAClC,SAASC,GAAGllH,EAAEzpB,EAAE8jB,GAAG,IAAsC9wB,EAAlC6qB,EAAE7d,EAAE6oI,aAAaltH,EAAEwsH,GAAEj8H,QAAQmiB,GAAE,EAA6M,OAAvMr7B,EAAE,IAAa,GAARgN,EAAEiuH,UAAaj7H,GAAE,OAAOy2B,GAAG,OAAOA,EAAE0kG,gBAAiB,IAAO,EAAFxyG,IAAM3oB,GAAGq7B,GAAE,EAAGruB,EAAEiuH,QAAQ,IAAI,OAAOxkG,GAAG,OAAOA,EAAE0kG,oBAAe,IAAStwG,EAAEtU,WAAU,IAAKsU,EAAE+wH,6BAA6BjzH,GAAG,GAAGwkH,GAAEgI,GAAI,EAAFxsH,GAAQ,OAAO8N,QAAG,IAAS5L,EAAEtU,UAAUu/H,GAAG9oI,GAAGypB,EAAE5L,EAAE5lB,SAAS0jB,EAAEkC,EAAEtU,SAAY8kB,GAAS5E,EAAEolH,GAAG7uI,EAAEypB,EAAE9N,EAAEmI,GAAG9jB,EAAE4M,MAAMuhH,cAAc,CAAC2f,UAAUhqH,GAAG9jB,EAAEmuH,cAAcsgB,GAAGhlH,GAAK,iBAAkB5L,EAAEixH,2BAAiCrlH,EAAEolH,GAAG7uI,EAAEypB,EAAE9N,EAAEmI,GAAG9jB,EAAE4M,MAAMuhH,cAAc,CAAC2f,UAAUhqH,GAC/f9jB,EAAEmuH,cAAcsgB,GAAGzuI,EAAEgkI,MAAM,SAASv6G,KAAE3F,EAAEirH,GAAG,CAAC33F,KAAK,UAAUn/C,SAASwxB,GAAGzpB,EAAEo3C,KAAKtzB,EAAE,OAAQ+/E,OAAO7jG,EAASA,EAAE4M,MAAMkX,KAAY2F,EAAE0kG,cAAkB9/F,GAASxQ,EAGzJ,SAAY4L,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,IAAI0S,EAAEruB,EAAEo3C,KAAKpkD,EAAEy2B,EAAE7c,MAAM6c,EAAEz2B,EAAEu7H,QAAQ,IAAI/sG,EAAE,CAAC41B,KAAK,SAASn/C,SAAS6rB,GAAoS,OAAjS,IAAO,EAAFuK,IAAMruB,EAAE4M,QAAQ5Z,IAAG8wB,EAAE9jB,EAAE4M,OAAQi3H,WAAW,EAAE//G,EAAE+kH,aAAarnH,EAAiB,QAAfxuB,EAAE8wB,EAAEkjH,aAAqBhnI,EAAEknI,YAAYpjH,EAAEojH,YAAYlnI,EAAEgnI,WAAWh0I,EAAEA,EAAEi0I,WAAW,MAAMjnI,EAAEknI,YAAYlnI,EAAEgnI,WAAW,MAAMljH,EAAEqjH,GAAGn0I,EAAEwuB,GAAG,OAAOiI,EAAE5L,EAAEspH,GAAG19G,EAAE5L,IAAIA,EAAE2pH,GAAG3pH,EAAEwQ,EAAE1S,EAAE,OAAQsyG,OAAO,EAAGpwG,EAAEgmF,OAAO7jG,EAAE8jB,EAAE+/E,OAAO7jG,EAAE8jB,EAAEyqG,QAAQ1wG,EAAE7d,EAAE4M,MAAMkX,EAASjG,CAAC,CAHzOmxH,CAAGvlH,EAAEzpB,EAAE6d,EAAE5lB,SAAS4lB,EAAEtU,SAASua,GAAGuK,EAAEruB,EAAE4M,MAAM+O,EAAE8N,EAAE7c,MAAMuhH,cAAc9/F,EAAE8/F,cAAc,OAAOxyG,EAAE,CAACmyH,UAAUhqH,GAAG,CAACgqH,UAAUnyH,EAAEmyH,UAAUhqH,GAAGuK,EAAEw1G,WAAWp6G,EAAEo6G,YAAY//G,EAAE9jB,EAAEmuH,cAAcsgB,GAAG5wH,IAAEiG,EAEhV,SAAY2F,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAE8N,EAAE7c,MAAiL,OAA3K6c,EAAE9N,EAAE4yG,QAAQzqG,EAAEqjH,GAAGxrH,EAAE,CAACy7B,KAAK,UAAUn/C,SAAS6rB,IAAI,IAAY,EAAP9jB,EAAEo3C,QAAUtzB,EAAEkgH,MAAMnmH,GAAGiG,EAAE+/E,OAAO7jG,EAAE8jB,EAAEyqG,QAAQ,KAAK,OAAO9kG,IAAIA,EAAEw9G,WAAW,KAAKx9G,EAAEwkG,MAAM,EAAEjuH,EAAEknI,YAAYlnI,EAAEgnI,WAAWv9G,GAAUzpB,EAAE4M,MAAMkX,CAAC,CAFoHmrH,CAAGxlH,EAAEzpB,EAAE6d,EAAE5lB,SAAS6rB,GAAG9jB,EAAEmuH,cAAc,KAAYrqG,GACnQ,CAAC,SAAS+qH,GAAGplH,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAE8N,EAAE2tB,KAAK/oB,EAAE5E,EAAE7c,MAAuK,OAAjK5M,EAAE,CAACo3C,KAAK,SAASn/C,SAAS+H,GAAG,IAAO,EAAF2b,IAAM,OAAO0S,GAAGA,EAAEw1G,WAAW,EAAEx1G,EAAEw6G,aAAa7oI,GAAGquB,EAAE0gH,GAAG/uI,EAAE2b,EAAE,EAAE,MAAMmI,EAAE0jH,GAAG1jH,EAAEnI,EAAEkC,EAAE,MAAMwQ,EAAEw1E,OAAOp6E,EAAE3F,EAAE+/E,OAAOp6E,EAAE4E,EAAEkgG,QAAQzqG,EAAE2F,EAAE7c,MAAMyhB,EAASvK,CAAC,CAE+C,SAASorH,GAAGzlH,EAAEzpB,GAAGypB,EAAEu6G,OAAOhkI,EAAE,IAAI8jB,EAAE2F,EAAEukG,UAAU,OAAOlqG,IAAIA,EAAEkgH,OAAOhkI,GAAG4jI,GAAGn6G,EAAEo6E,OAAO7jG,EAAE,CACxd,SAASmvI,GAAG1lH,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,GAAG,IAAIr7B,EAAEy2B,EAAE0kG,cAAc,OAAOn7H,EAAEy2B,EAAE0kG,cAAc,CAACihB,YAAYpvI,EAAE89F,UAAU,KAAKuxC,mBAAmB,EAAEr9D,KAAKn0D,EAAE+B,KAAKkE,EAAEwrH,SAAS3zH,EAAEqrH,WAAW34G,IAAIr7B,EAAEo8I,YAAYpvI,EAAEhN,EAAE8qG,UAAU,KAAK9qG,EAAEq8I,mBAAmB,EAAEr8I,EAAEg/E,KAAKn0D,EAAE7qB,EAAE4sB,KAAKkE,EAAE9wB,EAAEs8I,SAAS3zH,EAAE3oB,EAAEg0I,WAAW34G,EAAE,CACzQ,SAASkhH,GAAG9lH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE7d,EAAE6oI,aAAaltH,EAAEkC,EAAEyqH,YAAYj6G,EAAExQ,EAAE+B,KAAsC,GAAjC0tH,GAAG7jH,EAAEzpB,EAAE6d,EAAE5lB,SAAS6rB,GAAkB,IAAO,GAAtBjG,EAAEsqH,GAAEj8H,UAAqB2R,EAAI,EAAFA,EAAI,EAAE7d,EAAEiuH,OAAO,OAAO,CAAC,GAAG,OAAOxkG,GAAG,IAAa,GAARA,EAAEwkG,OAAUxkG,EAAE,IAAIA,EAAEzpB,EAAE4M,MAAM,OAAO6c,GAAG,CAAC,GAAG,KAAKA,EAAEoH,IAAI,OAAOpH,EAAE0kG,eAAe+gB,GAAGzlH,EAAE3F,QAAQ,GAAG,KAAK2F,EAAEoH,IAAIq+G,GAAGzlH,EAAE3F,QAAQ,GAAG,OAAO2F,EAAE7c,MAAM,CAAC6c,EAAE7c,MAAMi3F,OAAOp6E,EAAEA,EAAEA,EAAE7c,MAAM,QAAQ,CAAC,GAAG6c,IAAIzpB,EAAE,MAAMypB,EAAE,KAAK,OAAOA,EAAE8kG,SAAS,CAAC,GAAG,OAAO9kG,EAAEo6E,QAAQp6E,EAAEo6E,SAAS7jG,EAAE,MAAMypB,EAAEA,EAAEA,EAAEo6E,MAAM,CAACp6E,EAAE8kG,QAAQ1qB,OAAOp6E,EAAEo6E,OAAOp6E,EAAEA,EAAE8kG,OAAO,CAAC1wG,GAAG,CAAC,CAAQ,GAAPsiH,GAAEgI,GAAEtqH,GAAM,IAAY,EAAP7d,EAAEo3C,MAAQp3C,EAAEmuH,cACze,UAAU,OAAOxyG,GAAG,IAAK,WAAqB,IAAVmI,EAAE9jB,EAAE4M,MAAU+O,EAAE,KAAK,OAAOmI,GAAiB,QAAd2F,EAAE3F,EAAEkqG,YAAoB,OAAOoa,GAAG3+G,KAAK9N,EAAEmI,GAAGA,EAAEA,EAAEyqG,QAAY,QAAJzqG,EAAEnI,IAAYA,EAAE3b,EAAE4M,MAAM5M,EAAE4M,MAAM,OAAO+O,EAAEmI,EAAEyqG,QAAQzqG,EAAEyqG,QAAQ,MAAM4gB,GAAGnvI,GAAE,EAAG2b,EAAEmI,EAAEuK,EAAEruB,EAAEgnI,YAAY,MAAM,IAAK,YAA6B,IAAjBljH,EAAE,KAAKnI,EAAE3b,EAAE4M,MAAU5M,EAAE4M,MAAM,KAAK,OAAO+O,GAAG,CAAe,GAAG,QAAjB8N,EAAE9N,EAAEqyG,YAAuB,OAAOoa,GAAG3+G,GAAG,CAACzpB,EAAE4M,MAAM+O,EAAE,KAAK,CAAC8N,EAAE9N,EAAE4yG,QAAQ5yG,EAAE4yG,QAAQzqG,EAAEA,EAAEnI,EAAEA,EAAE8N,CAAC,CAAC0lH,GAAGnvI,GAAE,EAAG8jB,EAAE,KAAKuK,EAAEruB,EAAEgnI,YAAY,MAAM,IAAK,WAAWmI,GAAGnvI,GAAE,EAAG,KAAK,UAAK,EAAOA,EAAEgnI,YAAY,MAAM,QAAQhnI,EAAEmuH,cAAc,KAAK,OAAOnuH,EAAE4M,KAAK,CACpgB,SAAS4gI,GAAG/jH,EAAEzpB,EAAE8jB,GAAyD,GAAtD,OAAO2F,IAAIzpB,EAAElF,aAAa2uB,EAAE3uB,cAAcuqI,IAAIrlI,EAAEgkI,MAAS,IAAKlgH,EAAE9jB,EAAE6jI,YAAY,CAAC,GAAG,OAAOp6G,GAAGzpB,EAAE4M,QAAQ6c,EAAE7c,MAAM,MAAMrM,MAAMi+C,EAAE,MAAM,GAAG,OAAOx+C,EAAE4M,MAAM,CAA4C,IAAjCkX,EAAEqjH,GAAZ19G,EAAEzpB,EAAE4M,MAAa6c,EAAEo/G,cAAc7oI,EAAE4M,MAAMkX,EAAMA,EAAE+/E,OAAO7jG,EAAE,OAAOypB,EAAE8kG,SAAS9kG,EAAEA,EAAE8kG,SAAQzqG,EAAEA,EAAEyqG,QAAQ4Y,GAAG19G,EAAEA,EAAEo/G,eAAgBhlC,OAAO7jG,EAAE8jB,EAAEyqG,QAAQ,IAAI,CAAC,OAAOvuH,EAAE4M,KAAK,CAAC,OAAO,IAAI,CAKhQ,SAAS4iI,GAAG/lH,EAAEzpB,GAAG,IAAIyoI,GAAG,OAAOh/G,EAAE6lH,UAAU,IAAK,SAAStvI,EAAEypB,EAAE7J,KAAK,IAAI,IAAIkE,EAAE,KAAK,OAAO9jB,GAAG,OAAOA,EAAEguH,YAAYlqG,EAAE9jB,GAAGA,EAAEA,EAAEuuH,QAAQ,OAAOzqG,EAAE2F,EAAE7J,KAAK,KAAKkE,EAAEyqG,QAAQ,KAAK,MAAM,IAAK,YAAYzqG,EAAE2F,EAAE7J,KAAK,IAAI,IAAI/B,EAAE,KAAK,OAAOiG,GAAG,OAAOA,EAAEkqG,YAAYnwG,EAAEiG,GAAGA,EAAEA,EAAEyqG,QAAQ,OAAO1wG,EAAE7d,GAAG,OAAOypB,EAAE7J,KAAK6J,EAAE7J,KAAK,KAAK6J,EAAE7J,KAAK2uG,QAAQ,KAAK1wG,EAAE0wG,QAAQ,KAAK,CACla,SAASkhB,GAAGhmH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE7d,EAAE6oI,aAAa,OAAO7oI,EAAE6wB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,KAAK,KAAK,EAQyC,KAAK,GAAG,OAAO6vG,GAAG1gI,EAAEmJ,OAAOw3H,KAAK,KAR1C,KAAK,EAAsL,OAApLqH,KAAK9H,GAAEG,IAAGH,GAAE/lH,IAAGgvH,MAAKtrH,EAAE7d,EAAE0sH,WAAY0hB,iBAAiBvwH,EAAE0R,QAAQ1R,EAAEuwH,eAAevwH,EAAEuwH,eAAe,MAAS,OAAO3kH,GAAG,OAAOA,EAAE7c,QAAMo8H,GAAGhpI,GAAGA,EAAEiuH,OAAO,EAAEpwG,EAAEsyG,UAAUnwH,EAAEiuH,OAAO,MAAKqgB,GAAGtuI,GAAU,KAAK,KAAK,EAAEkoI,GAAGloI,GAAG,IAAI2b,EAAEmsH,GAAGruG,GAAGvtB,SAAkB,GAAT4X,EAAE9jB,EAAEmJ,KAAQ,OAAOsgB,GAAG,MAAMzpB,EAAE0sH,UAAU6hB,GAAG9kH,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG8N,EAAEpyB,MAAM2I,EAAE3I,MAAM2I,EAAEiuH,OAAO,SAAS,CAAC,IAAIpwG,EAAE,CAAC,GAAG,OAC7f7d,EAAE0sH,UAAU,MAAMnsH,MAAMi+C,EAAE,MAAM,OAAO,IAAI,CAAkB,GAAjB/0B,EAAEq+G,GAAGF,GAAG17H,SAAY88H,GAAGhpI,GAAG,CAAC6d,EAAE7d,EAAE0sH,UAAU5oG,EAAE9jB,EAAEmJ,KAAK,IAAIklB,EAAEruB,EAAEqoI,cAA8B,OAAhBxqH,EAAE+hH,IAAI5/H,EAAE6d,EAAEgiH,IAAIxxG,EAASvK,GAAG,IAAK,SAASg6G,GAAE,SAASjgH,GAAGigH,GAAE,QAAQjgH,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQigH,GAAE,OAAOjgH,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAI4L,EAAE,EAAEA,EAAEi0G,GAAG3nI,OAAO0zB,IAAIq0G,GAAEJ,GAAGj0G,GAAG5L,GAAG,MAAM,IAAK,SAASigH,GAAE,QAAQjgH,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOigH,GAAE,QAAQjgH,GAAGigH,GAAE,OAAOjgH,GAAG,MAAM,IAAK,UAAUigH,GAAE,SAASjgH,GAAG,MAAM,IAAK,QAAQqpG,GAAGrpG,EAAEwQ,GAAGyvG,GAAE,UAAUjgH,GAAG,MAAM,IAAK,SAASA,EAAEmpG,cAC5f,CAAC0oB,cAAcrhH,EAAEziB,UAAUkyH,GAAE,UAAUjgH,GAAG,MAAM,IAAK,WAAW8pG,GAAG9pG,EAAEwQ,GAAGyvG,GAAE,UAAUjgH,GAAkB,IAAI,IAAI7qB,KAAvBi5H,GAAGnoG,EAAEuK,GAAG5E,EAAE,KAAkB4E,EAAEA,EAAE/5B,eAAetB,KAAK2oB,EAAE0S,EAAEr7B,GAAG,aAAaA,EAAE,iBAAkB2oB,EAAEkC,EAAEw2D,cAAc14D,IAAI8N,EAAE,CAAC,WAAW9N,IAAI,iBAAkBA,GAAGkC,EAAEw2D,cAAc,GAAG14D,IAAI8N,EAAE,CAAC,WAAW,GAAG9N,IAAImnG,EAAGxuH,eAAetB,IAAI,MAAM2oB,GAAG,aAAa3oB,GAAG8qI,GAAE,SAASjgH,IAAI,OAAOiG,GAAG,IAAK,QAAQ0iG,EAAG3oG,GAAG7iB,GAAG6iB,EAAEwQ,GAAE,GAAI,MAAM,IAAK,WAAWm4F,EAAG3oG,GAAGgqG,GAAGhqG,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,mBAAoBwQ,EAAEigB,UAAUzwB,EAAE8xH,QACtf5Q,IAAIlhH,EAAE4L,EAAEzpB,EAAEukI,YAAY1mH,EAAE,OAAOA,IAAI7d,EAAEiuH,OAAO,EAAE,KAAK,CAAiZ,OAAhZj7H,EAAE,IAAI2oB,EAAEi2D,SAASj2D,EAAEA,EAAEk/D,cAAcpxD,IAAIq+F,GAAGC,OAAOt+F,EAAEw+F,GAAGnkG,IAAI2F,IAAIq+F,GAAGC,KAAK,WAAWjkG,IAAG2F,EAAEz2B,EAAE+E,cAAc,QAAS0mE,UAAU,qBAAuBh1C,EAAEA,EAAEsiC,YAAYtiC,EAAEzV,aAAa,iBAAkB6J,EAAE8kF,GAAGl5E,EAAEz2B,EAAE+E,cAAc+rB,EAAE,CAAC6+E,GAAG9kF,EAAE8kF,MAAMl5E,EAAEz2B,EAAE+E,cAAc+rB,GAAG,WAAWA,IAAI9wB,EAAEy2B,EAAE5L,EAAEjS,SAAS5Y,EAAE4Y,UAAS,EAAGiS,EAAE7M,OAAOhe,EAAEge,KAAK6M,EAAE7M,QAAQyY,EAAEz2B,EAAE48I,gBAAgBnmH,EAAE3F,GAAG2F,EAAEm2G,IAAI5/H,EAAEypB,EAAEo2G,IAAIhiH,EAAEwwH,GAAG5kH,EAAEzpB,GAAE,GAAG,GAAIA,EAAE0sH,UAAUjjG,EAAEz2B,EAAEk5H,GAAGpoG,EAAEjG,GAAUiG,GAAG,IAAK,SAASg6G,GAAE,SAASr0G,GAAGq0G,GAAE,QAAQr0G,GACpf9N,EAAEkC,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQigH,GAAE,OAAOr0G,GAAG9N,EAAEkC,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIlC,EAAE,EAAEA,EAAE+hH,GAAG3nI,OAAO4lB,IAAImiH,GAAEJ,GAAG/hH,GAAG8N,GAAG9N,EAAEkC,EAAE,MAAM,IAAK,SAASigH,GAAE,QAAQr0G,GAAG9N,EAAEkC,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOigH,GAAE,QAAQr0G,GAAGq0G,GAAE,OAAOr0G,GAAG9N,EAAEkC,EAAE,MAAM,IAAK,UAAUigH,GAAE,SAASr0G,GAAG9N,EAAEkC,EAAE,MAAM,IAAK,QAAQqpG,GAAGz9F,EAAE5L,GAAGlC,EAAEorG,EAAGt9F,EAAE5L,GAAGigH,GAAE,UAAUr0G,GAAG,MAAM,IAAK,SAAS9N,EAAE4rG,GAAG99F,EAAE5L,GAAG,MAAM,IAAK,SAAS4L,EAAEu9F,cAAc,CAAC0oB,cAAc7xH,EAAEjS,UAAU+P,EAAEoH,EAAE,CAAC,EAAElF,EAAE,CAACxnB,WAAM,IAASynI,GAAE,UAAUr0G,GAAG,MAAM,IAAK,WAAWk+F,GAAGl+F,EAAE5L,GAAGlC,EACpf8rG,GAAGh+F,EAAE5L,GAAGigH,GAAE,UAAUr0G,GAAG,MAAM,QAAQ9N,EAAEkC,EAAEouG,GAAGnoG,EAAEnI,GAAG,IAAI6F,EAAE7F,EAAE,IAAI0S,KAAK7M,EAAE,GAAGA,EAAEltB,eAAe+5B,GAAG,CAAC,IAAIjN,EAAEI,EAAE6M,GAAG,UAAUA,EAAE7F,GAAGiB,EAAErI,GAAG,4BAA4BiN,EAAuB,OAApBjN,EAAEA,EAAEA,EAAEg+G,YAAO,IAAgBhX,GAAG3+F,EAAErI,GAAI,aAAaiN,EAAE,iBAAkBjN,GAAG,aAAa0C,GAAG,KAAK1C,IAAIonG,GAAG/+F,EAAErI,GAAG,iBAAkBA,GAAGonG,GAAG/+F,EAAE,GAAGrI,GAAG,mCAAmCiN,GAAG,6BAA6BA,GAAG,cAAcA,IAAIy0F,EAAGxuH,eAAe+5B,GAAG,MAAMjN,GAAG,aAAaiN,GAAGyvG,GAAE,SAASr0G,GAAG,MAAMrI,GAAG2iG,EAAGt6F,EAAE4E,EAAEjN,EAAEpuB,GAAG,CAAC,OAAO8wB,GAAG,IAAK,QAAQ0iG,EAAG/8F,GAAGzuB,GAAGyuB,EAAE5L,GAAE,GACnf,MAAM,IAAK,WAAW2oG,EAAG/8F,GAAGo+F,GAAGp+F,GAAG,MAAM,IAAK,SAAS,MAAM5L,EAAExnB,OAAOozB,EAAEw4B,aAAa,QAAQ,GAAGqkE,EAAGzoG,EAAExnB,QAAQ,MAAM,IAAK,SAASozB,EAAE7d,WAAWiS,EAAEjS,SAAmB,OAAVyiB,EAAExQ,EAAExnB,OAAc6xB,GAAGuB,IAAI5L,EAAEjS,SAASyiB,GAAE,GAAI,MAAMxQ,EAAE9F,cAAcmQ,GAAGuB,IAAI5L,EAAEjS,SAASiS,EAAE9F,cAAa,GAAI,MAAM,QAAQ,mBAAoB4D,EAAE2yB,UAAU7kB,EAAEkmH,QAAQ5Q,IAAIG,GAAGp7G,EAAEjG,KAAK7d,EAAEiuH,OAAO,EAAE,CAAC,OAAOjuH,EAAE3I,MAAM2I,EAAEiuH,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,GAAGxkG,GAAG,MAAMzpB,EAAE0sH,UAAU8hB,GAAG/kH,EAAEzpB,EAAEypB,EAAE4+G,cAAcxqH,OAAO,CAAC,GAAG,iBAAkBA,GAAG,OAAO7d,EAAE0sH,UAAU,MAAMnsH,MAAMi+C,EAAE,MAC/e16B,EAAEgkH,GAAGruG,GAAGvtB,SAAS47H,GAAGF,GAAG17H,SAAS88H,GAAGhpI,IAAI6d,EAAE7d,EAAE0sH,UAAU5oG,EAAE9jB,EAAEqoI,cAAcxqH,EAAE+hH,IAAI5/H,EAAE6d,EAAE6qG,YAAY5kG,IAAI9jB,EAAEiuH,OAAO,MAAKpwG,GAAG,IAAIiG,EAAE8tD,SAAS9tD,EAAEA,EAAE+2D,eAAe1C,eAAet6D,IAAK+hH,IAAI5/H,EAAEA,EAAE0sH,UAAU7uG,EAAE,CAAC,OAAO,KAAK,KAAK,GAA0B,OAAvBqiH,GAAEiI,IAAGtqH,EAAE7d,EAAEmuH,cAAiB,IAAa,GAARnuH,EAAEiuH,QAAiBjuH,EAAEgkI,MAAMlgH,EAAE9jB,IAAE6d,EAAE,OAAOA,EAAEiG,GAAE,EAAG,OAAO2F,OAAE,IAASzpB,EAAEqoI,cAAc9+H,UAAUy/H,GAAGhpI,GAAG8jB,EAAE,OAAO2F,EAAE0kG,cAAiBtwG,IAAIiG,GAAG,IAAY,EAAP9jB,EAAEo3C,QAAW,OAAO3tB,IAAG,IAAKzpB,EAAEqoI,cAAcuG,4BAA4B,IAAe,EAAVzG,GAAEj8H,SAAW,IAAI2jI,KAAIA,GAAE,IAAW,IAAIA,IAAG,IAAIA,KAAEA,GACrf,GAAE,OAAO1E,IAAG,IAAQ,UAAH9F,KAAe,IAAQ,UAAHyK,KAAeC,GAAG5E,GAAE6E,OAAMnyH,GAAGiG,KAAE9jB,EAAEiuH,OAAO,GAAS,MAAK,KAAK,EAAE,OAAO+Z,KAAKsG,GAAGtuI,GAAG,OAAOypB,GAAGy0G,GAAGl+H,EAAE0sH,UAAU0D,eAAe,KAAK,KAAK,GAAG,OAAOsT,GAAG1jI,GAAG,KAA0C,KAAK,GAA0B,GAAvBkgI,GAAEiI,IAAwB,QAArBtqH,EAAE7d,EAAEmuH,eAA0B,OAAO,KAAsC,GAAjC9/F,EAAE,IAAa,GAARruB,EAAEiuH,OAA2B,QAAjBj7H,EAAE6qB,EAAEigF,WAAsB,GAAGzvE,EAAEmhH,GAAG3xH,GAAE,OAAQ,CAAC,GAAG,IAAIgyH,IAAG,OAAOpmH,GAAG,IAAa,GAARA,EAAEwkG,OAAU,IAAIxkG,EAAEzpB,EAAE4M,MAAM,OAAO6c,GAAG,CAAS,GAAG,QAAXz2B,EAAEo1I,GAAG3+G,IAAe,CACjW,IADkWzpB,EAAEiuH,OAAO,GAAGuhB,GAAG3xH,GAAE,GAAoB,QAAhBwQ,EAAEr7B,EAAEuxI,eAAuBvkI,EAAEukI,YAAYl2G,EAAEruB,EAAEiuH,OAAO,GACnf,OAAOpwG,EAAEmpH,aAAahnI,EAAEknI,YAAY,MAAMlnI,EAAEgnI,WAAWnpH,EAAEmpH,WAAWnpH,EAAEiG,EAAMA,EAAE9jB,EAAE4M,MAAM,OAAOkX,GAAO2F,EAAE5L,GAANwQ,EAAEvK,GAAQmqG,OAAO,EAAE5/F,EAAE44G,WAAW,KAAK54G,EAAE64G,YAAY,KAAK74G,EAAE24G,WAAW,KAAmB,QAAdh0I,EAAEq7B,EAAE2/F,YAAoB3/F,EAAEw1G,WAAW,EAAEx1G,EAAE21G,MAAMv6G,EAAE4E,EAAEzhB,MAAM,KAAKyhB,EAAEg6G,cAAc,KAAKh6G,EAAE8/F,cAAc,KAAK9/F,EAAEk2G,YAAY,KAAKl2G,EAAEvzB,aAAa,KAAKuzB,EAAEq+F,UAAU,OAAOr+F,EAAEw1G,WAAW7wI,EAAE6wI,WAAWx1G,EAAE21G,MAAMhxI,EAAEgxI,MAAM31G,EAAEzhB,MAAM5Z,EAAE4Z,MAAMyhB,EAAEg6G,cAAcr1I,EAAEq1I,cAAch6G,EAAE8/F,cAAcn7H,EAAEm7H,cAAc9/F,EAAEk2G,YAAYvxI,EAAEuxI,YAAYl2G,EAAEllB,KAAKnW,EAAEmW,KAAKsgB,EAAEz2B,EAAE8H,aACpfuzB,EAAEvzB,aAAa,OAAO2uB,EAAE,KAAK,CAACu6G,MAAMv6G,EAAEu6G,MAAMD,aAAat6G,EAAEs6G,eAAejgH,EAAEA,EAAEyqG,QAA2B,OAAnB4R,GAAEgI,GAAY,EAAVA,GAAEj8H,QAAU,GAAUlM,EAAE4M,KAAK,CAAC6c,EAAEA,EAAE8kG,OAAO,CAAC,OAAO1wG,EAAE+B,MAAMo/D,KAAIixD,KAAKjwI,EAAEiuH,OAAO,GAAG5/F,GAAE,EAAGmhH,GAAG3xH,GAAE,GAAI7d,EAAEgkI,MAAM,SAAS,KAAK,CAAC,IAAI31G,EAAE,GAAW,QAAR5E,EAAE2+G,GAAGp1I,KAAa,GAAGgN,EAAEiuH,OAAO,GAAG5/F,GAAE,EAAmB,QAAhBvK,EAAE2F,EAAE86G,eAAuBvkI,EAAEukI,YAAYzgH,EAAE9jB,EAAEiuH,OAAO,GAAGuhB,GAAG3xH,GAAE,GAAI,OAAOA,EAAE+B,MAAM,WAAW/B,EAAEyxH,WAAWt8I,EAAEg7H,YAAYya,GAAG,OAAmC,QAA5BzoI,EAAEA,EAAEgnI,WAAWnpH,EAAEmpH,cAAsBhnI,EAAEinI,WAAW,MAAM,UAAU,EAAEjoD,KAAInhE,EAAEwxH,mBAAmBY,IAAI,aAAansH,IAAI9jB,EAAEiuH,OACjf,GAAG5/F,GAAE,EAAGmhH,GAAG3xH,GAAE,GAAI7d,EAAEgkI,MAAM,UAAUnmH,EAAEuxH,aAAap8I,EAAEu7H,QAAQvuH,EAAE4M,MAAM5M,EAAE4M,MAAM5Z,IAAa,QAAT8wB,EAAEjG,EAAEm0D,MAAcluD,EAAEyqG,QAAQv7H,EAAEgN,EAAE4M,MAAM5Z,EAAE6qB,EAAEm0D,KAAKh/E,EAAE,CAAC,OAAO,OAAO6qB,EAAE+B,MAAMkE,EAAEjG,EAAE+B,KAAK/B,EAAEigF,UAAUh6E,EAAEjG,EAAE+B,KAAKkE,EAAEyqG,QAAQ1wG,EAAEmpH,WAAWhnI,EAAEgnI,WAAWnpH,EAAEwxH,mBAAmBrwD,KAAIl7D,EAAEyqG,QAAQ,KAAKvuH,EAAEmoI,GAAEj8H,QAAQi0H,GAAEgI,GAAE95G,EAAI,EAAFruB,EAAI,EAAI,EAAFA,GAAK8jB,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOosH,KAAK,OAAOzmH,GAAG,OAAOA,EAAE0kG,gBAAiB,OAAOnuH,EAAEmuH,gBAAgB,kCAAkCtwG,EAAEu5B,OAAOp3C,EAAEiuH,OAAO,GAAG,KAAK,MAAM1tH,MAAMi+C,EAAE,IAAIx+C,EAAE6wB,KAAM,CACtd,SAASs/G,GAAG1mH,GAAG,OAAOA,EAAEoH,KAAK,KAAK,EAAE6vG,GAAGj3G,EAAEtgB,OAAOw3H,KAAK,IAAI3gI,EAAEypB,EAAEwkG,MAAM,OAAS,KAAFjuH,GAAQypB,EAAEwkG,OAAS,KAAHjuH,EAAQ,GAAGypB,GAAG,KAAK,KAAK,EAAgC,GAA9Bu+G,KAAK9H,GAAEG,IAAGH,GAAE/lH,IAAGgvH,KAAkB,IAAO,IAApBnpI,EAAEypB,EAAEwkG,QAAoB,MAAM1tH,MAAMi+C,EAAE,MAAyB,OAAnB/0B,EAAEwkG,OAAS,KAAHjuH,EAAQ,GAAUypB,EAAE,KAAK,EAAE,OAAOy+G,GAAGz+G,GAAG,KAAK,KAAK,GAAG,OAAOy2G,GAAEiI,IAAe,MAAZnoI,EAAEypB,EAAEwkG,QAAcxkG,EAAEwkG,OAAS,KAAHjuH,EAAQ,GAAGypB,GAAG,KAAK,KAAK,GAAG,OAAOy2G,GAAEiI,IAAG,KAAK,KAAK,EAAE,OAAOH,KAAK,KAAK,KAAK,GAAG,OAAOtE,GAAGj6G,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOymH,KAAK,KAAK,QAAQ,OAAO,KAAK,CAC1a,SAASE,GAAG3mH,EAAEzpB,GAAG,IAAI,IAAI8jB,EAAE,GAAGjG,EAAE7d,EAAE,GAAG8jB,GAAGmiG,EAAGpoG,GAAGA,EAAEA,EAAEgmF,aAAahmF,GAAG,IAAIlC,EAAEmI,CAAC,CAAC,MAAMuK,GAAG1S,EAAE,6BAA6B0S,EAAEnzB,QAAQ,KAAKmzB,EAAEimE,KAAK,CAAC,MAAM,CAACj+F,MAAMozB,EAAEzzB,OAAOgK,EAAEs0F,MAAM34E,EAAE,CAAC,SAAS00H,GAAG5mH,EAAEzpB,GAAG,IAAIlJ,QAAQC,MAAMiJ,EAAE3J,MAAM,CAAC,MAAMytB,GAAGjiB,YAAW,WAAW,MAAMiiB,CAAE,GAAE,CAAC,CAlBhQuqH,GAAG,SAAS5kH,EAAEzpB,GAAG,IAAI,IAAI8jB,EAAE9jB,EAAE4M,MAAM,OAAOkX,GAAG,CAAC,GAAG,IAAIA,EAAE+M,KAAK,IAAI/M,EAAE+M,IAAIpH,EAAEgiC,YAAY3nC,EAAE4oG,gBAAgB,GAAG,IAAI5oG,EAAE+M,KAAK,OAAO/M,EAAElX,MAAM,CAACkX,EAAElX,MAAMi3F,OAAO//E,EAAEA,EAAEA,EAAElX,MAAM,QAAQ,CAAC,GAAGkX,IAAI9jB,EAAE,MAAM,KAAK,OAAO8jB,EAAEyqG,SAAS,CAAC,GAAG,OAAOzqG,EAAE+/E,QAAQ//E,EAAE+/E,SAAS7jG,EAAE,OAAO8jB,EAAEA,EAAE+/E,MAAM,CAAC//E,EAAEyqG,QAAQ1qB,OAAO//E,EAAE+/E,OAAO//E,EAAEA,EAAEyqG,OAAO,CAAC,EAAE+f,GAAG,WAAW,EACxTC,GAAG,SAAS9kH,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAE8N,EAAE4+G,cAAc,GAAG1sH,IAAIkC,EAAE,CAAC4L,EAAEzpB,EAAE0sH,UAAUob,GAAGF,GAAG17H,SAAS,IAAyUlZ,EAArUq7B,EAAE,KAAK,OAAOvK,GAAG,IAAK,QAAQnI,EAAEorG,EAAGt9F,EAAE9N,GAAGkC,EAAEkpG,EAAGt9F,EAAE5L,GAAGwQ,EAAE,GAAG,MAAM,IAAK,SAAS1S,EAAE4rG,GAAG99F,EAAE9N,GAAGkC,EAAE0pG,GAAG99F,EAAE5L,GAAGwQ,EAAE,GAAG,MAAM,IAAK,SAAS1S,EAAEoH,EAAE,CAAC,EAAEpH,EAAE,CAACtlB,WAAM,IAASwnB,EAAEkF,EAAE,CAAC,EAAElF,EAAE,CAACxnB,WAAM,IAASg4B,EAAE,GAAG,MAAM,IAAK,WAAW1S,EAAE8rG,GAAGh+F,EAAE9N,GAAGkC,EAAE4pG,GAAGh+F,EAAE5L,GAAGwQ,EAAE,GAAG,MAAM,QAAQ,mBAAoB1S,EAAE2yB,SAAS,mBAAoBzwB,EAAEywB,UAAU7kB,EAAEkmH,QAAQ5Q,IAAyB,IAAI/8G,KAAzBiqG,GAAGnoG,EAAEjG,GAASiG,EAAE,KAAcnI,EAAE,IAAIkC,EAAEvpB,eAAe0tB,IAAIrG,EAAErnB,eAAe0tB,IAAI,MAAMrG,EAAEqG,GAAG,GAAG,UAC3eA,EAAE,CAAC,IAAIR,EAAE7F,EAAEqG,GAAG,IAAIhvB,KAAKwuB,EAAEA,EAAEltB,eAAetB,KAAK8wB,IAAIA,EAAE,CAAC,GAAGA,EAAE9wB,GAAG,GAAG,KAAK,4BAA4BgvB,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAI8gG,EAAGxuH,eAAe0tB,GAAGqM,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAI54B,KAAKusB,EAAE,OAAO,IAAIA,KAAKnE,EAAE,CAAC,IAAIuD,EAAEvD,EAAEmE,GAAyB,GAAtBR,EAAE,MAAM7F,EAAEA,EAAEqG,QAAG,EAAUnE,EAAEvpB,eAAe0tB,IAAIZ,IAAII,IAAI,MAAMJ,GAAG,MAAMI,GAAG,GAAG,UAAUQ,EAAE,GAAGR,EAAE,CAAC,IAAIxuB,KAAKwuB,GAAGA,EAAEltB,eAAetB,IAAIouB,GAAGA,EAAE9sB,eAAetB,KAAK8wB,IAAIA,EAAE,CAAC,GAAGA,EAAE9wB,GAAG,IAAI,IAAIA,KAAKouB,EAAEA,EAAE9sB,eAAetB,IAAIwuB,EAAExuB,KAAKouB,EAAEpuB,KAAK8wB,IAClfA,EAAE,CAAC,GAAGA,EAAE9wB,GAAGouB,EAAEpuB,GAAG,MAAM8wB,IAAIuK,IAAIA,EAAE,IAAIA,EAAE54B,KAAKusB,EAAE8B,IAAIA,EAAE1C,MAAM,4BAA4BY,GAAGZ,EAAEA,EAAEA,EAAEg+G,YAAO,EAAO59G,EAAEA,EAAEA,EAAE49G,YAAO,EAAO,MAAMh+G,GAAGI,IAAIJ,IAAIiN,EAAEA,GAAG,IAAI54B,KAAKusB,EAAEZ,IAAI,aAAaY,EAAE,iBAAkBZ,GAAG,iBAAkBA,IAAIiN,EAAEA,GAAG,IAAI54B,KAAKusB,EAAE,GAAGZ,GAAG,mCAAmCY,GAAG,6BAA6BA,IAAI8gG,EAAGxuH,eAAe0tB,IAAI,MAAMZ,GAAG,aAAaY,GAAG87G,GAAE,SAASr0G,GAAG4E,GAAG7M,IAAIJ,IAAIiN,EAAE,KAAK,iBAAkBjN,GAAG,OAAOA,GAAGA,EAAE2gE,WAAWqjC,EAAGhkG,EAAEpjB,YAAYqwB,EAAEA,GAAG,IAAI54B,KAAKusB,EAAEZ,GAAG,CAAC0C,IAAIuK,EAAEA,GAAG,IAAI54B,KAAK,QAC/equB,GAAG,IAAI9B,EAAEqM,GAAKruB,EAAEukI,YAAYviH,KAAEhiB,EAAEiuH,OAAO,EAAC,CAAC,EAAEugB,GAAG,SAAS/kH,EAAEzpB,EAAE8jB,EAAEjG,GAAGiG,IAAIjG,IAAI7d,EAAEiuH,OAAO,EAAE,EAc8K,IAAIqiB,GAAG,mBAAoBv7I,QAAQA,QAAQ+mB,IAAI,SAASy0H,GAAG9mH,EAAEzpB,EAAE8jB,IAAGA,EAAEghH,IAAI,EAAEhhH,IAAK+M,IAAI,EAAE/M,EAAExb,QAAQ,CAACkU,QAAQ,MAAM,IAAIqB,EAAE7d,EAAE3J,MAAsD,OAAhDytB,EAAEliB,SAAS,WAAW4uI,KAAKA,IAAG,EAAGC,GAAG5yH,GAAGwyH,GAAG5mH,EAAEzpB,EAAE,EAAS8jB,CAAC,CACrb,SAAS4sH,GAAGjnH,EAAEzpB,EAAE8jB,IAAGA,EAAEghH,IAAI,EAAEhhH,IAAK+M,IAAI,EAAE,IAAIhT,EAAE4L,EAAEtgB,KAAKm3E,yBAAyB,GAAG,mBAAoBziE,EAAE,CAAC,IAAIlC,EAAE3b,EAAE3J,MAAMytB,EAAExb,QAAQ,WAAmB,OAAR+nI,GAAG5mH,EAAEzpB,GAAU6d,EAAElC,EAAE,CAAC,CAAC,IAAI0S,EAAE5E,EAAEijG,UAA8O,OAApO,OAAOr+F,GAAG,mBAAoBA,EAAEsiH,oBAAoB7sH,EAAEliB,SAAS,WAAW,mBAAoBic,IAAI,OAAO+yH,GAAGA,GAAG,IAAIvzG,IAAI,CAACjjC,OAAOw2I,GAAG7yG,IAAI3jC,MAAMi2I,GAAG5mH,EAAEzpB,IAAI,IAAI8jB,EAAE9jB,EAAEs0F,MAAMl6F,KAAKu2I,kBAAkB3wI,EAAE3J,MAAM,CAACw6I,eAAe,OAAO/sH,EAAEA,EAAE,IAAI,GAAUA,CAAC,CAAC,IAAIgtH,GAAG,mBAAoBC,QAAQA,QAAQ1zG,IACxc,SAAS2zG,GAAGvnH,GAAG,IAAIzpB,EAAEypB,EAAEpyB,IAAI,GAAG,OAAO2I,EAAE,GAAG,mBAAoBA,EAAE,IAAIA,EAAE,KAAK,CAAC,MAAM8jB,GAAGmtH,GAAGxnH,EAAE3F,EAAE,MAAM9jB,EAAEkM,QAAQ,IAAI,CAAC,SAASglI,GAAGznH,EAAEzpB,GAAG,OAAOA,EAAE6wB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAA8Q,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAjS,KAAK,EAAE,GAAW,IAAR7wB,EAAEiuH,OAAW,OAAOxkG,EAAE,CAAC,IAAI3F,EAAE2F,EAAE4+G,cAAcxqH,EAAE4L,EAAE0kG,cAA4BnuH,GAAdypB,EAAEzpB,EAAE0sH,WAAc+Z,wBAAwBzmI,EAAEqiH,cAAcriH,EAAEmJ,KAAK2a,EAAEs/G,GAAGpjI,EAAEmJ,KAAK2a,GAAGjG,GAAG4L,EAAE0nH,oCAAoCnxI,CAAC,CAAC,OAAO,KAAK,EAA6C,YAAnC,IAARA,EAAEiuH,OAAWqR,GAAGt/H,EAAE0sH,UAAU0D,gBAA0D,MAAM7vH,MAAMi+C,EAAE,KAAM,CAClf,SAAS4yF,GAAG3nH,EAAEzpB,EAAE8jB,GAAG,OAAOA,EAAE+M,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAgD,GAAG,QAAhC7wB,EAAE,QAAlBA,EAAE8jB,EAAEygH,aAAuBvkI,EAAEgnI,WAAW,MAAiB,CAACv9G,EAAEzpB,EAAEA,EAAEmhB,KAAK,EAAE,CAAC,GAAG,IAAW,EAANsI,EAAEoH,KAAO,CAAC,IAAIhT,EAAE4L,EAAEmE,OAAOnE,EAAEkiH,QAAQ9tH,GAAG,CAAC4L,EAAEA,EAAEtI,IAAI,OAAOsI,IAAIzpB,EAAE,CAA8C,GAAG,QAAhCA,EAAE,QAAlBA,EAAE8jB,EAAEygH,aAAuBvkI,EAAEgnI,WAAW,MAAiB,CAACv9G,EAAEzpB,EAAEA,EAAEmhB,KAAK,EAAE,CAAC,IAAIxF,EAAE8N,EAAE5L,EAAElC,EAAEwF,KAAa,IAAO,GAAfxF,EAAEA,EAAEkV,OAAe,IAAO,EAAFlV,KAAO01H,GAAGvtH,EAAE2F,GAAG6nH,GAAGxtH,EAAE2F,IAAIA,EAAE5L,CAAC,OAAO4L,IAAIzpB,EAAE,CAAC,OAAO,KAAK,EACtR,OADwRypB,EAAE3F,EAAE4oG,UAAkB,EAAR5oG,EAAEmqG,QAAU,OAAOjuH,EAAEypB,EAAE+lB,qBAAqB3xB,EAAEiG,EAAEu+F,cAAcv+F,EAAE3a,KAAKnJ,EAAEqoI,cAAcjF,GAAGt/G,EAAE3a,KAAKnJ,EAAEqoI,eAAe5+G,EAAEwoB,mBAAmBp0B,EACxgB7d,EAAEmuH,cAAc1kG,EAAE0nH,4CAAuD,QAAhBnxI,EAAE8jB,EAAEygH,cAAsBe,GAAGxhH,EAAE9jB,EAAEypB,IAAU,KAAK,EAAkB,GAAG,QAAnBzpB,EAAE8jB,EAAEygH,aAAwB,CAAQ,GAAP96G,EAAE,KAAQ,OAAO3F,EAAElX,MAAM,OAAOkX,EAAElX,MAAMikB,KAAK,KAAK,EAA4B,KAAK,EAAEpH,EAAE3F,EAAElX,MAAM8/G,UAAU4Y,GAAGxhH,EAAE9jB,EAAEypB,EAAE,CAAC,OAAO,KAAK,EAA2E,OAAzEA,EAAE3F,EAAE4oG,eAAU,OAAO1sH,GAAW,EAAR8jB,EAAEmqG,OAASiR,GAAGp7G,EAAE3a,KAAK2a,EAAEukH,gBAAgB5+G,EAAEimB,SAAe,KAAK,EAAS,KAAK,EAAS,KAAK,GACnX,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAD6U,KAAK,GACzY,YAD4Y,OAAO5rB,EAAEqqG,gBAAgBrqG,EAAEA,EAAEkqG,UAAU,OAAOlqG,IAAIA,EAAEA,EAAEqqG,cAAc,OAAOrqG,IAAIA,EAAEA,EAAEsqG,WAAW,OAAOtqG,GAAG8sG,GAAG9sG,OACzb,MAAMvjB,MAAMi+C,EAAE,KAAM,CAClF,SAAS+yF,GAAG9nH,EAAEzpB,GAAG,IAAI,IAAI8jB,EAAE2F,IAAI,CAAC,GAAG,IAAI3F,EAAE+M,IAAI,CAAC,IAAIhT,EAAEiG,EAAE4oG,UAAU,GAAG1sH,EAAY,mBAAV6d,EAAEA,EAAEpM,OAA4B45G,YAAYxtG,EAAEwtG,YAAY,UAAU,OAAO,aAAaxtG,EAAEy3B,QAAQ,WAAW,CAACz3B,EAAEiG,EAAE4oG,UAAU,IAAI/wG,EAAEmI,EAAEukH,cAAc52H,MAAMkK,EAAE,MAASA,GAAaA,EAAErnB,eAAe,WAAWqnB,EAAE25B,QAAQ,KAAKz3B,EAAEpM,MAAM6jC,QAAQ81E,GAAG,UAAUzvG,EAAE,CAAC,MAAM,GAAG,IAAImI,EAAE+M,IAAI/M,EAAE4oG,UAAUhE,UAAU1oH,EAAE,GAAG8jB,EAAEukH,mBAAmB,IAAI,KAAKvkH,EAAE+M,KAAK,KAAK/M,EAAE+M,KAAK,OAAO/M,EAAEqqG,eAAerqG,IAAI2F,IAAI,OAAO3F,EAAElX,MAAM,CAACkX,EAAElX,MAAMi3F,OAAO//E,EAAEA,EAAEA,EAAElX,MAAM,QAAQ,CAAC,GAAGkX,IACtf2F,EAAE,MAAM,KAAK,OAAO3F,EAAEyqG,SAAS,CAAC,GAAG,OAAOzqG,EAAE+/E,QAAQ//E,EAAE+/E,SAASp6E,EAAE,OAAO3F,EAAEA,EAAE+/E,MAAM,CAAC//E,EAAEyqG,QAAQ1qB,OAAO//E,EAAE+/E,OAAO//E,EAAEA,EAAEyqG,OAAO,CAAC,CACzH,SAASijB,GAAG/nH,EAAEzpB,GAAG,GAAGkhI,IAAI,mBAAoBA,GAAGuQ,qBAAqB,IAAIvQ,GAAGuQ,qBAAqBxQ,GAAGjhI,EAAE,CAAC,MAAMquB,GAAG,CAAC,OAAOruB,EAAE6wB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnBpH,EAAEzpB,EAAEukI,cAAyC,QAAf96G,EAAEA,EAAEu9G,YAAqB,CAAC,IAAIljH,EAAE2F,EAAEA,EAAEtI,KAAK,EAAE,CAAC,IAAItD,EAAEiG,EAAEnI,EAAEkC,EAAE8tH,QAAgB,GAAR9tH,EAAEA,EAAEgT,SAAO,IAASlV,EAAE,GAAG,IAAO,EAAFkC,GAAKwzH,GAAGrxI,EAAE8jB,OAAO,CAACjG,EAAE7d,EAAE,IAAI2b,GAAG,CAAC,MAAM0S,GAAG4iH,GAAGpzH,EAAEwQ,EAAE,CAAC,CAACvK,EAAEA,EAAE3C,IAAI,OAAO2C,IAAI2F,EAAE,CAAC,MAAM,KAAK,EAAsB,GAApBunH,GAAGhxI,GAAoB,mBAAjBypB,EAAEzpB,EAAE0sH,WAAmC36E,qBAAqB,IAAItoB,EAAEhzB,MAAMuJ,EAAEqoI,cAAc5+G,EAAE8iB,MAAMvsC,EAAEmuH,cAAc1kG,EAAEsoB,sBAAsB,CAAC,MAAM1jB,GAAG4iH,GAAGjxI,EAC/gBquB,EAAE,CAAC,MAAM,KAAK,EAAE2iH,GAAGhxI,GAAG,MAAM,KAAK,EAAE0xI,GAAGjoH,EAAEzpB,GAAG,CAAC,SAAS2xI,GAAGloH,GAAGA,EAAEukG,UAAU,KAAKvkG,EAAE7c,MAAM,KAAK6c,EAAE3uB,aAAa,KAAK2uB,EAAEy9G,YAAY,KAAKz9G,EAAEu9G,WAAW,KAAKv9G,EAAE4+G,cAAc,KAAK5+G,EAAE0kG,cAAc,KAAK1kG,EAAEo/G,aAAa,KAAKp/G,EAAEo6E,OAAO,KAAKp6E,EAAE86G,YAAY,IAAI,CAAC,SAASqN,GAAGnoH,GAAG,OAAO,IAAIA,EAAEoH,KAAK,IAAIpH,EAAEoH,KAAK,IAAIpH,EAAEoH,GAAG,CACtS,SAASghH,GAAGpoH,GAAGA,EAAE,CAAC,IAAI,IAAIzpB,EAAEypB,EAAEo6E,OAAO,OAAO7jG,GAAG,CAAC,GAAG4xI,GAAG5xI,GAAG,MAAMypB,EAAEzpB,EAAEA,EAAE6jG,MAAM,CAAC,MAAMtjG,MAAMi+C,EAAE,KAAM,CAAC,IAAI16B,EAAE9jB,EAAgB,OAAdA,EAAE8jB,EAAE4oG,UAAiB5oG,EAAE+M,KAAK,KAAK,EAAE,IAAIhT,GAAE,EAAG,MAAM,KAAK,EAA+B,KAAK,EAAE7d,EAAEA,EAAEowH,cAAcvyG,GAAE,EAAG,MAAM,QAAQ,MAAMtd,MAAMi+C,EAAE,MAAe,GAAR16B,EAAEmqG,QAAWzF,GAAGxoH,EAAE,IAAI8jB,EAAEmqG,QAAQ,IAAIxkG,EAAEzpB,EAAE,IAAI8jB,EAAE2F,IAAI,CAAC,KAAK,OAAO3F,EAAEyqG,SAAS,CAAC,GAAG,OAAOzqG,EAAE+/E,QAAQ+tC,GAAG9tH,EAAE+/E,QAAQ,CAAC//E,EAAE,KAAK,MAAM2F,CAAC,CAAC3F,EAAEA,EAAE+/E,MAAM,CAA2B,IAA1B//E,EAAEyqG,QAAQ1qB,OAAO//E,EAAE+/E,OAAW//E,EAAEA,EAAEyqG,QAAQ,IAAIzqG,EAAE+M,KAAK,IAAI/M,EAAE+M,KAAK,KAAK/M,EAAE+M,KAAK,CAAC,GAAW,EAAR/M,EAAEmqG,MAAQ,SAASjuH,EAAE,GAAG,OAC/e8jB,EAAElX,OAAO,IAAIkX,EAAE+M,IAAI,SAAS7wB,EAAO8jB,EAAElX,MAAMi3F,OAAO//E,EAAEA,EAAEA,EAAElX,KAAK,CAAC,KAAa,EAARkX,EAAEmqG,OAAS,CAACnqG,EAAEA,EAAE4oG,UAAU,MAAMjjG,CAAC,CAAC,CAAC5L,EAAEi0H,GAAGroH,EAAE3F,EAAE9jB,GAAG+xI,GAAGtoH,EAAE3F,EAAE9jB,EAAE,CAC3H,SAAS8xI,GAAGroH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE4L,EAAEoH,IAAIlV,EAAE,IAAIkC,GAAG,IAAIA,EAAE,GAAGlC,EAAE8N,EAAE9N,EAAE8N,EAAEijG,UAAUjjG,EAAEijG,UAAU1yH,SAASgG,EAAE,IAAI8jB,EAAE8tD,SAAS9tD,EAAE5F,WAAWC,aAAasL,EAAEzpB,GAAG8jB,EAAE3F,aAAasL,EAAEzpB,IAAI,IAAI8jB,EAAE8tD,UAAU5xE,EAAE8jB,EAAE5F,YAAaC,aAAasL,EAAE3F,IAAK9jB,EAAE8jB,GAAI2nC,YAAYhiC,GAA4B,OAAxB3F,EAAEA,EAAEkuH,sBAA0C,OAAOhyI,EAAE2vI,UAAU3vI,EAAE2vI,QAAQ5Q,UAAU,GAAG,IAAIlhH,GAAc,QAAV4L,EAAEA,EAAE7c,OAAgB,IAAIklI,GAAGroH,EAAEzpB,EAAE8jB,GAAG2F,EAAEA,EAAE8kG,QAAQ,OAAO9kG,GAAGqoH,GAAGroH,EAAEzpB,EAAE8jB,GAAG2F,EAAEA,EAAE8kG,OAAO,CACrZ,SAASwjB,GAAGtoH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE4L,EAAEoH,IAAIlV,EAAE,IAAIkC,GAAG,IAAIA,EAAE,GAAGlC,EAAE8N,EAAE9N,EAAE8N,EAAEijG,UAAUjjG,EAAEijG,UAAU1yH,SAASgG,EAAE8jB,EAAE3F,aAAasL,EAAEzpB,GAAG8jB,EAAE2nC,YAAYhiC,QAAQ,GAAG,IAAI5L,GAAc,QAAV4L,EAAEA,EAAE7c,OAAgB,IAAImlI,GAAGtoH,EAAEzpB,EAAE8jB,GAAG2F,EAAEA,EAAE8kG,QAAQ,OAAO9kG,GAAGsoH,GAAGtoH,EAAEzpB,EAAE8jB,GAAG2F,EAAEA,EAAE8kG,OAAO,CAC5N,SAASmjB,GAAGjoH,EAAEzpB,GAAG,IAAI,IAAa2b,EAAE0S,EAAXvK,EAAE9jB,EAAE6d,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAEiG,EAAE+/E,OAAOp6E,EAAE,OAAO,CAAC,GAAG,OAAO5L,EAAE,MAAMtd,MAAMi+C,EAAE,MAAoB,OAAd7iC,EAAEkC,EAAE6uG,UAAiB7uG,EAAEgT,KAAK,KAAK,EAAExC,GAAE,EAAG,MAAM5E,EAAE,KAAK,EAAiC,KAAK,EAAE9N,EAAEA,EAAEy0G,cAAc/hG,GAAE,EAAG,MAAM5E,EAAE5L,EAAEA,EAAEgmF,MAAM,CAAChmF,GAAE,CAAE,CAAC,GAAG,IAAIiG,EAAE+M,KAAK,IAAI/M,EAAE+M,IAAI,CAACpH,EAAE,IAAI,IAAIz2B,EAAEy2B,EAAEjI,EAAEsC,EAAE1C,EAAEI,IAAI,GAAGgwH,GAAGx+I,EAAEouB,GAAG,OAAOA,EAAExU,OAAO,IAAIwU,EAAEyP,IAAIzP,EAAExU,MAAMi3F,OAAOziF,EAAEA,EAAEA,EAAExU,UAAU,CAAC,GAAGwU,IAAII,EAAE,MAAMiI,EAAE,KAAK,OAAOrI,EAAEmtG,SAAS,CAAC,GAAG,OAAOntG,EAAEyiF,QAAQziF,EAAEyiF,SAASriF,EAAE,MAAMiI,EAAErI,EAAEA,EAAEyiF,MAAM,CAACziF,EAAEmtG,QAAQ1qB,OAAOziF,EAAEyiF,OAAOziF,EAAEA,EAAEmtG,OAAO,CAAClgG,GAAGr7B,EAAE2oB,EAAE6F,EAAEsC,EAAE4oG,UACrf,IAAI15H,EAAE4+E,SAAS5+E,EAAEkrB,WAAW6tC,YAAYvqC,GAAGxuB,EAAE+4D,YAAYvqC,IAAI7F,EAAEowC,YAAYjoC,EAAE4oG,UAAU,MAAM,GAAG,IAAI5oG,EAAE+M,KAAK,GAAG,OAAO/M,EAAElX,MAAM,CAAC+O,EAAEmI,EAAE4oG,UAAU0D,cAAc/hG,GAAE,EAAGvK,EAAElX,MAAMi3F,OAAO//E,EAAEA,EAAEA,EAAElX,MAAM,QAAQ,OAAO,GAAG4kI,GAAG/nH,EAAE3F,GAAG,OAAOA,EAAElX,MAAM,CAACkX,EAAElX,MAAMi3F,OAAO//E,EAAEA,EAAEA,EAAElX,MAAM,QAAQ,CAAC,GAAGkX,IAAI9jB,EAAE,MAAM,KAAK,OAAO8jB,EAAEyqG,SAAS,CAAC,GAAG,OAAOzqG,EAAE+/E,QAAQ//E,EAAE+/E,SAAS7jG,EAAE,OAAkB,KAAX8jB,EAAEA,EAAE+/E,QAAahzE,MAAMhT,GAAE,EAAG,CAACiG,EAAEyqG,QAAQ1qB,OAAO//E,EAAE+/E,OAAO//E,EAAEA,EAAEyqG,OAAO,CAAC,CAC1Z,SAAS0jB,GAAGxoH,EAAEzpB,GAAG,OAAOA,EAAE6wB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI/M,EAAE9jB,EAAEukI,YAAyC,GAAG,QAAhCzgH,EAAE,OAAOA,EAAEA,EAAEkjH,WAAW,MAAiB,CAAC,IAAInpH,EAAEiG,EAAEA,EAAE3C,KAAK,GAAG,IAAW,EAANtD,EAAEgT,OAASpH,EAAE5L,EAAE8tH,QAAQ9tH,EAAE8tH,aAAQ,OAAO,IAASliH,GAAGA,KAAK5L,EAAEA,EAAEsD,WAAWtD,IAAIiG,EAAE,CAAC,OAAO,KAAK,EAErJ,KAAK,GAAoG,KAAK,GAAG,OAF6C,KAAK,EAAgB,GAAG,OAAjBA,EAAE9jB,EAAE0sH,WAAqB,CAAC7uG,EAAE7d,EAAEqoI,cAAc,IAAI1sH,EAAE,OAAO8N,EAAEA,EAAE4+G,cAAcxqH,EAAE4L,EAAEzpB,EAAEmJ,KAAK,IAAIklB,EAAEruB,EAAEukI,YAA+B,GAAnBvkI,EAAEukI,YAAY,KAAQ,OAAOl2G,EAAE,CAAgF,IAA/EvK,EAAE+7G,IAAIhiH,EAAE,UAAU4L,GAAG,UAAU5L,EAAE1U,MAAM,MAAM0U,EAAEtc,MAAM6lH,GAAGtjG,EAAEjG,GAAGquG,GAAGziG,EAAE9N,GAAG3b,EAAEksH,GAAGziG,EAAE5L,GAAOlC,EAAE,EAAEA,EAAE0S,EAAEt4B,OAAO4lB,GAClf,EAAE,CAAC,IAAI3oB,EAAEq7B,EAAE1S,GAAG6F,EAAE6M,EAAE1S,EAAE,GAAG,UAAU3oB,EAAEw1B,GAAG1E,EAAEtC,GAAG,4BAA4BxuB,EAAEo1H,GAAGtkG,EAAEtC,GAAG,aAAaxuB,EAAEw1H,GAAG1kG,EAAEtC,GAAGuiG,EAAGjgG,EAAE9wB,EAAEwuB,EAAExhB,EAAE,CAAC,OAAOypB,GAAG,IAAK,QAAQ49F,GAAGvjG,EAAEjG,GAAG,MAAM,IAAK,WAAW+pG,GAAG9jG,EAAEjG,GAAG,MAAM,IAAK,SAAS4L,EAAE3F,EAAEkjG,cAAc0oB,YAAY5rH,EAAEkjG,cAAc0oB,cAAc7xH,EAAEjS,SAAmB,OAAVyiB,EAAExQ,EAAExnB,OAAc6xB,GAAGpE,IAAIjG,EAAEjS,SAASyiB,GAAE,GAAI5E,MAAM5L,EAAEjS,WAAW,MAAMiS,EAAE9F,aAAamQ,GAAGpE,IAAIjG,EAAEjS,SAASiS,EAAE9F,cAAa,GAAImQ,GAAGpE,IAAIjG,EAAEjS,SAASiS,EAAEjS,SAAS,GAAG,IAAG,IAAK,CAAC,CAAC,OAAO,KAAK,EAAE,GAAG,OAAO5L,EAAE0sH,UAAU,MAAMnsH,MAAMi+C,EAAE,MAC/c,YADqdx+C,EAAE0sH,UAAUhE,UACjf1oH,EAAEqoI,eAAqB,KAAK,EAA8D,aAA5DvkH,EAAE9jB,EAAE0sH,WAAYyD,UAAUrsG,EAAEqsG,SAAQ,EAAGS,GAAG9sG,EAAEssG,iBAAsC,KAAK,GAAyD,OAAtD,OAAOpwH,EAAEmuH,gBAAgB+jB,GAAGlzD,KAAIuyD,GAAGvxI,EAAE4M,OAAM,SAAKulI,GAAGnyI,GAAU,KAAK,GAAS,YAANmyI,GAAGnyI,GAAyB,KAAK,GAAG,KAAK,GAAgC,YAA7BuxI,GAAGvxI,EAAE,OAAOA,EAAEmuH,eAAsB,MAAM5tH,MAAMi+C,EAAE,KAAM,CAAC,SAAS2zF,GAAG1oH,GAAG,IAAIzpB,EAAEypB,EAAE86G,YAAY,GAAG,OAAOvkI,EAAE,CAACypB,EAAE86G,YAAY,KAAK,IAAIzgH,EAAE2F,EAAEijG,UAAU,OAAO5oG,IAAIA,EAAE2F,EAAEijG,UAAU,IAAIokB,IAAI9wI,EAAE/J,SAAQ,SAAS+J,GAAG,IAAI6d,EAAEu0H,GAAG73I,KAAK,KAAKkvB,EAAEzpB,GAAG8jB,EAAEhwB,IAAIkM,KAAK8jB,EAAEia,IAAI/9B,GAAGA,EAAEkI,KAAK2V,EAAEA,GAAG,GAAE,CAAC,CACze,SAASw0H,GAAG5oH,EAAEzpB,GAAG,OAAO,OAAOypB,IAAsB,QAAlBA,EAAEA,EAAE0kG,gBAAwB,OAAO1kG,EAAE2kG,aAA+B,QAAlBpuH,EAAEA,EAAEmuH,gBAAwB,OAAOnuH,EAAEouH,UAAc,CAAC,IAAIkkB,GAAG9yI,KAAK+yI,KAAKC,GAAGnuB,EAAGilB,uBAAuBmJ,GAAGpuB,EAAGgpB,kBAAkBqF,GAAE,EAAEvH,GAAE,KAAKwH,GAAE,KAAK3C,GAAE,EAAE4C,GAAG,EAAEC,GAAG5S,GAAG,GAAG4P,GAAE,EAAEiD,GAAG,KAAKC,GAAG,EAAE1N,GAAG,EAAEyK,GAAG,EAAEkD,GAAG,EAAEC,GAAG,KAAKf,GAAG,EAAEjC,GAAG7vH,IAAS,SAAS8yH,KAAKjD,GAAGjxD,KAAI,GAAG,CAAC,IA8BsFm0D,GA9BlFC,GAAE,KAAK5C,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAKyC,IAAG,EAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAG,EAAG,SAASpO,KAAK,OAAO,IAAO,GAAF6M,IAAM1zD,MAAK,IAAI60D,GAAGA,GAAGA,GAAG70D,IAAG,CAC9e,SAAS8mD,GAAGr8G,GAAY,GAAG,IAAO,GAAnBA,EAAEA,EAAE2tB,OAAkB,OAAO,EAAE,GAAG,IAAO,EAAF3tB,GAAK,OAAO,KAAKm5G,KAAK,EAAE,EAAkB,GAAhB,IAAIkR,KAAKA,GAAGf,IAAO,IAAI7P,GAAG9+E,WAAW,CAAC,IAAI2vF,KAAKA,GAAG,OAAOd,GAAGA,GAAG9gB,aAAa,GAAG1oG,EAAEqqH,GAAG,IAAI9zI,EAAE,SAAS+zI,GAAsD,OAA7C,IAAN/zI,IAAIA,IAA8B,IAAPA,GAAbypB,EAAE,SAASA,IAAOA,KAAUzpB,EAAE,MAAcA,CAAC,CAA2D,OAA1DypB,EAAEm5G,KAAuBn5G,EAAEkpG,GAApB,IAAO,EAAF+f,KAAM,KAAKjpH,EAAO,GAAQA,EAtK3Q,SAAYA,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,OAAO,EAAE,CAsKqJyqH,CAAGzqH,GAAVqqH,GAAiC,CACpT,SAAS/N,GAAGt8G,EAAEzpB,EAAE8jB,GAAG,GAAG,GAAG6vH,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKrzI,MAAMi+C,EAAE,MAAgB,GAAG,QAAb/0B,EAAE0qH,GAAG1qH,EAAEzpB,IAAe,OAAO,KAAK8yH,GAAGrpG,EAAEzpB,EAAE8jB,GAAG2F,IAAI0hH,KAAI2E,IAAI9vI,EAAE,IAAI6vI,IAAGE,GAAGtmH,EAAEumH,KAAI,IAAInyH,EAAE+kH,KAAK,IAAI5iI,EAAE,IAAO,EAAF0yI,KAAM,IAAO,GAAFA,IAAM0B,GAAG3qH,IAAI4qH,GAAG5qH,EAAE3F,GAAG,IAAI4uH,KAAIQ,KAAKlQ,QAAQ,IAAO,EAAF0P,KAAM,KAAK70H,GAAG,KAAKA,IAAI,OAAO61H,GAAGA,GAAG,IAAIr2G,IAAI,CAAC5T,IAAIiqH,GAAG31G,IAAItU,IAAI4qH,GAAG5qH,EAAE3F,IAAImvH,GAAGxpH,CAAC,CAAC,SAAS0qH,GAAG1qH,EAAEzpB,GAAGypB,EAAEu6G,OAAOhkI,EAAE,IAAI8jB,EAAE2F,EAAEukG,UAAqC,IAA3B,OAAOlqG,IAAIA,EAAEkgH,OAAOhkI,GAAG8jB,EAAE2F,EAAMA,EAAEA,EAAEo6E,OAAO,OAAOp6E,GAAGA,EAAEo6G,YAAY7jI,EAAgB,QAAd8jB,EAAE2F,EAAEukG,aAAqBlqG,EAAE+/G,YAAY7jI,GAAG8jB,EAAE2F,EAAEA,EAAEA,EAAEo6E,OAAO,OAAO,IAAI//E,EAAE+M,IAAI/M,EAAE4oG,UAAU,IAAI,CAC7e,SAAS2nB,GAAG5qH,EAAEzpB,GAAG,IAAI,IAAI8jB,EAAE2F,EAAE6qH,aAAaz2H,EAAE4L,EAAE4oG,eAAe12G,EAAE8N,EAAE6oG,YAAYjkG,EAAE5E,EAAE8qH,gBAAgBvhJ,EAAEy2B,EAAE0oG,aAAa,EAAEn/H,GAAG,CAAC,IAAIwuB,EAAE,GAAG+wG,GAAGv/H,GAAGouB,EAAE,GAAGI,EAAEQ,EAAEqM,EAAE7M,GAAG,IAAI,IAAIQ,GAAG,GAAG,IAAKZ,EAAEvD,IAAI,IAAKuD,EAAEzF,GAAG,CAACqG,EAAEhiB,EAAEiyH,GAAG7wG,GAAG,IAAI1gB,EAAEkpE,GAAEv7C,EAAE7M,GAAG,IAAI9gB,EAAEshB,EAAE,IAAI,GAAGthB,EAAEshB,EAAE,KAAK,CAAC,OAAOA,GAAGhiB,IAAIypB,EAAE2oG,cAAchxG,GAAGpuB,IAAIouB,CAAC,CAAuB,GAAtBvD,EAAEq0G,GAAGzoG,EAAEA,IAAI0hH,GAAE6E,GAAE,GAAGhwI,EAAE4pE,GAAK,IAAI/rD,EAAE,OAAOiG,IAAIA,IAAIw+G,IAAIjB,GAAGv9G,GAAG2F,EAAE6qH,aAAa,KAAK7qH,EAAE+qH,iBAAiB,OAAO,CAAC,GAAG,OAAO1wH,EAAE,CAAC,GAAG2F,EAAE+qH,mBAAmBx0I,EAAE,OAAO8jB,IAAIw+G,IAAIjB,GAAGv9G,EAAE,CAAC,KAAK9jB,GAAG8jB,EAAEswH,GAAG75I,KAAK,KAAKkvB,GAAG,OAAO+4G,IAAIA,GAAG,CAAC1+G,GAAG2+G,GAAGrB,GAAGU,GAAGmB,KAAKT,GAAG/sI,KAAKquB,GACrfA,EAAEw+G,IAAI,KAAKtiI,EAAE8jB,EAAEi/G,GAAG,GAAGqR,GAAG75I,KAAK,KAAKkvB,KAAK3F,EAzK+F,SAAY2F,GAAG,OAAOA,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,QAAQ,MAAMlpB,MAAMi+C,EAAE,IAAI/0B,IAAK,CAyK7TgrH,CAAGz0I,GAAG8jB,EAAEi/G,GAAGj/G,EAAE4wH,GAAGn6I,KAAK,KAAKkvB,KAAKA,EAAE+qH,iBAAiBx0I,EAAEypB,EAAE6qH,aAAaxwH,CAAC,CAAC,CAC9G,SAAS4wH,GAAGjrH,GAAiB,GAAdoqH,IAAI,EAAEE,GAAGD,GAAG,EAAK,IAAO,GAAFpB,IAAM,MAAMnyI,MAAMi+C,EAAE,MAAM,IAAIx+C,EAAEypB,EAAE6qH,aAAa,GAAGK,MAAMlrH,EAAE6qH,eAAet0I,EAAE,OAAO,KAAK,IAAI8jB,EAAEouG,GAAGzoG,EAAEA,IAAI0hH,GAAE6E,GAAE,GAAG,GAAG,IAAIlsH,EAAE,OAAO,KAAK,IAAIjG,EAAEiG,EAAMnI,EAAE+2H,GAAEA,IAAG,GAAG,IAAIrkH,EAAEumH,KAAkC,IAA1BzJ,KAAI1hH,GAAGumH,KAAInyH,IAAEq1H,KAAK2B,GAAGprH,EAAE5L,UAAUi3H,KAAK,KAAK,CAAC,MAAMtzH,GAAGuzH,GAAGtrH,EAAEjI,EAAE,CAA8D,GAApDiiH,KAAK+O,GAAGtmI,QAAQmiB,EAAEqkH,GAAE/2H,EAAE,OAAOg3H,GAAE90H,EAAE,GAAGstH,GAAE,KAAK6E,GAAE,EAAEnyH,EAAEgyH,IAAM,IAAKkD,GAAGjD,IAAI+E,GAAGprH,EAAE,QAAQ,GAAG,IAAI5L,EAAE,CAAyF,GAAxF,IAAIA,IAAI60H,IAAG,GAAGjpH,EAAE0mG,UAAU1mG,EAAE0mG,SAAQ,EAAGmP,GAAG71G,EAAE2mG,gBAAwB,KAARtsG,EAAE4uG,GAAGjpG,MAAW5L,EAAEm3H,GAAGvrH,EAAE3F,KAAQ,IAAIjG,EAAE,MAAM7d,EAAE8yI,GAAG+B,GAAGprH,EAAE,GAAGsmH,GAAGtmH,EAAE3F,GAAGuwH,GAAG5qH,EAAEu1D,MAAKh/E,EAC3c,OAD6cypB,EAAEwrH,aACrfxrH,EAAEvd,QAAQ8hH,UAAUvkG,EAAEyrH,cAAcpxH,EAASjG,GAAG,KAAK,EAAE,KAAK,EAAE,MAAMtd,MAAMi+C,EAAE,MAAM,KAAK,EACI,KAAK,EAAE22F,GAAG1rH,GAAG,MADH,KAAK,EAAU,GAARsmH,GAAGtmH,EAAE3F,IAAS,SAAFA,KAAcA,GAAiB,IAAbjG,EAAEq0H,GAAG,IAAIlzD,MAAU,CAAC,GAAG,IAAIkzC,GAAGzoG,EAAE,GAAG,MAAyB,KAAnB9N,EAAE8N,EAAE4oG,gBAAqBvuG,KAAKA,EAAE,CAAC+hH,KAAKp8G,EAAE6oG,aAAa7oG,EAAE4oG,eAAe12G,EAAE,KAAK,CAAC8N,EAAE8rF,cAAcruD,GAAGiuF,GAAG56I,KAAK,KAAKkvB,GAAG5L,GAAG,KAAK,CAACs3H,GAAG1rH,GAAG,MAAM,KAAK,EAAU,GAARsmH,GAAGtmH,EAAE3F,IAAS,QAAFA,KAAaA,EAAE,MAAqB,IAAfjG,EAAE4L,EAAEspG,WAAep3G,GAAG,EAAE,EAAEmI,GAAG,CAAC,IAAI9wB,EAAE,GAAGu/H,GAAGzuG,GAAGuK,EAAE,GAAGr7B,GAAEA,EAAE6qB,EAAE7qB,IAAK2oB,IAAIA,EAAE3oB,GAAG8wB,IAAIuK,CAAC,CAClZ,GADmZvK,EAAEnI,EAClZ,IAD4ZmI,GAAG,KAAXA,EAAEk7D,KAAIl7D,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAClfA,EAAE,KAAK,KAAKwuH,GAAGxuH,EAAE,OAAOA,GAAU,CAAC2F,EAAE8rF,cAAcruD,GAAGiuF,GAAG56I,KAAK,KAAKkvB,GAAG3F,GAAG,KAAK,CAACqxH,GAAG1rH,GAAG,MAAyB,QAAQ,MAAMlpB,MAAMi+C,EAAE,MAAO,CAAW,OAAV61F,GAAG5qH,EAAEu1D,MAAYv1D,EAAE6qH,eAAet0I,EAAE00I,GAAGn6I,KAAK,KAAKkvB,GAAG,IAAI,CAAC,SAASsmH,GAAGtmH,EAAEzpB,GAAuD,IAApDA,IAAIgzI,GAAGhzI,IAAI8vI,GAAGrmH,EAAE4oG,gBAAgBryH,EAAEypB,EAAE6oG,cAActyH,EAAMypB,EAAEA,EAAE8qH,gBAAgB,EAAEv0I,GAAG,CAAC,IAAI8jB,EAAE,GAAGyuG,GAAGvyH,GAAG6d,EAAE,GAAGiG,EAAE2F,EAAE3F,IAAI,EAAE9jB,IAAI6d,CAAC,CAAC,CAC5U,SAASu2H,GAAG3qH,GAAG,GAAG,IAAO,GAAFipH,IAAM,MAAMnyI,MAAMi+C,EAAE,MAAW,GAALm2F,KAAQlrH,IAAI0hH,IAAG,IAAK1hH,EAAE2oG,aAAa4d,IAAG,CAAC,IAAIhwI,EAAEgwI,GAAMlsH,EAAEkxH,GAAGvrH,EAAEzpB,GAAG,IAAK+yI,GAAGjD,MAAgBhsH,EAAEkxH,GAAGvrH,EAAfzpB,EAAEkyH,GAAGzoG,EAAEzpB,IAAa,MAAgB8jB,EAAEkxH,GAAGvrH,EAAfzpB,EAAEkyH,GAAGzoG,EAAE,IAAgH,GAAnG,IAAIA,EAAEoH,KAAK,IAAI/M,IAAI4uH,IAAG,GAAGjpH,EAAE0mG,UAAU1mG,EAAE0mG,SAAQ,EAAGmP,GAAG71G,EAAE2mG,gBAAwB,KAARpwH,EAAE0yH,GAAGjpG,MAAW3F,EAAEkxH,GAAGvrH,EAAEzpB,KAAQ,IAAI8jB,EAAE,MAAMA,EAAEgvH,GAAG+B,GAAGprH,EAAE,GAAGsmH,GAAGtmH,EAAEzpB,GAAGq0I,GAAG5qH,EAAEu1D,MAAKl7D,EAAuE,OAArE2F,EAAEwrH,aAAaxrH,EAAEvd,QAAQ8hH,UAAUvkG,EAAEyrH,cAAcl1I,EAAEm1I,GAAG1rH,GAAG4qH,GAAG5qH,EAAEu1D,MAAY,IAAI,CACvR,SAASo2D,GAAG3rH,EAAEzpB,GAAG,IAAI8jB,EAAE4uH,GAAEA,IAAG,EAAE,IAAI,OAAOjpH,EAAEzpB,EAAE,CAAC,QAAY,KAAJ0yI,GAAE5uH,KAAUovH,KAAKlQ,KAAK,CAAC,CAAC,SAASqS,GAAG5rH,EAAEzpB,GAAG,IAAI8jB,EAAE4uH,GAAEA,KAAI,EAAEA,IAAG,EAAE,IAAI,OAAOjpH,EAAEzpB,EAAE,CAAC,QAAY,KAAJ0yI,GAAE5uH,KAAUovH,KAAKlQ,KAAK,CAAC,CAAC,SAAS+K,GAAGtkH,EAAEzpB,GAAGmgI,GAAE0S,GAAGD,IAAIA,IAAI5yI,EAAE+yI,IAAI/yI,CAAC,CAAC,SAASkwI,KAAK0C,GAAGC,GAAG3mI,QAAQg0H,GAAE2S,GAAG,CAC/V,SAASgC,GAAGprH,EAAEzpB,GAAGypB,EAAEwrH,aAAa,KAAKxrH,EAAEyrH,cAAc,EAAE,IAAIpxH,EAAE2F,EAAE8rF,cAAiD,IAAlC,IAAIzxF,IAAI2F,EAAE8rF,eAAe,EAAE8pB,GAAGv7G,IAAO,OAAO6uH,GAAE,IAAI7uH,EAAE6uH,GAAE9uC,OAAO,OAAO//E,GAAG,CAAC,IAAIjG,EAAEiG,EAAE,OAAOjG,EAAEgT,KAAK,KAAK,EAA6B,OAA3BhT,EAAEA,EAAE1U,KAAK2qD,oBAAwC6sE,KAAK,MAAM,KAAK,EAAEqH,KAAK9H,GAAEG,IAAGH,GAAE/lH,IAAGgvH,KAAK,MAAM,KAAK,EAAEjB,GAAGrqH,GAAG,MAAM,KAAK,EAAEmqH,KAAK,MAAM,KAAK,GAAc,KAAK,GAAG9H,GAAEiI,IAAG,MAAM,KAAK,GAAGzE,GAAG7lH,GAAG,MAAM,KAAK,GAAG,KAAK,GAAGqyH,KAAKpsH,EAAEA,EAAE+/E,MAAM,CAACsnC,GAAE1hH,EAAEkpH,GAAExL,GAAG19G,EAAEvd,QAAQ,MAAM8jI,GAAE4C,GAAGG,GAAG/yI,EAAE6vI,GAAE,EAAEiD,GAAG,KAAKE,GAAGlD,GAAGzK,GAAG,CAAC,CACxc,SAAS0P,GAAGtrH,EAAEzpB,GAAG,OAAE,CAAC,IAAI8jB,EAAE6uH,GAAE,IAAuB,GAAnBlP,KAAK4F,GAAGn9H,QAAQg+H,GAAMR,GAAG,CAAC,IAAI,IAAI7rH,EAAEwN,GAAE8iG,cAAc,OAAOtwG,GAAG,CAAC,IAAIlC,EAAEkC,EAAE9X,MAAM,OAAO4V,IAAIA,EAAE5R,QAAQ,MAAM8T,EAAEA,EAAEsD,IAAI,CAACuoH,IAAG,CAAE,CAAuC,GAAtCF,GAAG,EAAEC,GAAEvvH,GAAEmR,GAAE,KAAKs+G,IAAG,EAAG8I,GAAGvmI,QAAQ,KAAQ,OAAO4X,GAAG,OAAOA,EAAE+/E,OAAO,CAACgsC,GAAE,EAAEiD,GAAG9yI,EAAE2yI,GAAE,KAAK,KAAK,CAAClpH,EAAE,CAAC,IAAI4E,EAAE5E,EAAEz2B,EAAE8wB,EAAE+/E,OAAOriF,EAAEsC,EAAE1C,EAAEphB,EAAoD,GAAlDA,EAAEgwI,GAAExuH,EAAEysG,OAAO,KAAKzsG,EAAE0lH,YAAY1lH,EAAEwlH,WAAW,KAAQ,OAAO5lH,GAAG,iBAAkBA,GAAG,mBAAoBA,EAAElZ,KAAK,CAAC,IAAI8Z,EAAEZ,EAAE,GAAG,IAAY,EAAPI,EAAE41B,MAAQ,CAAC,IAAI12C,EAAE8gB,EAAEwsG,UAAUttH,GAAG8gB,EAAE+iH,YAAY7jI,EAAE6jI,YAAY/iH,EAAE2sG,cAAcztH,EAAEytH,cAAc3sG,EAAEwiH,MAAMtjI,EAAEsjI,QACpfxiH,EAAE+iH,YAAY,KAAK/iH,EAAE2sG,cAAc,KAAK,CAAC,IAAInsC,EAAE,IAAe,EAAVmmD,GAAEj8H,SAAWwa,EAAE1zB,EAAE,EAAE,CAAC,IAAIoyI,EAAE,GAAGA,EAAE,KAAK1+G,EAAEmK,IAAI,CAAC,IAAIxD,EAAE3G,EAAEynG,cAAc,GAAG,OAAO9gG,EAAE+3G,EAAE,OAAO/3G,EAAE+gG,eAAqB,CAAC,IAAIvsC,EAAEn7D,EAAE2hH,cAAcjD,OAAE,IAASvjD,EAAEt4E,YAAY,IAAKs4E,EAAE+sD,6BAA8B5sD,EAAO,CAAC,CAAC,GAAGojD,EAAE,CAAC,IAAIp+G,EAAEN,EAAE69G,YAAY,GAAG,OAAOv9G,EAAE,CAAC,IAAI86D,EAAE,IAAIzkD,IAAIykD,EAAE/jD,IAAI/b,GAAG0E,EAAE69G,YAAYziD,CAAC,MAAM96D,EAAE+W,IAAI/b,GAAG,GAAG,IAAY,EAAP0E,EAAE0wB,MAAQ,CAA2C,GAA1C1wB,EAAEunG,OAAO,GAAGzsG,EAAEysG,OAAO,MAAMzsG,EAAEysG,QAAQ,KAAQ,IAAIzsG,EAAEqP,IAAI,GAAG,OAAOrP,EAAEwsG,UAAUxsG,EAAEqP,IAAI,OAAO,CAAC,IAAIlT,EAAEmnH,IAAI,EAAE,GAAGnnH,EAAEkT,IAAI,EAAEo0G,GAAGzjH,EAAE7D,EAAE,CAAC6D,EAAEwiH,OAAO,EAAE,MAAMv6G,CAAC,CAACrI,OAC5f,EAAOI,EAAExhB,EAAE,IAAI4hF,EAAEvzD,EAAEinH,UAA+G,GAArG,OAAO1zD,GAAGA,EAAEvzD,EAAEinH,UAAU,IAAIhF,GAAGlvH,EAAE,IAAIic,IAAIukD,EAAEntF,IAAIutB,EAAEZ,SAAgB,KAAXA,EAAEwgE,EAAE7tF,IAAIiuB,MAAgBZ,EAAE,IAAIic,IAAIukD,EAAEntF,IAAIutB,EAAEZ,KAASA,EAAEttB,IAAI0tB,GAAG,CAACJ,EAAE2c,IAAIvc,GAAG,IAAID,EAAEg0H,GAAGh7I,KAAK,KAAK8zB,EAAErM,EAAER,GAAGQ,EAAE9Z,KAAKqZ,EAAEA,EAAE,CAACmF,EAAEunG,OAAO,KAAKvnG,EAAEs9G,MAAMhkI,EAAE,MAAMypB,CAAC,CAAC/C,EAAEA,EAAEm9E,MAAM,OAAO,OAAOn9E,GAAGtF,EAAE7gB,OAAO4lH,EAAG3kG,EAAErY,OAAO,qBAAqB,wLAAwL,CAAC,IAAI0mI,KAAIA,GAAE,GAAGzuH,EAAEgvH,GAAGhvH,EAAEI,GAAGkF,EACpf1zB,EAAE,EAAE,CAAC,OAAO0zB,EAAEmK,KAAK,KAAK,EAAExC,EAAEjN,EAAEsF,EAAEunG,OAAO,KAAKjuH,IAAIA,EAAE0mB,EAAEs9G,OAAOhkI,EAAkBklI,GAAGx+G,EAAb6pH,GAAG7pH,EAAE2H,EAAEruB,IAAW,MAAMypB,EAAE,KAAK,EAAE4E,EAAEjN,EAAE,IAAIu9G,EAAEj4G,EAAEvd,KAAKy1H,EAAEl4G,EAAEgmG,UAAU,GAAG,IAAa,GAARhmG,EAAEunG,SAAY,mBAAoB0Q,EAAEr+C,0BAA0B,OAAOs+C,GAAG,mBAAoBA,EAAE+R,oBAAoB,OAAOC,KAAKA,GAAG98I,IAAI8qI,KAAK,CAACl4G,EAAEunG,OAAO,KAAKjuH,IAAIA,EAAE0mB,EAAEs9G,OAAOhkI,EAAkBklI,GAAGx+G,EAAbgqH,GAAGhqH,EAAE2H,EAAEruB,IAAW,MAAMypB,CAAC,EAAE/C,EAAEA,EAAEm9E,MAAM,OAAO,OAAOn9E,EAAE,CAAC8uH,GAAG1xH,EAAE,CAAC,MAAM2xH,GAAIz1I,EAAEy1I,EAAG9C,KAAI7uH,GAAG,OAAOA,IAAI6uH,GAAE7uH,EAAEA,EAAE+/E,QAAQ,QAAQ,CAAC,KAAK,CAAS,CAC7b,SAAS+wC,KAAK,IAAInrH,EAAE+oH,GAAGtmI,QAAsB,OAAdsmI,GAAGtmI,QAAQg+H,GAAU,OAAOzgH,EAAEygH,GAAGzgH,CAAC,CAAC,SAASurH,GAAGvrH,EAAEzpB,GAAG,IAAI8jB,EAAE4uH,GAAEA,IAAG,GAAG,IAAI70H,EAAE+2H,KAA2B,IAAtBzJ,KAAI1hH,GAAGumH,KAAIhwI,GAAG60I,GAAGprH,EAAEzpB,SAAU01I,KAAK,KAAK,CAAC,MAAM/5H,GAAGo5H,GAAGtrH,EAAE9N,EAAE,CAAgC,GAAtB8nH,KAAKiP,GAAE5uH,EAAE0uH,GAAGtmI,QAAQ2R,EAAK,OAAO80H,GAAE,MAAMpyI,MAAMi+C,EAAE,MAAiB,OAAX2sF,GAAE,KAAK6E,GAAE,EAASH,EAAC,CAAC,SAAS6F,KAAK,KAAK,OAAO/C,IAAGgD,GAAGhD,GAAE,CAAC,SAASmC,KAAK,KAAK,OAAOnC,KAAIpR,MAAMoU,GAAGhD,GAAE,CAAC,SAASgD,GAAGlsH,GAAG,IAAIzpB,EAAEmzI,GAAG1pH,EAAEukG,UAAUvkG,EAAEmpH,IAAInpH,EAAE4+G,cAAc5+G,EAAEo/G,aAAa,OAAO7oI,EAAEw1I,GAAG/rH,GAAGkpH,GAAE3yI,EAAEyyI,GAAGvmI,QAAQ,IAAI,CAChb,SAASspI,GAAG/rH,GAAG,IAAIzpB,EAAEypB,EAAE,EAAE,CAAC,IAAI3F,EAAE9jB,EAAEguH,UAAqB,GAAXvkG,EAAEzpB,EAAE6jG,OAAU,IAAa,KAAR7jG,EAAEiuH,OAAY,CAAc,GAAG,QAAhBnqG,EAAE2rH,GAAG3rH,EAAE9jB,EAAE4yI,KAAqB,YAAJD,GAAE7uH,GAAa,GAAG,MAAPA,EAAE9jB,GAAY6wB,KAAK,KAAK/M,EAAE+M,KAAK,OAAO/M,EAAEqqG,eAAe,IAAQ,WAAHykB,KAAgB,IAAY,EAAP9uH,EAAEszB,MAAQ,CAAC,IAAI,IAAIv5B,EAAE,EAAElC,EAAEmI,EAAElX,MAAM,OAAO+O,GAAGkC,GAAGlC,EAAEqoH,MAAMroH,EAAEkoH,WAAWloH,EAAEA,EAAE4yG,QAAQzqG,EAAE+/G,WAAWhmH,CAAC,CAAC,OAAO4L,GAAG,IAAa,KAARA,EAAEwkG,SAAc,OAAOxkG,EAAEy9G,cAAcz9G,EAAEy9G,YAAYlnI,EAAEknI,aAAa,OAAOlnI,EAAEgnI,aAAa,OAAOv9G,EAAEu9G,aAAav9G,EAAEu9G,WAAWC,WAAWjnI,EAAEknI,aAAaz9G,EAAEu9G,WAAWhnI,EAAEgnI,YAAY,EAAEhnI,EAAEiuH,QAAQ,OAC/exkG,EAAEu9G,WAAWv9G,EAAEu9G,WAAWC,WAAWjnI,EAAEypB,EAAEy9G,YAAYlnI,EAAEypB,EAAEu9G,WAAWhnI,GAAG,KAAK,CAAS,GAAG,QAAX8jB,EAAEqsH,GAAGnwI,IAAkC,OAAlB8jB,EAAEmqG,OAAO,UAAK0kB,GAAE7uH,GAAS,OAAO2F,IAAIA,EAAEy9G,YAAYz9G,EAAEu9G,WAAW,KAAKv9G,EAAEwkG,OAAO,KAAK,CAAa,GAAG,QAAfjuH,EAAEA,EAAEuuH,SAAyB,YAAJokB,GAAE3yI,GAAS2yI,GAAE3yI,EAAEypB,CAAC,OAAO,OAAOzpB,GAAG,IAAI6vI,KAAIA,GAAE,EAAE,CAAC,SAASsF,GAAG1rH,GAAG,IAAIzpB,EAAE4iI,KAA8B,OAAzBE,GAAG,GAAG8S,GAAGr7I,KAAK,KAAKkvB,EAAEzpB,IAAW,IAAI,CAC1T,SAAS41I,GAAGnsH,EAAEzpB,GAAG,GAAG20I,WAAW,OAAOrB,IAAI,GAAG,IAAO,GAAFZ,IAAM,MAAMnyI,MAAMi+C,EAAE,MAAM,IAAI16B,EAAE2F,EAAEwrH,aAAa,GAAG,OAAOnxH,EAAE,OAAO,KAA2C,GAAtC2F,EAAEwrH,aAAa,KAAKxrH,EAAEyrH,cAAc,EAAKpxH,IAAI2F,EAAEvd,QAAQ,MAAM3L,MAAMi+C,EAAE,MAAM/0B,EAAE6qH,aAAa,KAAK,IAAIz2H,EAAEiG,EAAEkgH,MAAMlgH,EAAE+/G,WAAWloH,EAAEkC,EAAEwQ,EAAE5E,EAAE0oG,cAAcx2G,EAAE8N,EAAE0oG,aAAax2G,EAAE8N,EAAE4oG,eAAe,EAAE5oG,EAAE6oG,YAAY,EAAE7oG,EAAE2oG,cAAcz2G,EAAE8N,EAAEwhH,kBAAkBtvH,EAAE8N,EAAE+oG,gBAAgB72G,EAAEA,EAAE8N,EAAEgpG,cAAc,IAAI,IAAIz/H,EAAEy2B,EAAEspG,WAAWvxG,EAAEiI,EAAE8qH,gBAAgB,EAAElmH,GAAG,CAAC,IAAIjN,EAAE,GAAGmxG,GAAGlkG,GAAGrM,EAAE,GAAGZ,EAAEzF,EAAEyF,GAAG,EAAEpuB,EAAEouB,IAAI,EAAEI,EAAEJ,IAAI,EAAEiN,IAAIrM,CAAC,CACpV,GADqV,OACjf0xH,IAAI,IAAO,GAAF71H,IAAO61H,GAAG5/I,IAAI21B,IAAIiqH,GAAG5zH,OAAO2J,GAAGA,IAAI0hH,KAAIwH,GAAExH,GAAE,KAAK6E,GAAE,GAAG,EAAElsH,EAAEmqG,MAAM,OAAOnqG,EAAEkjH,YAAYljH,EAAEkjH,WAAWC,WAAWnjH,EAAEjG,EAAEiG,EAAEojH,aAAarpH,EAAEiG,EAAEjG,EAAEiG,EAAEojH,YAAe,OAAOrpH,EAAE,CAAwC,GAAvClC,EAAE+2H,GAAEA,IAAG,GAAGD,GAAGvmI,QAAQ,KAAK8yH,GAAGzL,GAAakJ,GAAVzpI,EAAEspI,MAAc,CAAC,GAAG,mBAAmBtpI,EAAEwuB,EAAE,CAAC0T,MAAMliC,EAAEiqI,eAAe9nG,IAAIniC,EAAEkqI,mBAAmBzzG,EAAE,GAAGjI,GAAGA,EAAExuB,EAAE6nF,gBAAgBr5D,EAAE05D,aAAanoF,QAAQivB,EAAER,EAAE47G,cAAc57G,EAAE47G,iBAAiB,IAAIp7G,EAAE6zH,WAAW,CAACr0H,EAAEQ,EAAEm7G,WAAW9uG,EAAErM,EAAEq7G,aAAaj8G,EAAEY,EAAEs7G,UAAUt7G,EAAEA,EAAEu7G,YAAY,IAAI/7G,EAAEowD,SAASxwD,EAAEwwD,QAAQ,CAAC,MAAM6jE,GAAIj0H,EAAE,KACnf,MAAMiI,CAAC,CAAC,IAAI/oB,EAAE,EAAEshF,GAAG,EAAEt7D,GAAG,EAAE0+G,EAAE,EAAE/3G,EAAE,EAAEw0D,EAAE7uF,EAAEg0B,EAAE,KAAKhnB,EAAE,OAAO,CAAC,IAAI,IAAI8hF,EAAKD,IAAIrgE,GAAG,IAAI6M,GAAG,IAAIwzD,EAAEjQ,WAAWoQ,EAAEthF,EAAE2tB,GAAGwzD,IAAIzgE,GAAG,IAAIY,GAAG,IAAI6/D,EAAEjQ,WAAWlrD,EAAEhmB,EAAEshB,GAAG,IAAI6/D,EAAEjQ,WAAWlxE,GAAGmhF,EAAE6mC,UAAU3yH,QAAW,QAAQ+rF,EAAED,EAAE7tE,aAAkBgT,EAAE66D,EAAEA,EAAEC,EAAE,OAAO,CAAC,GAAGD,IAAI7uF,EAAE,MAAMgN,EAA8C,GAA5CgnB,IAAIxF,KAAK4jH,IAAI/2G,IAAI2zD,EAAEthF,GAAGsmB,IAAI5F,KAAKiM,IAAIrL,IAAI0E,EAAEhmB,GAAM,QAAQohF,EAAED,EAAEu6C,aAAa,MAAUp1G,GAAJ66D,EAAE76D,GAAM9I,UAAU,CAAC2jE,EAAEC,CAAC,CAACtgE,GAAG,IAAIwgE,IAAI,IAAIt7D,EAAE,KAAK,CAACwO,MAAM8sD,EAAE7sD,IAAIzO,EAAE,MAAMlF,EAAE,KAAKA,EAAEA,GAAG,CAAC0T,MAAM,EAAEC,IAAI,EAAE,MAAM3T,EAAE,KAAKy9G,GAAG,CAAC6W,YAAY9iJ,EAAE+iJ,eAAev0H,GAAG+xG,IAAG,EAAGygB,GAAG,KAAKC,IAAG,EAAGb,GAAEv1H,EAAE,OAAOm4H,IAAI,CAAC,MAAMP,GAAI,GAAG,OACvgBrC,GAAE,MAAM7yI,MAAMi+C,EAAE,MAAMyyF,GAAGmC,GAAEqC,GAAIrC,GAAEA,GAAEnM,UAAU,QAAO,OAAOmM,IAAGY,GAAG,KAAKZ,GAAEv1H,EAAE,OAAO,IAAI7qB,EAAEy2B,EAAE,OAAO2pH,IAAG,CAAC,IAAIz1H,EAAEy1H,GAAEnlB,MAA+B,GAAvB,GAAFtwG,GAAM6qG,GAAG4qB,GAAE1mB,UAAU,IAAS,IAAF/uG,EAAM,CAAC,IAAIikE,EAAEwxD,GAAEplB,UAAU,GAAG,OAAOpsC,EAAE,CAAC,IAAIrgE,EAAEqgE,EAAEvqF,IAAI,OAAOkqB,IAAI,mBAAoBA,EAAEA,EAAE,MAAMA,EAAErV,QAAQ,KAAK,CAAC,CAAC,OAAS,KAAFyR,GAAQ,KAAK,EAAEk0H,GAAGuB,IAAGA,GAAEnlB,QAAQ,EAAE,MAAM,KAAK,EAAE4jB,GAAGuB,IAAGA,GAAEnlB,QAAQ,EAAEgkB,GAAGmB,GAAEplB,UAAUolB,IAAG,MAAM,KAAK,KAAKA,GAAEnlB,QAAQ,KAAK,MAAM,KAAK,KAAKmlB,GAAEnlB,QAAQ,KAAKgkB,GAAGmB,GAAEplB,UAAUolB,IAAG,MAAM,KAAK,EAAEnB,GAAGmB,GAAEplB,UAAUolB,IAAG,MAAM,KAAK,EAAM1B,GAAG1+I,EAAPwuB,EAAE4xH,IAAU,IAAI1U,EAAEl9G,EAAEwsG,UAAU2jB,GAAGnwH,GAAG,OACnfk9G,GAAGiT,GAAGjT,GAAG0U,GAAEA,GAAEnM,UAAU,CAAC,CAAC,MAAMwO,GAAI,GAAG,OAAOrC,GAAE,MAAM7yI,MAAMi+C,EAAE,MAAMyyF,GAAGmC,GAAEqC,GAAIrC,GAAEA,GAAEnM,UAAU,QAAO,OAAOmM,IAAkD,GAA/C7xH,EAAE09G,GAAGr9C,EAAE06C,KAAK3+G,EAAE4D,EAAEu0H,YAAY9iJ,EAAEuuB,EAAEw0H,eAAkBn0D,IAAIjkE,GAAGA,GAAGA,EAAEk9D,eAAewhD,GAAG1+G,EAAEk9D,cAAcnsB,gBAAgB/wC,GAAG,CAAC,OAAO3qB,GAAGypI,GAAG9+G,KAAKikE,EAAE5uF,EAAEkiC,WAAc,KAAR3T,EAAEvuB,EAAEmiC,OAAiB5T,EAAEqgE,GAAG,mBAAmBjkE,GAAGA,EAAEs/G,eAAer7C,EAAEjkE,EAAEu/G,aAAa19H,KAAKm/B,IAAIpd,EAAE5D,EAAEtnB,MAAMN,UAAUwrB,GAAGqgE,EAAEjkE,EAAEk9D,eAAe1+D,WAAWylE,EAAE1G,aAAanoF,QAASqqI,eAAe77G,EAAEA,EAAE67G,eAAe57G,EAAE7D,EAAE02D,YAAYt+E,OAAO2oI,EAAEl/H,KAAKm/B,IAAI3rC,EAAEkiC,MAAM1T,GAAGxuB,OAAE,IACpfA,EAAEmiC,IAAIupG,EAAEl/H,KAAKm/B,IAAI3rC,EAAEmiC,IAAI3T,IAAID,EAAEpgB,QAAQu9H,EAAE1rI,IAAIwuB,EAAExuB,EAAEA,EAAE0rI,EAAEA,EAAEl9G,GAAGA,EAAE26G,GAAGx+G,EAAE+gH,GAAGrwG,EAAE8tG,GAAGx+G,EAAE3qB,GAAGwuB,GAAG6M,IAAI,IAAI9M,EAAEs0H,YAAYt0H,EAAE47G,aAAa37G,EAAE7oB,MAAM4oB,EAAE87G,eAAe77G,EAAE3iB,QAAQ0iB,EAAE+7G,YAAYjvG,EAAE11B,MAAM4oB,EAAEg8G,cAAclvG,EAAExvB,WAAU+iF,EAAEA,EAAEq0D,eAAgBC,SAAS10H,EAAE7oB,KAAK6oB,EAAE3iB,QAAQ0iB,EAAE40H,kBAAkBzX,EAAE1rI,GAAGuuB,EAAE60H,SAASx0D,GAAGrgE,EAAEpgB,OAAOktB,EAAE11B,KAAK01B,EAAExvB,UAAU+iF,EAAEy0D,OAAOhoH,EAAE11B,KAAK01B,EAAExvB,QAAQ0iB,EAAE60H,SAASx0D,OAAQA,EAAE,GAAG,IAAIrgE,EAAE5D,EAAE4D,EAAEA,EAAErD,YAAY,IAAIqD,EAAEqwD,UAAUgQ,EAAEnsF,KAAK,CAAC+mB,QAAQ+E,EAAEzO,KAAKyO,EAAEqqC,WAAW54C,IAAIuO,EAAEsqC,YAAmD,IAAvC,mBAAoBluC,EAAE+xB,OAAO/xB,EAAE+xB,QAAY/xB,EACrf,EAAEA,EAAEikE,EAAE7rF,OAAO4nB,KAAI4D,EAAEqgE,EAAEjkE,IAAKnB,QAAQovC,WAAWrqC,EAAEzO,KAAKyO,EAAE/E,QAAQqvC,UAAUtqC,EAAEvO,GAAG,CAACugH,KAAKyL,GAAGC,GAAGD,GAAG,KAAKv1G,EAAEvd,QAAQ4X,EAAEsvH,GAAEv1H,EAAE,OAAO,IAAIF,EAAE8L,EAAE,OAAO2pH,IAAG,CAAC,IAAIzU,EAAEyU,GAAEnlB,MAAgC,GAAxB,GAAF0Q,GAAMyS,GAAGzzH,EAAEy1H,GAAEplB,UAAUolB,IAAQ,IAAFzU,EAAM,CAAC/8C,OAAE,EAAO,IAAIg9C,EAAEwU,GAAE/7I,IAAI,GAAG,OAAOunI,EAAE,CAAC,IAAIxkH,EAAEg5H,GAAE1mB,UAAiB0mB,GAAEviH,IAA8B+wD,EAAExnE,EAAE,mBAAoBwkH,EAAEA,EAAEh9C,GAAGg9C,EAAE1yH,QAAQ01E,CAAC,CAAC,CAACwxD,GAAEA,GAAEnM,UAAU,CAAC,CAAC,MAAMwO,GAAI,GAAG,OAAOrC,GAAE,MAAM7yI,MAAMi+C,EAAE,MAAMyyF,GAAGmC,GAAEqC,GAAIrC,GAAEA,GAAEnM,UAAU,QAAO,OAAOmM,IAAGA,GAAE,KAAK7Q,KAAKmQ,GAAE/2H,CAAC,MAAM8N,EAAEvd,QAAQ4X,EAAE,GAAGuvH,GAAGA,IAAG,EAAGC,GAAG7pH,EAAE8pH,GAAGvzI,OAAO,IAAIozI,GAAEv1H,EAAE,OAAOu1H,IAAGpzI,EACpfozI,GAAEnM,WAAWmM,GAAEnM,WAAW,KAAa,EAARmM,GAAEnlB,SAAU0Q,EAAEyU,IAAI7kB,QAAQ,KAAKoQ,EAAEjS,UAAU,MAAM0mB,GAAEpzI,EAAqF,GAAlE,KAAjB6d,EAAE4L,EAAE0oG,gBAAqBye,GAAG,MAAM,IAAI/yH,EAAE4L,IAAImqH,GAAGD,MAAMA,GAAG,EAAEC,GAAGnqH,GAAGkqH,GAAG,EAAE7vH,EAAEA,EAAE4oG,UAAawU,IAAI,mBAAoBA,GAAGoV,kBAAkB,IAAIpV,GAAGoV,kBAAkBrV,GAAGn9G,OAAE,EAAO,KAAsB,GAAhBA,EAAE5X,QAAQ+hH,OAAU,CAAC,MAAMwnB,GAAI,CAAW,GAAVpB,GAAG5qH,EAAEu1D,MAAQwxD,GAAG,MAAMA,IAAG,EAAG/mH,EAAEgnH,GAAGA,GAAG,KAAKhnH,EAAE,OAAG,IAAO,EAAFipH,KAAiB1P,KAAL,IAAqB,CACtX,SAASgT,KAAK,KAAK,OAAO5C,IAAG,CAAC,IAAI3pH,EAAE2pH,GAAEplB,UAAUimB,IAAI,OAAOD,KAAK,IAAa,EAARZ,GAAEnlB,OAASQ,GAAG2kB,GAAEY,MAAMC,IAAG,GAAI,KAAKb,GAAEviH,KAAKwhH,GAAG5oH,EAAE2pH,KAAI3kB,GAAG2kB,GAAEY,MAAMC,IAAG,IAAK,IAAIj0I,EAAEozI,GAAEnlB,MAAM,IAAO,IAAFjuH,IAAQkxI,GAAGznH,EAAE2pH,IAAG,IAAO,IAAFpzI,IAAQqzI,KAAKA,IAAG,EAAGtQ,GAAG,IAAG,WAAgB,OAAL4R,KAAY,IAAI,KAAIvB,GAAEA,GAAEnM,UAAU,CAAC,CAAC,SAAS0N,KAAK,GAAG,KAAKpB,GAAG,CAAC,IAAI9pH,EAAE,GAAG8pH,GAAG,GAAGA,GAAS,OAANA,GAAG,GAAUzQ,GAAGr5G,EAAE8sH,GAAG,CAAC,OAAM,CAAE,CAAC,SAASjF,GAAG7nH,EAAEzpB,GAAGwzI,GAAG/9I,KAAKuK,EAAEypB,GAAG4pH,KAAKA,IAAG,EAAGtQ,GAAG,IAAG,WAAgB,OAAL4R,KAAY,IAAI,IAAG,CAAC,SAAStD,GAAG5nH,EAAEzpB,GAAGyzI,GAAGh+I,KAAKuK,EAAEypB,GAAG4pH,KAAKA,IAAG,EAAGtQ,GAAG,IAAG,WAAgB,OAAL4R,KAAY,IAAI,IAAG,CAChe,SAAS4B,KAAK,GAAG,OAAOjD,GAAG,OAAM,EAAG,IAAI7pH,EAAE6pH,GAAW,GAARA,GAAG,KAAQ,IAAO,GAAFZ,IAAM,MAAMnyI,MAAMi+C,EAAE,MAAM,IAAIx+C,EAAE0yI,GAAEA,IAAG,GAAG,IAAI5uH,EAAE2vH,GAAGA,GAAG,GAAG,IAAI,IAAI51H,EAAE,EAAEA,EAAEiG,EAAE/tB,OAAO8nB,GAAG,EAAE,CAAC,IAAIlC,EAAEmI,EAAEjG,GAAGwQ,EAAEvK,EAAEjG,EAAE,GAAG7qB,EAAE2oB,EAAEgwH,QAAyB,GAAjBhwH,EAAEgwH,aAAQ,EAAU,mBAAoB34I,EAAE,IAAIA,GAAG,CAAC,MAAMouB,GAAG,GAAG,OAAOiN,EAAE,MAAM9tB,MAAMi+C,EAAE,MAAMyyF,GAAG5iH,EAAEjN,EAAE,CAAC,CAAY,IAAX0C,EAAE0vH,GAAGA,GAAG,GAAO31H,EAAE,EAAEA,EAAEiG,EAAE/tB,OAAO8nB,GAAG,EAAE,CAAClC,EAAEmI,EAAEjG,GAAGwQ,EAAEvK,EAAEjG,EAAE,GAAG,IAAI,IAAI2D,EAAE7F,EAAEiS,OAAOjS,EAAEgwH,QAAQnqH,GAAG,CAAC,MAAMJ,GAAG,GAAG,OAAOiN,EAAE,MAAM9tB,MAAMi+C,EAAE,MAAMyyF,GAAG5iH,EAAEjN,EAAE,CAAC,CAAC,IAAII,EAAEiI,EAAEvd,QAAQg7H,YAAY,OAAO1lH,GAAGiI,EAAEjI,EAAEylH,WAAWzlH,EAAEylH,WAAW,KAAa,EAARzlH,EAAEysG,QAAUzsG,EAAE+sG,QACjf,KAAK/sG,EAAEkrG,UAAU,MAAMlrG,EAAEiI,EAAW,OAATipH,GAAE1yI,EAAEgjI,MAAW,CAAE,CAAC,SAASwT,GAAG/sH,EAAEzpB,EAAE8jB,GAAyBmhH,GAAGx7G,EAAfzpB,EAAEuwI,GAAG9mH,EAAfzpB,EAAEowI,GAAGtsH,EAAE9jB,GAAY,IAAWA,EAAE6lI,KAAe,QAAVp8G,EAAE0qH,GAAG1qH,EAAE,MAAcqpG,GAAGrpG,EAAE,EAAEzpB,GAAGq0I,GAAG5qH,EAAEzpB,GAAG,CAC5I,SAASixI,GAAGxnH,EAAEzpB,GAAG,GAAG,IAAIypB,EAAEoH,IAAI2lH,GAAG/sH,EAAEA,EAAEzpB,QAAQ,IAAI,IAAI8jB,EAAE2F,EAAEo6E,OAAO,OAAO//E,GAAG,CAAC,GAAG,IAAIA,EAAE+M,IAAI,CAAC2lH,GAAG1yH,EAAE2F,EAAEzpB,GAAG,KAAK,CAAM,GAAG,IAAI8jB,EAAE+M,IAAI,CAAC,IAAIhT,EAAEiG,EAAE4oG,UAAU,GAAG,mBAAoB5oG,EAAE3a,KAAKm3E,0BAA0B,mBAAoBziE,EAAE8yH,oBAAoB,OAAOC,KAAKA,GAAG98I,IAAI+pB,IAAI,CAAW,IAAIlC,EAAE+0H,GAAG5sH,EAAnB2F,EAAE2mH,GAAGpwI,EAAEypB,GAAgB,GAA4B,GAAzBw7G,GAAGnhH,EAAEnI,GAAGA,EAAEkqH,KAAkB,QAAb/hH,EAAEqwH,GAAGrwH,EAAE,IAAegvG,GAAGhvG,EAAE,EAAEnI,GAAG04H,GAAGvwH,EAAEnI,QAAQ,GAAG,mBAAoBkC,EAAE8yH,oBAAoB,OAAOC,KAAKA,GAAG98I,IAAI+pB,IAAI,IAAIA,EAAE8yH,kBAAkB3wI,EAAEypB,EAAE,CAAC,MAAM4E,GAAG,CAAC,KAAK,CAAC,CAACvK,EAAEA,EAAE+/E,MAAM,CAAC,CAC3d,SAAS0xC,GAAG9rH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE4L,EAAE6rH,UAAU,OAAOz3H,GAAGA,EAAEiC,OAAO9f,GAAGA,EAAE6lI,KAAKp8G,EAAE6oG,aAAa7oG,EAAE4oG,eAAevuG,EAAEqnH,KAAI1hH,IAAIumH,GAAElsH,KAAKA,IAAI,IAAI+rH,IAAG,IAAIA,KAAM,SAAFG,MAAcA,IAAG,IAAIhxD,KAAIkzD,GAAG2C,GAAGprH,EAAE,GAAGupH,IAAIlvH,GAAGuwH,GAAG5qH,EAAEzpB,EAAE,CAAC,SAASoyI,GAAG3oH,EAAEzpB,GAAG,IAAI8jB,EAAE2F,EAAEijG,UAAU,OAAO5oG,GAAGA,EAAEhE,OAAO9f,GAAO,IAAJA,EAAE,KAAmB,IAAO,GAAhBA,EAAEypB,EAAE2tB,OAAep3C,EAAE,EAAE,IAAO,EAAFA,GAAKA,EAAE,KAAK4iI,KAAK,EAAE,GAAG,IAAIkR,KAAKA,GAAGf,IAAuB,KAAnB/yI,EAAE4yH,GAAG,UAAUkhB,OAAY9zI,EAAE,WAAW8jB,EAAE+hH,KAAe,QAAVp8G,EAAE0qH,GAAG1qH,EAAEzpB,MAAc8yH,GAAGrpG,EAAEzpB,EAAE8jB,GAAGuwH,GAAG5qH,EAAE3F,GAAG,CAUpZ,SAAS2yH,GAAGhtH,EAAEzpB,EAAE8jB,EAAEjG,GAAGzjB,KAAKy2B,IAAIpH,EAAErvB,KAAK/F,IAAIyvB,EAAE1pB,KAAKm0H,QAAQn0H,KAAKwS,MAAMxS,KAAKypG,OAAOzpG,KAAKsyH,UAAUtyH,KAAK+O,KAAK/O,KAAKioH,YAAY,KAAKjoH,KAAKqe,MAAM,EAAEre,KAAK/C,IAAI,KAAK+C,KAAKyuI,aAAa7oI,EAAE5F,KAAKU,aAAaV,KAAK+zH,cAAc/zH,KAAKmqI,YAAYnqI,KAAKiuI,cAAc,KAAKjuI,KAAKg9C,KAAKv5B,EAAEzjB,KAAK6zH,MAAM,EAAE7zH,KAAK4sI,WAAW5sI,KAAK8sI,YAAY9sI,KAAK6sI,WAAW,KAAK7sI,KAAKypI,WAAWzpI,KAAK4pI,MAAM,EAAE5pI,KAAK4zH,UAAU,IAAI,CAAC,SAAS2a,GAAGl/G,EAAEzpB,EAAE8jB,EAAEjG,GAAG,OAAO,IAAI44H,GAAGhtH,EAAEzpB,EAAE8jB,EAAEjG,EAAE,CAAC,SAAS6vH,GAAGjkH,GAAiB,UAAdA,EAAEA,EAAEh2B,aAAuBg2B,EAAEitH,iBAAiB,CAEte,SAASvP,GAAG19G,EAAEzpB,GAAG,IAAI8jB,EAAE2F,EAAEukG,UACuB,OADb,OAAOlqG,IAAGA,EAAE6kH,GAAGl/G,EAAEoH,IAAI7wB,EAAEypB,EAAEp1B,IAAIo1B,EAAE2tB,OAAQirE,YAAY54F,EAAE44F,YAAYv+F,EAAE3a,KAAKsgB,EAAEtgB,KAAK2a,EAAE4oG,UAAUjjG,EAAEijG,UAAU5oG,EAAEkqG,UAAUvkG,EAAEA,EAAEukG,UAAUlqG,IAAIA,EAAE+kH,aAAa7oI,EAAE8jB,EAAE3a,KAAKsgB,EAAEtgB,KAAK2a,EAAEmqG,MAAM,EAAEnqG,EAAEmjH,WAAW,KAAKnjH,EAAEojH,YAAY,KAAKpjH,EAAEkjH,WAAW,MAAMljH,EAAE+/G,WAAWp6G,EAAEo6G,WAAW//G,EAAEkgH,MAAMv6G,EAAEu6G,MAAMlgH,EAAElX,MAAM6c,EAAE7c,MAAMkX,EAAEukH,cAAc5+G,EAAE4+G,cAAcvkH,EAAEqqG,cAAc1kG,EAAE0kG,cAAcrqG,EAAEygH,YAAY96G,EAAE86G,YAAYvkI,EAAEypB,EAAE3uB,aAAagpB,EAAEhpB,aAAa,OAAOkF,EAAE,KAAK,CAACgkI,MAAMhkI,EAAEgkI,MAAMD,aAAa/jI,EAAE+jI,cAC3ejgH,EAAEyqG,QAAQ9kG,EAAE8kG,QAAQzqG,EAAErL,MAAMgR,EAAEhR,MAAMqL,EAAEzsB,IAAIoyB,EAAEpyB,IAAWysB,CAAC,CACxD,SAASujH,GAAG59G,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,EAAE0S,GAAG,IAAIr7B,EAAE,EAAM,GAAJ6qB,EAAE4L,EAAK,mBAAoBA,EAAEikH,GAAGjkH,KAAKz2B,EAAE,QAAQ,GAAG,iBAAkBy2B,EAAEz2B,EAAE,OAAOy2B,EAAE,OAAOA,GAAG,KAAKg7F,EAAG,OAAO+iB,GAAG1jH,EAAE7rB,SAAS0jB,EAAE0S,EAAEruB,GAAG,KAAKqlH,EAAGryH,EAAE,EAAE2oB,GAAG,GAAG,MAAM,KAAK+oG,EAAG1xH,EAAE,EAAE2oB,GAAG,EAAE,MAAM,KAAKgpG,EAAG,OAAOl7F,EAAEk/G,GAAG,GAAG7kH,EAAE9jB,EAAI,EAAF2b,IAAO0mG,YAAYsC,EAAGl7F,EAAEtgB,KAAKw7G,EAAGl7F,EAAEu6G,MAAM31G,EAAE5E,EAAE,KAAKs7F,EAAG,OAAOt7F,EAAEk/G,GAAG,GAAG7kH,EAAE9jB,EAAE2b,IAAKxS,KAAK47G,EAAGt7F,EAAE44F,YAAY0C,EAAGt7F,EAAEu6G,MAAM31G,EAAE5E,EAAE,KAAKu7F,EAAG,OAAOv7F,EAAEk/G,GAAG,GAAG7kH,EAAE9jB,EAAE2b,IAAK0mG,YAAY2C,EAAGv7F,EAAEu6G,MAAM31G,EAAE5E,EAAE,KAAK67F,EAAG,OAAOypB,GAAGjrH,EAAEnI,EAAE0S,EAAEruB,GAAG,KAAKulH,EAAG,OAAO97F,EAAEk/G,GAAG,GAAG7kH,EAAE9jB,EAAE2b,IAAK0mG,YAAYkD,EAAG97F,EAAEu6G,MAAM31G,EAAE5E,EAAE,QAAQ,GAAG,iBAChfA,GAAG,OAAOA,EAAE,OAAOA,EAAEs4D,UAAU,KAAK6iC,EAAG5xH,EAAE,GAAG,MAAMy2B,EAAE,KAAKo7F,EAAG7xH,EAAE,EAAE,MAAMy2B,EAAE,KAAKq7F,EAAG9xH,EAAE,GAAG,MAAMy2B,EAAE,KAAKw7F,EAAGjyH,EAAE,GAAG,MAAMy2B,EAAE,KAAKy7F,EAAGlyH,EAAE,GAAG6qB,EAAE,KAAK,MAAM4L,EAAE,KAAK07F,EAAGnyH,EAAE,GAAG,MAAMy2B,EAAE,MAAMlpB,MAAMi+C,EAAE,IAAI,MAAM/0B,EAAEA,SAASA,EAAE,KAAuD,OAAjDzpB,EAAE2oI,GAAG31I,EAAE8wB,EAAE9jB,EAAE2b,IAAK0mG,YAAY54F,EAAEzpB,EAAEmJ,KAAK0U,EAAE7d,EAAEgkI,MAAM31G,EAASruB,CAAC,CAAC,SAASwnI,GAAG/9G,EAAEzpB,EAAE8jB,EAAEjG,GAA2B,OAAxB4L,EAAEk/G,GAAG,EAAEl/G,EAAE5L,EAAE7d,IAAKgkI,MAAMlgH,EAAS2F,CAAC,CAAC,SAASslH,GAAGtlH,EAAEzpB,EAAE8jB,EAAEjG,GAA6C,OAA1C4L,EAAEk/G,GAAG,GAAGl/G,EAAE5L,EAAE7d,IAAKqiH,YAAYiD,EAAG77F,EAAEu6G,MAAMlgH,EAAS2F,CAAC,CAAC,SAAS29G,GAAG39G,EAAEzpB,EAAE8jB,GAA8B,OAA3B2F,EAAEk/G,GAAG,EAAEl/G,EAAE,KAAKzpB,IAAKgkI,MAAMlgH,EAAS2F,CAAC,CACnc,SAAS89G,GAAG99G,EAAEzpB,EAAE8jB,GAA8J,OAA3J9jB,EAAE2oI,GAAG,EAAE,OAAOl/G,EAAExxB,SAASwxB,EAAExxB,SAAS,GAAGwxB,EAAEp1B,IAAI2L,IAAKgkI,MAAMlgH,EAAE9jB,EAAE0sH,UAAU,CAAC0D,cAAc3mG,EAAE2mG,cAAcumB,gBAAgB,KAAKrP,eAAe79G,EAAE69G,gBAAuBtnI,CAAC,CACtL,SAAS42I,GAAGntH,EAAEzpB,EAAE8jB,GAAG1pB,KAAKy2B,IAAI7wB,EAAE5F,KAAKg2H,cAAc3mG,EAAErvB,KAAK66I,aAAa76I,KAAKk7I,UAAUl7I,KAAK8R,QAAQ9R,KAAKu8I,gBAAgB,KAAKv8I,KAAKm7G,eAAe,EAAEn7G,KAAKg0I,eAAeh0I,KAAKm1B,QAAQ,KAAKn1B,KAAK+1H,QAAQrsG,EAAE1pB,KAAKk6I,aAAa,KAAKl6I,KAAKo6I,iBAAiB,EAAEp6I,KAAK24H,WAAWF,GAAG,GAAGz4H,KAAKm6I,gBAAgB1hB,IAAI,GAAGz4H,KAAKo4H,eAAep4H,KAAK86I,cAAc96I,KAAK6wI,iBAAiB7wI,KAAKg4H,aAAah4H,KAAKk4H,YAAYl4H,KAAKi4H,eAAej4H,KAAK+3H,aAAa,EAAE/3H,KAAKq4H,cAAcI,GAAG,GAAGz4H,KAAKy8I,gCAAgC,IAAI,CAEjf,SAASC,GAAGrtH,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIlC,EAAE3b,EAAEkM,QAAQmiB,EAAEw3G,KAAK7yI,EAAE8yI,GAAGnqH,GAAG8N,EAAE,GAAG3F,EAAE,CAAqB9jB,EAAE,CAAC,GAAG+tH,GAA1BjqG,EAAEA,EAAE6hH,mBAA8B7hH,GAAG,IAAIA,EAAE+M,IAAI,MAAMtwB,MAAMi+C,EAAE,MAAM,IAAIh9B,EAAEsC,EAAE,EAAE,CAAC,OAAOtC,EAAEqP,KAAK,KAAK,EAAErP,EAAEA,EAAEkrG,UAAUn9F,QAAQ,MAAMvvB,EAAE,KAAK,EAAE,GAAG0gI,GAAGl/G,EAAErY,MAAM,CAACqY,EAAEA,EAAEkrG,UAAUqU,0CAA0C,MAAM/gI,CAAC,EAAEwhB,EAAEA,EAAEqiF,MAAM,OAAO,OAAOriF,GAAG,MAAMjhB,MAAMi+C,EAAE,KAAM,CAAC,GAAG,IAAI16B,EAAE+M,IAAI,CAAC,IAAIzP,EAAE0C,EAAE3a,KAAK,GAAGu3H,GAAGt/G,GAAG,CAAC0C,EAAE+8G,GAAG/8G,EAAE1C,EAAEI,GAAG,MAAMiI,CAAC,CAAC,CAAC3F,EAAEtC,CAAC,MAAMsC,EAAEs8G,GACrW,OADwW,OAAOpgI,EAAEuvB,QAAQvvB,EAAEuvB,QAAQzL,EAAE9jB,EAAEouI,eAAetqH,GAAE9jB,EAAE8kI,GAAGz2G,EAAEr7B,IAAKsV,QAAQ,CAACkU,QAAQiN,GAAuB,QAApB5L,OAAE,IAASA,EAAE,KAAKA,KAC1e7d,EAAE4B,SAASic,GAAGonH,GAAGtpH,EAAE3b,GAAG+lI,GAAGpqH,EAAE3oB,EAAEq7B,GAAUr7B,CAAC,CAAC,SAAS+jJ,GAAGttH,GAAe,OAAZA,EAAEA,EAAEvd,SAAcU,OAAyB6c,EAAE7c,MAAMikB,IAAoDpH,EAAE7c,MAAM8/G,WAAhF,IAA0F,CAAC,SAASsqB,GAAGvtH,EAAEzpB,GAAqB,GAAG,QAArBypB,EAAEA,EAAE0kG,gBAA2B,OAAO1kG,EAAE2kG,WAAW,CAAC,IAAItqG,EAAE2F,EAAEilH,UAAUjlH,EAAEilH,UAAU,IAAI5qH,GAAGA,EAAE9jB,EAAE8jB,EAAE9jB,CAAC,CAAC,CAAC,SAASi3I,GAAGxtH,EAAEzpB,GAAGg3I,GAAGvtH,EAAEzpB,IAAIypB,EAAEA,EAAEukG,YAAYgpB,GAAGvtH,EAAEzpB,EAAE,CAC1V,SAASk3I,GAAGztH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE,MAAMiG,GAAG,MAAMA,EAAEqzH,kBAAkBrzH,EAAEqzH,iBAAiBC,gBAAgB,KAAiK,GAA5JtzH,EAAE,IAAI8yH,GAAGntH,EAAEzpB,EAAE,MAAM8jB,IAAG,IAAKA,EAAEqsG,SAASnwH,EAAE2oI,GAAG,EAAE,KAAK,KAAK,IAAI3oI,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAG8jB,EAAE5X,QAAQlM,EAAEA,EAAE0sH,UAAU5oG,EAAEwgH,GAAGtkI,GAAGypB,EAAE80G,IAAIz6G,EAAE5X,QAAQgyH,GAAG,IAAIz0G,EAAEmoD,SAASnoD,EAAEvL,WAAWuL,GAAM5L,EAAE,IAAI4L,EAAE,EAAEA,EAAE5L,EAAE9nB,OAAO0zB,IAAI,CAAQ,IAAI9N,GAAX3b,EAAE6d,EAAE4L,IAAWshH,YAAYpvH,EAAEA,EAAE3b,EAAEgrI,SAAS,MAAMlnH,EAAE+yH,gCAAgC/yH,EAAE+yH,gCAAgC,CAAC72I,EAAE2b,GAAGmI,EAAE+yH,gCAAgCphJ,KAAKuK,EAAE2b,EAAE,CAACvhB,KAAKi9I,cAAcvzH,CAAC,CAChS,SAASwzH,GAAG7tH,GAAG,SAASA,GAAG,IAAIA,EAAEmoD,UAAU,IAAInoD,EAAEmoD,UAAU,KAAKnoD,EAAEmoD,WAAW,IAAInoD,EAAEmoD,UAAU,iCAAiCnoD,EAAEi/F,WAAW,CAElU,SAAS9qG,GAAG6L,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,IAAI0S,EAAEvK,EAAEkuH,oBAAoB,GAAG3jH,EAAE,CAAC,IAAIr7B,EAAEq7B,EAAEgpH,cAAc,GAAG,mBAAoB17H,EAAE,CAAC,IAAI6F,EAAE7F,EAAEA,EAAE,WAAW,IAAI8N,EAAEstH,GAAG/jJ,GAAGwuB,EAAEjtB,KAAKk1B,EAAE,CAAC,CAACqtH,GAAG92I,EAAEhN,EAAEy2B,EAAE9N,EAAE,KAAK,CAAmD,GAAlD0S,EAAEvK,EAAEkuH,oBAD1K,SAAYvoH,EAAEzpB,GAA0H,GAAvHA,IAA2DA,MAAvDA,EAAEypB,EAAE,IAAIA,EAAEmoD,SAASnoD,EAAEilC,gBAAgBjlC,EAAEzV,WAAW,OAAa,IAAIhU,EAAE4xE,WAAW5xE,EAAEqiD,aAAa,qBAAwBriD,EAAE,IAAI,IAAI8jB,EAAEA,EAAE2F,EAAEg/F,WAAWh/F,EAAEsiC,YAAYjoC,GAAG,OAAO,IAAIozH,GAAGztH,EAAE,EAAEzpB,EAAE,CAACmwH,SAAQ,QAAI,EAAO,CAClConB,CAAGzzH,EAAEjG,GAAG7qB,EAAEq7B,EAAEgpH,cAAiB,mBAAoB17H,EAAE,CAAC,IAAIyF,EAAEzF,EAAEA,EAAE,WAAW,IAAI8N,EAAEstH,GAAG/jJ,GAAGouB,EAAE7sB,KAAKk1B,EAAE,CAAC,CAAC4rH,IAAG,WAAWyB,GAAG92I,EAAEhN,EAAEy2B,EAAE9N,EAAE,GAAE,CAAC,OAAOo7H,GAAG/jJ,EAAE,CAGpG,SAASwkJ,GAAG/tH,EAAEzpB,GAAG,IAAI8jB,EAAE,EAAEhuB,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIwhJ,GAAGt3I,GAAG,MAAMO,MAAMi+C,EAAE,MAAM,OATnV,SAAY/0B,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE,EAAE/nB,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACisF,SAASyiC,EAAGnwH,IAAI,MAAMwpB,EAAE,KAAK,GAAGA,EAAE5lB,SAASwxB,EAAE2mG,cAAcpwH,EAAEsnI,eAAexjH,EAAE,CASgL2zH,CAAGhuH,EAAEzpB,EAAE,KAAK8jB,EAAE,CA1BxWqvH,GAAG,SAAS1pH,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE7d,EAAEgkI,MAAM,GAAG,OAAOv6G,EAAE,GAAGA,EAAE4+G,gBAAgBroI,EAAE6oI,cAAcxI,GAAEn0H,QAAQ+3H,IAAG,MAAQ,IAAG,IAAKngH,EAAEjG,GAAoC,CAAO,OAANomH,IAAG,EAAUjkI,EAAE6wB,KAAK,KAAK,EAAEs9G,GAAGnuI,GAAGipI,KAAK,MAAM,KAAK,EAAEhB,GAAGjoI,GAAG,MAAM,KAAK,EAAE0gI,GAAG1gI,EAAEmJ,OAAO23H,GAAG9gI,GAAG,MAAM,KAAK,EAAE+nI,GAAG/nI,EAAEA,EAAE0sH,UAAU0D,eAAe,MAAM,KAAK,GAAGvyG,EAAE7d,EAAEqoI,cAAchyI,MAAM,IAAIslB,EAAE3b,EAAEmJ,KAAKrU,SAASqrI,GAAEkD,GAAG1nH,EAAEgoH,eAAehoH,EAAEgoH,cAAc9lH,EAAE,MAAM,KAAK,GAAG,GAAG,OAAO7d,EAAEmuH,cAAe,OAAG,IAAKrqG,EAAE9jB,EAAE4M,MAAMi3H,YAAmB8K,GAAGllH,EAAEzpB,EAAE8jB,IAAGq8G,GAAEgI,GAAY,EAAVA,GAAEj8H,SAA8B,QAAnBlM,EAAEwtI,GAAG/jH,EAAEzpB,EAAE8jB,IAC/e9jB,EAAEuuH,QAAQ,MAAK4R,GAAEgI,GAAY,EAAVA,GAAEj8H,SAAW,MAAM,KAAK,GAA0B,GAAvB2R,EAAE,IAAKiG,EAAE9jB,EAAE6jI,YAAe,IAAa,GAARp6G,EAAEwkG,OAAU,CAAC,GAAGpwG,EAAE,OAAO0xH,GAAG9lH,EAAEzpB,EAAE8jB,GAAG9jB,EAAEiuH,OAAO,EAAE,CAA6F,GAA1E,QAAlBtyG,EAAE3b,EAAEmuH,iBAAyBxyG,EAAEmiF,UAAU,KAAKniF,EAAEiE,KAAK,KAAKjE,EAAEqrH,WAAW,MAAM7G,GAAEgI,GAAEA,GAAEj8H,SAAY2R,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO7d,EAAEgkI,MAAM,EAAE6J,GAAGpkH,EAAEzpB,EAAE8jB,GAAG,OAAO0pH,GAAG/jH,EAAEzpB,EAAE8jB,EAAE,CAD7LmgH,GAAG,IAAa,MAARx6G,EAAEwkG,MACmL,MAAMgW,IAAG,EAAa,OAAVjkI,EAAEgkI,MAAM,EAAShkI,EAAE6wB,KAAK,KAAK,EAA+I,GAA7IhT,EAAE7d,EAAEmJ,KAAK,OAAOsgB,IAAIA,EAAEukG,UAAU,KAAKhuH,EAAEguH,UAAU,KAAKhuH,EAAEiuH,OAAO,GAAGxkG,EAAEzpB,EAAE6oI,aAAaltH,EAAE4kH,GAAGvgI,EAAEma,GAAEjO,SAAS43H,GAAG9jI,EAAE8jB,GAAGnI,EAAEmuH,GAAG,KAAK9pI,EAAE6d,EAAE4L,EAAE9N,EAAEmI,GAAG9jB,EAAEiuH,OAAO,EAAK,iBACretyG,GAAG,OAAOA,GAAG,mBAAoBA,EAAEvS,aAAQ,IAASuS,EAAEomE,SAAS,CAAiD,GAAhD/hF,EAAE6wB,IAAI,EAAE7wB,EAAEmuH,cAAc,KAAKnuH,EAAEukI,YAAY,KAAQ7D,GAAG7iH,GAAG,CAAC,IAAIwQ,GAAE,EAAGyyG,GAAG9gI,EAAE,MAAMquB,GAAE,EAAGruB,EAAEmuH,cAAc,OAAOxyG,EAAE4wB,YAAO,IAAS5wB,EAAE4wB,MAAM5wB,EAAE4wB,MAAM,KAAK+3F,GAAGtkI,GAAG,IAAIhN,EAAE6qB,EAAE0iE,yBAAyB,mBAAoBvtF,GAAGwyI,GAAGxlI,EAAE6d,EAAE7qB,EAAEy2B,GAAG9N,EAAE2qH,QAAQb,GAAGzlI,EAAE0sH,UAAU/wG,EAAEA,EAAEgqH,gBAAgB3lI,EAAEwmI,GAAGxmI,EAAE6d,EAAE4L,EAAE3F,GAAG9jB,EAAEkuI,GAAG,KAAKluI,EAAE6d,GAAE,EAAGwQ,EAAEvK,EAAE,MAAM9jB,EAAE6wB,IAAI,EAAEy8G,GAAG,KAAKttI,EAAE2b,EAAEmI,GAAG9jB,EAAEA,EAAE4M,MAAM,OAAO5M,EAAE,KAAK,GAAG2b,EAAE3b,EAAEqiH,YAAY54F,EAAE,CAChX,OADiX,OAAOA,IAAIA,EAAEukG,UAAU,KAAKhuH,EAAEguH,UAAU,KAAKhuH,EAAEiuH,OAAO,GACnfxkG,EAAEzpB,EAAE6oI,aAAuBltH,GAAV0S,EAAE1S,EAAE0qG,OAAU1qG,EAAEyqG,UAAUpmH,EAAEmJ,KAAKwS,EAAE0S,EAAEruB,EAAE6wB,IAOxD,SAAYpH,GAAG,GAAG,mBAAoBA,EAAE,OAAOikH,GAAGjkH,GAAG,EAAE,EAAE,GAAG,MAASA,EAAY,CAAc,IAAbA,EAAEA,EAAEs4D,YAAgB+iC,EAAG,OAAO,GAAG,GAAGr7F,IAAIw7F,EAAG,OAAO,EAAE,CAAC,OAAO,CAAC,CAPnFyyB,CAAG/7H,GAAG8N,EAAE25G,GAAGznH,EAAE8N,GAAU4E,GAAG,KAAK,EAAEruB,EAAE4tI,GAAG,KAAK5tI,EAAE2b,EAAE8N,EAAE3F,GAAG,MAAM2F,EAAE,KAAK,EAAEzpB,EAAEiuI,GAAG,KAAKjuI,EAAE2b,EAAE8N,EAAE3F,GAAG,MAAM2F,EAAE,KAAK,GAAGzpB,EAAEutI,GAAG,KAAKvtI,EAAE2b,EAAE8N,EAAE3F,GAAG,MAAM2F,EAAE,KAAK,GAAGzpB,EAAEytI,GAAG,KAAKztI,EAAE2b,EAAEynH,GAAGznH,EAAExS,KAAKsgB,GAAG5L,EAAEiG,GAAG,MAAM2F,EAAE,MAAMlpB,MAAMi+C,EAAE,IAAI7iC,EAAE,IAAK,CAAC,OAAO3b,EAAE,KAAK,EAAE,OAAO6d,EAAE7d,EAAEmJ,KAAKwS,EAAE3b,EAAE6oI,aAA2C+E,GAAGnkH,EAAEzpB,EAAE6d,EAArClC,EAAE3b,EAAEqiH,cAAcxkG,EAAElC,EAAEynH,GAAGvlH,EAAElC,GAAcmI,GAAG,KAAK,EAAE,OAAOjG,EAAE7d,EAAEmJ,KAAKwS,EAAE3b,EAAE6oI,aAA2CoF,GAAGxkH,EAAEzpB,EAAE6d,EAArClC,EAAE3b,EAAEqiH,cAAcxkG,EAAElC,EAAEynH,GAAGvlH,EAAElC,GAAcmI,GAAG,KAAK,EAAwB,GAAtBqqH,GAAGnuI,GAAG6d,EAAE7d,EAAEukI,YAAe,OAAO96G,GAAG,OAAO5L,EAAE,MAAMtd,MAAMi+C,EAAE,MAC3Y,GAA9G3gC,EAAE7d,EAAE6oI,aAA+BltH,EAAE,QAApBA,EAAE3b,EAAEmuH,eAAyBxyG,EAAEa,QAAQ,KAAKqoH,GAAGp7G,EAAEzpB,GAAGmlI,GAAGnlI,EAAE6d,EAAE,KAAKiG,IAAGjG,EAAE7d,EAAEmuH,cAAc3xG,WAAeb,EAAEstH,KAAKjpI,EAAEwtI,GAAG/jH,EAAEzpB,EAAE8jB,OAAO,CAAuF,IAArEuK,GAAjB1S,EAAE3b,EAAE0sH,WAAiByD,WAAQqY,GAAGjJ,GAAGv/H,EAAE0sH,UAAU0D,cAAcp8G,YAAYu0H,GAAGvoI,EAAEquB,EAAEo6G,IAAG,GAAMp6G,EAAE,CAAqC,GAAG,OAAvC5E,EAAE9N,EAAEk7H,iCAA2C,IAAIl7H,EAAE,EAAEA,EAAE8N,EAAE1zB,OAAO4lB,GAAG,GAAE0S,EAAE5E,EAAE9N,IAAKytH,8BAA8B3/G,EAAE9N,EAAE,GAAGutH,GAAGzzI,KAAK44B,GAAoB,IAAjBvK,EAAE4jH,GAAG1nI,EAAE,KAAK6d,EAAEiG,GAAO9jB,EAAE4M,MAAMkX,EAAEA,GAAGA,EAAEmqG,OAAe,EAATnqG,EAAEmqG,MAAS,KAAKnqG,EAAEA,EAAEyqG,OAAO,MAAM+e,GAAG7jH,EAAEzpB,EAAE6d,EAAEiG,GAAGmlH,KAAKjpI,EAAEA,EAAE4M,KAAK,CAAC,OAAO5M,EAAE,KAAK,EAAE,OAAOioI,GAAGjoI,GAAG,OAAOypB,GACnfq/G,GAAG9oI,GAAG6d,EAAE7d,EAAEmJ,KAAKwS,EAAE3b,EAAE6oI,aAAax6G,EAAE,OAAO5E,EAAEA,EAAE4+G,cAAc,KAAKr1I,EAAE2oB,EAAE1jB,SAASknI,GAAGthH,EAAElC,GAAG3oB,EAAE,KAAK,OAAOq7B,GAAG8wG,GAAGthH,EAAEwQ,KAAKruB,EAAEiuH,OAAO,IAAI+f,GAAGvkH,EAAEzpB,GAAGstI,GAAG7jH,EAAEzpB,EAAEhN,EAAE8wB,GAAG9jB,EAAE4M,MAAM,KAAK,EAAE,OAAO,OAAO6c,GAAGq/G,GAAG9oI,GAAG,KAAK,KAAK,GAAG,OAAO2uI,GAAGllH,EAAEzpB,EAAE8jB,GAAG,KAAK,EAAE,OAAOikH,GAAG/nI,EAAEA,EAAE0sH,UAAU0D,eAAevyG,EAAE7d,EAAE6oI,aAAa,OAAOp/G,EAAEzpB,EAAE4M,MAAM66H,GAAGznI,EAAE,KAAK6d,EAAEiG,GAAGwpH,GAAG7jH,EAAEzpB,EAAE6d,EAAEiG,GAAG9jB,EAAE4M,MAAM,KAAK,GAAG,OAAOiR,EAAE7d,EAAEmJ,KAAKwS,EAAE3b,EAAE6oI,aAA2C0E,GAAG9jH,EAAEzpB,EAAE6d,EAArClC,EAAE3b,EAAEqiH,cAAcxkG,EAAElC,EAAEynH,GAAGvlH,EAAElC,GAAcmI,GAAG,KAAK,EAAE,OAAOwpH,GAAG7jH,EAAEzpB,EAAEA,EAAE6oI,aAAa/kH,GAAG9jB,EAAE4M,MAAM,KAAK,EACtc,KAAK,GAAG,OAAO0gI,GAAG7jH,EAAEzpB,EAAEA,EAAE6oI,aAAa5wI,SAAS6rB,GAAG9jB,EAAE4M,MAAM,KAAK,GAAG6c,EAAE,CAAC5L,EAAE7d,EAAEmJ,KAAKrU,SAAS6mB,EAAE3b,EAAE6oI,aAAa71I,EAAEgN,EAAEqoI,cAAch6G,EAAE1S,EAAEtlB,MAAM,IAAImrB,EAAExhB,EAAEmJ,KAAKrU,SAAiD,GAAxCqrI,GAAEkD,GAAG7hH,EAAEmiH,eAAeniH,EAAEmiH,cAAct1G,EAAK,OAAOr7B,EAAE,GAAGwuB,EAAExuB,EAAEqD,MAA0G,IAApGg4B,EAAE0tG,GAAGv6G,EAAE6M,GAAG,EAAwF,GAArF,mBAAoBxQ,EAAE85H,sBAAsB95H,EAAE85H,sBAAsBn2H,EAAE6M,GAAG,cAAqB,GAAGr7B,EAAEiF,WAAW0jB,EAAE1jB,WAAWooI,GAAEn0H,QAAQ,CAAClM,EAAEwtI,GAAG/jH,EAAEzpB,EAAE8jB,GAAG,MAAM2F,CAAC,OAAO,IAAc,QAAVjI,EAAExhB,EAAE4M,SAAiB4U,EAAEqiF,OAAO7jG,GAAG,OAAOwhB,GAAG,CAAC,IAAIJ,EAAEI,EAAE1mB,aAAa,GAAG,OAAOsmB,EAAE,CAACpuB,EAAEwuB,EAAE5U,MAAM,IAAI,IAAIoV,EACtfZ,EAAE2iH,aAAa,OAAO/hH,GAAG,CAAC,GAAGA,EAAEuN,UAAU1R,GAAG,IAAKmE,EAAEmiH,aAAa91G,GAAG,CAAC,IAAI7M,EAAEqP,OAAM7O,EAAE8iH,IAAI,EAAEhhH,GAAGA,IAAK+M,IAAI,EAAEo0G,GAAGzjH,EAAEQ,IAAIR,EAAEwiH,OAAOlgH,EAAgB,QAAd9B,EAAER,EAAEwsG,aAAqBhsG,EAAEgiH,OAAOlgH,GAAG8/G,GAAGpiH,EAAEqiF,OAAO//E,GAAG1C,EAAE4iH,OAAOlgH,EAAE,KAAK,CAAC9B,EAAEA,EAAEb,IAAI,CAAC,MAAMnuB,EAAE,KAAKwuB,EAAEqP,KAAIrP,EAAErY,OAAOnJ,EAAEmJ,KAAK,KAAaqY,EAAE5U,MAAM,GAAG,OAAO5Z,EAAEA,EAAE6wG,OAAOriF,OAAO,IAAIxuB,EAAEwuB,EAAE,OAAOxuB,GAAG,CAAC,GAAGA,IAAIgN,EAAE,CAAChN,EAAE,KAAK,KAAK,CAAa,GAAG,QAAfwuB,EAAExuB,EAAEu7H,SAAoB,CAAC/sG,EAAEqiF,OAAO7wG,EAAE6wG,OAAO7wG,EAAEwuB,EAAE,KAAK,CAACxuB,EAAEA,EAAE6wG,MAAM,CAACriF,EAAExuB,CAAC,CAACs6I,GAAG7jH,EAAEzpB,EAAE2b,EAAE1jB,SAAS6rB,GAAG9jB,EAAEA,EAAE4M,KAAK,CAAC,OAAO5M,EAAE,KAAK,EAAE,OAAO2b,EAAE3b,EAAEmJ,KAAsB0U,GAAjBwQ,EAAEruB,EAAE6oI,cAAiB5wI,SAAS6rI,GAAG9jI,EAAE8jB,GACndjG,EAAEA,EADodlC,EAAEuoH,GAAGvoH,EACpf0S,EAAEupH,wBAA8B53I,EAAEiuH,OAAO,EAAEqf,GAAG7jH,EAAEzpB,EAAE6d,EAAEiG,GAAG9jB,EAAE4M,MAAM,KAAK,GAAG,OAAgByhB,EAAE+0G,GAAXznH,EAAE3b,EAAEmJ,KAAYnJ,EAAE6oI,cAA6B4E,GAAGhkH,EAAEzpB,EAAE2b,EAAtB0S,EAAE+0G,GAAGznH,EAAExS,KAAKklB,GAAcxQ,EAAEiG,GAAG,KAAK,GAAG,OAAO6pH,GAAGlkH,EAAEzpB,EAAEA,EAAEmJ,KAAKnJ,EAAE6oI,aAAahrH,EAAEiG,GAAG,KAAK,GAAG,OAAOjG,EAAE7d,EAAEmJ,KAAKwS,EAAE3b,EAAE6oI,aAAaltH,EAAE3b,EAAEqiH,cAAcxkG,EAAElC,EAAEynH,GAAGvlH,EAAElC,GAAG,OAAO8N,IAAIA,EAAEukG,UAAU,KAAKhuH,EAAEguH,UAAU,KAAKhuH,EAAEiuH,OAAO,GAAGjuH,EAAE6wB,IAAI,EAAE6vG,GAAG7iH,IAAI4L,GAAE,EAAGq3G,GAAG9gI,IAAIypB,GAAE,EAAGq6G,GAAG9jI,EAAE8jB,GAAGuiH,GAAGrmI,EAAE6d,EAAElC,GAAG6qH,GAAGxmI,EAAE6d,EAAElC,EAAEmI,GAAGoqH,GAAG,KAAKluI,EAAE6d,GAAE,EAAG4L,EAAE3F,GAAG,KAAK,GAAG,OAAOyrH,GAAG9lH,EAAEzpB,EAAE8jB,GAAG,KAAK,GAAoB,KAAK,GAAG,OAAO+pH,GAAGpkH,EAAEzpB,EAAE8jB,GAAG,MAAMvjB,MAAMi+C,EAAE,IAAIx+C,EAAE6wB,KAC/e,EAYAqmH,GAAGzjJ,UAAU2V,OAAO,SAASqgB,GAAGqtH,GAAGrtH,EAAErvB,KAAKi9I,cAAc,KAAK,KAAK,EAAEH,GAAGzjJ,UAAUokJ,QAAQ,WAAW,IAAIpuH,EAAErvB,KAAKi9I,cAAcr3I,EAAEypB,EAAE2mG,cAAc0mB,GAAG,KAAKrtH,EAAE,MAAK,WAAWzpB,EAAEu+H,IAAI,IAAI,GAAE,EAEkJ7P,GAAG,SAASjlG,GAAM,KAAKA,EAAEoH,MAAgBk1G,GAAGt8G,EAAE,EAAVo8G,MAAeoR,GAAGxtH,EAAE,GAAG,EAAEklG,GAAG,SAASllG,GAAM,KAAKA,EAAEoH,MAAgBk1G,GAAGt8G,EAAE,SAAVo8G,MAAsBoR,GAAGxtH,EAAE,UAAU,EAC7cmlG,GAAG,SAASnlG,GAAG,GAAG,KAAKA,EAAEoH,IAAI,CAAC,IAAI7wB,EAAE6lI,KAAK/hH,EAAEgiH,GAAGr8G,GAAGs8G,GAAGt8G,EAAE3F,EAAE9jB,GAAGi3I,GAAGxtH,EAAE3F,EAAE,CAAC,EAAE+qG,GAAG,SAASplG,EAAEzpB,GAAG,OAAOA,GAAG,EAChGqsH,GAAG,SAAS5iG,EAAEzpB,EAAE8jB,GAAG,OAAO9jB,GAAG,IAAK,QAAyB,GAAjBqnH,GAAG59F,EAAE3F,GAAG9jB,EAAE8jB,EAAEviB,KAAQ,UAAUuiB,EAAE3a,MAAM,MAAMnJ,EAAE,CAAC,IAAI8jB,EAAE2F,EAAE3F,EAAE5F,YAAY4F,EAAEA,EAAE5F,WAAsF,IAA3E4F,EAAEA,EAAE8yC,iBAAiB,cAActvD,KAAKC,UAAU,GAAGvH,GAAG,mBAAuBA,EAAE,EAAEA,EAAE8jB,EAAE/tB,OAAOiK,IAAI,CAAC,IAAI6d,EAAEiG,EAAE9jB,GAAG,GAAG6d,IAAI4L,GAAG5L,EAAEi6H,OAAOruH,EAAEquH,KAAK,CAAC,IAAIn8H,EAAEgxG,GAAG9uG,GAAG,IAAIlC,EAAE,MAAMpb,MAAMi+C,EAAE,KAAKqoE,EAAGhpG,GAAGwpG,GAAGxpG,EAAElC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAK,WAAWisG,GAAGn+F,EAAE3F,GAAG,MAAM,IAAK,SAAmB,OAAV9jB,EAAE8jB,EAAEztB,QAAe6xB,GAAGuB,IAAI3F,EAAElY,SAAS5L,GAAE,GAAI,EAAE8sH,GAAGsoB,GAC9ZroB,GAAG,SAAStjG,EAAEzpB,EAAE8jB,EAAEjG,EAAElC,GAAG,IAAI0S,EAAEqkH,GAAEA,IAAG,EAAE,IAAI,OAAO5P,GAAG,GAAGr5G,EAAElvB,KAAK,KAAKyF,EAAE8jB,EAAEjG,EAAElC,GAAG,CAAC,QAAY,KAAJ+2H,GAAErkH,KAAU6kH,KAAKlQ,KAAK,CAAC,EAAEhW,GAAG,WAAW,IAAO,GAAF0lB,MAhD/H,WAAc,GAAG,OAAOgB,GAAG,CAAC,IAAIjqH,EAAEiqH,GAAGA,GAAG,KAAKjqH,EAAExzB,SAAQ,SAASwzB,GAAGA,EAAE2oG,cAAc,GAAG3oG,EAAE0oG,aAAakiB,GAAG5qH,EAAEu1D,KAAI,GAAE,CAACgkD,IAAI,CAgDkB+U,GAAKpD,KAAK,EAAE1nB,GAAG,SAASxjG,EAAEzpB,GAAG,IAAI8jB,EAAE4uH,GAAEA,IAAG,EAAE,IAAI,OAAOjpH,EAAEzpB,EAAE,CAAC,QAAY,KAAJ0yI,GAAE5uH,KAAUovH,KAAKlQ,KAAK,CAAC,EAAyI,IAAIgV,GAAG,CAACC,OAAO,CAACxrB,GAAGyO,GAAGvO,GAAGC,GAAGC,GAAG8nB,GAAG,CAACzoI,SAAQ,KAAMgsI,GAAG,CAACC,wBAAwBpoB,GAAGqoB,WAAW,EAAEx3I,QAAQ,SAASy3I,oBAAoB,aACveC,GAAG,CAACF,WAAWF,GAAGE,WAAWx3I,QAAQs3I,GAAGt3I,QAAQy3I,oBAAoBH,GAAGG,oBAAoBE,eAAeL,GAAGK,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqB30B,EAAGilB,uBAAuB2P,wBAAwB,SAASxvH,GAAW,OAAO,QAAfA,EAAE6kG,GAAG7kG,IAAmB,KAAKA,EAAEijG,SAAS,EAAEyrB,wBAAwBD,GAAGC,yBAR/I,WAAc,OAAO,IAAI,EASjXe,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,MAAM,GAAG,oBAAqBC,+BAA+B,CAAC,IAAIC,GAAGD,+BAA+B,IAAIC,GAAG1xF,YAAY0xF,GAAGC,cAAc,IAAIxY,GAAGuY,GAAGE,OAAOpB,IAAIpX,GAAGsY,EAAE,CAAC,MAAM/vH,IAAG,CAAC,CAACx3B,EAAQqyH,mDAAmD0zB,GAAG/lJ,EAAQqjB,aAAakiI,GACnXvlJ,EAAQwpD,YAAY,SAAShyB,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAEmoD,SAAS,OAAOnoD,EAAE,IAAIzpB,EAAEypB,EAAEk8G,gBAAgB,QAAG,IAAS3lI,EAAE,CAAC,GAAG,mBAAoBypB,EAAErgB,OAAO,MAAM7I,MAAMi+C,EAAE,MAAM,MAAMj+C,MAAMi+C,EAAE,IAAItqD,OAAOiB,KAAKs0B,IAAK,CAAqC,OAA1B,QAAVA,EAAE6kG,GAAGtuH,IAAc,KAAKypB,EAAEijG,SAAkB,EAAEz6H,EAAQ0nJ,UAAU,SAASlwH,EAAEzpB,GAAG,IAAI8jB,EAAE4uH,GAAE,GAAG,IAAO,GAAF5uH,GAAM,OAAO2F,EAAEzpB,GAAG0yI,IAAG,EAAE,IAAI,GAAGjpH,EAAE,OAAOq5G,GAAG,GAAGr5G,EAAElvB,KAAK,KAAKyF,GAAG,CAAC,QAAQ0yI,GAAE5uH,EAAEk/G,IAAI,CAAC,EAAE/wI,EAAQk+H,QAAQ,SAAS1mG,EAAEzpB,EAAE8jB,GAAG,IAAIwzH,GAAGt3I,GAAG,MAAMO,MAAMi+C,EAAE,MAAM,OAAO5gC,GAAG,KAAK6L,EAAEzpB,GAAE,EAAG8jB,EAAE,EACrd7xB,EAAQmX,OAAO,SAASqgB,EAAEzpB,EAAE8jB,GAAG,IAAIwzH,GAAGt3I,GAAG,MAAMO,MAAMi+C,EAAE,MAAM,OAAO5gC,GAAG,KAAK6L,EAAEzpB,GAAE,EAAG8jB,EAAE,EAAE7xB,EAAQg2D,uBAAuB,SAASx+B,GAAG,IAAI6tH,GAAG7tH,GAAG,MAAMlpB,MAAMi+C,EAAE,KAAK,QAAO/0B,EAAEuoH,sBAAqBqD,IAAG,WAAWz3H,GAAG,KAAK,KAAK6L,GAAE,GAAG,WAAWA,EAAEuoH,oBAAoB,KAAKvoH,EAAE80G,IAAI,IAAI,GAAE,KAAG,EAAM,EAAEtsI,EAAQ2nJ,wBAAwBxE,GAAGnjJ,EAAQ4nJ,sBAAsB,SAASpwH,EAAEzpB,GAAG,OAAOw3I,GAAG/tH,EAAEzpB,EAAE,EAAElK,UAAUC,aAAQ,IAASD,UAAU,GAAGA,UAAU,GAAG,KAAK,EACnb7D,EAAQo3D,oCAAoC,SAAS5/B,EAAEzpB,EAAE8jB,EAAEjG,GAAG,IAAIy5H,GAAGxzH,GAAG,MAAMvjB,MAAMi+C,EAAE,MAAM,GAAG,MAAM/0B,QAAG,IAASA,EAAEk8G,gBAAgB,MAAMplI,MAAMi+C,EAAE,KAAK,OAAO5gC,GAAG6L,EAAEzpB,EAAE8jB,GAAE,EAAGjG,EAAE,EAAE5rB,EAAQ2O,QAAQ,wCCtS7L,SAASk5I,IAEP,GAC4C,oBAAnCP,gCAC4C,mBAA5CA,+BAA+BO,SAcxC,IAEEP,+BAA+BO,SAASA,EAC1C,CAAE,MAAO57I,GAGPpH,QAAQC,MAAMmH,EAChB,CACF,CAKE47I,GACA5nJ,EAAOD,QAAU,EAAjB,6EC/BE8nJ,EAUAC,oCATJ,SAAWD,GACPA,EAAwB,WAAI,gBAC5BA,EAAwB,WAAI,gBAC5BA,EAA0B,aAAI,kBAC9BA,EAAwB,WAAI,gBAG5BA,EAA+B,kBAAI,sBACtC,CARD,CAQGA,IAAgBA,EAAc,CAAC,IAElC,SAAWC,GACPA,EAA6B,WAAI,qBACjCA,EAA6B,WAAI,qBACjCA,EAA+B,aAAI,uBACnCA,EAA6B,WAAI,oBACpC,CALD,CAKGA,IAAqBA,EAAmB,CAAC,IACrC,IAAIC,EAAuB,SAAUxjJ,GACxC,IAAIyjJ,GAAO,SACP7jJ,EAAQI,EAAMJ,MAAO4B,EAAWxB,EAAMwB,SAAUkiJ,GAAc,IAAArtD,QAAOr2F,EAAO,CAAC,QAAS,aAC1F,OAAOwB,EAASiiJ,EAAKE,oBAAoB/jJ,EAAO8jJ,GACpD,EAQO,SAASE,EAAsC94I,GAClD,IAAI+4I,EAAiB,SAAU7jJ,GAC3B,IAAIyjJ,GAAO,SACP7jJ,EAAQI,EAAMJ,MAAO4B,EAAWxB,EAAMwB,SAAUkiJ,GAAc,IAAArtD,QAAOr2F,EAAO,CAAC,QAAS,aACtFiN,EAAwB,iBAAVrN,EAAqB,IAAIsG,KAAKtG,GAAS,GAAKA,EAI9D,OAAO4B,EAHuB,eAATsJ,EACf24I,EAAKK,kBAAkB72I,EAAMy2I,GAC7BD,EAAKM,kBAAkB92I,EAAMy2I,GAEvC,EAEA,OADAG,EAAepiJ,YAAc8hJ,EAAiBz4I,GACvC+4I,CACX,CACO,SAASG,EAAyBl5I,GACrC,IAAIwZ,EAAY,SAAUtkB,GACtB,IAAIyjJ,GAAO,SACP7jJ,EAAQI,EAAMJ,MAAO4B,EAAWxB,EAAMwB,SAAUkiJ,GAAc,IAAArtD,QAAOr2F,EAEvE,CAAC,QAAS,aAERikJ,EAAiBR,EAAK34I,GAAMlL,EAAO8jJ,GACvC,GAAwB,mBAAbliJ,EACP,OAAOA,EAASyiJ,GAEpB,IAAIC,EAAOT,EAAKU,eAAiB,WACjC,OAAO,gBAAoBD,EAAM,KAAMD,EAC3C,EAEA,OADA3/H,EAAU7iB,YAAc6hJ,EAAYx4I,GAC7BwZ,CACX,CCnDO,SAAS8/H,EAAeC,GAC3B,OAAOA,CACX,CACO,SAASC,EAAcniE,GAC1B,OAAOA,CACX,CDUAqhE,EAAqB/hJ,YAAc,uBAMnC+hJ,EAAqB/hJ,YAAc,uBCdRuiJ,EAAyB,cACzBA,EAAyB,cAD7C,IAEIO,EAAkBP,EAAyB,gBAC3BA,EAAyB,cAClBA,EAAyB,qBAC3BJ,EAAsC,cACtCA,EAAsC,yICdlEY,EAAgC,oBAAXloJ,QAA2BA,OAAOmoJ,qCAGrD,gBAAoB,MAFpBnoJ,OAAOooJ,yBACJpoJ,OAAOooJ,uBAAyB,gBAAoB,OAEzDC,EAAeH,EAAY5+F,SACpBrkD,EAD6CijJ,EAAYjjJ,SAEzDqjJ,EAAUJ,EACN,SAASK,EAAWlkE,EAAkBj8E,GACjD,IAboB4f,EAahBgT,EAAK5yB,GAAW,CAAC,EAAGy3G,EAAK7kF,EAAGwtH,aAAcA,OAAsB,IAAP3oC,EAAgB,OAASA,EAAI+F,EAAK5qF,EAAG32B,WAAYA,OAAoB,IAAPuhH,GAAwBA,EAAIC,EAAK7qF,EAAGytH,eAAgBA,OAAwB,IAAP5iC,GAAuBA,EACnN6iC,EAAW,SAAUhlJ,GAAS,OAAQ,gBAAoB2kJ,EAAc,MAAM,SAAUlB,GACxF,IAAInsH,EACAytH,IACA,QAAqBtB,GAEzB,IAAIwB,IAAY3tH,EAAK,CAAC,GAAMwtH,GAAgBrB,EAAMnsH,GAClD,OAAQ,gBAAoBqpD,GAAkB,IAAAxjD,UAAS,CAAC,EAAGn9B,EAAOilJ,EAAU,CAAErkJ,IAAKD,EAAaX,EAAMklJ,aAAe,OACzH,GAAK,EAGL,OAFAF,EAASvjJ,YAAc,cAAcwE,QAtBjBqe,EAsBuCq8D,GArB1Cl/E,aAAe6iB,EAAUxZ,MAAQ,YAqB4B,KAC9Ek6I,EAASrkE,iBAAmBA,EACxBhgF,EACO,IAAqB,cAAiB,SAAUX,EAAOY,GAAO,OAAQ,gBAAoBokJ,GAAU,IAAA7nH,UAAS,CAAC,EAAGn9B,EAAO,CAAEklJ,aAActkJ,IAAU,IAAI+/E,GAE1J,IAAqBqkE,EAAUrkE,EAC1C,iGCjBA,SAASwkE,EAAiBnlJ,GACtB,IAAIyjJ,GAAO,SACPl9F,EAAgBk9F,EAAKl9F,cAAejvB,EAAKmsH,EAAKU,cAAeD,OAAc,IAAP5sH,EAAgB,WAAiBA,EACrG56B,EAAKsD,EAAMtD,GAAI4e,EAActb,EAAMsb,YAAa8pI,EAAiBplJ,EAAMolJ,eAAgBx6H,EAAS5qB,EAAM4qB,OAAQppB,EAAWxB,EAAMwB,SAAU26G,EAAKn8G,EAAM3D,QAASioB,OAAmB,IAAP63F,EAAgB+nC,EAAO/nC,EAEhM1wD,EAAQlF,EADK,CAAE7pD,GAAIA,EAAI4e,YAAaA,EAAa8pI,eAAgBA,GAC/Bx6H,EAAQ,CAC1CiW,UAHgN7gC,EAAM6gC,YAK1N,MAAwB,mBAAbr/B,EACAA,EAASqH,MAAMwgC,QAAQoiB,GAASA,EAAQ,CAACA,IAEhDnnC,EACO,gBAAoBA,EAAW,KAAM,WAAerH,QAAQwuC,IAEhE,gBAAoB,WAAgB,KAAMA,EACrD,CACA05F,EAAiB1jJ,YAAc,mBAC/B,IAAI4jJ,EAA2B,OAAWF,GAvB1C,SAAkB1pG,EAAWxF,GACzB,IAAIrrB,EAAS6wB,EAAU7wB,OAAQ6pB,GAAa,IAAA4hD,QAAO56C,EAAW,CAAC,WAC3D6pG,EAAarvG,EAAUrrB,OAAQ26H,GAAiB,IAAAlvD,QAAOpgD,EAAW,CAAC,WACvE,OAAQ,QAAaqvG,EAAY16H,KAC7B,QAAa6pB,EAAY8wG,EACjC,IAmBAF,EAAyB5jJ,YAAc,2BACvC,4HC7BA,SAAS+jJ,EAAqBl9G,EAAMm9G,GAChC,OAAOhoJ,OAAOiB,KAAK4pC,GAAM3Q,QAAO,SAAU5X,EAAK4K,GAE3C,OADA5K,EAAI4K,IAAK,IAAAwS,UAAS,CAAEsoH,SAAUA,GAAYn9G,EAAK3d,IACxC5K,CACX,GAAG,CAAC,EACR,CACA,SAAS2lI,EAAiBC,EAAOC,GAE7B,OADWnoJ,OAAOiB,MAAK,IAAAy+B,WAAS,IAAAA,UAAS,CAAC,EAAGwoH,GAAQC,IACzCjuH,QAAO,SAAU5X,EAAK4K,GAE9B,OADA5K,EAAI4K,IAAK,IAAAwS,WAAS,IAAAA,UAAS,CAAC,EAAIwoH,EAAMh7H,IAAM,CAAC,GAAMi7H,EAAMj7H,IAAM,CAAC,GACzD5K,CACX,GAAG,CAAC,EACR,CACA,SAAS8lI,EAA+BC,EAAIL,GACxC,IAAKA,EACD,OAAOK,EAEX,IAAIC,EAAY,IAAkB51E,QAClC,OAAO,IAAAhzC,WAAS,IAAAA,WAAS,IAAAA,UAAS,CAAC,EAAG4oH,GAAYD,GAAK,CAAE74I,KAAMy4I,EAAiBF,EAAqBO,EAAU94I,KAAMw4I,GAAWD,EAAqBM,EAAG74I,MAAQ,CAAC,EAAGw4I,IAAYtzI,KAAMuzI,EAAiBF,EAAqBO,EAAU5zI,KAAMszI,GAAWD,EAAqBM,EAAG3zI,MAAQ,CAAC,EAAGszI,KAC/R,CACO,IAAIl/F,EAAgB,SAAUjvB,EAAIwe,EAAOkwG,EAAmBp7H,EAAQ0d,GACvE,IAAItoB,EAASsX,EAAGtX,OAAQmwD,EAAU74C,EAAG64C,QAAS81E,EAAW3uH,EAAG2uH,SAAU35G,EAAgBhV,EAAGgV,cAAe45G,EAAiB5uH,EAAG4uH,eAAgBC,EAAwB7uH,EAAG6uH,sBAAuBjrC,EAAU5jF,EAAG4jF,QAASuqC,EAAWnuH,EAAGmuH,SAAUW,EAA0B9uH,EAAG8uH,6BAC/O,IAAtBJ,IAAgCA,EAAoB,CAAEtpJ,GAAI,KAC9D,IAAI2pJ,EAAQL,EAAkBtpJ,GAAI0oJ,EAAiBY,EAAkBZ,gBAErE,UAAYiB,EAAO,saACnB,IAAI3pJ,EAAKkiC,OAAOynH,GACZ5hJ,EAIJwhJ,GACIxoJ,OAAOT,UAAUa,eAAeC,KAAKmoJ,EAAUvpJ,IAC/CupJ,EAASvpJ,GAEb,GAAImM,MAAMwgC,QAAQ5kC,IACK,IAAnBA,EAAQnF,QACRmF,EAAQ,GAAGiO,OAAS,KAAK6mB,QACzB,OAAO90B,EAAQ,GAAG7E,MAGtB,IAAKgrB,GACDnmB,GACmB,iBAAZA,IACN2hJ,EACD,OAAO3hJ,EAAQtI,QAAQ,gBAAiB,QAK5C,GAHAyuB,GAAS,IAAAuS,WAAS,IAAAA,UAAS,CAAC,EAAGipH,GAA2Bx7H,GAAU,CAAC,GACrEulD,EAAU01E,EAA+B11E,EAASs1E,GAClDS,EAAiBL,EAA+BK,EAAgBT,IAC3DhhJ,EAAS,CACV,IAA8B,IAA1B0hJ,GAA+C,KAAZ1hJ,EACnC,OAAOA,EASX,KAPK2gJ,GACAplI,GAAUA,EAAO4P,gBAAkB0c,EAAc1c,gBAIlDsrF,EAAQ,IAAI,KAAwB8qC,EAAmBhmI,IAEvDolI,EACA,IAEI,OADgBtvG,EAAMwwG,iBAAiBlB,EAAgB94G,EAAe45G,EAAgB59G,GACrEnb,OAAOvC,EAC5B,CACA,MAAO1F,GAEH,OADAg2F,EAAQ,IAAI,KAAmB,0CAA2Cj1G,OAAOvJ,EAAI,yCAA2CsjB,EAAQgmI,EAAmB9gI,IAC1H,iBAAnBkgI,EAA8BA,EAAiB1oJ,CACjE,CAEJ,OAAOA,CACX,CAEA,IAEI,OADgBo5C,EAAMwwG,iBAAiB7hJ,EAASub,EAAQmwD,GAAS,IAAAhzC,UAAS,CAAE64D,WAAYlgD,GAAUxN,GAAQ,CAAC,IAC1Fnb,OAAOvC,EAC5B,CACA,MAAO1F,GACHg2F,EAAQ,IAAI,KAAmB,8BAA+Bj1G,OAAOvJ,EAAI,aAAcuJ,OAAOm/I,EAAiB,kBAAoB,KAAM,iBAAkBplI,EAAQgmI,EAAmB9gI,GAC1L,CACA,GAAIkgI,EACA,IAEI,OADgBtvG,EAAMwwG,iBAAiBlB,EAAgB94G,EAAe45G,EAAgB59G,GACrEnb,OAAOvC,EAC5B,CACA,MAAO1F,GACHg2F,EAAQ,IAAI,KAAmB,8CAA+Cj1G,OAAOvJ,EAAI,iCAAmCsjB,EAAQgmI,EAAmB9gI,GAC3J,CAEJ,MAAuB,iBAAZzgB,EACAA,EAEmB,iBAAnB2gJ,EACAA,EAEJ1oJ,CACX,YCpGI6pJ,EAAwB,CACxB,QACA,WACA,kBACA,OACA,cACA,cACA,uBACA,wBACA,wBACA,2BACA,2BAEA,iBACA,kBACA,eACA,WACA,cACA,OACA,cACA,mBAEG,SAASC,EAAalvH,EAAIk/D,EAAiB9xF,GAC9C,IAAIsb,EAASsX,EAAGtX,OAAQmwD,EAAU74C,EAAG64C,QAAS+qC,EAAU5jF,EAAG4jF,aAC3C,IAAZx2G,IAAsBA,EAAU,CAAC,GACrC,IAAIyoB,EAASzoB,EAAQyoB,OACjBmlD,EAAanlD,IACb,QAAegjD,EAAS,SAAUhjD,EAAQ+tF,IAC1C,CAAC,EAEL,OAAO1kB,EAAgBx2E,GADD,QAAYtb,EAAS6hJ,EAAuBj0E,GAEtE,CACO,SAASm0E,EAAa9mI,EAAQ62E,EAAiB52F,EAAO8E,QACzC,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IACI,OAAO8hJ,EAAa7mI,EAAQ62E,EAAiB9xF,GAASyoB,OAAOvtB,EACjE,CACA,MAAOslB,GACHvF,EAAOu7F,QAAQ,IAAI,KAAgB,2BAA4Bv7F,EAAOK,OAAQkF,GAClF,CACA,OAAO0Z,OAAOh/B,EAClB,CACO,SAAS+jJ,EAAoBhkI,EAAQ62E,EAAiB52F,EAAO8E,QAChD,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IACI,OAAO8hJ,EAAa7mI,EAAQ62E,EAAiB9xF,GAASokC,cAAclpC,EACxE,CACA,MAAOslB,GACHvF,EAAOu7F,QAAQ,IAAI,KAAgB,2BAA4Bv7F,EAAOK,OAAQkF,GAClF,CACA,MAAO,EACX,gBClDIwhI,EAA+B,CAAC,UAAW,SASxC,SAASC,EAAmBhnI,EAAQinI,EAAuBhnJ,EAAOq9B,EAAMv4B,QAC3D,IAAZA,IAAsBA,EAAU,CAAC,GAChCu4B,IACDA,EAAO,UAEc2L,KAAKi+G,oBAE1BlnI,EAAOu7F,QAAQ,IAAI,KAAY,gIAAmI,KAAU9iB,mBAEhL,IACI,OAlBR,SAAsB9gE,EAAIsvH,EAAuBliJ,GAC7C,IAAIsb,EAASsX,EAAGtX,OAAQmwD,EAAU74C,EAAG64C,QAAS+qC,EAAU5jF,EAAG4jF,aAC3C,IAAZx2G,IAAsBA,EAAU,CAAC,GACrC,IAAIyoB,EAASzoB,EAAQyoB,OACjBmlD,IAAcnlD,IAAU,QAAegjD,EAAS,WAAYhjD,EAAQ+tF,IAAa,CAAC,EAEtF,OAAO0rC,EAAsB5mI,GADP,QAAYtb,EAASgiJ,EAA8Bp0E,GAE7E,CAWe,CAAa3yD,EAAQinI,EAAuBliJ,GAASyoB,OAAOvtB,EAAOq9B,EAC9E,CACA,MAAO/X,GACHvF,EAAOu7F,QAAQ,IAAI,KAAgB,kCAAmCv7F,EAAOK,OAAQkF,GACzF,CACA,OAAO0Z,OAAOh/B,EAClB,CCzBA,IAAIknJ,EAA2B,CAC3B,gBACA,WACA,SACA,UACA,MACA,OACA,QACA,MACA,OACA,SACA,SACA,eACA,YACA,YACA,YACA,WAEA,kBACA,0BAEG,SAAS,EAAaxvH,EAAI5kB,EAAMgkF,EAAmBhyF,GACtD,IAAIsb,EAASsX,EAAGtX,OAAQmwD,EAAU74C,EAAG64C,QAAS+qC,EAAU5jF,EAAG4jF,QAASuqC,EAAWnuH,EAAGmuH,cAClE,IAAZ/gJ,IAAsBA,EAAU,CAAC,GACrC,IAAIyoB,EAASzoB,EAAQyoB,OACjBmlD,GAAW,IAAAn1C,WAAS,IAAAA,UAAS,CAAC,EAAIsoH,GAAY,CAAEA,SAAUA,IAAet4H,IAAU,QAAegjD,EAASz9D,EAAMya,EAAQ+tF,IACzH6rC,GAAkB,QAAYriJ,EAASoiJ,EAA0Bx0E,GAUrE,MATa,SAAT5/D,GACCq0I,EAAgB3rH,MAChB2rH,EAAgB1rH,QAChB0rH,EAAgBzrH,QAChByrH,EAAgBC,WAChBD,EAAgB/9G,YAEjB+9G,GAAkB,IAAA5pH,WAAS,IAAAA,UAAS,CAAC,EAAG4pH,GAAkB,CAAE3rH,KAAM,UAAWC,OAAQ,aAElFq7D,EAAkB12E,EAAQ+mI,EACrC,CACO,SAASE,EAAWtnI,EAAQ+2E,GAE/B,IADA,IAAIp/D,EAAK,GACAD,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpCC,EAAGD,EAAK,GAAKh4B,UAAUg4B,GAE3B,IAAIz3B,EAAQ03B,EAAG,GAAI6kF,EAAK7kF,EAAG,GAAI5yB,OAAiB,IAAPy3G,EAAgB,CAAC,EAAIA,EAC1DlvG,EAAwB,iBAAVrN,EAAqB,IAAIsG,KAAKtG,GAAS,GAAKA,EAC9D,IACI,OAAO,EAAa+f,EAAQ,OAAQ+2E,EAAmBhyF,GAASyoB,OAAOlgB,EAC3E,CACA,MAAOiY,GACHvF,EAAOu7F,QAAQ,IAAI,KAAgB,yBAA0Bv7F,EAAOK,OAAQkF,GAChF,CACA,OAAO0Z,OAAO3xB,EAClB,CACO,SAASi6I,EAAWvnI,EAAQ+2E,GAE/B,IADA,IAAIp/D,EAAK,GACAD,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpCC,EAAGD,EAAK,GAAKh4B,UAAUg4B,GAE3B,IAAIz3B,EAAQ03B,EAAG,GAAI6kF,EAAK7kF,EAAG,GAAI5yB,OAAiB,IAAPy3G,EAAgB,CAAC,EAAIA,EAC1DlvG,EAAwB,iBAAVrN,EAAqB,IAAIsG,KAAKtG,GAAS,GAAKA,EAC9D,IACI,OAAO,EAAa+f,EAAQ,OAAQ+2E,EAAmBhyF,GAASyoB,OAAOlgB,EAC3E,CACA,MAAOiY,GACHvF,EAAOu7F,QAAQ,IAAI,KAAgB,yBAA0Bv7F,EAAOK,OAAQkF,GAChF,CACA,OAAO0Z,OAAO3xB,EAClB,CACO,SAASk6I,EAAoBxnI,EAAQ+2E,GAExC,IADA,IAAIp/D,EAAK,GACAD,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpCC,EAAGD,EAAK,GAAKh4B,UAAUg4B,GAE3B,IAAIzsB,EAAO0sB,EAAG,GAAI5F,EAAK4F,EAAG,GAAI6kF,EAAK7kF,EAAG,GAAI5yB,OAAiB,IAAPy3G,EAAgB,CAAC,EAAIA,EACrEspC,EAAW9lI,EAAO8lI,SAAUzlI,EAASL,EAAOK,OAAQk7F,EAAUv7F,EAAOu7F,QACrE6rC,GAAkB,QAAYriJ,EAASoiJ,EAA0BrB,EAAW,CAAEA,SAAUA,GAAa,CAAC,GAC1G,IACI,OAAO/uD,EAAkB12E,EAAQ+mI,GAAiBK,YAAYx8I,EAAM8mB,EACxE,CACA,MAAOxM,GACHg2F,EAAQ,IAAI,KAAgB,oCAAqCv7F,EAAOK,OAAQkF,GACpF,CACA,OAAO0Z,OAAOh0B,EAClB,CACO,SAASk5I,EAAkBnkI,EAAQ+2E,GAEtC,IADA,IAAIp/D,EAAK,GACAD,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpCC,EAAGD,EAAK,GAAKh4B,UAAUg4B,GAE3B,IAAIz3B,EAAQ03B,EAAG,GAAI6kF,EAAK7kF,EAAG,GAAI5yB,OAAiB,IAAPy3G,EAAgB,CAAC,EAAIA,EAC1DlvG,EAAwB,iBAAVrN,EAAqB,IAAIsG,KAAKtG,GAAS,GAAKA,EAC9D,IACI,OAAO,EAAa+f,EAAQ,OAAQ+2E,EAAmBhyF,GAASokC,cAAc77B,EAClF,CACA,MAAOiY,GACHvF,EAAOu7F,QAAQ,IAAI,KAAgB,yBAA0Bv7F,EAAOK,OAAQkF,GAChF,CACA,MAAO,EACX,CACO,SAAS6+H,EAAkBpkI,EAAQ+2E,GAEtC,IADA,IAAIp/D,EAAK,GACAD,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpCC,EAAGD,EAAK,GAAKh4B,UAAUg4B,GAE3B,IAAIz3B,EAAQ03B,EAAG,GAAI6kF,EAAK7kF,EAAG,GAAI5yB,OAAiB,IAAPy3G,EAAgB,CAAC,EAAIA,EAC1DlvG,EAAwB,iBAAVrN,EAAqB,IAAIsG,KAAKtG,GAAS,GAAKA,EAC9D,IACI,OAAO,EAAa+f,EAAQ,OAAQ+2E,EAAmBhyF,GAASokC,cAAc77B,EAClF,CACA,MAAOiY,GACHvF,EAAOu7F,QAAQ,IAAI,KAAgB,yBAA0Bv7F,EAAOK,OAAQkF,GAChF,CACA,MAAO,EACX,CCjHA,IAAImiI,EAAwB,CAAC,QACtB,SAASC,EAAahwH,EAAIq/D,EAAgB/2F,EAAO8E,GACpD,IAAIsb,EAASsX,EAAGtX,OAAQk7F,EAAU5jF,EAAG4jF,aACrB,IAAZx2G,IAAsBA,EAAU,CAAC,GAChCkkC,KAAKguD,aACNskB,EAAQ,IAAI,KAAY,kHAAqH,KAAU9iB,mBAE3J,IAAI2uD,GAAkB,QAAYriJ,EAAS2iJ,GAC3C,IACI,OAAO1wD,EAAe32E,EAAQ+mI,GAAiBjtH,OAAOl6B,EAC1D,CACA,MAAOslB,GACHg2F,EAAQ,IAAI,KAAgB,2BAA4Bl7F,EAAQkF,GACpE,CACA,MAAO,OACX,CCdA,IAAIqiI,EAAsB,CACtB,OACA,SAEAv4I,EAAM9I,KAAK8I,MAIR,SAASw4I,EAAWl/G,EAAMm/G,EAAe78H,EAAQlmB,QACpC,IAAZA,IAAsBA,EAAU,CAAC,GACrC,IAAIgjJ,EAAUC,EAAkBr/G,EAAMm/G,EAAe78H,EAAQlmB,GAASizB,QAAO,SAAU5X,EAAKuZ,GACxF,IAAIiI,EAAMjI,EAAG15B,MAUb,MATmB,iBAAR2hC,EACPxhB,EAAI/gB,KAAKuiC,GAE2B,iBAAxBxhB,EAAIA,EAAIzgB,OAAS,GAC7BygB,EAAIA,EAAIzgB,OAAS,IAAMiiC,EAGvBxhB,EAAI/gB,KAAKuiC,GAENxhB,CACX,GAAG,IACH,OAA0B,IAAnB2nI,EAAQpoJ,OAAeooJ,EAAQ,GAAwB,IAAnBA,EAAQpoJ,OAAe,GAAKooJ,CAC3E,CACO,SAASC,EAAkBrwH,EAAImwH,EAAe78H,EAAQlmB,GACzD,IAAIsb,EAASsX,EAAGtX,OAAQk7F,EAAU5jF,EAAG4jF,aACrB,IAAZx2G,IAAsBA,EAAU,CAAC,GACpBkkC,KAAKg/G,YAElB1sC,EAAQ,IAAI,KAAY,gHAAmH,KAAU9iB,mBAEzJ,IAAI2uD,GAAkB,QAAYriJ,EAAS6iJ,GAC3C,IACI,IAAIM,EAAe,CAAC,EAChBC,EAAmBl9H,EAAO1U,KAAI,SAAU4U,EAAG1rB,GAC3C,GAAiB,iBAAN0rB,EAAgB,CACvB,IAAIpuB,EAhCpB,SAAuB0C,GACnB,MAAO,GAAG6G,OAAO+I,EAAK,KAAK/I,OAAO7G,EAAG,KAAK6G,OAAO+I,EACrD,CA8ByB+4I,CAAc3oJ,GAEvB,OADAyoJ,EAAanrJ,GAAMouB,EACZpuB,CACX,CACA,OAAOkiC,OAAO9T,EAClB,IACA,OAAO28H,EAAcznI,EAAQ+mI,GACxBj+G,cAAcg/G,GACd5xI,KAAI,SAAUm8D,GACf,MAAqB,YAAdA,EAAK3/D,KACN2/D,GACA,IAAAl1C,WAAS,IAAAA,UAAS,CAAC,EAAGk1C,GAAO,CAAEzyE,MAAOioJ,EAAax1E,EAAKzyE,QAAUyyE,EAAKzyE,OACjF,GACJ,CACA,MAAOslB,GACHg2F,EAAQ,IAAI,KAAgB,yBAA0Bl7F,EAAQkF,GAClE,CAEA,OAAO0F,CACX,CCzDA,IAAIo9H,EAAuB,CACvB,QACA,OACA,WACA,mBAEG,SAASC,EAAkB3wH,EAAI4wH,EAAiBtoJ,EAAO8E,GAC1D,IAAIsb,EAASsX,EAAGtX,OAAQk7F,EAAU5jF,EAAG4jF,QAClBtyE,KAAKu/G,cAEpBjtC,EAAQ,IAAI,KAAY,oHAAuH,KAAU9iB,mBAE7J,IAAI2uD,GAAkB,QAAYriJ,EAASsjJ,GAC3C,IACI,OAAOE,EAAgBloI,EAAQ+mI,GAAiBt2F,GAAG7wD,EACvD,CACA,MAAOslB,GACHg2F,EAAQ,IAAI,KAAgB,iCAAkCl7F,EAAQkF,GAC1E,CACJ,gDCXA,SAASkjI,EAAkBzoI,GACvB,MAAO,CACHK,OAAQL,EAAOK,OACfylI,SAAU9lI,EAAO8lI,SACjBU,sBAAuBxmI,EAAOwmI,sBAC9Bh2E,QAASxwD,EAAOwwD,QAChBg0E,cAAexkI,EAAOwkI,cACtB8B,SAAUtmI,EAAOsmI,SACjB35G,cAAe3sB,EAAO2sB,cACtB45G,eAAgBvmI,EAAOumI,eACvBhrC,QAASv7F,EAAOu7F,QAChBmtC,OAAQ1oI,EAAO0oI,OACfC,6BAA8B3oI,EAAO2oI,6BACrClC,wBAAyBzmI,EAAOymI,wBAExC,CACA,SAASmC,EAA6C39H,GAClD,OAAKA,EAGEntB,OAAOiB,KAAKksB,GAAQ+M,QAAO,SAAU6wH,EAAK79H,GAC7C,IAAIG,EAAIF,EAAOD,GAIf,OAHA69H,EAAI79H,IAAK,QAAqBG,IACxB,QAAwBA,GACxBA,EACC09H,CACX,GAAG,CAAC,GARO59H,CASf,CACA,IAAI,EAAgB,SAAUjL,EAAQq2E,EAAY7yF,EAAYslJ,GAE1D,IADA,IAAI10I,EAAO,GACFsjB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpCtjB,EAAKsjB,EAAK,GAAKh4B,UAAUg4B,GAE7B,IAAIzM,EAAS29H,EAA6CE,GACtDtwD,EAAS,EAAkBl5F,WAAM,GAAQ,IAAAw3F,eAAc,CAAC92E,EACxDq2E,EACA7yF,EACAynB,GAAS7W,GAAM,IACnB,OAAIlL,MAAMwgC,QAAQ8uD,GACP,WAAel7E,QAAQk7E,GAE3BA,CACX,EAMW,EAAa,SAAU7gE,EAAIn6B,GAClC,IAAIurJ,EAA6BpxH,EAAG8uH,wBAAyBzmI,GAAS,IAAA02E,QAAO/+D,EAAI,CAAC,4BAC9E8uH,EAA0BmC,EAA6CG,GACvEC,ECpCD,SAAoBhpI,EAAQxiB,GAC/B,IAAI64F,GAAa,QAAiB74F,GAC9ByrJ,GAAiB,IAAAzrH,WAAS,IAAAA,UAAS,CAAC,EAAG,MAAsBxd,GAC7DK,EAAS4oI,EAAe5oI,OAAQssB,EAAgBs8G,EAAet8G,cAAe4uE,EAAU0tC,EAAe1tC,QAoB3G,OAnBKl7F,GAWK4oB,KAAKuoC,aAAa7nC,mBAAmBtpB,GAAQ1gB,QAAU47G,EAC7DA,EAAQ,IAAI,KAAiB,oCAAqCj1G,OAAO+Z,EAAQ,mDAAqD/Z,OAAOqmC,EAAe,mGAEtJ1D,KAAKC,eAAeS,mBAAmBtpB,GAAQ1gB,QACrD47G,GACAA,EAAQ,IAAI,KAAiB,oCAAqCj1G,OAAO+Z,EAAQ,qDAAuD/Z,OAAOqmC,EAAe,mGAf1J4uE,GACAA,EAAQ,IAAI,KAAmB,uCAA0Cj1G,OAAOqmC,EAAe,2FAOnGs8G,EAAe5oI,OAAS4oI,EAAet8G,eAAiB,MAzBhE,SAA8B3sB,GAJ9B,IAA+BsmI,EAKvBtmI,EAAO0oI,QACP1oI,EAAOymI,yBAJoB,kBAFJH,EAODtmI,EAAOsmI,UAAY,CAAC,GANhBA,EAASxoJ,OAAOiB,KAAKunJ,GAAU,SAAMv/I,IAO/DiZ,EAAO0oI,OAAO,yQAEtB,CA4BIQ,CAAqBD,IACd,IAAAzrH,WAAS,IAAAA,UAAS,CAAC,EAAGyrH,GAAiB,CAAE5yD,WAAYA,EAAYywD,aAAcA,EAAa3iJ,KAAK,KAAM8kJ,EAAgB5yD,EAAWQ,iBAAkBmtD,oBAAqBA,EAAoB7/I,KAAK,KAAM8kJ,EAAgB5yD,EAAWQ,iBAAkBmwD,mBAAoBA,EAAmB7iJ,KAAK,KAAM8kJ,EAAgB5yD,EAAW4wD,uBAAwBK,WAAYA,EAAWnjJ,KAAK,KAAM8kJ,EAAgB5yD,EAAWU,mBAAoBotD,kBAAmBA,EAAkBhgJ,KAAK,KAAM8kJ,EAAgB5yD,EAAWU,mBAAoBwwD,WAAYA,EAAWpjJ,KAAK,KAAM8kJ,EAAgB5yD,EAAWU,mBAAoBywD,oBAAqBA,EAAoBrjJ,KAAK,KAAM8kJ,EAAgB5yD,EAAWU,mBAAoBqtD,kBAAmBA,EAAkBjgJ,KAAK,KAAM8kJ,EAAgB5yD,EAAWU,mBAAoB4wD,aAAcA,EAAaxjJ,KAAK,KAAM8kJ,EAAgB5yD,EAAWW,gBAEj2BpwC,cAAeA,EAAcziD,KAAK,KAAM8kJ,EAAgB5yD,GAExD8yD,GAAIviG,EAAcziD,KAAK,KAAM8kJ,EAAgB5yD,GAAawxD,WAAYA,EAAW1jJ,KAAK,KAAM8kJ,EAAgB5yD,EAAWyxD,eAAgBE,kBAAmBA,EAAkB7jJ,KAAK,KAAM8kJ,EAAgB5yD,EAAWyxD,eAAgBQ,kBAAmBA,EAAkBnkJ,KAAK,KAAM8kJ,EAAgB5yD,EAAWkyD,kBACrT,CDQmB,EAAe,IAAA/qH,WAAS,IAAAA,WAAS,IAAAA,UAAS,CAAC,EAAG,MAAsBxd,GAAS,CAAEymI,wBAAyBA,IAA4BjpJ,GAC/IyrJ,EAAiB,CACjB5oI,OAAQ2oI,EAAS3oI,OACjBylI,SAAUkD,EAASlD,SACnBU,sBAAuBwC,EAASxC,sBAChCh2E,QAASw4E,EAASx4E,QAClB7jC,cAAeq8G,EAASr8G,cACxB45G,eAAgByC,EAASzC,eACzBD,SAAU0C,EAAS1C,SACnB/qC,QAASytC,EAASztC,QAClBkrC,wBAAyBA,GAE7B,OAAO,IAAAjpH,WAAS,IAAAA,UAAS,CAAC,EAAGwrH,GAAW,CAAEpiG,cAAe,EAAcziD,KAAK,KAAM8kJ,EAE9ED,EAAS3yD,YAET8yD,GAAI,EAAchlJ,KAAK,KAAM8kJ,EAAgBD,EAAS3yD,aAC9D,EAgCA,QA/BkC,SAAUqB,GAExC,SAAS0xD,IACL,IAAIhjJ,EAAmB,OAAXsxF,GAAmBA,EAAOp4F,MAAM0E,KAAMtE,YAAcsE,KAOhE,OANAoC,EAAM5I,OAAQ,UACd4I,EAAM+vC,MAAQ,CACV34C,MAAO4I,EAAM5I,MACbsmJ,KAAM,EAAW2E,EAAkBriJ,EAAM/F,OAAQ+F,EAAM5I,OACvD6rJ,WAAYZ,EAAkBriJ,EAAM/F,QAEjC+F,CACX,CAkBA,OA5BA,IAAAuxF,WAAUyxD,EAAc1xD,GAWxB0xD,EAAaj/D,yBAA2B,SAAU9pF,EAAOs3B,GACrD,IAAI0xH,EAAa1xH,EAAG0xH,WAAY7rJ,EAAQm6B,EAAGn6B,MACvCwiB,EAASyoI,EAAkBpoJ,GAC/B,OAAK,QAAagpJ,EAAYrpI,GAMvB,KALI,CACH8jI,KAAM,EAAW9jI,EAAQxiB,GACzB6rJ,WAAYrpI,EAIxB,EACAopI,EAAa/rJ,UAAU2V,OAAS,WAE5B,OADA,QAAqBhP,KAAKmyC,MAAM2tG,MACzB,gBAAoB,KAAU,CAAE7jJ,MAAO+D,KAAKmyC,MAAM2tG,MAAQ9/I,KAAK3D,MAAMwB,SAChF,EACAunJ,EAAatnJ,YAAc,eAC3BsnJ,EAAarnJ,aAAe,KACrBqnJ,CACX,CA9BiC,CA8B/B,gHEpGEE,EAAO,KAEX,SAASC,EAAWC,GAChB,IAAIC,EAAWrgJ,KAAKqF,IAAI+6I,GACxB,OAAIC,EALK,GAME,SAEPA,EAAWH,EACJ,SAEPG,EATE,MAUK,OAEJ,KACX,CACA,SAASC,EAAqBpsH,GAC1B,OAAQA,GACJ,IAAK,SACD,OAAO,EACX,IAAK,SACD,OArBC,GAsBL,IAAK,OACD,OAAOgsH,EACX,QACI,OAvBF,MAyBV,CAcA,IAAIK,EAAsB,CACtB,SACA,SACA,QAEJ,SAASC,EAAatsH,GAElB,YADa,IAATA,IAAmBA,EAAO,UACvBqsH,EAAoBthH,QAAQ/K,IAAS,CAChD,CACA,IAAIusH,EAA8B,SAAUxpJ,GACxC,IAAIs3B,GAAK,SAAWqvH,EAAqBrvH,EAAGqvH,mBAAoBzC,EAAO5sH,EAAG6sH,cACtE3iJ,EAAWxB,EAAMwB,SACjBioJ,EAAwB9C,EADW3mJ,EAAMJ,OACW,EADGI,EAAMi9B,MAAmB,IAAAo5D,QAAOr2F,EAAO,CAAC,WAAY,QAAS,UAExH,MAAwB,mBAAbwB,EACAA,EAASioJ,GAEhBvF,EACO,gBAAoBA,EAAM,KAAMuF,GAEpC,gBAAoB,WAAgB,KAAMA,EACrD,EACIC,EAAwB,SAAUpyH,GAClC,IAAI13B,EAAQ03B,EAAG13B,MAAOq9B,EAAO3F,EAAG2F,KAAM0sH,EAA0BryH,EAAGqyH,wBAAyBl1G,GAAa,IAAA4hD,QAAO/+D,EAAI,CAAC,QAAS,OAAQ,6BACtI,SAAWqyH,MACJA,IAA2BJ,EAAatsH,IAAQ,qDACvD,IAGI2sH,EAHAztC,EAAK,aAAkB0tC,EAAW1tC,EAAG,GAAI2tC,EAAc3tC,EAAG,GAC1D+F,EAAK,WAAe,GAAIrL,EAAYqL,EAAG,GAAI6nC,EAAe7nC,EAAG,GAC7DC,EAAK,WAAe,GAAI6nC,EAAwB7nC,EAAG,GAAI8nC,EAA2B9nC,EAAG,GAErFllF,IAAS4sH,GAAYjqJ,IAAUi3G,IAC/BkzC,EAAanqJ,GAAS,GACtBkqJ,EAAY7sH,GACZgtH,EAAyBV,EAAatsH,GA7C9C,SAAwBr9B,EAAOq9B,GAC3B,IAAKr9B,EACD,OAAO,EAEX,OAAQq9B,GACJ,IAAK,SACD,OAAOr9B,EACX,IAAK,SACD,OApCC,GAoCMA,EACX,QACI,OAAOA,EAAQqpJ,EAE3B,CAiCsDiB,CAAetqJ,EAAOq9B,GAAQ,IAEhF,aAAgB,WACZ,SAASktH,IACLp6I,aAAa65I,EACjB,CAGA,GAFAO,KAEKR,IAA4BJ,EAAatsH,GAC1C,OAAOktH,EAGX,IAAIC,EAAqBJ,EAAwBL,EAC7CU,EAAWnB,EAAWkB,GAE1B,GAAiB,QAAbC,EACA,OAAOF,EAEX,IAAIG,EAAejB,EAAqBgB,GAEpCE,EAAgCH,EADpBA,EAAqBE,EAEjCE,EAAgCD,GAAiCP,EAC/DO,EAAgCD,EAChCC,EACFE,EAAiB1hJ,KAAKqF,IAAIo8I,EAAgCR,GAI9D,OAHIA,IAA0BQ,IAC1BZ,EAAcx+I,YAAW,WAAc,OAAO6+I,EAAyBO,EAAgC,GAAoB,IAAjBC,IAEvGN,CACX,GAAG,CAACH,EAAuBL,EAAyB1sH,IACpD,IAAIkkF,EAAevhH,GAAS,EACxB8qJ,EAAcztH,EAClB,GAAIssH,EAAatsH,IACoB,iBAA1B+sH,GACPL,EAAyB,CAEzB,IAAIW,EAAejB,EADnBqB,EAAcxB,EAAWc,IAEzB7oC,EAAep4G,KAAKmyD,MAAM8uF,EAAwBM,EACtD,CACA,OAAQ,gBAAoBd,GAA6B,IAAArsH,UAAS,CAAEv9B,MAAOuhH,EAAclkF,KAAMytH,GAAej2G,GAClH,EACAi1G,EAAsBjoJ,YAAc,wBACpCioJ,EAAsBhoJ,aAAe,CACjC9B,MAAO,EACPq9B,KAAM,UAEV,8FC7He,SAAS0tH,IACpB,IAAIlH,EAAO,aAAiB,MAE5B,OADA,QAAqBA,GACdA,CACX,4HCHO,SAASmH,EAAqBnH,IACjC,QAAUA,EAAM,+GAEpB,CACO,IAAIoH,GAAsB,IAAA1tH,WAAS,IAAAA,UAAS,CAAC,EAAG,MAA2B,CAAEgnH,cAAe,aAO5F,SAAS2G,EAAwBC,GACpC,OAAO,SAAUh1D,GAEb,OAAOg1D,EAAmB,WAAe9tI,QAAQ84E,GACrD,CACJ,CACO,SAASi1D,EAAaC,EAAMC,GAC/B,GAAID,IAASC,EACT,OAAO,EAEX,IAAKD,IAASC,EACV,OAAO,EAEX,IAAIC,EAAQ1tJ,OAAOiB,KAAKusJ,GACpBG,EAAQ3tJ,OAAOiB,KAAKwsJ,GACpBjgI,EAAMkgI,EAAM7rJ,OAChB,GAAI8rJ,EAAM9rJ,SAAW2rB,EACjB,OAAO,EAEX,IAAK,IAAI7rB,EAAI,EAAGA,EAAI6rB,EAAK7rB,IAAK,CAC1B,IAAIxB,EAAMutJ,EAAM/rJ,GAChB,GAAI6rJ,EAAKrtJ,KAASstJ,EAAKttJ,KAClBH,OAAOT,UAAUa,eAAeC,KAAKotJ,EAAMttJ,GAC5C,OAAO,CAEf,CACA,OAAO,CACX,gCC8BO,SAASm6B,EAAUC,EAAWvzB,EAASwzB,GAE1C,QADY,IAARA,IAAkBA,EAAMnuB,QACvBkuB,EACD,MAAM,IAAIC,EAAIxzB,EAEtB,oHC5EW4mJ,cACX,SAAWA,GACPA,EAA4B,aAAI,eAChCA,EAAqC,sBAAI,wBACzCA,EAA8B,eAAI,iBAClCA,EAA4B,aAAI,eAChCA,EAAmC,oBAAI,qBAC1C,CAND,CAMGA,IAAkBA,EAAgB,CAAC,IACtC,IAAIC,EAA2B,SAAUj0D,GAErC,SAASi0D,EAAUvrH,EAAMt7B,EAAS6iG,GAC9B,IAAIvhG,EAAQpC,KACR8D,EAAM6/F,EACJA,aAAqBx9F,MACjBw9F,EACA,IAAIx9F,MAAM80B,OAAO0oE,SACrB5gG,EAQN,OAPAX,EAAQsxF,EAAOv5F,KAAK6F,KAAM,yBAAyBsC,OAAO85B,EAAM,MAAM95B,OAAOxB,EAAS,MAAMwB,OAAOwB,EAAM,KAAKxB,OAAOwB,EAAIhD,QAAS,MAAMwB,OAAOwB,EAAIo2F,OAAS,MAAQl6F,MAC9Jo8B,KAAOA,EAE0B,mBAA5Bj2B,MAAMmjF,mBAEbnjF,MAAMmjF,kBAAkBlnF,EAAOulJ,GAE5BvlJ,CACX,CACA,OAjBA,IAAAuxF,WAAUg0D,EAAWj0D,GAiBdi0D,CACX,CAnB8B,CAmB5BxhJ,OAEEyhJ,EAA2C,SAAUl0D,GAErD,SAASk0D,EAA0B9mJ,EAAS6iG,GACxC,OAAOjQ,EAAOv5F,KAAK6F,KAAM0nJ,EAAcG,sBAAuB/mJ,EAAS6iG,IAAc3jG,IACzF,CACA,OAJA,IAAA2zF,WAAUi0D,EAA2Bl0D,GAI9Bk0D,CACX,CAN8C,CAM5CD,GAEEG,EAAoC,SAAUp0D,GAE9C,SAASo0D,EAAmBhnJ,EAAS6iG,GACjC,OAAOjQ,EAAOv5F,KAAK6F,KAAM0nJ,EAAcK,eAAgBjnJ,EAAS6iG,IAAc3jG,IAClF,CACA,OAJA,IAAA2zF,WAAUm0D,EAAoBp0D,GAIvBo0D,CACX,CANuC,CAMrCH,GAEEK,EAAkC,SAAUt0D,GAE5C,SAASs0D,EAAiBlnJ,EAAS6iG,GAC/B,OAAOjQ,EAAOv5F,KAAK6F,KAAM0nJ,EAAcO,aAAcnnJ,EAAS6iG,IAAc3jG,IAChF,CACA,OAJA,IAAA2zF,WAAUq0D,EAAkBt0D,GAIrBs0D,CACX,CANqC,CAMnCL,GAEEO,EAAiC,SAAUx0D,GAE3C,SAASw0D,EAAgBpnJ,EAASub,EAAQsnF,GACtC,IAAIvhG,EAAQsxF,EAAOv5F,KAAK6F,KAAM0nJ,EAAcS,aAAc,GAAG7lJ,OAAOxB,EAAS,cAAcwB,OAAO+Z,EAAQ,MAAOsnF,IAAc3jG,KAE/H,OADAoC,EAAMia,OAASA,EACRja,CACX,CACA,OANA,IAAAuxF,WAAUu0D,EAAiBx0D,GAMpBw0D,CACX,CARoC,CAQlCP,GAEES,EAAoC,SAAU10D,GAE9C,SAAS00D,EAAmBtnJ,EAASub,EAAQ7c,EAAYmkG,GACrD,IAAIvhG,EAAQsxF,EAAOv5F,KAAK6F,KAAM,GAAGsC,OAAOxB,EAAS,iBAAiBwB,OAAO9C,aAA+C,EAASA,EAAWzG,GAAI,uBAAuBuJ,OAAO9C,aAA+C,EAASA,EAAWiiJ,eAAgB,mBAAmBn/I,OAAO9C,aAA+C,EAASA,EAAWmY,YAAa,MAAO0E,EAAQsnF,IAAc3jG,KAGxY,OAFAoC,EAAM5C,WAAaA,EACnB4C,EAAMia,OAASA,EACRja,CACX,CACA,OAPA,IAAAuxF,WAAUy0D,EAAoB10D,GAOvB00D,CACX,CATuC,CASrCF,GAEEG,EAAyC,SAAU30D,GAEnD,SAAS20D,EAAwB7oJ,EAAY6c,GACzC,IAAIja,EAAQsxF,EAAOv5F,KAAK6F,KAAM0nJ,EAAcY,oBAAqB,qBAAsBhmJ,OAAO9C,EAAWzG,GAAI,kBAAoBuJ,OAAO+Z,EAAQ,aAAc/Z,OAAO9C,EAAWiiJ,eAC1K,oBAAoBn/I,OAA4C,iBAA9B9C,EAAWiiJ,eACzCjiJ,EAAWiiJ,eACXjiJ,EAAWiiJ,eACRlvI,KAAI,SAAUgP,GAAK,IAAIoS,EAAI,OAA0B,QAAlBA,EAAKpS,EAAEtlB,aAA0B,IAAP03B,EAAgBA,EAAKzmB,KAAKC,UAAUoU,EAAI,IACrG5c,OAAQ,KACf,KAAM,mBAAqB3E,KAEjC,OADAoC,EAAM5C,WAAaA,EACZ4C,CACX,CACA,OAZA,IAAAuxF,WAAU00D,EAAyB30D,GAY5B20D,CACX,CAd4C,CAc1CV,sICrFK,SAAShqE,EAAYthF,EAAOksJ,EAAW55E,GAE1C,YADiB,IAAbA,IAAuBA,EAAW,CAAC,GAChC45E,EAAUv0H,QAAO,SAAUw0H,EAAUrhJ,GAOxC,OANIA,KAAQ9K,EACRmsJ,EAASrhJ,GAAQ9K,EAAM8K,GAElBA,KAAQwnE,IACb65E,EAASrhJ,GAAQwnE,EAASxnE,IAEvBqhJ,CACX,GAAG,CAAC,EACR,CACA,IAYWtB,EAAsB,CAC7B16E,QAAS,CAAC,EACV81E,SAAU,CAAC,EACXR,cAAU/+I,EACV4lC,cAAe,KACf45G,eAAgB,CAAC,EACjBC,uBAAuB,EACvBjrC,QAnBsB,SAAU56G,GAKpC,EAeI+nJ,OAdqB,SAAUxtG,GAKnC,GAWO,SAASuxG,IACZ,MAAO,CACH7xH,SAAU,CAAC,EACXt4B,OAAQ,CAAC,EACTwC,QAAS,CAAC,EACV4nJ,aAAc,CAAC,EACfv2D,YAAa,CAAC,EACdqiB,KAAM,CAAC,EACPm0C,aAAc,CAAC,EAEvB,CACA,SAAS92D,EAAuBC,GAC5B,MAAO,CACHt+D,OAAQ,WACJ,MAAO,CACH75B,IAAK,SAAUM,GACX,OAAO63F,EAAM73F,EACjB,EACAI,IAAK,SAAUJ,EAAKgC,GAChB61F,EAAM73F,GAAOgC,CACjB,EAER,EAER,CAKO,SAAS2sJ,EAAiBpvJ,QACf,IAAVA,IAAoBA,EA7BjB,CACHo9B,SAAU,CAAC,EACXt4B,OAAQ,CAAC,EACTwC,QAAS,CAAC,EACV4nJ,aAAc,CAAC,EACfv2D,YAAa,CAAC,EACdqiB,KAAM,CAAC,EACPm0C,aAAc,CAAC,IAuBnB,IAAIzF,EAAqBj+G,KAAKi+G,mBAC1Be,EAAah/G,KAAKg/G,WAClBO,EAAev/G,KAAKu/G,aACpBzxD,GAAoB,QAAQ,WAG5B,IAFA,IAAIp/D,EACAngB,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,KAAMC,EAAKsR,KAAKC,gBAAgB/kC,KAAK7E,MAAMq4B,GAAI,IAAAm/D,eAAc,MAAC,GAASt/E,GAAM,IACxF,GAAG,CACCha,MAAOq4F,EAAuBr4F,EAAMo9B,UACpCjC,SAAU,IAAWM,WAErB49D,GAAkB,QAAQ,WAG1B,IAFA,IAAIl/D,EACAngB,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,KAAMC,EAAKsR,KAAKuoC,cAAcrtE,KAAK7E,MAAMq4B,GAAI,IAAAm/D,eAAc,MAAC,GAASt/E,GAAM,IACtF,GAAG,CACCha,MAAOq4F,EAAuBr4F,EAAM8E,QACpCq2B,SAAU,IAAWM,WAErB+9D,GAAiB,QAAQ,WAGzB,IAFA,IAAIr/D,EACAngB,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,KAAMC,EAAKsR,KAAKguD,aAAa9yF,KAAK7E,MAAMq4B,GAAI,IAAAm/D,eAAc,MAAC,GAASt/E,GAAM,IACrF,GAAG,CACCha,MAAOq4F,EAAuBr4F,EAAM24F,aACpCx9D,SAAU,IAAWM,WAEzB,MAAO,CACH89D,kBAAmBA,EACnBF,gBAAiBA,EACjB8vD,kBAAkB,QAAQ,SAAU7hJ,EAAS2kC,EAASssD,EAAiBptD,GACnE,OAAO,IAAI,IAAkB7jC,EAAS2kC,EAASssD,GAAiB,IAAAv4D,UAAS,CAAE64D,WAAY,CAC/EQ,gBAAiBA,EACjBE,kBAAmBA,EACnBC,eAAgBA,IACdruD,GAAQ,CAAC,GACvB,GAAG,CACCnrC,MAAOq4F,EAAuBr4F,EAAMsH,SACpC6zB,SAAU,IAAWM,WAEzBguH,uBAAuB,QAAQ,WAE3B,IADA,IAAIzvI,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,IAAKwvH,EAAmB/iJ,KAAK7E,MAAM4nJ,GAAoB,IAAApwD,eAAc,MAAC,GAASt/E,GAAM,IAChG,GAAG,CACCha,MAAOq4F,EAAuBr4F,EAAMkvJ,cACpC/zH,SAAU,IAAWM,WAEzB+9D,eAAgBA,EAChB8wD,eAAe,QAAQ,WAEnB,IADA,IAAItwI,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,IAAKuwH,EAAW9jJ,KAAK7E,MAAM2oJ,GAAY,IAAAnxD,eAAc,MAAC,GAASt/E,GAAM,IAChF,GAAG,CACCha,MAAOq4F,EAAuBr4F,EAAMg7G,MACpC7/E,SAAU,IAAWM,WAEzBsvH,iBAAiB,QAAQ,WAErB,IADA,IAAI/wI,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,IAAK8wH,EAAarkJ,KAAK7E,MAAMkpJ,GAAc,IAAA1xD,eAAc,MAAC,GAASt/E,GAAM,IACpF,GAAG,CACCha,MAAOq4F,EAAuBr4F,EAAMmvJ,cACpCh0H,SAAU,IAAWM,WAGjC,CACO,SAAS4zH,EAAer8E,EAASz9D,EAAM5H,EAAMowG,GAChD,IACI/tF,EADAs/H,EAAat8E,GAAWA,EAAQz9D,GAKpC,GAHI+5I,IACAt/H,EAASs/H,EAAW3hJ,IAEpBqiB,EACA,OAAOA,EAEX+tF,EAAQ,IAAI,KAA0B,MAAMj1G,OAAOyM,EAAM,mBAAmBzM,OAAO6E,IACvF,gCC1JA,SAASg2E,IAEP,IAAIhrC,EAAQnyC,KAAK5G,YAAY+sF,yBAAyBnmF,KAAK3D,MAAO2D,KAAKmyC,OACnEA,SACFnyC,KAAKuyC,SAASJ,EAElB,CAEA,SAASirC,EAA0B9qC,GAQjCtyC,KAAKuyC,SALL,SAAiB4tB,GACf,IAAIhuB,EAAQnyC,KAAK5G,YAAY+sF,yBAAyB7zC,EAAW6tB,GACjE,OAAOhuB,QAAwCA,EAAQ,IACzD,EAEsBhyC,KAAKH,MAC7B,CAEA,SAASk9E,EAAoB5qC,EAAWy2G,GACtC,IACE,IAAIjxG,EAAY93C,KAAK3D,MACjB8jE,EAAYngE,KAAKmyC,MACrBnyC,KAAK3D,MAAQi2C,EACbtyC,KAAKmyC,MAAQ42G,EACb/oJ,KAAKgpJ,6BAA8B,EACnChpJ,KAAKipJ,wBAA0BjpJ,KAAKqsI,wBAClCv0F,EACAqoB,EAEJ,CAAE,QACAngE,KAAK3D,MAAQy7C,EACb93C,KAAKmyC,MAAQguB,CACf,CACF,CAQA,SAAS+oF,EAASvoI,GAChB,IAAItnB,EAAYsnB,EAAUtnB,UAE1B,IAAKA,IAAcA,EAAUijJ,iBAC3B,MAAM,IAAIn2I,MAAM,sCAGlB,GACgD,mBAAvCwa,EAAUwlE,0BAC4B,mBAAtC9sF,EAAUgzI,wBAEjB,OAAO1rH,EAMT,IAAIwoI,EAAqB,KACrBC,EAA4B,KAC5BC,EAAsB,KAgB1B,GAf4C,mBAAjChwJ,EAAU8jF,mBACnBgsE,EAAqB,qBACmC,mBAAxC9vJ,EAAUy8E,4BAC1BqzE,EAAqB,6BAE4B,mBAAxC9vJ,EAAU+jF,0BACnBgsE,EAA4B,4BACmC,mBAA/C/vJ,EAAUg5C,mCAC1B+2G,EAA4B,oCAEe,mBAAlC/vJ,EAAU6jF,oBACnBmsE,EAAsB,sBACmC,mBAAzChwJ,EAAUw5E,6BAC1Bw2E,EAAsB,8BAGC,OAAvBF,GAC8B,OAA9BC,GACwB,OAAxBC,EACA,CACA,IAAI9mG,EAAgB5hC,EAAU7iB,aAAe6iB,EAAUxZ,KACnDmiJ,EAC4C,mBAAvC3oI,EAAUwlE,yBACb,6BACA,4BAEN,MAAMhgF,MACJ,2FACEo8C,EACA,SACA+mG,EACA,uDACwB,OAAvBH,EAA8B,OAASA,EAAqB,KAC9B,OAA9BC,EACG,OAASA,EACT,KACqB,OAAxBC,EAA+B,OAASA,EAAsB,IATjE,uIAaJ,CAaA,GARkD,mBAAvC1oI,EAAUwlE,2BACnB9sF,EAAU8jF,mBAAqBA,EAC/B9jF,EAAU+jF,0BAA4BA,GAMS,mBAAtC/jF,EAAUgzI,wBAAwC,CAC3D,GAA4C,mBAAjChzI,EAAUw+C,mBACnB,MAAM,IAAI1xC,MACR,qHAIJ9M,EAAU6jF,oBAAsBA,EAEhC,IAAIrlC,EAAqBx+C,EAAUw+C,mBAEnCx+C,EAAUw+C,mBAAqB,SAC7BC,EACAqoB,EACAopF,GAUA,IAAIC,EAAWxpJ,KAAKgpJ,4BAChBhpJ,KAAKipJ,wBACLM,EAEJ1xG,EAAmB19C,KAAK6F,KAAM83C,EAAWqoB,EAAWqpF,EACtD,CACF,CAEA,OAAO7oI,CACT,gCA9GAw8D,EAAmBssE,8BAA+B,EAClDrsE,EAA0BqsE,8BAA+B,EACzDvsE,EAAoBusE,8BAA+B,gCC7CnD5xJ,EAAQ0B,YAAa,EACrB1B,EAAA,QAAkBA,EAAQ6xJ,QAAU7xJ,EAAQ8xJ,QAAU9xJ,EAAQ+xJ,SAAW/xJ,EAAQgyJ,OAAShyJ,EAAQiyJ,eAAY,EAE9G,IAAIxhC,EAYJ,SAAiCrvH,GAAO,GAAIA,GAAOA,EAAIM,WAAc,OAAON,EAAc,IAAIW,EAAS,CAAC,EAAG,GAAW,MAAPX,EAAe,IAAK,IAAIgB,KAAOhB,EAAO,GAAIa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKgB,GAAM,CAAE,IAAIG,EAAON,OAAOC,gBAAkBD,OAAOE,yBAA2BF,OAAOE,yBAAyBf,EAAKgB,GAAO,CAAC,EAAOG,EAAKT,KAAOS,EAAKC,IAAOP,OAAOC,eAAeH,EAAQK,EAAKG,GAAgBR,EAAOK,GAAOhB,EAAIgB,EAAQ,CAA4B,OAAtBL,EAAOgV,QAAU3V,EAAYW,CAAU,CAZvcU,CAAwB,EAAQ,QAE5ChB,EAASkB,EAAuB,EAAQ,QAExCimD,EAAYjmD,EAAuB,EAAQ,QAE3CuvJ,EAAyB,EAAQ,OAIrC,SAASvvJ,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAF7E,EAAQ,OAUzB,IAAI6wJ,EAAY,YAChBjyJ,EAAQiyJ,UAAYA,EACpB,IAAID,EAAS,SACbhyJ,EAAQgyJ,OAASA,EACjB,IAAID,EAAW,WACf/xJ,EAAQ+xJ,SAAWA,EACnB,IAAID,EAAU,UACd9xJ,EAAQ8xJ,QAAUA,EAClB,IAAID,EAAU,UA2Fd7xJ,EAAQ6xJ,QAAUA,EAElB,IAAIt3E,EAEJ,SAAUhC,GAzGV,IAAwBW,EAAUC,EA4GhC,SAASoB,EAAW/1E,EAAO84B,GACzB,IAAI/yB,EAEJA,EAAQguE,EAAiBj2E,KAAK6F,KAAM3D,EAAO84B,IAAYn1B,KACvD,IAGIgqJ,EAHAC,EAAc90H,EAAQ+0H,gBAEtB39F,EAAS09F,IAAgBA,EAAYE,WAAa9tJ,EAAMo+E,MAAQp+E,EAAMkwD,OAuB1E,OArBAnqD,EAAMgoJ,aAAe,KAEjB/tJ,EAAMiwD,GACJC,GACFy9F,EAAgBH,EAChBznJ,EAAMgoJ,aAAeR,GAErBI,EAAgBL,EAIhBK,EADE3tJ,EAAMk2E,eAAiBl2E,EAAMguJ,aACfP,EAEAD,EAIpBznJ,EAAM+vC,MAAQ,CACZnkC,OAAQg8I,GAEV5nJ,EAAMkoJ,aAAe,KACdloJ,CACT,CA1IgC4uE,EA0GLZ,GA1GLW,EA0GPqB,GA1GwC/4E,UAAYS,OAAO05B,OAAOw9C,EAAW33E,WAAY03E,EAAS13E,UAAUD,YAAc23E,EAAUA,EAASG,UAAYF,EA4IxK,IAAIu5E,EAASn4E,EAAW/4E,UAqQxB,OAnQAkxJ,EAAO9wF,gBAAkB,WACvB,MAAO,CACLywF,gBAAiB,KAGrB,EAEA93E,EAAW+T,yBAA2B,SAAkCzjF,EAAMy9D,GAG5E,OAFaz9D,EAAK4pD,IAEJ6T,EAAUnyD,SAAW87I,EAC1B,CACL97I,OAAQ67I,GAIL,IACT,EAkBAU,EAAOn1G,kBAAoB,WACzBp1C,KAAKwqJ,cAAa,EAAMxqJ,KAAKoqJ,aAC/B,EAEAG,EAAO1yG,mBAAqB,SAA4BC,GACtD,IAAI2yG,EAAa,KAEjB,GAAI3yG,IAAc93C,KAAK3D,MAAO,CAC5B,IAAI2R,EAAShO,KAAKmyC,MAAMnkC,OAEpBhO,KAAK3D,MAAMiwD,GACTt+C,IAAW47I,GAAY57I,IAAW27I,IACpCc,EAAab,GAGX57I,IAAW47I,GAAY57I,IAAW27I,IACpCc,EAAaf,EAGnB,CAEA1pJ,KAAKwqJ,cAAa,EAAOC,EAC3B,EAEAF,EAAO5yG,qBAAuB,WAC5B33C,KAAK0qJ,oBACP,EAEAH,EAAOI,YAAc,WACnB,IACIjwE,EAAMD,EAAOluB,EADb0a,EAAUjnE,KAAK3D,MAAM4qE,QAWzB,OATAyT,EAAOD,EAAQluB,EAAS0a,EAET,MAAXA,GAAsC,iBAAZA,IAC5ByT,EAAOzT,EAAQyT,KACfD,EAAQxT,EAAQwT,MAEhBluB,OAA4BxpD,IAAnBkkE,EAAQ1a,OAAuB0a,EAAQ1a,OAASkuB,GAGpD,CACLC,KAAMA,EACND,MAAOA,EACPluB,OAAQA,EAEZ,EAEAg+F,EAAOC,aAAe,SAAsBI,EAAUH,GAKpD,QAJiB,IAAbG,IACFA,GAAW,GAGM,OAAfH,EAAqB,CAEvBzqJ,KAAK0qJ,qBAEL,IAAInsJ,EAAOkiD,EAAU7xC,QAAQyyC,YAAYrhD,MAErCyqJ,IAAeb,EACjB5pJ,KAAK6qJ,aAAatsJ,EAAMqsJ,GAExB5qJ,KAAK8qJ,YAAYvsJ,EAErB,MAAWyB,KAAK3D,MAAMk2E,eAAiBvyE,KAAKmyC,MAAMnkC,SAAW67I,GAC3D7pJ,KAAKuyC,SAAS,CACZvkC,OAAQ87I,GAGd,EAEAS,EAAOM,aAAe,SAAsBtsJ,EAAMqsJ,GAChD,IAAInoJ,EAASzC,KAETy6E,EAAQz6E,KAAK3D,MAAMo+E,MACnBswE,EAAY/qJ,KAAKm1B,QAAQ+0H,gBAAkBlqJ,KAAKm1B,QAAQ+0H,gBAAgBC,WAAaS,EACrFI,EAAWhrJ,KAAK2qJ,cAChBM,EAAeF,EAAYC,EAASz+F,OAASy+F,EAASvwE,MAGrDmwE,GAAanwE,GASlBz6E,KAAK3D,MAAMgwD,QAAQ9tD,EAAMwsJ,GACzB/qJ,KAAKkrJ,aAAa,CAChBl9I,OAAQ47I,IACP,WACDnnJ,EAAOpG,MAAMitD,WAAW/qD,EAAMwsJ,GAE9BtoJ,EAAO0oJ,gBAAgB5sJ,EAAM0sJ,GAAc,WACzCxoJ,EAAOyoJ,aAAa,CAClBl9I,OAAQ27I,IACP,WACDlnJ,EAAOpG,MAAMwvD,UAAUttD,EAAMwsJ,EAC/B,GACF,GACF,KArBE/qJ,KAAKkrJ,aAAa,CAChBl9I,OAAQ27I,IACP,WACDlnJ,EAAOpG,MAAMwvD,UAAUttD,EACzB,GAkBJ,EAEAgsJ,EAAOO,YAAc,SAAqBvsJ,GACxC,IAAIuE,EAAS9C,KAET06E,EAAO16E,KAAK3D,MAAMq+E,KAClBswE,EAAWhrJ,KAAK2qJ,cAEfjwE,GASL16E,KAAK3D,MAAM8vD,OAAO5tD,GAClByB,KAAKkrJ,aAAa,CAChBl9I,OAAQ07I,IACP,WACD5mJ,EAAOzG,MAAM+vD,UAAU7tD,GAEvBuE,EAAOqoJ,gBAAgB5sJ,EAAMysJ,EAAStwE,MAAM,WAC1C53E,EAAOooJ,aAAa,CAClBl9I,OAAQ67I,IACP,WACD/mJ,EAAOzG,MAAM4sD,SAAS1qD,EACxB,GACF,GACF,KArBEyB,KAAKkrJ,aAAa,CAChBl9I,OAAQ67I,IACP,WACD/mJ,EAAOzG,MAAM4sD,SAAS1qD,EACxB,GAkBJ,EAEAgsJ,EAAOG,mBAAqB,WACA,OAAtB1qJ,KAAKsqJ,eACPtqJ,KAAKsqJ,aAAa7wC,SAClBz5G,KAAKsqJ,aAAe,KAExB,EAEAC,EAAOW,aAAe,SAAsBnC,EAAWvhJ,GAIrDA,EAAWxH,KAAKorJ,gBAAgB5jJ,GAChCxH,KAAKuyC,SAASw2G,EAAWvhJ,EAC3B,EAEA+iJ,EAAOa,gBAAkB,SAAyB5jJ,GAChD,IAAIxD,EAAShE,KAETqrJ,GAAS,EAcb,OAZArrJ,KAAKsqJ,aAAe,SAAUhnJ,GACxB+nJ,IACFA,GAAS,EACTrnJ,EAAOsmJ,aAAe,KACtB9iJ,EAASlE,GAEb,EAEAtD,KAAKsqJ,aAAa7wC,OAAS,WACzB4xC,GAAS,CACX,EAEOrrJ,KAAKsqJ,YACd,EAEAC,EAAOY,gBAAkB,SAAyB5sJ,EAAM0oE,EAAS7Y,GAC/DpuD,KAAKorJ,gBAAgBh9F,GACrB,IAAIk9F,EAA0C,MAAXrkF,IAAoBjnE,KAAK3D,MAAMkvJ,eAE7DhtJ,IAAQ+sJ,GAKTtrJ,KAAK3D,MAAMkvJ,gBACbvrJ,KAAK3D,MAAMkvJ,eAAehtJ,EAAMyB,KAAKsqJ,cAGxB,MAAXrjF,GACFx/D,WAAWzH,KAAKsqJ,aAAcrjF,IAT9Bx/D,WAAWzH,KAAKsqJ,aAAc,EAWlC,EAEAC,EAAOv7I,OAAS,WACd,IAAIhB,EAAShO,KAAKmyC,MAAMnkC,OAExB,GAAIA,IAAW87I,EACb,OAAO,KAGT,IAAI32G,EAAcnzC,KAAK3D,MACnBwB,EAAWs1C,EAAYt1C,SACvB2tJ,EAxXR,SAAuC5vJ,EAAQw3C,GAAY,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAAG,IAA2D3B,EAAKwB,EAA5DD,EAAS,CAAC,EAAO63C,EAAav5C,OAAOiB,KAAKa,GAAqB,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IAAOxB,EAAMo5C,EAAW53C,GAAQ23C,EAAS/O,QAAQpqC,IAAQ,IAAauB,EAAOvB,GAAO2B,EAAO3B,IAAQ,OAAOuB,CAAQ,CAwX7R83C,CAA8BH,EAAa,CAAC,aAkB7D,UAfOq4G,EAAWl/F,UACXk/F,EAAWnB,oBACXmB,EAAWj5E,qBACXi5E,EAAWj/F,cACXi/F,EAAW/wE,aACX+wE,EAAW9wE,YACX8wE,EAAWvkF,eACXukF,EAAWD,sBACXC,EAAWn/F,eACXm/F,EAAWliG,kBACXkiG,EAAW3/F,iBACX2/F,EAAWr/F,cACXq/F,EAAWp/F,iBACXo/F,EAAWviG,SAEM,mBAAbprD,EACT,OAAOA,EAASmQ,EAAQw9I,GAG1B,IAAIh5I,EAAQlZ,EAAOsV,QAAQmkC,SAASod,KAAKtyD,GAEzC,OAAOvE,EAAOsV,QAAQsiC,aAAa1+B,EAAOg5I,EAC5C,EAEOp5E,CACT,CAzSA,CAySE94E,EAAOsV,QAAQ+R,WAiKjB,SAAS0kF,IAAQ,CA/JjBjzB,EAAW4T,aAAe,CACxBkkE,gBAAiB5hC,EAAUztH,QAE7Bu3E,EAAW1Y,kBAAoB,CAC7BwwF,gBAAiB,WAA4B,GAE/C93E,EAAWp0E,UAuJP,CAAC,EAILo0E,EAAWr0E,aAAe,CACxBuuD,IAAI,EACJ+9F,cAAc,EACd93E,eAAe,EACfhmB,QAAQ,EACRkuB,OAAO,EACPC,MAAM,EACNruB,QAASg5C,EACT/7C,WAAY+7C,EACZx5C,UAAWw5C,EACXl5C,OAAQk5C,EACRj5C,UAAWi5C,EACXp8C,SAAUo8C,GAEZjzB,EAAW03E,UAAY,EACvB13E,EAAWy3E,OAAS,EACpBz3E,EAAWw3E,SAAW,EACtBx3E,EAAWu3E,QAAU,EACrBv3E,EAAWs3E,QAAU,EAErB,IAAItlJ,GAAW,EAAI2lJ,EAAuBb,UAAU92E,GAEpDv6E,EAAA,QAAkBuM,gCC3lBlB,IAEgCnL,EALhCpB,EAAQ0B,YAAa,EACrB1B,EAAQ4zJ,gBAAkB5zJ,EAAQ6zJ,mBAAgB,GAIlBzyJ,EAFQ,EAAQ,SAEKA,EAAIM,WAOzD1B,EAAQ6zJ,cADU,KAclB7zJ,EAAQ4zJ,gBADD,mCC1BQ,SAAS,EAAgB7rJ,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,oCAExB,CCJe,SAAS9G,EAAQC,GAG9B,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAC1H,EAAGD,EAAQC,EACb,CCNe,SAAS0yJ,EAAe72H,GACrC,IAAI76B,ECFS,SAAsBmgD,EAAOwxG,GAC1C,GAAuB,WAAnB5yJ,EAAQohD,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAIyxG,EAAOzxG,EAAMlhD,OAAO6sG,aACxB,QAAahjG,IAAT8oJ,EAAoB,CACtB,IAAIjhD,EAAMihD,EAAK1xJ,KAAKigD,EAAOwxG,UAC3B,GAAqB,WAAjB5yJ,EAAQ4xG,GAAmB,OAAOA,EACtC,MAAM,IAAI9qG,UAAU,+CACtB,CACA,OAA4Bm7B,OAAiBmf,EAC/C,CDPY,CAAYtlB,GACtB,MAAwB,WAAjB97B,EAAQiB,GAAoBA,EAAMghC,OAAOhhC,EAClD,CEJA,SAASsF,EAAkB/D,EAAQa,GACjC,IAAK,IAAIZ,EAAI,EAAGA,EAAIY,EAAMV,OAAQF,IAAK,CACrC,IAAI+D,EAAanD,EAAMZ,GACvB+D,EAAWpE,WAAaoE,EAAWpE,aAAc,EACjDoE,EAAWtD,cAAe,EACtB,UAAWsD,IAAYA,EAAWrD,UAAW,GACjDrC,OAAOC,eAAeyB,EAAQ,EAAcgE,EAAWvF,KAAMuF,EAC/D,CACF,CACe,SAAS,EAAaK,EAAaU,EAAYurJ,GAM5D,OALIvrJ,GAAYhB,EAAkBM,EAAYxG,UAAWkH,GACrDurJ,GAAavsJ,EAAkBM,EAAaisJ,GAChDhyJ,OAAOC,eAAe8F,EAAa,YAAa,CAC9C1D,UAAU,IAEL0D,CACT,CCjBe,SAASksJ,EAAuBlzJ,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIq3E,eAAe,6DAE3B,OAAOr3E,CACT,CCHe,SAASo3E,EAA2Bp3E,EAAMsB,GACvD,GAAIA,IAA2B,WAAlBnB,EAAQmB,IAAsC,mBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAI2F,UAAU,4DAEtB,OAAO,EAAsBjH,EAC/B,CCTe,SAASmzJ,EAAgBpuF,GAItC,OAHAouF,EAAkBlyJ,OAAOm3E,eAAiBn3E,OAAOitF,eAAe5mF,OAAS,SAAyBy9D,GAChG,OAAOA,EAAEsT,WAAap3E,OAAOitF,eAAenpB,EAC9C,EACOouF,EAAgBpuF,EACzB,CCLe,SAASquF,EAAgBruF,EAAGtxC,GAKzC,OAJA2/H,EAAkBnyJ,OAAOm3E,eAAiBn3E,OAAOm3E,eAAe9wE,OAAS,SAAyBy9D,EAAGtxC,GAEnG,OADAsxC,EAAEsT,UAAY5kD,EACPsxC,CACT,EACOquF,EAAgBruF,EAAGtxC,EAC5B,CCLe,SAAS6kD,EAAUJ,EAAUC,GAC1C,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIlxE,UAAU,sDAEtBixE,EAAS13E,UAAYS,OAAO05B,OAAOw9C,GAAcA,EAAW33E,UAAW,CACrED,YAAa,CACX6C,MAAO80E,EACP50E,UAAU,EACVD,cAAc,KAGlBpC,OAAOC,eAAeg3E,EAAU,YAAa,CAC3C50E,UAAU,IAER60E,GAAY,EAAeD,EAAUC,EAC3C,CCfe,SAAS,EAAgB/3E,EAAKgB,EAAKgC,GAYhD,OAXAhC,EAAM,EAAcA,MACThB,EACTa,OAAOC,eAAed,EAAKgB,EAAK,CAC9BgC,MAAOA,EACPb,YAAY,EACZc,cAAc,EACdC,UAAU,IAGZlD,EAAIgB,GAAOgC,EAENhD,CACT,8FCde,SAASg3C,IAYtB,OAXAA,EAAWn2C,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAC1D,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GACvB,IAAK,IAAIxB,KAAO2B,EACV9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAC/CuB,EAAOvB,GAAO2B,EAAO3B,GAG3B,CACA,OAAOuB,CACT,EACOy0C,EAAS30C,MAAM0E,KAAMtE,UAC9B,CCbA,SAASyJ,EAAEoc,GAAG,IAAIgC,EAAE0Q,EAAE3tB,EAAE,GAAG,GAAG,iBAAiBib,GAAG,iBAAiBA,EAAEjb,GAAGib,OAAO,GAAG,iBAAiBA,EAAE,GAAGrc,MAAMwgC,QAAQnkB,GAAG,IAAIgC,EAAE,EAAEA,EAAEhC,EAAE5lB,OAAO4nB,IAAIhC,EAAEgC,KAAK0Q,EAAE9uB,EAAEoc,EAAEgC,OAAOjd,IAAIA,GAAG,KAAKA,GAAG2tB,QAAQ,IAAI1Q,KAAKhC,EAAEA,EAAEgC,KAAKjd,IAAIA,GAAG,KAAKA,GAAGid,GAAG,OAAOjd,CAAC,CAA2H,QAAnH,WAAgB,IAAI,IAAIib,EAAEgC,EAAE0Q,EAAE,EAAE3tB,EAAE,GAAG2tB,EAAEv4B,UAAUC,SAAS4lB,EAAE7lB,UAAUu4B,QAAQ1Q,EAAEpe,EAAEoc,MAAMjb,IAAIA,GAAG,KAAKA,GAAGid,GAAG,OAAOjd,CAAC,ECGlV,SAAS4lJ,EAAkDxpJ,GACxE,IAAIypJ,EAAYzpJ,EAAKypJ,UACjBC,EAAW1pJ,EAAK0pJ,SAChBC,EAA0B3pJ,EAAK2pJ,wBAC/BC,EAA+B5pJ,EAAK4pJ,6BACpCC,EAAiB7pJ,EAAK6pJ,eACtBC,EAAe9pJ,EAAK8pJ,aACpBC,EAAoB/pJ,EAAK+pJ,kBACzBC,EAAgBhqJ,EAAKgqJ,cACrBC,EAAqCjqJ,EAAKiqJ,mCAI1CR,IAAcI,IAAuC,iBAAbH,GAAiD,iBAAjBI,GAA8BJ,IAAaI,KACrHH,EAAwBC,GAGpBI,GAAiB,GAAKA,IAAkBD,GAC1CE,IAGN,CCvBe,SAAS57G,EAAyBn1C,EAAQw3C,GACvD,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAC5B,IACI3B,EAAKwB,EADLD,ECHS,SAAuCI,EAAQw3C,GAC5D,GAAc,MAAVx3C,EAAgB,MAAO,CAAC,EAC5B,IAEI3B,EAAKwB,EAFLD,EAAS,CAAC,EACV63C,EAAav5C,OAAOiB,KAAKa,GAE7B,IAAKH,EAAI,EAAGA,EAAI43C,EAAW13C,OAAQF,IACjCxB,EAAMo5C,EAAW53C,GACb23C,EAAS/O,QAAQpqC,IAAQ,IAC7BuB,EAAOvB,GAAO2B,EAAO3B,IAEvB,OAAOuB,CACT,CDRe,CAA6BI,EAAQw3C,GAElD,GAAIt5C,OAAOkB,sBAAuB,CAChC,IAAIu4C,EAAmBz5C,OAAOkB,sBAAsBY,GACpD,IAAKH,EAAI,EAAGA,EAAI83C,EAAiB53C,OAAQF,IACvCxB,EAAMs5C,EAAiB93C,GACnB23C,EAAS/O,QAAQpqC,IAAQ,GACxBH,OAAOT,UAAUm6C,qBAAqBr5C,KAAKyB,EAAQ3B,KACxDuB,EAAOvB,GAAO2B,EAAO3B,GAEzB,CACA,OAAOuB,CACT,CEbA,ICKIoxJ,EAEJ,WAKE,SAASA,EAA2BlqJ,GAClC,IAAIypJ,EAAYzpJ,EAAKypJ,UACjBU,EAAiBnqJ,EAAKmqJ,eACtBC,EAAoBpqJ,EAAKoqJ,kBAE7B,EAAgB9sJ,KAAM4sJ,GAEtB,EAAgB5sJ,KAAM,2BAA4B,CAAC,GAEnD,EAAgBA,KAAM,sBAAuB,GAE7C,EAAgBA,KAAM,qBAAsB,GAE5C,EAAgBA,KAAM,kBAAc,GAEpC,EAAgBA,KAAM,uBAAmB,GAEzC,EAAgBA,KAAM,0BAAsB,GAE5CA,KAAK+sJ,gBAAkBF,EACvB7sJ,KAAKgtJ,WAAab,EAClBnsJ,KAAKitJ,mBAAqBH,CAC5B,CAqQA,OAnQA,EAAaF,EAA4B,CAAC,CACxC3yJ,IAAK,qBACLgC,MAAO,WACL,OAAO,CACT,GACC,CACDhC,IAAK,YACLgC,MAAO,SAAmB24E,GACxB,IAAIu3E,EAAYv3E,EAAMu3E,UAClBW,EAAoBl4E,EAAMk4E,kBAC1BD,EAAiBj4E,EAAMi4E,eAC3B7sJ,KAAKgtJ,WAAab,EAClBnsJ,KAAKitJ,mBAAqBH,EAC1B9sJ,KAAK+sJ,gBAAkBF,CACzB,GACC,CACD5yJ,IAAK,eACLgC,MAAO,WACL,OAAO+D,KAAKgtJ,UACd,GACC,CACD/yJ,IAAK,uBACLgC,MAAO,WACL,OAAO+D,KAAKitJ,kBACd,GACC,CACDhzJ,IAAK,uBACLgC,MAAO,WACL,OAAO+D,KAAKktJ,kBACd,GACC,CACDjzJ,IAAK,sBACLgC,MAAO,WACL,OAAO,CACT,GAMC,CACDhC,IAAK,2BACLgC,MAAO,SAAkCoiB,GACvC,GAAIA,EAAQ,GAAKA,GAASre,KAAKgtJ,WAC7B,MAAM7mJ,MAAM,mBAAmB7D,OAAO+b,EAAO,4BAA4B/b,OAAOtC,KAAKgtJ,aAGvF,GAAI3uI,EAAQre,KAAKktJ,mBAIf,IAHA,IAAIC,EAAkCntJ,KAAKotJ,uCACvC3oJ,EAAS0oJ,EAAgC1oJ,OAAS0oJ,EAAgCv2I,KAE7Enb,EAAIuE,KAAKktJ,mBAAqB,EAAGzxJ,GAAK4iB,EAAO5iB,IAAK,CACzD,IAAImb,EAAO5W,KAAK+sJ,gBAAgB,CAC9B1uI,MAAO5iB,IAKT,QAAasH,IAAT6T,GAAsBiZ,MAAMjZ,GAC9B,MAAMzQ,MAAM,kCAAkC7D,OAAO7G,EAAG,cAAc6G,OAAOsU,IAC3D,OAATA,GACT5W,KAAKqtJ,yBAAyB5xJ,GAAK,CACjCgJ,OAAQA,EACRmS,KAAM,GAER5W,KAAKstJ,kBAAoBjvI,IAEzBre,KAAKqtJ,yBAAyB5xJ,GAAK,CACjCgJ,OAAQA,EACRmS,KAAMA,GAERnS,GAAUmS,EACV5W,KAAKktJ,mBAAqB7uI,EAE9B,CAGF,OAAOre,KAAKqtJ,yBAAyBhvI,EACvC,GACC,CACDpkB,IAAK,uCACLgC,MAAO,WACL,OAAO+D,KAAKktJ,oBAAsB,EAAIltJ,KAAKqtJ,yBAAyBrtJ,KAAKktJ,oBAAsB,CAC7FzoJ,OAAQ,EACRmS,KAAM,EAEV,GAOC,CACD3c,IAAK,eACLgC,MAAO,WACL,IAAIkxJ,EAAkCntJ,KAAKotJ,uCAI3C,OAH+BD,EAAgC1oJ,OAAS0oJ,EAAgCv2I,MAC/E5W,KAAKgtJ,WAAahtJ,KAAKktJ,mBAAqB,GACfltJ,KAAKitJ,kBAE7D,GAaC,CACDhzJ,IAAK,2BACLgC,MAAO,SAAkCsxJ,GACvC,IAAIC,EAAcD,EAAMr8I,MACpBA,OAAwB,IAAhBs8I,EAAyB,OAASA,EAC1CC,EAAgBF,EAAME,cACtBrpH,EAAgBmpH,EAAMnpH,cACtBspH,EAAcH,EAAMG,YAExB,GAAID,GAAiB,EACnB,OAAO,EAGT,IAGIE,EAHAC,EAAQ5tJ,KAAK6tJ,yBAAyBH,GACtCI,EAAYF,EAAMnpJ,OAClBspJ,EAAYD,EAAYL,EAAgBG,EAAMh3I,KAGlD,OAAQ1F,GACN,IAAK,QACHy8I,EAAcG,EACd,MAEF,IAAK,MACHH,EAAcI,EACd,MAEF,IAAK,SACHJ,EAAcG,GAAaL,EAAgBG,EAAMh3I,MAAQ,EACzD,MAEF,QACE+2I,EAAcvoJ,KAAK8F,IAAI6iJ,EAAW3oJ,KAAKm/B,IAAIupH,EAAW1pH,IAI1D,IAAI4pH,EAAYhuJ,KAAKiuJ,eACrB,OAAO7oJ,KAAK8F,IAAI,EAAG9F,KAAKm/B,IAAIypH,EAAYP,EAAeE,GACzD,GACC,CACD1zJ,IAAK,sBACLgC,MAAO,SAA6BiyJ,GAClC,IAAIT,EAAgBS,EAAOT,cACvBhpJ,EAASypJ,EAAOzpJ,OAGpB,GAAkB,IAFFzE,KAAKiuJ,eAGnB,MAAO,CAAC,EAGV,IAAIH,EAAYrpJ,EAASgpJ,EAErB3yH,EAAQ96B,KAAKmuJ,iBAAiB1pJ,GAE9BmpJ,EAAQ5tJ,KAAK6tJ,yBAAyB/yH,GAC1Cr2B,EAASmpJ,EAAMnpJ,OAASmpJ,EAAMh3I,KAG9B,IAFA,IAAIw3I,EAAOtzH,EAEJr2B,EAASqpJ,GAAaM,EAAOpuJ,KAAKgtJ,WAAa,GACpDoB,IACA3pJ,GAAUzE,KAAK6tJ,yBAAyBO,GAAMx3I,KAGhD,MAAO,CACLkkB,MAAOA,EACPszH,KAAMA,EAEV,GAOC,CACDn0J,IAAK,YACLgC,MAAO,SAAmBoiB,GACxBre,KAAKktJ,mBAAqB9nJ,KAAKm/B,IAAIvkC,KAAKktJ,mBAAoB7uI,EAAQ,EACtE,GACC,CACDpkB,IAAK,gBACLgC,MAAO,SAAuBoyJ,EAAMC,EAAK7pJ,GACvC,KAAO6pJ,GAAOD,GAAM,CAClB,IAAIE,EAASD,EAAMlpJ,KAAKoF,OAAO6jJ,EAAOC,GAAO,GACzClqH,EAAgBpkC,KAAK6tJ,yBAAyBU,GAAQ9pJ,OAE1D,GAAI2/B,IAAkB3/B,EACpB,OAAO8pJ,EACEnqH,EAAgB3/B,EACzB6pJ,EAAMC,EAAS,EACNnqH,EAAgB3/B,IACzB4pJ,EAAOE,EAAS,EAEpB,CAEA,OAAID,EAAM,EACDA,EAAM,EAEN,CAEX,GACC,CACDr0J,IAAK,qBACLgC,MAAO,SAA4BoiB,EAAO5Z,GAGxC,IAFA,IAAI+pJ,EAAW,EAERnwI,EAAQre,KAAKgtJ,YAAchtJ,KAAK6tJ,yBAAyBxvI,GAAO5Z,OAASA,GAC9E4Z,GAASmwI,EACTA,GAAY,EAGd,OAAOxuJ,KAAKyuJ,cAAcrpJ,KAAKm/B,IAAIlmB,EAAOre,KAAKgtJ,WAAa,GAAI5nJ,KAAKoF,MAAM6T,EAAQ,GAAI5Z,EACzF,GAQC,CACDxK,IAAK,mBACLgC,MAAO,SAA0BwI,GAC/B,GAAIorB,MAAMprB,GACR,MAAM0B,MAAM,kBAAkB7D,OAAOmC,EAAQ,eAK/CA,EAASW,KAAK8F,IAAI,EAAGzG,GACrB,IAAI0oJ,EAAkCntJ,KAAKotJ,uCACvCsB,EAAoBtpJ,KAAK8F,IAAI,EAAGlL,KAAKktJ,oBAEzC,OAAIC,EAAgC1oJ,QAAUA,EAErCzE,KAAKyuJ,cAAcC,EAAmB,EAAGjqJ,GAKzCzE,KAAK2uJ,mBAAmBD,EAAmBjqJ,EAEtD,KAGKmoJ,CACT,CAjSA,GCCIgC,EAEJ,WACE,SAASA,EAAkClsJ,GACzC,IAAImsJ,EAAqBnsJ,EAAKosJ,cAC1BA,OAAuC,IAAvBD,ECXG,oBAAXl2J,QAILA,OAAOo2J,OAPY,SADC,KDe+CF,EACtEX,EAASn9G,EAAyBruC,EAAM,CAAC,kBAE7C,EAAgB1C,KAAM4uJ,GAEtB,EAAgB5uJ,KAAM,mCAA+B,GAErD,EAAgBA,KAAM,sBAAkB,GAGxCA,KAAKgvJ,4BAA8B,IAAIpC,EAA2BsB,GAClEluJ,KAAKivJ,eAAiBH,CACxB,CAyKA,OAvKA,EAAaF,EAAmC,CAAC,CAC/C30J,IAAK,qBACLgC,MAAO,WACL,OAAO+D,KAAKgvJ,4BAA4Bf,eAAiBjuJ,KAAKivJ,cAChE,GACC,CACDh1J,IAAK,YACLgC,MAAO,SAAmBiyJ,GACxBluJ,KAAKgvJ,4BAA4B/uJ,UAAUiuJ,EAC7C,GACC,CACDj0J,IAAK,eACLgC,MAAO,WACL,OAAO+D,KAAKgvJ,4BAA4BE,cAC1C,GACC,CACDj1J,IAAK,uBACLgC,MAAO,WACL,OAAO+D,KAAKgvJ,4BAA4BG,sBAC1C,GACC,CACDl1J,IAAK,uBACLgC,MAAO,WACL,OAAO+D,KAAKgvJ,4BAA4BI,sBAC1C,GAMC,CACDn1J,IAAK,sBACLgC,MAAO,SAA6B24E,GAClC,IAAI64E,EAAgB74E,EAAM64E,cACtBhpJ,EAASmwE,EAAMnwE,OAEfupJ,EAAYhuJ,KAAKgvJ,4BAA4Bf,eAE7CoB,EAAgBrvJ,KAAKiuJ,eAErBqB,EAAmBtvJ,KAAKuvJ,qBAAqB,CAC/C9B,cAAeA,EACfhpJ,OAAQA,EACRupJ,UAAWqB,IAGb,OAAOjqJ,KAAKmyD,MAAM+3F,GAAoBD,EAAgBrB,GACxD,GACC,CACD/zJ,IAAK,2BACLgC,MAAO,SAAkCoiB,GACvC,OAAOre,KAAKgvJ,4BAA4BnB,yBAAyBxvI,EACnE,GACC,CACDpkB,IAAK,uCACLgC,MAAO,WACL,OAAO+D,KAAKgvJ,4BAA4B5B,sCAC1C,GAGC,CACDnzJ,IAAK,eACLgC,MAAO,WACL,OAAOmJ,KAAKm/B,IAAIvkC,KAAKivJ,eAAgBjvJ,KAAKgvJ,4BAA4Bf,eACxE,GAGC,CACDh0J,IAAK,2BACLgC,MAAO,SAAkCsxJ,GACvC,IAAIC,EAAcD,EAAMr8I,MACpBA,OAAwB,IAAhBs8I,EAAyB,OAASA,EAC1CC,EAAgBF,EAAME,cACtBrpH,EAAgBmpH,EAAMnpH,cACtBspH,EAAcH,EAAMG,YACxBtpH,EAAgBpkC,KAAKwvJ,oBAAoB,CACvC/B,cAAeA,EACfhpJ,OAAQ2/B,IAGV,IAAI3/B,EAASzE,KAAKgvJ,4BAA4BS,yBAAyB,CACrEv+I,MAAOA,EACPu8I,cAAeA,EACfrpH,cAAeA,EACfspH,YAAaA,IAGf,OAAO1tJ,KAAK0vJ,oBAAoB,CAC9BjC,cAAeA,EACfhpJ,OAAQA,GAEZ,GAGC,CACDxK,IAAK,sBACLgC,MAAO,SAA6B0zJ,GAClC,IAAIlC,EAAgBkC,EAAMlC,cACtBhpJ,EAASkrJ,EAAMlrJ,OAKnB,OAJAA,EAASzE,KAAKwvJ,oBAAoB,CAChC/B,cAAeA,EACfhpJ,OAAQA,IAEHzE,KAAKgvJ,4BAA4BY,oBAAoB,CAC1DnC,cAAeA,EACfhpJ,OAAQA,GAEZ,GACC,CACDxK,IAAK,YACLgC,MAAO,SAAmBoiB,GACxBre,KAAKgvJ,4BAA4Ba,UAAUxxI,EAC7C,GACC,CACDpkB,IAAK,uBACLgC,MAAO,SAA8B6zJ,GACnC,IAAIrC,EAAgBqC,EAAMrC,cACtBhpJ,EAASqrJ,EAAMrrJ,OACfupJ,EAAY8B,EAAM9B,UACtB,OAAOA,GAAaP,EAAgB,EAAIhpJ,GAAUupJ,EAAYP,EAChE,GACC,CACDxzJ,IAAK,sBACLgC,MAAO,SAA6B8zJ,GAClC,IAAItC,EAAgBsC,EAAMtC,cACtBhpJ,EAASsrJ,EAAMtrJ,OAEfupJ,EAAYhuJ,KAAKgvJ,4BAA4Bf,eAE7CoB,EAAgBrvJ,KAAKiuJ,eAEzB,GAAID,IAAcqB,EAChB,OAAO5qJ,EAEP,IAAI6qJ,EAAmBtvJ,KAAKuvJ,qBAAqB,CAC/C9B,cAAeA,EACfhpJ,OAAQA,EACRupJ,UAAWA,IAGb,OAAO5oJ,KAAKmyD,MAAM+3F,GAAoBD,EAAgB5B,GAE1D,GACC,CACDxzJ,IAAK,sBACLgC,MAAO,SAA6B+zJ,GAClC,IAAIvC,EAAgBuC,EAAMvC,cACtBhpJ,EAASurJ,EAAMvrJ,OAEfupJ,EAAYhuJ,KAAKgvJ,4BAA4Bf,eAE7CoB,EAAgBrvJ,KAAKiuJ,eAEzB,GAAID,IAAcqB,EAChB,OAAO5qJ,EAEP,IAAI6qJ,EAAmBtvJ,KAAKuvJ,qBAAqB,CAC/C9B,cAAeA,EACfhpJ,OAAQA,EACRupJ,UAAWqB,IAGb,OAAOjqJ,KAAKmyD,MAAM+3F,GAAoBtB,EAAYP,GAEtD,KAGKmB,CACT,CAzLA,GETe,SAASqB,IACtB,IAAIC,IAAiBx0J,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,KAAmBA,UAAU,GAChFy0J,EAAgB,CAAC,EACrB,OAAO,SAAUztJ,GACf,IAAI8E,EAAW9E,EAAK8E,SAChB4oJ,EAAU1tJ,EAAK0tJ,QACfr1J,EAAOjB,OAAOiB,KAAKq1J,GACnBC,GAAkBH,GAAkBn1J,EAAKswB,OAAM,SAAUpxB,GAC3D,IAAIgC,EAAQm0J,EAAQn2J,GACpB,OAAOiL,MAAMwgC,QAAQzpC,GAASA,EAAMN,OAAS,EAAIM,GAAS,CAC5D,IACIq0J,EAAev1J,EAAKY,SAAW7B,OAAOiB,KAAKo1J,GAAex0J,QAAUZ,EAAKkwB,MAAK,SAAUhxB,GAC1F,IAAIs2J,EAAcJ,EAAcl2J,GAC5BgC,EAAQm0J,EAAQn2J,GACpB,OAAOiL,MAAMwgC,QAAQzpC,GAASs0J,EAAY5rJ,KAAK,OAAS1I,EAAM0I,KAAK,KAAO4rJ,IAAgBt0J,CAC5F,IACAk0J,EAAgBC,EAEZC,GAAkBC,GACpB9oJ,EAAS4oJ,EAEb,CACF,CCnBe,SAASI,EAAwB9tJ,GAC9C,IAAI0pJ,EAAW1pJ,EAAK0pJ,SAChBqE,EAA6B/tJ,EAAK+tJ,2BAClCC,EAAqBhuJ,EAAKguJ,mBAC1BC,EAAmBjuJ,EAAKiuJ,iBACxBC,EAA4BluJ,EAAKkuJ,0BACjCC,EAAwBnuJ,EAAKmuJ,sBAC7BC,EAAepuJ,EAAKouJ,aACpBC,EAAeruJ,EAAKquJ,aACpBC,EAAoBtuJ,EAAKsuJ,kBACzBtE,EAAgBhqJ,EAAKgqJ,cACrB91I,EAAOlU,EAAKkU,KACZq6I,EAA4BvuJ,EAAKuuJ,0BACjCC,EAA4BxuJ,EAAKwuJ,0BACjC/E,EAAYsE,EAA2BvB,eACvCiC,EAAmBzE,GAAiB,GAAKA,EAAgBP,EAIzDgF,IAHiBv6I,IAASk6I,GAAgBG,IAA8BN,GAAwC,iBAAbvE,GAAyBA,IAAauE,GAGlGK,IAAsBJ,GAA6BlE,IAAkBmE,GAC9GK,EAA0BxE,IAEhByE,GAAoBhF,EAAY,IAAMv1I,EAAOk6I,GAAgB3E,EAAYuE,IAK/EK,EAAeN,EAA2BxC,eAAiBr3I,GAC7Ds6I,EAA0B/E,EAAY,EAG5C,CCrCA,UAAoC,oBAAXxzJ,SAA0BA,OAAOopB,WAAYppB,OAAOopB,SAASpkB,eCCtF,IAAIiZ,ECAA6qE,EDCW,SAAS2vE,EAAczrE,GACpC,KAAK/uE,GAAiB,IAATA,GAAc+uE,IACrB0rE,EAAW,CACb,IAAIzrE,EAAY7jE,SAASpkB,cAAc,OACvCioF,EAAUvuE,MAAMvD,SAAW,WAC3B8xE,EAAUvuE,MAAMuB,IAAM,UACtBgtE,EAAUvuE,MAAM/E,MAAQ,OACxBszE,EAAUvuE,MAAMkkC,OAAS,OACzBqqC,EAAUvuE,MAAM2wC,SAAW,SAC3BjmC,SAASnU,KAAKyjD,YAAYu0B,GAC1BhvE,EAAOgvE,EAAUnoB,YAAcmoB,EAAUzxB,YACzCpyC,SAASnU,KAAK+jD,YAAYi0B,EAC5B,CAGF,OAAOhvE,CACT,CCLA,ICJI46B,EAAQE,EDIR4/G,GATF7vE,EADoB,oBAAX9oF,OACHA,OACmB,oBAATE,KACVA,KAEA,CAAC,GAKSw8C,uBAAyBosC,EAAI8vE,6BAA+B9vE,EAAI+vE,0BAA4B/vE,EAAIgwE,wBAA0BhwE,EAAIiwE,yBAA2B,SAAUlqJ,GACnL,OAAOi6E,EAAIh6E,WAAWD,EAAU,IAAO,GACzC,EAEIiyG,EAASh4B,EAAI16B,sBAAwB06B,EAAIkwE,4BAA8BlwE,EAAImwE,yBAA2BnwE,EAAIowE,uBAAyBpwE,EAAIqwE,wBAA0B,SAAU/4J,GAC7K0oF,EAAIr1E,aAAarT,EACnB,EAEWg5J,EAAMT,EACNU,EAAMv4C,EElBNw4C,EAAyB,SAAgCC,GAClE,OAAOF,EAAIE,EAAMn5J,GACnB,EAQWo5J,EAA0B,SAAiC3qJ,EAAU0mD,GAC9E,IAAIpzB,EAEJ57B,QAAQC,UAAU2O,MAAK,WACrBgtB,EAAQv4B,KAAK8I,KACf,IAEA,IAQI6mJ,EAAQ,CACVn5J,GAAIg5J,GATQ,SAAS9qF,IACjB1kE,KAAK8I,MAAQyvB,GAASozB,EACxB1mD,EAASrN,OAET+3J,EAAMn5J,GAAKg5J,EAAI9qF,EAEnB,KAKA,OAAOirF,CACT,EDtBA,SAASt3J,EAAQC,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASQ,EAAcC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAKb,EAAQgB,GAAQ,GAAMC,SAAQ,SAAU5B,GAAO,EAAgBuB,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmBhB,EAAQgB,GAAQC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAkB9f,IAMH42J,EAES,YAWTC,GAAQ3gH,EAAQF,EAEpB,SAAU8gH,GAIR,SAASD,EAAKh2J,GACZ,IAAI+F,EAEJ,EAAgBpC,KAAMqyJ,GAItB,EAAgBtG,EAFhB3pJ,EAAQ6tE,EAA2BjwE,KAAMgsJ,EAAgBqG,GAAMl4J,KAAK6F,KAAM3D,KAE3B,0BAA2B4zJ,KAE1E,EAAgBlE,EAAuB3pJ,GAAQ,oBAAqB6tJ,GAAuB,IAE3F,EAAgBlE,EAAuB3pJ,GAAQ,iCAAkC,MAEjF,EAAgB2pJ,EAAuB3pJ,GAAQ,8BAA+B,MAE9E,EAAgB2pJ,EAAuB3pJ,GAAQ,4BAA4B,GAE3E,EAAgB2pJ,EAAuB3pJ,GAAQ,2BAA2B,GAE1E,EAAgB2pJ,EAAuB3pJ,GAAQ,2BAA4B,GAE3E,EAAgB2pJ,EAAuB3pJ,GAAQ,yBAA0B,GAEzE,EAAgB2pJ,EAAuB3pJ,GAAQ,6BAA6B,GAE5E,EAAgB2pJ,EAAuB3pJ,GAAQ,2BAAuB,GAEtE,EAAgB2pJ,EAAuB3pJ,GAAQ,0BAAsB,GAErE,EAAgB2pJ,EAAuB3pJ,GAAQ,yBAAqB,GAEpE,EAAgB2pJ,EAAuB3pJ,GAAQ,wBAAoB,GAEnE,EAAgB2pJ,EAAuB3pJ,GAAQ,sBAAkB,GAEjE,EAAgB2pJ,EAAuB3pJ,GAAQ,qBAAiB,GAEhE,EAAgB2pJ,EAAuB3pJ,GAAQ,4BAA6B,GAE5E,EAAgB2pJ,EAAuB3pJ,GAAQ,2BAA4B,GAE3E,EAAgB2pJ,EAAuB3pJ,GAAQ,yBAA0B,GAEzE,EAAgB2pJ,EAAuB3pJ,GAAQ,wBAAyB,GAExE,EAAgB2pJ,EAAuB3pJ,GAAQ,yBAAqB,GAEpE,EAAgB2pJ,EAAuB3pJ,GAAQ,0BAAsB,GAErE,EAAgB2pJ,EAAuB3pJ,GAAQ,sCAAkC,GAEjF,EAAgB2pJ,EAAuB3pJ,GAAQ,cAAe,CAAC,GAE/D,EAAgB2pJ,EAAuB3pJ,GAAQ,aAAc,CAAC,GAE9D,EAAgB2pJ,EAAuB3pJ,GAAQ,gCAAgC,WAC7EA,EAAMmwJ,+BAAiC,KAEvCnwJ,EAAMmwC,SAAS,CACbigH,aAAa,EACbC,uBAAuB,GAE3B,IAEA,EAAgB1G,EAAuB3pJ,GAAQ,+BAA+B,WAC5E,IAAIswJ,EAAoBtwJ,EAAM/F,MAAMq2J,kBAEpCtwJ,EAAMuwJ,wBAAwB,CAC5BnrJ,SAAUkrJ,EACVtC,QAAS,CACPwC,yBAA0BxwJ,EAAMywJ,kBAChCC,wBAAyB1wJ,EAAM2wJ,iBAC/BC,iBAAkB5wJ,EAAM6wJ,0BACxBC,gBAAiB9wJ,EAAM+wJ,yBACvBC,sBAAuBhxJ,EAAMixJ,eAC7BC,qBAAsBlxJ,EAAMmxJ,cAC5BC,cAAepxJ,EAAMqxJ,uBACrBC,aAActxJ,EAAMuxJ,wBAG1B,IAEA,EAAgB5H,EAAuB3pJ,GAAQ,6BAA6B,SAAUnF,GACpFmF,EAAMwxJ,oBAAsB32J,CAC9B,IAEA,EAAgB8uJ,EAAuB3pJ,GAAQ,aAAa,SAAUkB,GAIhEA,EAAM9H,SAAW4G,EAAMwxJ,qBACzBxxJ,EAAMyxJ,kBAAkBvwJ,EAAM9H,OAElC,IAEA,IAAIs4J,EAA+B,IAAIlF,EAAkC,CACvEzC,UAAW9vJ,EAAM0yH,YACjB89B,eAAgB,SAAwBqB,GACtC,OAAOmE,EAAK0B,gBAAgB13J,EAAM23J,YAA3B3B,CAAwCnE,EACjD,EACApB,kBAAmBuF,EAAK4B,wBAAwB53J,KAE9C63J,EAA4B,IAAItF,EAAkC,CACpEzC,UAAW9vJ,EAAM83J,SACjBtH,eAAgB,SAAwBqB,GACtC,OAAOmE,EAAK0B,gBAAgB13J,EAAM+3J,UAA3B/B,CAAsCnE,EAC/C,EACApB,kBAAmBuF,EAAKgC,qBAAqBh4J,KAiC/C,OA/BA+F,EAAM+vC,MAAQ,CACZmiH,cAAe,CACbR,6BAA8BA,EAC9BI,0BAA2BA,EAC3BK,gBAAiBl4J,EAAM23J,YACvBQ,cAAen4J,EAAM+3J,UACrBK,gBAAiBp4J,EAAM0yH,YACvB2lC,aAAcr4J,EAAM83J,SACpBQ,iBAAuC,IAAtBt4J,EAAMm2J,YACvBoC,mBAAoBv4J,EAAMw4J,eAC1BC,gBAAiBz4J,EAAM04J,YACvB3D,cAAe,EACf4D,uBAAuB,GAEzBxC,aAAa,EACbyC,0BEnLgC,EFoLhCC,wBEpLgC,EFqLhC1jG,WAAY,EACZC,UAAW,EACX0jG,2BAA4B,KAC5B1C,uBAAuB,GAGrBp2J,EAAM04J,YAAc,IACtB3yJ,EAAMgzJ,kBAAoBhzJ,EAAMizJ,wBAAwBh5J,EAAO+F,EAAM+vC,QAGnE91C,EAAMw4J,eAAiB,IACzBzyJ,EAAMkzJ,mBAAqBlzJ,EAAMmzJ,yBAAyBl5J,EAAO+F,EAAM+vC,QAGlE/vC,CACT,CA2iCA,OA3rCA+uE,EAAUkhF,EAAMC,GAsJhB,EAAaD,EAAM,CAAC,CAClBp4J,IAAK,mBACLgC,MAAO,WACL,IAAIyG,EAAOhH,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5E85J,EAAiB9yJ,EAAK+yJ,UACtBA,OAA+B,IAAnBD,EAA4Bx1J,KAAK3D,MAAM20J,kBAAoBwE,EACvEE,EAAmBhzJ,EAAKizJ,YACxBA,OAAmC,IAArBD,EAA8B11J,KAAK3D,MAAMw4J,eAAiBa,EACxEE,EAAgBlzJ,EAAKmzJ,SACrBA,OAA6B,IAAlBD,EAA2B51J,KAAK3D,MAAM04J,YAAca,EAE/DE,EAAcv6J,EAAc,CAAC,EAAGyE,KAAK3D,MAAO,CAC9C20J,kBAAmByE,EACnBZ,eAAgBc,EAChBZ,YAAac,IAGf,MAAO,CACLrkG,WAAYxxD,KAAKu1J,yBAAyBO,GAC1CrkG,UAAWzxD,KAAKq1J,wBAAwBS,GAE5C,GAKC,CACD77J,IAAK,qBACLgC,MAAO,WACL,OAAO+D,KAAKmyC,MAAMmiH,cAAcJ,0BAA0BjG,cAC5D,GAKC,CACDh0J,IAAK,uBACLgC,MAAO,WACL,OAAO+D,KAAKmyC,MAAMmiH,cAAcR,6BAA6B7F,cAC/D,GAMC,CACDh0J,IAAK,oBACLgC,MAAO,SAA2B24E,GAChC,IAAImhF,EAAmBnhF,EAAMpjB,WACzBwkG,OAAuC,IAArBD,EAA8B,EAAIA,EACpDE,EAAkBrhF,EAAMnjB,UACxBykG,OAAqC,IAApBD,EAA6B,EAAIA,EAItD,KAAIC,EAAiB,GAArB,CAKAl2J,KAAKm2J,uBAEL,IAAIhjH,EAAcnzC,KAAK3D,MACnB+5J,EAAajjH,EAAYijH,WACzBC,EAAYljH,EAAYkjH,UACxB96G,EAASpI,EAAYoI,OACrBjpC,EAAQ6gC,EAAY7gC,MACpBgiJ,EAAgBt0J,KAAKmyC,MAAMmiH,cAK3BlD,EAAgBkD,EAAclD,cAC9BkF,EAAkBhC,EAAcJ,0BAA0BjG,eAC1DsI,EAAoBjC,EAAcR,6BAA6B7F,eAC/Dz8F,EAAapsD,KAAKm/B,IAAIn/B,KAAK8F,IAAI,EAAGqrJ,EAAoBjkJ,EAAQ8+I,GAAgB4E,GAC9EvkG,EAAYrsD,KAAKm/B,IAAIn/B,KAAK8F,IAAI,EAAGorJ,EAAkB/6G,EAAS61G,GAAgB8E,GAKhF,GAAIl2J,KAAKmyC,MAAMqf,aAAeA,GAAcxxD,KAAKmyC,MAAMsf,YAAcA,EAAW,CAG9E,IAEI+kG,EAAW,CACbhE,aAAa,EACbyC,0BAJ8BzjG,IAAexxD,KAAKmyC,MAAMqf,WAAaA,EAAaxxD,KAAKmyC,MAAMqf,WE9RjE,GADC,EF+RoIxxD,KAAKmyC,MAAM8iH,0BAK5KC,wBAJ4BzjG,IAAczxD,KAAKmyC,MAAMsf,UAAYA,EAAYzxD,KAAKmyC,MAAMsf,UE/R5D,GADC,EFgS8HzxD,KAAKmyC,MAAM+iH,wBAKtKC,2BA/PE,YAkQCiB,IACHI,EAAS/kG,UAAYA,GAGlB4kG,IACHG,EAAShlG,WAAaA,GAGxBglG,EAAS/D,uBAAwB,EACjCzyJ,KAAKuyC,SAASikH,EAChB,CAEAx2J,KAAKy2J,wBAAwB,CAC3BjlG,WAAYA,EACZC,UAAWA,EACX8kG,kBAAmBA,EACnBD,gBAAiBA,GApDnB,CAsDF,GASC,CACDr8J,IAAK,gCACLgC,MAAO,SAAuCsxJ,GAC5C,IAAIoI,EAAcpI,EAAMoI,YACpBE,EAAWtI,EAAMsI,SACrB71J,KAAK02J,+BAAgF,iBAAxC12J,KAAK02J,+BAA8CtxJ,KAAKm/B,IAAIvkC,KAAK02J,+BAAgCf,GAAeA,EAC7J31J,KAAK22J,4BAA0E,iBAArC32J,KAAK22J,4BAA2CvxJ,KAAKm/B,IAAIvkC,KAAK22J,4BAA6Bd,GAAYA,CACnJ,GAOC,CACD57J,IAAK,kBACLgC,MAAO,WACL,IAAIiuD,EAAelqD,KAAK3D,MACpB0yH,EAAc7kE,EAAa6kE,YAC3BolC,EAAWjqG,EAAaiqG,SACxBG,EAAgBt0J,KAAKmyC,MAAMmiH,cAC/BA,EAAcR,6BAA6BjG,yBAAyB9+B,EAAc,GAClFulC,EAAcJ,0BAA0BrG,yBAAyBsG,EAAW,EAC9E,GAOC,CACDl6J,IAAK,oBACLgC,MAAO,WACL,IAAI0zJ,EAAQj0J,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7Ek7J,EAAoBjH,EAAMgG,YAC1BA,OAAoC,IAAtBiB,EAA+B,EAAIA,EACjDC,EAAiBlH,EAAMkG,SACvBA,OAA8B,IAAnBgB,EAA4B,EAAIA,EAE3CC,EAAe92J,KAAK3D,MACpBw4J,EAAiBiC,EAAajC,eAC9BE,EAAc+B,EAAa/B,YAC3BT,EAAgBt0J,KAAKmyC,MAAMmiH,cAC/BA,EAAcR,6BAA6BjE,UAAU8F,GACrDrB,EAAcJ,0BAA0BrE,UAAUgG,GAIlD71J,KAAK+2J,yBAA2BlC,GAAkB,IElXlB,IFkXwB70J,KAAKmyC,MAAM8iH,0BAAyDU,GAAed,EAAiBc,GAAed,GAC3K70J,KAAKg3J,wBAA0BjC,GAAe,IEnXd,IFmXoB/0J,KAAKmyC,MAAM+iH,wBAAuDW,GAAYd,EAAcc,GAAYd,GAG5J/0J,KAAKi3J,YAAc,CAAC,EACpBj3J,KAAKk3J,WAAa,CAAC,EACnBl3J,KAAK4a,aACP,GAKC,CACD3gB,IAAK,eACLgC,MAAO,SAAsB6zJ,GAC3B,IAAI6F,EAAc7F,EAAM6F,YACpBE,EAAW/F,EAAM+F,SACjB9mC,EAAc/uH,KAAK3D,MAAM0yH,YACzB1yH,EAAQ2D,KAAK3D,MAGb0yH,EAAc,QAAqBhsH,IAAhB4yJ,GACrB31J,KAAKm3J,mCAAmC57J,EAAc,CAAC,EAAGc,EAAO,CAC/Dw4J,eAAgBc,UAIH5yJ,IAAb8yJ,GACF71J,KAAKo3J,+BAA+B77J,EAAc,CAAC,EAAGc,EAAO,CAC3D04J,YAAac,IAGnB,GACC,CACD57J,IAAK,oBACLgC,MAAO,WACL,IAAIo7J,EAAer3J,KAAK3D,MACpBi7J,EAAmBD,EAAaC,iBAChC/7G,EAAS87G,EAAa97G,OACtBiW,EAAa6lG,EAAa7lG,WAC1BqjG,EAAiBwC,EAAaxC,eAC9BpjG,EAAY4lG,EAAa5lG,UACzBsjG,EAAcsC,EAAatC,YAC3BziJ,EAAQ+kJ,EAAa/kJ,MACrBgiJ,EAAgBt0J,KAAKmyC,MAAMmiH,cAsB/B,GApBAt0J,KAAKo1J,kBAAoB,EACzBp1J,KAAKs1J,mBAAqB,EAG1Bt1J,KAAKu3J,6BAIAjD,EAAcU,uBACjBh1J,KAAKuyC,UAAS,SAAU4tB,GACtB,IAAIq3F,EAAcj8J,EAAc,CAAC,EAAG4kE,EAAW,CAC7CsyF,uBAAuB,IAKzB,OAFA+E,EAAYlD,cAAclD,cAAgBkG,IAC1CE,EAAYlD,cAAcU,uBAAwB,EAC3CwC,CACT,IAGwB,iBAAfhmG,GAA2BA,GAAc,GAA0B,iBAAdC,GAA0BA,GAAa,EAAG,CACxG,IAAI+lG,EAAcnF,EAAKoF,gCAAgC,CACrDt3F,UAAWngE,KAAKmyC,MAChBqf,WAAYA,EACZC,UAAWA,IAGT+lG,IACFA,EAAY/E,uBAAwB,EACpCzyJ,KAAKuyC,SAASilH,GAElB,CAGIx3J,KAAK4zJ,sBAGH5zJ,KAAK4zJ,oBAAoBpiG,aAAexxD,KAAKmyC,MAAMqf,aACrDxxD,KAAK4zJ,oBAAoBpiG,WAAaxxD,KAAKmyC,MAAMqf,YAG/CxxD,KAAK4zJ,oBAAoBniG,YAAczxD,KAAKmyC,MAAMsf,YACpDzxD,KAAK4zJ,oBAAoBniG,UAAYzxD,KAAKmyC,MAAMsf,YAMpD,IAAIimG,EAAuBn8G,EAAS,GAAKjpC,EAAQ,EAE7CuiJ,GAAkB,GAAK6C,GACzB13J,KAAKm3J,qCAGHpC,GAAe,GAAK2C,GACtB13J,KAAKo3J,iCAIPp3J,KAAK23J,8BAGL33J,KAAKy2J,wBAAwB,CAC3BjlG,WAAYA,GAAc,EAC1BC,UAAWA,GAAa,EACxB8kG,kBAAmBjC,EAAcR,6BAA6B7F,eAC9DqI,gBAAiBhC,EAAcJ,0BAA0BjG,iBAG3DjuJ,KAAK43J,qCACP,GAOC,CACD39J,IAAK,qBACLgC,MAAO,SAA4B67C,EAAWqoB,GAC5C,IAAI19D,EAASzC,KAET63J,EAAe73J,KAAK3D,MACpB+5J,EAAayB,EAAazB,WAC1BC,EAAYwB,EAAaxB,UACzBtnC,EAAc8oC,EAAa9oC,YAC3BxzE,EAASs8G,EAAat8G,OACtB44G,EAAW0D,EAAa1D,SACxBnD,EAAoB6G,EAAa7G,kBACjC6D,EAAiBgD,EAAahD,eAC9BE,EAAc8C,EAAa9C,YAC3BziJ,EAAQulJ,EAAavlJ,MACrBwlJ,EAAc93J,KAAKmyC,MACnBqf,EAAasmG,EAAYtmG,WACzB2jG,EAA6B2C,EAAY3C,2BACzC1jG,EAAYqmG,EAAYrmG,UACxB6iG,EAAgBwD,EAAYxD,cAGhCt0J,KAAKu3J,6BAKL,IAAIQ,EAAwChpC,EAAc,GAA+B,IAA1Bj3E,EAAUi3E,aAAqBolC,EAAW,GAA4B,IAAvBr8G,EAAUq8G,SAMpHgB,IAA+B/C,KAG5BiE,GAAa7kG,GAAc,IAAMA,IAAexxD,KAAK4zJ,oBAAoBpiG,YAAcumG,KAC1F/3J,KAAK4zJ,oBAAoBpiG,WAAaA,IAGnC4kG,GAAc3kG,GAAa,IAAMA,IAAczxD,KAAK4zJ,oBAAoBniG,WAAasmG,KACxF/3J,KAAK4zJ,oBAAoBniG,UAAYA,IAOzC,IAAIw/F,GAAiD,IAApBn5G,EAAUxlC,OAAoC,IAArBwlC,EAAUyD,SAAiBA,EAAS,GAAKjpC,EAAQ,EAqD3G,GAlDItS,KAAK+2J,0BACP/2J,KAAK+2J,0BAA2B,EAEhC/2J,KAAKm3J,mCAAmCn3J,KAAK3D,QAE7Cm0J,EAAwB,CACtBC,2BAA4B6D,EAAcR,6BAC1CpD,mBAAoB54G,EAAUi3E,YAC9B4hC,iBAAkB74G,EAAUk8G,YAC5BpD,0BAA2B94G,EAAUk5G,kBACrCH,sBAAuB/4G,EAAU+8G,eACjC/D,aAAch5G,EAAUxlC,MACxBy+I,aAAcv/F,EACdw/F,kBAAmBA,EACnBtE,cAAemI,EACfj+I,KAAMtE,EACN2+I,0BAA2BA,EAC3BC,0BAA2B,WACzB,OAAOzuJ,EAAO00J,mCAAmC10J,EAAOpG,MAC1D,IAIA2D,KAAKg3J,yBACPh3J,KAAKg3J,yBAA0B,EAE/Bh3J,KAAKo3J,+BAA+Bp3J,KAAK3D,QAEzCm0J,EAAwB,CACtBC,2BAA4B6D,EAAcJ,0BAC1CxD,mBAAoB54G,EAAUq8G,SAC9BxD,iBAAkB74G,EAAUs8G,UAC5BxD,0BAA2B94G,EAAUk5G,kBACrCH,sBAAuB/4G,EAAUi9G,YACjCjE,aAAch5G,EAAUyD,OACxBw1G,aAAct/F,EACdu/F,kBAAmBA,EACnBtE,cAAeqI,EACfn+I,KAAM2kC,EACN01G,0BAA2BA,EAC3BC,0BAA2B,WACzB,OAAOzuJ,EAAO20J,+BAA+B30J,EAAOpG,MACtD,IAKJ2D,KAAK23J,8BAGDnmG,IAAe2O,EAAU3O,YAAcC,IAAc0O,EAAU1O,UAAW,CAC5E,IAAI6kG,EAAkBhC,EAAcJ,0BAA0BjG,eAC1DsI,EAAoBjC,EAAcR,6BAA6B7F,eAEnEjuJ,KAAKy2J,wBAAwB,CAC3BjlG,WAAYA,EACZC,UAAWA,EACX8kG,kBAAmBA,EACnBD,gBAAiBA,GAErB,CAEAt2J,KAAK43J,qCACP,GACC,CACD39J,IAAK,uBACLgC,MAAO,WACD+D,KAAKuyJ,gCACPN,EAAuBjyJ,KAAKuyJ,+BAEhC,GAQC,CACDt4J,IAAK,SACLgC,MAAO,WACL,IAAI+7J,EAAeh4J,KAAK3D,MACpB47J,EAAqBD,EAAaC,mBAClC7B,EAAa4B,EAAa5B,WAC1BC,EAAY2B,EAAa3B,UACzB5mJ,EAAYuoJ,EAAavoJ,UACzByoJ,EAAiBF,EAAaE,eAC9BC,EAAgBH,EAAaG,cAC7BC,EAAiBJ,EAAaI,eAC9B78G,EAASy8G,EAAaz8G,OACtBxiD,EAAKi/J,EAAaj/J,GAClBs/J,EAAoBL,EAAaK,kBACjC79I,EAAOw9I,EAAax9I,KACpBnD,EAAQ2gJ,EAAa3gJ,MACrB47B,EAAW+kH,EAAa/kH,SACxB3gC,EAAQ0lJ,EAAa1lJ,MACrBgmJ,EAAet4J,KAAKmyC,MACpBmiH,EAAgBgE,EAAahE,cAC7B7B,EAAwB6F,EAAa7F,sBAErCD,EAAcxyJ,KAAKu4J,eAEnBC,EAAY,CACdC,UAAW,aACXC,UAAW,MACXn9G,OAAQ66G,EAAa,OAAS76G,EAC9BznC,SAAU,WACVxB,MAAO+jJ,EAAY,OAAS/jJ,EAC5BqmJ,wBAAyB,QACzBC,WAAY,aAGVnG,IACFzyJ,KAAKi3J,YAAc,CAAC,GAKjBj3J,KAAKmyC,MAAMqgH,aACdxyJ,KAAK64J,mBAIP74J,KAAK84J,2BAA2B94J,KAAK3D,MAAO2D,KAAKmyC,OAEjD,IAAIokH,EAAoBjC,EAAcR,6BAA6B7F,eAC/DqI,EAAkBhC,EAAcJ,0BAA0BjG,eAI1D8K,EAAwBzC,EAAkB/6G,EAAS+4G,EAAclD,cAAgB,EACjF4H,EAA0BzC,EAAoBjkJ,EAAQgiJ,EAAclD,cAAgB,EAEpF4H,IAA4Bh5J,KAAKi5J,0BAA4BF,IAA0B/4J,KAAKk5J,yBAC9Fl5J,KAAKi5J,yBAA2BD,EAChCh5J,KAAKk5J,uBAAyBH,EAC9B/4J,KAAKm5J,2BAA4B,GAQnCX,EAAUY,UAAY7C,EAAoBwC,GAAyBzmJ,EAAQ,SAAW,OACtFkmJ,EAAU9xG,UAAY4vG,EAAkB0C,GAA2Bz9G,EAAS,SAAW,OACvF,IAAI89G,EAAoBr5J,KAAKs5J,mBACzBC,EAAqD,IAA7BF,EAAkB19J,QAAgB4/C,EAAS,GAAKjpC,EAAQ,EACpF,OAAO,gBAAoB,MAAO29B,EAAS,CACzChzC,IAAK+C,KAAKw5J,2BACTtB,EAAgB,CACjB,aAAcl4J,KAAK3D,MAAM,cACzB,gBAAiB2D,KAAK3D,MAAM,iBAC5BoT,UAAW,EAAK,yBAA0BA,GAC1C1W,GAAIA,EACJ0gK,SAAUz5J,KAAK05J,UACfl/I,KAAMA,EACNnD,MAAO9b,EAAc,CAAC,EAAGi9J,EAAW,CAAC,EAAGnhJ,GACxC47B,SAAUA,IACRomH,EAAkB19J,OAAS,GAAK,gBAAoB,MAAO,CAC7D8T,UAAW,+CACX+K,KAAM29I,EACN9gJ,MAAO9b,EAAc,CACnB+W,MAAO2lJ,EAAqB,OAAS1B,EACrCh7G,OAAQ+6G,EACR/4F,SAAUg5F,EACVrmG,UAAWomG,EACXtuG,SAAU,SACV2xG,cAAenH,EAAc,OAAS,GACtC1+I,SAAU,YACTskJ,IACFiB,GAAoBE,GAAyBlB,IAClD,GAGC,CACDp+J,IAAK,6BACLgC,MAAO,WACL,IAAII,EAAQX,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAK3D,MACjF81C,EAAQz2C,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAKmyC,MACjFynH,EAAev9J,EAAMu9J,aACrBC,EAAoBx9J,EAAMw9J,kBAC1B9qC,EAAc1yH,EAAM0yH,YACpB+qC,EAA2Bz9J,EAAMy9J,yBACjCv+G,EAASl/C,EAAMk/C,OACfw+G,EAAsB19J,EAAM09J,oBAC5BC,EAAwB39J,EAAM29J,sBAC9BC,EAAmB59J,EAAM49J,iBACzB9F,EAAW93J,EAAM83J,SACjB7hJ,EAAQjW,EAAMiW,MACd4nJ,EAAoB79J,EAAM69J,kBAC1BjF,EAA4B9iH,EAAM8iH,0BAClCC,EAA0B/iH,EAAM+iH,wBAChCZ,EAAgBniH,EAAMmiH,cACtB7iG,EAAYzxD,KAAKo1J,kBAAoB,EAAIp1J,KAAKo1J,kBAAoBjjH,EAAMsf,UACxED,EAAaxxD,KAAKs1J,mBAAqB,EAAIt1J,KAAKs1J,mBAAqBnjH,EAAMqf,WAE3EghG,EAAcxyJ,KAAKu4J,aAAal8J,EAAO81C,GAI3C,GAFAnyC,KAAKs5J,mBAAqB,GAEtB/9G,EAAS,GAAKjpC,EAAQ,EAAG,CAC3B,IAAI6nJ,EAAuB7F,EAAcR,6BAA6BlE,oBAAoB,CACxFnC,cAAen7I,EACf7N,OAAQ+sD,IAEN4oG,EAAoB9F,EAAcJ,0BAA0BtE,oBAAoB,CAClFnC,cAAelyG,EACf92C,OAAQgtD,IAEN4oG,EAA6B/F,EAAcR,6BAA6BwG,oBAAoB,CAC9F7M,cAAen7I,EACf7N,OAAQ+sD,IAEN+oG,EAA2BjG,EAAcJ,0BAA0BoG,oBAAoB,CACzF7M,cAAelyG,EACf92C,OAAQgtD,IAGVzxD,KAAKizJ,0BAA4BkH,EAAqBr/H,MACtD96B,KAAKmzJ,yBAA2BgH,EAAqB/L,KACrDpuJ,KAAKyzJ,uBAAyB2G,EAAkBt/H,MAChD96B,KAAK2zJ,sBAAwByG,EAAkBhM,KAC/C,IAAIoM,EAAwBR,EAAsB,CAChDtB,UAAW,aACXvM,UAAWp9B,EACX0rC,mBAAoBV,EACpBW,gBAAiBzF,EACjBnpJ,WAAkD,iBAA/BquJ,EAAqBr/H,MAAqBq/H,EAAqBr/H,MAAQ,EAC1F6/H,UAAgD,iBAA9BR,EAAqB/L,KAAoB+L,EAAqB/L,MAAQ,IAEtFwM,EAAqBZ,EAAsB,CAC7CtB,UAAW,WACXvM,UAAWgI,EACXsG,mBAAoBR,EACpBS,gBAAiBxF,EACjBppJ,WAA+C,iBAA5BsuJ,EAAkBt/H,MAAqBs/H,EAAkBt/H,MAAQ,EACpF6/H,UAA6C,iBAA3BP,EAAkBhM,KAAoBgM,EAAkBhM,MAAQ,IAGhF4E,EAAmBwH,EAAsBK,mBACzC3H,EAAkBsH,EAAsBM,kBACxCtH,EAAgBoH,EAAmBC,mBACnCnH,EAAekH,EAAmBE,kBAEtC,GAAIhB,EAA0B,CAK5B,IAAKA,EAAyBiB,iBAC5B,IAAK,IAAIlF,EAAWrC,EAAeqC,GAAYnC,EAAcmC,IAC3D,IAAKiE,EAAyBpgK,IAAIm8J,EAAU,GAAI,CAC9C7C,EAAmB,EACnBE,EAAkBnkC,EAAc,EAChC,KACF,CAQJ,IAAK+qC,EAAyBkB,gBAC5B,IAAK,IAAIrF,EAAc3C,EAAkB2C,GAAezC,EAAiByC,IACvE,IAAKmE,EAAyBpgK,IAAI,EAAGi8J,GAAc,CACjDnC,EAAgB,EAChBE,EAAeS,EAAW,EAC1B,KACF,CAGN,CAEAn0J,KAAKs5J,mBAAqBO,EAAkB,CAC1CoB,UAAWj7J,KAAKk3J,WAChB0C,aAAcA,EACd9F,6BAA8BQ,EAAcR,6BAC5Cd,iBAAkBA,EAClBE,gBAAiBA,EACjB4G,yBAA0BA,EAC1BO,2BAA4BA,EAC5B7H,YAAaA,EACb0H,kBAAmBA,EACnB3wE,OAAQvpF,KACRk0J,0BAA2BI,EAAcJ,0BACzCV,cAAeA,EACfE,aAAcA,EACdliG,WAAYA,EACZC,UAAWA,EACXypG,WAAYl7J,KAAKi3J,YACjBsD,yBAA0BA,EAC1BJ,qBAAsBA,EACtBC,kBAAmBA,IAGrBp6J,KAAK6yJ,kBAAoBG,EACzBhzJ,KAAK+yJ,iBAAmBG,EACxBlzJ,KAAKqzJ,eAAiBG,EACtBxzJ,KAAKuzJ,cAAgBG,CACvB,CACF,GAOC,CACDz5J,IAAK,uBACLgC,MAAO,WACL,IAAIk/J,EAA6Bn7J,KAAK3D,MAAM8+J,2BAExCn7J,KAAKuyJ,gCACPN,EAAuBjyJ,KAAKuyJ,gCAG9BvyJ,KAAKuyJ,+BAAiCJ,EAAwBnyJ,KAAKo7J,6BAA8BD,EACnG,GACC,CACDlhK,IAAK,6BAMLgC,MAAO,WACL,GAAmD,iBAAxC+D,KAAK02J,gCAA2F,iBAArC12J,KAAK22J,4BAA0C,CACnH,IAAIhB,EAAc31J,KAAK02J,+BACnBb,EAAW71J,KAAK22J,4BACpB32J,KAAK02J,+BAAiC,KACtC12J,KAAK22J,4BAA8B,KACnC32J,KAAKq7J,kBAAkB,CACrB1F,YAAaA,EACbE,SAAUA,GAEd,CACF,GACC,CACD57J,IAAK,0BACLgC,MAAO,SAAiC8zJ,GACtC,IAAIjtJ,EAAS9C,KAETwxD,EAAau+F,EAAMv+F,WACnBC,EAAYs+F,EAAMt+F,UAClB8kG,EAAoBxG,EAAMwG,kBAC1BD,EAAkBvG,EAAMuG,gBAE5Bt2J,KAAKs7J,kBAAkB,CACrB9zJ,SAAU,SAAkBwoJ,GAC1B,IAAIx+F,EAAaw+F,EAAMx+F,WACnBC,EAAYu+F,EAAMv+F,UAClB8pG,EAAez4J,EAAOzG,MACtBk/C,EAASggH,EAAahgH,QAG1Bk+G,EAFe8B,EAAa9B,UAEnB,CACPplG,aAAc9Y,EACd4Y,YAHUonG,EAAajpJ,MAIvBigD,aAAc+jG,EACd9kG,WAAYA,EACZC,UAAWA,EACX+pG,YAAajF,GAEjB,EACAnG,QAAS,CACP5+F,WAAYA,EACZC,UAAWA,IAGjB,GACC,CACDx3D,IAAK,eACLgC,MAAO,WACL,IAAII,EAAQX,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAK3D,MACjF81C,EAAQz2C,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAKmyC,MAGrF,OAAOr4C,OAAOI,eAAeC,KAAKkC,EAAO,eAAiBo/J,QAAQp/J,EAAMm2J,aAAeiJ,QAAQtpH,EAAMqgH,YACvG,GACC,CACDv4J,IAAK,sCACLgC,MAAO,WACL,GAAI+D,KAAKm5J,0BAA2B,CAClC,IAAIuC,EAA4B17J,KAAK3D,MAAMq/J,0BAC3C17J,KAAKm5J,2BAA4B,EACjCuC,EAA0B,CACxBv+I,WAAYnd,KAAKi5J,yBAA2B,EAC5CriJ,KAAM5W,KAAKmyC,MAAMmiH,cAAclD,cAC/BngJ,SAAUjR,KAAKk5J,uBAAyB,GAE5C,CACF,GACC,CACDj/J,IAAK,mBAMLgC,MAAO,SAA0B0/J,GAC/B,IAAInqG,EAAamqG,EAAMnqG,WACnBC,EAAYkqG,EAAMlqG,UAElB+lG,EAAcnF,EAAKoF,gCAAgC,CACrDt3F,UAAWngE,KAAKmyC,MAChBqf,WAAYA,EACZC,UAAWA,IAGT+lG,IACFA,EAAY/E,uBAAwB,EACpCzyJ,KAAKuyC,SAASilH,GAElB,GACC,CACDv9J,IAAK,2BACLgC,MAAO,WACL,IAAII,EAAQX,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAK3D,MACjF81C,EAAQz2C,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAKmyC,MACrF,OAAOkgH,EAAKkD,yBAAyBl5J,EAAO81C,EAC9C,GACC,CACDl4C,IAAK,qCACLgC,MAAO,WACL,IAAII,EAAQX,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAK3D,MACjF81C,EAAQz2C,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAKmyC,MAEjFqlH,EAAcnF,EAAKuJ,2CAA2Cv/J,EAAO81C,GAErEqlH,IACFA,EAAY/E,uBAAwB,EACpCzyJ,KAAKuyC,SAASilH,GAElB,GACC,CACDv9J,IAAK,0BACLgC,MAAO,WACL,IAAII,EAAQX,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAK3D,MACjF81C,EAAQz2C,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAKmyC,MACrF,OAAOkgH,EAAKgD,wBAAwBh5J,EAAO81C,EAC7C,GACC,CACDl4C,IAAK,mBACLgC,MAAO,WACL,IAAIi/J,EAAal7J,KAAKi3J,YAClBgE,EAAYj7J,KAAKk3J,WACjBgD,EAAoBl6J,KAAK3D,MAAM69J,kBAOnCl6J,KAAKk3J,WAAa,CAAC,EACnBl3J,KAAKi3J,YAAc,CAAC,EAEpB,IAAK,IAAIpB,EAAW71J,KAAKqzJ,eAAgBwC,GAAY71J,KAAKuzJ,cAAesC,IACvE,IAAK,IAAIF,EAAc31J,KAAK6yJ,kBAAmB8C,GAAe31J,KAAK+yJ,iBAAkB4C,IAAe,CAClG,IAAI17J,EAAM,GAAGqI,OAAOuzJ,EAAU,KAAKvzJ,OAAOqzJ,GAC1C31J,KAAKi3J,YAAYh9J,GAAOihK,EAAWjhK,GAE/BigK,IACFl6J,KAAKk3J,WAAWj9J,GAAOghK,EAAUhhK,GAErC,CAEJ,GACC,CACDA,IAAK,iCACLgC,MAAO,WACL,IAAII,EAAQX,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAK3D,MACjF81C,EAAQz2C,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAKmyC,MAEjFqlH,EAAcnF,EAAKwJ,uCAAuCx/J,EAAO81C,GAEjEqlH,IACFA,EAAY/E,uBAAwB,EACpCzyJ,KAAKuyC,SAASilH,GAElB,IACE,CAAC,CACHv9J,IAAK,2BACLgC,MAAO,SAAkCq2C,EAAW6tB,GAClD,IAAIq2F,EAAW,CAAC,EAEc,IAA1BlkH,EAAUy8E,aAA8C,IAAzB5uD,EAAU3O,YAA2C,IAAvBlf,EAAU6hH,UAA0C,IAAxBh0F,EAAU1O,WACrG+kG,EAAShlG,WAAa,EACtBglG,EAAS/kG,UAAY,IAEZnf,EAAUkf,aAAe2O,EAAU3O,YAAclf,EAAUuiH,eAAiB,GAAKviH,EAAUmf,YAAc0O,EAAU1O,WAAanf,EAAUyiH,YAAc,IACjKj7J,OAAOo2C,OAAOsmH,EAAUnE,EAAKoF,gCAAgC,CAC3Dt3F,UAAWA,EACX3O,WAAYlf,EAAUkf,WACtBC,UAAWnf,EAAUmf,aAIzB,IAgCIqqG,EACAC,EAjCAzH,EAAgBn0F,EAAUm0F,cAkF9B,OAhFAkC,EAAS/D,uBAAwB,EAE7BngH,EAAU0hH,cAAgBM,EAAcC,iBAAmBjiH,EAAU8hH,YAAcE,EAAcE,gBAEnGgC,EAAS/D,uBAAwB,GAGnC6B,EAAcR,6BAA6B7zJ,UAAU,CACnDksJ,UAAW75G,EAAUy8E,YACrB+9B,kBAAmBuF,EAAK4B,wBAAwB3hH,GAChDu6G,eAAgBwF,EAAK0B,gBAAgBzhH,EAAU0hH,eAEjDM,EAAcJ,0BAA0Bj0J,UAAU,CAChDksJ,UAAW75G,EAAU6hH,SACrBrH,kBAAmBuF,EAAKgC,qBAAqB/hH,GAC7Cu6G,eAAgBwF,EAAK0B,gBAAgBzhH,EAAU8hH,aAGX,IAAlCE,EAAcG,iBAAwD,IAA/BH,EAAcI,eACvDJ,EAAcG,gBAAkB,EAChCH,EAAcI,aAAe,GAI3BpiH,EAAU8jH,aAAwC,IAA1B9jH,EAAUkgH,cAA2D,IAAlC8B,EAAcK,iBAC3E76J,OAAOo2C,OAAOsmH,EAAU,CACtBhE,aAAa,IAMjBtG,EAAkD,CAChDC,UAAWmI,EAAcG,gBACzBrI,SAAmD,iBAAlCkI,EAAcC,gBAA+BD,EAAcC,gBAAkB,KAC9FlI,wBAAyB,WACvB,OAAOiI,EAAcR,6BAA6BjE,UAAU,EAC9D,EACAvD,6BAA8Bh6G,EAC9Bi6G,eAAgBj6G,EAAUy8E,YAC1By9B,aAA+C,iBAA1Bl6G,EAAU0hH,YAA2B1hH,EAAU0hH,YAAc,KAClFvH,kBAAmBn6G,EAAUuiH,eAC7BnI,cAAe4H,EAAcM,mBAC7BjI,mCAAoC,WAClCmP,EAAczJ,EAAKuJ,2CAA2CtpH,EAAW6tB,EAC3E,IAEF+rF,EAAkD,CAChDC,UAAWmI,EAAcI,aACzBtI,SAAiD,iBAAhCkI,EAAcE,cAA6BF,EAAcE,cAAgB,KAC1FnI,wBAAyB,WACvB,OAAOiI,EAAcJ,0BAA0BrE,UAAU,EAC3D,EACAvD,6BAA8Bh6G,EAC9Bi6G,eAAgBj6G,EAAU6hH,SAC1B3H,aAA6C,iBAAxBl6G,EAAU8hH,UAAyB9hH,EAAU8hH,UAAY,KAC9E3H,kBAAmBn6G,EAAUyiH,YAC7BrI,cAAe4H,EAAcQ,gBAC7BnI,mCAAoC,WAClCoP,EAAc1J,EAAKwJ,uCAAuCvpH,EAAW6tB,EACvE,IAEFm0F,EAAcG,gBAAkBniH,EAAUy8E,YAC1CulC,EAAcC,gBAAkBjiH,EAAU0hH,YAC1CM,EAAcK,iBAA4C,IAA1BriH,EAAUkgH,YAC1C8B,EAAcI,aAAepiH,EAAU6hH,SACvCG,EAAcE,cAAgBliH,EAAU8hH,UACxCE,EAAcM,mBAAqBtiH,EAAUuiH,eAC7CP,EAAcQ,gBAAkBxiH,EAAUyiH,YAE1CT,EAAclD,cAAgB9+G,EAAUglH,wBAEJv0J,IAAhCuxJ,EAAclD,eAChBkD,EAAcU,uBAAwB,EACtCV,EAAclD,cAAgB,GAE9BkD,EAAcU,uBAAwB,EAGxCwB,EAASlC,cAAgBA,EAClB/4J,EAAc,CAAC,EAAGi7J,EAAU,CAAC,EAAGsF,EAAa,CAAC,EAAGC,EAC1D,GACC,CACD9hK,IAAK,0BACLgC,MAAO,SAAiCI,GACtC,MAAoC,iBAAtBA,EAAM23J,YAA2B33J,EAAM23J,YAAc33J,EAAM2/J,mBAC3E,GACC,CACD/hK,IAAK,uBACLgC,MAAO,SAA8BI,GACnC,MAAkC,iBAApBA,EAAM+3J,UAAyB/3J,EAAM+3J,UAAY/3J,EAAM4/J,gBACvE,GACC,CACDhiK,IAAK,kCAMLgC,MAAO,SAAyCigK,GAC9C,IAAI/7F,EAAY+7F,EAAM/7F,UAClB3O,EAAa0qG,EAAM1qG,WACnBC,EAAYyqG,EAAMzqG,UAClB+kG,EAAW,CACbrB,2BAA4B/C,GAa9B,MAV0B,iBAAf5gG,GAA2BA,GAAc,IAClDglG,EAASvB,0BAA4BzjG,EAAa2O,EAAU3O,WEjoC9B,GADC,EFmoC/BglG,EAAShlG,WAAaA,GAGC,iBAAdC,GAA0BA,GAAa,IAChD+kG,EAAStB,wBAA0BzjG,EAAY0O,EAAU1O,UEtoC3B,GADC,EFwoC/B+kG,EAAS/kG,UAAYA,GAGG,iBAAfD,GAA2BA,GAAc,GAAKA,IAAe2O,EAAU3O,YAAmC,iBAAdC,GAA0BA,GAAa,GAAKA,IAAc0O,EAAU1O,UAClK+kG,EAGF,CAAC,CACV,GACC,CACDv8J,IAAK,kBACLgC,MAAO,SAAyBA,GAC9B,MAAwB,mBAAVA,EAAuBA,EAAQ,WAC3C,OAAOA,CACT,CACF,GACC,CACDhC,IAAK,2BACLgC,MAAO,SAAkCq2C,EAAW6tB,GAClD,IAAI4uD,EAAcz8E,EAAUy8E,YACxBxzE,EAASjJ,EAAUiJ,OACnBy1G,EAAoB1+G,EAAU0+G,kBAC9B6D,EAAiBviH,EAAUuiH,eAC3BviJ,EAAQggC,EAAUhgC,MAClBk/C,EAAa2O,EAAU3O,WACvB8iG,EAAgBn0F,EAAUm0F,cAE9B,GAAIvlC,EAAc,EAAG,CACnB,IAAIotC,EAAcptC,EAAc,EAC5B2+B,EAAcmH,EAAiB,EAAIsH,EAAc/2J,KAAKm/B,IAAI43H,EAAatH,GACvEyB,EAAkBhC,EAAcJ,0BAA0BjG,eAC1DmO,EAAgB9H,EAAcU,uBAAyBsB,EAAkB/6G,EAAS+4G,EAAclD,cAAgB,EACpH,OAAOkD,EAAcR,6BAA6BrE,yBAAyB,CACzEv+I,MAAO8/I,EACPvD,cAAen7I,EAAQ8pJ,EACvBh4H,cAAeotB,EACfk8F,YAAaA,GAEjB,CAEA,OAAO,CACT,GACC,CACDzzJ,IAAK,6CACLgC,MAAO,SAAoDq2C,EAAW6tB,GACpE,IAAI3O,EAAa2O,EAAU3O,WAEvB6qG,EAAuBhK,EAAKkD,yBAAyBjjH,EAAW6tB,GAEpE,MAAoC,iBAAzBk8F,GAAqCA,GAAwB,GAAK7qG,IAAe6qG,EACnFhK,EAAKoF,gCAAgC,CAC1Ct3F,UAAWA,EACX3O,WAAY6qG,EACZ5qG,WAAY,IAIT,CAAC,CACV,GACC,CACDx3D,IAAK,0BACLgC,MAAO,SAAiCq2C,EAAW6tB,GACjD,IAAI5kB,EAASjJ,EAAUiJ,OACnB44G,EAAW7hH,EAAU6hH,SACrBnD,EAAoB1+G,EAAU0+G,kBAC9B+D,EAAcziH,EAAUyiH,YACxBziJ,EAAQggC,EAAUhgC,MAClBm/C,EAAY0O,EAAU1O,UACtB6iG,EAAgBn0F,EAAUm0F,cAE9B,GAAIH,EAAW,EAAG,CAChB,IAAImI,EAAWnI,EAAW,EACtBzG,EAAcqH,EAAc,EAAIuH,EAAWl3J,KAAKm/B,IAAI+3H,EAAUvH,GAC9DwB,EAAoBjC,EAAcR,6BAA6B7F,eAC/DmO,EAAgB9H,EAAcU,uBAAyBuB,EAAoBjkJ,EAAQgiJ,EAAclD,cAAgB,EACrH,OAAOkD,EAAcJ,0BAA0BzE,yBAAyB,CACtEv+I,MAAO8/I,EACPvD,cAAelyG,EAAS6gH,EACxBh4H,cAAeqtB,EACfi8F,YAAaA,GAEjB,CAEA,OAAO,CACT,GACC,CACDzzJ,IAAK,yCACLgC,MAAO,SAAgDq2C,EAAW6tB,GAChE,IAAI1O,EAAY0O,EAAU1O,UAEtB8qG,EAAsBlK,EAAKgD,wBAAwB/iH,EAAW6tB,GAElE,MAAmC,iBAAxBo8F,GAAoCA,GAAuB,GAAK9qG,IAAc8qG,EAChFlK,EAAKoF,gCAAgC,CAC1Ct3F,UAAWA,EACX3O,YAAa,EACbC,UAAW8qG,IAIR,CAAC,CACV,KAGKlK,CACT,CA7rCA,CA6rCE,iBAAsB,EAAgB7gH,EAAQ,YAAqD,MAkLjGE,GAEJ,EAAgB2gH,EAAM,eAAgB,CACpC,aAAc,OACd,iBAAiB,EACjB4F,oBAAoB,EACpB7B,YAAY,EACZC,WAAW,EACXwD,kBGv6Ca,SAAkCn3J,GA2B/C,IA1BA,IAAIu4J,EAAYv4J,EAAKu4J,UACjBrB,EAAel3J,EAAKk3J,aACpB9F,EAA+BpxJ,EAAKoxJ,6BACpCd,EAAmBtwJ,EAAKswJ,iBACxBE,EAAkBxwJ,EAAKwwJ,gBACvB4G,EAA2Bp3J,EAAKo3J,yBAChCO,EAA6B33J,EAAK23J,2BAClC7H,EAAc9vJ,EAAK8vJ,YACnB0H,EAAoBx3J,EAAKw3J,kBACzB3wE,EAAS7mF,EAAK6mF,OACd2qE,EAA4BxxJ,EAAKwxJ,0BACjCV,EAAgB9wJ,EAAK8wJ,cACrBE,EAAehxJ,EAAKgxJ,aACpBwH,EAAax4J,EAAKw4J,WAClBX,EAA2B73J,EAAK63J,yBAChCJ,EAAuBz3J,EAAKy3J,qBAC5BC,EAAoB13J,EAAK03J,kBACzBoC,EAAgB,GAMhBC,EAAqB3I,EAA6B2I,sBAAwBvI,EAA0BuI,qBACpGC,GAAiBlK,IAAgBiK,EAE5B5G,EAAWrC,EAAeqC,GAAYnC,EAAcmC,IAG3D,IAFA,IAAI8G,EAAWzI,EAA0BrG,yBAAyBgI,GAEzDF,EAAc3C,EAAkB2C,GAAezC,EAAiByC,IAAe,CACtF,IAAIiH,EAAc9I,EAA6BjG,yBAAyB8H,GACpEkH,EAAYlH,GAAewE,EAAqBr/H,OAAS66H,GAAewE,EAAqB/L,MAAQyH,GAAYuE,EAAkBt/H,OAAS+6H,GAAYuE,EAAkBhM,KAC1Kn0J,EAAM,GAAGqI,OAAOuzJ,EAAU,KAAKvzJ,OAAOqzJ,GACtCt+I,OAAQ,EAERqlJ,GAAiBxB,EAAWjhK,GAC9Bod,EAAQ6jJ,EAAWjhK,GAIf6/J,IAA6BA,EAAyBpgK,IAAIm8J,EAAUF,GAItEt+I,EAAQ,CACNkkC,OAAQ,OACR7iC,KAAM,EACN5E,SAAU,WACV8E,IAAK,EACLtG,MAAO,SAGT+E,EAAQ,CACNkkC,OAAQohH,EAAS/lJ,KACjB8B,KAAMkkJ,EAAYn4J,OAAS41J,EAC3BvmJ,SAAU,WACV8E,IAAK+jJ,EAASl4J,OAAS81J,EACvBjoJ,MAAOsqJ,EAAYhmJ,MAErBskJ,EAAWjhK,GAAOod,GAItB,IAAIylJ,EAAqB,CACvBnH,YAAaA,EACbnD,YAAaA,EACbqK,UAAWA,EACX5iK,IAAKA,EACLsvF,OAAQA,EACRssE,SAAUA,EACVx+I,MAAOA,GAEL0lJ,OAAe,GAWd7C,IAAqB1H,GAAiB6H,GAA+BE,EAQxEwC,EAAenD,EAAakD,IAPvB7B,EAAUhhK,KACbghK,EAAUhhK,GAAO2/J,EAAakD,IAGhCC,EAAe9B,EAAUhhK,IAMP,MAAhB8iK,IAAyC,IAAjBA,GAQ5BP,EAAcnhK,KAAK0hK,EACrB,CAGF,OAAOP,CACT,EH4zCErE,cAAe,WACfC,eAAgB,CAAC,EACjB4D,oBAAqB,IACrBC,iBAAkB,GAClB3E,iBAAkBlG,EAClBiH,kBAv4Ce,WACf,OAAO,IACT,EAs4CEoB,SAAU,WAAqB,EAC/BiC,0BAA2B,WAAsC,EACjEhJ,kBAAmB,WAA8B,EACjDqH,oBAAqB,EACrBC,sBE76Ca,SAAsCt3J,GACnD,IAAIypJ,EAAYzpJ,EAAKypJ,UACjBsO,EAAqB/3J,EAAK+3J,mBAC1BC,EAAkBh4J,EAAKg4J,gBACvB5uJ,EAAapJ,EAAKoJ,WAClB6uJ,EAAYj4J,EAAKi4J,UAErB,OAfoC,IAehCD,EACK,CACLG,mBAAoBz1J,KAAK8F,IAAI,EAAGY,GAChCgvJ,kBAAmB11J,KAAKm/B,IAAI4nH,EAAY,EAAGwO,EAAYF,IAGlD,CACLI,mBAAoBz1J,KAAK8F,IAAI,EAAGY,EAAa2uJ,GAC7CK,kBAAmB11J,KAAKm/B,IAAI4nH,EAAY,EAAGwO,GAGjD,EF45CEV,iBAAkB,GAClBz/I,KAAM,OACN2gJ,2BA15CiD,IA25CjDnK,kBAAmB,OACnB6D,gBAAiB,EACjBE,aAAc,EACd19I,MAAO,CAAC,EACR47B,SAAU,EACVinH,mBAAmB,KAGrB,IAAAhR,UAASmJ,GACT,UIn8CO,ICQH,EAAQ,EDPD,EAA2B,EAQvB,SAAS,EAA6B3vJ,GACnD,IAAIypJ,EAAYzpJ,EAAKypJ,UACjBsO,EAAqB/3J,EAAK+3J,mBAC1BC,EAAkBh4J,EAAKg4J,gBACvB5uJ,EAAapJ,EAAKoJ,WAClB6uJ,EAAYj4J,EAAKi4J,UAMrB,OAFAF,EAAqBr1J,KAAK8F,IAAI,EAAGuvJ,GAE7BC,IAAoB,EACf,CACLG,mBAAoBz1J,KAAK8F,IAAI,EAAGY,EAAa,GAC7CgvJ,kBAAmB11J,KAAKm/B,IAAI4nH,EAAY,EAAGwO,EAAYF,IAGlD,CACLI,mBAAoBz1J,KAAK8F,IAAI,EAAGY,EAAa2uJ,GAC7CK,kBAAmB11J,KAAKm/B,IAAI4nH,EAAY,EAAGwO,EAAY,GAG7D,CCrBA,SAAS,EAAQ9/J,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAUpV,ICZI,EAAQ,EDYRiiK,GAAmB,EAAQ,EAE/B,SAAU1K,GAGR,SAAS0K,IACP,IAAIC,EAEA76J,EAEJ,EAAgBpC,KAAMg9J,GAEtB,IAAK,IAAI5wF,EAAO1wE,UAAUC,OAAQ6X,EAAO,IAAItO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E74D,EAAK64D,GAAQ3wE,UAAU2wE,GAkFzB,OA7EA,EAAgB0/E,EAFhB3pJ,EAAQ6tE,EAA2BjwE,MAAOi9J,EAAmBjR,EAAgBgR,IAAkB7iK,KAAKmB,MAAM2hK,EAAkB,CAACj9J,MAAMsC,OAAOkR,MAE3F,QAAS,CACtDqhJ,eAAgB,EAChBE,YAAa,EACbT,cAAe,CACbM,mBAAoB,EACpBE,gBAAiB,KAIrB,EAAgB/I,EAAuB3pJ,GAAQ,oBAAqB,GAEpE,EAAgB2pJ,EAAuB3pJ,GAAQ,mBAAoB,GAEnE,EAAgB2pJ,EAAuB3pJ,GAAQ,iBAAkB,GAEjE,EAAgB2pJ,EAAuB3pJ,GAAQ,gBAAiB,GAEhE,EAAgB2pJ,EAAuB3pJ,GAAQ,cAAc,SAAUkB,GACrE,IAAI6vC,EAAc/wC,EAAM/F,MACpB0yH,EAAc57E,EAAY47E,YAC1BxyH,EAAW42C,EAAY52C,SACvBygD,EAAO7J,EAAY6J,KACnBm3G,EAAWhhH,EAAYghH,SAE3B,IAAI53J,EAAJ,CAIA,IAAI2gK,EAAwB96J,EAAM+6J,kBAC9BC,EAAyBF,EAAsBrI,eAC/CwI,EAAsBH,EAAsBnI,YAE5CuI,EAAyBl7J,EAAM+6J,kBAC/BtI,EAAiByI,EAAuBzI,eACxCE,EAAcuI,EAAuBvI,YAIzC,OAAQzxJ,EAAMrJ,KACZ,IAAK,YACH86J,EAAuB,UAAT/3G,EAAmB53C,KAAKm/B,IAAIwwH,EAAc,EAAGZ,EAAW,GAAK/uJ,KAAKm/B,IAAIniC,EAAMmxJ,cAAgB,EAAGY,EAAW,GACxH,MAEF,IAAK,YACHU,EAA0B,UAAT73G,EAAmB53C,KAAK8F,IAAI2pJ,EAAiB,EAAG,GAAKzvJ,KAAK8F,IAAI9I,EAAMywJ,kBAAoB,EAAG,GAC5G,MAEF,IAAK,aACHgC,EAA0B,UAAT73G,EAAmB53C,KAAKm/B,IAAIswH,EAAiB,EAAG9lC,EAAc,GAAK3pH,KAAKm/B,IAAIniC,EAAM2wJ,iBAAmB,EAAGhkC,EAAc,GACvI,MAEF,IAAK,UACHgmC,EAAuB,UAAT/3G,EAAmB53C,KAAK8F,IAAI6pJ,EAAc,EAAG,GAAK3vJ,KAAK8F,IAAI9I,EAAMixJ,eAAiB,EAAG,GAInGwB,IAAmBuI,GAA0BrI,IAAgBsI,IAC/D/5J,EAAMyxC,iBAEN3yC,EAAMm7J,mBAAmB,CACvB1I,eAAgBA,EAChBE,YAAaA,IAnCjB,CAsCF,IAEA,EAAgBhJ,EAAuB3pJ,GAAQ,sBAAsB,SAAUM,GAC7E,IAAIswJ,EAAmBtwJ,EAAKswJ,iBACxBE,EAAkBxwJ,EAAKwwJ,gBACvBM,EAAgB9wJ,EAAK8wJ,cACrBE,EAAehxJ,EAAKgxJ,aACxBtxJ,EAAMywJ,kBAAoBG,EAC1B5wJ,EAAM2wJ,iBAAmBG,EACzB9wJ,EAAMixJ,eAAiBG,EACvBpxJ,EAAMmxJ,cAAgBG,CACxB,IAEOtxJ,CACT,CAkFA,OA/KA+uE,EAAU6rF,EAAiB1K,GA+F3B,EAAa0K,EAAiB,CAAC,CAC7B/iK,IAAK,mBACLgC,MAAO,SAA0B24E,GAC/B,IAAIigF,EAAiBjgF,EAAMigF,eACvBE,EAAcngF,EAAMmgF,YACxB/0J,KAAKuyC,SAAS,CACZwiH,YAAaA,EACbF,eAAgBA,GAEpB,GACC,CACD56J,IAAK,SACLgC,MAAO,WACL,IAAIiuD,EAAelqD,KAAK3D,MACpBoT,EAAYy6C,EAAaz6C,UACzB5R,EAAWqsD,EAAarsD,SAExB2/J,EAAyBx9J,KAAKm9J,kBAC9BtI,EAAiB2I,EAAuB3I,eACxCE,EAAcyI,EAAuBzI,YAEzC,OAAO,gBAAoB,MAAO,CAChCtlJ,UAAWA,EACX8kC,UAAWv0C,KAAKy9J,YACf5/J,EAAS,CACV60J,kBAAmB1yJ,KAAK09J,mBACxB7I,eAAgBA,EAChBE,YAAaA,IAEjB,GACC,CACD96J,IAAK,kBACLgC,MAAO,WACL,OAAO+D,KAAK3D,MAAMshK,aAAe39J,KAAK3D,MAAQ2D,KAAKmyC,KACrD,GACC,CACDl4C,IAAK,qBACLgC,MAAO,SAA4BsxJ,GACjC,IAAIsH,EAAiBtH,EAAMsH,eACvBE,EAAcxH,EAAMwH,YACpB+B,EAAe92J,KAAK3D,MACpBshK,EAAe7G,EAAa6G,aAC5BC,EAAmB9G,EAAa8G,iBAEJ,mBAArBA,GACTA,EAAiB,CACf/I,eAAgBA,EAChBE,YAAaA,IAIZ4I,GACH39J,KAAKuyC,SAAS,CACZsiH,eAAgBA,EAChBE,YAAaA,GAGnB,IACE,CAAC,CACH96J,IAAK,2BACLgC,MAAO,SAAkCq2C,EAAW6tB,GAClD,OAAI7tB,EAAUqrH,aACL,CAAC,EAGNrrH,EAAUuiH,iBAAmB10F,EAAUm0F,cAAcM,oBAAsBtiH,EAAUyiH,cAAgB50F,EAAUm0F,cAAcQ,gBA3KvI,SAAuBt5J,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAK,EAAQG,GAAQ,GAAMC,SAAQ,SAAU5B,GAAO,EAAgBuB,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmB,EAAQA,GAAQC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CA4Ktf,CAAc,CAAC,EAAG2kE,EAAW,CAClC00F,eAAgBviH,EAAUuiH,eAC1BE,YAAaziH,EAAUyiH,YACvBT,cAAe,CACbM,mBAAoBtiH,EAAUuiH,eAC9BC,gBAAiBxiH,EAAUyiH,eAK1B,CAAC,CACV,KAGKiI,CACT,CAjLA,CAiLE,iBAAsB,EAAgB,EAAQ,YAAqD,MAWjG,GEtMW,SAASa,EAA0BC,EAAOC,GAEvD,IAAIC,EAYAlnF,OAA0C,KAT5CknF,OADwB,IAAfD,EACCA,EACiB,oBAAXplK,OACNA,OACe,oBAATE,KACNA,KAEA,EAAAD,GAGqBmpB,UAA4Bi8I,EAAQj8I,SAAS+0D,YAE9E,IAAKA,EAAa,CAChB,IAAImnF,EAAe,WACjB,IAAIlM,EAAMiM,EAAQ3oH,uBAAyB2oH,EAAQxM,0BAA4BwM,EAAQzM,6BAA+B,SAAUzrI,GAC9H,OAAOk4I,EAAQv2J,WAAWqe,EAAI,GAChC,EAEA,OAAO,SAAUA,GACf,OAAOisI,EAAIjsI,EACb,CACF,CARmB,GAUfo4I,EAAc,WAChB,IAAIzkD,EAASukD,EAAQj3G,sBAAwBi3G,EAAQpM,yBAA2BoM,EAAQrM,4BAA8BqM,EAAQ5xJ,aAC9H,OAAO,SAAUrT,GACf,OAAO0gH,EAAO1gH,EAChB,CACF,CALkB,GAOdolK,EAAgB,SAAuB/7I,GACzC,IAAI5I,EAAW4I,EAAQg8I,mBACnBC,EAAS7kJ,EAAS8kJ,kBAClBC,EAAW/kJ,EAASglJ,iBACpBC,EAAcJ,EAAOC,kBACzBC,EAAS/sG,WAAa+sG,EAAS/C,YAC/B+C,EAAS9sG,UAAY8sG,EAAShsG,aAC9BksG,EAAYpnJ,MAAM/E,MAAQ+rJ,EAAO5gG,YAAc,EAAI,KACnDghG,EAAYpnJ,MAAMkkC,OAAS8iH,EAAOhlF,aAAe,EAAI,KACrDglF,EAAO7sG,WAAa6sG,EAAO7C,YAC3B6C,EAAO5sG,UAAY4sG,EAAO9rG,YAC5B,EAMImsG,EAAiB,SAAwBn9I,GAE3C,KAAIA,EAAE/lB,OAAOiU,WAAmD,mBAA/B8R,EAAE/lB,OAAOiU,UAAU40B,SAA0B9iB,EAAE/lB,OAAOiU,UAAU40B,QAAQ,oBAAsB,GAAK9iB,EAAE/lB,OAAOiU,UAAU40B,QAAQ,kBAAoB,GAAnL,CAIA,IAAIjiB,EAAUpiB,KACdm+J,EAAcn+J,MAEVA,KAAK2+J,eACPT,EAAYl+J,KAAK2+J,eAGnB3+J,KAAK2+J,cAAgBV,GAAa,YAjBhB,SAAuB77I,GACzC,OAAOA,EAAQq7C,aAAer7C,EAAQw8I,eAAetsJ,OAAS8P,EAAQi3D,cAAgBj3D,EAAQw8I,eAAerjH,MAC/G,EAgBQsjH,CAAcz8I,KAChBA,EAAQw8I,eAAetsJ,MAAQ8P,EAAQq7C,YACvCr7C,EAAQw8I,eAAerjH,OAASn5B,EAAQi3D,aAExCj3D,EAAQ08I,oBAAoBjjK,SAAQ,SAAUiqB,GAC5CA,EAAG3rB,KAAKioB,EAASb,EACnB,IAEJ,GAlBA,CAmBF,EAII21G,GAAY,EACZ6nC,EAAiB,GACjBC,EAAsB,iBACtBC,EAAc,kBAAkB72I,MAAM,KACtC82I,EAAc,uEAAuE92I,MAAM,KAGzF+2I,EAAMnB,EAAQj8I,SAASpkB,cAAc,eAMzC,QAJgCoF,IAA5Bo8J,EAAI9nJ,MAAM+sE,gBACZ8yC,GAAY,IAGI,IAAdA,EACF,IAAK,IAAIz7H,EAAI,EAAGA,EAAIwjK,EAAYtjK,OAAQF,IACtC,QAAoDsH,IAAhDo8J,EAAI9nJ,MAAM4nJ,EAAYxjK,GAAK,iBAAgC,CAE7DsjK,EAAiB,IADXE,EAAYxjK,GACSwwB,cAAgB,IAC3C+yI,EAAsBE,EAAYzjK,GAClCy7H,GAAY,EACZ,KACF,CAIN,IAAI9yC,EAAgB,aAChBg7E,EAAqB,IAAML,EAAiB,aAAe36E,EAAgB,gDAC3Ei7E,EAAiBN,EAAiB,kBAAoB36E,EAAgB,IAC5E,CAkGA,MAAO,CACLk7E,kBA1EsB,SAA2Bl9I,EAAS0D,GAC1D,GAAIgxD,EACF10D,EAAQ00D,YAAY,WAAYhxD,OAC3B,CACL,IAAK1D,EAAQg8I,mBAAoB,CAC/B,IAAI7yF,EAAMnpD,EAAQq+D,cAEd8+E,EAAevB,EAAQj2G,iBAAiB3lC,GAExCm9I,GAAyC,UAAzBA,EAAazrJ,WAC/BsO,EAAQ/K,MAAMvD,SAAW,YAjCd,SAAsBy3D,GACvC,IAAKA,EAAIzD,eAAe,uBAAwB,CAE9C,IAAIwb,GAAO87E,GAA0C,IAAM,uBAAyBC,GAAkC,IAA5G,6VACNv4I,EAAOykD,EAAIzkD,MAAQykD,EAAI1nD,qBAAqB,QAAQ,GACpDxM,EAAQk0D,EAAI5tE,cAAc,SAC9B0Z,EAAMte,GAAK,sBACXse,EAAMtI,KAAO,WAEA,MAAT+uJ,GACFzmJ,EAAMwwC,aAAa,QAASi2G,GAG1BzmJ,EAAMmoJ,WACRnoJ,EAAMmoJ,WAAW37E,QAAUP,EAE3BjsE,EAAMg6C,YAAYka,EAAIwS,eAAeuF,IAGvCx8D,EAAKuqC,YAAYh6C,EACnB,CACF,CAeMooJ,CAAal0F,GACbnpD,EAAQw8I,eAAiB,CAAC,EAC1Bx8I,EAAQ08I,oBAAsB,IAC7B18I,EAAQg8I,mBAAqB7yF,EAAI5tE,cAAc,QAAQ8R,UAAY,kBACpE,IAAIiwJ,EAAqB,oFAEzB,GAAI/mK,OAAOgnK,aAAc,CACvB,IAAIC,EAAeD,aAAaE,aAAa,+BAAgC,CAC3EC,WAAY,WACV,OAAOJ,CACT,IAEFt9I,EAAQg8I,mBAAmB/5F,UAAYu7F,EAAaE,WAAW,GACjE,MACE19I,EAAQg8I,mBAAmB/5F,UAAYq7F,EAGzCt9I,EAAQivC,YAAYjvC,EAAQg8I,oBAC5BD,EAAc/7I,GACdA,EAAQ9hB,iBAAiB,SAAUo+J,GAAgB,GAG/CM,IACF58I,EAAQg8I,mBAAmB2B,sBAAwB,SAA2Bx+I,GACxEA,EAAE6iE,eAAiBA,GACrB+5E,EAAc/7I,EAElB,EAEAA,EAAQg8I,mBAAmB99J,iBAAiB0+J,EAAqB58I,EAAQg8I,mBAAmB2B,uBAEhG,CAEA39I,EAAQ08I,oBAAoBzjK,KAAKyqB,EACnC,CACF,EA2BEk6I,qBAzByB,SAA8B59I,EAAS0D,GAChE,GAAIgxD,EACF10D,EAAQ20D,YAAY,WAAYjxD,QAIhC,GAFA1D,EAAQ08I,oBAAoBpsH,OAAOtwB,EAAQ08I,oBAAoBz6H,QAAQve,GAAK,IAEvE1D,EAAQ08I,oBAAoBnjK,OAAQ,CACvCymB,EAAQne,oBAAoB,SAAUy6J,GAAgB,GAElDt8I,EAAQg8I,mBAAmB2B,wBAC7B39I,EAAQg8I,mBAAmBn6J,oBAAoB+6J,EAAqB58I,EAAQg8I,mBAAmB2B,uBAE/F39I,EAAQg8I,mBAAmB2B,sBAAwB,MAGrD,IACE39I,EAAQg8I,oBAAsBh8I,EAAQuvC,YAAYvvC,EAAQg8I,mBAC5D,CAAE,MAAO78I,GACT,CACF,CAEJ,EAMF,CDlNA,SAAS,EAAQ1mB,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAAS,EAAcS,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAK,EAAQG,GAAQ,GAAMC,SAAQ,SAAU5B,GAAO,EAAgBuB,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmB,EAAQA,GAAQC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CDwMrgB,EAAgBwhK,EAAiB,eAAgB,CAC/CzgK,UAAU,EACVohK,cAAc,EACd3gH,KAAM,QACN63G,eAAgB,EAChBE,YAAa,KAGf,IAAA7L,UAAS8T,GC5MT,IAAIiD,GAAa,EAAQ,EAEzB,SAAU7vF,GAGR,SAAS6vF,IACP,IAAIhD,EAEA76J,EAEJ,EAAgBpC,KAAMigK,GAEtB,IAAK,IAAI7zF,EAAO1wE,UAAUC,OAAQ6X,EAAO,IAAItO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E74D,EAAK64D,GAAQ3wE,UAAU2wE,GAyDzB,OApDA,EAAgB0/E,EAFhB3pJ,EAAQ6tE,EAA2BjwE,MAAOi9J,EAAmBjR,EAAgBiU,IAAY9lK,KAAKmB,MAAM2hK,EAAkB,CAACj9J,MAAMsC,OAAOkR,MAErF,QAAS,CACtD+nC,OAAQn5C,EAAM/F,MAAM6jK,eAAiB,EACrC5tJ,MAAOlQ,EAAM/F,MAAM8jK,cAAgB,IAGrC,EAAgBpU,EAAuB3pJ,GAAQ,mBAAe,GAE9D,EAAgB2pJ,EAAuB3pJ,GAAQ,kBAAc,GAE7D,EAAgB2pJ,EAAuB3pJ,GAAQ,eAAW,GAE1D,EAAgB2pJ,EAAuB3pJ,GAAQ,4BAAwB,GAEvE,EAAgB2pJ,EAAuB3pJ,GAAQ,aAAa,WAC1D,IAAI+wC,EAAc/wC,EAAM/F,MACpB+jK,EAAgBjtH,EAAYitH,cAC5BC,EAAeltH,EAAYktH,aAC3BC,EAAWntH,EAAYmtH,SAE3B,GAAIl+J,EAAMm+J,YAAa,CAIrB,IAAIhlH,EAASn5C,EAAMm+J,YAAYlnF,cAAgB,EAC3C/mE,EAAQlQ,EAAMm+J,YAAY9iG,aAAe,EAEzCpmD,GADMjV,EAAM47J,SAAWrlK,QACXovD,iBAAiB3lD,EAAMm+J,cAAgB,CAAC,EACpDt6F,EAAcj7D,SAASqM,EAAM4uD,YAAa,KAAO,EACjDoP,EAAerqE,SAASqM,EAAMg+D,aAAc,KAAO,EACnDmrF,EAAax1J,SAASqM,EAAMmpJ,WAAY,KAAO,EAC/C78F,EAAgB34D,SAASqM,EAAMssD,cAAe,KAAO,EACrD88F,EAAYllH,EAASilH,EAAa78F,EAClC+8F,EAAWpuJ,EAAQ2zD,EAAcoP,IAEhC+qF,GAAiBh+J,EAAM+vC,MAAMoJ,SAAWklH,IAAcJ,GAAgBj+J,EAAM+vC,MAAM7/B,QAAUouJ,KAC/Ft+J,EAAMmwC,SAAS,CACbgJ,OAAQA,EAASilH,EAAa78F,EAC9BrxD,MAAOA,EAAQ2zD,EAAcoP,IAG/BirF,EAAS,CACP/kH,OAAQA,EACRjpC,MAAOA,IAGb,CACF,IAEA,EAAgBy5I,EAAuB3pJ,GAAQ,WAAW,SAAUu+J,GAClEv+J,EAAMw+J,WAAaD,CACrB,IAEOv+J,CACT,CAgFA,OApJA+uE,EAAU8uF,EAAW7vF,GAsErB,EAAa6vF,EAAW,CAAC,CACvBhmK,IAAK,oBACLgC,MAAO,WACL,IAAI6hK,EAAQ99J,KAAK3D,MAAMyhK,MAEnB99J,KAAK4gK,YAAc5gK,KAAK4gK,WAAW98I,YAAc9jB,KAAK4gK,WAAW98I,WAAW28D,eAAiBzgF,KAAK4gK,WAAW98I,WAAW28D,cAAcK,aAAe9gF,KAAK4gK,WAAW98I,sBAAsB9jB,KAAK4gK,WAAW98I,WAAW28D,cAAcK,YAAY7+D,cAIlPjiB,KAAKugK,YAAcvgK,KAAK4gK,WAAW98I,WACnC9jB,KAAKg+J,QAAUh+J,KAAK4gK,WAAW98I,WAAW28D,cAAcK,YAGxD9gF,KAAK6gK,qBAAuBhD,EAA0BC,EAAO99J,KAAKg+J,SAElEh+J,KAAK6gK,qBAAqBvB,kBAAkBt/J,KAAKugK,YAAavgK,KAAK8gK,WAEnE9gK,KAAK8gK,YAET,GACC,CACD7mK,IAAK,uBACLgC,MAAO,WACD+D,KAAK6gK,sBAAwB7gK,KAAKugK,aACpCvgK,KAAK6gK,qBAAqBb,qBAAqBhgK,KAAKugK,YAAavgK,KAAK8gK,UAE1E,GACC,CACD7mK,IAAK,SACLgC,MAAO,WACL,IAAIiuD,EAAelqD,KAAK3D,MACpBwB,EAAWqsD,EAAarsD,SACxB4R,EAAYy6C,EAAaz6C,UACzB2wJ,EAAgBl2G,EAAak2G,cAC7BC,EAAen2G,EAAam2G,aAC5BhpJ,EAAQ6yC,EAAa7yC,MACrBygJ,EAAc93J,KAAKmyC,MACnBoJ,EAASu8G,EAAYv8G,OACrBjpC,EAAQwlJ,EAAYxlJ,MAIpByuJ,EAAa,CACf/4G,SAAU,WAERg5G,EAAc,CAAC,EAyBnB,OAvBKZ,IACHW,EAAWxlH,OAAS,EACpBylH,EAAYzlH,OAASA,GAGlB8kH,IACHU,EAAWzuJ,MAAQ,EACnB0uJ,EAAY1uJ,MAAQA,GAgBf,gBAAoB,MAAO,CAChC7C,UAAWA,EACXxS,IAAK+C,KAAKihK,QACV5pJ,MAAO,EAAc,CAAC,EAAG0pJ,EAAY,CAAC,EAAG1pJ,IACxCxZ,EAASmjK,GACd,KAGKf,CACT,CAtJA,CAsJE,aAAkB,EAAgB,EAAQ,YAAqD,MA2B7F,GAEJ,EAAgBA,EAAW,eAAgB,CACzCK,SAAU,WAAqB,EAC/BF,eAAe,EACfC,cAAc,EACdhpJ,MAAO,CAAC,QEjMN,GAAQ,eAUR,IAAgB,GAAQ,GAE5B,SAAUi7I,GAGR,SAAS4O,IACP,IAAIjE,EAEA76J,EAEJ,EAAgBpC,KAAMkhK,GAEtB,IAAK,IAAI90F,EAAO1wE,UAAUC,OAAQ6X,EAAO,IAAItO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E74D,EAAK64D,GAAQ3wE,UAAU2wE,GA4CzB,OAvCA,EAAgB0/E,EAFhB3pJ,EAAQ6tE,EAA2BjwE,MAAOi9J,EAAmBjR,EAAgBkV,IAAe/mK,KAAKmB,MAAM2hK,EAAkB,CAACj9J,MAAMsC,OAAOkR,MAExF,cAAU,GAEzD,EAAgBu4I,EAAuB3pJ,GAAQ,YAAY,WACzD,IAAI+wC,EAAc/wC,EAAM/F,MACpB7C,EAAQ25C,EAAY35C,MACpB2nK,EAAwBhuH,EAAYwiH,YACpCA,OAAwC,IAA1BwL,EAAmC,EAAIA,EACrD53E,EAASp2C,EAAYo2C,OACrB63E,EAAuBjuH,EAAY0iH,SACnCA,OAAoC,IAAzBuL,EAAkCh/J,EAAM/F,MAAMgiB,OAAS,EAAI+iJ,EAEtEC,EAAwBj/J,EAAMk/J,uBAC9B/lH,EAAS8lH,EAAsB9lH,OAC/BjpC,EAAQ+uJ,EAAsB/uJ,MAE9BipC,IAAW/hD,EAAM+nK,UAAU1L,EAAUF,IAAgBrjJ,IAAU9Y,EAAMgoK,SAAS3L,EAAUF,KAC1Fn8J,EAAMa,IAAIw7J,EAAUF,EAAarjJ,EAAOipC,GAEpCguC,GAA8C,mBAA7BA,EAAO8xE,mBAC1B9xE,EAAO8xE,kBAAkB,CACvB1F,YAAaA,EACbE,SAAUA,IAIlB,IAEA,EAAgB9J,EAAuB3pJ,GAAQ,kBAAkB,SAAUggB,IACrEA,GAAaA,aAAmBmzB,SAClC74C,QAAQkvC,KAAK,mEAGfxpC,EAAMq/J,OAASr/I,EAEXA,GACFhgB,EAAMs/J,mBAEV,IAEOt/J,CACT,CAiGA,OAxJA+uE,EAAU+vF,EAAc5O,GAyDxB,EAAa4O,EAAc,CAAC,CAC1BjnK,IAAK,oBACLgC,MAAO,WACL+D,KAAK0hK,mBACP,GACC,CACDznK,IAAK,qBACLgC,MAAO,WACL+D,KAAK0hK,mBACP,GACC,CACDznK,IAAK,SACLgC,MAAO,WACL,IAAI4B,EAAWmC,KAAK3D,MAAMwB,SAC1B,MAA2B,mBAAbA,EAA0BA,EAAS,CAC/C8jK,QAAS3hK,KAAK4hK,SACdC,cAAe7hK,KAAK8hK,iBACjBjkK,CACP,GACC,CACD5D,IAAK,uBACLgC,MAAO,WACL,IAAIzC,EAAQwG,KAAK3D,MAAM7C,MACnB+E,EAAOyB,KAAKyhK,SAAU,KAAApgH,aAAYrhD,MAEtC,GAAIzB,GAAQA,EAAKkiF,eAAiBliF,EAAKkiF,cAAcK,aAAeviF,aAAgBA,EAAKkiF,cAAcK,YAAY7+D,YAAa,CAC9H,IAAI8/I,EAAaxjK,EAAK8Y,MAAM/E,MACxB0vJ,EAAczjK,EAAK8Y,MAAMkkC,OAUxB/hD,EAAMwhK,kBACTz8J,EAAK8Y,MAAM/E,MAAQ,QAGhB9Y,EAAMuhK,mBACTx8J,EAAK8Y,MAAMkkC,OAAS,QAGtB,IAAIA,EAASn2C,KAAK+yI,KAAK55I,EAAK86E,cACxB/mE,EAAQlN,KAAK+yI,KAAK55I,EAAKk/D,aAU3B,OARIskG,IACFxjK,EAAK8Y,MAAM/E,MAAQyvJ,GAGjBC,IACFzjK,EAAK8Y,MAAMkkC,OAASymH,GAGf,CACLzmH,OAAQA,EACRjpC,MAAOA,EAEX,CACE,MAAO,CACLipC,OAAQ,EACRjpC,MAAO,EAGb,GACC,CACDrY,IAAK,oBACLgC,MAAO,WACL,IAAIiuD,EAAelqD,KAAK3D,MACpB7C,EAAQ0wD,EAAa1wD,MACrByoK,EAAwB/3G,EAAayrG,YACrCA,OAAwC,IAA1BsM,EAAmC,EAAIA,EACrD14E,EAASr/B,EAAaq/B,OACtB24E,EAAwBh4G,EAAa2rG,SACrCA,OAAqC,IAA1BqM,EAAmCliK,KAAK3D,MAAMgiB,OAAS,EAAI6jJ,EAE1E,IAAK1oK,EAAME,IAAIm8J,EAAUF,GAAc,CACrC,IAAIwM,EAAyBniK,KAAKshK,uBAC9B/lH,EAAS4mH,EAAuB5mH,OAChCjpC,EAAQ6vJ,EAAuB7vJ,MAEnC9Y,EAAMa,IAAIw7J,EAAUF,EAAarjJ,EAAOipC,GAEpCguC,GAA0D,mBAAzCA,EAAO64E,+BAC1B74E,EAAO64E,8BAA8B,CACnCzM,YAAaA,EACbE,SAAUA,GAGhB,CACF,KAGKqL,CACT,CA1JA,CA0JE,iBAAsB,EAAgB,GAAQ,YAAqD,MAYjG,IClLJ,SAAS,GAAQrmK,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAAS,GAAcS,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAK,GAAQG,GAAQ,GAAMC,SAAQ,SAAU5B,GAAO,EAAgBuB,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmB,GAAQA,GAAQC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CDkLrgB,EAAgB,GAAc,8BAA8B,GCpK5D,IAMI,GAES,YAOT6mK,GAEJ,SAAU/P,GAIR,SAAS+P,IACP,IAAIpF,EAEA76J,EAEJ,EAAgBpC,KAAMqiK,GAEtB,IAAK,IAAIj2F,EAAO1wE,UAAUC,OAAQ6X,EAAO,IAAItO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E74D,EAAK64D,GAAQ3wE,UAAU2wE,GAkIzB,OA5HA,EAAgB0/E,EAHhB3pJ,EAAQ6tE,EAA2BjwE,MAAOi9J,EAAmBjR,EAAgBqW,IAAiBloK,KAAKmB,MAAM2hK,EAAkB,CAACj9J,MAAMsC,OAAOkR,MAG1F,QAAS,CACtDg/I,aAAa,EACbhhG,WAAY,EACZC,UAAW,IAGb,EAAgBs6F,EAAuB3pJ,GAAQ,6CAA6C,GAE5F,EAAgB2pJ,EAAuB3pJ,GAAQ,6BAA8B6tJ,KAE7E,EAAgBlE,EAAuB3pJ,GAAQ,oBAAqB6tJ,GAAuB,IAE3F,EAAgBlE,EAAuB3pJ,GAAQ,kCAAkC,WAC/E,IAAI+wC,EAAc/wC,EAAM/F,MACpBimK,EAAoBnvH,EAAYmvH,kBAChC5P,EAAoBv/G,EAAYu/G,kBAEpCtwJ,EAAMmgK,2BAA2B,CAC/B/6J,SAAUkrJ,EACVtC,QAAS,CACPA,QAASkS,EAAkBE,2BAGjC,IAEA,EAAgBzW,EAAuB3pJ,GAAQ,6BAA6B,SAAUnF,GACpFmF,EAAMwxJ,oBAAsB32J,CAC9B,IAEA,EAAgB8uJ,EAAuB3pJ,GAAQ,wCAAwC,WACrF,IAAI8nD,EAAe9nD,EAAM/F,MACrBimK,EAAoBp4G,EAAao4G,kBACjC/mH,EAAS2O,EAAa3O,OACtBy1G,EAAoB9mG,EAAa8mG,kBACjCyR,EAAev4G,EAAau4G,aAC5BnwJ,EAAQ43C,EAAa53C,MACrBwlJ,EAAc11J,EAAM+vC,MACpBqf,EAAasmG,EAAYtmG,WACzBC,EAAYqmG,EAAYrmG,UAE5B,GAAIgxG,GAAgB,EAAG,CACrB,IAAIC,EAAiBJ,EAAkBK,yBAAyB,CAC9DzxJ,MAAO8/I,EACP4R,UAAWH,EACXlnH,OAAQA,EACRiW,WAAYA,EACZC,UAAWA,EACXn/C,MAAOA,IAGLowJ,EAAelxG,aAAeA,GAAckxG,EAAejxG,YAAcA,GAC3ErvD,EAAMygK,mBAAmBH,EAE7B,CACF,IAEA,EAAgB3W,EAAuB3pJ,GAAQ,aAAa,SAAUkB,GAIpE,GAAIA,EAAM9H,SAAW4G,EAAMwxJ,oBAA3B,CAKAxxJ,EAAM0gK,iCAMN,IAAIhM,EAAe10J,EAAM/F,MACrBimK,EAAoBxL,EAAawL,kBACjC/mH,EAASu7G,EAAav7G,OACtBwnH,EAAoBjM,EAAaiM,kBACjCzwJ,EAAQwkJ,EAAaxkJ,MACrB8+I,EAAgBhvJ,EAAM4gK,eAEtBC,EAAwBX,EAAkBrU,eAC1CiV,EAAcD,EAAsB1nH,OACpC4nH,EAAaF,EAAsB3wJ,MAEnCk/C,EAAapsD,KAAK8F,IAAI,EAAG9F,KAAKm/B,IAAI4+H,EAAa7wJ,EAAQ8+I,EAAe9tJ,EAAM9H,OAAOg2D,aACnFC,EAAYrsD,KAAK8F,IAAI,EAAG9F,KAAKm/B,IAAI2+H,EAAc3nH,EAAS61G,EAAe9tJ,EAAM9H,OAAOi2D,YAKxF,GAAIrvD,EAAM+vC,MAAMqf,aAAeA,GAAcpvD,EAAM+vC,MAAMsf,YAAcA,EAAW,CAKhF,IAAI0jG,EAA6B7xJ,EAAMs3H,WAzHnC,WAyH0F,GAEzFx4H,EAAM+vC,MAAMqgH,aACfuQ,GAAkB,GAGpB3gK,EAAMmwC,SAAS,CACbigH,aAAa,EACbhhG,WAAYA,EACZ2jG,2BAA4BA,EAC5B1jG,UAAWA,GAEf,CAEArvD,EAAMq0J,wBAAwB,CAC5BjlG,WAAYA,EACZC,UAAWA,EACX0xG,WAAYA,EACZD,YAAaA,GAjDf,CAmDF,IAEA9gK,EAAM4gK,eAAiB,SAEMjgK,IAAzBX,EAAM4gK,gBACR5gK,EAAMghK,wBAAyB,EAC/BhhK,EAAM4gK,eAAiB,GAEvB5gK,EAAMghK,wBAAyB,EAG1BhhK,CACT,CAqSA,OAnbA+uE,EAAUkxF,EAAgB/P,GAsJ1B,EAAa+P,EAAgB,CAAC,CAC5BpoK,IAAK,iCACLgC,MAAO,WACL+D,KAAKqjK,2CAA4C,EACjDrjK,KAAK4a,aACP,GAWC,CACD3gB,IAAK,oBACLgC,MAAO,WACL,IAAIo7J,EAAer3J,KAAK3D,MACpBimK,EAAoBjL,EAAaiL,kBACjC9wG,EAAa6lG,EAAa7lG,WAC1BixG,EAAepL,EAAaoL,aAC5BhxG,EAAY4lG,EAAa5lG,UAGxBzxD,KAAKojK,yBACRpjK,KAAKgjK,eAAiB,IACtBhjK,KAAKojK,wBAAyB,EAC9BpjK,KAAKuyC,SAAS,CAAC,IAGbkwH,GAAgB,EAClBziK,KAAKsjK,wCACI9xG,GAAc,GAAKC,GAAa,IACzCzxD,KAAK6iK,mBAAmB,CACtBrxG,WAAYA,EACZC,UAAWA,IAKfzxD,KAAKujK,iCAEL,IAAIC,EAAyBlB,EAAkBrU,eAC3CiV,EAAcM,EAAuBjoH,OACrC4nH,EAAaK,EAAuBlxJ,MAGxCtS,KAAKy2J,wBAAwB,CAC3BjlG,WAAYA,GAAc,EAC1BC,UAAWA,GAAa,EACxByxG,YAAaA,EACbC,WAAYA,GAEhB,GACC,CACDlpK,IAAK,qBACLgC,MAAO,SAA4B67C,EAAWqoB,GAC5C,IAAI03F,EAAe73J,KAAK3D,MACpBk/C,EAASs8G,EAAat8G,OACtBy1G,EAAoB6G,EAAa7G,kBACjCyR,EAAe5K,EAAa4K,aAC5BnwJ,EAAQulJ,EAAavlJ,MACrBgmJ,EAAet4J,KAAKmyC,MACpBqf,EAAa8mG,EAAa9mG,WAC1B2jG,EAA6BmD,EAAanD,2BAC1C1jG,EAAY6mG,EAAa7mG,UAMzB0jG,IAA+B,KAC7B3jG,GAAc,GAAKA,IAAe2O,EAAU3O,YAAcA,IAAexxD,KAAK4zJ,oBAAoBpiG,aACpGxxD,KAAK4zJ,oBAAoBpiG,WAAaA,GAGpCC,GAAa,GAAKA,IAAc0O,EAAU1O,WAAaA,IAAczxD,KAAK4zJ,oBAAoBniG,YAChGzxD,KAAK4zJ,oBAAoBniG,UAAYA,IAKrClW,IAAWzD,EAAUyD,QAAUy1G,IAAsBl5G,EAAUk5G,mBAAqByR,IAAiB3qH,EAAU2qH,cAAgBnwJ,IAAUwlC,EAAUxlC,OACrJtS,KAAKsjK,uCAIPtjK,KAAKujK,gCACP,GACC,CACDtpK,IAAK,uBACLgC,MAAO,WACD+D,KAAKuyJ,gCACPnmJ,aAAapM,KAAKuyJ,+BAEtB,GACC,CACDt4J,IAAK,SACLgC,MAAO,WACL,IAAI+7J,EAAeh4J,KAAK3D,MACpB+5J,EAAa4B,EAAa5B,WAC1BjK,EAAY6L,EAAa7L,UACzBmW,EAAoBtK,EAAasK,kBACjC7yJ,EAAYuoJ,EAAavoJ,UACzB8rC,EAASy8G,EAAaz8G,OACtBkoH,EAAyBzL,EAAayL,uBACtC1qK,EAAKi/J,EAAaj/J,GAClBs/J,EAAoBL,EAAaK,kBACjChhJ,EAAQ2gJ,EAAa3gJ,MACrBqsJ,EAAuB1L,EAAa0L,qBACpCpxJ,EAAQ0lJ,EAAa1lJ,MACrBqxJ,EAAe3jK,KAAKmyC,MACpBqgH,EAAcmR,EAAanR,YAC3BhhG,EAAamyG,EAAanyG,WAC1BC,EAAYkyG,EAAalyG,WAEzBzxD,KAAK4jK,yBAA2BzX,GAAansJ,KAAK6jK,iCAAmCvB,GAAqBtiK,KAAKqjK,6CACjHrjK,KAAK4jK,uBAAyBzX,EAC9BnsJ,KAAK6jK,+BAAiCvB,EACtCtiK,KAAKqjK,2CAA4C,EACjDf,EAAkBwB,gCAGpB,IAAIC,EAAyBzB,EAAkBrU,eAC3CiV,EAAca,EAAuBxoH,OACrC4nH,EAAaY,EAAuBzxJ,MAGpCoG,EAAOtT,KAAK8F,IAAI,EAAGsmD,EAAaiyG,GAChC7qJ,EAAMxT,KAAK8F,IAAI,EAAGumD,EAAYiyG,GAC9B/qJ,EAAQvT,KAAKm/B,IAAI4+H,EAAY3xG,EAAal/C,EAAQmxJ,GAClD5qJ,EAASzT,KAAKm/B,IAAI2+H,EAAazxG,EAAYlW,EAASmoH,GACpDrK,EAAoB99G,EAAS,GAAKjpC,EAAQ,EAAIgwJ,EAAkB0B,cAAc,CAChFzoH,OAAQ1iC,EAASD,EACjB45I,YAAaA,EACblgJ,MAAOqG,EAAQD,EACfua,EAAGva,EACH0rC,EAAGxrC,IACA,GACDqrJ,EAAkB,CACpBxL,UAAW,aACXC,UAAW,MACXn9G,OAAQ66G,EAAa,OAAS76G,EAC9BznC,SAAU,WACV6kJ,wBAAyB,QACzBrmJ,MAAOA,EACPsmJ,WAAY,aAKVG,EAAwBmK,EAAc3nH,EAASv7C,KAAKgjK,eAAiB,EACrEhK,EAA0BmK,EAAa7wJ,EAAQtS,KAAKgjK,eAAiB,EAQzE,OAFAiB,EAAgB7K,UAAY+J,EAAapK,GAAyBzmJ,EAAQ,SAAW,OACrF2xJ,EAAgBv9G,UAAYw8G,EAAclK,GAA2Bz9G,EAAS,SAAW,OAClF,gBAAoB,MAAO,CAChCt+C,IAAK+C,KAAKw5J,0BACV,aAAcx5J,KAAK3D,MAAM,cACzBoT,UAAW,EAAK,+BAAgCA,GAChD1W,GAAIA,EACJ0gK,SAAUz5J,KAAK05J,UACfl/I,KAAM,OACNnD,MAAO,GAAc,CAAC,EAAG4sJ,EAAiB,CAAC,EAAG5sJ,GAC9C47B,SAAU,GACTk5G,EAAY,GAAK,gBAAoB,MAAO,CAC7C18I,UAAW,qDACX4H,MAAO,CACLkkC,OAAQ2nH,EACRhzG,UAAWgzG,EACX3lG,SAAU4lG,EACVn7G,SAAU,SACV2xG,cAAenH,EAAc,OAAS,GACtClgJ,MAAO6wJ,IAER9J,GAAkC,IAAdlN,GAAmBkM,IAC5C,GASC,CACDp+J,IAAK,iCACLgC,MAAO,WACL,IAAIwG,EAASzC,KAETA,KAAKuyJ,gCACPnmJ,aAAapM,KAAKuyJ,gCAGpBvyJ,KAAKuyJ,+BAAiC9qJ,YAAW,YAE/Cs7J,EADwBtgK,EAAOpG,MAAM0mK,oBACnB,GAClBtgK,EAAO8vJ,+BAAiC,KAExC9vJ,EAAO8vC,SAAS,CACdigH,aAAa,GAEjB,GAxXqB,IAyXvB,GACC,CACDv4J,IAAK,0BACLgC,MAAO,SAAiCyG,GACtC,IAAII,EAAS9C,KAETwxD,EAAa9uD,EAAK8uD,WAClBC,EAAY/uD,EAAK+uD,UACjByxG,EAAcxgK,EAAKwgK,YACnBC,EAAazgK,EAAKygK,WAEtBnjK,KAAKs7J,kBAAkB,CACrB9zJ,SAAU,SAAkBotE,GAC1B,IAAIpjB,EAAaojB,EAAMpjB,WACnBC,EAAYmjB,EAAMnjB,UAClB8pG,EAAez4J,EAAOzG,MACtBk/C,EAASggH,EAAahgH,QAG1Bk+G,EAFe8B,EAAa9B,UAEnB,CACPplG,aAAc9Y,EACd4Y,YAHUonG,EAAajpJ,MAIvBigD,aAAc2wG,EACd1xG,WAAYA,EACZC,UAAWA,EACX+pG,YAAa2H,GAEjB,EACA/S,QAAS,CACP5+F,WAAYA,EACZC,UAAWA,IAGjB,GACC,CACDx3D,IAAK,qBACLgC,MAAO,SAA4BsxJ,GACjC,IAAI/7F,EAAa+7F,EAAM/7F,WACnBC,EAAY87F,EAAM97F,UAClB+kG,EAAW,CACbrB,2BAA4B,IAG1B3jG,GAAc,IAChBglG,EAAShlG,WAAaA,GAGpBC,GAAa,IACf+kG,EAAS/kG,UAAYA,IAGnBD,GAAc,GAAKA,IAAexxD,KAAKmyC,MAAMqf,YAAcC,GAAa,GAAKA,IAAczxD,KAAKmyC,MAAMsf,YACxGzxD,KAAKuyC,SAASikH,EAElB,IACE,CAAC,CACHv8J,IAAK,2BACLgC,MAAO,SAAkCq2C,EAAW6tB,GAClD,OAA4B,IAAxB7tB,EAAU65G,WAA6C,IAAzBhsF,EAAU3O,YAA4C,IAAxB2O,EAAU1O,UAM/Dnf,EAAUkf,aAAe2O,EAAU3O,YAAclf,EAAUmf,YAAc0O,EAAU1O,UACrF,CACLD,WAAoC,MAAxBlf,EAAUkf,WAAqBlf,EAAUkf,WAAa2O,EAAU3O,WAC5EC,UAAkC,MAAvBnf,EAAUmf,UAAoBnf,EAAUmf,UAAY0O,EAAU1O,UACzE0jG,2BAA4B,IAIzB,KAbE,CACL3jG,WAAY,EACZC,UAAW,EACX0jG,2BAA4B,GAWlC,KAGKkN,CACT,CArbA,CAqbE,iBAEF,EAAgBA,GAAgB,eAAgB,CAC9C,aAAc,OACdoB,uBAAwB,EACxBpL,kBAAmB,WACjB,OAAO,IACT,EACAoB,SAAU,WACR,OAAO,IACT,EACA/G,kBAAmB,WACjB,OAAO,IACT,EACA1B,kBAAmB,OACnByR,cAAe,EACfprJ,MAAO,CAAC,EACRqsJ,qBAAsB,IAGxBrB,GAAerkK,UAgGX,CAAC,GACL,IAAAkrJ,UAASmZ,IACT,YCplBA,ICSI6B,GAEJ,WACE,SAASA,EAAQxhK,GACf,IAAI64C,EAAS74C,EAAK64C,OACdjpC,EAAQ5P,EAAK4P,MACb2gB,EAAIvwB,EAAKuwB,EACTmxB,EAAI1hD,EAAK0hD,EAEb,EAAgBpkD,KAAMkkK,GAEtBlkK,KAAKu7C,OAASA,EACdv7C,KAAKsS,MAAQA,EACbtS,KAAKizB,EAAIA,EACTjzB,KAAKokD,EAAIA,EACTpkD,KAAKmkK,UAAY,CAAC,EAClBnkK,KAAKokK,SAAW,EAClB,CA+BA,OA3BA,EAAaF,EAAS,CAAC,CACrBjqK,IAAK,eACLgC,MAAO,SAAsB24E,GAC3B,IAAIv2D,EAAQu2D,EAAMv2D,MAEbre,KAAKmkK,UAAU9lJ,KAClBre,KAAKmkK,UAAU9lJ,IAAS,EAExBre,KAAKokK,SAAS/oK,KAAKgjB,GAEvB,GAGC,CACDpkB,IAAK,iBACLgC,MAAO,WACL,OAAO+D,KAAKokK,QACd,GAGC,CACDnqK,IAAK,WACLgC,MAAO,WACL,MAAO,GAAGqG,OAAOtC,KAAKizB,EAAG,KAAK3wB,OAAOtC,KAAKokD,EAAG,KAAK9hD,OAAOtC,KAAKsS,MAAO,KAAKhQ,OAAOtC,KAAKu7C,OACxF,KAGK2oH,CACT,CA/CA,GCKIG,GAEJ,WACE,SAASA,IACP,IAAIC,EAAc5oK,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAXlE,IAaf,EAAgBsE,KAAMqkK,GAEtBrkK,KAAKukK,aAAeD,EACpBtkK,KAAKwkK,cAAgB,GACrBxkK,KAAKykK,UAAY,CAAC,CACpB,CA0GA,OAnGA,EAAaJ,EAAgB,CAAC,CAC5BpqK,IAAK,iBACLgC,MAAO,SAAwByG,GAC7B,IAAI64C,EAAS74C,EAAK64C,OACdjpC,EAAQ5P,EAAK4P,MACb2gB,EAAIvwB,EAAKuwB,EACTmxB,EAAI1hD,EAAK0hD,EACTgsG,EAAU,CAAC,EAYf,OAXApwJ,KAAK0kK,YAAY,CACfnpH,OAAQA,EACRjpC,MAAOA,EACP2gB,EAAGA,EACHmxB,EAAGA,IACFvoD,SAAQ,SAAU8oK,GACnB,OAAOA,EAAQC,iBAAiB/oK,SAAQ,SAAUwiB,GAChD+xI,EAAQ/xI,GAASA,CACnB,GACF,IAEOvkB,OAAOiB,KAAKq1J,GAAS79I,KAAI,SAAU8L,GACxC,OAAO+xI,EAAQ/xI,EACjB,GACF,GAGC,CACDpkB,IAAK,kBACLgC,MAAO,SAAyB24E,GAC9B,IAAIv2D,EAAQu2D,EAAMv2D,MAClB,OAAOre,KAAKwkK,cAAcnmJ,EAC5B,GAGC,CACDpkB,IAAK,cACLgC,MAAO,SAAqBsxJ,GAW1B,IAVA,IAAIhyG,EAASgyG,EAAMhyG,OACfjpC,EAAQi7I,EAAMj7I,MACd2gB,EAAIs6H,EAAMt6H,EACVmxB,EAAImpG,EAAMnpG,EACVygH,EAAgBz/J,KAAKoF,MAAMyoB,EAAIjzB,KAAKukK,cACpCO,EAAe1/J,KAAKoF,OAAOyoB,EAAI3gB,EAAQ,GAAKtS,KAAKukK,cACjDQ,EAAgB3/J,KAAKoF,MAAM45C,EAAIpkD,KAAKukK,cACpCS,EAAe5/J,KAAKoF,OAAO45C,EAAI7I,EAAS,GAAKv7C,KAAKukK,cAClDU,EAAW,GAENC,EAAWL,EAAeK,GAAYJ,EAAcI,IAC3D,IAAK,IAAIC,EAAWJ,EAAeI,GAAYH,EAAcG,IAAY,CACvE,IAAIlrK,EAAM,GAAGqI,OAAO4iK,EAAU,KAAK5iK,OAAO6iK,GAErCnlK,KAAKykK,UAAUxqK,KAClB+F,KAAKykK,UAAUxqK,GAAO,IAAIiqK,GAAQ,CAChC3oH,OAAQv7C,KAAKukK,aACbjyJ,MAAOtS,KAAKukK,aACZtxI,EAAGiyI,EAAWllK,KAAKukK,aACnBngH,EAAG+gH,EAAWnlK,KAAKukK,gBAIvBU,EAAS5pK,KAAK2E,KAAKykK,UAAUxqK,GAC/B,CAGF,OAAOgrK,CACT,GAGC,CACDhrK,IAAK,uBACLgC,MAAO,WACL,OAAOnC,OAAOiB,KAAKiF,KAAKykK,WAAW9oK,MACrC,GAGC,CACD1B,IAAK,WACLgC,MAAO,WACL,IAAImG,EAAQpC,KAEZ,OAAOlG,OAAOiB,KAAKiF,KAAKykK,WAAWlyJ,KAAI,SAAU8L,GAC/C,OAAOjc,EAAMqiK,UAAUpmJ,GAAOza,UAChC,GACF,GAGC,CACD3J,IAAK,eACLgC,MAAO,SAAsB0zJ,GAC3B,IAAIyV,EAAgBzV,EAAMyV,cACtB/mJ,EAAQsxI,EAAMtxI,MAClBre,KAAKwkK,cAAcnmJ,GAAS+mJ,EAC5BplK,KAAK0kK,YAAYU,GAAevpK,SAAQ,SAAU8oK,GAChD,OAAOA,EAAQU,aAAa,CAC1BhnJ,MAAOA,GAEX,GACF,KAGKgmJ,CACT,CApHA,GCNe,SAAS5U,GAAyB/sJ,GAC/C,IAAI4iK,EAAa5iK,EAAKwO,MAClBA,OAAuB,IAAfo0J,EAAwB,OAASA,EACzCC,EAAa7iK,EAAK6iK,WAClBnZ,EAAW1pJ,EAAK0pJ,SAChBqB,EAAgB/qJ,EAAK+qJ,cACrBrpH,EAAgB1hC,EAAK0hC,cACrB0pH,EAAYyX,EACZxX,EAAYD,EAAYL,EAAgBrB,EAE5C,OAAQl7I,GACN,IAAK,QACH,OAAO48I,EAET,IAAK,MACH,OAAOC,EAET,IAAK,SACH,OAAOD,GAAaL,EAAgBrB,GAAY,EAElD,QACE,OAAOhnJ,KAAK8F,IAAI6iJ,EAAW3oJ,KAAKm/B,IAAIupH,EAAW1pH,IAErD,CCjBA,IAAI,GAEJ,SAAUkuH,GAGR,SAASkT,EAAWnpK,EAAO84B,GACzB,IAAI/yB,EAWJ,OATA,EAAgBpC,KAAMwlK,IAEtBpjK,EAAQ6tE,EAA2BjwE,KAAMgsJ,EAAgBwZ,GAAYrrK,KAAK6F,KAAM3D,EAAO84B,KACjFqvI,cAAgB,GACtBpiK,EAAMqjK,yBAA2B,GAEjCrjK,EAAM80J,WAAa,GACnB90J,EAAMsjK,mBAAqBtjK,EAAMsjK,mBAAmBvlK,KAAK4rJ,EAAuB3pJ,IAChFA,EAAMujK,sBAAwBvjK,EAAMujK,sBAAsBxlK,KAAK4rJ,EAAuB3pJ,IAC/EA,CACT,CA4JA,OA3KA+uE,EAAUq0F,EAAYlT,GAiBtB,EAAakT,EAAY,CAAC,CACxBvrK,IAAK,cACLgC,MAAO,gBACwB8G,IAAzB/C,KAAK4lK,iBACP5lK,KAAK4lK,gBAAgBhrJ,aAEzB,GAGC,CACD3gB,IAAK,iCACLgC,MAAO,WACL+D,KAAKk3J,WAAa,GAElBl3J,KAAK4lK,gBAAgBC,gCACvB,GAGC,CACD5rK,IAAK,SACLgC,MAAO,WACL,IAAII,EAAQ4zC,EAAS,CAAC,EAAGjwC,KAAK3D,OAE9B,OAAO,gBAAoB,GAAgB4zC,EAAS,CAClDqyH,kBAAmBtiK,KACnB+iK,kBAAmB/iK,KAAK0lK,mBACxBzoK,IAAK+C,KAAK2lK,uBACTtpK,GACL,GAGC,CACDpC,IAAK,+BACLgC,MAAO,WACL,IAAIk3C,EAAcnzC,KAAK3D,MAKnB+B,EC5EK,SAAsCsE,GASnD,IARA,IAAIypJ,EAAYzpJ,EAAKypJ,UACjB2Z,EAA4BpjK,EAAKojK,0BAEjCC,EAAe,GACfC,EAAiB,IAAI3B,GAFP3hK,EAAK4hK,aAGnB/oH,EAAS,EACTjpC,EAAQ,EAEH+L,EAAQ,EAAGA,EAAQ8tI,EAAW9tI,IAAS,CAC9C,IAAI+mJ,EAAgBU,EAA0B,CAC5CznJ,MAAOA,IAGT,GAA4B,MAAxB+mJ,EAAc7pH,QAAkB1rB,MAAMu1I,EAAc7pH,SAAkC,MAAvB6pH,EAAc9yJ,OAAiBud,MAAMu1I,EAAc9yJ,QAA6B,MAAnB8yJ,EAAcnyI,GAAapD,MAAMu1I,EAAcnyI,IAAyB,MAAnBmyI,EAAchhH,GAAav0B,MAAMu1I,EAAchhH,GAClO,MAAMj+C,MAAM,sCAAsC7D,OAAO+b,EAAO,iBAAiB/b,OAAO8iK,EAAcnyI,EAAG,QAAQ3wB,OAAO8iK,EAAchhH,EAAG,YAAY9hD,OAAO8iK,EAAc9yJ,MAAO,aAAahQ,OAAO8iK,EAAc7pH,SAGrNA,EAASn2C,KAAK8F,IAAIqwC,EAAQ6pH,EAAchhH,EAAIghH,EAAc7pH,QAC1DjpC,EAAQlN,KAAK8F,IAAIoH,EAAO8yJ,EAAcnyI,EAAImyI,EAAc9yJ,OACxDyzJ,EAAa1nJ,GAAS+mJ,EACtBY,EAAeC,aAAa,CAC1Bb,cAAeA,EACf/mJ,MAAOA,GAEX,CAEA,MAAO,CACL0nJ,aAAcA,EACdxqH,OAAQA,EACRyqH,eAAgBA,EAChB1zJ,MAAOA,EAEX,CD2CiB,CAA8B,CACvC65I,UALch5G,EAAYg5G,UAM1B2Z,0BAL8B3yH,EAAY2yH,0BAM1CxB,YALgBnxH,EAAYmxH,cAQ9BtkK,KAAKwkK,cAAgBpmK,EAAK2nK,aAC1B/lK,KAAKkmK,gBAAkB9nK,EAAK4nK,eAC5BhmK,KAAKmmK,QAAU/nK,EAAKm9C,OACpBv7C,KAAKomK,OAAShoK,EAAKkU,KACrB,GAKC,CACDrY,IAAK,yBACLgC,MAAO,WACL,OAAO+D,KAAKylK,wBACd,GAKC,CACDxrK,IAAK,2BACLgC,MAAO,SAAkCyG,GACvC,IAAIwO,EAAQxO,EAAKwO,MACb0xJ,EAAYlgK,EAAKkgK,UACjBrnH,EAAS74C,EAAK64C,OACdiW,EAAa9uD,EAAK8uD,WAClBC,EAAY/uD,EAAK+uD,UACjBn/C,EAAQ5P,EAAK4P,MACb65I,EAAYnsJ,KAAK3D,MAAM8vJ,UAE3B,GAAIyW,GAAa,GAAKA,EAAYzW,EAAW,CAC3C,IAAI4Z,EAAe/lK,KAAKwkK,cAAc5B,GACtCpxG,EAAai+F,GAAyB,CACpCv+I,MAAOA,EACPq0J,WAAYQ,EAAa9yI,EACzBm5H,SAAU2Z,EAAazzJ,MACvBm7I,cAAen7I,EACf8xB,cAAeotB,EACfk8F,YAAakV,IAEfnxG,EAAYg+F,GAAyB,CACnCv+I,MAAOA,EACPq0J,WAAYQ,EAAa3hH,EACzBgoG,SAAU2Z,EAAaxqH,OACvBkyG,cAAelyG,EACfnX,cAAeqtB,EACfi8F,YAAakV,GAEjB,CAEA,MAAO,CACLpxG,WAAYA,EACZC,UAAWA,EAEf,GACC,CACDx3D,IAAK,eACLgC,MAAO,WACL,MAAO,CACLs/C,OAAQv7C,KAAKmmK,QACb7zJ,MAAOtS,KAAKomK,OAEhB,GACC,CACDnsK,IAAK,gBACLgC,MAAO,SAAuB24E,GAC5B,IAAInyE,EAASzC,KAETu7C,EAASq5B,EAAMr5B,OACfi3G,EAAc59E,EAAM49E,YACpBlgJ,EAAQsiE,EAAMtiE,MACd2gB,EAAI2hD,EAAM3hD,EACVmxB,EAAIwwB,EAAMxwB,EACV8F,EAAelqD,KAAK3D,MACpBgqK,EAAoBn8G,EAAam8G,kBACjCzM,EAAe1vG,EAAa0vG,aAQhC,OANA55J,KAAKylK,yBAA2BzlK,KAAKkmK,gBAAgBtB,eAAe,CAClErpH,OAAQA,EACRjpC,MAAOA,EACP2gB,EAAGA,EACHmxB,EAAGA,IAEEiiH,EAAkB,CACvBpL,UAAWj7J,KAAKk3J,WAChB0C,aAAcA,EACdkM,0BAA2B,SAAmCvY,GAC5D,IAAIlvI,EAAQkvI,EAAMlvI,MAClB,OAAO5b,EAAOyjK,gBAAgBI,gBAAgB,CAC5CjoJ,MAAOA,GAEX,EACA+xI,QAASpwJ,KAAKylK,yBACdjT,YAAaA,GAEjB,GACC,CACDv4J,IAAK,qBACLgC,MAAO,SAA4Bu2J,GAC5BA,IACHxyJ,KAAKk3J,WAAa,GAEtB,GACC,CACDj9J,IAAK,wBACLgC,MAAO,SAA+BgB,GACpC+C,KAAK4lK,gBAAkB3oK,CACzB,KAGKuoK,CACT,CA7KA,CA6KE,iBAEF,EAAgB,GAAY,eAAgB,CAC1C,aAAc,OACda,kBAwCF,SAAkC1W,GAChC,IAAIsL,EAAYtL,EAAMsL,UAClBrB,EAAejK,EAAMiK,aACrBkM,EAA4BnW,EAAMmW,0BAClC1V,EAAUT,EAAMS,QAChBoC,EAAc7C,EAAM6C,YACxB,OAAOpC,EAAQ79I,KAAI,SAAU8L,GAC3B,IAAI0nJ,EAAeD,EAA0B,CAC3CznJ,MAAOA,IAELkoJ,EAAoB,CACtBloJ,MAAOA,EACPm0I,YAAaA,EACbv4J,IAAKokB,EACLhH,MAAO,CACLkkC,OAAQwqH,EAAaxqH,OACrB7iC,KAAMqtJ,EAAa9yI,EACnBnf,SAAU,WACV8E,IAAKmtJ,EAAa3hH,EAClB9xC,MAAOyzJ,EAAazzJ,QAOxB,OAAIkgJ,GACIn0I,KAAS48I,IACbA,EAAU58I,GAASu7I,EAAa2M,IAG3BtL,EAAU58I,IAEVu7I,EAAa2M,EAExB,IAAGrrK,QAAO,SAAU6hK,GAClB,QAASA,CACX,GACF,IA1EA,GAAW/+J,UAkCP,CAAC,EE/NL,IAAI,GAEJ,SAAUs0J,GAGR,SAASkU,EAAYnqK,EAAO84B,GAC1B,IAAI/yB,EAMJ,OAJA,EAAgBpC,KAAMwmK,IAEtBpkK,EAAQ6tE,EAA2BjwE,KAAMgsJ,EAAgBwa,GAAarsK,KAAK6F,KAAM3D,EAAO84B,KAClF2sI,eAAiB1/J,EAAM0/J,eAAe3hK,KAAK4rJ,EAAuB3pJ,IACjEA,CACT,CAyDA,OAnEA+uE,EAAUq1F,EAAalU,GAYvB,EAAakU,EAAa,CAAC,CACzBvsK,IAAK,qBACLgC,MAAO,SAA4B67C,GACjC,IAAI3E,EAAcnzC,KAAK3D,MACnBoqK,EAAiBtzH,EAAYszH,eAC7BC,EAAiBvzH,EAAYuzH,eAC7B33C,EAAc57E,EAAY47E,YAC1Bz8G,EAAQ6gC,EAAY7gC,MAEpBm0J,IAAmB3uH,EAAU2uH,gBAAkBC,IAAmB5uH,EAAU4uH,gBAAkB33C,IAAgBj3E,EAAUi3E,aAAez8G,IAAUwlC,EAAUxlC,OACzJtS,KAAK2mK,kBACP3mK,KAAK2mK,iBAAiBtL,mBAG5B,GACC,CACDphK,IAAK,SACLgC,MAAO,WACL,IAAIiuD,EAAelqD,KAAK3D,MACpBwB,EAAWqsD,EAAarsD,SACxB4oK,EAAiBv8G,EAAau8G,eAC9BC,EAAiBx8G,EAAaw8G,eAC9B33C,EAAc7kE,EAAa6kE,YAC3Bz8G,EAAQ43C,EAAa53C,MACrBs0J,EAAqBF,GAAkB,EACvCG,EAAqBJ,EAAiBrhK,KAAKm/B,IAAIkiI,EAAgBn0J,GAASA,EACxE0hJ,EAAc1hJ,EAAQy8G,EAK1B,OAJAilC,EAAc5uJ,KAAK8F,IAAI07J,EAAoB5S,GAC3CA,EAAc5uJ,KAAKm/B,IAAIsiI,EAAoB7S,GAC3CA,EAAc5uJ,KAAKoF,MAAMwpJ,GAElBn2J,EAAS,CACdipK,cAFkB1hK,KAAKm/B,IAAIjyB,EAAO0hJ,EAAcjlC,GAGhDilC,YAAaA,EACb+S,eAAgB,WACd,OAAO/S,CACT,EACA6N,cAAe7hK,KAAK8hK,gBAExB,GACC,CACD7nK,IAAK,iBACLgC,MAAO,SAAwBuW,GAC7B,GAAIA,GAA4C,mBAA5BA,EAAM6oJ,kBACxB,MAAMl1J,MAAM,iFAGdnG,KAAK2mK,iBAAmBn0J,EAEpBxS,KAAK2mK,kBACP3mK,KAAK2mK,iBAAiBtL,mBAE1B,KAGKmL,CACT,CArEA,CAqEE,iBCnFa,SAASQ,GAAkBr/I,EAAKL,IAClC,MAAPA,GAAeA,EAAMK,EAAIhsB,UAAQ2rB,EAAMK,EAAIhsB,QAC/C,IAAK,IAAIF,EAAI,EAAGwrK,EAAO,IAAI/hK,MAAMoiB,GAAM7rB,EAAI6rB,EAAK7rB,IAAKwrK,EAAKxrK,GAAKksB,EAAIlsB,GACnE,OAAOwrK,CACT,CCHe,SAASC,GAA4BtpG,EAAGupG,GACrD,GAAKvpG,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO,GAAiBA,EAAGupG,GACtD,IAAI7gK,EAAIxM,OAAOT,UAAUuK,SAASzJ,KAAKyjE,GAAG7xD,MAAM,GAAI,GAEpD,MADU,WAANzF,GAAkBs3D,EAAExkE,cAAakN,EAAIs3D,EAAExkE,YAAY+N,MAC7C,QAANb,GAAqB,QAANA,EAAoBpB,MAAM+B,KAAK22D,GACxC,cAANt3D,GAAqB,2CAA2CwiB,KAAKxiB,GAAW,GAAiBs3D,EAAGupG,QAAxG,CALc,CAMhB,CF8EA,GAAYnpK,UAuBR,CAAC,EG5FL,IAAI,GAEJ,SAAUs0J,GAGR,SAAS8U,EAAe/qK,EAAO84B,GAC7B,IAAI/yB,EAQJ,OANA,EAAgBpC,KAAMonK,IAEtBhlK,EAAQ6tE,EAA2BjwE,KAAMgsJ,EAAgBob,GAAgBjtK,KAAK6F,KAAM3D,EAAO84B,KACrFkyI,sBAAwBpX,IAC9B7tJ,EAAMklK,gBAAkBllK,EAAMklK,gBAAgBnnK,KAAK4rJ,EAAuB3pJ,IAC1EA,EAAM0/J,eAAiB1/J,EAAM0/J,eAAe3hK,KAAK4rJ,EAAuB3pJ,IACjEA,CACT,CAkGA,OA9GA+uE,EAAUi2F,EAAgB9U,GAc1B,EAAa8U,EAAgB,CAAC,CAC5BntK,IAAK,yBACLgC,MAAO,SAAgCsrK,GACrCvnK,KAAKqnK,sBAAwBpX,IAEzBsX,GACFvnK,KAAKwnK,SAASxnK,KAAKynK,wBAAyBznK,KAAK0nK,uBAErD,GACC,CACDztK,IAAK,SACLgC,MAAO,WAEL,OAAO4B,EADQmC,KAAK3D,MAAMwB,UACV,CACd8pK,eAAgB3nK,KAAKsnK,gBACrBzF,cAAe7hK,KAAK8hK,gBAExB,GACC,CACD7nK,IAAK,sBACLgC,MAAO,SAA6B2rK,GAClC,IAAInlK,EAASzC,KAET6nK,EAAe7nK,KAAK3D,MAAMwrK,aAC9BD,EAAe/rK,SAAQ,SAAUisK,GAC/B,IAAI1uD,EAAUyuD,EAAaC,GAEvB1uD,GACFA,EAAQtrG,MAAK,WA8HhB,IAAwB6hJ,KA3HA,CACjBoY,uBAAwBtlK,EAAOglK,wBAC/BO,sBAAuBvlK,EAAOilK,uBAC9B57J,WAAYg8J,EAAch8J,WAC1B6uJ,UAAWmN,EAAcnN,YA0Hd7uJ,WADK6jJ,EAAMqY,uBAElBrY,EAAMgL,UAHOhL,EAAMoY,wBAtHnBtlK,EAAOkkK,kBAmNlB,SAA8C7rF,GACnD,IAAImtF,EAAevsK,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,EACnFwsK,EAAuD,mBAAhCptF,EAAUugF,kBAAmCvgF,EAAUugF,kBAAoBvgF,EAAUqtF,oBAE5GD,EACFA,EAAc/tK,KAAK2gF,EAAWmtF,GAE9BntF,EAAUlgE,aAEd,CA3NgBwtJ,CAAqC3lK,EAAOkkK,iBAAkBlkK,EAAOglK,wBAG3E,GAEJ,GACF,GACC,CACDxtK,IAAK,kBACLgC,MAAO,SAAyByG,GAC9B,IAAIoJ,EAAapJ,EAAKoJ,WAClB6uJ,EAAYj4J,EAAKi4J,UACrB36J,KAAKynK,wBAA0B37J,EAC/B9L,KAAK0nK,uBAAyB/M,EAE9B36J,KAAKwnK,SAAS17J,EAAY6uJ,EAC5B,GACC,CACD1gK,IAAK,WACLgC,MAAO,SAAkB6P,EAAY6uJ,GACnC,IAAI/lF,ECxFiCjtD,EDyFjC7kB,EAAS9C,KAETmzC,EAAcnzC,KAAK3D,MACnBgsK,EAAcl1H,EAAYk1H,YAC1BC,EAAmBn1H,EAAYm1H,iBAC/BnU,EAAWhhH,EAAYghH,SACvBoU,EAAYp1H,EAAYo1H,UACxBX,EAmGH,SAA+B9X,GAUpC,IATA,IAAIuY,EAAcvY,EAAMuY,YACpBC,EAAmBxY,EAAMwY,iBACzBnU,EAAWrE,EAAMqE,SAEjBwG,EAAY7K,EAAM6K,UAClBiN,EAAiB,GACjBY,EAAkB,KAClBC,EAAiB,KAEZpqJ,EANQyxI,EAAMhkJ,WAMMuS,GAASs8I,EAAWt8I,IAClCgqJ,EAAY,CACvBhqJ,MAAOA,IASqB,OAAnBoqJ,IACTb,EAAevsK,KAAK,CAClByQ,WAAY08J,EACZ7N,UAAW8N,IAEbD,EAAkBC,EAAiB,OAVnCA,EAAiBpqJ,EAEO,OAApBmqJ,IACFA,EAAkBnqJ,IAaxB,GAAuB,OAAnBoqJ,EAAyB,CAG3B,IAFA,IAAIC,EAAqBtjK,KAAKm/B,IAAIn/B,KAAK8F,IAAIu9J,EAAgBD,EAAkBF,EAAmB,GAAInU,EAAW,GAEtGwU,EAASF,EAAiB,EAAGE,GAAUD,IACzCL,EAAY,CACfhqJ,MAAOsqJ,IAFyDA,IAIhEF,EAAiBE,EAMrBf,EAAevsK,KAAK,CAClByQ,WAAY08J,EACZ7N,UAAW8N,GAEf,CAIA,GAAIb,EAAejsK,OAGjB,IAFA,IAAIitK,EAAqBhB,EAAe,GAEjCgB,EAAmBjO,UAAYiO,EAAmB98J,WAAa,EAAIw8J,GAAoBM,EAAmB98J,WAAa,GAAG,CAC/H,IAAI+8J,EAAUD,EAAmB98J,WAAa,EAE9C,GAAKu8J,EAAY,CACfhqJ,MAAOwqJ,IAIP,MAFAD,EAAmB98J,WAAa+8J,CAIpC,CAGF,OAAOjB,CACT,CAzK2BkB,CAAsB,CACzCT,YAAaA,EACbC,iBAAkBA,EAClBnU,SAAUA,EACVroJ,WAAY1G,KAAK8F,IAAI,EAAGY,EAAay8J,GACrC5N,UAAWv1J,KAAKm/B,IAAI4vH,EAAW,EAAGwG,EAAY4N,KAG5CQ,GAA0Bn0F,EAAQ,IAAItyE,OAAOhH,MAAMs5E,EE3G9C,SAA4BjtD,GACzC,GAAIziB,MAAMwgC,QAAQ/d,GAAM,OAAO,GAAiBA,EAClD,CDES,CADkCA,EDwG4CigJ,EAAer1J,KAAI,SAAUg7I,GAG5G,MAAO,CAFUA,EAAMzhJ,WACPyhJ,EAAMoN,UAExB,MGhHS,SAA0BqO,GACvC,GAAsB,oBAAX9vK,QAAmD,MAAzB8vK,EAAK9vK,OAAOC,WAA2C,MAAtB6vK,EAAK,cAAuB,OAAO9jK,MAAM+B,KAAK+hK,EACtH,CFGmC,CAAgBrhJ,IAAQ,GAA2BA,IGLvE,WACb,MAAM,IAAI7nB,UAAU,uIACtB,CHG8F,ID6GxFE,KAAKqnK,sBAAsB,CACzB7/J,SAAU,WACR1E,EAAOmmK,oBAAoBrB,EAC7B,EACAxX,QAAS,CACP2Y,uBAAwBA,IAG9B,GACC,CACD9uK,IAAK,iBACLgC,MAAO,SAAwBitK,GAC7BlpK,KAAK2mK,iBAAmBuC,CAC1B,KAGK9B,CACT,CAhHA,CAgHE,iBAMF,EAAgB,GAAgB,eAAgB,CAC9CkB,iBAAkB,GAClBnU,SAAU,EACVoU,UAAW,KAIb,GAAevqK,UA2CX,CAAC,EK1LL,ICQI,GAAQ,GAcRgnD,IAAQ,GAAQ,GAEpB,SAAUstG,GAGR,SAASttG,IACP,IAAIi4G,EAEA76J,EAEJ,EAAgBpC,KAAMglD,GAEtB,IAAK,IAAIonB,EAAO1wE,UAAUC,OAAQ6X,EAAO,IAAItO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E74D,EAAK64D,GAAQ3wE,UAAU2wE,GAoEzB,OA/DA,EAAgB0/E,EAFhB3pJ,EAAQ6tE,EAA2BjwE,MAAOi9J,EAAmBjR,EAAgBhnG,IAAO7qD,KAAKmB,MAAM2hK,EAAkB,CAACj9J,MAAMsC,OAAOkR,MAEhF,YAAQ,GAEvD,EAAgBu4I,EAAuB3pJ,GAAQ,iBAAiB,SAAUM,GACxE,IAAI6mF,EAAS7mF,EAAK6mF,OACdssE,EAAWnzJ,EAAKmzJ,SAChBx+I,EAAQ3U,EAAK2U,MACbm7I,EAAc9vJ,EAAK8vJ,YACnBqK,EAAYn6J,EAAKm6J,UACjB5iK,EAAMyI,EAAKzI,IACXkvK,EAAc/mK,EAAM/F,MAAM8sK,YAM1BC,EAAkBtvK,OAAOE,yBAAyBqd,EAAO,SAQ7D,OANI+xJ,GAAmBA,EAAgBjtK,WAGrCkb,EAAM/E,MAAQ,QAGT62J,EAAY,CACjB9qJ,MAAOw3I,EACPx+I,MAAOA,EACPm7I,YAAaA,EACbqK,UAAWA,EACX5iK,IAAKA,EACLsvF,OAAQA,GAEZ,IAEA,EAAgBwiE,EAAuB3pJ,GAAQ,WAAW,SAAUnF,GAClEmF,EAAMiwJ,KAAOp1J,CACf,IAEA,EAAgB8uJ,EAAuB3pJ,GAAQ,aAAa,SAAUwyE,GACpE,IAAIvgB,EAAeugB,EAAMvgB,aACrB9B,EAAeqiB,EAAMriB,aACrBd,EAAYmjB,EAAMnjB,WAEtBgoG,EADer3J,EAAM/F,MAAMo9J,UAClB,CACPplG,aAAcA,EACd9B,aAAcA,EACdd,UAAWA,GAEf,IAEA,EAAgBs6F,EAAuB3pJ,GAAQ,sBAAsB,SAAUmrJ,GAC7E,IAAI6F,EAAwB7F,EAAM6F,sBAC9BE,EAAuB/F,EAAM+F,qBAC7BE,EAAgBjG,EAAMiG,cACtBE,EAAenG,EAAMmG,cAEzBiU,EADqBvlK,EAAM/F,MAAMsrK,gBAClB,CACb9M,mBAAoBzH,EACpB0H,kBAAmBxH,EACnBxnJ,WAAY0nJ,EACZmH,UAAWjH,GAEf,IAEOtxJ,CACT,CAyIA,OAxNA+uE,EAAUnsB,EAAMstG,GAiFhB,EAAattG,EAAM,CAAC,CAClB/qD,IAAK,kBACLgC,MAAO,WACD+D,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKz3I,aAEd,GAGC,CACD3gB,IAAK,kBACLgC,MAAO,SAAyB0zJ,GAC9B,IAAI8F,EAAY9F,EAAM8F,UAClBp3I,EAAQsxI,EAAMtxI,MAElB,OAAIre,KAAKqyJ,KACqBryJ,KAAKqyJ,KAAKgX,iBAAiB,CACrD5T,UAAWA,EACXI,SAAUx3I,EACVs3I,YAAa,IAEuBlkG,UAKjC,CACT,GAGC,CACDx3D,IAAK,gCACLgC,MAAO,SAAuC6zJ,GAC5C,IAAI6F,EAAc7F,EAAM6F,YACpBE,EAAW/F,EAAM+F,SAEjB71J,KAAKqyJ,MACPryJ,KAAKqyJ,KAAK+P,8BAA8B,CACtCvM,SAAUA,EACVF,YAAaA,GAGnB,GAGC,CACD17J,IAAK,iBACLgC,MAAO,WACD+D,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKiX,iBAEd,GAGC,CACDrvK,IAAK,oBACLgC,MAAO,WACL,IAAI8zJ,EAAQr0J,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7E6tK,EAAoBxZ,EAAM4F,YAC1BA,OAAoC,IAAtB4T,EAA+B,EAAIA,EACjDC,EAAiBzZ,EAAM8F,SACvBA,OAA8B,IAAnB2T,EAA4B,EAAIA,EAE3CxpK,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKgJ,kBAAkB,CAC1BxF,SAAUA,EACVF,YAAaA,GAGnB,GAGC,CACD17J,IAAK,sBACLgC,MAAO,WACL,IAAIoiB,EAAQ3iB,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,EAE5EsE,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKgJ,kBAAkB,CAC1BxF,SAAUx3I,EACVs3I,YAAa,GAGnB,GAGC,CACD17J,IAAK,mBACLgC,MAAO,WACL,IAAIw1D,EAAY/1D,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,EAEhFsE,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKoX,iBAAiB,CACzBh4G,UAAWA,GAGjB,GAGC,CACDx3D,IAAK,cACLgC,MAAO,WACL,IAAIoiB,EAAQ3iB,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,EAE5EsE,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKoQ,aAAa,CACrB9M,YAAa,EACbE,SAAUx3I,GAGhB,GACC,CACDpkB,IAAK,SACLgC,MAAO,WACL,IAAIk3C,EAAcnzC,KAAK3D,MACnBoT,EAAY0jC,EAAY1jC,UACxBi6J,EAAiBv2H,EAAYu2H,eAC7Bhd,EAAgBv5G,EAAYu5G,cAC5Bp6I,EAAQ6gC,EAAY7gC,MACpBq3J,EAAa,EAAK,yBAA0Bl6J,GAChD,OAAO,gBAAoB,EAAMwgC,EAAS,CAAC,EAAGjwC,KAAK3D,MAAO,CACxD47J,oBAAoB,EACpB2B,aAAc55J,KAAK4pK,cACnBn6J,UAAWk6J,EACX3V,YAAa1hJ,EACby8G,YAAa,EACbspC,kBAAmBqR,EACnBjQ,SAAUz5J,KAAK05J,UACfhH,kBAAmB1yJ,KAAK09J,mBACxBzgK,IAAK+C,KAAKihK,QACVlM,YAAarI,IAEjB,KAGK1nG,CACT,CA1NA,CA0NE,iBAAsB,EAAgB,GAAQ,YAAqD,MA8EjG,IAEJ,EAAgBA,GAAM,eAAgB,CACpCoxG,YAAY,EACZ6F,iBAAkB,GAClBxC,SAAU,WAAqB,EAC/BiQ,eAAgB,WACd,OAAO,IACT,EACA/B,eAAgB,WAA2B,EAC3C3N,sBAAuB,EACvBC,iBAAkB,GAClBjJ,kBAAmB,OACnBtE,eAAgB,EAChBr1I,MAAO,CAAC,ICxGV,SA3LA,SAA2BgY,EAAG+0B,EAAG16B,EAAG9B,EAAGR,GACrC,MAAiB,mBAANsC,EAnBb,SAAc2F,EAAGzH,EAAGR,EAAGg9B,EAAG16B,GAGxB,IAFA,IAAIjuB,EAAI2rB,EAAI,EAELQ,GAAKR,GAAG,CACb,IAAIuB,EAAIf,EAAIR,IAAM,EAGdsC,EAFI2F,EAAE1G,GAEDy7B,IAAM,GACb3oD,EAAIktB,EACJvB,EAAIuB,EAAI,GAERf,EAAIe,EAAI,CAEZ,CAEA,OAAOltB,CACT,CAIWouK,CAAKx6I,OAAS,IAANzH,EAAe,EAAQ,EAAJA,OAAa,IAANR,EAAeiI,EAAE1zB,OAAS,EAAQ,EAAJyrB,EAAOg9B,EAAG16B,GAtCrF,SAAc2F,EAAGzH,EAAGR,EAAGg9B,GAGrB,IAFA,IAAI3oD,EAAI2rB,EAAI,EAELQ,GAAKR,GAAG,CACb,IAAIuB,EAAIf,EAAIR,IAAM,EACViI,EAAE1G,IAEDy7B,GACP3oD,EAAIktB,EACJvB,EAAIuB,EAAI,GAERf,EAAIe,EAAI,CAEZ,CAEA,OAAOltB,CACT,CAwBWquK,CAAKz6I,OAAS,IAAN3F,EAAe,EAAQ,EAAJA,OAAa,IAAN9B,EAAeyH,EAAE1zB,OAAS,EAAQ,EAAJisB,EAAOw8B,EAElF,ECrCA,SAAS2lH,GAAiBC,EAAKtxJ,EAAMC,EAAOsxJ,EAAYC,GACtDlqK,KAAKgqK,IAAMA,EACXhqK,KAAK0Y,KAAOA,EACZ1Y,KAAK2Y,MAAQA,EACb3Y,KAAKiqK,WAAaA,EAClBjqK,KAAKkqK,YAAcA,EACnBlqK,KAAK6gG,OAASnoF,EAAOA,EAAKmoF,MAAQ,IAAMloF,EAAQA,EAAMkoF,MAAQ,GAAKopE,EAAWtuK,MAChF,CAEA,IAAI4zE,GAAQw6F,GAAiB1wK,UAE7B,SAAS8wK,GAAK96I,EAAGzpB,GACfypB,EAAE26I,IAAMpkK,EAAEokK,IACV36I,EAAE3W,KAAO9S,EAAE8S,KACX2W,EAAE1W,MAAQ/S,EAAE+S,MACZ0W,EAAE46I,WAAarkK,EAAEqkK,WACjB56I,EAAE66I,YAActkK,EAAEskK,YAClB76I,EAAEwxE,MAAQj7F,EAAEi7F,KACd,CAEA,SAASupE,GAAQ7rK,EAAM8rK,GACrB,IAAIC,EAAQC,GAAmBF,GAC/B9rK,EAAKyrK,IAAMM,EAAMN,IACjBzrK,EAAKma,KAAO4xJ,EAAM5xJ,KAClBna,EAAKoa,MAAQ2xJ,EAAM3xJ,MACnBpa,EAAK0rK,WAAaK,EAAML,WACxB1rK,EAAK2rK,YAAcI,EAAMJ,YACzB3rK,EAAKsiG,MAAQypE,EAAMzpE,KACrB,CAEA,SAAS2pE,GAAoBjsK,EAAMiwJ,GACjC,IAAI6b,EAAY9rK,EAAK8rK,UAAU,IAC/BA,EAAUhvK,KAAKmzJ,GACf4b,GAAQ7rK,EAAM8rK,EAChB,CAEA,SAASI,GAAuBlsK,EAAMiwJ,GACpC,IAAI6b,EAAY9rK,EAAK8rK,UAAU,IAC3B70F,EAAM60F,EAAUhmI,QAAQmqH,GAE5B,OAAIh5E,EAAM,EA5CI,GAgDd60F,EAAU33H,OAAO8iC,EAAK,GACtB40F,GAAQ7rK,EAAM8rK,GAhDF,EAkDd,CAgKA,SAASK,GAAgB/iJ,EAAKyrH,EAAIxyI,GAChC,IAAK,IAAInF,EAAI,EAAGA,EAAIksB,EAAIhsB,QAAUgsB,EAAIlsB,GAAG,IAAM23I,IAAM33I,EAAG,CACtD,IAAI0J,EAAIvE,EAAG+mB,EAAIlsB,IAEf,GAAI0J,EACF,OAAOA,CAEX,CACF,CAEA,SAASwlK,GAAiBhjJ,EAAKijJ,EAAIhqK,GACjC,IAAK,IAAInF,EAAIksB,EAAIhsB,OAAS,EAAGF,GAAK,GAAKksB,EAAIlsB,GAAG,IAAMmvK,IAAMnvK,EAAG,CAC3D,IAAI0J,EAAIvE,EAAG+mB,EAAIlsB,IAEf,GAAI0J,EACF,OAAOA,CAEX,CACF,CAEA,SAAS0lK,GAAYljJ,EAAK/mB,GACxB,IAAK,IAAInF,EAAI,EAAGA,EAAIksB,EAAIhsB,SAAUF,EAAG,CACnC,IAAI0J,EAAIvE,EAAG+mB,EAAIlsB,IAEf,GAAI0J,EACF,OAAOA,CAEX,CACF,CAsDA,SAAS2lK,GAAez7I,EAAGzpB,GACzB,OAAOypB,EAAIzpB,CACb,CAEA,SAASmlK,GAAa17I,EAAGzpB,GAGvB,OAFQypB,EAAE,GAAKzpB,EAAE,IAMVypB,EAAE,GAAKzpB,EAAE,EAClB,CAEA,SAASolK,GAAW37I,EAAGzpB,GAGrB,OAFQypB,EAAE,GAAKzpB,EAAE,IAMVypB,EAAE,GAAKzpB,EAAE,EAClB,CAEA,SAAS2kK,GAAmBF,GAC1B,GAAyB,IAArBA,EAAU1uK,OACZ,OAAO,KAKT,IAFA,IAAIsvK,EAAM,GAEDxvK,EAAI,EAAGA,EAAI4uK,EAAU1uK,SAAUF,EACtCwvK,EAAI5vK,KAAKgvK,EAAU5uK,GAAG,GAAI4uK,EAAU5uK,GAAG,IAGzCwvK,EAAIzyF,KAAKsyF,IACT,IAAId,EAAMiB,EAAIA,EAAItvK,QAAU,GACxBuvK,EAAgB,GAChBC,EAAiB,GACjBC,EAAkB,GAEtB,IAAS3vK,EAAI,EAAGA,EAAI4uK,EAAU1uK,SAAUF,EAAG,CACzC,IAAImoB,EAAIymJ,EAAU5uK,GAEdmoB,EAAE,GAAKomJ,EACTkB,EAAc7vK,KAAKuoB,GACVomJ,EAAMpmJ,EAAE,GACjBunJ,EAAe9vK,KAAKuoB,GAEpBwnJ,EAAgB/vK,KAAKuoB,EAEzB,CAGA,IAAIqmJ,EAAamB,EACblB,EAAckB,EAAgBr/J,QAGlC,OAFAk+J,EAAWzxF,KAAKuyF,IAChBb,EAAY1xF,KAAKwyF,IACV,IAAIjB,GAAiBC,EAAKO,GAAmBW,GAAgBX,GAAmBY,GAAiBlB,EAAYC,EACtH,CAGA,SAASmB,GAAa1zK,GACpBqI,KAAKrI,KAAOA,CACd,CAhTA43E,GAAM86F,UAAY,SAAUpnK,GAW1B,OAVAA,EAAO5H,KAAKC,MAAM2H,EAAQjD,KAAKiqK,YAE3BjqK,KAAK0Y,MACP1Y,KAAK0Y,KAAK2xJ,UAAUpnK,GAGlBjD,KAAK2Y,OACP3Y,KAAK2Y,MAAM0xJ,UAAUpnK,GAGhBA,CACT,EAEAssE,GAAM+7F,OAAS,SAAU9c,GACvB,IAAI+c,EAASvrK,KAAK6gG,MAAQ7gG,KAAKiqK,WAAWtuK,OAG1C,GAFAqE,KAAK6gG,OAAS,EAEV2tD,EAAS,GAAKxuJ,KAAKgqK,IACjBhqK,KAAK0Y,KACH,GAAK1Y,KAAK0Y,KAAKmoF,MAAQ,GAAK,GAAK0qE,EAAS,GAC5Cf,GAAoBxqK,KAAMwuJ,GAE1BxuJ,KAAK0Y,KAAK4yJ,OAAO9c,GAGnBxuJ,KAAK0Y,KAAO6xJ,GAAmB,CAAC/b,SAE7B,GAAIA,EAAS,GAAKxuJ,KAAKgqK,IACxBhqK,KAAK2Y,MACH,GAAK3Y,KAAK2Y,MAAMkoF,MAAQ,GAAK,GAAK0qE,EAAS,GAC7Cf,GAAoBxqK,KAAMwuJ,GAE1BxuJ,KAAK2Y,MAAM2yJ,OAAO9c,GAGpBxuJ,KAAK2Y,MAAQ4xJ,GAAmB,CAAC/b,QAE9B,CACL,IAAI5mI,EAAI,GAAU5nB,KAAKiqK,WAAYzb,EAAUuc,IACzC5lK,EAAI,GAAUnF,KAAKkqK,YAAa1b,EAAUwc,IAC9ChrK,KAAKiqK,WAAWv3H,OAAO9qB,EAAG,EAAG4mI,GAC7BxuJ,KAAKkqK,YAAYx3H,OAAOvtC,EAAG,EAAGqpJ,EAChC,CACF,EAEAj/E,GAAMlmB,OAAS,SAAUmlG,GACvB,IAAI+c,EAASvrK,KAAK6gG,MAAQ7gG,KAAKiqK,WAE/B,GAAIzb,EAAS,GAAKxuJ,KAAKgqK,IACrB,OAAKhqK,KAAK0Y,KAMN,GAFK1Y,KAAK2Y,MAAQ3Y,KAAK2Y,MAAMkoF,MAAQ,GAE5B,GAAK0qE,EAAS,GAClBd,GAAuBzqK,KAAMwuJ,GA5G9B,KA+GJrpJ,EAAInF,KAAK0Y,KAAK2wC,OAAOmlG,KAGvBxuJ,KAAK0Y,KAAO,KACZ1Y,KAAK6gG,OAAS,EApHN,QAsHC17F,IACTnF,KAAK6gG,OAAS,GAGT17F,GA3HK,EA4HP,GAAIqpJ,EAAS,GAAKxuJ,KAAKgqK,IAC5B,OAAKhqK,KAAK2Y,MAMN,GAFK3Y,KAAK0Y,KAAO1Y,KAAK0Y,KAAKmoF,MAAQ,GAE1B,GAAK0qE,EAAS,GAClBd,GAAuBzqK,KAAMwuJ,GAlI9B,KAqIJrpJ,EAAInF,KAAK2Y,MAAM0wC,OAAOmlG,KAGxBxuJ,KAAK2Y,MAAQ,KACb3Y,KAAK6gG,OAAS,EA1IN,QA4IC17F,IACTnF,KAAK6gG,OAAS,GAGT17F,GAjJK,EAmJZ,GAAmB,IAAfnF,KAAK6gG,MACP,OAAI7gG,KAAKiqK,WAAW,KAAOzb,EAlJrB,EAFI,EA2JZ,GAA+B,IAA3BxuJ,KAAKiqK,WAAWtuK,QAAgBqE,KAAKiqK,WAAW,KAAOzb,EAAU,CACnE,GAAIxuJ,KAAK0Y,MAAQ1Y,KAAK2Y,MAAO,CAI3B,IAHA,IAAI2T,EAAItsB,KACJsG,EAAItG,KAAK0Y,KAENpS,EAAEqS,OACP2T,EAAIhmB,EACJA,EAAIA,EAAEqS,MAGR,GAAI2T,IAAMtsB,KACRsG,EAAEqS,MAAQ3Y,KAAK2Y,UACV,CACL,IAAIiP,EAAI5nB,KAAK0Y,KACTvT,EAAInF,KAAK2Y,MACb2T,EAAEu0E,OAASv6F,EAAEu6F,MACbv0E,EAAE3T,MAAQrS,EAAEoS,KACZpS,EAAEoS,KAAOkP,EACTthB,EAAEqS,MAAQxT,CACZ,CAEAglK,GAAKnqK,KAAMsG,GACXtG,KAAK6gG,OAAS7gG,KAAK0Y,KAAO1Y,KAAK0Y,KAAKmoF,MAAQ,IAAM7gG,KAAK2Y,MAAQ3Y,KAAK2Y,MAAMkoF,MAAQ,GAAK7gG,KAAKiqK,WAAWtuK,MACzG,MAAWqE,KAAK0Y,KACdyxJ,GAAKnqK,KAAMA,KAAK0Y,MAEhByxJ,GAAKnqK,KAAMA,KAAK2Y,OAGlB,OAvLQ,CAwLV,CAEA,IAASiP,EAAI,GAAU5nB,KAAKiqK,WAAYzb,EAAUuc,IAAenjJ,EAAI5nB,KAAKiqK,WAAWtuK,QAC/EqE,KAAKiqK,WAAWriJ,GAAG,KAAO4mI,EAAS,KADsD5mI,EAK7F,GAAI5nB,KAAKiqK,WAAWriJ,KAAO4mI,EAIzB,IAHAxuJ,KAAK6gG,OAAS,EACd7gG,KAAKiqK,WAAWv3H,OAAO9qB,EAAG,GAEjBziB,EAAI,GAAUnF,KAAKkqK,YAAa1b,EAAUwc,IAAa7lK,EAAInF,KAAKkqK,YAAYvuK,QAC/EqE,KAAKkqK,YAAY/kK,GAAG,KAAOqpJ,EAAS,KADqDrpJ,EAGtF,GAAInF,KAAKkqK,YAAY/kK,KAAOqpJ,EAEjC,OADAxuJ,KAAKkqK,YAAYx3H,OAAOvtC,EAAG,GAvMzB,EA8MV,OA/MY,CAiNhB,EAgCAoqE,GAAMi8F,WAAa,SAAUv4I,EAAGryB,GAC9B,OAAIqyB,EAAIjzB,KAAKgqK,IACPhqK,KAAK0Y,OACHvT,EAAInF,KAAK0Y,KAAK8yJ,WAAWv4I,EAAGryB,IAGvBuE,EAIJulK,GAAgB1qK,KAAKiqK,WAAYh3I,EAAGryB,GAClCqyB,EAAIjzB,KAAKgqK,IACdhqK,KAAK2Y,QACHxT,EAAInF,KAAK2Y,MAAM6yJ,WAAWv4I,EAAGryB,IAGxBuE,EAIJwlK,GAAiB3qK,KAAKkqK,YAAaj3I,EAAGryB,GAEtCiqK,GAAY7qK,KAAKiqK,WAAYrpK,GATlC,IAAIuE,CAWV,EAEAoqE,GAAMk8F,cAAgB,SAAUb,EAAIx3B,EAAIxyI,GAEpC,IAQIuE,EATN,OAAIylK,EAAK5qK,KAAKgqK,KAAOhqK,KAAK0Y,OACpBvT,EAAInF,KAAK0Y,KAAK+yJ,cAAcb,EAAIx3B,EAAIxyI,KAOtCwyI,EAAKpzI,KAAKgqK,KAAOhqK,KAAK2Y,QACpBxT,EAAInF,KAAK2Y,MAAM8yJ,cAAcb,EAAIx3B,EAAIxyI,IALhCuE,EAYPiuI,EAAKpzI,KAAKgqK,IACLU,GAAgB1qK,KAAKiqK,WAAY72B,EAAIxyI,GACnCgqK,EAAK5qK,KAAKgqK,IACZW,GAAiB3qK,KAAKkqK,YAAaU,EAAIhqK,GAEvCiqK,GAAY7qK,KAAKiqK,WAAYrpK,EAExC,EAoEA,IAAI8qK,GAASL,GAAahyK,UAE1BqyK,GAAOJ,OAAS,SAAU9c,GACpBxuJ,KAAKrI,KACPqI,KAAKrI,KAAK2zK,OAAO9c,GAEjBxuJ,KAAKrI,KAAO,IAAIoyK,GAAiBvb,EAAS,GAAI,KAAM,KAAM,CAACA,GAAW,CAACA,GAE3E,EAEAkd,GAAOriH,OAAS,SAAUmlG,GACxB,GAAIxuJ,KAAKrI,KAAM,CACb,IAAIwN,EAAInF,KAAKrI,KAAK0xD,OAAOmlG,GAMzB,OAvXQ,IAmXJrpJ,IACFnF,KAAKrI,KAAO,MAtXF,IAyXLwN,CACT,CAEA,OAAO,CACT,EAEAumK,GAAOF,WAAa,SAAUl/I,EAAG1rB,GAC/B,GAAIZ,KAAKrI,KACP,OAAOqI,KAAKrI,KAAK6zK,WAAWl/I,EAAG1rB,EAEnC,EAEA8qK,GAAOD,cAAgB,SAAUb,EAAIx3B,EAAIxyI,GACvC,GAAIgqK,GAAMx3B,GAAMpzI,KAAKrI,KACnB,OAAOqI,KAAKrI,KAAK8zK,cAAcb,EAAIx3B,EAAIxyI,EAE3C,EAEA9G,OAAOC,eAAe2xK,GAAQ,QAAS,CACrC/xK,IAAK,WACH,OAAIqG,KAAKrI,KACAqI,KAAKrI,KAAKkpG,MAGZ,CACT,IAEF/mG,OAAOC,eAAe2xK,GAAQ,YAAa,CACzC/xK,IAAK,WACH,OAAIqG,KAAKrI,KACAqI,KAAKrI,KAAK0yK,UAAU,IAGtB,EACT,IC3ZF,ICDI,GAAQ,GDCRsB,GAEJ,WACE,SAASA,IACP,EAAgB3rK,KAAM2rK,GAEtB,EAAgB3rK,KAAM,iBAAkB,CAAC,GAEzC,EAAgBA,KAAM,gBDuZf,IAAIqrK,GAAa,OCrZxB,EAAgBrrK,KAAM,WAAY,CAAC,EACrC,CAuEA,OArEA,EAAa2rK,EAAe,CAAC,CAC3B1xK,IAAK,sBACLgC,MAAO,SAA6BkwJ,EAAWp9B,EAAa68C,GAC1D,IAAIC,EAAsB1f,EAAYnsJ,KAAK6gG,MAC3C,OAAO7gG,KAAK8rK,kBAAoB1mK,KAAK+yI,KAAK0zB,EAAsB98C,GAAe68C,CACjF,GAEC,CACD3xK,IAAK,QACLgC,MAAO,SAAew1D,EAAW4C,EAAc03G,GAC7C,IAAI3pK,EAAQpC,KAEZA,KAAKgsK,cAAcP,cAAch6G,EAAWA,EAAY4C,GAAc,SAAU3xD,GAC9E,IE/B+BilB,EAAKlsB,EF+BhCm5E,GE/BgCn5E,EF+BH,EGnC1B,SAAyBksB,GACtC,GAAIziB,MAAMwgC,QAAQ/d,GAAM,OAAOA,CACjC,CDGS,CAD8BA,EF+BJjlB,IInCpB,SAA+BilB,EAAKlsB,GACjD,IAAIi4B,EAAK,MAAQ/L,EAAM,KAAO,oBAAsBzuB,QAAUyuB,EAAIzuB,OAAOC,WAAawuB,EAAI,cAC1F,GAAI,MAAQ+L,EAAI,CACd,IAAIu4I,EACFxtD,EACA1iD,EACAmwG,EACAC,EAAO,GACPC,GAAK,EACL5tD,GAAK,EACP,IACE,GAAIziD,GAAMroC,EAAKA,EAAGv5B,KAAKwtB,IAAMZ,KAAM,IAAMtrB,EAAG,CAC1C,GAAI3B,OAAO45B,KAAQA,EAAI,OACvB04I,GAAK,CACP,MAAO,OAASA,GAAMH,EAAKlwG,EAAG5hE,KAAKu5B,IAAKiT,QAAUwlI,EAAK9wK,KAAK4wK,EAAGhwK,OAAQkwK,EAAKxwK,SAAWF,GAAI2wK,GAAK,GAClG,CAAE,MAAOtoK,GACP06G,GAAK,EAAIC,EAAK36G,CAChB,CAAE,QACA,IACE,IAAKsoK,GAAM,MAAQ14I,EAAW,SAAMw4I,EAAKx4I,EAAW,SAAK55B,OAAOoyK,KAAQA,GAAK,MAC/E,CAAE,QACA,GAAI1tD,EAAI,MAAMC,CAChB,CACF,CACA,OAAO0tD,CACT,CACF,CFrBgC,CAAqBxkJ,EAAKlsB,IAAM,GAA2BksB,EAAKlsB,IGLjF,WACb,MAAM,IAAIqE,UAAU,4IACtB,CHGsG,IF+B1F8Y,EAAMg8D,EAAM,GAEZv2D,GADIu2D,EAAM,GACFA,EAAM,IAElB,OAAOm3F,EAAe1tJ,EAAOjc,EAAMiqK,SAAShuJ,GAAQzF,EACtD,GACF,GACC,CACD3e,IAAK,cACLgC,MAAO,SAAqBoiB,EAAO3F,EAAME,EAAK2iC,GAC5Cv7C,KAAKgsK,cAAcV,OAAO,CAAC1yJ,EAAKA,EAAM2iC,EAAQl9B,IAE9Cre,KAAKqsK,SAAShuJ,GAAS3F,EACvB,IAAI4zJ,EAAgBtsK,KAAKusK,eACrBC,EAAeF,EAAc5zJ,GAG/B4zJ,EAAc5zJ,QADK3V,IAAjBypK,EACoB5zJ,EAAM2iC,EAENn2C,KAAK8F,IAAIshK,EAAc5zJ,EAAM2iC,EAEvD,GACC,CACDthD,IAAK,QACLN,IAAK,WACH,OAAOqG,KAAKgsK,cAAcnrE,KAC5B,GACC,CACD5mG,IAAK,qBACLN,IAAK,WACH,IAAI2yK,EAAgBtsK,KAAKusK,eACrB31J,EAAO,EAEX,IAAK,IAAInb,KAAK6wK,EAAe,CAC3B,IAAI/wH,EAAS+wH,EAAc7wK,GAC3Bmb,EAAgB,IAATA,EAAa2kC,EAASn2C,KAAKm/B,IAAI3tB,EAAM2kC,EAC9C,CAEA,OAAO3kC,CACT,GACC,CACD3c,IAAK,oBACLN,IAAK,WACH,IAAI2yK,EAAgBtsK,KAAKusK,eACrB31J,EAAO,EAEX,IAAK,IAAInb,KAAK6wK,EAAe,CAC3B,IAAI/wH,EAAS+wH,EAAc7wK,GAC3Bmb,EAAOxR,KAAK8F,IAAI0L,EAAM2kC,EACxB,CAEA,OAAO3kC,CACT,KAGK+0J,CACT,CAjFA,GCDA,SAAS,GAAQ9wK,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAAS,GAAcS,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAK,GAAQG,GAAQ,GAAMC,SAAQ,SAAU5B,GAAO,EAAgBuB,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmB,GAAQA,GAAQC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAOrgB,IAoCI,IAAW,GAAQ,GAEvB,SAAU82J,GAGR,SAASma,IACP,IAAIxP,EAEA76J,EAEJ,EAAgBpC,KAAMysK,GAEtB,IAAK,IAAIrgG,EAAO1wE,UAAUC,OAAQ6X,EAAO,IAAItO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E74D,EAAK64D,GAAQ3wE,UAAU2wE,GAiEzB,OA5DA,EAAgB0/E,EAFhB3pJ,EAAQ6tE,EAA2BjwE,MAAOi9J,EAAmBjR,EAAgBygB,IAAUtyK,KAAKmB,MAAM2hK,EAAkB,CAACj9J,MAAMsC,OAAOkR,MAEnF,QAAS,CACtDg/I,aAAa,EACb/gG,UAAW,IAGb,EAAgBs6F,EAAuB3pJ,GAAQ,mCAA+B,GAE9E,EAAgB2pJ,EAAuB3pJ,GAAQ,gCAAiC,MAEhF,EAAgB2pJ,EAAuB3pJ,GAAQ,+BAAgC,MAE/E,EAAgB2pJ,EAAuB3pJ,GAAQ,iBAAkB,IAAIupK,IAErE,EAAgB5f,EAAuB3pJ,GAAQ,cAAe,MAE9D,EAAgB2pJ,EAAuB3pJ,GAAQ,sBAAuB,MAEtE,EAAgB2pJ,EAAuB3pJ,GAAQ,aAAc,MAE7D,EAAgB2pJ,EAAuB3pJ,GAAQ,qBAAsB,MAErE,EAAgB2pJ,EAAuB3pJ,GAAQ,qCAAqC,WAClFA,EAAMmwC,SAAS,CACbigH,aAAa,GAEjB,IAEA,EAAgBzG,EAAuB3pJ,GAAQ,6BAA6B,SAAUnF,GACpFmF,EAAMwxJ,oBAAsB32J,CAC9B,IAEA,EAAgB8uJ,EAAuB3pJ,GAAQ,aAAa,SAAUkB,GACpE,IAAIi4C,EAASn5C,EAAM/F,MAAMk/C,OACrBmxH,EAAiBppK,EAAMiiD,cAAckM,UAKrCA,EAAYrsD,KAAKm/B,IAAIn/B,KAAK8F,IAAI,EAAG9I,EAAMuqK,2BAA6BpxH,GAASmxH,GAG7EA,IAAmBj7G,IAKvBrvD,EAAMwqK,4BAMFxqK,EAAM+vC,MAAMsf,YAAcA,GAC5BrvD,EAAMmwC,SAAS,CACbigH,aAAa,EACb/gG,UAAWA,IAGjB,IAEOrvD,CACT,CAqQA,OAjVA+uE,EAAUs7F,EAASna,GA8EnB,EAAama,EAAS,CAAC,CACrBxyK,IAAK,qBACLgC,MAAO,WACL+D,KAAK6sK,eAAiB,IAAIlB,GAC1B3rK,KAAK4a,aACP,GAEC,CACD3gB,IAAK,gCACLgC,MAAO,SAAuCyG,GAC5C,IAAI2b,EAAQ3b,EAAKmzJ,SAE0B,OAAvC71J,KAAK8sK,+BACP9sK,KAAK8sK,8BAAgCzuJ,EACrCre,KAAK+sK,6BAA+B1uJ,IAEpCre,KAAK8sK,8BAAgC1nK,KAAKm/B,IAAIvkC,KAAK8sK,8BAA+BzuJ,GAClFre,KAAK+sK,6BAA+B3nK,KAAK8F,IAAIlL,KAAK+sK,6BAA8B1uJ,GAEpF,GACC,CACDpkB,IAAK,yBACLgC,MAAO,WACL,IAAI0+J,EAAY36J,KAAK6sK,eAAehsE,MAAQ,EAC5C7gG,KAAK6sK,eAAiB,IAAIlB,GAE1B3rK,KAAKgtK,uBAAuB,EAAGrS,GAE/B36J,KAAK4a,aACP,GACC,CACD3gB,IAAK,oBACLgC,MAAO,WACL+D,KAAKitK,2BAELjtK,KAAKktK,0BAELltK,KAAKmtK,gCACP,GACC,CACDlzK,IAAK,qBACLgC,MAAO,SAA4B67C,EAAWqoB,GAC5CngE,KAAKitK,2BAELjtK,KAAKktK,0BAELltK,KAAKmtK,iCAEDntK,KAAK3D,MAAMo1D,YAAc3Z,EAAU2Z,WACrCzxD,KAAK4sK,2BAET,GACC,CACD3yK,IAAK,uBACLgC,MAAO,WACD+D,KAAKotK,6BACPnb,EAAuBjyJ,KAAKotK,4BAEhC,GACC,CACDnzK,IAAK,SACLgC,MAAO,WACL,IA2BI0+J,EA3BAl4J,EAASzC,KAETmzC,EAAcnzC,KAAK3D,MACnB+5J,EAAajjH,EAAYijH,WACzBjK,EAAYh5G,EAAYg5G,UACxBkhB,EAAoBl6H,EAAYk6H,kBAChCzT,EAAezmH,EAAYymH,aAC3BnqJ,EAAY0jC,EAAY1jC,UACxB8rC,EAASpI,EAAYoI,OACrBxiD,EAAKo6C,EAAYp6C,GACjBu0K,EAAYn6H,EAAYm6H,UACxBC,EAAmBp6H,EAAYo6H,iBAC/B/yJ,EAAO24B,EAAY34B,KACnBnD,EAAQ87B,EAAY97B,MACpB47B,EAAWE,EAAYF,SACvB3gC,EAAQ6gC,EAAY7gC,MACpBk7J,EAAer6H,EAAYq6H,aAC3B1V,EAAc93J,KAAKmyC,MACnBqgH,EAAcsF,EAAYtF,YAC1B/gG,EAAYqmG,EAAYrmG,UACxB5zD,EAAW,GAEX4vK,EAAsBztK,KAAK2sK,2BAE3Be,EAAqB1tK,KAAK6sK,eAAea,mBACzCC,EAAoB3tK,KAAK6sK,eAAehsE,MACxC/0F,EAAa,EA0BjB,GAvBA9L,KAAK6sK,eAAevjJ,MAAMlkB,KAAK8F,IAAI,EAAGumD,EAAY87G,GAAmBhyH,EAA4B,EAAnBgyH,GAAsB,SAAUlvJ,EAAO3F,EAAME,GACzH,IAAIm6C,OAEqB,IAAd4nG,GACT7uJ,EAAauS,EACbs8I,EAAYt8I,IAEZvS,EAAa1G,KAAKm/B,IAAIz4B,EAAYuS,GAClCs8I,EAAYv1J,KAAK8F,IAAIyvJ,EAAWt8I,IAGlCxgB,EAASxC,KAAKu+J,EAAa,CACzBv7I,MAAOA,EACPm0I,YAAaA,EACbv4J,IAAKqzK,EAAUjvJ,GACfkrE,OAAQ9mF,EACR4U,OAAQ07C,EAAS,CACfxX,OAAQ8xH,EAAkB9L,UAAUljJ,IACnC,EAAgB00C,EAAyB,QAAjBy6G,EAAyB,OAAS,QAAS90J,GAAO,EAAgBq6C,EAAQ,WAAY,YAAa,EAAgBA,EAAQ,MAAOn6C,GAAM,EAAgBm6C,EAAQ,QAASs6G,EAAkB7L,SAASnjJ,IAAS00C,KAE5O,IAGI26G,EAAqBj8G,EAAYlW,EAASgyH,GAAoBI,EAAoBxhB,EAGpF,IAFA,IAAIyhB,EAAYxoK,KAAKm/B,IAAI4nH,EAAYwhB,EAAmBvoK,KAAK+yI,MAAM1mF,EAAYlW,EAASgyH,EAAmBG,GAAsBL,EAAkBnN,cAAgB5tJ,EAAQ+6J,EAAkBlN,eAEpLwI,EAASgF,EAAmBhF,EAASgF,EAAoBC,EAAWjF,IAC3EhO,EAAYgO,EACZ9qK,EAASxC,KAAKu+J,EAAa,CACzBv7I,MAAOsqJ,EACPnW,YAAaA,EACbv4J,IAAKqzK,EAAU3E,GACfp/E,OAAQvpF,KACRqX,MAAO,CACL/E,MAAO+6J,EAAkB7L,SAASmH,OAQ1C,OAFA3oK,KAAK6tK,YAAc/hK,EACnB9L,KAAK8tK,WAAanT,EACX,gBAAoB,MAAO,CAChC19J,IAAK+C,KAAKw5J,0BACV,aAAcx5J,KAAK3D,MAAM,cACzBoT,UAAW,EAAK,4BAA6BA,GAC7C1W,GAAIA,EACJ0gK,SAAUz5J,KAAK05J,UACfl/I,KAAMA,EACNnD,MAAO,GAAc,CACnBohJ,UAAW,aACXC,UAAW,MACXn9G,OAAQ66G,EAAa,OAAS76G,EAC9B69G,UAAW,SACX1yG,UAAW+mH,EAAsBlyH,EAAS,SAAW,OACrDznC,SAAU,WACVxB,MAAOA,EACPqmJ,wBAAyB,QACzBC,WAAY,aACXvhJ,GACH47B,SAAUA,GACT,gBAAoB,MAAO,CAC5BxjC,UAAW,kDACX4H,MAAO,CACL/E,MAAO,OACPipC,OAAQkyH,EACRlwG,SAAU,OACVrN,UAAWu9G,EACXzlH,SAAU,SACV2xG,cAAenH,EAAc,OAAS,GACtC1+I,SAAU,aAEXjW,GACL,GACC,CACD5D,IAAK,2BACLgC,MAAO,WACL,GAAkD,iBAAvC+D,KAAK8sK,8BAA4C,CAC1D,IAAIhhK,EAAa9L,KAAK8sK,8BAClBnS,EAAY36J,KAAK+sK,6BACrB/sK,KAAK8sK,8BAAgC,KACrC9sK,KAAK+sK,6BAA+B,KAEpC/sK,KAAKgtK,uBAAuBlhK,EAAY6uJ,GAExC36J,KAAK4a,aACP,CACF,GACC,CACD3gB,IAAK,4BACLgC,MAAO,WACL,IAAIk/J,EAA6Bn7J,KAAK3D,MAAM8+J,2BAExCn7J,KAAKotK,6BACPnb,EAAuBjyJ,KAAKotK,6BAG9BptK,KAAKotK,4BAA8Bjb,EAAwBnyJ,KAAK+tK,kCAAmC5S,EACrG,GACC,CACDlhK,IAAK,2BACLgC,MAAO,WACL,IAAIiuD,EAAelqD,KAAK3D,MACpB8vJ,EAAYjiG,EAAaiiG,UACzBkhB,EAAoBnjH,EAAamjH,kBACjC/6J,EAAQ43C,EAAa53C,MACrB07J,EAAuB5oK,KAAK8F,IAAI,EAAG9F,KAAKoF,MAAM8H,EAAQ+6J,EAAkBlN,eAC5E,OAAOngK,KAAK6sK,eAAeY,oBAAoBthB,EAAW6hB,EAAsBX,EAAkBnN,cACpG,GACC,CACDjmK,IAAK,0BACLgC,MAAO,WACL,IAAI66J,EAAe92J,KAAK3D,MACpBk/C,EAASu7G,EAAav7G,OACtBk+G,EAAW3C,EAAa2C,SACxBhoG,EAAYzxD,KAAKmyC,MAAMsf,UAEvBzxD,KAAKiuK,oBAAsBx8G,IAC7BgoG,EAAS,CACPplG,aAAc9Y,EACdgX,aAAcvyD,KAAK2sK,2BACnBl7G,UAAWA,IAEbzxD,KAAKiuK,kBAAoBx8G,EAE7B,GACC,CACDx3D,IAAK,iCACLgC,MAAO,WACD+D,KAAKkuK,sBAAwBluK,KAAK6tK,aAAe7tK,KAAKmuK,qBAAuBnuK,KAAK8tK,cAEpFM,EADsBpuK,KAAK3D,MAAM+xK,iBACjB,CACdtiK,WAAY9L,KAAK6tK,YACjBlT,UAAW36J,KAAK8tK,aAElB9tK,KAAKkuK,oBAAsBluK,KAAK6tK,YAChC7tK,KAAKmuK,mBAAqBnuK,KAAK8tK,WAEnC,GACC,CACD7zK,IAAK,yBACLgC,MAAO,SAAgC6P,EAAY6uJ,GAKjD,IAJA,IAAItD,EAAer3J,KAAK3D,MACpBgxK,EAAoBhW,EAAagW,kBACjCgB,EAAiBhX,EAAagX,eAEzBxF,EAAU/8J,EAAY+8J,GAAWlO,EAAWkO,IAAW,CAC9D,IAAIyF,EAAkBD,EAAexF,GACjCnwJ,EAAO41J,EAAgB51J,KACvBE,EAAM01J,EAAgB11J,IAE1B5Y,KAAK6sK,eAAe0B,YAAY1F,EAASnwJ,EAAME,EAAKy0J,EAAkB9L,UAAUsH,GAClF,CACF,IACE,CAAC,CACH5uK,IAAK,2BACLgC,MAAO,SAAkCq2C,EAAW6tB,GAClD,YAA4Bp9D,IAAxBuvC,EAAUmf,WAA2B0O,EAAU1O,YAAcnf,EAAUmf,UAClE,CACL+gG,aAAa,EACb/gG,UAAWnf,EAAUmf,WAIlB,IACT,KAGKg7G,CACT,CAnVA,CAmVE,iBAAsB,EAAgB,GAAQ,YAAqD,MAoCjG,IAmBJ,SAASpnE,KAAQ,CAjBjB,EAAgB,GAAS,eAAgB,CACvC+wD,YAAY,EACZkX,UAWF,SAAkBrxK,GAChB,OAAOA,CACT,EAZEmyK,gBAAiB/oE,GACjBo0D,SAAUp0D,GACVkoE,iBAAkB,GAClB/yJ,KAAM,OACN2gJ,2BAhaiD,IAiajD9jJ,MAvagB,CAAC,EAwajB47B,SAAU,EACVu6H,aAAc,SAehB,IAAAtkB,UAAS,IKncT,IAAIslB,GAEJ,WACE,SAASA,IACP,IAAIpsK,EAAQpC,KAERkuJ,EAASxyJ,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAElF,EAAgBsE,KAAMwuK,GAEtB,EAAgBxuK,KAAM,0BAAsB,GAE5C,EAAgBA,KAAM,0BAAsB,GAE5C,EAAgBA,KAAM,uBAAmB,GAEzC,EAAgBA,KAAM,eAAe,SAAU0C,GAC7C,IAAI2b,EAAQ3b,EAAK2b,MAEjBjc,EAAMqsK,mBAAmBza,YAAY,CACnC31I,MAAOA,EAAQjc,EAAMssK,oBAEzB,IAEA,EAAgB1uK,KAAM,aAAa,SAAU40E,GAC3C,IAAIv2D,EAAQu2D,EAAMv2D,MAElBjc,EAAMqsK,mBAAmBra,UAAU,CACjC/1I,MAAOA,EAAQjc,EAAMusK,iBAEzB,IAEA,IAAItB,EAAoBnf,EAAOmf,kBAC3BuB,EAAwB1gB,EAAO2gB,kBAC/BA,OAA8C,IAA1BD,EAAmC,EAAIA,EAC3DE,EAAwB5gB,EAAO6gB,eAC/BA,OAA2C,IAA1BD,EAAmC,EAAIA,EAC5D9uK,KAAKyuK,mBAAqBpB,EAC1BrtK,KAAK0uK,mBAAqBG,EAC1B7uK,KAAK2uK,gBAAkBI,CACzB,CAyDA,OAvDA,EAAaP,EAA4B,CAAC,CACxCv0K,IAAK,QACLgC,MAAO,SAAe45J,EAAUF,GAC9B31J,KAAKyuK,mBAAmB78G,MAAMikG,EAAW71J,KAAK2uK,gBAAiBhZ,EAAc31J,KAAK0uK,mBACpF,GACC,CACDz0K,IAAK,WACLgC,MAAO,WACL+D,KAAKyuK,mBAAmBO,UAC1B,GACC,CACD/0K,IAAK,iBACLgC,MAAO,WACL,OAAO+D,KAAKyuK,mBAAmB1T,gBACjC,GACC,CACD9gK,IAAK,gBACLgC,MAAO,WACL,OAAO+D,KAAKyuK,mBAAmBzT,eACjC,GACC,CACD/gK,IAAK,YACLgC,MAAO,SAAmB45J,GACxB,IAAIF,EAAcj6J,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,EACtF,OAAOsE,KAAKyuK,mBAAmBlN,UAAU1L,EAAW71J,KAAK2uK,gBAAiBhZ,EAAc31J,KAAK0uK,mBAC/F,GACC,CACDz0K,IAAK,WACLgC,MAAO,SAAkB45J,GACvB,IAAIF,EAAcj6J,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,EACtF,OAAOsE,KAAKyuK,mBAAmBjN,SAAS3L,EAAW71J,KAAK2uK,gBAAiBhZ,EAAc31J,KAAK0uK,mBAC9F,GACC,CACDz0K,IAAK,MACLgC,MAAO,SAAa45J,GAClB,IAAIF,EAAcj6J,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,EACtF,OAAOsE,KAAKyuK,mBAAmB/0K,IAAIm8J,EAAW71J,KAAK2uK,gBAAiBhZ,EAAc31J,KAAK0uK,mBACzF,GACC,CACDz0K,IAAK,MACLgC,MAAO,SAAa45J,EAAUF,EAAarjJ,EAAOipC,GAChDv7C,KAAKyuK,mBAAmBp0K,IAAIw7J,EAAW71J,KAAK2uK,gBAAiBhZ,EAAc31J,KAAK0uK,mBAAoBp8J,EAAOipC,EAC7G,GACC,CACDthD,IAAK,gBACLN,IAAK,WACH,OAAOqG,KAAKyuK,mBAAmBvO,aACjC,GACC,CACDjmK,IAAK,eACLN,IAAK,WACH,OAAOqG,KAAKyuK,mBAAmBtO,YACjC,KAGKqO,CACT,CAhGA,GCAA,SAAS,GAAQ3zK,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAAS,GAAcS,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAK,GAAQG,GAAQ,GAAMC,SAAQ,SAAU5B,GAAO,EAAgBuB,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmB,GAAQA,GAAQC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAOrgB,IASI,GAEJ,SAAU82J,GAGR,SAAS2c,EAAU5yK,EAAO84B,GACxB,IAAI/yB,EAEJ,EAAgBpC,KAAMivK,GAItB,EAAgBljB,EAFhB3pJ,EAAQ6tE,EAA2BjwE,KAAMgsJ,EAAgBijB,GAAW90K,KAAK6F,KAAM3D,EAAO84B,KAEvC,QAAS,CACtDq8B,WAAY,EACZC,UAAW,EACX2/F,cAAe,EACf8d,yBAAyB,EACzBC,uBAAuB,IAGzB,EAAgBpjB,EAAuB3pJ,GAAQ,iCAAkC,MAEjF,EAAgB2pJ,EAAuB3pJ,GAAQ,8BAA+B,MAE9E,EAAgB2pJ,EAAuB3pJ,GAAQ,sBAAsB,SAAUnF,GAC7EmF,EAAMgtK,gBAAkBnyK,CAC1B,IAEA,EAAgB8uJ,EAAuB3pJ,GAAQ,uBAAuB,SAAUnF,GAC9EmF,EAAMitK,iBAAmBpyK,CAC3B,IAEA,EAAgB8uJ,EAAuB3pJ,GAAQ,+BAA+B,SAAUM,GACtF,IAAImzJ,EAAWnzJ,EAAKmzJ,SAChBzlJ,EAAO2gC,EAAyBruC,EAAM,CAAC,aAEvCywC,EAAc/wC,EAAM/F,MACpBu9J,EAAezmH,EAAYymH,aAC3B0V,EAAgBn8H,EAAYm8H,cAGhC,OAAIzZ,IAFW1iH,EAAYghH,SAECmb,EACnB,gBAAoB,MAAO,CAChCr1K,IAAKmW,EAAKnW,IACVod,MAAO,GAAc,CAAC,EAAGjH,EAAKiH,MAAO,CACnCkkC,OAtDgB,OA0Dbq+G,EAAa,GAAc,CAAC,EAAGxpJ,EAAM,CAC1Cm5E,OAAQwiE,EAAuB3pJ,GAC/ByzJ,SAAUA,EAAWyZ,IAG3B,IAEA,EAAgBvjB,EAAuB3pJ,GAAQ,gCAAgC,SAAUwyE,GACvF,IAAI+gF,EAAc/gF,EAAM+gF,YACpBE,EAAWjhF,EAAMihF,SACjBzlJ,EAAO2gC,EAAyB6jC,EAAO,CAAC,cAAe,aAEvD1qB,EAAe9nD,EAAM/F,MACrBu9J,EAAe1vG,EAAa0vG,aAC5B2V,EAAmBrlH,EAAaqlH,iBAChCD,EAAgBplH,EAAaolH,cACjC,OAAO1V,EAAa,GAAc,CAAC,EAAGxpJ,EAAM,CAC1CulJ,YAAaA,EAAc4Z,EAC3BhmF,OAAQwiE,EAAuB3pJ,GAC/ByzJ,SAAUA,EAAWyZ,IAEzB,IAEA,EAAgBvjB,EAAuB3pJ,GAAQ,6BAA6B,SAAUmrJ,GACpF,IAAIoI,EAAcpI,EAAMoI,YACpBvlJ,EAAO2gC,EAAyBw8G,EAAO,CAAC,gBAExCuJ,EAAe10J,EAAM/F,MACrBu9J,EAAe9C,EAAa8C,aAC5B7qC,EAAc+nC,EAAa/nC,YAC3BwgD,EAAmBzY,EAAayY,iBAEpC,OAAI5Z,IAAgB5mC,EAAcwgD,EACzB,gBAAoB,MAAO,CAChCt1K,IAAKmW,EAAKnW,IACVod,MAAO,GAAc,CAAC,EAAGjH,EAAKiH,MAAO,CACnC/E,MA9FgB,OAkGbsnJ,EAAa,GAAc,CAAC,EAAGxpJ,EAAM,CAC1CulJ,YAAaA,EAAc4Z,EAC3BhmF,OAAQwiE,EAAuB3pJ,KAGrC,IAEA,EAAgB2pJ,EAAuB3pJ,GAAQ,yBAAyB,SAAUutJ,GAChF,IAAItxI,EAAQsxI,EAAMtxI,MACdg5I,EAAej1J,EAAM/F,MACrB0yH,EAAcsoC,EAAatoC,YAC3BwgD,EAAmBlY,EAAakY,iBAChCvb,EAAcqD,EAAarD,YAC3B8D,EAAc11J,EAAM+vC,MACpBi/G,EAAgB0G,EAAY1G,cAMhC,OAL8B0G,EAAYoX,yBAKX7wJ,IAAU0wG,EAAcwgD,EAC9Cne,EAGqB,mBAAhB4C,EAA6BA,EAAY,CACrD31I,MAAOA,EAAQkxJ,IACZvb,CACP,IAEA,EAAgBjI,EAAuB3pJ,GAAQ,aAAa,SAAUsvD,GACpE,IAAIF,EAAaE,EAAWF,WACxBC,EAAYC,EAAWD,UAE3BrvD,EAAMmwC,SAAS,CACbif,WAAYA,EACZC,UAAWA,IAGb,IAAIgoG,EAAWr3J,EAAM/F,MAAMo9J,SAEvBA,GACFA,EAAS/nG,EAEb,IAEA,EAAgBq6F,EAAuB3pJ,GAAQ,8BAA8B,SAAU0tJ,GACrF,IAAI3yI,EAAa2yI,EAAM3yI,WACnBvG,EAAOk5I,EAAMl5I,KACb3F,EAAW6+I,EAAM7+I,SACjBqnJ,EAAel2J,EAAM+vC,MACrB+8H,EAA0B5W,EAAa4W,wBACvCC,EAAwB7W,EAAa6W,sBAEzC,GAAIhyJ,IAAe+xJ,GAA2Bj+J,IAAak+J,EAAuB,CAChF/sK,EAAMmwC,SAAS,CACb6+G,cAAex6I,EACfs4J,wBAAyB/xJ,EACzBgyJ,sBAAuBl+J,IAGzB,IAAIyqJ,EAA4Bt5J,EAAM/F,MAAMq/J,0BAEH,mBAA9BA,GACTA,EAA0B,CACxBv+I,WAAYA,EACZvG,KAAMA,EACN3F,SAAUA,GAGhB,CACF,IAEA,EAAgB86I,EAAuB3pJ,GAAQ,iBAAiB,SAAUsvD,GACxE,IAAIF,EAAaE,EAAWF,WAE5BpvD,EAAMs3J,UAAU,CACdloG,WAAYA,EACZC,UAAWrvD,EAAM+vC,MAAMsf,WAE3B,IAEA,EAAgBs6F,EAAuB3pJ,GAAQ,gBAAgB,SAAUsvD,GACvE,IAAID,EAAYC,EAAWD,UAE3BrvD,EAAMs3J,UAAU,CACdjoG,UAAWA,EACXD,WAAYpvD,EAAM+vC,MAAMqf,YAE5B,IAEA,EAAgBu6F,EAAuB3pJ,GAAQ,wBAAwB,SAAU2tJ,GAC/E,IAAI1xI,EAAQ0xI,EAAM1xI,MACdw5I,EAAez1J,EAAM/F,MACrBizK,EAAgBzX,EAAayX,cAC7Bnb,EAAW0D,EAAa1D,SACxBC,EAAYyD,EAAazD,UACzBuP,EAAevhK,EAAM+vC,MACrBi/G,EAAgBuS,EAAavS,cAMjC,OAL4BuS,EAAawL,uBAKZ9wJ,IAAU81I,EAAWmb,EACzCle,EAGmB,mBAAdgD,EAA2BA,EAAU,CACjD/1I,MAAOA,EAAQixJ,IACZlb,CACP,IAEA,EAAgBrI,EAAuB3pJ,GAAQ,mBAAmB,SAAUnF,GAC1EmF,EAAMotK,aAAevyK,CACvB,IAEA,EAAgB8uJ,EAAuB3pJ,GAAQ,oBAAoB,SAAUnF,GAC3EmF,EAAMqtK,cAAgBxyK,CACxB,IAEA,IAAI68J,EAA2Bz9J,EAAMy9J,yBACjC4V,EAAoBrzK,EAAMkzK,iBAC1BI,EAAiBtzK,EAAMizK,cAsB3B,OApBAltK,EAAMwtK,6BAA4B,GAE9B9V,IACF13J,EAAMytK,wCAA0CF,EAAiB,EAAI,IAAInB,GAA2B,CAClGnB,kBAAmBvT,EACnB+U,kBAAmB,EACnBE,eAAgBY,IACb7V,EACL13J,EAAM0tK,yCAA2CJ,EAAoB,GAAKC,EAAiB,EAAI,IAAInB,GAA2B,CAC5HnB,kBAAmBvT,EACnB+U,kBAAmBa,EACnBX,eAAgBY,IACb7V,EACL13J,EAAM2tK,sCAAwCL,EAAoB,EAAI,IAAIlB,GAA2B,CACnGnB,kBAAmBvT,EACnB+U,kBAAmBa,EACnBX,eAAgB,IACbjV,GAGA13J,CACT,CAkgBA,OAzuBA+uE,EAAU89F,EAAW3c,GAyOrB,EAAa2c,EAAW,CAAC,CACvBh1K,IAAK,mBACLgC,MAAO,WACL+D,KAAKovK,iBAAmBpvK,KAAKovK,gBAAgBx0J,cAC7C5a,KAAKqvK,kBAAoBrvK,KAAKqvK,iBAAiBz0J,cAC/C5a,KAAKwvK,cAAgBxvK,KAAKwvK,aAAa50J,cACvC5a,KAAKyvK,eAAiBzvK,KAAKyvK,cAAc70J,aAC3C,GAGC,CACD3gB,IAAK,gCACLgC,MAAO,WACL,IAAI+zJ,EAAQt0J,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7Es0K,EAAoBhgB,EAAM2F,YAC1BA,OAAoC,IAAtBqa,EAA+B,EAAIA,EACjDC,EAAiBjgB,EAAM6F,SACvBA,OAA8B,IAAnBoa,EAA4B,EAAIA,EAE/CjwK,KAAK02J,+BAAgF,iBAAxC12J,KAAK02J,+BAA8CtxJ,KAAKm/B,IAAIvkC,KAAK02J,+BAAgCf,GAAeA,EAC7J31J,KAAK22J,4BAA0E,iBAArC32J,KAAK22J,4BAA2CvxJ,KAAKm/B,IAAIvkC,KAAK22J,4BAA6Bd,GAAYA,CACnJ,GAGC,CACD57J,IAAK,kBACLgC,MAAO,WACL+D,KAAKovK,iBAAmBpvK,KAAKovK,gBAAgB9F,kBAC7CtpK,KAAKqvK,kBAAoBrvK,KAAKqvK,iBAAiB/F,kBAC/CtpK,KAAKwvK,cAAgBxvK,KAAKwvK,aAAalG,kBACvCtpK,KAAKyvK,eAAiBzvK,KAAKyvK,cAAcnG,iBAC3C,GAGC,CACDrvK,IAAK,oBACLgC,MAAO,WACL,IAAI0/J,EAAQjgK,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7Ew0K,EAAoBvU,EAAMhG,YAC1BA,OAAoC,IAAtBua,EAA+B,EAAIA,EACjDC,EAAiBxU,EAAM9F,SACvBA,OAA8B,IAAnBsa,EAA4B,EAAIA,EAE3CnY,EAAeh4J,KAAK3D,MACpBkzK,EAAmBvX,EAAauX,iBAChCD,EAAgBtX,EAAasX,cAC7Bc,EAAsBhrK,KAAK8F,IAAI,EAAGyqJ,EAAc4Z,GAChDc,EAAmBjrK,KAAK8F,IAAI,EAAG2qJ,EAAWyZ,GAC9CtvK,KAAKovK,iBAAmBpvK,KAAKovK,gBAAgB/T,kBAAkB,CAC7D1F,YAAaA,EACbE,SAAUwa,IAEZrwK,KAAKqvK,kBAAoBrvK,KAAKqvK,iBAAiBhU,kBAAkB,CAC/D1F,YAAaya,EACbva,SAAUwa,IAEZrwK,KAAKwvK,cAAgBxvK,KAAKwvK,aAAanU,kBAAkB,CACvD1F,YAAaA,EACbE,SAAUA,IAEZ71J,KAAKyvK,eAAiBzvK,KAAKyvK,cAAcpU,kBAAkB,CACzD1F,YAAaya,EACbva,SAAUA,IAEZ71J,KAAKswK,eAAiB,KACtBtwK,KAAKuwK,eAAiB,KAEtBvwK,KAAK4vK,6BAA4B,EACnC,GACC,CACD31K,IAAK,oBACLgC,MAAO,WACL,IAAIu0K,EAAexwK,KAAK3D,MACpBm1D,EAAag/G,EAAah/G,WAC1BC,EAAY++G,EAAa/+G,UAE7B,GAAID,EAAa,GAAKC,EAAY,EAAG,CACnC,IAAI+kG,EAAW,CAAC,EAEZhlG,EAAa,IACfglG,EAAShlG,WAAaA,GAGpBC,EAAY,IACd+kG,EAAS/kG,UAAYA,GAGvBzxD,KAAKuyC,SAASikH,EAChB,CAEAx2J,KAAKu3J,4BACP,GACC,CACDt9J,IAAK,qBACLgC,MAAO,WACL+D,KAAKu3J,4BACP,GACC,CACDt9J,IAAK,SACLgC,MAAO,WACL,IAAIw0K,EAAezwK,KAAK3D,MACpBo9J,EAAWgX,EAAahX,SACxB/G,EAAoB+d,EAAa/d,kBAGjCmC,GAF4B4b,EAAa/U,0BACxB+U,EAAaj/G,WACbi/G,EAAa5b,gBAE9BE,GADgB0b,EAAah/G,UACfg/G,EAAa1b,aAC3B3kJ,EAAO2gC,EAAyB0/H,EAAc,CAAC,WAAY,oBAAqB,4BAA6B,aAAc,iBAAkB,YAAa,gBAO9J,GALAzwK,KAAK0wK,oBAKoB,IAArB1wK,KAAK3D,MAAMiW,OAAqC,IAAtBtS,KAAK3D,MAAMk/C,OACvC,OAAO,KAIT,IAAIo1H,EAAe3wK,KAAKmyC,MACpBqf,EAAam/G,EAAan/G,WAC1BC,EAAYk/G,EAAal/G,UAC7B,OAAO,gBAAoB,MAAO,CAChCp6C,MAAOrX,KAAK4wK,sBACX,gBAAoB,MAAO,CAC5Bv5J,MAAOrX,KAAK6wK,oBACX7wK,KAAK8wK,mBAAmB1gK,GAAOpQ,KAAK+wK,oBAAoB,GAAc,CAAC,EAAG3gK,EAAM,CACjFqpJ,SAAUA,EACVjoG,WAAYA,MACR,gBAAoB,MAAO,CAC/Bn6C,MAAOrX,KAAKgxK,uBACXhxK,KAAKixK,sBAAsB,GAAc,CAAC,EAAG7gK,EAAM,CACpDqpJ,SAAUA,EACVhoG,UAAWA,KACRzxD,KAAKkxK,uBAAuB,GAAc,CAAC,EAAG9gK,EAAM,CACvDqpJ,SAAUA,EACV/G,kBAAmBA,EACnBlhG,WAAYA,EACZqjG,eAAgBA,EAChBE,YAAaA,EACbtjG,UAAWA,MAEf,GACC,CACDx3D,IAAK,uBACLgC,MAAO,SAA8BI,GAKnC,OAJaA,EAAMk/C,OAECv7C,KAAKmxK,kBAAkB90K,EAG7C,GACC,CACDpC,IAAK,oBACLgC,MAAO,SAA2BI,GAChC,IAAIkzK,EAAmBlzK,EAAMkzK,iBACzBvb,EAAc33J,EAAM23J,YAExB,GAA2B,MAAvBh0J,KAAKswK,eACP,GAA2B,mBAAhBtc,EAA4B,CAGrC,IAFA,IAAIod,EAAgB,EAEX/yJ,EAAQ,EAAGA,EAAQkxJ,EAAkBlxJ,IAC5C+yJ,GAAiBpd,EAAY,CAC3B31I,MAAOA,IAIXre,KAAKswK,eAAiBc,CACxB,MACEpxK,KAAKswK,eAAiBtc,EAAcub,EAIxC,OAAOvvK,KAAKswK,cACd,GACC,CACDr2K,IAAK,qBACLgC,MAAO,SAA4BI,GAKjC,OAJYA,EAAMiW,MAEEtS,KAAKqxK,kBAAkBh1K,EAG7C,GACC,CACDpC,IAAK,oBACLgC,MAAO,SAA2BI,GAChC,IAAIizK,EAAgBjzK,EAAMizK,cACtBlb,EAAY/3J,EAAM+3J,UAEtB,GAA2B,MAAvBp0J,KAAKuwK,eACP,GAAyB,mBAAdnc,EAA0B,CAGnC,IAFA,IAAIkd,EAAgB,EAEXjzJ,EAAQ,EAAGA,EAAQixJ,EAAejxJ,IACzCizJ,GAAiBld,EAAU,CACzB/1I,MAAOA,IAIXre,KAAKuwK,eAAiBe,CACxB,MACEtxK,KAAKuwK,eAAiBnc,EAAYkb,EAItC,OAAOtvK,KAAKuwK,cACd,GACC,CACDt2K,IAAK,6BACLgC,MAAO,WACL,GAAmD,iBAAxC+D,KAAK02J,+BAA6C,CAC3D,IAAIf,EAAc31J,KAAK02J,+BACnBb,EAAW71J,KAAK22J,4BACpB32J,KAAK02J,+BAAiC,KACtC12J,KAAK22J,4BAA8B,KACnC32J,KAAKq7J,kBAAkB,CACrB1F,YAAaA,EACbE,SAAUA,IAEZ71J,KAAK4a,aACP,CACF,GAMC,CACD3gB,IAAK,8BACLgC,MAAO,SAAqCs1K,GAC1C,IAAIC,EAAexxK,KAAK3D,MACpB23J,EAAcwd,EAAaxd,YAC3Byd,EAA0BD,EAAaC,wBACvCC,EAAuBF,EAAaE,qBACpCn2H,EAASi2H,EAAaj2H,OACtBg0H,EAAmBiC,EAAajC,iBAChCD,EAAgBkC,EAAalC,cAC7Blb,EAAYod,EAAapd,UACzB/8I,EAAQm6J,EAAan6J,MACrBs6J,EAAsBH,EAAaG,oBACnCC,EAAuBJ,EAAaI,qBACpCC,EAAmBL,EAAaK,iBAChCC,EAAoBN,EAAaM,kBACjCx/J,EAAQk/J,EAAal/J,MACrBy/J,EAAaR,GAAYh2H,IAAWv7C,KAAKgyK,qBAAuB1/J,IAAUtS,KAAKiyK,mBAC/EC,EAAiBX,GAAYvd,IAAgBh0J,KAAKmyK,0BAA4B5C,IAAqBvvK,KAAKoyK,8BACxGC,EAAgBd,GAAYjC,IAAkBtvK,KAAKsyK,4BAA8Ble,IAAcp0J,KAAKuyK,wBAEpGhB,GAAYQ,GAAc16J,IAAUrX,KAAKwyK,sBAC3CxyK,KAAK4wK,qBAAuB,GAAc,CACxCr1H,OAAQA,EACRyM,SAAU,UAEV11C,MAAOA,GACN+E,KAGDk6J,GAAYQ,GAAcM,KAC5BryK,KAAK6wK,mBAAqB,CACxBt1H,OAAQv7C,KAAKmxK,kBAAkBnxK,KAAK3D,OACpCyX,SAAU,WACVxB,MAAOA,GAETtS,KAAKgxK,sBAAwB,CAC3Bz1H,OAAQA,EAASv7C,KAAKmxK,kBAAkBnxK,KAAK3D,OAC7C2rD,SAAU,UAEVl0C,SAAU,WACVxB,MAAOA,KAIPi/J,GAAYI,IAAwB3xK,KAAKyyK,oCAC3CzyK,KAAK0yK,qBAAuB,GAAc,CACxCh6J,KAAM,EACN0gJ,UAAW,SACX1yG,UAAW+qH,EAA0B,OAAS,SAC9C39J,SAAU,YACT69J,KAGDJ,GAAYW,GAAkBN,IAAyB5xK,KAAK2yK,qCAC9D3yK,KAAK4yK,sBAAwB,GAAc,CACzCl6J,KAAM1Y,KAAKqxK,kBAAkBrxK,KAAK3D,OAClCyX,SAAU,YACT89J,KAGDL,GAAYM,IAAqB7xK,KAAK6yK,iCACxC7yK,KAAK8yK,kBAAoB,GAAc,CACrCp6J,KAAM,EACN0gJ,UAAW,SACX1yG,UAAW,SACX5yC,SAAU,WACV8E,IAAK,GACJi5J,KAGDN,GAAYW,GAAkBJ,IAAsB9xK,KAAK+yK,kCAC3D/yK,KAAKgzK,mBAAqB,GAAc,CACtCt6J,KAAM1Y,KAAKqxK,kBAAkBrxK,KAAK3D,OAClC+8J,UAAWsY,EAAuB,OAAS,SAC3ChrH,UAAW,SACX5yC,SAAU,WACV8E,IAAK,GACJk5J,IAGL9xK,KAAKmyK,yBAA2Bne,EAChCh0J,KAAKoyK,8BAAgC7C,EACrCvvK,KAAKsyK,2BAA6BhD,EAClCtvK,KAAKgyK,oBAAsBz2H,EAC3Bv7C,KAAKuyK,uBAAyBne,EAC9Bp0J,KAAKwyK,mBAAqBn7J,EAC1BrX,KAAKyyK,iCAAmCd,EACxC3xK,KAAK2yK,kCAAoCf,EACzC5xK,KAAK6yK,8BAAgChB,EACrC7xK,KAAK+yK,+BAAiCjB,EACtC9xK,KAAKiyK,mBAAqB3/J,CAC5B,GACC,CACDrY,IAAK,oBACLgC,MAAO,WACD+D,KAAKmyK,2BAA6BnyK,KAAK3D,MAAM23J,aAAeh0J,KAAKoyK,gCAAkCpyK,KAAK3D,MAAMkzK,mBAChHvvK,KAAKswK,eAAiB,MAGpBtwK,KAAKsyK,6BAA+BtyK,KAAK3D,MAAMizK,eAAiBtvK,KAAKuyK,yBAA2BvyK,KAAK3D,MAAM+3J,YAC7Gp0J,KAAKuwK,eAAiB,MAGxBvwK,KAAK4vK,8BAEL5vK,KAAKmyK,yBAA2BnyK,KAAK3D,MAAM23J,YAC3Ch0J,KAAKoyK,8BAAgCpyK,KAAK3D,MAAMkzK,iBAChDvvK,KAAKsyK,2BAA6BtyK,KAAK3D,MAAMizK,cAC7CtvK,KAAKuyK,uBAAyBvyK,KAAK3D,MAAM+3J,SAC3C,GACC,CACDn6J,IAAK,wBACLgC,MAAO,SAA+BI,GACpC,IAAIo1K,EAA0Bp1K,EAAMo1K,wBAChClC,EAAmBlzK,EAAMkzK,iBACzBD,EAAgBjzK,EAAMizK,cACtBnb,EAAW93J,EAAM83J,SACjB8e,EAA8B52K,EAAM42K,4BACpC9D,EAAwBnvK,KAAKmyC,MAAMg9H,sBAEvC,IAAKI,EACH,OAAO,KAGT,IAAI2D,EAAqB/D,EAAwB,EAAI,EACjD5zH,EAASv7C,KAAKmzK,qBAAqB92K,GACnCiW,EAAQtS,KAAKqxK,kBAAkBh1K,GAC/B+0J,EAAgBpxJ,KAAKmyC,MAAMg9H,sBAAwBnvK,KAAKmyC,MAAMi/G,cAAgB,EAC9EgiB,EAAYH,EAA8B3gK,EAAQ8+I,EAAgB9+I,EAElE+gK,EAAiB,gBAAoB,EAAMpjI,EAAS,CAAC,EAAG5zC,EAAO,CACjEu9J,aAAc55J,KAAKszK,4BACnB7jK,UAAWzP,KAAK3D,MAAMk3K,wBACtBxkD,YAAawgD,EACbzV,yBAA0B95J,KAAK6vK,wCAC/Bt0H,OAAQA,EACRk+G,SAAUgY,EAA0BzxK,KAAKwzK,kBAAezwK,EACxD9F,IAAK+C,KAAKyzK,mBACVtf,SAAU/uJ,KAAK8F,IAAI,EAAGipJ,EAAWmb,GAAiB4D,EAClD9e,UAAWp0J,KAAK0zK,qBAChBr8J,MAAOrX,KAAK0yK,qBACZz/H,SAAU,KACV3gC,MAAO8gK,KAGT,OAAIH,EACK,gBAAoB,MAAO,CAChCxjK,UAAW,+BACX4H,MAAO,GAAc,CAAC,EAAGrX,KAAK0yK,qBAAsB,CAClDn3H,OAAQA,EACRjpC,MAAOA,EACPo0C,UAAW,YAEZ2sH,GAGEA,CACT,GACC,CACDp5K,IAAK,yBACLgC,MAAO,SAAgCI,GACrC,IAAI0yH,EAAc1yH,EAAM0yH,YACpBwgD,EAAmBlzK,EAAMkzK,iBACzBD,EAAgBjzK,EAAMizK,cACtBnb,EAAW93J,EAAM83J,SACjBU,EAAiBx4J,EAAMw4J,eACvBE,EAAc14J,EAAM04J,YACxB,OAAO,gBAAoB,EAAM9kH,EAAS,CAAC,EAAG5zC,EAAO,CACnDu9J,aAAc55J,KAAK2zK,6BACnBlkK,UAAWzP,KAAK3D,MAAMu3K,yBACtB7kD,YAAa3pH,KAAK8F,IAAI,EAAG6jH,EAAcwgD,GACvCvb,YAAah0J,KAAK6zK,sBAClB/Z,yBAA0B95J,KAAK8vK,yCAC/Bv0H,OAAQv7C,KAAKmzK,qBAAqB92K,GAClCo9J,SAAUz5J,KAAK05J,UACfgC,0BAA2B17J,KAAK8zK,2BAChC72K,IAAK+C,KAAK+zK,oBACV5f,SAAU/uJ,KAAK8F,IAAI,EAAGipJ,EAAWmb,GACjClb,UAAWp0J,KAAK0zK,qBAChB7e,eAAgBA,EAAiB0a,EACjCxa,YAAaA,EAAcua,EAC3Bj4J,MAAOrX,KAAK4yK,sBACZtgK,MAAOtS,KAAKg0K,mBAAmB33K,KAEnC,GACC,CACDpC,IAAK,qBACLgC,MAAO,SAA4BI,GACjC,IAAIkzK,EAAmBlzK,EAAMkzK,iBACzBD,EAAgBjzK,EAAMizK,cAE1B,OAAKC,GAAqBD,EAInB,gBAAoB,EAAMr/H,EAAS,CAAC,EAAG5zC,EAAO,CACnDoT,UAAWzP,KAAK3D,MAAM43K,qBACtBllD,YAAawgD,EACbh0H,OAAQv7C,KAAKmxK,kBAAkB90K,GAC/BY,IAAK+C,KAAKk0K,gBACV/f,SAAUmb,EACVj4J,MAAOrX,KAAK8yK,kBACZ7/H,SAAU,KACV3gC,MAAOtS,KAAKqxK,kBAAkBh1K,MAXvB,IAaX,GACC,CACDpC,IAAK,sBACLgC,MAAO,SAA6BI,GAClC,IAAI0yH,EAAc1yH,EAAM0yH,YACpB2iD,EAAuBr1K,EAAMq1K,qBAC7BnC,EAAmBlzK,EAAMkzK,iBACzBD,EAAgBjzK,EAAMizK,cACtB99G,EAAan1D,EAAMm1D,WACnB2iH,EAA4B93K,EAAM83K,0BAClCC,EAAep0K,KAAKmyC,MACpB+8H,EAA0BkF,EAAalF,wBACvC9d,EAAgBgjB,EAAahjB,cAEjC,IAAKke,EACH,OAAO,KAGT,IAAI+E,EAAwBnF,EAA0B,EAAI,EACtD3zH,EAASv7C,KAAKmxK,kBAAkB90K,GAChCiW,EAAQtS,KAAKg0K,mBAAmB33K,GAChCi4K,EAAmBpF,EAA0B9d,EAAgB,EAE7DmjB,EAAah5H,EACblkC,EAAQrX,KAAKgzK,mBAEbmB,IACFI,EAAah5H,EAAS+4H,EACtBj9J,EAAQ,GAAc,CAAC,EAAGrX,KAAKgzK,mBAAoB,CACjDt6J,KAAM,KAIV,IAAI87J,EAAe,gBAAoB,EAAMvkI,EAAS,CAAC,EAAG5zC,EAAO,CAC/Du9J,aAAc55J,KAAKy0K,0BACnBhlK,UAAWzP,KAAK3D,MAAMq4K,sBACtB3lD,YAAa3pH,KAAK8F,IAAI,EAAG6jH,EAAcwgD,GAAoB8E,EAC3DrgB,YAAah0J,KAAK6zK,sBAClB/Z,yBAA0B95J,KAAK+vK,sCAC/Bx0H,OAAQg5H,EACR9a,SAAUiY,EAAuB1xK,KAAK20K,mBAAgB5xK,EACtD9F,IAAK+C,KAAK40K,iBACVzgB,SAAUmb,EACV99G,WAAYA,EACZn6C,MAAOA,EACP47B,SAAU,KACV3gC,MAAOA,KAGT,OAAI6hK,EACK,gBAAoB,MAAO,CAChC1kK,UAAW,6BACX4H,MAAO,GAAc,CAAC,EAAGrX,KAAKgzK,mBAAoB,CAChDz3H,OAAQA,EACRjpC,MAAOA,EACP8mJ,UAAW,YAEZob,GAGEA,CACT,IACE,CAAC,CACHv6K,IAAK,2BACLgC,MAAO,SAAkCq2C,EAAW6tB,GAClD,OAAI7tB,EAAUkf,aAAe2O,EAAU3O,YAAclf,EAAUmf,YAAc0O,EAAU1O,UAC9E,CACLD,WAAoC,MAAxBlf,EAAUkf,YAAsBlf,EAAUkf,YAAc,EAAIlf,EAAUkf,WAAa2O,EAAU3O,WACzGC,UAAkC,MAAvBnf,EAAUmf,WAAqBnf,EAAUmf,WAAa,EAAInf,EAAUmf,UAAY0O,EAAU1O,WAIlG,IACT,KAGKw9G,CACT,CA3uBA,CA2uBE,iBCxwBa,SAAS4F,GAAyBnyK,GAC/C,IAAI+M,EAAY/M,EAAK+M,UACjBu/G,EAAUtsH,EAAKssH,QACf33G,EAAQ3U,EAAK2U,MACjB,OAAO,gBAAoB,MAAO,CAChC5H,UAAWA,EACX+K,KAAM,MACNnD,MAAOA,GACN23G,EACL,CDiwBA,EAAgB,GAAW,eAAgB,CACzCukD,wBAAyB,GACzBK,yBAA0B,GAC1BK,qBAAsB,GACtBS,sBAAuB,GACvBjD,yBAAyB,EACzBC,sBAAsB,EACtBnC,iBAAkB,EAClBD,cAAe,EACfza,gBAAiB,EACjBE,aAAc,EACd19I,MAAO,CAAC,EACRs6J,oBAAqB,CAAC,EACtBC,qBAAsB,CAAC,EACvBC,iBAAkB,CAAC,EACnBC,kBAAmB,CAAC,EACpBqC,2BAA2B,EAC3BlB,6BAA6B,IAG/B,GAAUj1K,UAiBN,CAAC,GACL,IAAAkrJ,UAAS,KEnyBT,SAAUoJ,GAGR,SAASwiB,EAAWz4K,EAAO84B,GACzB,IAAI/yB,EAcJ,OAZA,EAAgBpC,KAAM80K,IAEtB1yK,EAAQ6tE,EAA2BjwE,KAAMgsJ,EAAgB8oB,GAAY36K,KAAK6F,KAAM3D,EAAO84B,KACjFgd,MAAQ,CACZkiB,aAAc,EACdF,YAAa,EACb5B,aAAc,EACdf,WAAY,EACZC,UAAW,EACX+pG,YAAa,GAEfp5J,EAAMs3J,UAAYt3J,EAAMs3J,UAAUv5J,KAAK4rJ,EAAuB3pJ,IACvDA,CACT,CA2CA,OA7DA+uE,EAAU2jG,EAAYxiB,GAoBtB,EAAawiB,EAAY,CAAC,CACxB76K,IAAK,SACLgC,MAAO,WACL,IAAI4B,EAAWmC,KAAK3D,MAAMwB,SACtBi6J,EAAc93J,KAAKmyC,MACnBkiB,EAAeyjG,EAAYzjG,aAC3BF,EAAc2jG,EAAY3jG,YAC1B5B,EAAeulG,EAAYvlG,aAC3Bf,EAAasmG,EAAYtmG,WACzBC,EAAYqmG,EAAYrmG,UACxB+pG,EAAc1D,EAAY0D,YAC9B,OAAO39J,EAAS,CACdw2D,aAAcA,EACdF,YAAaA,EACbslG,SAAUz5J,KAAK05J,UACfnnG,aAAcA,EACdf,WAAYA,EACZC,UAAWA,EACX+pG,YAAaA,GAEjB,GACC,CACDvhK,IAAK,YACLgC,MAAO,SAAmByG,GACxB,IAAI2xD,EAAe3xD,EAAK2xD,aACpBF,EAAczxD,EAAKyxD,YACnB5B,EAAe7vD,EAAK6vD,aACpBf,EAAa9uD,EAAK8uD,WAClBC,EAAY/uD,EAAK+uD,UACjB+pG,EAAc94J,EAAK84J,YACvBx7J,KAAKuyC,SAAS,CACZ8hB,aAAcA,EACdF,YAAaA,EACb5B,aAAcA,EACdf,WAAYA,EACZC,UAAWA,EACX+pG,YAAaA,GAEjB,KAGKsZ,CACT,CA/DA,CA+DE,kBAGS92K,UAOP,CAAC,ED5EL62K,GAAyB72K,UAAoD,KEE7E,SAboB,CAKlB+2K,IAAK,MAMLC,KAAM,QCHO,SAASC,GAAcvyK,GACpC,IAAIwyK,EAAgBxyK,EAAKwyK,cACrBvL,EAAa,EAAK,8CAA+C,CACnE,mDAAoDuL,IAAkB,GAAcH,IACpF,oDAAqDG,IAAkB,GAAcF,OAEvF,OAAO,gBAAoB,MAAO,CAChCvlK,UAAWk6J,EACXr3J,MAAO,GACPipC,OAAQ,GACRvL,QAAS,aACRklI,IAAkB,GAAcH,IAAM,gBAAoB,OAAQ,CACnEtxJ,EAAG,mBACA,gBAAoB,OAAQ,CAC/BA,EAAG,mBACD,gBAAoB,OAAQ,CAC9BA,EAAG,gBACHgzC,KAAM,SAEV,CCrBe,SAAS0+G,GAAsBzyK,GAC5C,IAAI0yK,EAAU1yK,EAAK0yK,QACfrlK,EAAQrN,EAAKqN,MACbslK,EAAS3yK,EAAK2yK,OACdH,EAAgBxyK,EAAKwyK,cACrBI,EAAoBD,IAAWD,EAC/Bv3K,EAAW,CAAC,gBAAoB,OAAQ,CAC1C4R,UAAW,+CACXxV,IAAK,QACLsd,MAAwB,iBAAVxH,EAAqBA,EAAQ,MAC1CA,IASH,OAPIulK,GACFz3K,EAASxC,KAAK,gBAAoB45K,GAAe,CAC/Ch7K,IAAK,gBACLi7K,cAAeA,KAIZr3K,CACT,CCpBe,SAAS03K,GAAmB7yK,GACzC,IAAI+M,EAAY/M,EAAK+M,UACjBu/G,EAAUtsH,EAAKssH,QACf3wG,EAAQ3b,EAAK2b,MACbpkB,EAAMyI,EAAKzI,IACXu7K,EAAa9yK,EAAK8yK,WAClBC,EAAmB/yK,EAAK+yK,iBACxBC,EAAgBhzK,EAAKgzK,cACrBC,EAAiBjzK,EAAKizK,eACtBC,EAAkBlzK,EAAKkzK,gBACvBC,EAAUnzK,EAAKmzK,QACfx+J,EAAQ3U,EAAK2U,MACby+J,EAAY,CACd,gBAAiBz3J,EAAQ,GA0D3B,OAvDIm3J,GAAcC,GAAoBC,GAAiBC,GAAkBC,KACvEE,EAAU,cAAgB,MAC1BA,EAAU7iI,SAAW,EAEjBuiI,IACFM,EAAU5hI,QAAU,SAAU5wC,GAC5B,OAAOkyK,EAAW,CAChBlyK,MAAOA,EACP+a,MAAOA,EACPw3J,QAASA,GAEb,GAGEJ,IACFK,EAAUC,cAAgB,SAAUzyK,GAClC,OAAOmyK,EAAiB,CACtBnyK,MAAOA,EACP+a,MAAOA,EACPw3J,QAASA,GAEb,GAGEH,IACFI,EAAUzmH,WAAa,SAAU/rD,GAC/B,OAAOoyK,EAAc,CACnBpyK,MAAOA,EACP+a,MAAOA,EACPw3J,QAASA,GAEb,GAGEF,IACFG,EAAU1mH,YAAc,SAAU9rD,GAChC,OAAOqyK,EAAe,CACpBryK,MAAOA,EACP+a,MAAOA,EACPw3J,QAASA,GAEb,GAGED,IACFE,EAAUE,cAAgB,SAAU1yK,GAClC,OAAOsyK,EAAgB,CACrBtyK,MAAOA,EACP+a,MAAOA,EACPw3J,QAASA,GAEb,IAIG,gBAAoB,MAAO5lI,EAAS,CAAC,EAAG6lI,EAAW,CACxDrmK,UAAWA,EACXxV,IAAKA,EACLugB,KAAM,MACNnD,MAAOA,IACL23G,EACN,CFvDAimD,GAAcj3K,UAEV,CAAC,ECHLm3K,GAAsBn3K,UAAoD,KCyD1Eu3K,GAAmBv3K,UAAoD,KCrEvE,IAAIi4K,GAEJ,SAAU7lG,GAGR,SAAS6lG,IAGP,OAFA,EAAgBj2K,KAAMi2K,GAEfhmG,EAA2BjwE,KAAMgsJ,EAAgBiqB,GAAQ36K,MAAM0E,KAAMtE,WAC9E,CAEA,OARAy1E,EAAU8kG,EAAQ7lG,GAQX6lG,CACT,CAVA,CAUE,aClBF,SAAS,GAAQp7K,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAAS,GAAcS,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAK,GAAQG,GAAQ,GAAMC,SAAQ,SAAU5B,GAAO,EAAgBuB,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmB,GAAQA,GAAQC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CDkBrgB,EAAgBy6K,GAAQ,eAAgB,CACtCC,eEzBa,SAA+BxzK,GAC5C,IAAI0yK,EAAU1yK,EAAK0yK,QACfS,EAAUnzK,EAAKmzK,QAEnB,MAA2B,mBAAhBA,EAAQl8K,IACVk8K,EAAQl8K,IAAIy7K,GAEZS,EAAQT,EAEnB,EFiBExb,aG3Ba,SAA6Bl3J,GAC1C,IAAIyzK,EAAWzzK,EAAKyzK,SAEpB,OAAgB,MAAZA,EACK,GAEAl7I,OAAOk7I,EAElB,EHoBEC,qBAAsB,GAAcrB,IACpC7lD,SAAU,EACVE,WAAY,EACZinD,eAAgBlB,GAChB99J,MAAO,CAAC,IAIV4+J,GAAOj4K,UAkEH,CAAC,EC/EL,IAAI,GAEJ,SAAUs0J,GAGR,SAASrwF,EAAM5lE,GACb,IAAI+F,EAaJ,OAXA,EAAgBpC,KAAMiiE,IAEtB7/D,EAAQ6tE,EAA2BjwE,KAAMgsJ,EAAgB/pF,GAAO9nE,KAAK6F,KAAM3D,KACrE81C,MAAQ,CACZmkI,eAAgB,GAElBl0K,EAAMm0K,cAAgBn0K,EAAMm0K,cAAcp2K,KAAK4rJ,EAAuB3pJ,IACtEA,EAAMo0K,WAAap0K,EAAMo0K,WAAWr2K,KAAK4rJ,EAAuB3pJ,IAChEA,EAAMs3J,UAAYt3J,EAAMs3J,UAAUv5J,KAAK4rJ,EAAuB3pJ,IAC9DA,EAAMs7J,mBAAqBt7J,EAAMs7J,mBAAmBv9J,KAAK4rJ,EAAuB3pJ,IAChFA,EAAM6+J,QAAU7+J,EAAM6+J,QAAQ9gK,KAAK4rJ,EAAuB3pJ,IACnDA,CACT,CAwgBA,OAzhBA+uE,EAAUlP,EAAOqwF,GAmBjB,EAAarwF,EAAO,CAAC,CACnBhoE,IAAK,kBACLgC,MAAO,WACD+D,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKz3I,aAEd,GAGC,CACD3gB,IAAK,kBACLgC,MAAO,SAAyByG,GAC9B,IAAI+yJ,EAAY/yJ,EAAK+yJ,UACjBp3I,EAAQ3b,EAAK2b,MAEjB,OAAIre,KAAKqyJ,KACqBryJ,KAAKqyJ,KAAKgX,iBAAiB,CACrD5T,UAAWA,EACXI,SAAUx3I,IAE0BozC,UAKjC,CACT,GAGC,CACDx3D,IAAK,gCACLgC,MAAO,SAAuC24E,GAC5C,IAAI+gF,EAAc/gF,EAAM+gF,YACpBE,EAAWjhF,EAAMihF,SAEjB71J,KAAKqyJ,MACPryJ,KAAKqyJ,KAAK+P,8BAA8B,CACtCvM,SAAUA,EACVF,YAAaA,GAGnB,GAGC,CACD17J,IAAK,iBACLgC,MAAO,WACD+D,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKiX,iBAEd,GAGC,CACDrvK,IAAK,oBACLgC,MAAO,WACL,IAAIsxJ,EAAQ7xJ,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7E+6K,EAAoBlpB,EAAMoI,YAC1BA,OAAoC,IAAtB8gB,EAA+B,EAAIA,EACjDC,EAAiBnpB,EAAMsI,SACvBA,OAA8B,IAAnB6gB,EAA4B,EAAIA,EAE3C12K,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKgJ,kBAAkB,CAC1BxF,SAAUA,EACVF,YAAaA,GAGnB,GAGC,CACD17J,IAAK,sBACLgC,MAAO,WACL,IAAIoiB,EAAQ3iB,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,EAE5EsE,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKgJ,kBAAkB,CAC1BxF,SAAUx3I,GAGhB,GAGC,CACDpkB,IAAK,mBACLgC,MAAO,WACL,IAAIw1D,EAAY/1D,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,EAEhFsE,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKoX,iBAAiB,CACzBh4G,UAAWA,GAGjB,GAGC,CACDx3D,IAAK,cACLgC,MAAO,WACL,IAAIoiB,EAAQ3iB,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,EAE5EsE,KAAKqyJ,MACPryJ,KAAKqyJ,KAAKoQ,aAAa,CACrB9M,YAAa,EACbE,SAAUx3I,GAGhB,GACC,CACDpkB,IAAK,oBACLgC,MAAO,WACL,GAAI+D,KAAKqyJ,KAAM,CACb,IAAIskB,GAAQ,KAAAt1H,aAAYrhD,KAAKqyJ,MAEzBl+F,EAAcwiH,EAAMxiH,aAAe,EAEvC,OADkBwiH,EAAMl5G,aAAe,GAClBtJ,CACvB,CAEA,OAAO,CACT,GACC,CACDl6D,IAAK,oBACLgC,MAAO,WACL+D,KAAK42K,oBACP,GACC,CACD38K,IAAK,qBACLgC,MAAO,WACL+D,KAAK42K,oBACP,GACC,CACD38K,IAAK,SACLgC,MAAO,WACL,IAAIwG,EAASzC,KAETmzC,EAAcnzC,KAAK3D,MACnBwB,EAAWs1C,EAAYt1C,SACvB4R,EAAY0jC,EAAY1jC,UACxBonK,EAAgB1jI,EAAY0jI,cAC5BC,EAAgB3jI,EAAY2jI,cAC5Bte,EAAYrlH,EAAYqlH,UACxBue,EAAe5jI,EAAY4jI,aAC3BC,EAAoB7jI,EAAY6jI,kBAChCz7H,EAASpI,EAAYoI,OACrBxiD,EAAKo6C,EAAYp6C,GACjB2wK,EAAiBv2H,EAAYu2H,eAC7BuN,EAAe9jI,EAAY8jI,aAC3BC,EAAW/jI,EAAY+jI,SACvBxqB,EAAgBv5G,EAAYu5G,cAC5Br1I,EAAQ87B,EAAY97B,MACpB/E,EAAQ6gC,EAAY7gC,MACpBgkK,EAAiBt2K,KAAKmyC,MAAMmkI,eAC5Ba,EAAsBN,EAAgBt7H,EAASA,EAASw7H,EACxDK,EAAmC,mBAAjBH,EAA8BA,EAAa,CAC/D54J,OAAQ,IACL44J,EACDI,EAAqC,mBAAbH,EAA0BA,EAAS,CAC7D74J,OAAQ,IACL64J,EAaL,OAXAl3K,KAAKs3K,oBAAsB,GAC3B,WAAeh+J,QAAQzb,GAAUhC,SAAQ,SAAUohC,EAAQ5e,GACzD,IAAIk5J,EAAa90K,EAAO+0K,uBAAuBv6I,EAAQA,EAAO5gC,MAAMgb,OAEpE5U,EAAO60K,oBAAoBj5J,GAAS,GAAc,CAChD2pC,SAAU,UACTuvH,EACL,IAIO,gBAAoB,MAAO,CAChC,aAAcv3K,KAAK3D,MAAM,cACzB,kBAAmB2D,KAAK3D,MAAM,mBAC9B,gBAAiB,WAAeid,QAAQzb,GAAUlC,OAClD,gBAAiBqE,KAAK3D,MAAM83J,SAC5B1kJ,UAAW,EAAK,0BAA2BA,GAC3C1W,GAAIA,EACJyhB,KAAM,OACNnD,MAAOA,IACLw/J,GAAiBG,EAAkB,CACrCvnK,UAAW,EAAK,qCAAsC2nK,GACtDpoD,QAAShvH,KAAKy3K,oBACdpgK,MAAO,GAAc,CACnBkkC,OAAQw7H,EACR/uH,SAAU,SACVqtB,aAAcihG,EACdhkK,MAAOA,GACN+kK,KACD,gBAAoB,EAAMpnI,EAAS,CAAC,EAAGjwC,KAAK3D,MAAO,CACrD,gBAAiB,KACjB47J,oBAAoB,EACpBxoJ,UAAW,EAAK,gCAAiCqnK,GACjDld,aAAc55J,KAAKw2K,WACnBxiB,YAAa1hJ,EACby8G,YAAa,EACbxzE,OAAQ47H,EACRp+K,QAAIgK,EACJs1J,kBAAmBqR,EACnBjQ,SAAUz5J,KAAK05J,UACfhH,kBAAmB1yJ,KAAK09J,mBACxBzgK,IAAK+C,KAAKihK,QACVzmJ,KAAM,WACN87J,eAAgBA,EAChBvhB,YAAarI,EACbr1I,MAAO,GAAc,CAAC,EAAGmhJ,EAAW,CAClCY,UAAW,cAGjB,GACC,CACDn/J,IAAK,gBACLgC,MAAO,SAAuB0zJ,GAC5B,IAAI1yH,EAAS0yH,EAAM1yH,OACf04H,EAAchG,EAAMgG,YACpBnD,EAAc7C,EAAM6C,YACpBjpE,EAASomE,EAAMpmE,OACfssF,EAAUlmB,EAAMkmB,QAChBhgB,EAAWlG,EAAMkG,SACjB6hB,EAAgB13K,KAAK3D,MAAMq7K,cAC3BC,EAAgB16I,EAAO5gC,MACvB65K,EAAiByB,EAAczB,eAC/Btc,EAAe+d,EAAc/d,aAC7BnqJ,EAAYkoK,EAAcloK,UAC1BmoK,EAAaD,EAAcC,WAC3BxC,EAAUuC,EAAcvC,QACxBr8K,EAAK4+K,EAAc5+K,GAMnBgkK,EAAenD,EAAa,CAC9Buc,SANaD,EAAe,CAC5B0B,WAAYA,EACZxC,QAASA,EACTS,QAASA,IAIT+B,WAAYA,EACZjiB,YAAaA,EACbyf,QAASA,EACT5iB,YAAaA,EACbjpE,OAAQA,EACRssF,QAASA,EACThgB,SAAUA,IAWRx+I,EAAQrX,KAAKs3K,oBAAoB3hB,GACjCp+I,EAAgC,iBAAjBwlJ,EAA4BA,EAAe,KAI9D,OAAO,gBAAoB,MAAO,CAChC,gBAAiBpH,EAAc,EAC/B,mBAAoB58J,EACpB0W,UAAW,EAAK,qCAAsCA,GACtDxV,IAAK,MAAQ47J,EAAR,OAAiCF,EACtCzhH,QAlBY,SAAiB5wC,GAC7Bo0K,GAAiBA,EAAc,CAC7BE,WAAYA,EACZxC,QAASA,EACT9xK,MAAOA,GAEX,EAaEkX,KAAM,WACNnD,MAAOA,EACPE,MAAOA,GACNwlJ,EACL,GACC,CACD9iK,IAAK,gBACLgC,MAAO,SAAuB6zJ,GAC5B,IAgCI+nB,EAAeC,EAAiBC,EAAgBC,EAAgBC,EAhChEh7I,EAAS6yH,EAAM7yH,OACf5e,EAAQyxI,EAAMzxI,MACd6rC,EAAelqD,KAAK3D,MACpB67K,EAAkBhuH,EAAaguH,gBAC/BC,EAAcjuH,EAAaiuH,YAC3BC,EAAgBluH,EAAakuH,cAC7B5/F,EAAOtuB,EAAasuB,KACpB68F,EAASnrH,EAAamrH,OACtBH,EAAgBhrH,EAAagrH,cAC7BmD,EAAiBp7I,EAAO5gC,MACxBu7K,EAAaS,EAAeT,WAC5BxC,EAAUiD,EAAejD,QACzBgB,EAAuBiC,EAAejC,qBACtCkC,EAAcD,EAAeC,YAC7BjC,EAAiBgC,EAAehC,eAChCt9K,EAAKs/K,EAAet/K,GACpBgX,EAAQsoK,EAAetoK,MACvBwoK,GAAeD,GAAe9/F,EAC9BmxF,EAAa,EAAK,wCAAyCuO,EAAiBj7I,EAAO5gC,MAAM67K,gBAAiB,CAC5GM,8CAA+CD,IAG7ClhK,EAAQrX,KAAKw3K,uBAAuBv6I,EAAQ,GAAc,CAAC,EAAGk7I,EAAa,CAAC,EAAGl7I,EAAO5gC,MAAM87K,cAE5FM,EAAiBpC,EAAe,CAClCuB,WAAYA,EACZxC,QAASA,EACTkD,YAAaA,EACbvoK,MAAOA,EACPslK,OAAQA,EACRH,cAAeA,IAIjB,GAAIqD,GAAeH,EAAe,CAEhC,IAGIM,EAHkBrD,IAAWD,EAGQgB,EAAuBlB,IAAkB,GAAcF,KAAO,GAAcD,IAAM,GAAcC,KAErI9gI,EAAU,SAAiB5wC,GAC7Bi1K,GAAe//F,EAAK,CAClB49F,qBAAsBA,EACtB9yK,MAAOA,EACP+xK,OAAQD,EACRF,cAAewD,IAEjBN,GAAiBA,EAAc,CAC7BR,WAAYA,EACZxC,QAASA,EACT9xK,MAAOA,GAEX,EAQA20K,EAAkBh7I,EAAO5gC,MAAM,eAAiB0T,GAASqlK,EACzD4C,EAAiB,OACjBD,EAAiB,EACjBF,EAAgB3jI,EAChB4jI,EAVgB,SAAmBx0K,GACf,UAAdA,EAAMrJ,KAAiC,MAAdqJ,EAAMrJ,KACjCi6C,EAAQ5wC,EAEZ,CAOF,CASA,OAPI+xK,IAAWD,IACb4C,EAAiB9C,IAAkB,GAAcH,IAAM,YAAc,cAMhE,gBAAoB,MAAO,CAChC,aAAckD,EACd,YAAaD,EACbvoK,UAAWk6J,EACX5wK,GAAIA,EACJkB,IAAK,aAAeokB,EACpB61B,QAAS2jI,EACTtjI,UAAWujI,EACXt9J,KAAM,eACNnD,MAAOA,EACP47B,SAAU8kI,GACTU,EACL,GACC,CACDx+K,IAAK,aACLgC,MAAO,SAAoB8zJ,GACzB,IAAIjtJ,EAAS9C,KAETqe,EAAQ0xI,EAAM8F,SACdrD,EAAczC,EAAMyC,YACpBv4J,EAAM81J,EAAM91J,IACZsvF,EAASwmE,EAAMxmE,OACflyE,EAAQ04I,EAAM14I,MACdy/I,EAAe92J,KAAK3D,MACpBwB,EAAWi5J,EAAaj5J,SACxB23K,EAAa1e,EAAa0e,WAC1BC,EAAmB3e,EAAa2e,iBAChCG,EAAkB9e,EAAa8e,gBAC/BD,EAAiB7e,EAAa6e,eAC9BD,EAAgB5e,EAAa4e,cAC7BuB,EAAengB,EAAamgB,aAC5B0B,EAAY7hB,EAAa6hB,UACzBxP,EAAcrS,EAAaqS,YAC3B+N,EAAWpgB,EAAaogB,SACxBZ,EAAiBt2K,KAAKmyC,MAAMmkI,eAC5Bc,EAAmC,mBAAjBH,EAA8BA,EAAa,CAC/D54J,MAAOA,IACJ44J,EACDI,EAAqC,mBAAbH,EAA0BA,EAAS,CAC7D74J,MAAOA,IACJ64J,EACDrB,EAAU8C,EAAU,CACtBt6J,MAAOA,IAEL2wG,EAAU,WAAe11G,QAAQzb,GAAU0U,KAAI,SAAU0qB,EAAQ04H,GACnE,OAAO7yJ,EAAOyzK,cAAc,CAC1Bt5I,OAAQA,EACR04H,YAAaA,EACbnD,YAAaA,EACbjpE,OAAQA,EACRssF,QAASA,EACThgB,SAAUx3I,EACVi4J,eAAgBA,GAEpB,IACI7mK,EAAY,EAAK,+BAAgC2nK,GAEjDwB,EAAiB,GAAc,CAAC,EAAGvhK,EAAO,CAC5CkkC,OAAQv7C,KAAK64K,cAAcx6J,GAC3B2pC,SAAU,SACVqtB,aAAcihG,GACbe,GAEH,OAAOlO,EAAY,CACjB15J,UAAWA,EACXu/G,QAASA,EACT3wG,MAAOA,EACPm0I,YAAaA,EACbv4J,IAAKA,EACLu7K,WAAYA,EACZC,iBAAkBA,EAClBG,gBAAiBA,EACjBD,eAAgBA,EAChBD,cAAeA,EACfG,QAASA,EACTx+J,MAAOuhK,GAEX,GAKC,CACD3+K,IAAK,yBACLgC,MAAO,SAAgCghC,GACrC,IAAI67I,EAAcp9K,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFq9K,EAAY,GAAGz2K,OAAO26B,EAAO5gC,MAAM6yH,SAAU,KAAK5sH,OAAO26B,EAAO5gC,MAAM+yH,WAAY,KAAK9sH,OAAO26B,EAAO5gC,MAAMiW,MAAO,MAElH+E,EAAQ,GAAc,CAAC,EAAGyhK,EAAa,CACzC7pD,KAAM8pD,EACNC,OAAQD,EACRE,WAAYF,IAWd,OARI97I,EAAO5gC,MAAMkhE,WACflmD,EAAMkmD,SAAWtgC,EAAO5gC,MAAMkhE,UAG5BtgC,EAAO5gC,MAAMmb,WACfH,EAAMG,SAAWylB,EAAO5gC,MAAMmb,UAGzBH,CACT,GACC,CACDpd,IAAK,oBACLgC,MAAO,WACL,IAAI+H,EAAShE,KAETq3J,EAAer3J,KAAK3D,MACpBwB,EAAWw5J,EAAax5J,SAG5B,OAFoBw5J,EAAawf,cACL,GAAK,WAAev9J,QAAQzb,IAC3C0U,KAAI,SAAU0qB,EAAQ5e,GACjC,OAAOra,EAAOk1K,cAAc,CAC1Bj8I,OAAQA,EACR5e,MAAOA,GAEX,GACF,GACC,CACDpkB,IAAK,gBACLgC,MAAO,SAAuB45J,GAC5B,IAAIzB,EAAYp0J,KAAK3D,MAAM+3J,UAC3B,MAA4B,mBAAdA,EAA2BA,EAAU,CACjD/1I,MAAOw3I,IACJzB,CACP,GACC,CACDn6J,IAAK,YACLgC,MAAO,SAAmB+zJ,GACxB,IAAI37F,EAAe27F,EAAM37F,aACrB9B,EAAey9F,EAAMz9F,aACrBd,EAAYu+F,EAAMv+F,WAEtBgoG,EADez5J,KAAK3D,MAAMo9J,UACjB,CACPplG,aAAcA,EACd9B,aAAcA,EACdd,UAAWA,GAEf,GACC,CACDx3D,IAAK,qBACLgC,MAAO,SAA4B0/J,GACjC,IAAIvI,EAAwBuI,EAAMvI,sBAC9BE,EAAuBqI,EAAMrI,qBAC7BE,EAAgBmI,EAAMnI,cACtBE,EAAeiI,EAAMjI,cAEzBiU,EADqB3nK,KAAK3D,MAAMsrK,gBACjB,CACb9M,mBAAoBzH,EACpB0H,kBAAmBxH,EACnBxnJ,WAAY0nJ,EACZmH,UAAWjH,GAEf,GACC,CACDz5J,IAAK,UACLgC,MAAO,SAAiBgB,GACtB+C,KAAKqyJ,KAAOp1J,CACd,GACC,CACDhD,IAAK,qBACLgC,MAAO,WACL,IAAIq6K,EAAiBt2K,KAAKm5K,oBAC1Bn5K,KAAKuyC,SAAS,CACZ+jI,eAAgBA,GAEpB,KAGKr0G,CACT,CA3hBA,CA2hBE,iBAEF,EAAgB,GAAO,eAAgB,CACrC40G,eAAe,EACf5a,iBAAkB,GAClB8a,aAAc,EACdoB,YAAa,CAAC,EACdzO,eAAgB,WACd,OAAO,IACT,EACA/B,eAAgB,WACd,OAAO,IACT,EACAlO,SAAU,WACR,OAAO,IACT,EACAO,sBAAuB,EACvBC,iBAAkB,GAClBkP,YAAaoM,GACbyB,kBAAmBnC,GACnBqC,SAAU,CAAC,EACXlmB,kBAAmB,OACnBtE,eAAgB,EAChBr1I,MAAO,CAAC,IAIV,GAAMrZ,UAoNF,CAAC,EGtyBL,IAAIo7K,GAAmB,GACnBC,GAA4B,KAC5BC,GAAgC,KAEpC,SAASC,KACHD,KACFA,GAAgC,KAE5Bv3J,SAASnU,MAAqC,MAA7ByrK,KACnBt3J,SAASnU,KAAKyJ,MAAMsiJ,cAAgB0f,IAGtCA,GAA4B,KAEhC,CAEA,SAASG,KACPD,KACAH,GAAiBv9K,SAAQ,SAAU+D,GACjC,OAAOA,EAAS65K,oBAClB,GACF,CAcA,SAASC,GAAep2K,GAClBA,EAAMiiD,gBAAkB5sD,QAAuC,MAA7B0gL,IAAqCt3J,SAASnU,OAClFyrK,GAA4Bt3J,SAASnU,KAAKyJ,MAAMsiJ,cAChD53I,SAASnU,KAAKyJ,MAAMsiJ,cAAgB,QAfxC,WACM2f,IACFrnB,EAAuBqnB,IAGzB,IAAIK,EAAiB,EACrBP,GAAiBv9K,SAAQ,SAAU+D,GACjC+5K,EAAiBv0K,KAAK8F,IAAIyuK,EAAgB/5K,EAASvD,MAAM8+J,2BAC3D,IACAme,GAAgCnnB,EAAwBqnB,GAAuCG,EACjG,CAQEC,GACAR,GAAiBv9K,SAAQ,SAAU+D,GAC7BA,EAASvD,MAAMw9K,gBAAkBv2K,EAAMiiD,eACzC3lD,EAASk6K,2BAEb,GACF,CAEO,SAASC,GAAuBj/F,EAAW14D,GAC3Cg3J,GAAiBnuJ,MAAK,SAAUrrB,GACnC,OAAOA,EAASvD,MAAMw9K,gBAAkBz3J,CAC1C,KACEA,EAAQ9hB,iBAAiB,SAAUo5K,IAGrCN,GAAiB/9K,KAAKy/E,EACxB,CACO,SAASk/F,GAAyBl/F,EAAW14D,IAClDg3J,GAAmBA,GAAiBl+K,QAAO,SAAU0E,GACnD,OAAOA,IAAak7E,CACtB,KAEsBn/E,SACpBymB,EAAQne,oBAAoB,SAAUy1K,IAElCJ,KACFrnB,EAAuBqnB,IACvBC,MAGN,CCnEA,ICGI,GAAQ,GDHRU,GAAW,SAAkB73J,GAC/B,OAAOA,IAAYzpB,MACrB,EAEIuhL,GAAiB,SAAwB93J,GAC3C,OAAOA,EAAQ+vC,uBACjB,EAEO,SAASgoH,GAAcN,EAAex9K,GAC3C,GAAKw9K,EAKE,IAAII,GAASJ,GAAgB,CAClC,IAAI7b,EAAUrlK,OACVy7D,EAAc4pG,EAAQ5pG,YACtBF,EAAa8pG,EAAQ9pG,WACzB,MAAO,CACL3Y,OAA+B,iBAAhB6Y,EAA2BA,EAAc,EACxD9hD,MAA6B,iBAAf4hD,EAA0BA,EAAa,EAEzD,CACE,OAAOgmH,GAAeL,EACxB,CAdE,MAAO,CACLt+H,OAAQl/C,EAAM+9K,aACd9nK,MAAOjW,EAAMg+K,YAanB,CAmCO,SAASC,GAAgBl4J,GAC9B,OAAI63J,GAAS73J,IAAYL,SAASuyC,gBACzB,CACL17C,IAAK,YAAajgB,OAASA,OAAO4hL,QAAUx4J,SAASuyC,gBAAgB7C,UACrE/4C,KAAM,YAAa/f,OAASA,OAAO6hL,QAAUz4J,SAASuyC,gBAAgB9C,YAGjE,CACL54C,IAAKwJ,EAAQqvC,UACb/4C,KAAM0J,EAAQovC,WAGpB,CCnEA,SAAS,GAAQ32D,EAAQC,GAAkB,IAAIC,EAAOjB,OAAOiB,KAAKF,GAAS,GAAIf,OAAOkB,sBAAuB,CAAE,IAAIC,EAAUnB,OAAOkB,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOrB,OAAOE,yBAAyBa,EAAQM,GAAKC,UAAY,KAAIL,EAAKM,KAAKC,MAAMP,EAAME,EAAU,CAAE,OAAOF,CAAM,CAc7U,IAEH0/K,GAAY,WACd,MAAyB,oBAAX9hL,OAAyBA,YAASoK,CAClD,EAEI,IAAkB,GAAQ,GAE9B,SAAUuvJ,GAGR,SAASooB,IACP,IAAIzd,EAEA76J,EAEJ,EAAgBpC,KAAM06K,GAEtB,IAAK,IAAItuG,EAAO1wE,UAAUC,OAAQ6X,EAAO,IAAItO,MAAMknE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E74D,EAAK64D,GAAQ3wE,UAAU2wE,GAuGzB,OAlGA,EAAgB0/E,EAFhB3pJ,EAAQ6tE,EAA2BjwE,MAAOi9J,EAAmBjR,EAAgB0uB,IAAiBvgL,KAAKmB,MAAM2hK,EAAkB,CAACj9J,MAAMsC,OAAOkR,MAE1F,UAAWinK,MAE1D,EAAgB1uB,EAAuB3pJ,GAAQ,cAAc,GAE7D,EAAgB2pJ,EAAuB3pJ,GAAQ,mBAAoB,GAEnE,EAAgB2pJ,EAAuB3pJ,GAAQ,oBAAqB,GAEpE,EAAgB2pJ,EAAuB3pJ,GAAQ,4BAAwB,GAEvE,EAAgB2pJ,EAAuB3pJ,GAAQ,cAAU,GAEzD,EAAgB2pJ,EAAuB3pJ,GAAQ,QAhDnD,SAAuB5G,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAAOA,EAAI,EAAK,GAAQG,GAAQ,GAAMC,SAAQ,SAAU5B,GAAO,EAAgBuB,EAAQvB,EAAK2B,EAAO3B,GAAO,IAAeH,OAAOiC,0BAA6BjC,OAAOkC,iBAAiBR,EAAQ1B,OAAOiC,0BAA0BH,IAAmB,GAAQA,GAAQC,SAAQ,SAAU5B,GAAOH,OAAOC,eAAeyB,EAAQvB,EAAKH,OAAOE,yBAAyB4B,EAAQ3B,GAAO,GAAM,CAAE,OAAOuB,CAAQ,CAgDzc,CAAc,CAAC,EAAG2+K,GAAc/3K,EAAM/F,MAAMw9K,cAAez3K,EAAM/F,OAAQ,CAC/Hm2J,aAAa,EACbhhG,WAAY,EACZC,UAAW,KAGb,EAAgBs6F,EAAuB3pJ,GAAQ,kBAAkB,SAAUggB,IACrEA,GAAaA,aAAmBmzB,SAClC74C,QAAQkvC,KAAK,qEAGfxpC,EAAMq/J,OAASr/I,EAEfhgB,EAAM2tD,gBACR,IAEA,EAAgBg8F,EAAuB3pJ,GAAQ,kBAAkB,SAAUM,GACzE,IAAI+uD,EAAY/uD,EAAK+uD,UAErB,GAAIrvD,EAAM+vC,MAAMsf,YAAcA,EAA9B,CAIA,IAAIooH,EAAgBz3K,EAAM/F,MAAMw9K,cAE5BA,IACoC,mBAA3BA,EAAcj3F,SACvBi3F,EAAcj3F,SAAS,EAAGnxB,EAAYrvD,EAAMu4K,kBAE5Cd,EAAcpoH,UAAYA,EAAYrvD,EAAMu4K,iBARhD,CAWF,IAEA,EAAgB5uB,EAAuB3pJ,GAAQ,2BAA2B,SAAUggB,GAC9EA,IAAYzpB,OACdA,OAAO2H,iBAAiB,SAAU8B,EAAM0+J,WAAW,GAEnD1+J,EAAMy+J,qBAAqBvB,kBAAkBl9I,EAAShgB,EAAM0+J,UAEhE,IAEA,EAAgB/U,EAAuB3pJ,GAAQ,6BAA6B,SAAUggB,GAChFA,IAAYzpB,OACdA,OAAOsL,oBAAoB,SAAU7B,EAAM0+J,WAAW,GAC7C1+I,GACThgB,EAAMy+J,qBAAqBb,qBAAqB59I,EAAShgB,EAAM0+J,UAEnE,IAEA,EAAgB/U,EAAuB3pJ,GAAQ,aAAa,WAC1DA,EAAM2tD,gBACR,IAEA,EAAgBg8F,EAAuB3pJ,GAAQ,6BAA6B,WAC1E,GAAKA,EAAMgvE,WAAX,CAIA,IAAIqoF,EAAWr3J,EAAM/F,MAAMo9J,SACvBogB,EAAgBz3K,EAAM/F,MAAMw9K,cAEhC,GAAIA,EAAe,CACjB,IAAI9oB,EAAeupB,GAAgBT,GAC/BroH,EAAapsD,KAAK8F,IAAI,EAAG6lJ,EAAar4I,KAAOtW,EAAMw4K,mBACnDnpH,EAAYrsD,KAAK8F,IAAI,EAAG6lJ,EAAan4I,IAAMxW,EAAMu4K,kBAErDv4K,EAAMmwC,SAAS,CACbigH,aAAa,EACbhhG,WAAYA,EACZC,UAAWA,IAGbgoG,EAAS,CACPjoG,WAAYA,EACZC,UAAWA,GAEf,CApBA,CAqBF,IAEA,EAAgBs6F,EAAuB3pJ,GAAQ,sBAAsB,WACnEA,EAAMmwC,SAAS,CACbigH,aAAa,GAEjB,IAEOpwJ,CACT,CAiGA,OAnNA+uE,EAAUupG,EAAgBpoB,GAoH1B,EAAaooB,EAAgB,CAAC,CAC5BzgL,IAAK,iBACLgC,MAAO,WACL,IAAI49K,EAAgBn+K,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAKsE,KAAK3D,MAAMw9K,cAC/FvZ,EAAWtgK,KAAK3D,MAAMikK,SACtBxI,EAAc93J,KAAKmyC,MACnBoJ,EAASu8G,EAAYv8G,OACrBjpC,EAAQwlJ,EAAYxlJ,MACpBuoK,EAAW76K,KAAKyhK,QAAU,eAAqBzhK,MAEnD,GAAI66K,aAAoBtlI,SAAWskI,EAAe,CAChD,IAAIp1K,ED1HL,SAA2B2d,EAAS0mC,GACzC,GAAImxH,GAASnxH,IAAc/mC,SAASuyC,gBAAiB,CACnD,IAAIwmH,EAAmB/4J,SAASuyC,gBAC5BymH,EAAcb,GAAe93J,GAC7B44J,EAAgBd,GAAeY,GACnC,MAAO,CACLliK,IAAKmiK,EAAYniK,IAAMoiK,EAAcpiK,IACrCF,KAAMqiK,EAAYriK,KAAOsiK,EAActiK,KAE3C,CACE,IAAIq4I,EAAeupB,GAAgBxxH,GAE/BmyH,EAAef,GAAe93J,GAE9B84J,EAAiBhB,GAAepxH,GAEpC,MAAO,CACLlwC,IAAKqiK,EAAariK,IAAMm4I,EAAan4I,IAAMsiK,EAAetiK,IAC1DF,KAAMuiK,EAAaviK,KAAOq4I,EAAar4I,KAAOwiK,EAAexiK,KAGnE,CCqGqByiK,CAAkBN,EAAUhB,GACzC75K,KAAK26K,iBAAmBl2K,EAAOmU,IAC/B5Y,KAAK46K,kBAAoBn2K,EAAOiU,IAClC,CAEA,IAAIoyD,EAAaqvG,GAAcN,EAAe75K,KAAK3D,OAE/Ck/C,IAAWuvB,EAAWvvB,QAAUjpC,IAAUw4D,EAAWx4D,QACvDtS,KAAKuyC,SAAS,CACZgJ,OAAQuvB,EAAWvvB,OACnBjpC,MAAOw4D,EAAWx4D,QAEpBguJ,EAAS,CACP/kH,OAAQuvB,EAAWvvB,OACnBjpC,MAAOw4D,EAAWx4D,QAGxB,GACC,CACDrY,IAAK,oBACLgC,MAAO,WACL,IAAI49K,EAAgB75K,KAAK3D,MAAMw9K,cAC/B75K,KAAK6gK,qBAAuBhD,IAC5B79J,KAAK+vD,eAAe8pH,GAEhBA,IACFE,GAAuB/5K,KAAM65K,GAE7B75K,KAAKo7K,wBAAwBvB,IAG/B75K,KAAKoxE,YAAa,CACpB,GACC,CACDn3E,IAAK,qBACLgC,MAAO,SAA4B67C,EAAWqoB,GAC5C,IAAI05G,EAAgB75K,KAAK3D,MAAMw9K,cAC3BwB,EAAoBvjI,EAAU+hI,cAE9BwB,IAAsBxB,GAAsC,MAArBwB,GAA8C,MAAjBxB,IACtE75K,KAAK+vD,eAAe8pH,GACpBG,GAAyBh6K,KAAMq7K,GAC/BtB,GAAuB/5K,KAAM65K,GAE7B75K,KAAKs7K,0BAA0BD,GAE/Br7K,KAAKo7K,wBAAwBvB,GAEjC,GACC,CACD5/K,IAAK,uBACLgC,MAAO,WACL,IAAI49K,EAAgB75K,KAAK3D,MAAMw9K,cAE3BA,IACFG,GAAyBh6K,KAAM65K,GAE/B75K,KAAKs7K,0BAA0BzB,IAGjC75K,KAAKoxE,YAAa,CACpB,GACC,CACDn3E,IAAK,SACLgC,MAAO,WACL,IAAI4B,EAAWmC,KAAK3D,MAAMwB,SACtBy6J,EAAet4J,KAAKmyC,MACpBqgH,EAAc8F,EAAa9F,YAC3B/gG,EAAY6mG,EAAa7mG,UACzBD,EAAa8mG,EAAa9mG,WAC1BjW,EAAS+8G,EAAa/8G,OACtBjpC,EAAQgmJ,EAAahmJ,MACzB,OAAOzU,EAAS,CACd09K,cAAev7K,KAAKw7K,eACpB3Z,cAAe7hK,KAAK8hK,eACpBvmH,OAAQA,EACRi3G,YAAaA,EACbhhG,WAAYA,EACZC,UAAWA,EACXn/C,MAAOA,GAEX,KAGKooK,CACT,CArNA,CAqNE,iBAAsB,EAAgB,GAAQ,YAAqD,MA6BjG,IAEJ,EAAgB,GAAgB,eAAgB,CAC9Cpa,SAAU,WAAqB,EAC/B7G,SAAU,WAAqB,EAC/B0B,2BA/PgC,IAgQhC0e,cAAeY,KACfL,aAAc,EACdC,YAAa,kCClRF,IAAIzyJ,EAAE,EAAQ,MAAiBthB,EAAE,MAAMgmB,EAAE,MAAMz0B,EAAQowF,SAAS,MAAMpwF,EAAQuwF,WAAW,MAAMvwF,EAAQswF,SAAS,MAAM,IAAIX,EAAE,MAAMriF,EAAE,MAAMoe,EAAE,MAAM1rB,EAAQwwF,SAAS,MAAM,IAAIX,EAAE,MAAMvgE,EAAE,MACpM,GAAG,mBAAoBjuB,QAAQA,OAAOib,IAAI,CAAC,IAAIszE,EAAEvuF,OAAOib,IAAI7N,EAAEmhF,EAAE,iBAAiBn7D,EAAEm7D,EAAE,gBAAgB5vF,EAAQowF,SAASR,EAAE,kBAAkB5vF,EAAQuwF,WAAWX,EAAE,qBAAqB5vF,EAAQswF,SAASV,EAAE,kBAAkBD,EAAEC,EAAE,kBAAkBtiF,EAAEsiF,EAAE,iBAAiBlkE,EAAEkkE,EAAE,qBAAqB5vF,EAAQwwF,SAASZ,EAAE,kBAAkBC,EAAED,EAAE,cAActgE,EAAEsgE,EAAE,aAAa,CAAC,IAAIx0D,EAAE,mBAAoB/5B,QAAQA,OAAOC,SACtR,SAASyzB,EAAEyC,GAAG,IAAI,IAAIzpB,EAAE,yDAAyDypB,EAAE3F,EAAE,EAAEA,EAAEhuB,UAAUC,OAAO+tB,IAAI9jB,GAAG,WAAW4iH,mBAAmB9sH,UAAUguB,IAAI,MAAM,yBAAyB2F,EAAE,WAAWzpB,EAAE,gHAAgH,CACpb,IAAIgiF,EAAE,CAAC0jD,UAAU,WAAW,OAAM,CAAE,EAAEO,mBAAmB,WAAW,EAAED,oBAAoB,WAAW,EAAEJ,gBAAgB,WAAW,GAAGviB,EAAE,CAAC,EAAE,SAAS+hB,EAAE37G,EAAEzpB,EAAE8jB,GAAG1pB,KAAK3D,MAAMgzB,EAAErvB,KAAKm1B,QAAQvvB,EAAE5F,KAAKkkB,KAAK+kG,EAAEjpH,KAAKksI,QAAQxiH,GAAGk+D,CAAC,CACrN,SAAS4hC,IAAI,CAAyB,SAAS4B,EAAE/7F,EAAEzpB,EAAE8jB,GAAG1pB,KAAK3D,MAAMgzB,EAAErvB,KAAKm1B,QAAQvvB,EAAE5F,KAAKkkB,KAAK+kG,EAAEjpH,KAAKksI,QAAQxiH,GAAGk+D,CAAC,CADqGojD,EAAE3xI,UAAUijJ,iBAAiB,CAAC,EAAEtR,EAAE3xI,UAAUk5C,SAAS,SAASljB,EAAEzpB,GAAG,GAAG,iBAAkBypB,GAAG,mBAAoBA,GAAG,MAAMA,EAAE,MAAMlpB,MAAMymB,EAAE,KAAK5sB,KAAKksI,QAAQV,gBAAgBxrI,KAAKqvB,EAAEzpB,EAAE,WAAW,EAAEolI,EAAE3xI,UAAUuhB,YAAY,SAASyU,GAAGrvB,KAAKksI,QAAQL,mBAAmB7rI,KAAKqvB,EAAE,cAAc,EACjem6F,EAAEnwH,UAAU2xI,EAAE3xI,UAAsF,IAAIm2E,EAAE47C,EAAE/xH,UAAU,IAAImwH,EAAEh6C,EAAEp2E,YAAYgyH,EAAExjG,EAAE4nD,EAAEw7D,EAAE3xI,WAAWm2E,EAAEw8D,sBAAqB,EAAG,IAAItI,EAAE,CAAC5xH,QAAQ,MAAMg0H,EAAEhsI,OAAOT,UAAUa,eAAe6rI,EAAE,CAAC9rI,KAAI,EAAGgD,KAAI,EAAGw+K,QAAO,EAAGC,UAAS,GAChS,SAASp3C,EAAEj1G,EAAEzpB,EAAE8jB,GAAG,IAAInI,EAAEkC,EAAE,CAAC,EAAEuD,EAAE,KAAKI,EAAE,KAAK,GAAG,MAAMxhB,EAAE,IAAI2b,UAAK,IAAS3b,EAAE3I,MAAMmqB,EAAExhB,EAAE3I,UAAK,IAAS2I,EAAE3L,MAAM+sB,EAAE,GAAGphB,EAAE3L,KAAK2L,EAAEkgI,EAAE3rI,KAAKyL,EAAE2b,KAAKwkH,EAAE7rI,eAAeqnB,KAAKkC,EAAElC,GAAG3b,EAAE2b,IAAI,IAAI3oB,EAAE8C,UAAUC,OAAO,EAAE,GAAG,IAAI/C,EAAE6qB,EAAE5lB,SAAS6rB,OAAO,GAAG,EAAE9wB,EAAE,CAAC,IAAI,IAAIq7B,EAAE/uB,MAAMtM,GAAG+vB,EAAE,EAAEA,EAAE/vB,EAAE+vB,IAAIsL,EAAEtL,GAAGjtB,UAAUitB,EAAE,GAAGlF,EAAE5lB,SAASo2B,CAAC,CAAC,GAAG5E,GAAGA,EAAEtxB,aAAa,IAAIwjB,KAAK3oB,EAAEy2B,EAAEtxB,kBAAe,IAAS0lB,EAAElC,KAAKkC,EAAElC,GAAG3oB,EAAE2oB,IAAI,MAAM,CAAComE,SAASrhF,EAAEyI,KAAKsgB,EAAEp1B,IAAI+sB,EAAE/pB,IAAImqB,EAAE/qB,MAAMonB,EAAE+oH,OAAO9I,EAAE5xH,QAAQ,CAChV,SAASkO,EAAEqP,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAEs4D,WAAWrhF,CAAC,CAAoG,IAAIyZ,EAAE,OAAO,SAASkmH,EAAE52G,EAAEzpB,GAAG,MAAM,iBAAkBypB,GAAG,OAAOA,GAAG,MAAMA,EAAEp1B,IAA7K,SAAgBo1B,GAAG,IAAIzpB,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAIypB,EAAE72B,QAAQ,SAAQ,SAAS62B,GAAG,OAAOzpB,EAAEypB,EAAE,GAAE,CAA+EssJ,CAAO,GAAGtsJ,EAAEp1B,KAAK2L,EAAEhC,SAAS,GAAG,CAC/W,SAASghF,EAAEv1D,EAAEzpB,EAAE8jB,EAAEnI,EAAEkC,GAAG,IAAIuD,SAASqI,EAAK,cAAcrI,GAAG,YAAYA,IAAEqI,EAAE,MAAK,IAAIjI,GAAE,EAAG,GAAG,OAAOiI,EAAEjI,GAAE,OAAQ,OAAOJ,GAAG,IAAK,SAAS,IAAK,SAASI,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOiI,EAAEs4D,UAAU,KAAKrhF,EAAE,KAAKgmB,EAAElF,GAAE,GAAI,GAAGA,EAAE,OAAW3D,EAAEA,EAAN2D,EAAEiI,GAASA,EAAE,KAAK9N,EAAE,IAAI0kH,EAAE7+G,EAAE,GAAG7F,EAAErc,MAAMwgC,QAAQjiB,IAAIiG,EAAE,GAAG,MAAM2F,IAAI3F,EAAE2F,EAAE72B,QAAQunB,EAAE,OAAO,KAAK6kE,EAAEnhE,EAAE7d,EAAE8jB,EAAE,IAAG,SAAS2F,GAAG,OAAOA,CAAC,KAAI,MAAM5L,IAAIzD,EAAEyD,KAAKA,EAD/W,SAAW4L,EAAEzpB,GAAG,MAAM,CAAC+hF,SAASrhF,EAAEyI,KAAKsgB,EAAEtgB,KAAK9U,IAAI2L,EAAE3I,IAAIoyB,EAAEpyB,IAAIZ,MAAMgzB,EAAEhzB,MAAMmwI,OAAOn9G,EAAEm9G,OAAO,CACqRjI,CAAE9gH,EAAEiG,IAAIjG,EAAExpB,KAAKmtB,GAAGA,EAAEntB,MAAMwpB,EAAExpB,IAAI,IAAI,GAAGwpB,EAAExpB,KAAKzB,QAAQunB,EAAE,OAAO,KAAKsP,IAAIzpB,EAAEvK,KAAKooB,IAAI,EAAyB,GAAvB2D,EAAE,EAAE7F,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOrc,MAAMwgC,QAAQrW,GAAG,IAAI,IAAIz2B,EACzf,EAAEA,EAAEy2B,EAAE1zB,OAAO/C,IAAI,CAAQ,IAAIq7B,EAAE1S,EAAE0kH,EAAfj/G,EAAEqI,EAAEz2B,GAAeA,GAAGwuB,GAAGw9D,EAAE59D,EAAEphB,EAAE8jB,EAAEuK,EAAExQ,EAAE,MAAM,GAAGwQ,EANhE,SAAW5E,GAAG,OAAG,OAAOA,GAAG,iBAAkBA,EAAS,KAAsC,mBAAjCA,EAAE4D,GAAG5D,EAAE4D,IAAI5D,EAAE,eAA0CA,EAAE,IAAI,CAMtD+0B,CAAE/0B,GAAG,mBAAoB4E,EAAE,IAAI5E,EAAE4E,EAAE95B,KAAKk1B,GAAGz2B,EAAE,IAAIouB,EAAEqI,EAAEtI,QAAQ4f,MAA6Bvf,GAAGw9D,EAA1B59D,EAAEA,EAAE/qB,MAA0B2J,EAAE8jB,EAAtBuK,EAAE1S,EAAE0kH,EAAEj/G,EAAEpuB,KAAkB6qB,QAAQ,GAAG,WAAWuD,EAAE,MAAMphB,EAAE,GAAGypB,EAAElpB,MAAMymB,EAAE,GAAG,oBAAoBhnB,EAAE,qBAAqB9L,OAAOiB,KAAKs0B,GAAG1qB,KAAK,MAAM,IAAIiB,IAAI,OAAOwhB,CAAC,CAAC,SAAS2mH,EAAE1+G,EAAEzpB,EAAE8jB,GAAG,GAAG,MAAM2F,EAAE,OAAOA,EAAE,IAAI9N,EAAE,GAAGkC,EAAE,EAAmD,OAAjDmhE,EAAEv1D,EAAE9N,EAAE,GAAG,IAAG,SAAS8N,GAAG,OAAOzpB,EAAEzL,KAAKuvB,EAAE2F,EAAE5L,IAAI,IAAUlC,CAAC,CAC3Z,SAASijH,EAAEn1G,GAAG,IAAI,IAAIA,EAAEusJ,QAAQ,CAAC,IAAIh2K,EAAEypB,EAAEwsJ,QAAQj2K,EAAEA,IAAIypB,EAAEusJ,QAAQ,EAAEvsJ,EAAEwsJ,QAAQj2K,EAAEA,EAAEkI,MAAK,SAASlI,GAAG,IAAIypB,EAAEusJ,UAAUh2K,EAAEA,EAAEgJ,QAAQygB,EAAEusJ,QAAQ,EAAEvsJ,EAAEwsJ,QAAQj2K,EAAE,IAAE,SAASA,GAAG,IAAIypB,EAAEusJ,UAAUvsJ,EAAEusJ,QAAQ,EAAEvsJ,EAAEwsJ,QAAQj2K,EAAE,GAAE,CAAC,GAAG,IAAIypB,EAAEusJ,QAAQ,OAAOvsJ,EAAEwsJ,QAAQ,MAAMxsJ,EAAEwsJ,OAAQ,CAAC,IAAI5qJ,EAAE,CAACnf,QAAQ,MAAM,SAASgO,IAAI,IAAIuP,EAAE4B,EAAEnf,QAAQ,GAAG,OAAOud,EAAE,MAAMlpB,MAAMymB,EAAE,MAAM,OAAOyC,CAAC,CAAC,IAAIggH,EAAE,CAACH,uBAAuBj+G,EAAE83G,wBAAwB,CAAC/+E,WAAW,GAAGipF,kBAAkBvP,EAAEo4C,qBAAqB,CAAChqK,SAAQ,GAAIo+B,OAAOtoB,GACje/vB,EAAQk7C,SAAS,CAACxgC,IAAIw7H,EAAElyI,QAAQ,SAASwzB,EAAEzpB,EAAE8jB,GAAGqkH,EAAE1+G,GAAE,WAAWzpB,EAAEtK,MAAM0E,KAAKtE,UAAU,GAAEguB,EAAE,EAAEm3E,MAAM,SAASxxE,GAAG,IAAIzpB,EAAE,EAAuB,OAArBmoI,EAAE1+G,GAAE,WAAWzpB,GAAG,IAAUA,CAAC,EAAE0T,QAAQ,SAAS+V,GAAG,OAAO0+G,EAAE1+G,GAAE,SAASA,GAAG,OAAOA,CAAC,KAAI,EAAE,EAAE8gC,KAAK,SAAS9gC,GAAG,IAAIrP,EAAEqP,GAAG,MAAMlpB,MAAMymB,EAAE,MAAM,OAAOyC,CAAC,GAAGx3B,EAAQ8oB,UAAUqqH,EAAEnzI,EAAQkkL,cAAc3wD,EAAEvzH,EAAQqyH,mDAAmDmlB,EAChXx3I,EAAQq5C,aAAa,SAAS7hB,EAAEzpB,EAAE8jB,GAAG,GAAG,MAAO2F,EAAc,MAAMlpB,MAAMymB,EAAE,IAAIyC,IAAI,IAAI9N,EAAEqG,EAAE,CAAC,EAAEyH,EAAEhzB,OAAOonB,EAAE4L,EAAEp1B,IAAI+sB,EAAEqI,EAAEpyB,IAAImqB,EAAEiI,EAAEm9G,OAAO,GAAG,MAAM5mI,EAAE,CAAoE,QAAnE,IAASA,EAAE3I,MAAM+pB,EAAEphB,EAAE3I,IAAImqB,EAAEs8G,EAAE5xH,cAAS,IAASlM,EAAE3L,MAAMwpB,EAAE,GAAG7d,EAAE3L,KAAQo1B,EAAEtgB,MAAMsgB,EAAEtgB,KAAKhR,aAAa,IAAInF,EAAEy2B,EAAEtgB,KAAKhR,aAAa,IAAIk2B,KAAKruB,EAAEkgI,EAAE3rI,KAAKyL,EAAEquB,KAAK8xG,EAAE7rI,eAAe+5B,KAAK1S,EAAE0S,QAAG,IAASruB,EAAEquB,SAAI,IAASr7B,EAAEA,EAAEq7B,GAAGruB,EAAEquB,GAAG,CAAC,IAAIA,EAAEv4B,UAAUC,OAAO,EAAE,GAAG,IAAIs4B,EAAE1S,EAAE1jB,SAAS6rB,OAAO,GAAG,EAAEuK,EAAE,CAACr7B,EAAEsM,MAAM+uB,GAAG,IAAI,IAAItL,EAAE,EAAEA,EAAEsL,EAAEtL,IAAI/vB,EAAE+vB,GAAGjtB,UAAUitB,EAAE,GAAGpH,EAAE1jB,SAASjF,CAAC,CAAC,MAAM,CAAC+uF,SAASrhF,EAAEyI,KAAKsgB,EAAEtgB,KACxf9U,IAAIwpB,EAAExmB,IAAI+pB,EAAE3qB,MAAMklB,EAAEirH,OAAOplH,EAAE,EAAEvvB,EAAQmH,cAAc,SAASqwB,EAAEzpB,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMypB,EAAE,CAACs4D,SAASxiF,EAAEo4I,sBAAsB33I,EAAE2jI,cAAcl6G,EAAE2sJ,eAAe3sJ,EAAE4sJ,aAAa,EAAEr+K,SAAS,KAAKqkD,SAAS,OAAQrkD,SAAS,CAAC+pF,SAASH,EAAE9sF,SAAS20B,GAAUA,EAAE4yB,SAAS5yB,CAAC,EAAEx3B,EAAQ8F,cAAc2mI,EAAEzsI,EAAQqkL,cAAc,SAAS7sJ,GAAG,IAAIzpB,EAAE0+H,EAAEnkI,KAAK,KAAKkvB,GAAY,OAATzpB,EAAEmJ,KAAKsgB,EAASzpB,CAAC,EAAE/N,EAAQy/C,UAAU,WAAW,MAAM,CAACxlC,QAAQ,KAAK,EAAEja,EAAQmF,WAAW,SAASqyB,GAAG,MAAM,CAACs4D,SAASpkE,EAAEvU,OAAOqgB,EAAE,EAAEx3B,EAAQm7C,eAAehzB,EAC3enoB,EAAQskL,KAAK,SAAS9sJ,GAAG,MAAM,CAACs4D,SAASxgE,EAAE6kG,SAAS,CAAC4vD,SAAS,EAAEC,QAAQxsJ,GAAG48F,MAAMuY,EAAE,EAAE3sI,EAAQ8sG,KAAK,SAASt1E,EAAEzpB,GAAG,MAAM,CAAC+hF,SAASD,EAAE34E,KAAKsgB,EAAEJ,aAAQ,IAASrpB,EAAE,KAAKA,EAAE,EAAE/N,EAAQmqG,YAAY,SAAS3yE,EAAEzpB,GAAG,OAAOka,IAAIkiF,YAAY3yE,EAAEzpB,EAAE,EAAE/N,EAAQsF,WAAW,SAASkyB,EAAEzpB,GAAG,OAAOka,IAAI3iB,WAAWkyB,EAAEzpB,EAAE,EAAE/N,EAAQ46I,cAAc,WAAW,EAAE56I,EAAQ2F,UAAU,SAAS6xB,EAAEzpB,GAAG,OAAOka,IAAItiB,UAAU6xB,EAAEzpB,EAAE,EAAE/N,EAAQ6F,oBAAoB,SAAS2xB,EAAEzpB,EAAE8jB,GAAG,OAAO5J,IAAIpiB,oBAAoB2xB,EAAEzpB,EAAE8jB,EAAE,EAChd7xB,EAAQ06I,gBAAgB,SAASljH,EAAEzpB,GAAG,OAAOka,IAAIyyH,gBAAgBljH,EAAEzpB,EAAE,EAAE/N,EAAQ0F,QAAQ,SAAS8xB,EAAEzpB,GAAG,OAAOka,IAAIviB,QAAQ8xB,EAAEzpB,EAAE,EAAE/N,EAAQ26I,WAAW,SAASnjH,EAAEzpB,EAAE8jB,GAAG,OAAO5J,IAAI0yH,WAAWnjH,EAAEzpB,EAAE8jB,EAAE,EAAE7xB,EAAQ0Z,OAAO,SAAS8d,GAAG,OAAOvP,IAAIvO,OAAO8d,EAAE,EAAEx3B,EAAQgjB,SAAS,SAASwU,GAAG,OAAOvP,IAAIjF,SAASwU,EAAE,EAAEx3B,EAAQ2O,QAAQ,uCCnBnT1O,EAAOD,QAAU,EAAjB,sDCIF,IAAIukL,EAAU,WACV,GAAmB,oBAAR16J,IACP,OAAOA,IASX,SAAS26J,EAAS10J,EAAK1tB,GACnB,IAAIgJ,GAAU,EAQd,OAPA0kB,EAAIsD,MAAK,SAAUguE,EAAO56E,GACtB,OAAI46E,EAAM,KAAOh/F,IACbgJ,EAASob,GACF,EAGf,IACOpb,CACX,CACA,OAAsB,WAClB,SAASq5K,IACLt8K,KAAKu8K,YAAc,EACvB,CAsEA,OArEAziL,OAAOC,eAAeuiL,EAAQjjL,UAAW,OAAQ,CAI7CM,IAAK,WACD,OAAOqG,KAAKu8K,YAAY5gL,MAC5B,EACAP,YAAY,EACZc,cAAc,IAMlBogL,EAAQjjL,UAAUM,IAAM,SAAUM,GAC9B,IAAIokB,EAAQg+J,EAASr8K,KAAKu8K,YAAatiL,GACnCg/F,EAAQj5F,KAAKu8K,YAAYl+J,GAC7B,OAAO46E,GAASA,EAAM,EAC1B,EAMAqjF,EAAQjjL,UAAUgB,IAAM,SAAUJ,EAAKgC,GACnC,IAAIoiB,EAAQg+J,EAASr8K,KAAKu8K,YAAatiL,IAClCokB,EACDre,KAAKu8K,YAAYl+J,GAAO,GAAKpiB,EAG7B+D,KAAKu8K,YAAYlhL,KAAK,CAACpB,EAAKgC,GAEpC,EAKAqgL,EAAQjjL,UAAUqsB,OAAS,SAAUzrB,GACjC,IAAIsiC,EAAUv8B,KAAKu8K,YACfl+J,EAAQg+J,EAAS9/I,EAAStiC,IACzBokB,GACDke,EAAQmW,OAAOr0B,EAAO,EAE9B,EAKAi+J,EAAQjjL,UAAUK,IAAM,SAAUO,GAC9B,SAAUoiL,EAASr8K,KAAKu8K,YAAatiL,EACzC,EAIAqiL,EAAQjjL,UAAUu4D,MAAQ,WACtB5xD,KAAKu8K,YAAY7pI,OAAO,EAC5B,EAMA4pI,EAAQjjL,UAAUwC,QAAU,SAAU2L,EAAUg1K,QAChC,IAARA,IAAkBA,EAAM,MAC5B,IAAK,IAAI9oJ,EAAK,EAAGC,EAAK3zB,KAAKu8K,YAAa7oJ,EAAKC,EAAGh4B,OAAQ+3B,IAAM,CAC1D,IAAIulE,EAAQtlE,EAAGD,GACflsB,EAASrN,KAAKqiL,EAAKvjF,EAAM,GAAIA,EAAM,GACvC,CACJ,EACOqjF,CACX,CA1EqB,EA2ExB,CAjGa,GAsGVG,EAA8B,oBAAX9jL,QAA8C,oBAAbopB,UAA4BppB,OAAOopB,WAAaA,SAGpG26J,OACsB,IAAX,EAAA9jL,GAA0B,EAAAA,EAAOwM,OAASA,KAC1C,EAAAxM,EAES,oBAATC,MAAwBA,KAAKuM,OAASA,KACtCvM,KAEW,oBAAXF,QAA0BA,OAAOyM,OAASA,KAC1CzM,OAGJgqF,SAAS,cAATA,GASPg6F,EACqC,mBAA1BtnI,sBAIAA,sBAAsBl1C,KAAKu8K,GAE/B,SAAUl1K,GAAY,OAAOC,YAAW,WAAc,OAAOD,EAASjF,KAAK8I,MAAQ,GAAG,IAAO,GAAK,EAwEzGuxK,EAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,EAAwD,oBAArBC,iBAInCC,EAA0C,WAM1C,SAASA,IAML/8K,KAAKg9K,YAAa,EAMlBh9K,KAAKi9K,sBAAuB,EAM5Bj9K,KAAKk9K,mBAAqB,KAM1Bl9K,KAAKm9K,WAAa,GAClBn9K,KAAKo9K,iBAAmBp9K,KAAKo9K,iBAAiBj9K,KAAKH,MACnDA,KAAKq9K,QAjGb,SAAmB71K,EAAU0mD,GACzB,IAAIovH,GAAc,EAAOC,GAAe,EAAOC,EAAe,EAO9D,SAASC,IACDH,IACAA,GAAc,EACd91K,KAEA+1K,GACAvyE,GAER,CAQA,SAAS0yE,IACLf,EAAwBc,EAC5B,CAMA,SAASzyE,IACL,IAAI6vB,EAAYt4H,KAAK8I,MACrB,GAAIiyK,EAAa,CAEb,GAAIziD,EAAY2iD,EA7CN,EA8CN,OAMJD,GAAe,CACnB,MAEID,GAAc,EACdC,GAAe,EACf91K,WAAWi2K,EAAiBxvH,GAEhCsvH,EAAe3iD,CACnB,CACA,OAAO7vB,CACX,CA4CuB2yE,CAAS39K,KAAKq9K,QAAQl9K,KAAKH,MAzC9B,GA0ChB,CA+JA,OAxJA+8K,EAAyB1jL,UAAUq2G,YAAc,SAAUkuE,IACjD59K,KAAKm9K,WAAW94I,QAAQu5I,IAC1B59K,KAAKm9K,WAAW9hL,KAAKuiL,GAGpB59K,KAAKg9K,YACNh9K,KAAK69K,UAEb,EAOAd,EAAyB1jL,UAAUo2G,eAAiB,SAAUmuE,GAC1D,IAAIx3E,EAAYpmG,KAAKm9K,WACjB9+J,EAAQ+nF,EAAU/hE,QAAQu5I,IAEzBv/J,GACD+nF,EAAU1zD,OAAOr0B,EAAO,IAGvB+nF,EAAUzqG,QAAUqE,KAAKg9K,YAC1Bh9K,KAAK89K,aAEb,EAOAf,EAAyB1jL,UAAUgkL,QAAU,WACnBr9K,KAAK+9K,oBAIvB/9K,KAAKq9K,SAEb,EASAN,EAAyB1jL,UAAU0kL,iBAAmB,WAElD,IAAIC,EAAkBh+K,KAAKm9K,WAAWjiL,QAAO,SAAU0iL,GACnD,OAAOA,EAASK,eAAgBL,EAASM,WAC7C,IAOA,OADAF,EAAgBniL,SAAQ,SAAU+hL,GAAY,OAAOA,EAASO,iBAAmB,IAC1EH,EAAgBriL,OAAS,CACpC,EAOAohL,EAAyB1jL,UAAUwkL,SAAW,WAGrCpB,IAAaz8K,KAAKg9K,aAMvBj7J,SAASzhB,iBAAiB,gBAAiBN,KAAKo9K,kBAChDzkL,OAAO2H,iBAAiB,SAAUN,KAAKq9K,SACnCR,GACA78K,KAAKk9K,mBAAqB,IAAIJ,iBAAiB98K,KAAKq9K,SACpDr9K,KAAKk9K,mBAAmBrrE,QAAQ9vF,SAAU,CACtCq8J,YAAY,EACZC,WAAW,EACXC,eAAe,EACfC,SAAS,MAIbx8J,SAASzhB,iBAAiB,qBAAsBN,KAAKq9K,SACrDr9K,KAAKi9K,sBAAuB,GAEhCj9K,KAAKg9K,YAAa,EACtB,EAOAD,EAAyB1jL,UAAUykL,YAAc,WAGxCrB,GAAcz8K,KAAKg9K,aAGxBj7J,SAAS9d,oBAAoB,gBAAiBjE,KAAKo9K,kBACnDzkL,OAAOsL,oBAAoB,SAAUjE,KAAKq9K,SACtCr9K,KAAKk9K,oBACLl9K,KAAKk9K,mBAAmBsB,aAExBx+K,KAAKi9K,sBACLl7J,SAAS9d,oBAAoB,qBAAsBjE,KAAKq9K,SAE5Dr9K,KAAKk9K,mBAAqB,KAC1Bl9K,KAAKi9K,sBAAuB,EAC5Bj9K,KAAKg9K,YAAa,EACtB,EAQAD,EAAyB1jL,UAAU+jL,iBAAmB,SAAUzpJ,GAC5D,IAAI6kF,EAAK7kF,EAAG02E,aAAcA,OAAsB,IAAPmO,EAAgB,GAAKA,EAEvCokE,EAAe3xJ,MAAK,SAAUhxB,GACjD,SAAUowG,EAAahmE,QAAQpqC,EACnC,KAEI+F,KAAKq9K,SAEb,EAMAN,EAAyB54K,YAAc,WAInC,OAHKnE,KAAKy+K,YACNz+K,KAAKy+K,UAAY,IAAI1B,GAElB/8K,KAAKy+K,SAChB,EAMA1B,EAAyB0B,UAAY,KAC9B1B,CACX,CAjM6C,GA0MzC2B,EAAqB,SAAWljL,EAAQa,GACxC,IAAK,IAAIq3B,EAAK,EAAGC,EAAK75B,OAAOiB,KAAKsB,GAAQq3B,EAAKC,EAAGh4B,OAAQ+3B,IAAM,CAC5D,IAAIz5B,EAAM05B,EAAGD,GACb55B,OAAOC,eAAeyB,EAAQvB,EAAK,CAC/BgC,MAAOI,EAAMpC,GACbmB,YAAY,EACZe,UAAU,EACVD,cAAc,GAEtB,CACA,OAAOV,CACV,EAQGmjL,EAAc,SAAWnjL,GAOzB,OAHkBA,GAAUA,EAAOilF,eAAiBjlF,EAAOilF,cAAcK,aAGnD47F,CACzB,EAGGkC,EAAYC,EAAe,EAAG,EAAG,EAAG,GAOxC,SAASC,EAAQ7iL,GACb,OAAO09B,WAAW19B,IAAU,CAChC,CAQA,SAAS8iL,EAAeC,GAEpB,IADA,IAAIC,EAAY,GACPvrJ,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpCurJ,EAAUvrJ,EAAK,GAAKh4B,UAAUg4B,GAElC,OAAOurJ,EAAUjrJ,QAAO,SAAUpd,EAAM9C,GAEpC,OAAO8C,EAAOkoK,EADFE,EAAO,UAAYlrK,EAAW,UAE9C,GAAG,EACP,CAyGA,IAAIorK,EAGkC,oBAAvBC,mBACA,SAAU3jL,GAAU,OAAOA,aAAkBmjL,EAAYnjL,GAAQ2jL,kBAAoB,EAKzF,SAAU3jL,GAAU,OAAQA,aAAkBmjL,EAAYnjL,GAAQ4jL,YAC3C,mBAAnB5jL,EAAO6jL,OAAyB,EAiB/C,SAASC,EAAe9jL,GACpB,OAAKihL,EAGDyC,EAAqB1jL,GAhH7B,SAA2BA,GACvB,IAAI+jL,EAAO/jL,EAAO6jL,UAClB,OAAOR,EAAe,EAAG,EAAGU,EAAKjtK,MAAOitK,EAAKhkI,OACjD,CA8GeikI,CAAkBhkL,GAvGjC,SAAmCA,GAG/B,IAAI24D,EAAc34D,EAAO24D,YAAaE,EAAe74D,EAAO64D,aAS5D,IAAKF,IAAgBE,EACjB,OAAOuqH,EAEX,IAAII,EAASL,EAAYnjL,GAAQusD,iBAAiBvsD,GAC9CikL,EA3CR,SAAqBT,GAGjB,IAFA,IACIS,EAAW,CAAC,EACP/rJ,EAAK,EAAGgsJ,EAFD,CAAC,MAAO,QAAS,SAAU,QAEDhsJ,EAAKgsJ,EAAY/jL,OAAQ+3B,IAAM,CACrE,IAAI5f,EAAW4rK,EAAYhsJ,GACvBz3B,EAAQ+iL,EAAO,WAAalrK,GAChC2rK,EAAS3rK,GAAYgrK,EAAQ7iL,EACjC,CACA,OAAOwjL,CACX,CAkCmBE,CAAYX,GACvBY,EAAWH,EAAS/mK,KAAO+mK,EAAS9mK,MACpCknK,EAAUJ,EAAS7mK,IAAM6mK,EAAS5mK,OAKlCvG,EAAQwsK,EAAQE,EAAO1sK,OAAQipC,EAASujI,EAAQE,EAAOzjI,QAqB3D,GAlByB,eAArByjI,EAAOvmB,YAOHrzJ,KAAKmyD,MAAMjlD,EAAQstK,KAAczrH,IACjC7hD,GAASysK,EAAeC,EAAQ,OAAQ,SAAWY,GAEnDx6K,KAAKmyD,MAAMhc,EAASskI,KAAaxrH,IACjC9Y,GAAUwjI,EAAeC,EAAQ,MAAO,UAAYa,KAoDhE,SAA2BrkL,GACvB,OAAOA,IAAWmjL,EAAYnjL,GAAQumB,SAASuyC,eACnD,CA/CSwrH,CAAkBtkL,GAAS,CAK5B,IAAIukL,EAAgB36K,KAAKmyD,MAAMjlD,EAAQstK,GAAYzrH,EAC/C6rH,EAAiB56K,KAAKmyD,MAAMhc,EAASskI,GAAWxrH,EAMpB,IAA5BjvD,KAAKqF,IAAIs1K,KACTztK,GAASytK,GAEoB,IAA7B36K,KAAKqF,IAAIu1K,KACTzkI,GAAUykI,EAElB,CACA,OAAOnB,EAAeY,EAAS/mK,KAAM+mK,EAAS7mK,IAAKtG,EAAOipC,EAC9D,CAyCW0kI,CAA0BzkL,GALtBojL,CAMf,CAiCA,SAASC,EAAe5rJ,EAAGmxB,EAAG9xC,EAAOipC,GACjC,MAAO,CAAEtoB,EAAGA,EAAGmxB,EAAGA,EAAG9xC,MAAOA,EAAOipC,OAAQA,EAC/C,CAMA,IAAI2kI,EAAmC,WAMnC,SAASA,EAAkB1kL,GAMvBwE,KAAKmgL,eAAiB,EAMtBngL,KAAKogL,gBAAkB,EAMvBpgL,KAAKqgL,aAAexB,EAAe,EAAG,EAAG,EAAG,GAC5C7+K,KAAKxE,OAASA,CAClB,CAyBA,OAlBA0kL,EAAkB7mL,UAAUinL,SAAW,WACnC,IAAIC,EAAOjB,EAAet/K,KAAKxE,QAE/B,OADAwE,KAAKqgL,aAAeE,EACZA,EAAKjuK,QAAUtS,KAAKmgL,gBACxBI,EAAKhlI,SAAWv7C,KAAKogL,eAC7B,EAOAF,EAAkB7mL,UAAUmnL,cAAgB,WACxC,IAAID,EAAOvgL,KAAKqgL,aAGhB,OAFArgL,KAAKmgL,eAAiBI,EAAKjuK,MAC3BtS,KAAKogL,gBAAkBG,EAAKhlI,OACrBglI,CACX,EACOL,CACX,CApDsC,GAsDlCO,EAOA,SAA6BjlL,EAAQklL,GACjC,IA/FoB/sJ,EACpBV,EAAUmxB,EAAU9xC,EAAkBipC,EAEtColI,EACAJ,EA2FIK,GA9FJ3tJ,GADoBU,EA+FiB+sJ,GA9F9BztJ,EAAGmxB,EAAIzwB,EAAGywB,EAAG9xC,EAAQqhB,EAAGrhB,MAAOipC,EAAS5nB,EAAG4nB,OAElDolI,EAAoC,oBAApBE,gBAAkCA,gBAAkB/mL,OACpEymL,EAAOzmL,OAAO05B,OAAOmtJ,EAAOtnL,WAEhCqlL,EAAmB6B,EAAM,CACrBttJ,EAAGA,EAAGmxB,EAAGA,EAAG9xC,MAAOA,EAAOipC,OAAQA,EAClC3iC,IAAKwrC,EACLzrC,MAAOsa,EAAI3gB,EACXuG,OAAQ0iC,EAAS6I,EACjB1rC,KAAMua,IAEHstJ,GAyFH7B,EAAmB1+K,KAAM,CAAExE,OAAQA,EAAQolL,YAAaA,GAC5D,EAIAE,EAAmC,WAWnC,SAASA,EAAkBt5K,EAAUnK,EAAY0jL,GAc7C,GAPA/gL,KAAKghL,oBAAsB,GAM3BhhL,KAAKihL,cAAgB,IAAI7E,EACD,mBAAb50K,EACP,MAAM,IAAI1H,UAAU,2DAExBE,KAAKkhL,UAAY15K,EACjBxH,KAAKmhL,YAAc9jL,EACnB2C,KAAKohL,aAAeL,CACxB,CAmHA,OA5GAD,EAAkBznL,UAAUw4G,QAAU,SAAUr2G,GAC5C,IAAKE,UAAUC,OACX,MAAM,IAAImE,UAAU,4CAGxB,GAAuB,oBAAZy1C,SAA6BA,mBAAmBz7C,OAA3D,CAGA,KAAM0B,aAAkBmjL,EAAYnjL,GAAQ+5C,SACxC,MAAM,IAAIz1C,UAAU,yCAExB,IAAIuhL,EAAerhL,KAAKihL,cAEpBI,EAAa3nL,IAAI8B,KAGrB6lL,EAAahnL,IAAImB,EAAQ,IAAI0kL,EAAkB1kL,IAC/CwE,KAAKmhL,YAAYzxE,YAAY1vG,MAE7BA,KAAKmhL,YAAY9D,UAZjB,CAaJ,EAOAyD,EAAkBznL,UAAUioL,UAAY,SAAU9lL,GAC9C,IAAKE,UAAUC,OACX,MAAM,IAAImE,UAAU,4CAGxB,GAAuB,oBAAZy1C,SAA6BA,mBAAmBz7C,OAA3D,CAGA,KAAM0B,aAAkBmjL,EAAYnjL,GAAQ+5C,SACxC,MAAM,IAAIz1C,UAAU,yCAExB,IAAIuhL,EAAerhL,KAAKihL,cAEnBI,EAAa3nL,IAAI8B,KAGtB6lL,EAAa37J,OAAOlqB,GACf6lL,EAAazqK,MACd5W,KAAKmhL,YAAY1xE,eAAezvG,MAXpC,CAaJ,EAMA8gL,EAAkBznL,UAAUmlL,WAAa,WACrCx+K,KAAKuhL,cACLvhL,KAAKihL,cAAcrvH,QACnB5xD,KAAKmhL,YAAY1xE,eAAezvG,KACpC,EAOA8gL,EAAkBznL,UAAU4kL,aAAe,WACvC,IAAI77K,EAAQpC,KACZA,KAAKuhL,cACLvhL,KAAKihL,cAAcplL,SAAQ,SAAU2lL,GAC7BA,EAAYlB,YACZl+K,EAAM4+K,oBAAoB3lL,KAAKmmL,EAEvC,GACJ,EAOAV,EAAkBznL,UAAU8kL,gBAAkB,WAE1C,GAAKn+K,KAAKk+K,YAAV,CAGA,IAAI1B,EAAMx8K,KAAKohL,aAEX7kJ,EAAUv8B,KAAKghL,oBAAoBzuK,KAAI,SAAUivK,GACjD,OAAO,IAAIf,EAAoBe,EAAYhmL,OAAQgmL,EAAYhB,gBACnE,IACAxgL,KAAKkhL,UAAU/mL,KAAKqiL,EAAKjgJ,EAASigJ,GAClCx8K,KAAKuhL,aAPL,CAQJ,EAMAT,EAAkBznL,UAAUkoL,YAAc,WACtCvhL,KAAKghL,oBAAoBtuI,OAAO,EACpC,EAMAouI,EAAkBznL,UAAU6kL,UAAY,WACpC,OAAOl+K,KAAKghL,oBAAoBrlL,OAAS,CAC7C,EACOmlL,CACX,CAnJsC,GAwJlC16E,EAA+B,oBAAZzrG,QAA0B,IAAIA,QAAY,IAAIyhL,EAKjEqF,EAOA,SAASA,EAAej6K,GACpB,KAAMxH,gBAAgByhL,GAClB,MAAM,IAAI3hL,UAAU,sCAExB,IAAKpE,UAAUC,OACX,MAAM,IAAImE,UAAU,4CAExB,IAAIzC,EAAa0/K,EAAyB54K,cACtCy5K,EAAW,IAAIkD,EAAkBt5K,EAAUnK,EAAY2C,MAC3DomG,EAAU/rG,IAAI2F,KAAM49K,EACxB,EAIJ,CACI,UACA,YACA,cACF/hL,SAAQ,SAAU8R,GAChB8zK,EAAepoL,UAAUsU,GAAU,WAC/B,IAAIgmB,EACJ,OAAQA,EAAKyyE,EAAUzsG,IAAIqG,OAAO2N,GAAQrS,MAAMq4B,EAAIj4B,UACxD,CACJ,IAUA,aAN2C,IAA5BghL,EAAS+E,eACT/E,EAAS+E,eAEbA,8BCp5BE,IAAIxtJ,EAAEr7B,EAAEwuB,EAAEJ,EAAE,GAAG,iBAAkB06J,aAAa,mBAAoBA,YAAYr2K,IAAI,CAAC,IAAIuc,EAAE85J,YAAY7pL,EAAQ+/H,aAAa,WAAW,OAAOhwG,EAAEvc,KAAK,CAAC,KAAK,CAAC,IAAIihB,EAAE/pB,KAAKilF,EAAEl7D,EAAEjhB,MAAMxT,EAAQ+/H,aAAa,WAAW,OAAOtrG,EAAEjhB,MAAMm8E,CAAC,CAAC,CAC7O,GAAG,oBAAqB7uF,QAAQ,mBAAoBgpL,eAAe,CAAC,IAAIp+J,EAAE,KAAKmkE,EAAE,KAAKD,EAAE,WAAW,GAAG,OAAOlkE,EAAE,IAAI,IAAI8L,EAAEx3B,EAAQ+/H,eAAer0G,GAAE,EAAG8L,GAAG9L,EAAE,IAAI,CAAC,MAAM3d,GAAG,MAAM6B,WAAWggF,EAAE,GAAG7hF,CAAE,CAAC,EAAEquB,EAAE,SAAS5E,GAAG,OAAO9L,EAAE9b,WAAWwsB,EAAE,EAAE5E,IAAI9L,EAAE8L,EAAE5nB,WAAWggF,EAAE,GAAG,EAAE7uF,EAAE,SAASy2B,EAAEzpB,GAAG8hF,EAAEjgF,WAAW4nB,EAAEzpB,EAAE,EAAEwhB,EAAE,WAAWhb,aAAas7E,EAAE,EAAE7vF,EAAQuvI,qBAAqB,WAAW,OAAM,CAAE,EAAEpgH,EAAEnvB,EAAQ+pL,wBAAwB,WAAW,CAAC,KAAK,CAAC,IAAI3uJ,EAAEt6B,OAAO8O,WAAW28C,EAAEzrD,OAAOyT,aAAa,GAAG,oBAAqB1P,QAAQ,CAAC,IAAIkwB,EAC7fj0B,OAAOouD,qBAAqB,mBAAoBpuD,OAAO08C,uBAAuB34C,QAAQC,MAAM,sJAAsJ,mBAAoBiwB,GAAGlwB,QAAQC,MAAM,oJAAoJ,CAAC,IAAIirF,GAAE,EAAGqhC,EAAE,KAAK+hB,GAAG,EAAExhB,EAAE,EAAE4B,EAAE,EAAEvzH,EAAQuvI,qBAAqB,WAAW,OAAOvvI,EAAQ+/H,gBAChgBxM,CAAC,EAAEpkG,EAAE,WAAW,EAAEnvB,EAAQ+pL,wBAAwB,SAASvyJ,GAAG,EAAEA,GAAG,IAAIA,EAAE3yB,QAAQC,MAAM,mHAAmH6sH,EAAE,EAAEn6F,EAAEjqB,KAAKoF,MAAM,IAAI6kB,GAAG,CAAC,EAAE,IAAImgD,EAAE,IAAImyG,eAAej+C,EAAEl0D,EAAEqyG,MAAMryG,EAAEsyG,MAAMC,UAAU,WAAW,GAAG,OAAO94D,EAAE,CAAC,IAAI55F,EAAEx3B,EAAQ+/H,eAAexM,EAAE/7F,EAAEm6F,EAAE,IAAIP,GAAE,EAAG55F,GAAGq0G,EAAEs+C,YAAY,OAAOp6F,GAAE,EAAGqhC,EAAE,KAAK,CAAC,MAAMrjH,GAAG,MAAM89H,EAAEs+C,YAAY,MAAMp8K,CAAE,CAAC,MAAMgiF,GAAE,CAAE,EAAE3zD,EAAE,SAAS5E,GAAG45F,EAAE55F,EAAEu4D,IAAIA,GAAE,EAAG87C,EAAEs+C,YAAY,MAAM,EAAEppL,EAAE,SAASy2B,EAAEzpB,GAAGolI,EACtf/3G,GAAE,WAAW5D,EAAEx3B,EAAQ+/H,eAAe,GAAEhyH,EAAE,EAAEwhB,EAAE,WAAWg9B,EAAE4mF,GAAGA,GAAG,CAAC,CAAC,CAAC,SAASlF,EAAEz2G,EAAEzpB,GAAG,IAAI8jB,EAAE2F,EAAE1zB,OAAO0zB,EAAEh0B,KAAKuK,GAAGypB,EAAE,OAAO,CAAC,IAAI5L,EAAEiG,EAAE,IAAI,EAAEnI,EAAE8N,EAAE5L,GAAG,UAAG,IAASlC,GAAG,EAAEwkH,EAAExkH,EAAE3b,IAA0B,MAAMypB,EAA7BA,EAAE5L,GAAG7d,EAAEypB,EAAE3F,GAAGnI,EAAEmI,EAAEjG,CAAc,CAAC,CAAC,SAAS6gH,EAAEj1G,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,CAAC,CACjP,SAASk1G,EAAEl1G,GAAG,IAAIzpB,EAAEypB,EAAE,GAAG,QAAG,IAASzpB,EAAE,CAAC,IAAI8jB,EAAE2F,EAAE3H,MAAM,GAAGgC,IAAI9jB,EAAE,CAACypB,EAAE,GAAG3F,EAAE2F,EAAE,IAAI,IAAI5L,EAAE,EAAElC,EAAE8N,EAAE1zB,OAAO8nB,EAAElC,GAAG,CAAC,IAAIoH,EAAE,GAAGlF,EAAE,GAAG,EAAEnd,EAAE+oB,EAAE1G,GAAGxB,EAAEwB,EAAE,EAAExjB,EAAEkqB,EAAElI,GAAG,QAAG,IAAS7gB,GAAG,EAAEy/H,EAAEz/H,EAAEojB,QAAG,IAASvkB,GAAG,EAAE4gI,EAAE5gI,EAAEmB,IAAI+oB,EAAE5L,GAAGte,EAAEkqB,EAAElI,GAAGuC,EAAEjG,EAAE0D,IAAIkI,EAAE5L,GAAGnd,EAAE+oB,EAAE1G,GAAGe,EAAEjG,EAAEkF,OAAQ,WAAG,IAASxjB,GAAG,EAAE4gI,EAAE5gI,EAAEukB,IAA0B,MAAM2F,EAA7BA,EAAE5L,GAAGte,EAAEkqB,EAAElI,GAAGuC,EAAEjG,EAAE0D,CAAakI,CAAC,CAAC,CAAC,OAAOzpB,CAAC,CAAC,OAAO,IAAI,CAAC,SAASmgI,EAAE12G,EAAEzpB,GAAG,IAAI8jB,EAAE2F,EAAE4yJ,UAAUr8K,EAAEq8K,UAAU,OAAO,IAAIv4J,EAAEA,EAAE2F,EAAEt2B,GAAG6M,EAAE7M,EAAE,CAAC,IAAIinB,EAAE,GAAGD,EAAE,GAAGkmH,EAAE,EAAErhD,EAAE,KAAKmpD,EAAE,EAAEvJ,GAAE,EAAGvzG,GAAE,EAAGnR,GAAE,EACja,SAASuvH,EAAEhgH,GAAG,IAAI,IAAIzpB,EAAE0+H,EAAEvkH,GAAG,OAAOna,GAAG,CAAC,GAAG,OAAOA,EAAE4B,SAAS+8H,EAAExkH,OAAQ,MAAGna,EAAEizD,WAAWxpC,GAAgD,MAA9Ck1G,EAAExkH,GAAGna,EAAEq8K,UAAUr8K,EAAEs8K,eAAep8C,EAAE9lH,EAAEpa,EAAa,CAACA,EAAE0+H,EAAEvkH,EAAE,CAAC,CAAC,SAASgxH,EAAE1hH,GAAa,GAAVvP,GAAE,EAAGuvH,EAAEhgH,IAAO4B,EAAE,GAAG,OAAOqzG,EAAEtkH,GAAGiR,GAAE,EAAGgD,EAAEwhH,OAAO,CAAC,IAAI7vI,EAAE0+H,EAAEvkH,GAAG,OAAOna,GAAGhN,EAAEm4I,EAAEnrI,EAAEizD,UAAUxpC,EAAE,CAAC,CACzP,SAASomH,EAAEpmH,EAAEzpB,GAAGqrB,GAAE,EAAGnR,IAAIA,GAAE,EAAGsH,KAAKo9G,GAAE,EAAG,IAAI96G,EAAEqkH,EAAE,IAAS,IAALsB,EAAEzpI,GAAOg/E,EAAE0/C,EAAEtkH,GAAG,OAAO4kE,MAAMA,EAAEs9F,eAAet8K,IAAIypB,IAAIx3B,EAAQuvI,yBAAyB,CAAC,IAAI3jH,EAAEmhE,EAAEp9E,SAAS,GAAG,mBAAoBic,EAAE,CAACmhE,EAAEp9E,SAAS,KAAKumI,EAAEnpD,EAAEu9F,cAAc,IAAI5gK,EAAEkC,EAAEmhE,EAAEs9F,gBAAgBt8K,GAAGA,EAAE/N,EAAQ+/H,eAAe,mBAAoBr2G,EAAEqjE,EAAEp9E,SAAS+Z,EAAEqjE,IAAI0/C,EAAEtkH,IAAIukH,EAAEvkH,GAAGqvH,EAAEzpI,EAAE,MAAM2+H,EAAEvkH,GAAG4kE,EAAE0/C,EAAEtkH,EAAE,CAAC,GAAG,OAAO4kE,EAAE,IAAIj8D,GAAE,MAAO,CAAC,IAAIriB,EAAEg+H,EAAEvkH,GAAG,OAAOzZ,GAAG1N,EAAEm4I,EAAEzqI,EAAEuyD,UAAUjzD,GAAG+iB,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQi8D,EAAE,KAAKmpD,EAAErkH,EAAE86G,GAAE,CAAE,CAAC,CAAC,IAAIoR,EAAE5uH,EAAEnvB,EAAQowI,sBAAsB,EACtepwI,EAAQ8vI,2BAA2B,EAAE9vI,EAAQkwI,qBAAqB,EAAElwI,EAAQ0+H,wBAAwB,EAAE1+H,EAAQuqL,mBAAmB,KAAKvqL,EAAQohI,8BAA8B,EAAEphI,EAAQqvI,wBAAwB,SAAS73G,GAAGA,EAAE7nB,SAAS,IAAI,EAAE3P,EAAQwqL,2BAA2B,WAAWpxJ,GAAGuzG,IAAIvzG,GAAE,EAAGgD,EAAEwhH,GAAG,EAAE59I,EAAQ4vI,iCAAiC,WAAW,OAAOsG,CAAC,EAAEl2I,EAAQyqL,8BAA8B,WAAW,OAAOh+C,EAAEtkH,EAAE,EACtanoB,EAAQ0qL,cAAc,SAASlzJ,GAAG,OAAO0+G,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAInoI,EAAE,EAAE,MAAM,QAAQA,EAAEmoI,EAAE,IAAIrkH,EAAEqkH,EAAEA,EAAEnoI,EAAE,IAAI,OAAOypB,GAAG,CAAC,QAAQ0+G,EAAErkH,CAAC,CAAC,EAAE7xB,EAAQ2qL,wBAAwB,WAAW,EAAE3qL,EAAQyvI,sBAAsBsO,EAAE/9I,EAAQg+H,yBAAyB,SAASxmG,EAAEzpB,GAAG,OAAOypB,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAI3F,EAAEqkH,EAAEA,EAAE1+G,EAAE,IAAI,OAAOzpB,GAAG,CAAC,QAAQmoI,EAAErkH,CAAC,CAAC,EACtW7xB,EAAQy+H,0BAA0B,SAASjnG,EAAEzpB,EAAE8jB,GAAG,IAAIjG,EAAE5rB,EAAQ+/H,eAA8F,OAAtCluG,EAAzC,iBAAkBA,GAAG,OAAOA,GAAe,iBAAZA,EAAEA,EAAEwkC,QAA6B,EAAExkC,EAAEjG,EAAEiG,EAAOjG,EAAS4L,GAAG,KAAK,EAAE,IAAI9N,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAA2M,OAAjM8N,EAAE,CAACt2B,GAAGktI,IAAIz+H,SAAS5B,EAAEu8K,cAAc9yJ,EAAEwpC,UAAUnvC,EAAEw4J,eAAvD3gK,EAAEmI,EAAEnI,EAAoE0gK,WAAW,GAAGv4J,EAAEjG,GAAG4L,EAAE4yJ,UAAUv4J,EAAEo8G,EAAE/lH,EAAEsP,GAAG,OAAOi1G,EAAEtkH,IAAIqP,IAAIi1G,EAAEvkH,KAAKD,EAAEsH,IAAItH,GAAE,EAAGlnB,EAAEm4I,EAAErnH,EAAEjG,MAAM4L,EAAE4yJ,UAAU1gK,EAAEukH,EAAE9lH,EAAEqP,GAAG4B,GAAGuzG,IAAIvzG,GAAE,EAAGgD,EAAEwhH,KAAYpmH,CAAC,EAC3dx3B,EAAQ4qL,sBAAsB,SAASpzJ,GAAG,IAAIzpB,EAAEmoI,EAAE,OAAO,WAAW,IAAIrkH,EAAEqkH,EAAEA,EAAEnoI,EAAE,IAAI,OAAOypB,EAAE/zB,MAAM0E,KAAKtE,UAAU,CAAC,QAAQqyI,EAAErkH,CAAC,CAAC,CAAC,gCChB9H5xB,EAAOD,QAAU,EAAjB,kBCHFC,EAAOD,QAAU,SAAcw3B,EAAGzpB,GAG9B,IAFA,IAAI8jH,EAAKr6F,EAAEjH,MAAM,KACbgmG,EAAKxoH,EAAEwiB,MAAM,KACR3sB,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAIouH,EAAKj6F,OAAO85F,EAAGjuH,IACfsyH,EAAKn+F,OAAOw+F,EAAG3yH,IACnB,GAAIouH,EAAKkE,EAAI,OAAO,EACpB,GAAIA,EAAKlE,EAAI,OAAQ,EACrB,IAAKh6F,MAAMg6F,IAAOh6F,MAAMk+F,GAAK,OAAO,EACpC,GAAIl+F,MAAMg6F,KAAQh6F,MAAMk+F,GAAK,OAAQ,CACzC,CACA,OAAO,CACX,gECgEA,SAAS20D,EAAYzpF,EAAO0pF,EAASC,GACnC,OAAK3pF,EAAM0pF,GAcJ1pF,EAAM0pF,GAAS,GAAK1pF,EAAM0pF,GAAS,GAAGC,GAG7C3pF,EAAM0pF,GAASC,GAhBG,mBAAZD,EAMK1pF,EAAM2nF,YAAyB,eAAbgC,EAA4B,QAAU,eAGjE,CAQJ,CAEA,SAASC,EAAkBl+I,QACZ,IAATA,IACFA,EAAO,CAAC,GAMV,IAAI27H,EAAW37H,EAAK27H,SAChBwiB,GAAc,IAAAvxK,aAAOxO,GACzB+/K,EAAYhxK,QAAUwuJ,EACtB,IAAI/oG,EAAQ5yB,EAAK4yB,OAASnyD,KAAKmyD,MAE3BwrH,GAAoB,IAAAxxK,UAEpByxK,GAAY,IAAAnoK,UAAS,CACvBvI,WAAOvP,EACPw4C,YAAQx4C,IAEN6T,EAAOosK,EAAU,GACjBC,EAAUD,EAAU,GAIpBE,GAAa,IAAA3xK,SAAO,IACxB,IAAA/T,YAAU,WAER,OADA0lL,EAAWpxK,SAAU,EACd,WACLoxK,EAAWpxK,SAAU,CACvB,CACF,GAAG,IAEH,IAAIqxK,GAAW,IAAA5xK,QAAO,CACpBe,WAAOvP,EACPw4C,YAAQx4C,IAKNqgL,EApIN,SAA4BC,EAAYC,GACtC,IAAIC,GAAgB,IAAAhyK,QAAO,MACvBiyK,GAAkB,IAAAjyK,QAAO,MAC7BiyK,EAAgB1xK,QAAUwxK,EAC1B,IAAIG,GAAe,IAAAlyK,QAAO,OAG1B,IAAA/T,YAAU,WACRkmL,GACF,IACA,IAAIA,GAAuB,IAAA1hF,cAAY,WACrC,IAAI2hF,EAAYF,EAAa3xK,QACzBwxK,EAAeE,EAAgB1xK,QAE/BsQ,EAAUuhK,IAAwBL,EAAeA,aAAwB/tI,QAAU+tI,EAAeA,EAAaxxK,QAAU,MAEzHyxK,EAAczxK,SAAWyxK,EAAczxK,QAAQsQ,UAAYA,GAAWmhK,EAAczxK,QAAQuxK,aAAeA,IAI3GE,EAAczxK,SAAWyxK,EAAczxK,QAAQ8xK,SACjDL,EAAczxK,QAAQ8xK,UAGxBL,EAAczxK,QAAU,CACtBsQ,QAASA,EACTihK,WAAYA,EAGZO,QAASxhK,EAAUihK,EAAWjhK,QAAWrf,GAE7C,GAAG,CAACsgL,IAUJ,OARA,IAAA7lL,YAAU,WACR,OAAO,WACD+lL,EAAczxK,SAAWyxK,EAAczxK,QAAQ8xK,UACjDL,EAAczxK,QAAQ8xK,UACtBL,EAAczxK,QAAU,KAE5B,CACF,GAAG,KACI,IAAAkwF,cAAY,SAAU5/E,GAC3BqhK,EAAa3xK,QAAUsQ,EACvBshK,GACF,GAAG,CAACA,GACN,CAuFoBG,EAAmB,IAAA7hF,cAAY,SAAU5/E,GAsCzD,OAnCK2gK,EAAkBjxK,SAAWixK,EAAkBjxK,QAAQ8vE,MAAQj9C,EAAKi9C,KAAOmhG,EAAkBjxK,QAAQylD,QAAUA,IAClHwrH,EAAkBjxK,QAAU,CAC1B8vE,IAAKj9C,EAAKi9C,IACVrqB,MAAOA,EACP33D,SAAU,IAAI6hL,gBAAe,SAAUllJ,GACrC,IAAI08D,EAAQ18D,EAAQ,GAChBomJ,EAAuB,eAAbh+I,EAAKi9C,IAAuB,gBAA+B,6BAAbj9C,EAAKi9C,IAAqC,4BAA8B,iBAChIkiG,EAAgBpB,EAAYzpF,EAAO0pF,EAAS,cAC5CoB,EAAiBrB,EAAYzpF,EAAO0pF,EAAS,aAC7CjiB,EAAWojB,EAAgBvsH,EAAMusH,QAAiB/gL,EAClD09J,EAAYsjB,EAAiBxsH,EAAMwsH,QAAkBhhL,EAEzD,GAAIogL,EAASrxK,QAAQQ,QAAUouJ,GAAYyiB,EAASrxK,QAAQypC,SAAWklH,EAAW,CAChF,IAAIujB,EAAU,CACZ1xK,MAAOouJ,EACPnlH,OAAQklH,GAEV0iB,EAASrxK,QAAQQ,MAAQouJ,EACzByiB,EAASrxK,QAAQypC,OAASklH,EAEtBqiB,EAAYhxK,QACdgxK,EAAYhxK,QAAQkyK,GAEfd,EAAWpxK,SACdmxK,EAAQe,EAGd,CACF,MAIJjB,EAAkBjxK,QAAQlS,SAASiyG,QAAQzvF,EAAS,CAClDw/D,IAAKj9C,EAAKi9C,MAEL,WACDmhG,EAAkBjxK,SACpBixK,EAAkBjxK,QAAQlS,SAAS0hL,UAAUl/J,EAEjD,CACF,GAAG,CAACuiB,EAAKi9C,IAAKrqB,IAAS5yB,EAAK1nC,KAC5B,OAAO,IAAAM,UAAQ,WACb,MAAO,CACLN,IAAKmmL,EACL9wK,MAAOsE,EAAKtE,MACZipC,OAAQ3kC,EAAK2kC,OAEjB,GAAG,CAAC6nI,EAAaxsK,EAAKtE,MAAOsE,EAAK2kC,QACpC,gCCxLA,IAAI32C,mBACJ,MAAMG,EAAQ,IAAIC,WAAW,IACd,SAASQ,IAEtB,IAAKZ,IAEHA,EAAoC,oBAAXC,QAA0BA,OAAOD,iBAAmBC,OAAOD,gBAAgBzE,KAAK0E,SAEpGD,GACH,MAAM,IAAIuB,MAAM,4GAIpB,OAAOvB,EAAgBG,EACzB,iDCXA,MAAMT,EAAY,GAElB,IAAK,IAAI7I,EAAI,EAAGA,EAAI,MAAOA,EACzB6I,EAAUjJ,MAAMI,EAAI,KAAOmI,SAAS,IAAImI,MAAM,IAGzC,SAASk4K,EAAgBt8J,EAAKljB,EAAS,GAG5C,OAAQH,EAAUqjB,EAAIljB,EAAS,IAAMH,EAAUqjB,EAAIljB,EAAS,IAAMH,EAAUqjB,EAAIljB,EAAS,IAAMH,EAAUqjB,EAAIljB,EAAS,IAAM,IAAMH,EAAUqjB,EAAIljB,EAAS,IAAMH,EAAUqjB,EAAIljB,EAAS,IAAM,IAAMH,EAAUqjB,EAAIljB,EAAS,IAAMH,EAAUqjB,EAAIljB,EAAS,IAAM,IAAMH,EAAUqjB,EAAIljB,EAAS,IAAMH,EAAUqjB,EAAIljB,EAAS,IAAM,IAAMH,EAAUqjB,EAAIljB,EAAS,KAAOH,EAAUqjB,EAAIljB,EAAS,KAAOH,EAAUqjB,EAAIljB,EAAS,KAAOH,EAAUqjB,EAAIljB,EAAS,KAAOH,EAAUqjB,EAAIljB,EAAS,KAAOH,EAAUqjB,EAAIljB,EAAS,MAAMwnB,aACvf,iDChBA,MACA,GACEi4J,WAFmC,oBAAXr/K,QAA0BA,OAAOq/K,YAAcr/K,OAAOq/K,WAAW/jL,KAAK0E,mCC4BhG,QAxBA,SAAY9D,EAASyD,EAAKC,GACxB,GAAI,EAAOy/K,aAAe1/K,IAAQzD,EAChC,OAAO,EAAOmjL,aAIhB,MAAMj/K,GADNlE,EAAUA,GAAW,CAAC,GACDsE,SAAWtE,EAAQyE,KAAOA,EAAA,KAK/C,GAHAP,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBT,EAAK,CACPC,EAASA,GAAU,EAEnB,IAAK,IAAIhJ,EAAI,EAAGA,EAAI,KAAMA,EACxB+I,EAAIC,EAAShJ,GAAKwJ,EAAKxJ,GAGzB,OAAO+I,CACT,CAEA,OAAO,OAAgBS,EACzB,0BCiCAnN,EAAOD,QAzCO,WAAY,0BCjB1BC,EAAOD,QAAU,SAAUssB,GACzBA,EAAQ9qB,UAAUH,OAAOC,UAAY,YACnC,IAAK,IAAIosB,EAASvlB,KAAK8mB,KAAMvB,EAAQA,EAASA,EAAOwB,WAC7CxB,EAAOtpB,KAEjB,CACF,gCCDA,SAASkoB,EAASqwF,GAChB,IAAI37G,EAAOmH,KASX,GARMnH,aAAgBsrB,IACpBtrB,EAAO,IAAIsrB,GAGbtrB,EAAK2sB,KAAO,KACZ3sB,EAAKiuB,KAAO,KACZjuB,EAAK8C,OAAS,EAEV64G,GAAgC,mBAAjBA,EAAK34G,QACtB24G,EAAK34G,SAAQ,SAAU0rB,GACrB1uB,EAAKwC,KAAKksB,EACZ,SACK,GAAI7rB,UAAUC,OAAS,EAC5B,IAAK,IAAIF,EAAI,EAAGmsB,EAAIlsB,UAAUC,OAAQF,EAAImsB,EAAGnsB,IAC3C5C,EAAKwC,KAAKK,UAAUD,IAIxB,OAAO5C,CACT,CAmVA,SAASyyK,EAAQzyK,EAAM0F,EAAMtC,GAC3B,IAAIkoL,EAAW5lL,IAAS1F,EAAKiuB,KAC3B,IAAIs9J,EAAKnoL,EAAO,KAAMsC,EAAM1F,GAC5B,IAAIurL,EAAKnoL,EAAOsC,EAAMA,EAAKwoB,KAAMluB,GAWnC,OATsB,OAAlBsrL,EAASp9J,OACXluB,EAAK2sB,KAAO2+J,GAEQ,OAAlBA,EAAS1+J,OACX5sB,EAAKiuB,KAAOq9J,GAGdtrL,EAAK8C,SAEEwoL,CACT,CAEA,SAAS9oL,EAAMxC,EAAM0uB,GACnB1uB,EAAK2sB,KAAO,IAAI4+J,EAAK78J,EAAM1uB,EAAK2sB,KAAM,KAAM3sB,GACvCA,EAAKiuB,OACRjuB,EAAKiuB,KAAOjuB,EAAK2sB,MAEnB3sB,EAAK8C,QACP,CAEA,SAAS6rB,EAAS3uB,EAAM0uB,GACtB1uB,EAAKiuB,KAAO,IAAIs9J,EAAK78J,EAAM,KAAM1uB,EAAKiuB,KAAMjuB,GACvCA,EAAK2sB,OACR3sB,EAAK2sB,KAAO3sB,EAAKiuB,MAEnBjuB,EAAK8C,QACP,CAEA,SAASyoL,EAAMnoL,EAAOwpB,EAAMsB,EAAMytF,GAChC,KAAMx0G,gBAAgBokL,GACpB,OAAO,IAAIA,EAAKnoL,EAAOwpB,EAAMsB,EAAMytF,GAGrCx0G,KAAKw0G,KAAOA,EACZx0G,KAAK/D,MAAQA,EAETwpB,GACFA,EAAKsB,KAAO/mB,KACZA,KAAKylB,KAAOA,GAEZzlB,KAAKylB,KAAO,KAGVsB,GACFA,EAAKtB,KAAOzlB,KACZA,KAAK+mB,KAAOA,GAEZ/mB,KAAK+mB,KAAO,IAEhB,CAnaAjvB,EAAOD,QAAUssB,EAEjBA,EAAQigK,KAAOA,EACfjgK,EAAQqP,OAASrP,EAyBjBA,EAAQ9qB,UAAUssB,WAAa,SAAUpnB,GACvC,GAAIA,EAAKi2G,OAASx0G,KAChB,MAAM,IAAImG,MAAM,oDAGlB,IAAI4gB,EAAOxoB,EAAKwoB,KACZtB,EAAOlnB,EAAKknB,KAsBhB,OApBIsB,IACFA,EAAKtB,KAAOA,GAGVA,IACFA,EAAKsB,KAAOA,GAGVxoB,IAASyB,KAAK8mB,OAChB9mB,KAAK8mB,KAAOC,GAEVxoB,IAASyB,KAAKwlB,OAChBxlB,KAAKwlB,KAAOC,GAGdlnB,EAAKi2G,KAAK74G,SACV4C,EAAKwoB,KAAO,KACZxoB,EAAKknB,KAAO,KACZlnB,EAAKi2G,KAAO,KAELztF,CACT,EAEA5C,EAAQ9qB,UAAU8rB,YAAc,SAAU5mB,GACxC,GAAIA,IAASyB,KAAK8mB,KAAlB,CAIIvoB,EAAKi2G,MACPj2G,EAAKi2G,KAAK7uF,WAAWpnB,GAGvB,IAAIuoB,EAAO9mB,KAAK8mB,KAChBvoB,EAAKi2G,KAAOx0G,KACZzB,EAAKwoB,KAAOD,EACRA,IACFA,EAAKrB,KAAOlnB,GAGdyB,KAAK8mB,KAAOvoB,EACPyB,KAAKwlB,OACRxlB,KAAKwlB,KAAOjnB,GAEdyB,KAAKrE,QAjBL,CAkBF,EAEAwoB,EAAQ9qB,UAAUgrL,SAAW,SAAU9lL,GACrC,GAAIA,IAASyB,KAAKwlB,KAAlB,CAIIjnB,EAAKi2G,MACPj2G,EAAKi2G,KAAK7uF,WAAWpnB,GAGvB,IAAIinB,EAAOxlB,KAAKwlB,KAChBjnB,EAAKi2G,KAAOx0G,KACZzB,EAAKknB,KAAOD,EACRA,IACFA,EAAKuB,KAAOxoB,GAGdyB,KAAKwlB,KAAOjnB,EACPyB,KAAK8mB,OACR9mB,KAAK8mB,KAAOvoB,GAEdyB,KAAKrE,QAjBL,CAkBF,EAEAwoB,EAAQ9qB,UAAUgC,KAAO,WACvB,IAAK,IAAII,EAAI,EAAGmsB,EAAIlsB,UAAUC,OAAQF,EAAImsB,EAAGnsB,IAC3CJ,EAAK2E,KAAMtE,UAAUD,IAEvB,OAAOuE,KAAKrE,MACd,EAEAwoB,EAAQ9qB,UAAUmuB,QAAU,WAC1B,IAAK,IAAI/rB,EAAI,EAAGmsB,EAAIlsB,UAAUC,OAAQF,EAAImsB,EAAGnsB,IAC3C+rB,EAAQxnB,KAAMtE,UAAUD,IAE1B,OAAOuE,KAAKrE,MACd,EAEAwoB,EAAQ9qB,UAAUquB,IAAM,WACtB,GAAK1nB,KAAKwlB,KAAV,CAIA,IAAIolF,EAAM5qG,KAAKwlB,KAAKvpB,MAQpB,OAPA+D,KAAKwlB,KAAOxlB,KAAKwlB,KAAKC,KAClBzlB,KAAKwlB,KACPxlB,KAAKwlB,KAAKuB,KAAO,KAEjB/mB,KAAK8mB,KAAO,KAEd9mB,KAAKrE,SACEivG,CAVP,CAWF,EAEAzmF,EAAQ9qB,UAAUmS,MAAQ,WACxB,GAAKxL,KAAK8mB,KAAV,CAIA,IAAI8jF,EAAM5qG,KAAK8mB,KAAK7qB,MAQpB,OAPA+D,KAAK8mB,KAAO9mB,KAAK8mB,KAAKC,KAClB/mB,KAAK8mB,KACP9mB,KAAK8mB,KAAKrB,KAAO,KAEjBzlB,KAAKwlB,KAAO,KAEdxlB,KAAKrE,SACEivG,CAVP,CAWF,EAEAzmF,EAAQ9qB,UAAUwC,QAAU,SAAUiqB,EAAIC,GACxCA,EAAQA,GAAS/lB,KACjB,IAAK,IAAIulB,EAASvlB,KAAK8mB,KAAMrrB,EAAI,EAAc,OAAX8pB,EAAiB9pB,IACnDqqB,EAAG3rB,KAAK4rB,EAAOR,EAAOtpB,MAAOR,EAAGuE,MAChCulB,EAASA,EAAOwB,IAEpB,EAEA5C,EAAQ9qB,UAAUirL,eAAiB,SAAUx+J,EAAIC,GAC/CA,EAAQA,GAAS/lB,KACjB,IAAK,IAAIulB,EAASvlB,KAAKwlB,KAAM/pB,EAAIuE,KAAKrE,OAAS,EAAc,OAAX4pB,EAAiB9pB,IACjEqqB,EAAG3rB,KAAK4rB,EAAOR,EAAOtpB,MAAOR,EAAGuE,MAChCulB,EAASA,EAAOE,IAEpB,EAEAtB,EAAQ9qB,UAAUM,IAAM,SAAU2M,GAChC,IAAK,IAAI7K,EAAI,EAAG8pB,EAASvlB,KAAK8mB,KAAiB,OAAXvB,GAAmB9pB,EAAI6K,EAAG7K,IAE5D8pB,EAASA,EAAOwB,KAElB,GAAItrB,IAAM6K,GAAgB,OAAXif,EACb,OAAOA,EAAOtpB,KAElB,EAEAkoB,EAAQ9qB,UAAUkrL,WAAa,SAAUj+K,GACvC,IAAK,IAAI7K,EAAI,EAAG8pB,EAASvlB,KAAKwlB,KAAiB,OAAXD,GAAmB9pB,EAAI6K,EAAG7K,IAE5D8pB,EAASA,EAAOE,KAElB,GAAIhqB,IAAM6K,GAAgB,OAAXif,EACb,OAAOA,EAAOtpB,KAElB,EAEAkoB,EAAQ9qB,UAAUkZ,IAAM,SAAUuT,EAAIC,GACpCA,EAAQA,GAAS/lB,KAEjB,IADA,IAAI4qG,EAAM,IAAIzmF,EACLoB,EAASvlB,KAAK8mB,KAAiB,OAAXvB,GAC3BqlF,EAAIvvG,KAAKyqB,EAAG3rB,KAAK4rB,EAAOR,EAAOtpB,MAAO+D,OACtCulB,EAASA,EAAOwB,KAElB,OAAO6jF,CACT,EAEAzmF,EAAQ9qB,UAAUmrL,WAAa,SAAU1+J,EAAIC,GAC3CA,EAAQA,GAAS/lB,KAEjB,IADA,IAAI4qG,EAAM,IAAIzmF,EACLoB,EAASvlB,KAAKwlB,KAAiB,OAAXD,GAC3BqlF,EAAIvvG,KAAKyqB,EAAG3rB,KAAK4rB,EAAOR,EAAOtpB,MAAO+D,OACtCulB,EAASA,EAAOE,KAElB,OAAOmlF,CACT,EAEAzmF,EAAQ9qB,UAAU26B,OAAS,SAAUlO,EAAI2+J,GACvC,IAAI5/B,EACAt/H,EAASvlB,KAAK8mB,KAClB,GAAIprB,UAAUC,OAAS,EACrBkpJ,EAAM4/B,MACD,KAAIzkL,KAAK8mB,KAId,MAAM,IAAIhnB,UAAU,8CAHpBylB,EAASvlB,KAAK8mB,KAAKC,KACnB89H,EAAM7kJ,KAAK8mB,KAAK7qB,KAGlB,CAEA,IAAK,IAAIR,EAAI,EAAc,OAAX8pB,EAAiB9pB,IAC/BopJ,EAAM/+H,EAAG++H,EAAKt/H,EAAOtpB,MAAOR,GAC5B8pB,EAASA,EAAOwB,KAGlB,OAAO89H,CACT,EAEA1gI,EAAQ9qB,UAAUqrL,cAAgB,SAAU5+J,EAAI2+J,GAC9C,IAAI5/B,EACAt/H,EAASvlB,KAAKwlB,KAClB,GAAI9pB,UAAUC,OAAS,EACrBkpJ,EAAM4/B,MACD,KAAIzkL,KAAKwlB,KAId,MAAM,IAAI1lB,UAAU,8CAHpBylB,EAASvlB,KAAKwlB,KAAKC,KACnBo/H,EAAM7kJ,KAAKwlB,KAAKvpB,KAGlB,CAEA,IAAK,IAAIR,EAAIuE,KAAKrE,OAAS,EAAc,OAAX4pB,EAAiB9pB,IAC7CopJ,EAAM/+H,EAAG++H,EAAKt/H,EAAOtpB,MAAOR,GAC5B8pB,EAASA,EAAOE,KAGlB,OAAOo/H,CACT,EAEA1gI,EAAQ9qB,UAAUigB,QAAU,WAE1B,IADA,IAAIqO,EAAM,IAAIziB,MAAMlF,KAAKrE,QAChBF,EAAI,EAAG8pB,EAASvlB,KAAK8mB,KAAiB,OAAXvB,EAAiB9pB,IACnDksB,EAAIlsB,GAAK8pB,EAAOtpB,MAChBspB,EAASA,EAAOwB,KAElB,OAAOY,CACT,EAEAxD,EAAQ9qB,UAAUsrL,eAAiB,WAEjC,IADA,IAAIh9J,EAAM,IAAIziB,MAAMlF,KAAKrE,QAChBF,EAAI,EAAG8pB,EAASvlB,KAAKwlB,KAAiB,OAAXD,EAAiB9pB,IACnDksB,EAAIlsB,GAAK8pB,EAAOtpB,MAChBspB,EAASA,EAAOE,KAElB,OAAOkC,CACT,EAEAxD,EAAQ9qB,UAAU0S,MAAQ,SAAU9E,EAAM8mB,IACxCA,EAAKA,GAAM/tB,KAAKrE,QACP,IACPoyB,GAAM/tB,KAAKrE,SAEbsL,EAAOA,GAAQ,GACJ,IACTA,GAAQjH,KAAKrE,QAEf,IAAI6wB,EAAM,IAAIrI,EACd,GAAI4J,EAAK9mB,GAAQ8mB,EAAK,EACpB,OAAOvB,EAELvlB,EAAO,IACTA,EAAO,GAEL8mB,EAAK/tB,KAAKrE,SACZoyB,EAAK/tB,KAAKrE,QAEZ,IAAK,IAAIF,EAAI,EAAG8pB,EAASvlB,KAAK8mB,KAAiB,OAAXvB,GAAmB9pB,EAAIwL,EAAMxL,IAC/D8pB,EAASA,EAAOwB,KAElB,KAAkB,OAAXxB,GAAmB9pB,EAAIsyB,EAAItyB,IAAK8pB,EAASA,EAAOwB,KACrDyF,EAAInxB,KAAKkqB,EAAOtpB,OAElB,OAAOuwB,CACT,EAEArI,EAAQ9qB,UAAUurL,aAAe,SAAU39K,EAAM8mB,IAC/CA,EAAKA,GAAM/tB,KAAKrE,QACP,IACPoyB,GAAM/tB,KAAKrE,SAEbsL,EAAOA,GAAQ,GACJ,IACTA,GAAQjH,KAAKrE,QAEf,IAAI6wB,EAAM,IAAIrI,EACd,GAAI4J,EAAK9mB,GAAQ8mB,EAAK,EACpB,OAAOvB,EAELvlB,EAAO,IACTA,EAAO,GAEL8mB,EAAK/tB,KAAKrE,SACZoyB,EAAK/tB,KAAKrE,QAEZ,IAAK,IAAIF,EAAIuE,KAAKrE,OAAQ4pB,EAASvlB,KAAKwlB,KAAiB,OAAXD,GAAmB9pB,EAAIsyB,EAAItyB,IACvE8pB,EAASA,EAAOE,KAElB,KAAkB,OAAXF,GAAmB9pB,EAAIwL,EAAMxL,IAAK8pB,EAASA,EAAOE,KACvD+G,EAAInxB,KAAKkqB,EAAOtpB,OAElB,OAAOuwB,CACT,EAEArI,EAAQ9qB,UAAUq5C,OAAS,SAAU5X,EAAOgiF,KAAgBh1D,GACtDhtB,EAAQ96B,KAAKrE,SACfm/B,EAAQ96B,KAAKrE,OAAS,GAEpBm/B,EAAQ,IACVA,EAAQ96B,KAAKrE,OAASm/B,GAGxB,IAAK,IAAIr/B,EAAI,EAAG8pB,EAASvlB,KAAK8mB,KAAiB,OAAXvB,GAAmB9pB,EAAIq/B,EAAOr/B,IAChE8pB,EAASA,EAAOwB,KAGlB,IAAIyF,EAAM,GACV,IAAS/wB,EAAI,EAAG8pB,GAAU9pB,EAAIqhH,EAAarhH,IACzC+wB,EAAInxB,KAAKkqB,EAAOtpB,OAChBspB,EAASvlB,KAAK2lB,WAAWJ,GAU3B,IARe,OAAXA,IACFA,EAASvlB,KAAKwlB,MAGZD,IAAWvlB,KAAK8mB,MAAQvB,IAAWvlB,KAAKwlB,OAC1CD,EAASA,EAAOE,MAGThqB,EAAI,EAAGA,EAAIqsD,EAAMnsD,OAAQF,IAChC8pB,EAAS+lJ,EAAOtrK,KAAMulB,EAAQuiC,EAAMrsD,IAEtC,OAAO+wB,CACT,EAEArI,EAAQ9qB,UAAUigF,QAAU,WAG1B,IAFA,IAAIxyD,EAAO9mB,KAAK8mB,KACZtB,EAAOxlB,KAAKwlB,KACPD,EAASuB,EAAiB,OAAXvB,EAAiBA,EAASA,EAAOE,KAAM,CAC7D,IAAI6G,EAAI/G,EAAOE,KACfF,EAAOE,KAAOF,EAAOwB,KACrBxB,EAAOwB,KAAOuF,CAChB,CAGA,OAFAtsB,KAAK8mB,KAAOtB,EACZxlB,KAAKwlB,KAAOsB,EACL9mB,IACT,EA0DA,IAEE,EAAQ,MAAR,CAAyBmkB,EAC3B,CAAE,MAAO4E,GAAK,gCCnad,IAAI87J,EAAe,WAAc,SAAS7oL,EAAiBR,EAAQa,GAAS,IAAK,IAAIZ,EAAI,EAAGA,EAAIY,EAAMV,OAAQF,IAAK,CAAE,IAAI+D,EAAanD,EAAMZ,GAAI+D,EAAWpE,WAAaoE,EAAWpE,aAAc,EAAOoE,EAAWtD,cAAe,EAAU,UAAWsD,IAAYA,EAAWrD,UAAW,GAAMrC,OAAOC,eAAeyB,EAAQgE,EAAWvF,IAAKuF,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaU,EAAYurJ,GAAiJ,OAA9HvrJ,GAAYvE,EAAiB6D,EAAYxG,UAAWkH,GAAiBurJ,GAAa9vJ,EAAiB6D,EAAaisJ,GAAqBjsJ,CAAa,CAAG,CAA7hB,GAIfuwC,EAAU51C,EAFD,EAAQ,QAMjBo1E,EAAcp1E,EAFD,EAAQ,QAMrBsqL,EAAqBtqL,EAFD,EAAQ,QAI5BE,EAAW,EAAQ,OAInBqqL,EAAWvqL,EAFD,EAAQ,OAItB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAyB9F,IAAI8D,EAAiB,SAAUqzE,GAQ7B,SAASrzE,EAAeV,IA/B1B,SAAyBuD,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAgCpJC,CAAgBC,KAAMjD,GAEtB,IAAIqF,EAhCR,SAAoCvJ,EAAMsB,GAAQ,IAAKtB,EAAQ,MAAM,IAAIq3E,eAAe,6DAAgE,OAAO/1E,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BtB,EAAPsB,CAAa,CAgC/N81E,CAA2BjwE,MAAOjD,EAAem0E,WAAap3E,OAAOitF,eAAehqF,IAAiB5C,KAAK6F,KAAM3D,IAExH81C,EAAQ,CAAC,EAoBb,OAnBK91C,EAAMI,QAICJ,EAAMO,OAINP,EAAMQ,OAAUR,EAAMS,aAKhCq1C,EAAQ,CACN90C,WAAY,IAAIynL,EAAmBl2K,QAAQvS,IAL3B,SAAdA,EAAMG,KAAgC,eAAdH,EAAMG,KAChCE,QAAQC,MAAM,+EALE,SAAdN,EAAMG,KAAgC,eAAdH,EAAMG,KAChCE,QAAQC,MAAM,8EALE,SAAdN,EAAMG,KAAgC,eAAdH,EAAMG,KAChCE,QAAQC,MAAM,iFAgBlByF,EAAM+vC,MAAQA,EACP/vC,CACT,CAwDA,OA7GF,SAAmB2uE,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIlxE,UAAU,kEAAoEkxE,GAAeD,EAAS13E,UAAYS,OAAO05B,OAAOw9C,GAAcA,EAAW33E,UAAW,CAAED,YAAa,CAAE6C,MAAO80E,EAAU31E,YAAY,EAAOe,UAAU,EAAMD,cAAc,KAAe80E,IAAYl3E,OAAOm3E,eAAiBn3E,OAAOm3E,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,EAAY,CAoB3eG,CAAUp0E,EAAgBqzE,GA0C1By0G,EAAa9nL,EAAgB,CAAC,CAC5B9C,IAAK,qBACLgC,MAAO,SAA4B67C,GACjC,IAAIxxB,GAAQ,EAOZ,GANItmB,KAAK3D,MAAMQ,QAAUi7C,EAAUj7C,QACjCypB,GAAQ,IAEL,EAAIy+J,EAASn2K,SAASkpC,EAAU15C,KAAM4B,KAAK3D,MAAM+B,QACpDkoB,GAAQ,GAENA,EAAO,CACT,IAAI0+J,EAAgB,IAAIF,EAAmBl2K,QAAQ5O,KAAK3D,OACxD2D,KAAKuyC,SAAS,CACZl1C,WAAY2nL,GAEhB,CACF,GAOC,CACD/qL,IAAK,gBACLgC,MAAO,WACL,OAAO+D,KAAKmyC,MAAM90C,UACpB,GAOC,CACDpD,IAAK,SACLgC,MAAO,WACL,IAAIgpL,EAAkBjlL,KAAKm1B,SAAW,CAAC,EAEvC,OADA8vJ,EAAgBjlL,KAAK3D,MAAMI,SAAWuD,KAAKmyC,MAAM90C,WAC1C+yC,EAAQxhC,QAAQjR,cACrBjD,EAAS0C,cAAcQ,SACvB,CAAE3B,MAAOgpL,GACTjlL,KAAK3D,MAAMwB,SAEf,KAGKd,CACT,CA3FqB,CA2FnBqzC,EAAQxhC,QAAQ+R,WAElB5jB,EAAegpF,YAAcrrF,EAAS0C,cAItCL,EAAegB,aAAe,CAC5BvB,IAAK,SAGPO,EAAeiB,UAAY,CACzBlB,aAAc8yE,EAAYhhE,QAAQ3Q,KAClCrB,OAAQgzE,EAAYhhE,QAAQ1Q,OAAOC,WACnCC,KAAMwxE,EAAYhhE,QAAQ/T,OAC1BwD,SAAUuxE,EAAYhhE,QAAQtQ,OAC9BT,SAAU+xE,EAAYhhE,QAAQrQ,KAC9B/B,IAAKozE,EAAYhhE,QAAQ1Q,OACzBM,WAAYoxE,EAAYhhE,QAAQ1Q,OAChCO,eAAgBmxE,EAAYhhE,QAAQtQ,OACpCI,MAAOkxE,EAAYhhE,QAAQjQ,KAC3BC,QAASgxE,EAAYhhE,QAAQ1Q,OAC7BW,gBAAiB+wE,EAAYhhE,QAAQ1Q,OACrCzB,QAASmzE,EAAYhhE,QAAQ1Q,OAAOC,WACpCW,sBAAuB8wE,EAAYhhE,QAAQ1Q,OAC3CrB,MAAO+yE,EAAYhhE,QAAQ1Q,OAC3Ba,WAAY6wE,EAAYhhE,QAAQ1Q,sCCrKlCpE,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAETpE,EAAQuF,mBAAgB2F,EAExB,IAIgC9J,EAF5Bm3C,GAE4Bn3C,EAJnB,EAAQ,SAIgCA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAEnEpB,EAAQuF,cAAgBgzC,EAAQxhC,QAAQ5P,cAAc,CACxEC,UAAW,WACT,OAAO,IAAIC,SAAQ,SAAUC,GAC3B,OAAOA,GACT,GACF,kCChBFrF,OAAOC,eAAelC,EAAS,aAAc,CAC3CoE,OAAO,IAGT,IAAIjD,EAA4B,mBAAXE,QAAoD,iBAApBA,OAAOC,SAAwB,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,mBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAEvQ4rL,EAAe,WAAc,SAAS7oL,EAAiBR,EAAQa,GAAS,IAAK,IAAIZ,EAAI,EAAGA,EAAIY,EAAMV,OAAQF,IAAK,CAAE,IAAI+D,EAAanD,EAAMZ,GAAI+D,EAAWpE,WAAaoE,EAAWpE,aAAc,EAAOoE,EAAWtD,cAAe,EAAU,UAAWsD,IAAYA,EAAWrD,UAAW,GAAMrC,OAAOC,eAAeyB,EAAQgE,EAAWvF,IAAKuF,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaU,EAAYurJ,GAAiJ,OAA9HvrJ,GAAYvE,EAAiB6D,EAAYxG,UAAWkH,GAAiBurJ,GAAa9vJ,EAAiB6D,EAAaisJ,GAAqBjsJ,CAAa,CAAG,CAA7hB,GAkBfklL,EAAWvqL,EAFD,EAAQ,QAMlB0qL,EAAM1qL,EAFD,EAAQ,QAMb2qL,EAAW3qL,EAFD,EAAQ,QAItB,SAASA,EAAuBvB,GAAO,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,EAAO,CAO9F,IAAI0G,EAAmB,WAMrB,SAASA,EAAiBtD,IAX5B,SAAyBuD,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAYpJC,CAAgBC,KAAML,GAEtB,IAAI9C,EAAQR,EAAMQ,MACd6B,EAAQrC,EAAMqC,MAClB,GAAKrC,EAAMmE,YA0BTR,KAAKS,WAAapE,EAAMmE,gBA1BF,CACtB,IAAIE,EAAe,CACjBC,eAAgB,SAAwBC,GACtCA,EAAG,KAAM/D,EACX,EACAgE,IAAK,SAAaC,GAChBpC,GAASA,EAAMoC,EACjB,GAEEC,EAAU,CACZC,YAAa3E,EAAMG,IACnByE,eAAgB5E,EAAMS,aACtBoE,kBAAmB7E,EAAMO,OACzBuE,kBAAmB9E,EAAMI,QACzB2E,oBAAqB/E,EAAMuC,QAC3ByC,6BAA8BhF,EAAMwC,gBACpCyC,4BAA6BjF,EAAMkF,gBACnCC,mBAAoBnF,EAAMgC,SAC1BoD,sBAAuBpF,EAAM0C,WAC7B2C,sBAAuBrF,EAAMmC,WAC7BmD,wBAAyBtF,EAAMyC,uBAE7B0B,EAAc,IAAI2kL,EAASv2K,QAAQlO,EAAcK,GACrDP,EAAYoB,QAAO,GACnB5B,KAAKS,WAAaD,CACpB,CAGAR,KAAK6B,WAAWxF,EAAM+B,MACtB4B,KAAKK,cAAe,EAAI6kL,EAAIt2K,UAC9B,CAqFA,OA5EAi2K,EAAallL,EAAkB,CAAC,CAC9B1F,IAAK,aACLgC,MAAO,SAAoBmC,GACzB4B,KAAKgC,UAAY5D,CACnB,GAUC,CACDnE,IAAK,cACLgC,MAAO,SAAqBgG,EAAWC,EAASC,GAC9C,IAAIC,EAAQpC,KAWZ,OATAlG,OAAOiB,KAAKkH,GAAWpG,SAAQ,SAAU5B,GACvC,IAAIgC,EAAQgG,EAAUhI,GAClBoI,EAASF,EAAYA,EAAY,IAAMlI,EAAMA,GAC7CgC,GAA2E,iBAAhD,IAAVA,EAAwB,YAAcjD,EAAQiD,KAA0BA,aAAiBsG,KAG5GL,EAAQG,GAAUpG,EAFlBmG,EAAMI,YAAYvG,EAAOiG,EAASG,EAItC,IACOH,CACT,GAUC,CACDjI,IAAK,YACLgC,MAAO,WACL,IAAI0G,EAAgBjH,UAAUC,OAAS,QAAsBoH,IAAjBrH,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAErF+G,EAASzC,KAET4C,EAAkBlH,UAAU,GAC5BqF,EAAUrF,UAAU,GAExB,OAAO,IAAIwD,SAAQ,SAAUC,EAAS6D,GACpC,IAAIC,EAAS,CAAC,EACVI,EAAcZ,EAAOT,WAAa,CAAC,EAClCqB,EAAYC,QACfD,EAAYC,MAAQ,CAAC,GAEvBD,EAAYC,MAAMC,aAAed,EAAOpC,aACxCgD,EAAYC,MAAME,MAAO,EAAI0hL,EAAIt2K,YACjC,EAAIm2K,EAASn2K,SAAS3L,EAAQI,EAAaV,GAE3C,IAAIkB,EAAgBpB,EAAOD,YAAYS,EAAQ,CAAC,GAC5CrC,EAAK,SAAYkD,GACdA,EAGHd,EAAOc,GAFP3E,EAAQ0E,EAIZ,EACApB,EAAOhC,WAAWsD,UAAUF,EAAgBjB,OAAuBG,EAALnC,EAAgBG,GAE1E6B,GACFH,EAAOhC,WAAWf,OAAM,EAAMkB,EAElC,GACF,KAGKjB,CACT,CA/HuB,GAiIvB9H,EAAA,QAAkB8H,gCCtKlB,IAAIswC,EAAWn2C,OAAOo2C,QAAU,SAAU10C,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAU,CAAE,OAAOuB,CAAQ,EAE3PqpL,EAAe,WAAc,SAAS7oL,EAAiBR,EAAQa,GAAS,IAAK,IAAIZ,EAAI,EAAGA,EAAIY,EAAMV,OAAQF,IAAK,CAAE,IAAI+D,EAAanD,EAAMZ,GAAI+D,EAAWpE,WAAaoE,EAAWpE,aAAc,EAAOoE,EAAWtD,cAAe,EAAU,UAAWsD,IAAYA,EAAWrD,UAAW,GAAMrC,OAAOC,eAAeyB,EAAQgE,EAAWvF,IAAKuF,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaU,EAAYurJ,GAAiJ,OAA9HvrJ,GAAYvE,EAAiB6D,EAAYxG,UAAWkH,GAAiBurJ,GAAa9vJ,EAAiB6D,EAAaisJ,GAAqBjsJ,CAAa,CAAG,CAA7hB,GAEnBhI,EAAA,QAAkB,SAAUutL,GAC1B,OAAO,SAAmBpoG,GACxB,OAAO,SAAU5M,GAOf,SAASi1G,EAAmBhpL,IAwElC,SAAyBuD,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,oCAAwC,CAvEhJC,CAAgBC,KAAMqlL,GAEtB,IAAIjjL,EAuEZ,SAAoCvJ,EAAMsB,GAAQ,IAAKtB,EAAQ,MAAM,IAAIq3E,eAAe,6DAAgE,OAAO/1E,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BtB,EAAPsB,CAAa,CAvE3N81E,CAA2BjwE,MAAOqlL,EAAmBn0G,WAAap3E,OAAOitF,eAAes+F,IAAqBlrL,KAAK6F,KAAM3D,IAGpI,OADA+F,EAAMkjL,iBAAmBljL,EAAMkjL,iBAAiBnlL,KAAKiC,GAC9CA,CACT,CAoDA,OAiBN,SAAmB2uE,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIlxE,UAAU,kEAAoEkxE,GAAeD,EAAS13E,UAAYS,OAAO05B,OAAOw9C,GAAcA,EAAW33E,UAAW,CAAED,YAAa,CAAE6C,MAAO80E,EAAU31E,YAAY,EAAOe,UAAU,EAAMD,cAAc,KAAe80E,IAAYl3E,OAAOm3E,eAAiBn3E,OAAOm3E,eAAeF,EAAUC,GAAcD,EAASG,UAAYF,EAAY,CAlFveG,CAAUk0G,EAAoBj1G,GAqB9By0G,EAAaQ,EAAoB,CAAC,CAChCprL,IAAK,qBACLgC,MAAO,WACL,OAAO+D,KAAKulL,WACd,GAQC,CACDtrL,IAAK,mBACLgC,MAAO,SAA0BgB,GAC/B+C,KAAKulL,YAActoL,CACrB,GAOC,CACDhD,IAAK,SACLgC,MAAO,WACL,IAAIwG,EAASzC,KAEb,OAAOowC,EAAQxhC,QAAQjR,cACrBjD,EAAS0C,cAAc6kD,SACvB,MACA,SAAUujI,GACR,IAAIC,EAMJ,OAJEA,EADEL,GAAiBI,GAAaA,EAAUJ,GACxBI,EAAUJ,GAEVI,EAEbp1I,EAAQxhC,QAAQjR,cAAcq/E,EAAkB/sC,EAAS,CAAEhzC,IAAKwF,EAAO6iL,kBAAoB7iL,EAAOpG,MAAO,CAAEmpL,UAAWC,IAC/H,GAEJ,KAGKJ,CACT,CAnEO,CAmELj1I,EAAQxhC,QAAQ+R,UACpB,CACF,EAEA,IAMgC1nB,EAJ5Bm3C,GAI4Bn3C,EANnB,EAAQ,SAMgCA,EAAIM,WAAaN,EAAM,CAAE2V,QAAS3V,GAFnFyB,EAAW,EAAQ,wBCnFvB,SACA,iBACA7C,EAAQ2tL,UAAY,EAApB,eACA,kCCFA,IADA,IAAIlhL,EAAY,GACP7I,EAAI,EAAGA,EAAI,MAAOA,EACzB6I,EAAU7I,IAAMA,EAAI,KAAOmI,SAAS,IAAIW,OAAO,GAmBjDzM,EAAOD,QAhBP,SAAqB2M,EAAKC,GACxB,IAAIhJ,EAAIgJ,GAAU,EACdC,EAAMJ,EAEV,MAAO,CACLI,EAAIF,EAAI/I,MAAOiJ,EAAIF,EAAI/I,MACvBiJ,EAAIF,EAAI/I,MAAOiJ,EAAIF,EAAI/I,MAAO,IAC9BiJ,EAAIF,EAAI/I,MAAOiJ,EAAIF,EAAI/I,MAAO,IAC9BiJ,EAAIF,EAAI/I,MAAOiJ,EAAIF,EAAI/I,MAAO,IAC9BiJ,EAAIF,EAAI/I,MAAOiJ,EAAIF,EAAI/I,MAAO,IAC9BiJ,EAAIF,EAAI/I,MAAOiJ,EAAIF,EAAI/I,MACvBiJ,EAAIF,EAAI/I,MAAOiJ,EAAIF,EAAI/I,MACvBiJ,EAAIF,EAAI/I,MAAOiJ,EAAIF,EAAI/I,OACtBkJ,KAAK,GACV,aChBA,IAAIC,EAAqC,oBAAZ,QAA2BC,OAAOD,iBAAmBC,OAAOD,gBAAgBzE,KAAK0E,SACnE,oBAAd,UAAuE,mBAAnClM,OAAOmM,SAASF,iBAAiCE,SAASF,gBAAgBzE,KAAK2E,UAEhJ,GAAIF,EAAiB,CAEnB,IAAIG,EAAQ,IAAIC,WAAW,IAE3BlN,EAAOD,QAAU,WAEf,OADA+M,EAAgBG,GACTA,CACT,CACF,KAAO,CAKL,IAAIE,EAAO,IAAIC,MAAM,IAErBpN,EAAOD,QAAU,WACf,IAAK,IAAWsN,EAAP1J,EAAI,EAAMA,EAAI,GAAIA,IACN,IAAV,EAAJA,KAAiB0J,EAAoB,WAAhBC,KAAKC,UAC/BJ,EAAKxJ,GAAK0J,MAAY,EAAJ1J,IAAa,GAAK,IAGtC,OAAOwJ,CACT,CACF,mBCjCA,IAQIK,EACAC,EATAC,EAAM,EAAQ,OACdC,EAAc,EAAQ,OAWtBC,EAAa,EACbC,EAAa,EA+FjB7N,EAAOD,QA5FP,SAAYkJ,EAASyD,EAAKC,GACxB,IAAIhJ,EAAI+I,GAAOC,GAAU,EACrBmB,EAAIpB,GAAO,GAGXjG,GADJwC,EAAUA,GAAW,CAAC,GACHxC,MAAQ+G,EACvBO,OAAgC9C,IAArBhC,EAAQ8E,SAAyB9E,EAAQ8E,SAAWN,EAKnE,GAAY,MAARhH,GAA4B,MAAZsH,EAAkB,CACpC,IAAIC,EAAYN,IACJ,MAARjH,IAEFA,EAAO+G,EAAU,CACA,EAAfQ,EAAU,GACVA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,KAGtD,MAAZD,IAEFA,EAAWN,EAAiD,OAApCO,EAAU,IAAM,EAAIA,EAAU,IAE1D,CAMA,IAAIC,OAA0BhD,IAAlBhC,EAAQgF,MAAsBhF,EAAQgF,OAAQ,IAAIxD,MAAOyD,UAIjEC,OAA0BlD,IAAlBhC,EAAQkF,MAAsBlF,EAAQkF,MAAQN,EAAa,EAGnEO,EAAMH,EAAQL,GAAeO,EAAQN,GAAY,IAcrD,GAXIO,EAAK,QAA0BnD,IAArBhC,EAAQ8E,WACpBA,EAAWA,EAAW,EAAI,QAKvBK,EAAK,GAAKH,EAAQL,SAAiC3C,IAAlBhC,EAAQkF,QAC5CA,EAAQ,GAINA,GAAS,IACX,MAAM,IAAIE,MAAM,mDAGlBT,EAAaK,EACbJ,EAAaM,EACbV,EAAYM,EAMZ,IAAIO,GAA4B,KAAb,WAHnBL,GAAS,cAG+BE,GAAS,WACjDL,EAAEnK,KAAO2K,IAAO,GAAK,IACrBR,EAAEnK,KAAO2K,IAAO,GAAK,IACrBR,EAAEnK,KAAO2K,IAAO,EAAI,IACpBR,EAAEnK,KAAY,IAAL2K,EAGT,IAAIC,EAAON,EAAQ,WAAc,IAAS,UAC1CH,EAAEnK,KAAO4K,IAAQ,EAAI,IACrBT,EAAEnK,KAAa,IAAN4K,EAGTT,EAAEnK,KAAO4K,IAAQ,GAAK,GAAM,GAC5BT,EAAEnK,KAAO4K,IAAQ,GAAK,IAGtBT,EAAEnK,KAAOoK,IAAa,EAAI,IAG1BD,EAAEnK,KAAkB,IAAXoK,EAGT,IAAK,IAAIS,EAAI,EAAGA,EAAI,IAAKA,EACvBV,EAAEnK,EAAI6K,GAAK/H,EAAK+H,GAGlB,OAAO9B,GAAYiB,EAAYG,EACjC,gCCxDA,SAASgB,EAAIN,EAAG3K,GACd,IAAIkL,EAAMP,EAAE1C,WACZ,GAAIiD,EAAIlL,OAASA,EAAQ,CACvB,IAAImL,EAAU,GACdA,EAAQnL,OAASA,EAASkL,EAAIlL,OAAS,EACvCkL,EAAMC,EAAQnC,KAAK,KAAOkC,CAC5B,CACA,OAAOA,CACT,CAEA,SAASE,EAAOC,EAAMC,GAepB,OAdYnN,OAAOoN,oBAAoBD,GAEjCpL,SAAQ,SAAUsL,GACtB,GAA0B,iBAAfF,EAAKE,GACY,iBAAfH,EAAKG,KACdH,EAAKG,GAAQ,CAAC,GAEhBJ,EAAOC,EAAKG,GAAOF,EAAKE,QACnB,CACL,IAAIC,EAActN,OAAOE,yBAAyBiN,EAAME,GACxDrN,OAAOC,eAAeiN,EAAMG,EAAMC,EACpC,CACF,IAEOJ,CACT,CAQA,SAASK,EAAgBC,EAAWxD,EAAKyD,GACvCD,EAAUzL,SAAQ,SAAU2L,GAE1BC,YAAW,WACTD,EAAS1D,EAAKyD,EAChB,GACF,GACF,CAOA,IACIG,EAAiB,CACnBC,KAAQ,uBACRC,MAAQ,6BACRC,IAAQ,4BAENC,EAAc,UAIdC,EAAkB,CACpB/G,YAAa,OACbC,gBAAgB,EAChBS,sBAAuB,UACvBJ,4BAA6B,GAC7BE,mBAAoB,IACpBN,kBAAmB,KACnBE,oBAAqB,KACrBC,kCAA8B0B,EAC9B5B,kBAAmB,KACnBM,sBAAuB,UACvBE,wBAAyB,iBAEvBqG,EAAmB,CACrB,oBACA,sBACA,qBASF,SAASC,EAAOvH,EAAcK,GAC5B,IAAI2kL,EAAO1lL,KACXU,EAAeA,GAAgB,CAAC,EAChCK,EAAUA,GAAW,CAAC,EAEtB,IAAImH,EAAa,SAAUpH,GAEzB,MADA4kL,EAAKv9K,KAAKrH,GACJ,IAAIqF,MAAM,UAAYrF,EAC9B,EAGAd,KAAKoI,cAAgB,GACrBpI,KAAKqI,iBAAmB,GACxBrI,KAAKsI,cAAgB,EACrBtI,KAAKuI,YAAa,EAGlBvI,KAAKwI,cAAgBzB,EAAO,CAAC,EAAGrG,GAC3BA,EAAaC,gBAAyD,mBAAhCD,EAAaC,gBACtDuH,EAAW,sCAIblI,KAAKyI,SAAW,CAAC,EACjB3O,OAAOiB,KAAKgN,GAAiBlM,SAAQ,SAAU5B,GAC7C+F,KAAKyI,SAASxO,GAAO8G,EAAQ9G,IAAQ8N,EAAgB9N,EACvD,GAAG+F,MAGHgI,EAAiBnM,SAAQ,SAAU6M,GAC5B1I,KAAKyI,SAASC,IACjBR,EAAW,mBAAqBQ,EAEpC,GAAG1I,KACL,CAEAiI,EAAO5O,UAAU8O,KAAO,SAAUrH,GAChC,IAAI8H,EAAQ5I,KAAKwI,cAAc3H,IAC3B+H,GACHA,EA1Ec,aA0EK9H,EAEtB,EAEAmH,EAAO5O,UAAUwP,UAAY,SAAUC,EAAKtB,GACtCxH,KAAKwI,cAAcO,SACrB/I,KAAKwI,cAAcO,SAASD,EAAKtB,GAGnCA,EAAS,KAAM,CAAC,EAClB,EAEAS,EAAO5O,UAAU2P,gBAAkB,SAAUxB,GAC3CxH,KAAKwI,cAAc7H,eAAe6G,EACpC,EAEAS,EAAO5O,UAAU4P,kBAAoB,WAC/BjJ,KAAKwI,cAAcU,kBACrBlJ,KAAKwI,cAAcU,kBAEvB,EAEAjB,EAAO5O,UAAU8P,gBAAkB,WACjC,OAAOzB,EAAe1H,KAAKyI,SAASzH,aAAehB,KAAKyI,SAASzH,YAAc,MACjF,EAEAiH,EAAO5O,UAAU+P,kBAAoB,WACnC,OAAO1B,EAAe1H,KAAKmJ,kBAC7B,EAEAlB,EAAO5O,UAAUgQ,iBAAmB,SAAUC,GAE5C,IAAIC,EAAOD,EAAKE,cACZC,EAAK7C,EAAI0C,EAAKI,WAAa,EAAG,GAC9BC,EAAK/C,EAAI0C,EAAKM,UAAW,GACzBC,EAAKjD,EAAI0C,EAAKQ,WAAY,GAC1BC,EAAKnD,EAAI0C,EAAKU,aAAc,GAC5BC,EAAKrD,EAAI0C,EAAKY,aAAc,GAC5BC,EAAMvD,EAAI0C,EAAKc,kBAAmB,GAElC3F,EAAS6E,EAAKe,oBACdC,EAAO7F,EAAS,EAAI,IAAM,IAC1B8F,EAAQnF,KAAKoF,MAAMpF,KAAKqF,IAAIhG,GAAU,IACtCiG,EAAOtF,KAAKqF,IAAIhG,GAAU,GAG9B,OAAO8E,EAAO,IAAME,EAAK,IAAME,EAAK,IAAME,EAAK,IAAME,EAAK,IAAME,EAAK,IAAME,GAFlEG,EAAO1D,EAAI2D,EAAO,GAAK3D,EAAI8D,EAAM,GAG5C,EAEAzC,EAAO5O,UAAUsR,gBAAkB,SAAUC,GAC3C,IAAIC,EAAmBD,IAAYA,EAAQ,gBAAkBA,EAAQ,gBACjEE,EAAa,EAEjB,GAAID,EAAkB,CACpB,IAAIE,EACJ,IAEEA,EAAYC,SAASH,EAAkB,GACzC,CAAE,MAAOI,GACT,CAEA,GAAIF,EACFD,EAAa1F,KAAK8F,IAAI,EAAGH,OACpB,CAEL,IAAII,EAAY5I,KAAK6I,MAAMP,GAC3B,GAAIM,EAAW,CAEb,IAAIE,GAAM,IAAI9I,MAAO+I,UAGrBR,EAFmB1F,KAAK8F,IAAI,EAAGC,EAAYE,GAAO,IAChCjG,KAAKoF,MAzIJ,GAyIUpF,KAAKC,SAEpC,CACF,CACF,CAEArF,KAAKyI,SAASjH,mBAAqB4D,KAAK8F,IAAiB,IAAbJ,EAAmB9K,KAAKyI,SAASjH,mBAC/E,EAEAyG,EAAO5O,UAAUkS,YAAc,SAAUjI,GACnCtD,KAAKoI,cAAczM,QAAUqE,KAAKyI,SAASnH,6BAC7CtB,KAAKoI,cAAcoD,QAErBxL,KAAKoI,cAAc/M,KAAKiI,EAC1B,EAEA2E,EAAO5O,UAAUoS,eAAiB,SAAUC,GAE1C1L,KAAKoI,cAAgBsD,EAAapJ,OAAOtC,KAAKoI,eAC9CpI,KAAKoI,cA5NP,SAA4BuD,EAAOC,GACjC,IAAIC,EAAiBF,EACrB,GAAIA,GAASA,EAAMhQ,OAASiQ,GAAaA,EAAY,EAAG,CACtD,IAAIE,EAAaH,EAAMhQ,OAASiQ,EAChCC,EAAiBF,EAAMI,MAAMD,EAAYH,EAAMhQ,OACjD,CACA,OAAOkQ,CACT,CAqNuBG,CAAmBhM,KAAKoI,cAAepI,KAAKyI,SAASnH,4BAC5E,EAEA2G,EAAO5O,UAAU4S,eAAiB,SAAUC,EAAiB1E,EAAU2E,GACrE,IAAIu5K,EAAO1lL,KAOX,GANAmM,EAAeA,GAAgB,EAE3B3E,GACFxH,KAAKqI,iBAAiBhN,KAAKmM,IAGxBxH,KAAKuI,YAA4C,IAA9BvI,KAAKoI,cAAczM,OAAc,CACvD,IAAI2L,EAAYtH,KAAKqI,iBAOrB,OANArI,KAAKqI,iBAAmB,QACnBrI,KAAKuI,WAGRlB,EAAgBC,EAAW,KAAM,GAFjCD,EAAgBC,EAAW,IAAInB,MAAM,uBAKzC,CACA,IAAI9H,EAAW2B,KAAKyI,SAASjH,mBAS7B,GAPI0K,IAEF7N,EAAW,EACX+N,aAAapM,KAAKqM,8BAClBrM,KAAKqM,kCAA+BtJ,GAGlC/C,KAAKsM,gBAAkBtM,KAAKqM,6BAC9BrM,KAAKmI,KAAK,UAAYnI,KAAKoI,cAAczM,OAAS,2BADpD,CAOA,IAAI6Q,GAAc,IAAIjK,MAAO+I,UAC7B,GAAIkB,EAAcxM,KAAKsI,cAAgBjK,EAErC2B,KAAKqM,6BAA+B5E,YAAW,WAC7Ci+K,EAAKr5K,kCAA+BtJ,EACpC2iL,EAAKz5K,gBACP,GAAG5N,OALL,CASA2B,KAAKsI,cAAgBkE,EAErBxM,KAAKsM,eAAiBtM,KAAKoI,cAC3BpI,KAAKyM,kBAAoBzM,KAAKqI,iBAC9BrI,KAAKoI,cAAgB,GACrBpI,KAAKqI,iBAAmB,GAExB,IA1RIqE,EA0RAC,GA1RAD,EAAK,WACP,OAAOtH,KAAKoF,MAA4B,OAArB,EAAIpF,KAAKC,WACzBzB,SAAS,IACTgJ,UAAU,EACf,KACcF,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IAAMA,IAAOA,IAAOA,IAsR5EG,EAAY,IAAMF,EAAY,KAC9BG,EAAa,CACfC,OAAQ/M,KAAKsM,gBAIXU,EAAa,SAAUlJ,GACzB,IAAImJ,EAAey4K,EAAKt9K,cAAgBs9K,EAAKt9K,cAAczM,OAAS,EACpE,GAAI+pL,EAAKp5K,eAAgB,CACxB,IAAI/E,EAAgBm+K,EAAKp5K,eAAe3Q,OACpCmI,GACH4hL,EAAKj6K,eAAei6K,EAAKp5K,gBACzBo5K,EAAKv9K,KAAK0E,EAAY,iBAAmBtF,EAAgB,YAAczD,IAEvE4hL,EAAKv9K,KAAK0E,EAAY,mBAAqBtF,EAAgB,YAAc2F,KAAKC,UAAUu4K,EAAKp5K,wBAEvFo5K,EAAKp5K,eAEZ,IAAIc,EAAmBs4K,EAAKj5K,yBACrBi5K,EAAKj5K,kBACR3I,EACHuD,EAAgB+F,EAAkBtJ,GAElCuD,EAAgB+F,EAAkB,KAAM7F,EAE1C,CAII0F,EAAe,GACjBy4K,EAAKz5K,gBAET,EAGIoB,EAAiB,SAAUC,EAAY1C,GAGzC,GAFA86K,EAAK/6K,gBAAgBC,GAEF,MAAf0C,GAAuC,IAAjBnB,EAYxB,OAXAu5K,EAAKz8K,oBAELy8K,EAAKj6K,eAAei6K,EAAKp5K,uBAClBo5K,EAAKp5K,eAEZo5K,EAAKr9K,iBAAmBq9K,EAAKj5K,kBAAkBnK,OAAOojL,EAAKr9K,yBACpDq9K,EAAKj5K,kBAGZi5K,EAAKv9K,KAAK0E,EAAY,sDACtB64K,EAAKz5K,gBAAe,OAAMlJ,EAAWoJ,EAAe,GAGnC,MAAfmB,EAIJN,IAHEA,EAAW,IAAI7G,MAAM,wBAA0BmH,GAInD,EAEAtN,KAAKgJ,iBAAgB,SAAUlF,EAAKjH,GAClC,IAAIiH,GAAQ4hL,EAAKj9K,SAASxH,eAI1B,GAAMpE,GAA0B,IAAjBA,EAAMlB,QAAkB+pL,EAAKj9K,SAASxH,eAArD,CAKA,IAoDoC2M,EAE5B+3K,EAtDJp4K,EAAU,WAAam4K,EAAKt8K,oBAEhC,GADAs8K,EAAKv9K,KAAK0E,EAAY,wBAA0BU,EAAUzF,QArWrC,IAFE,EAAAlP,GAEa,EAAAA,EAAOk/F,OAsW3B,CACd,IAAI8tF,EAAa,CACf,YAAsBF,EAAKj9K,SAASvH,kBACpC,YAAsBwkL,EAAKj9K,SAASrH,oBACpC,eAAsBuL,EACtB,eAAsB,oBAEpB9P,IACF+oL,EAAWn4K,cAAgB,UAAY5Q,GAEzC,IAAIgpL,EAAiB,CACnBp/K,SAAUi/K,EAAKt8K,oBACf08K,KAAM,IACNtjE,KAAM16G,EACN6F,OAAQ,OACR/C,QAASg7K,GAEPF,EAAKj9K,SAASpH,+BAChBwkL,EAAej7K,QAAQ,sBAAwB86K,EAAKj9K,SAASpH,8BAG/DqkL,EAAK78K,UAAU0E,GAAS,SAAUzJ,EAAK4J,GACjCA,GAAgBA,EAAaG,MAC/Bg4K,EAAeh4K,MAAQH,GAAgBA,EAAaG,MAEpD9G,EAAO8+K,EAAgBn4K,GAAgB,CAAC,GAI1C,IACIq4K,EADQ,EAAQ,OACJz0B,QAAQu0B,GAAgB,SAAU93K,GAnV1D,IAAuBi4K,EACjBC,EAmVQl4K,IAnVRk4K,EAAO,WAAqB,GADXD,EAsVGj4K,GApVjBwyE,GAAG,OAAQ0lG,GAClBD,EAAOzlG,GAAG,MAAO0lG,IAqVT,IAAI34K,EAAaS,GAAYA,EAAST,WAClC1C,EAAUmD,GAAYA,EAASnD,QACnCyC,EAAeC,EAAY1C,EAC7B,IAEAm7K,EAAI5gF,KAAK,SAAS,SAAUrhG,GAC1BkJ,EAAWlJ,EACb,IAEAiiL,EAAIhrJ,IAAI7tB,KAAKC,UAAUL,GACzB,GAEF,KAAO,CAG6Bc,EADhBV,KAAKC,UAAUL,IAG3B64K,EAAM,IAAIO,gBACVppG,mBAAqB,WACvB,GAAwB,IAApB98E,KAAK+8E,WAAkB,CACzB,IAAInyE,EAAU+6K,EAAIQ,wBAClB94K,EAAerN,KAAKgO,OAAQpD,EAC9B,CACF,EACA+6K,EAAIS,QAAU,SAAUzpL,GACtBqQ,EAAW,IAAI7G,MAAMxJ,GACvB,EACAgpL,EAAI7yK,KAAK,OAAQvF,EAAUzF,GAAa,GACxC69K,EAAIU,iBAAiB,YAAuBX,EAAKj9K,SAASvH,mBAC1DykL,EAAIU,iBAAiB,gBAAuBX,EAAKj9K,SAAShH,uBAC1DkkL,EAAIU,iBAAiB,eAAuB,oBACxCxpL,GACF8oL,EAAIU,iBAAiB,gBAAuB,UAAYxpL,GAE1D8oL,EAAIU,iBAAiB,YAAuBX,EAAKj9K,SAASrH,qBAC1DukL,EAAIU,iBAAiB,qBAAuBX,EAAKj9K,SAASpH,8BAC1DskL,EAAIU,iBAAiB,eAAuB15K,GAC5Cg5K,EAAIW,KAAK14K,EAGb,CA/EA,MAFEZ,EAAW,IAAI7G,MAAM,yBAJrB6G,EAAWlJ,EAsFf,GA7JA,CAVA,CAwKF,EAiBAmE,EAAO5O,UAAUuI,OAAS,SAAUqM,GAClCjO,KAAKuI,WAAa0F,EACdA,GAEFjO,KAAKiM,gBAAe,EAExB,EAUAhE,EAAO5O,UAAU0K,UAAY,SAAUmK,EAAS1G,EAAUzG,GACxD,IAAIoN,EAAkBpN,GAAW,CAAC,EAC9BqN,EAAW,kBACXC,EAAU,iBACVC,EAASH,EAAgBxM,yBAA2B3B,KAAKyI,SAAS9G,wBAClE4M,EAAgBJ,EAAgBhN,mBAAsBnB,KAAKyI,SAAStH,kBACpE3C,EAAa2P,EAAgBzM,uBAA0B1B,KAAKyI,SAAS/G,sBAErEwM,EAAQG,IAAYH,EAAQG,aAAoB9L,OACnD2L,EAAQG,GAAWrO,KAAKqJ,iBAAiB6E,EAAQG,KAE9CH,EAAQE,IAAaF,EAAQE,aAAqB7L,OACrD2L,EAAQE,GAAYpO,KAAKqJ,iBAAiB6E,EAAQE,KAG9CF,EAAQI,KACZJ,EAAQI,GAAUtO,KAAKqJ,iBAAiB,IAAI9G,OAEzC2L,EAAQI,aAAmB/L,OAC9B2L,EAAQI,GAAUtO,KAAKqJ,iBAAiB6E,EAAQI,KAEjD,IAAIhL,EAAQ,CACVkL,KAAMN,EAAQI,GACd7R,QAAS8R,EACT7H,YAAa1G,KAAKmJ,kBAClBsF,WAAYjQ,EACZJ,KAAM8P,GAOHA,EAAQQ,UAIZ1O,KAAKmI,KAAK,aAAe+E,KAAKC,UAAU7J,IACpCkE,GACHH,EAAgB,CAACG,GAAW,KAAM,KALnCxH,KAAKuL,YAAYjI,GACjBtD,KAAKiM,gBAAe,EAAOzE,GAO9B,EAUAS,EAAO5O,UAAUqG,MAAQ,SAAUwM,EAAiB1E,GAClDxH,KAAKiM,eAAeC,EAAiB1E,EACvC,EAEA1P,EAAOD,QAAUoQ,6lDCjiBV,MAAMs+K,EAAkC,GAoCxC,SAASC,EAAuBzlL,GACrC,MAAM0lL,EAAsB1lL,EAAQ0lL,qBAAuB,GACrDC,EAAmB3lL,EAAQ4lL,aAOjC,IAAIA,EAEJ,GANAF,EAAoB5qL,SAAS+qL,IAC3BA,EAAYC,mBAAoB,CAAI,IAKlC3hL,MAAMwgC,QAAQghJ,GAChBC,EAAe,IAAIF,KAAwBC,QACtC,GAAgC,mBAArBA,EAAiC,CACjD,MAAMI,EAA2BJ,EAAiBD,GAClDE,EAAezhL,MAAMwgC,QAAQohJ,GAA4BA,EAA2B,CAACA,EACvF,MACEH,EAAeF,EAGjB,OAzCF,SAA0BE,GACxB,MAAMI,EAAqD,CAAC,EAgB5D,OAdAJ,EAAa9qL,SAASmrL,IACpB,MAAM,KAAE7/K,GAAS6/K,EAEXC,EAA+DF,EAAmB5/K,GAIpF8/K,IAAqBA,EAAiBJ,mBAAqBG,EAAgBH,oBAI/EE,EAAmB5/K,GAAQ6/K,EAAe,IAGrCltL,OAAOmtB,OAAO8/J,EACvB,CAuBSG,CAAiBP,EAC1B,CAwBO,SAASQ,EAAuBC,EAAgBT,GACrD,IAAK,MAAMC,KAAeD,EAEpBC,GAAaS,eACfT,EAAYS,cAAcD,EAGhC,CAGO,SAASE,EAAiBF,EAAgBR,EAA0BW,GACzE,GAAIA,EAAiBX,EAAYz/K,MAC/B,KAAe,KAAMtG,IAAI,yDAAyD+lL,EAAYz/K,YADhG,CAiBqG,GAbA,aAGA,wDACA,cACA,gBAIA,qCACA,WAGA,sCACA,kCACA,yCACA,CAEA,sCACA,+BAEA,mCACA,YAGA,sBACA,CAEA,iDA7BA,CA8BA,CChFvG,MAAMqgL,EAAc,yEAa6D,iBACA,SACA,KAEA,oCACA,sBAGA,IAIA,cACA,oBACA,CAWA,OALA,EA7DjF,SAAwBp1F,EAAiBswB,GAEvC,IAAI+kE,EAAK,EACT,IAAK,IAAIhsL,EAAI22F,EAAMz2F,OAAS,EAAGF,GAAK,EAAGA,IAAK,CAC1C,MAAMm8E,EAAOwa,EAAM32F,GACN,MAATm8E,EACFwa,EAAM1/C,OAAOj3C,EAAG,GACE,OAATm8E,GACTwa,EAAM1/C,OAAOj3C,EAAG,GAChBgsL,KACSA,IACTr1F,EAAM1/C,OAAOj3C,EAAG,GAChBgsL,IAEJ,CAGA,GAAI/kE,EACF,KAAO+kE,IAAMA,EACXr1F,EAAM5qE,QAAQ,MAIlB,OAAO4qE,CACT,CAqCiF,CACA,+BACA,GACA,WAEA,gBACA,CAGA,cACA,QACA,iBACA,UADA,KAMA,iBACA,WACA,UADA,KAMA,WACA,GAEA,gBACA,gBCzGjF,MA6Cas1F,EAA6C,CAAC3mL,EAAgC,CAAC,KAC1F,MAAMpJ,EAAOoJ,EAAQpJ,KACfwsC,EAASpjC,EAAQojC,QAAU,UAE3Bs4I,EAAY,2BAA4B,EAAAkL,WAAWhvL,OAEnDylG,EAA+Br9F,EAAQq9F,UA+CxC,UAA0B,UAC/Bq+E,EAAS,KACT9kL,EAAI,OACJwsC,IAMA,OAAQ+tH,IACN,IAAKA,EAAM01B,SACT,OAAO11B,EAIT,MAAM21B,EACJ,eAAe/+J,KAAKopI,EAAM01B,WAEzB11B,EAAM01B,SAASjhL,SAAS,QAAUurJ,EAAM01B,SAASjhL,SAAS,KAGvDmhL,EAAkB,MAAMh/J,KAAKopI,EAAM01B,UAEzC,GAAInL,GACF,GAAI9kL,EAAM,CACR,MAAMowL,EAAc71B,EAAM01B,SACQ,IAA9BG,EAAY1jJ,QAAQ1sC,KACtBu6J,EAAM01B,SAAWG,EAAYvvL,QAAQb,EAAMwsC,GAE/C,OAEA,GAAI0jJ,GAAkBC,EAAiB,CACrC,MAAMF,EAAWC,EACb31B,EAAM01B,SACHpvL,QAAQ,aAAc,IACtBA,QAAQ,MAAO,KAClB05J,EAAM01B,SACJj4J,EAAOh4B,EDzB4D,cAEA,gBACA,gBAGA,wBACA,kBAEA,8BACA,QACA,oBACA,gBACA,IACA,KACA,CAGA,SACA,2BACA,aAKA,OAFA,uBAEA,WACA,CCDrD2rH,CAAS3rH,EAAMiwL,GD0DsC,cACA,MApJjF,SAAmBA,GAGjB,MAAMI,EAAYJ,EAASjsL,OAAS,KAAO,cAAcisL,EAAS77K,OAAO,QAAU67K,EACJ,YACA,sBACA,CA8IA,WAIA,QACA,CChE1BzjE,CAASyjE,GACxD11B,EAAM01B,SAAW,GAAGzjJ,IAASxU,GACX,CAGA,SAEA,CA3FiCs4J,CAAiB,CAAExL,YAAW9kL,OAAMwsC,WAuB7F,SAAS+jJ,EAAmBC,GAC1B,MAAO,IACFA,EACHC,OAAQD,GAAYC,QAAQ71K,KAAI0hB,GAAKmqE,EAASnqE,KAElD,CAEA,MAAO,CACL9sB,KAlFqB,gBAmFrB,YAAAkhL,CAAaC,GACX,IAAIC,EAAiBD,EAMrB,OAJIA,EAAc3kF,WAAaz+F,MAAMwgC,QAAQ4iJ,EAAc3kF,UAAU18E,UACnEshK,EAjCN,SAAiCjlL,GAC/B,IACE,MAAO,IACFA,EACHqgG,UAAW,IACNrgG,EAAMqgG,UAGT18E,OAAQ3jB,EAAMqgG,UAAW18E,OAAQ1U,KAAItW,IAAS,IACzCA,KACCA,EAAMksL,YAAc,CAAEA,WAAYD,EAAmBjsL,EAAMksL,kBAIvE,CAAE,MACA,OAAO7kL,CACT,CACF,CAgBuBklL,CAAwBD,IAGpCA,CACT,EACD,4BCpFI,MAODE,EAA6B,yBCctBC,EAA4C,KAChD,CACLvhL,KAAM,eAENkhL,aAAY,CAAC/kL,EAAcqlL,EAAkBC,IDb1C,SAA6CtlL,GAClD,MACMulL,GADQ,UACYC,eAAeC,SAASl1D,MAC5Cm1D,EAAaH,EAAcA,EAAY5hK,OAAS,GAEtD,OAAK+hK,EAAWrtL,aAIOoH,IAAnBO,EAAMylL,WACRzlL,EAAMylL,SAAW,CAAC,GAEpBzlL,EAAMylL,SAASl1D,MAAQ,CAAE5sG,OAAQ,IAAI+hK,IAC9B1lL,GAPEA,CAQX,CCAa2lL,CAAoC3lL,GAG7C,cAAA4lL,CAAe/hL,EAAclL,IDU1B,SACLkL,EACAlL,EACA4jD,EA1CwC,KA4CxC,MAAMspI,GAAgB,UAAkBL,eAAeC,SAClDI,EAAct1D,QACjBs1D,EAAct1D,MAAQ,CAAE5sG,OAAQ,KAkB7B,SACL4sG,EACA1sH,EACAlL,EACA4jD,GAEA,GAAqB,kBAAV5jD,EACT,OAGF,GAAI43H,EAAMl4H,OAASkkD,EAE+F,YADhH,KAAe,KAAMljD,MAAM,6EAA6EkjD,MAKQ,sCAEA,OAEA,cAGA,cAEA,UAIA,QACA,OACA,UAEA,CAhDlHupI,CADcD,EAAct1D,MAAM5sG,OACE9f,EAAMlL,EAAO4jD,EACnD,ECpBMwpI,CAA4BliL,EAAMlL,GD8E4E,SACA,EACA,EACA,EA1GxE,IA4GwE,uBACA,OAGA,mBACA,MACA,OAGA,0BAGA,gBAMA,mDACA,IANA,4BASA,CCxG9GqtL,CAAqCniL,EAAMlL,EAC7C,wEClCG,MAAM,EAIJ,WAAA7C,CAAYmwL,EAAmC,CAAC,GACrDvpL,KAAKwpL,SAAWD,EAAYE,UAAW,SACvCzpL,KAAK0pL,QAAUH,EAAYI,SAAU,QACvC,CAGO,WAAAJ,GACL,MAAO,CACLI,OAAQ3pL,KAAK0pL,QACbD,QAASzpL,KAAKwpL,SACdI,WAAY,KAEhB,CAGO,GAAA7uJ,CAAI8uJ,GAAmC,CAGvC,YAAAhiI,CAAawkB,EAAcy9G,GAChC,OAAO9pL,IACT,CAGO,aAAA+pL,CAAcC,GACnB,OAAOhqL,IACT,CAGO,SAAAiqL,CAAUrO,GACf,OAAO57K,IACT,CAGO,UAAAkqL,CAAWC,GAChB,OAAOnqL,IACT,CAGO,WAAAoqL,GACL,OAAO,CACT,CAGO,QAAAC,CACLF,EACAG,EACAC,GAEA,OAAOvqL,IACT,CAGO,OAAAwqL,CAAQC,GACb,OAAOzqL,IACT,CAGO,QAAA0qL,CAASC,GACd,OAAO3qL,IACT,CASO,eAAA4qL,CAAgBC,EAAqBC,GAE5C,sCC/DK,SAASC,EAAmCngL,EAAe0tE,EAAc,IAC9E,MAAO,CAAC1tE,EAAS0tE,EACnB,CAOO,SAAS0yG,EAAsCC,EAAaC,GACjE,MAAOtgL,EAAS0tE,GAAS2yG,EACzB,MAAO,CAACrgL,EAAS,IAAI0tE,EAAO4yG,GAC9B,CAQO,SAASC,EACdF,EACAzjL,GAEA,MAAM4jL,EAAgBH,EAAS,GAE/B,IAAK,MAAMI,KAAgBD,EAIzB,GAFe5jL,EAAS6jL,EADCA,EAAa,GAAGt8K,MAIvC,OAAO,EAIX,OAAO,CACT,CAKO,SAASu8K,EAAyBL,EAAoBzsF,GAC3D,OAAO2sF,EAAoBF,GAAU,CAAC5+J,EAAGtd,IAASyvF,EAAM73F,SAASoI,IACnE,CAKA,SAASw8K,EAAWnxI,GAClB,MAAMoxI,GAAU,QAAiB,EAAA7D,YACjC,OAAO6D,EAAQC,eAAiBD,EAAQC,eAAerxI,IAAS,IAAIsxI,aAAcC,OAAOvxI,EAC3F,CAaO,SAASwxI,EAAkBX,GAChC,MAAOY,EAAYvzG,GAAS2yG,EAE5B,IAAI74F,EAA+BllF,KAAKC,UAAU0+K,GAElD,SAASC,EAAO/kK,GACO,iBAAVqrE,EACTA,EAAwB,iBAATrrE,EAAoBqrE,EAAQrrE,EAAO,CAACwkK,EAAWn5F,GAAQrrE,GAEtEqrE,EAAM/2F,KAAqB,iBAAT0rB,EAAoBwkK,EAAWxkK,GAAQA,EAE7D,CAEA,IAAK,MAAMQ,KAAQ+wD,EAAO,CACxB,MAAOyzG,EAAa79K,GAAWqZ,EAI/B,GAFAukK,EAAO,KAAK5+K,KAAKC,UAAU4+K,QAEJ,iBAAZ79K,GAAwBA,aAAmBlJ,WACpD8mL,EAAO59K,OACF,CACL,IAAI89K,EACJ,IACEA,EAAqB9+K,KAAKC,UAAUe,EACtC,CAAE,MAIA89K,EAAqB9+K,KAAKC,WAAU,EAAAg9B,EAAA,IAAUj8B,GAChD,CACA49K,EAAOE,EACT,CACF,CAEA,MAAwB,iBAAV55F,EAAqBA,EAGrC,SAAuB65F,GACrB,MAAMC,EAAcD,EAAQj4J,QAAO,CAAC6wH,EAAKrgJ,IAAQqgJ,EAAMrgJ,EAAI7I,QAAQ,GAE7DwwL,EAAS,IAAInnL,WAAWknL,GAC9B,IAAIznL,EAAS,EACb,IAAK,MAAMs2F,KAAUkxF,EACnBE,EAAO9xL,IAAI0gG,EAAQt2F,GACnBA,GAAUs2F,EAAOp/F,OAGnB,OAAOwwL,CACT,CAd6CC,CAAch6F,EAC3D,CAuDO,SAASi6F,EAAuBC,GAKrC,MAAO,CAJ0B,CAC/Bv9K,KAAM,QAGau9K,EACvB,CAKO,SAASC,EAA6BC,GAC3C,MAAMzxF,EAAoC,iBAApByxF,EAAWpuL,KAAoBmtL,EAAWiB,EAAWpuL,MAAQouL,EAAWpuL,KAE9F,MAAO,CACL,CACE2Q,KAAM,aACNpT,OAAQo/F,EAAOp/F,OACfisL,SAAU4E,EAAW5E,SACrB6E,aAAcD,EAAWE,YACzBC,gBAAiBH,EAAWI,gBAE9B7xF,EAEJ,CAEA,MAAM8xF,EAAyE,CAC7EC,QAAS,UACTC,SAAU,UACVP,WAAY,aACZ1xE,YAAa,cACbx3G,MAAO,QACP0pL,cAAe,WACfC,YAAa,UACbC,QAAS,UACTC,cAAe,UACfC,aAAc,SACdC,iBAAkB,SAClBC,SAAU,UACVC,SAAU,WACVC,KAAM,OACNC,aAAc,WACd5sL,IAAK,YAMA,SAAS6sL,EAA+B3+K,GAC7C,OAAO89K,EAA+B99K,EACxC,CAGO,SAAS4+K,EAAgCC,GAC9C,IAAKA,GAAiBC,IACpB,OAEF,MAAM,KAAE1mL,EAAI,QAAEX,GAAYonL,EAAgBC,IAC1C,MAAO,CAAE1mL,OAAMX,UACjB,gBCxOO,SAASsnL,EACdN,EACAO,GAEA,IAAKA,GAAapyL,SAAW6xL,EAAK71K,YAChC,OAAO,EAGT,IAAK,MAAM4pB,KAAWwsJ,EAAa,CACjC,GAgDsB,iBADA9xL,EA/CDslC,IAgDatlC,aAAiBu1B,OAhDpB,CAC7B,IAAI,QAAkBg8J,EAAK71K,YAAa4pB,GACtC,OAAO,EAET,QACF,CAEA,IAAKA,EAAQp6B,OAASo6B,EAAQnR,GAC5B,SAGF,MAAM49J,GAAczsJ,EAAQp6B,OAAO,QAAkBqmL,EAAK71K,YAAa4pB,EAAQp6B,MACzE8mL,GAAY1sJ,EAAQnR,IAAKo9J,EAAKp9J,KAAM,QAAkBo9J,EAAKp9J,GAAImR,EAAQnR,IAM7E,GAAI49J,GAAeC,EACjB,OAAO,CAEX,CA0BF,IAA0BhyL,EAxBxB,OAAO,CACT,CAMO,SAASiyL,EAAmBC,EAAmBC,GACpD,MAAMC,EAAsBD,EAASE,eAC/BC,EAAgBH,EAASI,QAI/B,GAAKH,EAIL,IAAK,MAAMb,KAAQW,EACbX,EAAKc,iBAAmBC,IAC1Bf,EAAKc,eAAiBD,EAG5B,CChCwG,cACA,oBACA,OAGA,WAWA,OAVA,eACA,yBACA,UACA,UAEA,yCACA,2BACA,IAGA,CACA,gBCKjG,MAAMI,EA2BJ,WAAAr1L,CAAYmwL,EAAmC,CAAC,GACrDvpL,KAAKwpL,SAAWD,EAAYE,UAAW,SACvCzpL,KAAK0pL,QAAUH,EAAYI,SAAU,SACrC3pL,KAAKuqL,WAAahB,EAAYmF,iBAAkB,UAChD1uL,KAAK2qL,OAASpB,EAAYhpH,MAE1BvgE,KAAK2uL,YAAc,CAAC,EACpB3uL,KAAK+pL,cAAc,CACjB,CAAC,MAAmC,SACpC,CAAC,MAA+BR,EAAYn5J,MACzCm5J,EAAYnL,aAGjBp+K,KAAKmqL,MAAQZ,EAAYpiL,KAErBoiL,EAAYqF,eACd5uL,KAAK6uL,cAAgBtF,EAAYqF,cAG/B,YAAarF,IACfvpL,KAAK8uL,SAAWvF,EAAYwF,SAE1BxF,EAAYyF,eACdhvL,KAAKivL,SAAW1F,EAAYyF,cAG9BhvL,KAAKy0C,QAAU,GAEfz0C,KAAKkvL,kBAAoB3F,EAAY4F,aAGjCnvL,KAAKivL,UACPjvL,KAAKovL,cAET,CAGO,OAAA5E,CAAQ/4D,GAMb,OALIzxH,KAAK2qL,OACP3qL,KAAK2qL,OAAOtvL,KAAKo2H,GAEjBzxH,KAAK2qL,OAAS,CAACl5D,GAEVzxH,IACT,CAGO,QAAA0qL,CAASnqH,GAMd,OALIvgE,KAAK2qL,OACP3qL,KAAK2qL,OAAOtvL,QAAQklE,GAEpBvgE,KAAK2qL,OAASpqH,EAETvgE,IACT,CASO,eAAA4qL,CAAgBC,EAAqBC,GAE5C,CAGO,WAAAvB,GACL,MAAQG,QAASC,EAAQH,SAAUC,EAASqF,SAAUC,GAAY/uL,KAClE,MAAO,CACL2pL,SACAF,UACAG,WAAYmF,EAAU,KAAqB,KAE/C,CAGO,YAAAlnI,CAAa5tD,EAAagC,GAQ/B,YAPc8G,IAAV9G,SAEK+D,KAAK2uL,YAAY10L,GAExB+F,KAAK2uL,YAAY10L,GAAOgC,EAGnB+D,IACT,CAGO,aAAA+pL,CAAc3L,GAEnB,OADAtkL,OAAOiB,KAAKqjL,GAAYviL,SAAQ5B,GAAO+F,KAAK6nD,aAAa5tD,EAAKmkL,EAAWnkL,MAClE+F,IACT,CAUO,eAAAqvL,CAAgBC,GACrBtvL,KAAKuqL,YAAa,QAAuB+E,EAC3C,CAKO,SAAArF,CAAUhuL,GAEf,OADA+D,KAAK47K,QAAU3/K,EACR+D,IACT,CAKO,UAAAkqL,CAAW/iL,GAGhB,OAFAnH,KAAKmqL,MAAQhjL,EACbnH,KAAK6nD,aAAa,KAAkC,UAC7C7nD,IACT,CAGO,GAAA+6B,CAAIi0J,GAELhvL,KAAKivL,WAITjvL,KAAKivL,UAAW,QAAuBD,GCrKF,YACA,eAEA,2EACA,0BAIA,iCAHA,aACA,EAEA,qCACA,WACA,CD4JrCO,CAAWvvL,MAEXA,KAAKovL,eACP,CAUO,WAAAI,GACL,MAAO,CACLpxL,KAAM4B,KAAK2uL,YACXh3K,YAAa3X,KAAKmqL,MAClB/5J,GAAIpwB,KAAK2uL,YAAY,MACrBL,eAAgBtuL,KAAK6uL,cACrBL,QAASxuL,KAAK0pL,QACd+F,gBAAiBzvL,KAAKuqL,WACtBv8K,QAAQ,QAAiBhO,KAAK47K,SAC9B1iH,UAAWl5D,KAAKivL,SAChBS,SAAU1vL,KAAKwpL,SACfmG,OAAQ3vL,KAAK2uL,YAAY,MACzBiB,WAAY5vL,KAAK2uL,YAAY,MAC7BkB,eAAgB7vL,KAAK2uL,YAAY,MACjCmB,aAAcC,EAA0B/vL,KAAKy0C,SAC7Cu7I,WAAahwL,KAAKkvL,oBAAqB,QAAYlvL,QAAUA,WAAS+C,EACtEktL,WAAYjwL,KAAKkvL,mBAAoB,QAAYlvL,MAAMupL,cAAcI,YAAS5mL,EAC9Ew9D,OAAO,QAA4BvgE,KAAK2qL,QAE5C,CAGO,WAAAP,GACL,OAAQpqL,KAAKivL,YAAcjvL,KAAK8uL,QAClC,CAKO,QAAAzE,CACLljL,EACA+oL,EACAr3H,GAEA,KAAe,KAAMh4D,IAAI,qCAAsCsG,GAE/D,MAAMqH,EAAO2hL,EAAgBD,GAAyBA,EAAwBr3H,IAAa,UACrFulH,EAAa+R,EAAgBD,GAAyB,CAAC,EAAIA,GAAyB,CAAC,EAErF5sL,EAAoB,CACxB6D,OACAqH,MAAM,QAAuBA,GAC7B4vK,cAKF,OAFAp+K,KAAKy0C,QAAQp5C,KAAKiI,GAEXtD,IACT,CAUO,gBAAAowL,GACL,QAASpwL,KAAKkvL,iBAChB,CAGQ,YAAAE,GACN,MAAMhI,GAAS,UAUf,GATIA,GACFA,EAAOjhE,KAAK,UAAWnmH,OAMHA,KAAKkvL,mBAAqBlvL,QAAS,QAAYA,MAGnE,OAIF,GAAIA,KAAKkvL,kBAUP,YATIlvL,KAAK8uL,SAuHf,SAA0B7D,GACxB,MAAM7D,GAAS,UACf,IAAKA,EACH,OAGF,MAAMiJ,EAAYpF,EAAS,GACtBoF,GAAkC,IAArBA,EAAU10L,OAO5ByrL,EAAOkJ,aAAarF,GANlB7D,EAAOmJ,mBAAmB,cAAe,OAO7C,CArIQC,CEvLD,SAA4BrC,EAAsC/G,GAQvE,MAAMqJ,GAAM,QAAkCtC,EAAM,IAE9CuC,EAAMtJ,GAAQuJ,SACdC,EAASxJ,GAAQyJ,aAAaD,OAE9BhmL,EAA2B,CAC/BkmL,SAAS,IAAIvuL,MAAOwuL,iBAbtB,SAA6BN,GAC3B,QAASA,EAAIf,YAAce,EAAIO,UACjC,CAYMC,CAAoBR,IAAQ,CAAE76E,MAAO66E,QACnCG,GAAUF,GAAO,CAAEA,KAAK,QAAYA,MAGtC,eAAEQ,EAAc,YAAEnD,GAAgB3G,GAAQyJ,cAAgB,CAAC,EAE3DM,EAAgBpD,GAAapyL,OAC/BwyL,EAAMjzL,QAAOsyL,IAASM,GAAiB,QAAWN,GAAOO,KACzDI,EACEiD,EAAejD,EAAMxyL,OAASw1L,EAAcx1L,OAE9Cy1L,GACFhK,GAAQmJ,mBAAmB,cAAe,OAAQa,GAGpD,MAAMC,EAAoBH,EACrB1D,IACC,MAAMlB,GAAW,QAAWkB,GAG5B,OAFsB0D,EAAe5E,MAGnC,UACOA,EAGW,EAEtB,KAEEh0G,EAAoB,GAC1B,IAAK,MAAMk1G,KAAQ2D,EAAe,CAChC,MAAM7E,EAAW+E,EAAkB7D,GAC/BlB,GACFh0G,EAAMj9E,KAAKgxL,EAAuBC,GAEtC,CAEA,OAAOvB,EAA6BngL,EAAS0tE,EAC/C,CFkIyBg5G,CAAmB,CAACtxL,MAAOonL,KAE5C,KACE,KAAMvmL,IAAI,wFACRumL,GACFA,EAAOmJ,mBAAmB,cAAe,UAM/C,MAAMgB,EAAmBvxL,KAAKwxL,4BAC1BD,KACY,OAAwBvxL,MAAMswG,QAAS,WAC/CmhF,aAAaF,EAEvB,CAKQ,yBAAAC,GAEN,IAAKE,GAAmB,QAAW1xL,OACjC,OAGGA,KAAKmqL,QACR,KAAe,KAAMv+I,KAAK,uEAC1B5rC,KAAKmqL,MAAQ,2BAGf,MAAQ75E,MAAOqhF,EAAmBC,eAAgBC,IAA+B,OAAwB7xL,MAEnG8xL,EAAoBH,GAAmB7I,eAAeiJ,uBAAuBD,kBAEnF,IAAsB,IAAlB9xL,KAAK8uL,SACP,OAIF,MAEMX,GAFgB,QAAmBnuL,MAAM9E,QAAOsyL,GAAQA,IAASxtL,OAmE3E,SAA0BwtL,GACxB,OAAOA,aAAgBiB,GAAcjB,EAAK4C,kBAC5C,CArEoFA,CAAiB5C,KAErEj7K,KAAIi7K,IAAQ,QAAWA,KAAOtyL,OAAOw2L,GAE3D91L,EAASoE,KAAK2uL,YAAY,aAIzB3uL,KAAK2uL,YAAY,MACxBR,EAAMtyL,SAAQ2xL,WACLA,EAAKpvL,KAAK,KAA2C,IAI9D,MAAM08G,EAAgC,CACpCiuE,SAAU,CACRnzE,OAAO,QAA8B51G,OAEvCmuL,MAGEA,EAAMxyL,OAhUS,IAiUXwyL,EAAM31G,MAAK,CAACnpD,EAAGzpB,IAAMypB,EAAEogK,gBAAkB7pL,EAAE6pL,kBAAiB1jL,MAAM,EAjUvD,KAkUXoiL,EACNsB,gBAAiBzvL,KAAKuqL,WACtBrxH,UAAWl5D,KAAKivL,SAChBn0E,YAAa96G,KAAKmqL,MAClBp7K,KAAM,cACNgjL,sBAAuB,CACrBJ,oBACAE,6BACAG,wBAAwB,QAAkChyL,OAE5DsxJ,QAASwgC,KACLl2L,GAAU,CACZq2L,iBAAkB,CAChBr2L,YAKAk0L,EAAeC,EAA0B/vL,KAAKy0C,SAYpD,OAXwBq7I,GAAgBh2L,OAAOiB,KAAK+0L,GAAcn0L,SAGhE,KACE,KAAMkF,IACJ,0DACAqM,KAAKC,UAAU2iL,OAAc/sL,EAAW,IAE5C+3G,EAAYg1E,aAAeA,GAGtBh1E,CACT,EAGF,SAASq1E,EAAgBl0L,GACvB,OAAQA,GAA0B,iBAAVA,GAAuBA,aAAiBsG,MAAQ2C,MAAMwgC,QAAQzpC,EACxF,CAGA,SAASy1L,EAAmBt3I,GAC1B,SAASA,EAAMq1I,iBAAqBr1I,EAAM8e,WAAe9e,EAAMo0I,SAAap0I,EAAMs1I,SACpF,qDG3XA,MAAMwC,EAAuB,8BAkItB,SAASC,GAAkBpxL,GAChC,MAAMqxL,EAAMC,KACZ,GAAID,EAAID,kBACN,OAAOC,EAAID,kBAAkBpxL,GAG/B,MAAMuxL,EAAgBC,GAAyBxxL,IACzC,iBAAEyxL,EAAkBC,WAAYC,GAAqB3xL,EAU3D,OANgBA,EAAQuvG,MACnB9oG,IAAyB,QAAUzG,EAAQuvG,MAAO9oG,QAC9BzE,IAArB2vL,EACGlrL,GAAyBmrL,GAAeD,EAAkBlrL,GAC1DA,GAAyBA,MAEjB,KACb,MAAM8oG,GAAQ,UACRmiF,EAAaG,GAActiF,EAAOoiF,GAIxC,OAFuB3xL,EAAQ8xL,eAAiBJ,EAGvC,IAAI,EAGNK,GAAsB,CAC3BL,aACAH,gBACAE,mBACAliF,SACA,GAEN,CA+CO,SAASqiF,GAAkBnF,EAAmBhmL,GACnD,MAAM4qL,EAAMC,KACZ,OAAID,EAAIO,eACCP,EAAIO,eAAenF,EAAMhmL,IAG3B,SAAU8oG,KACf,OAAiBA,EAAOk9E,QAAQzqL,GACzByE,EAAS8oG,KAEpB,CAkDmG,wBACA,gBACA,mBACA,QACA,IAOA,eACA,cAIA,UACA,SACA,gBACA,gBACA,uBACA,aAEA,YACA,CAEA,QACA,CAEA,mBAEA,MACA,SACA,EAyIA,gBACA,0CACA,0DAEA,IACA,UACA,EACA,eACA,UACA,YAEA,oBAEA,aAEA,mBASA,OARA,IACA,sBAEA,gBACA,qBAIA,CACA,CAlKA,SACA,kBACA,MAEA,qBACA,oCACA,cAEA,KACA,CACA,UACA,kBACA,GAEA,EACA,IAGA,YACA,MACA,cACA,MACA,eACA,EACA,WACA,IACA,6BACA,2BAGA,KACA,CACA,UACA,kBACA,GAEA,EACA,GAGA,IACA,YAEA,CAMA,OFvX5F,SAAsBk9E,GAC3B,IAAK,IAAa,OAElB,MAAM,YAAE71K,EAAc,mBAAkB,GAAEyY,EAAK,iBAAkBk+J,eAAgBM,IAAiB,QAAWpB,IACvG,OAAE7D,GAAW6D,EAAKjE,cAElBwF,GAAU,QAAcvB,GACxBuF,GAAW,QAAYvF,GACvBwF,EAAaD,IAAavF,EAE1Bl1K,EAAS,sBAAsBy2K,EAAU,UAAY,eAAeiE,EAAa,QAAU,SAE3FC,EAAsB,CAAC,OAAO7iK,IAAM,SAASzY,IAAe,OAAOgyK,KAMlC,GAJA,GACA,2BAGA,GACA,sCACA,6CACA,GACA,wBAEA,GACA,gCAEA,CAEA,oBACA,iBACA,CEoV0D,KAEA,cAEA,CACA,CAOA,eACA,MACA,GACA,cAFA,oBAEA,cACA,GAGA,gBACA,eAGA,OAFA,8CACA,YACA,CACA,CAEA,QACA,CAEA,cACA,mBACA,gBACA,CAEA,mBACA,mBACA,uBAEA,aAEA,gEAGA,0CAGA,2BACA,mBAEA,6BACA,8CACA,GAEA,KCna5F,SACL5oL,EACAmyL,EACAC,GAGA,KAAK,EAAAC,EAAA,GAAgBryL,GACnB,MAAO,EAAC,GAGV,IAAIsyL,EAIAC,EACiC,mBAA1BvyL,EAAQwyL,eACjBD,EAAavyL,EAAQwyL,cAAc,IAC9BL,EACHM,oBAAqBC,GAG6B,iBAArCP,EAAgBQ,iBAClBR,EAAgBQ,iBAKoB,kBAAlCR,EAAgBS,cAClB/jK,OAAOsjK,EAAgBS,eAGzBF,IAGXJ,GAA4B,QACetwL,IAAlCmwL,EAAgBS,cACzBL,EAAaJ,EAAgBS,mBACgB,IAA7B5yL,EAAQ6yL,mBACxBN,EAAavyL,EAAQ6yL,iBACrBP,GAA4B,GAK9B,MAAMQ,GAAmB,EAAAC,EAAA,GAAgBR,GAEzC,QAAyBvwL,IAArB8wL,EAOF,OANA,KACE,KAAMjoJ,KACJ,iIAAiI1+B,KAAKC,UACpImmL,cACWpmL,KAAKC,iBAAiBmmL,OAEhC,EAAC,GAIV,IAAKO,EASE,OARL,KACE,KAAMhzL,IACJ,6CACmC,mBAA1BE,EAAQwyL,cACX,oCACA,+EAGL,SAKA,YAYA,OATA,GACA,KACA,SACA,2GACA,OAKA,OACA,CDgV0F,CACA,EACA,CACA,OACA,gBACA,aACA,8CAEA,cAGA,YACA,EACA,YACA,gBACA,YACA,qBACA,GAEA,YAYA,OATA,OACA,gGACA,mDAGA,GACA,sBAGA,CACA,CAiCA,iBAEA,KACA,SAIA,YACA,OAGA,mBAEA,MACA,OAGA,mBAEA,OADA,qBACA,4BACA,WAGA,CACA,CEnf5F,MAAMQ,GAAmB,CAC9BC,YAAa,IACbC,aAAc,IACdC,iBAAkB,MA0Db,SAASC,GAAcC,EAAoCrzL,EAAoC,CAAC,GAErG,MAAMszL,EAAa,IAAI3yK,IAGvB,IAGI4yK,EAHAC,GAAY,EASZC,EAlEgC,iBAoEhCC,GAA+B1zL,EAAQ2zL,kBAE3C,MAAMC,EAAgC,IAEhC,YACJX,EAAcD,GAAiBC,YAAW,aAC1CC,EAAeF,GAAiBE,aAAY,iBAC5CC,EAAmBH,GAAiBG,iBAAgB,cACpDU,GACE7zL,EAEEqmL,GAAS,UAEf,IAAKA,KAAW,EAAAgM,EAAA,KAAmB,CACjC,MAAM5F,EAAO,IAAI,EAEXiD,EAAM,CACVoE,YAAa,IACb9F,QAAS,YACN,QAAkCvB,IAIvC,OAFA,QAAgBA,EAAMiD,GAEfjD,CACT,CAEA,MAAMl9E,GAAQ,UACRwkF,GAAqB,UACrBtH,EAkQR,SAAwBzsL,GACtB,MAAMysL,EAAO2E,GAAkBpxL,GAM/B,OAJA,QAAiB,UAAmBysL,GAEpC,KAAe,KAAM3sL,IAAI,0CAElB2sL,CACT,CA1QeuH,CAAeX,GAwD5B,SAASY,IACHV,IACFloL,aAAakoL,GACbA,OAAiBvxL,EAErB,CAeA,SAASkyL,EAAoBjG,GAC3BgG,IACAV,EAAiB7sL,YAAW,MACrB8sL,GAAiC,IAApBF,EAAWz9K,MAAc69K,IACzCD,EAlL2B,cAmL3BhH,EAAKzyJ,IAAIi0J,GACX,GACCgF,EACL,CAKA,SAASkB,EAAyBlG,GAEhCsF,EAAiB7sL,YAAW,MACrB8sL,GAAaE,IAChBD,EAhM+B,kBAiM/BhH,EAAKzyJ,IAAIi0J,GACX,GACCkF,EACL,CAkCA,SAASiB,EAAgBnG,GACvBuF,GAAY,EACZF,EAAWziI,QAEX+iI,EAAc94L,SAAQ+nL,GAAWA,OAEjC,OAAiBtzE,EAAOwkF,GAExB,MAAMM,GAAW,QAAW5H,IAEpBiC,gBAAiBf,GAAmB0G,EAE5C,IAAK1G,EACH,OAGiB0G,EAASh3L,KACZ,OACdovL,EAAK3lI,aAAa,KAAmD2sI,GAGvE,KAAM3zL,IAAI,wBAAwBu0L,EAAShlK,gBAE3C,MAAMilK,GAAa,QAAmB7H,GAAMtyL,QAAOsX,GAASA,IAAUg7K,IAEtE,IAAI8H,EAAiB,EACrBD,EAAWx5L,SAAQ05L,IAEbA,EAAUnL,gBACZmL,EAAUtL,UAAU,CAAE7tJ,KAAM,KAAmBt7B,QAAS,cACxDy0L,EAAUx6J,IAAIi0J,GACd,KACE,KAAMnuL,IAAI,mDAAoDqM,KAAKC,UAAUooL,OAAWxyL,EAAW,KAGvG,MAAMyyL,GAAgB,QAAWD,IACzBr8H,UAAWu8H,EAAoB,EAAGhG,gBAAiBiG,EAAsB,GAAMF,EAEjFG,EAA+BD,GAAuB1G,EAItD4G,EAA8BH,EAAoBC,IADtBzB,EAAeD,GAAe,IAGhE,GAAI,IAAa,CACf,MAAM6B,EAAkB3oL,KAAKC,UAAUooL,OAAWxyL,EAAW,GACxD4yL,EAEOC,GACV,KAAM/0L,IAAI,4EAA6Eg1L,GAFvF,KAAMh1L,IAAI,2EAA4Eg1L,EAI1F,CAEKD,GAAgCD,KACnC,QAAwBnI,EAAM+H,GAC9BD,IACF,IAGEA,EAAiB,GACnB9H,EAAK3lI,aAAa,mCAAoCytI,EAE1D,CA8DA,OA3PA9H,EAAKzyJ,IAAM,IAAIuhD,MAAMkxG,EAAKzyJ,IAAK,CAC7B,KAAAz/B,CAAME,EAAQ+lG,EAAS/tF,GAOrB,GANIohL,GACFA,EAAcpH,GAKZjsF,aAAmB,EACrB,OAIF,MAAOu0F,KAAwB1lL,GAAQoD,EACjC0lD,EAAY48H,IAAuB,UACnCC,GAAmB,QAAuB78H,GAG1Ci1H,GAAQ,QAAmBX,GAAMtyL,QAAOsX,GAASA,IAAUg7K,IAGjE,IAAKW,EAAMxyL,OAET,OADAw5L,EAAgBY,GACT/pH,QAAQ1wE,MAAME,EAAQ+lG,EAAS,CAACw0F,KAAqB3lL,IAG9D,MAAM4lL,EAAqB7H,EACxB57K,KAAIi7K,IAAQ,QAAWA,GAAMt0H,YAC7Bh+D,QAAOg+D,KAAeA,IACnB+8H,EAAyBD,EAAmBr6L,OAASyJ,KAAK8F,OAAO8qL,QAAsBjzL,EAGvFmzL,GAAqB,QAAW1I,GAAMiC,gBAOtCT,EAAe5pL,KAAKm/B,IACxB2xJ,EAAqBA,EAAqBjC,EAAe,IAAOjuK,IAChE5gB,KAAK8F,IAAIgrL,IAAsB,IAAW9wL,KAAKm/B,IAAIwxJ,EAAkBE,GAA0BjwK,OAIjG,OADAmvK,EAAgBnG,GACThjH,QAAQ1wE,MAAME,EAAQ+lG,EAAS,CAACytF,KAAiB5+K,GAC1D,IAiJFukL,EAAct5L,KACZ+rL,EAAO7mG,GAAG,aAAa41G,IA7FzB,IAAuBxM,EAmGjB4K,GACA4B,IAAgB3I,IACd,QAAW2I,GAAaj9H,WACzBi9H,aAAuB1H,GAAc0H,EAAY/F,qBAKnC,QAAmB5C,GAGvB7mL,SAASwvL,KA9GHxM,EA+GHwM,EAAY5M,cAAcI,OA9G5CqL,IACAX,EAAWh6L,IAAIsvL,GAAQ,GAKvBuL,GAHqB,UAGmBhB,EAAmB,KAyGzD,KAIJS,EAAct5L,KACZ+rL,EAAO7mG,GAAG,WAAW61G,IAvGvB,IAAsBzM,EAwGd4K,IAxGc5K,EA4GLyM,EAAU7M,cAAcI,OA3GnC0K,EAAW36L,IAAIiwL,IACjB0K,EAAW3uK,OAAOikK,GAGI,IAApB0K,EAAWz9K,MAIbq+K,GAHqB,UAGcjB,EAAc,KAmGL,KAIhDW,EAAct5L,KACZ+rL,EAAO7mG,GAAG,4BAA4B81G,IAChCA,IAA0B7I,IAC5BiH,GAAqB,EACrBQ,IAEIZ,EAAWz9K,MACbs+K,IAEJ,KAKCn0L,EAAQ2zL,mBACXO,IAGFxtL,YAAW,KACJ8sL,IACH/G,EAAKvD,UAAU,CAAE7tJ,KAAM,KAAmBt7B,QAAS,sBACnD0zL,EA3V8B,eA4V9BhH,EAAKzyJ,MACP,GACCk5J,GAEIzG,CACT,iBC/WA,MAAM8I,GAA6E,CAAC,EAC9EC,GAA6D,CAAC,EAG7D,SAASC,GAAWznL,EAA6Bq/C,GACtDkoI,GAASvnL,GAAQunL,GAASvnL,IAAS,GAClCunL,GAASvnL,GAAsC1T,KAAK+yD,EACvD,CAaO,SAASqoI,GAAgB1nL,EAA6B2nL,GAC3D,IAAKH,GAAaxnL,GAAO,CACvBwnL,GAAaxnL,IAAQ,EACrB,IACE2nL,GACF,CAAE,MAAOn1K,GACP,KAAe,KAAM5kB,MAAM,6BAA6BoS,IAAQwS,EACH,CACA,CACA,CAGA,iBACA,iBACA,KAIA,iBACA,IACA,IACA,UACA,KACA,WACA,6FACA,EAEA,CAEA,CC9DnE,IAAIo1K,GAA4D,KAQzD,SAASC,GAAqCxoI,GACnD,MAAMr/C,EAAO,QACbynL,GAAWznL,EAAMq/C,GACjBqoI,GAAgB1nL,EAAM8nL,GACxB,CAEA,SAASA,KACPF,GAAqB,EAAAhP,WAAWvB,QAIhC,EAAAuB,WAAWvB,QAAU,SACnB5nG,EACA11E,EACAk0B,EACAC,EACAtgC,GAWA,OAFAm6L,GAAgB,QAPsB,CACpC75J,SACAtgC,QACAqgC,OACAwhD,MACA11E,UAIE6tL,IAEKA,GAAmBr7L,MAAM0E,KAAMtE,UAI1C,EAEA,EAAAisL,WAAWvB,QAAQ2Q,yBAA0B,CAC/C,CC5CA,IAAIC,GAAsF,KAQnF,SAASC,GACd7oI,GAEA,MAAMr/C,EAAO,qBACbynL,GAAWznL,EAAMq/C,GACjBqoI,GAAgB1nL,EAAMmoL,GACxB,CAEA,SAASA,KACPF,GAAkC,EAAArP,WAAWwP,qBAI7C,EAAAxP,WAAWwP,qBAAuB,SAAU51K,GAI1C,OAFAu1K,GAAgB,qBADmCv1K,IAG/Cy1K,IAEKA,GAAgC17L,MAAM0E,KAAMtE,UAIvD,EAEA,EAAAisL,WAAWwP,qBAAqBJ,yBAA0B,CAC5D,CC/BA,IAAIK,IAAqB,8BCqCzB,MAAMC,GAAmB,gBAQlB,SAASC,GAAoBxuL,GAClC,MAAO,eAAgBA,CACzB,CAQO,SAASyuL,GAAuBzuL,EAAayE,GAClD,MAAMiqL,EAAa1uL,EAAIu7B,QAAQ,QAAU,GAA2B,IAAtBv7B,EAAIu7B,QAAQ,MACpD1U,EAAOpiB,IAAYiqL,EAAaH,QAAmBt0L,GACzD,IAIE,GAAI,aAAc00L,MAAQ,IAAoCC,SAAS5uL,EAAK6mB,GAC1E,OAGF,MAAMgoK,EAAgB,IAAIF,IAAI3uL,EAAK6mB,GACnC,OAAI6nK,EAGK,CACLA,aACAI,SAAUD,EAAcC,SACxB17J,OAAQy7J,EAAcz7J,OACtB27J,KAAMF,EAAcE,MAGjBF,CACT,CAAE,MAEF,CAGF,CAMO,SAASG,GAAmChvL,GACjD,GAAIwuL,GAAoBxuL,GACtB,OAAOA,EAAI8uL,SAGb,MAAMG,EAAS,IAAIN,IAAI3uL,GAavB,OAZAivL,EAAO77J,OAAS,GAChB67J,EAAOF,KAAO,GACV,CAAC,KAAM,OAAOlxL,SAASoxL,EAAOjS,QAChCiS,EAAOjS,KAAO,IAEZiS,EAAO33D,WACT23D,EAAO33D,SAAW,cAEhB23D,EAAOC,WACTD,EAAOC,SAAW,cAGbD,EAAOn0L,UAChB,CAkGU,eACA,MACA,SAGA,gFAEA,MACA,SAIA,iBACA,WACA,OACA,KAAAglB,EAAA,GACA,KAAAA,EAAA,GACA,cACA,SACA,KAAAqvK,EACA,kBAEA,iBCnOH,MAAMC,GAAS,EAAAvQ,WCDT,IAAc,ECqBdwQ,GAAe,CAC1B3wL,EACA4wL,EACAC,EACAC,KAEA,IAAIplF,EACAv9C,EACJ,OAAQ4iI,IACFH,EAAOn8L,OAAS,IACds8L,GAAeD,KACjB3iI,EAAQyiI,EAAOn8L,OAASi3G,GAAa,IAMjCv9C,QAAuB5yD,IAAdmwG,KACXA,EAAYklF,EAAOn8L,MACnBm8L,EAAOziI,MAAQA,EACfyiI,EAAOI,OA9BC,EAACv8L,EAAeo8L,IAC5Bp8L,EAAQo8L,EAAW,GACd,OAELp8L,EAAQo8L,EAAW,GACd,oBAEF,OAuBiBI,CAAUL,EAAOn8L,MAAOo8L,GACxC7wL,EAAS4wL,IAGf,CACD,ECjCUM,GAAqB,CAACC,GAAqB,KACtD,MAAMC,EAAkBV,GAAOxW,aAAamX,mBAAmB,cAAc,GAQ7E,IAGGF,GACAC,GAAmBA,EAAgBE,cAAgB,GAAKF,EAAgBE,cAAgBpX,YAAYr2K,MAErG,OAAOutL,CACT,EClBWG,GAAqB,KAChC,MAAMC,EAAWN,KACjB,OAAOM,GAAUC,iBAAmB,CAAC,ECE1BC,GAAa,CAAwC/xL,EAAkBlL,GAAgB,KAClG,MAAM+8L,EAAWN,KACjB,IAAIS,EAA+C,WAenD,OAbIH,IACEd,GAAOn2K,UAAUq3K,cAAgBL,KAAuB,EAC1DI,EAAiB,YACRjB,GAAOn2K,UAAUs3K,aAC1BF,EAAiB,UACRH,EAASjqL,OAClBoqL,EAAiBH,EAASjqL,KAAKvW,QAAQ,KAAM,OAO1C,CACL2O,OACAlL,QACAu8L,OAAQ,OACR7iI,MAAO,EACPp5B,QAPoE,GAQpExjC,GCvBK,MAAMwJ,KAAK8I,SAASjG,KAAKoF,MAAkB,cAAZpF,KAAKC,UAAyB,ODwBlE8zL,iBACD,EE/BGG,GAAwC,IAAI3+L,QAO3C,SAAS4+L,GAAcC,EAAqBC,GAIjD,OAHKH,GAAY3/L,IAAI6/L,IACnBF,GAAYj/L,IAAIm/L,EAAa,IAAIC,GAE5BH,GAAY3/L,IAAI6/L,EACzB,CCXO,MAAME,GAAoB,cAAD,+DAK9B,SAAF,KAAEC,cAAgB,CAAE,CAElB,UAAF,KAAEC,gBAAiC,EAAC,CAGlC,aAAAC,CAAc5gG,GAEZ,GAAIA,EAAM6gG,eAAgB,OAE1B,MAAMC,EAAoB/5L,KAAK45L,gBAAgB,GAEzCI,EAAmBh6L,KAAK45L,gBAAgB55L,KAAK45L,gBAAgBj+L,OAAS,GAO1EqE,KAAK25L,eACLI,GACAC,GACA/gG,EAAMpgC,UAAYmhI,EAAiBnhI,UAAY,KAC/CogC,EAAMpgC,UAAYkhI,EAAkBlhI,UAAY,KAEhD74D,KAAK25L,eAAiB1gG,EAAMh9F,MAC5B+D,KAAK45L,gBAAgBv+L,KAAK49F,KAE1Bj5F,KAAK25L,cAAgB1gG,EAAMh9F,MAC3B+D,KAAK45L,gBAAkB,CAAC3gG,IAG1Bj5F,KAAKi6L,oCAAoChhG,EAC3C,ECXK,MAAM4Y,GAAU,CACrB9iG,EACAvH,EACAm9B,EAAgC,CAAC,KAEjC,IACE,GAAIu1J,oBAAoBC,oBAAoBxzL,SAASoI,GAAO,CAC1D,MAAMqrL,EAAK,IAAIF,qBAAoB1lF,IAKjCt1G,QAAQC,UAAU2O,MAAK,KACrBtG,EAASgtG,EAAK6lF,aAAuC,GACrD,IAGJ,OADAD,EAAGvoF,QAAQ,CAAE9iG,OAAMurL,UAAU,KAAS31J,IAC/By1J,CACT,CACF,CAAE,MAEF,CACM,ECjDKG,GAAW35L,IACtB,IAAI45L,GAAS,EACb,MAAO,KACAA,IACH55L,IACA45L,GAAS,EACX,CACD,ECJH,IAAIC,IAAmB,EAEvB,MASMC,GAAsBp3L,IAGe,WAArC40L,GAAOn2K,SAAU44K,iBAAgCF,IAAmB,IAQtEA,GAAiC,qBAAfn3L,EAAMyL,KAA8BzL,EAAMu3H,UAAY,EAGxE+/D,KACF,EAYIA,GAAwB,KAC5B32L,oBAAoB,mBAAoBy2L,IAAoB,GAC5Dz2L,oBAAoB,qBAAsBy2L,IAAoB,EAAK,EAGxDG,GAAuB,KAClC,GAAI3C,GAAOn2K,UAAY04K,GAAkB,EAAG,CAE1C,MAAMxB,EAAkBF,KAClB+B,EAAkC5C,GAAOn2K,SAASq3K,kBAIpDr2L,EAHA9K,WAAWypL,YACRmX,iBAAiB,oBACjB39L,QAAOqmB,GAAgB,WAAXA,EAAEpa,MAAqBoa,EAAEs3C,UAAYogI,IAAiB,IAAIpgI,UAO7E4hI,GAAkBK,IAjDwB,WAArC5C,GAAOn2K,UAAU44K,iBAAiCzC,GAAOn2K,UAAUq3K,aAAmBpzK,IAAJ,GAsBzF1lB,iBAAiB,mBAAoBo6L,IAAoB,GAKzDp6L,iBAAiB,qBAAsBo6L,IAAoB,EA2B3D,CACA,MAAO,CACL,mBAAID,GACF,OAAOA,EACT,EACD,ECpEUM,GAAiBvzL,IACxB0wL,GAAOn2K,UAAUq3K,aACnB94L,iBAAiB,sBAAsB,IAAMkH,MAAY,GAEzDA,GACF,ECEWwzL,GAAwC,CAAC,KAAM,KCE/CC,GAAwC,CAAC,GAAK,KAuB9CC,GAAQ,CAACC,EAAuCx2J,EAAmB,CAAC,KDjB5D,EAACw2J,EAAuCx2J,EAAmB,CAAC,KAC/Eo2J,IAAc,KACZ,MAAMK,EAAoBP,KACpBzC,EAASc,GAAW,OAC1B,IAAImC,EAEJ,MAmBMjB,EAAKvoF,GAAQ,SAnBIt1E,IACrB,IAAK,MAAM08D,KAAS18D,EACC,2BAAf08D,EAAM9xF,OACRizL,EAAI5b,aAGAvlF,EAAMpgC,UAAYuiI,EAAkBX,kBAKtCrC,EAAOn8L,MAAQmJ,KAAK8F,IAAI+tF,EAAMpgC,UAAYkgI,KAAsB,GAChEX,EAAO77J,QAAQlhC,KAAK49F,GACpBoiG,GAAO,IAGb,IAKEjB,IACFiB,EAASlD,GAAagD,EAAU/C,EAAQ4C,GAAer2J,EAAK2zJ,kBAC9D,GACA,ECVFgD,CACEf,IAAQ,KACN,MAAMnC,EAASc,GAAW,MAAO,GACjC,IAAImC,EAEJ,MAAME,EAAqBhC,GAAW50J,EAAM+0J,IAEtC8B,EAAiBj/J,IACrB,IAAK,MAAM08D,KAAS18D,EAClBg/J,EAAmB1B,cAAc5gG,GAK/BsiG,EAAmB5B,cAAgBvB,EAAOn8L,QAC5Cm8L,EAAOn8L,MAAQs/L,EAAmB5B,cAClCvB,EAAO77J,QAAUg/J,EAAmB3B,gBACpCyB,IACF,EAGIjB,EAAKvoF,GAAQ,eAAgB2pF,GAC/BpB,IACFiB,EAASlD,GAAagD,EAAU/C,EAAQ6C,GAAet2J,EAAM2zJ,kBAE7DJ,GAAOn2K,UAAUzhB,iBAAiB,oBAAoB,KACX,WAArC43L,GAAOn2K,UAAU44K,kBACnBa,EAAcpB,EAAGqB,eACjBJ,GAAO,GACT,IAMFnD,IAAQzwL,aAAa4zL,GACvB,IAEH,ECnEH,IAAIK,GAA2B,EAC3BC,GAAwB31K,IACxB41K,GAAwB,EAE5B,MAAMC,GAAkBt/J,IACtBA,EAAQ1gC,SAAQ0lB,IACVA,EAAEu6K,gBACJH,GAAwBv2L,KAAKm/B,IAAIo3J,GAAuBp6K,EAAEu6K,eAC1DF,GAAwBx2L,KAAK8F,IAAI0wL,GAAuBr6K,EAAEu6K,eAE1DJ,GAA2BE,IAAyBA,GAAwBD,IAAyB,EAAI,EAAI,EAC/G,GACA,EAGJ,IAAIvB,GAMG,MAAM2B,GAAsB,IAC1B3B,GAAKsB,GAA2Bha,YAAYsa,kBAAoB,EAM5DC,GAA+B,KACtC,qBAAsBva,aAAe0Y,KAEzCA,GAAKvoF,GAAQ,QAASgqF,GAAgB,CACpC9sL,KAAM,QACNurL,UAAU,EACV4B,kBAAmB,IACQ,ECzB/B,IAAIC,GAAuB,EAapB,MAAMC,GAAoB,cAAD,+DAO9B,SAAF,KAAEC,wBAAyC,EAAC,CAO1C,UAAF,KAAEC,uBAAmD,IAAI56K,GAAI,CAS3D,kBAAA66K,GACEJ,GAAuBJ,KACvB/7L,KAAKq8L,wBAAwB1gM,OAAS,EACtCqE,KAAKs8L,uBAAuB1qI,OAC9B,CAOA,8BAAA4qI,GACE,MAAMC,EAA4Br3L,KAAKm/B,IACrCvkC,KAAKq8L,wBAAwB1gM,OAAS,EACtCyJ,KAAKoF,OA3CFuxL,KAAwBI,IA2CqB,KAGlD,OAAOn8L,KAAKq8L,wBAAwBI,EACtC,CASA,aAAA5C,CAAc5gG,GAIZ,GAHAj5F,KAAK08L,2BAA2BzjG,IAG1BA,EAAM6iG,eAAqC,gBAApB7iG,EAAM0jG,UAA8B,OAGjE,MAAMC,EAAwB58L,KAAKq8L,wBAAwBQ,IAAI,GAE/D,IAAIC,EAAc98L,KAAKs8L,uBAAuB3iM,IAAIs/F,EAAM6iG,eAIxD,GACEgB,GACA98L,KAAKq8L,wBAAwB1gM,OAlFE,IAoF/Bs9F,EAAM7T,SAAWw3G,EAAuBG,SACxC,CAuBA,GArBID,EAGE7jG,EAAM7T,SAAW03G,EAAYC,UAC/BD,EAAYvgK,QAAU,CAAC08D,GACvB6jG,EAAYC,SAAW9jG,EAAM7T,UACpB6T,EAAM7T,WAAa03G,EAAYC,UAAY9jG,EAAMpgC,YAAcikI,EAAYvgK,QAAQ,GAAIs8B,WAChGikI,EAAYvgK,QAAQlhC,KAAK49F,IAG3B6jG,EAAc,CACZ/jM,GAAIkgG,EAAM6iG,cACVv/J,QAAS,CAAC08D,GACV8jG,SAAU9jG,EAAM7T,UAElBplF,KAAKs8L,uBAAuBjiM,IAAIyiM,EAAY/jM,GAAI+jM,GAChD98L,KAAKq8L,wBAAwBhhM,KAAKyhM,IAIpC98L,KAAKq8L,wBAAwB7jH,MAAK,CAACnpD,EAAGzpB,IAAMA,EAAEm3L,SAAW1tK,EAAE0tK,WACvD/8L,KAAKq8L,wBAAwB1gM,OA5GF,GA4GyC,CACtE,MAAMqhM,EAAsBh9L,KAAKq8L,wBAAwB3pJ,OA7G5B,IA+G7B,IAAK,MAAMoqJ,KAAeE,EACxBh9L,KAAKs8L,uBAAuB52K,OAAOo3K,EAAY/jM,GAEnD,CAGAiH,KAAKi9L,iCAAiCH,EACxC,CACF,QCrHWI,GAAYt8L,IACvB,MAAMu8L,EAAsB75L,IACP,aAAfA,EAAMyL,MAA4D,WAArCmpL,GAAOn2K,UAAU44K,iBAChD/5L,EAAG0C,EACL,EAGE40L,GAAOn2K,WACTzhB,iBAAiB,mBAAoB68L,GAAoB,GAGzD78L,iBAAiB,WAAY68L,GAAoB,GACnD,ECpBWC,GAAoBx8L,IAC/B,MAAMy8L,EAAMnF,GAAOoF,qBAAuBpF,GAAOzwL,WAIR,WAArCywL,GAAOn2K,UAAU44K,gBACnB/5L,KAIAy8L,EADAz8L,EAAK25L,GAAQ35L,IAKbs8L,GAASt8L,GACX,ECXW28L,GAAwC,CAAC,IAAK,KAmC9CC,GAAQ,CAACrC,EAAuCx2J,EAAsB,CAAC,KAE5E1sC,WAAWwlM,wBAA0B,kBAAmBA,uBAAuBpkM,WAIrF0hM,IAAc,KAEZkB,KAEA,MAAM7D,EAASc,GAAW,OAE1B,IAAImC,EAEJ,MAAMqC,EAAqBnE,GAAW50J,EAAMy3J,IAEtCZ,EAAiBj/J,IAOrB6gK,IAAiB,KACf,IAAK,MAAMnkG,KAAS18D,EAClBmhK,EAAmB7D,cAAc5gG,GAGnC,MAAM0kG,EAAMD,EAAmBlB,iCAE3BmB,GAAOA,EAAIZ,WAAa3E,EAAOn8L,QACjCm8L,EAAOn8L,MAAQ0hM,EAAIZ,SACnB3E,EAAO77J,QAAUohK,EAAIphK,QACrB8+J,IACF,GACA,EAGEjB,EAAKvoF,GAAQ,QAAS2pF,EAAe,CAOzCU,kBAAmBv3J,EAAKu3J,mBA5EK,KA+E/Bb,EAASlD,GAAagD,EAAU/C,EAAQmF,GAAe54J,EAAK2zJ,kBAExD8B,IAGFA,EAAGvoF,QAAQ,CAAE9iG,KAAM,cAAeurL,UAAU,IAK5C4C,IAAS,KACP1B,EAAcpB,EAAGqB,eACjBJ,GAAO,EAAK,IAEhB,GACA,EC7GG,MAAMuC,GAKX,aAAA/D,CAAc5gG,GACZj5F,KAAK08L,2BAA2BzjG,EAClC,ECMK,MAAM4kG,GAAwC,CAAC,KAAM,KAa/CC,GAAQ,CAAC3C,EAAuCx2J,EAAmB,CAAC,KAC/Eo2J,IAAc,KACZ,MAAMK,EAAoBP,KACpBzC,EAASc,GAAW,OAC1B,IAAImC,EAEJ,MAAM0C,EAAkBxE,GAAW50J,EAAMi5J,IAEnCpC,EAAiBj/J,IAGhBoI,EAAM2zJ,mBAET/7J,EAAUA,EAAQxwB,OAAO,IAG3B,IAAK,MAAMktF,KAAS18D,EAClBwhK,EAAgBlE,cAAc5gG,GAG1BA,EAAMpgC,UAAYuiI,EAAkBX,kBAOtCrC,EAAOn8L,MAAQmJ,KAAK8F,IAAI+tF,EAAMpgC,UAAYkgI,KAAsB,GAChEX,EAAO77J,QAAU,CAAC08D,GAClBoiG,IAEJ,EAGIjB,EAAKvoF,GAAQ,2BAA4B2pF,GAE/C,GAAIpB,EAAI,CACNiB,EAASlD,GAAagD,EAAU/C,EAAQyF,GAAel5J,EAAK2zJ,kBAI5D,MAAM0F,EAAgBzD,IAAQ,KAC5BiB,EAAcpB,EAAGqB,eACjBrB,EAAG5b,aACH6c,GAAO,EAAK,IAOd,IAAK,MAAMtsL,IAAQ,CAAC,UAAW,QAAS,oBAIlCmpL,GAAOn2K,UACTzhB,iBAAiByO,GAAM,IAAMquL,GAAiBY,IAAgB,CAC5DrnH,SAAS,EACTwuB,MAAM,GAId,IACA,ECjFS84F,GAAyC,CAAC,IAAK,MAMtDC,GAAa12L,IACb0wL,GAAOn2K,UAAUq3K,aACnB2B,IAAc,IAAMmD,GAAU12L,KACW,aAAhC0wL,GAAOn2K,UAAUg7D,WAC1Bz8E,iBAAiB,QAAQ,IAAM49L,GAAU12L,KAAW,GAGpDC,WAAWD,EACb,EAkBW22L,GAAS,CAAChD,EAAwCx2J,EAAmB,CAAC,KACjF,MAAMyzJ,EAASc,GAAW,QACpBmC,EAASlD,GAAagD,EAAU/C,EAAQ6F,GAAgBt5J,EAAK2zJ,kBAEnE4F,IAAU,KACR,MAAMtF,EAAkBF,KAEpBE,IAKFR,EAAOn8L,MAAQmJ,KAAK8F,IAAI0tL,EAAgBE,cAAgBC,KAAsB,GAE9EX,EAAO77J,QAAU,CAACq8J,GAClByC,GAAO,GACT,GACA,ECmCE,GAA6E,CAAC,EAC9E,GAA6D,CAAC,EAEpE,IAAI+C,GACAC,GACAC,GACAC,GASG,SAASC,GACdh3L,EACAi3L,GAAiB,GAEjB,OAAOC,GAAkB,MAAOl3L,EAAUm3L,GAAeP,GAAcK,EACzE,CASO,SAASG,GACdp3L,EACAi3L,GAAiB,GAEjB,OAAOC,GAAkB,MAAOl3L,EAAUq3L,GAAeR,GAAcI,EACzE,CAqCO,SAASK,GACd/vL,EACAvH,GASA,OAPA,GAAWuH,EAAMvH,GAEZ,GAAauH,KAkGpB,SAAuCA,GACrC,MAAMhO,EAAmC,CAAC,EAG7B,UAATgO,IACFhO,EAAQm7L,kBAAoB,GAG9BrqF,GACE9iG,GACAwtB,IACE,GAAgBxtB,EAAM,CAAEwtB,WAAU,GAEpCx7B,EAEJ,CAhHIg+L,CAA8BhwL,GAC9B,GAAaA,IAAQ,GAGhBiwL,GAAmBjwL,EAAMvH,EAClC,CAGA,SAAS,GAAgBuH,EAA6B3Q,GACpD,MAAM6gM,EAAe,GAASlwL,GAE9B,GAAKkwL,GAActjM,OAInB,IAAK,MAAMyyD,KAAW6wI,EACpB,IACE7wI,EAAQhwD,EACV,CAAE,MAAOmjB,GACP,IACE,KAAM5kB,MACJ,0DAA0DoS,aAAe,SAAgBq/C,aACzF7sC,EAEN,CAEJ,CAEA,SAASo9K,KACP,OAAOzD,IACL9C,IACE,GAAgB,MAAO,CACrBA,WAEFgG,GAAehG,CAAM,GAIvB,CAAEE,kBAAkB,GAExB,CAEA,SAASuG,KACP,OAAOf,IACL1F,IACE,GAAgB,MAAO,CACrBA,WAEFiG,GAAejG,CAAM,GAIvB,CAAEE,kBAAkB,GAExB,CAEA,SAAS4G,KACP,OAAOf,IAAO/F,IACZ,GAAgB,OAAQ,CACtBA,WAEFkG,GAAgBlG,CAAM,GAE1B,CAEA,SAAS+G,KACP,OAAO3B,IAAMpF,IACX,GAAgB,MAAO,CACrBA,WAEFmG,GAAenG,CAAM,GAEzB,CAEA,SAASsG,GACP3vL,EACAvH,EACAkvL,EACA0I,EACAX,GAAiB,GAIjB,IAAIT,EAWJ,OAbA,GAAWjvL,EAAMvH,GAIZ,GAAauH,KAChBivL,EAAgBtH,IAChB,GAAa3nL,IAAQ,GAGnBqwL,GACF53L,EAAS,CAAE4wL,OAAQgH,IAGdJ,GAAmBjwL,EAAMvH,EAAUi3L,EAAiBT,OAAgBj7L,EAC7E,CAmBA,SAAS,GAAWgM,EAA6Bq/C,GAC/C,GAASr/C,GAAQ,GAASA,IAAS,GAClC,GAASA,GAAsC1T,KAAK+yD,EACvD,CAGA,SAAS4wI,GACPjwL,EACAvH,EACAw2L,GAEA,MAAO,KACDA,GACFA,IAGF,MAAMiB,EAAe,GAASlwL,GAE9B,IAAKkwL,EACH,OAGF,MAAM5gL,EAAQ4gL,EAAa56J,QAAQ78B,IACpB,IAAX6W,GACF4gL,EAAavsJ,OAAOr0B,EAAO,EAC7B,CAEJ,CCtTO,SAASghL,GAAmBpjM,GACjC,MAAwB,iBAAVA,GAAsB4/B,SAAS5/B,EAC/C,CAOO,SAASqjM,GACd7M,EACA8M,EACAC,MACKhjB,IAEL,MAAMijB,GAAkB,QAAWhN,GAAYhD,gBAS/C,OARIgQ,GAAmBA,EAAkBF,GAE4B,mBAAxD,EAAoClQ,iBAC7C,EAA2BA,gBAAgBkQ,GAKxC5M,GAAeF,GAAY,KAChC,MAAMjF,EAAO2E,GAAkB,CAC7Bt5H,UAAW0mI,KACR/iB,IAOL,OAJIgR,GACFA,EAAKzyJ,IAAIykK,GAGJhS,CAAI,GAEf,CAyBO,SAASkS,GAA4B3+L,GAC1C,MAAMqmL,GAAS,UACf,IAAKA,EACH,OAGF,MAAM,KAAEjgL,EAAI,YAAE2zG,EAAasjE,WAAYuhB,EAAgB,UAAE9mI,GAAc93D,GAEjE,QAAEyuB,EAAO,YAAE9oB,EAAW,eAAEk5L,GAAmBxY,EAAOyJ,aAGlDgP,EAASzY,EAAO0Y,qBAAkE,UAClFC,EAAWF,GAAQG,cAEnB1vF,GAAQ,UAER2vF,EAAO3vF,EAAM4vF,UACbC,OAAuBp9L,IAATk9L,EAAqBA,EAAK9/D,OAAS8/D,EAAKlnM,IAAMknM,EAAKG,gBAAar9L,EAEpF,IAAIs9L,EACJ,IAEEA,EAAY/vF,EAAMw4E,eAAeC,SAASmE,QAAQ0C,UACpD,CAAE,MAEF,CAuBA,OAAOuC,GAAkB,CACvBhrL,OACAi3K,WAvBiC,CACjC5uJ,UACA9oB,cAEAu5L,KAAME,QAAep9L,EACrB6sL,WAAYyQ,QAAat9L,EACzBu9L,UAAWP,QAAYh9L,EAEvB+3G,cAKA,sBAAuBo9E,GAAOx0L,WAAW68L,UAGzC,iBAAkBX,EAAiB,gBAAa78L,KAE7C48L,GAMH9mI,YACA2nI,aAAc,CACZC,YAAY,IAGlB,CAGO,SAASC,KAEd,OAAOxI,GAAO53L,kBAAoB43L,GAAOxW,WAC3C,CAMO,SAASif,GAAQnyL,GACtB,OAAOA,EAAO,GAChB,CAQO,SAASoyL,GAAuBC,GACrC,IAAI15L,EAAO,UACPX,EAAU,UACV2jL,EAAQ,GACZ,IAAK,MAAMzsJ,KAAQmjK,EAAiB,CAElC,GAAa,MAATnjK,EAAc,EACfv2B,EAAMX,GAAWq6L,EAAgBz4K,MAAM,KACxC,KACF,CAEA,IAAKyH,MAAMD,OAAO8N,IAAQ,CACxBv2B,EAAiB,MAAVgjL,EAAgB,OAASA,EAChC3jL,EAAUq6L,EAAgBz4K,MAAM+hK,GAAO,GACvC,KACF,CACAA,GAASzsJ,CACX,CAKA,OAJIysJ,IAAU0W,IAEZ15L,EAAOgjL,GAEF,CAAEhjL,OAAMX,UACjB,CAKO,SAASs6L,GAAiBnE,GAC/B,IACE,OAAOzC,oBAAoBC,oBAAoBxzL,SAASg2L,EAC1D,CAAE,MACA,OAAO,CACT,CACF,CAeO,SAASoE,GACd3Z,EACA4Z,GAEA,IAAIC,EAEAC,GAAY,EAChB,SAASC,EAA0B79L,IAC5B49L,GAAaD,GAChBD,EAAkB19L,EAAO29L,GAE3BC,GAAY,CACd,CAEAhE,IAAS,KACPiE,EAA0B,WAAW,IAGvC,MAAMC,EAA6Bha,EAAO7mG,GAAG,6BAA6B,CAACl0D,EAAGtrB,KAEvEA,GAASsgM,aACZF,EAA0B,cAC1BG,GAAgBF,EAA4BG,GAC9C,IAGIA,EAAoCna,EAAO7mG,GAAG,0BAA0BitG,IAC5EyT,EAAiBzT,EAAKjE,cAAcI,OACpC2X,GAAgBC,EAAkC,GAEtD,CAOA,SAASD,MAAmBE,GAC1BA,EAAc3lM,SAAQ6rF,GAAKA,GAAKjgF,WAAWigF,EAAG,IAChD,CC5KA,MAAM+5G,GAAmB,WAEzB,IAGIC,GACAC,GAJAC,GAA6B,EAE7BC,GAA8B,CAAC,EAgB5B,SAASC,IAAuB,yBACrCC,EAAwB,yBACxBC,EAAwB,OACxB5a,IAEA,MAAM1F,EAAcgf,KACpB,GAAIhf,IAAe,UAAgC,CAE7CA,EAAYugB,MACd/J,GAAOxW,YAAYugB,KAAK,uBAE1B,MAAMC,EAAqBF,EC9ExB,SAAkC5a,GACvC,IACI+a,EADAC,EAAqB,EAGzB,IAAKtB,GAAiB,4BACpB,OAGF,MAAMuB,EAAoBzD,IAA6B,EAAGxG,aACxD,MAAMn/F,EAAQm/F,EAAO77J,QAAQ67J,EAAO77J,QAAQ5gC,OAAS,GAChDs9F,IAGLmpG,EAAqBhK,EAAOn8L,MAC5BkmM,EAAqBlpG,EAAK,IACzB,GAEH8nG,GAA8B3Z,GAAQ,CAACkb,EAAarB,MAS/C,SACLsB,EACAtpG,EACAgoG,EACAqB,GAEA,IAAe,KAAMzhM,IAAI,qBAAqB0hM,MAE9C,MAAM1pI,EAAY8nI,KAAS,WAAkC,IAAM1nG,GAAOpgC,WAAa,IACjF2pI,GAAY,UAAkB1Z,eAAe2Z,gBAE7Ct7L,EAAO8xF,GAAQ,SAAiBA,EAAM72E,SAAW,2BAEjDg8J,EAA6B,CACjC,CAAC,MAAmC,wBACpC,CAAC,MAA+B,kBAChC,CAAC,MAAoC,EAErC,0BAA2B6iB,EAE3B,sBAAuBqB,GAGrBrpG,IACFA,EAAM72E,UAAYg8J,EAAW,gBAAiB,SAAiBnlF,EAAM72E,UACrE62E,EAAMlgG,KAAOqlL,EAAW,UAAYnlF,EAAMlgG,IAG1CkgG,EAAMnwF,MAAQs1K,EAAW,WAAanlF,EAAMnwF,IAAIwc,OAAOvZ,MAAM,EAAG,MAG9C,MAAlBktF,EAAMypG,WAAqBtkB,EAAW,gBAAkBnlF,EAAMypG,UAK1C,MAApBzpG,EAAM0pG,aAAuBvkB,EAAW,kBAAoBnlF,EAAM0pG,YAEpD,MAAd1pG,EAAMriF,OAAiBwnK,EAAW,YAAcnlF,EAAMriF,OAGxD,MAAM42K,EAAOkS,GAA4B,CACvCv4L,OACA2zG,YAAa0nF,EACbpkB,aACAvlH,cAGE20H,IACFA,EAAKnD,SAAS,MAAO,CACnB,CAAC,MAA6C,cAC9C,CAAC,MAA8CkY,IAIjD/U,EAAKzyJ,IAAI89B,GAEb,CAjEI+pI,CAAuBR,EAAoBD,EAAoBlB,EAAgBqB,GAC/ED,GAAmB,GAEvB,CDyD0DQ,CAAyBzb,GAiKxC,mBACA,sCACA,IAIA,QAAAnrL,MAAA,EAAAA,MAAA,oBACA,SACA,GAxKjC6mM,EF4CDpE,GAAkB,QEgIgB,eACA,gCAKA,8CFtIEQ,GAAgBZ,IE3CnDyE,EAAqBhB,EEhFxB,SAAkC3a,GACvC,IACI4b,EADAC,EAAqB,EAGzB,IAAKnC,GAAiB,gBACpB,OAGF,MAAMoC,EAAoB1E,IAA6B,EAAGpG,aACxD,MAAMn/F,EAAQm/F,EAAO77J,QAAQ67J,EAAO77J,QAAQ5gC,OAAS,GAChDs9F,IAGLgqG,EAAqB7K,EAAOn8L,MAC5B+mM,EAAqB/pG,EAAK,IACzB,GAEH8nG,GAA8B3Z,GAAQ,CAACkb,EAAarB,MAMtD,SACEkC,EACAlqG,EACAgoG,EACAqB,GAEA,IAAe,KAAMzhM,IAAI,qBAAqBsiM,MAE9C,MAAMtqI,EAAY8nI,KAAS,WAAkC,IAAM1nG,GAAOpgC,WAAa,IACjF2pI,GAAY,UAAkB1Z,eAAe2Z,gBAE7Ct7L,EAAO8xF,GAAQ,SAAiBA,EAAMvpB,QAAQ,IAAInxE,MAAQ,eAE1D6/K,EAA6B,CACjC,CAAC,MAAmC,wBACpC,CAAC,MAA+B,kBAChC,CAAC,MAAoCnlF,GAAO7T,UAAY,EAExD,0BAA2B67G,EAE3B,sBAAuBqB,GAKrBrpG,GAAOvpB,SACTupB,EAAMvpB,QAAQ7zE,SAAQ,CAACD,EAAQyiB,KAC7B+/J,EAAW,cAAc//J,EAAQ,MAAO,EAAL,kBAIA,YACA,OACA,cACA,aACA,cAGA,IACA,kBACA,UACA,WAKA,SAEA,CArDrC+kL,CAAsBH,EAAoBD,EAAoB/B,EAAgBqB,GAC9EY,GAAmB,GAEvB,CF2D0DG,CAAyBjc,GAmJxC,mBACA,sCACA,IAGA,QAAAnrL,MAAA,EAAAA,MAAA,SACA,SACA,GAxJvC,MAAO,KACLimM,MACAY,IACAC,KAAsB,CAE1B,CAEA,MAAO,KAAe,CACxB,CAmc2C,YACA,EACA,EACA,EACA,EACA,KAEA,QAgBA,YACA,6BACA,aAEA,YACA,oBAEA,SACA,CAxBA,IACA,OACA,iBACA,MAGA,sBACA,kBACA,YACA,YACA,oCACA,mFAGA,CA8LA,YACA,EACA,EACA,EACA,GAEA,aACA,gBACA,OAEA,CG9vB3C,MAAMO,GAA8B,GAC9BC,GAAwB,IAAI7hL,IAuBlC,MAAM8hL,GAAsE,CAC1EtuJ,MAAO,QACPuuJ,YAAa,QACbC,UAAW,QACXC,UAAW,QACXC,QAAS,QACTC,WAAY,QACZC,SAAU,QACVC,UAAW,QACXC,SAAU,QACVC,WAAY,QACZC,WAAY,QACZC,YAAa,QACbC,WAAY,QACZC,aAAc,QACdC,aAAc,QACdC,UAAW,OACXC,QAAS,OACTC,KAAM,OACNC,UAAW,OACXC,UAAW,OACXC,SAAU,OACVC,KAAM,OACNl0I,QAAS,QACTm0I,MAAO,QACPC,SAAU,QACV3qJ,MAAO,SAaI4qJ,GAAyC,EAAG5M,aACvD,GAAoBr1L,MAAhBq1L,EAAOn8L,MACT,OAGF,MAAMmpF,EAAWu7G,GAAQvI,EAAOn8L,OAKhC,GAAImpF,EAlE6B,GAmE/B,OAGF,MAAM6T,EAAQm/F,EAAO77J,QAAQ2M,MAAK+vD,GAASA,EAAM7T,WAAagzG,EAAOn8L,OAASunM,GAAcvqG,EAAM9xF,QAElG,IAAK8xF,EACH,OAGF,MAAM,cAAE6iG,GAAkB7iG,EACpBgsG,EAAkBzB,GAAcvqG,EAAM9xF,MAGtC0xD,EAAY8nI,IAAS,UAA4C1nG,EAAMpgC,WACvEqsI,GAAa,UACbnS,EAAWmS,GAAa,QAAYA,QAAcniM,EAMlDoiM,GAF8B,MAAjBrJ,EAAwByH,GAAsB5pM,IAAImiM,QAAiB/4L,IAEtDgwL,EAI1ByP,EAAY2C,GAAY,QAAWA,GAAWxtL,aAAc,UAAkBmxK,eAAe2Z,gBAS/B,MACA,MARvD,SAAiBxpG,EAAMz9F,QASgC,cACA,WATjC,CACjC,CAAC,MAAmC,wBACpC,CAAC,MAA+B,kBAAkBypM,IACgB,mBAOA,cAGA,IACA,kBACA,qBACA,iBAGA,WACA,ECpGzDG,GAAmB,EAAG7oK,cACjC,MAAM2oK,GAAa,UACbnS,EAAWmS,GAAa,QAAYA,QAAcniM,EAClD0/L,EAAkB1P,GACpB,QAAWA,GAAUp7K,aACrB,UAAkBmxK,eAAe2Z,gBAErClmK,EAAQ1gC,SAAQo9F,IACd,MAAMosG,EAAepsG,EAGrB,IAAKosG,EAAa51K,WAChB,OAKF,MAAM61K,EAAYD,EAAal+L,KAEzBw7L,EAAa0C,EAAa1C,WAC1BD,EAAW2C,EAAa3C,UAOvB6C,EAAeC,GAAuB9C,EACzC,CAAC/B,GAAQ+B,GAAW,aACpBC,EACE,CAAChC,GAAQgC,GAAa,eACtB,EAAC,UAAsB,kBAEvBv9G,EACU,gBAAdkgH,EAII3E,GAAQv7L,KAAK8F,IAAI,GAAIy3L,GAAc,IAAMD,GAAY,KAErD,EAEAtkB,EAA6B,CACjC,CAAC,MAAmC,gCACpC,CAAC,MAA+B,mBAEhC,CAAC,MAAmC,YAEpC,gCAAiConB,EACjC,0BAA2B/C,EAC3B,aAAc4C,EAAatsM,GAC3B,eAAgBssM,EAAajjL,SAAS1pB,SAASuzB,eAAiB,UAChE,eACEo5K,EAAaI,cAAgBJ,EAAaK,cACtC,GAAGL,EAAaI,gBAAgBJ,EAAaK,qBAC5C,EACA,wBACA,sBAEA,4BACA,kCACA,yBrC/DN,SAAsB3kM,EAA2ByG,GACtD,MAAM4qL,EAAMC,KACZ,GAAID,EAAIuT,UACN,OAAOvT,EAAIuT,UAAU5kM,EAASyG,GAGhC,MAAM8qL,EAAgBC,GAAyBxxL,IACzC,iBAAEyxL,EAAkBC,WAAYC,EAAkBpiF,MAAOs1F,GAAgB7kM,EAIzE8kM,EAAoBD,GAAazoF,SAEhC,QAAU0oF,GAAmB,KAIlC,YAkd+F,KADA,EAndvDnT,GAqduD,GACA,QAEA,SAtdhF,KACb,MAAMpiF,GAAQ,UACRmiF,EAAaG,GAActiF,EAAOoiF,GAGlCwS,EADiBnkM,EAAQ8xL,eAAiBJ,EAE5C,IAAI,EACJK,GAAsB,CACpBL,aACAH,gBACAE,mBACAliF,UAKN,OAFA,OAAiBA,EAAO40F,GsC5DvB,SAGLp/K,EAAQyxF,EAAmCuuF,EAAwB,UACnE,IAAIC,EACJ,IACEA,EAAqBjgL,GACvB,CAAE,MAAOvE,GAGP,MAFAg2F,EAAQh2F,GACRukL,IACMvkL,CACR,CAEA,OASF,SACEtlB,EACAs7G,EACAuuF,GAEA,OAAI,EAAAv9F,EAAA,IAAWtsG,GAENA,EAAM6R,MACX88F,IACEk7F,IACOl7F,KAETrpF,IAGE,MAFAg2F,EAAQh2F,GACRukL,IACMvkL,CAAC,KAKbukL,IACO7pM,EACT,CA/BS+pM,CAA4BD,EAAoBxuF,EAASuuF,EAClE,CtCgDa,EACL,IAAMt+L,EAAS09L,KACf,KAEE,MAAM,OAAEl3L,IAAW,QAAWk3L,IAC1BA,EAAW9a,eAAmBp8K,GAAqB,OAAXA,GAC1Ck3L,EAAWjb,UAAU,CAAE7tJ,KAAM,KAAmBt7B,QAAS,kBAC3D,IAEF,KACEokM,EAAWnqK,KAAK,GAEnB,IAqb4F,KApb7F,GAEN,CqCkBa,CACA,CACA,gCACA,aACA,YACA,kBAEA,IACA,EAAAA,IAAA,OAEA,GACA,EEnHP,GAAS,EAAA4sJ,WA0FR,SAASse,GAAiBtnM,GAC/B,OAAOA,GAAQ,mDAAmDmqB,KAAKnqB,EAAKiF,WAC9E,CC5FA,IAAIsiM,GAUG,SAASC,GAAiC/3I,GAC/C,MAAMr/C,EAAO,UACbynL,GAAWznL,EAAMq/C,GACjBqoI,GAAgB1nL,EAAMq3L,GACxB,CAKO,SAASA,KAsBd,SAASC,EAA2BC,GAClC,OAAO,YAA4B9yL,GACjC,MAAM1K,EAAM0K,EAAK7X,OAAS,EAAI6X,EAAK,QAAKzQ,EACxC,GAAI+F,EAAK,CACP,MAAM7B,EAAOi/L,GAOPn4K,EAoBd,SAAwBw4K,GACtB,IAEE,OADY,IAAI9O,IAAI8O,EAAWrO,GAAO/5J,SAASwxJ,QACpC/rL,UACb,CAAE,MAEA,OAAO2iM,CACT,CACF,CA5BmBC,CAAevrK,OAAOnyB,IAKjC,GAFAo9L,GAAWn4K,EAEP9mB,IAAS8mB,EACX,OAAOu4K,EAAwBhrM,MAAM0E,KAAMwT,GAI7CsjL,GAAgB,UADI,CAAE7vL,OAAM8mB,MAE9B,CACA,OAAOu4K,EAAwBhrM,MAAM0E,KAAMwT,EAC7C,CACF,CA5CA0kL,GAAO53L,iBAAiB,YAAY,KAClC,MAAMytB,EAAKmqK,GAAO/5J,SAAS6X,KAErB/uC,EAAOi/L,GACbA,GAAWn4K,EAEP9mB,IAAS8mB,GAKb+oK,GAAgB,UADI,CAAE7vL,OAAM8mB,MACW,ID0BlC,YAAa,IAAY,GAAO04K,WCSvC,SAAKvO,GAAOuO,QAAS,YAAaJ,IAClC,SAAKnO,GAAOuO,QAAS,eAAgBJ,GACvC,CCnEO,MAAM,IAAc,8BCMpB,MAAM,GAAS,EAAA1e,WAEtB,IAAI+e,GAAwB,EAKrB,SAASC,KACd,OAAOD,GAAgB,CACzB,CAqCO,SAASE,GACd9gL,EACA/kB,EAEI,CAAC,GAaL,IAJA,SAAoB+kB,GAClB,MAAqB,mBAAPA,CAChB,CAEKk3E,CAAWl3E,GACd,OAAOA,EAGT,IAGE,MAAM+gL,EAAU,EAA2BC,mBAC3C,GAAID,EACF,MAAuB,mBAAZA,EACFA,EAIA/gL,EAKX,IAAI,SAAoBA,GACtB,OAAOA,CAEX,CAAE,MAIA,OAAOA,CACT,CAIA,MAAMihL,EAAgB,YAA4BvzL,GAChD,IAEE,MAAMwzL,EAAmBxzL,EAAKjB,KAAIuiB,GAAO8xK,GAAK9xK,EAAK/zB,KAMnD,OAAO+kB,EAAGxqB,MAAM0E,KAAMgnM,EACxB,CAAE,MAAOC,GAqBP,MA7GJP,KACAj/L,YAAW,KACTi/L,IAAe,KAyFb,SAAUp2F,IACRA,EAAM42F,mBAAkB5jM,IAClBvC,EAAQomM,aACV,SAAsB7jM,OAAOP,OAAWA,IACxC,SAAsBO,EAAOvC,EAAQomM,YAGvC7jM,EAAM8jM,MAAQ,IACT9jM,EAAM8jM,MACT1rM,UAAW8X,GAGNlQ,MAGT,SAAiB2jM,EAAG,IAGhBA,CACR,CACF,EAGA,IACE,IAAK,MAAMn+J,KAAYhjB,EACjBhsB,OAAOT,UAAUa,eAAeC,KAAK2rB,EAAIgjB,KAC3Ci+J,EAAcj+J,GAAuBhjB,EAAGgjB,GAG9C,CAAE,MAGF,EAIA,SAAoBi+J,EAAejhL,IAEnC,SAAyBA,EAAI,qBAAsBihL,GAGnD,IAEqBjtM,OAAOE,yBAAyB+sM,EAAe,QACnD7qM,cACbpC,OAAOC,eAAegtM,EAAe,OAAQ,CAC3CptM,IAAG,IACMmsB,EAAG3e,MAIlB,CAAE,MAGF,CAEA,OAAO4/L,CACT,CAKO,SAASM,KAEd,MAAMv+L,GAAM,YACN,SAAEw+L,GAAa,GAAOvlL,UAAY,CAAC,GACnC,UAAEw+K,GAAc,GAAO78L,WAAa,CAAC,EAW3C,MALgB,CACdoF,MACA8B,QANc,IACV08L,GAAY,CAAEC,QAASD,MACvB/G,GAAa,CAAE,aAAcA,IAQrC,CCjKO,MAGMiH,GAAqB,wBAoMxB,eACA,uBACA,CC1NH,SAASC,GACdr5I,EACAs5I,GAEA,MAAM34L,EAAO,QACbynL,GAAWznL,EAAMq/C,GACjBqoI,GAAgB1nL,GAAM,IAAM44L,QAAgB5kM,EAAW2kM,IACzD,CAgBA,SAASC,GAAgBC,EAAgDF,GAAgC,GACnGA,IL4DC,WACL,GAA2B,iBAAhBG,YACT,OAAO,EAGT,IAlCF,WACE,KAAM,UAAW,IACf,OAAO,EAGT,IAIE,OAHA,IAAIC,QACJ,IAAIC,QAAQ,0BACZ,IAAI3gI,UACG,CACT,CAAE,MACA,OAAO,CACT,CACF,CAqBO4gI,GACH,OAAO,EAKT,GAAI/B,GAAiB,GAAOt9L,OAC1B,OAAO,EAKT,IAAI1F,GAAS,EACb,MAAMsoE,EAAM,GAAOxpD,SAEnB,GAAIwpD,GAAiD,mBAAlCA,EAAkB,cACnC,IACE,MAAM08H,EAAU18H,EAAI5tE,cAAc,UAClCsqM,EAAQ3oI,QAAS,EACjBiM,EAAIzkD,KAAKuqC,YAAY42I,GACjBA,EAAQ7lE,eAAez5H,QAEzB1F,EAASgjM,GAAiBgC,EAAQ7lE,cAAcz5H,QAElD4iE,EAAIzkD,KAAK6qC,YAAYs2I,EACvB,CAAE,MAAOnkM,GACP,KAAe,KAAM8nC,KAAK,kFAAmF9nC,EAC/G,CAGF,OAAOb,CACT,CKhG+BilM,KAI7B,SAAK,EAAAvgB,WAAY,SAAS,SAAUwgB,GAClC,OAAO,YAAa30L,GAQlB,MAAM40L,EAAe,IAAIjiM,OAEnB,OAAEwH,EAAM,IAAE7E,GAiLS,SAAAu/L,GACA,gBACA,4BAGA,iBACA,aAEA,OACA,UACA,2DAEA,CAEA,aACA,OACA,UACA,2DAEA,CApMDC,CAAe90L,GACjC+0L,EAAgC,CACpC/0L,OACAg1L,UAAW,CACT76L,SACA7E,OAEF4lL,eAAuC,KAAvB,UAEhB0Z,eACAx9L,QAAS69L,GAAwBj1L,IAWnC,OAPKo0L,GACH9Q,GAAgB,QAAS,IACpByR,IAKAJ,EAAc7sM,MAAM,EAAAqsL,WAAYn0K,GAAM1F,MAC3C4N,MAAO3N,IACD65L,EACFA,EAAgB75L,GAEhB+oL,GAAgB,QAAS,IACpByR,EACHvZ,aAAqC,KAAvB,UACdjhL,aAIGA,KAERpR,IAqBC,GApBAm6L,GAAgB,QAAS,IACpByR,EACHvZ,aAAqC,KAAvB,UACdryL,WAGE,EAAA4rG,EAAA,IAAQ5rG,SAA0BoG,IAAhBpG,EAAMu9F,QAK1Bv9F,EAAMu9F,MAAQkuG,EAAaluG,OAC3B,SAAyBv9F,EAAO,cAAe,IAS/CA,aAAiBmD,YACE,oBAAlBnD,EAAMmE,SACa,gBAAlBnE,EAAMmE,SACY,oDAAlBnE,EAAMmE,SAER,IACE,MAAMgI,EAAM,IAAI2uL,IAAI8Q,EAAYC,UAAU1/L,KAC1CnM,EAAMmE,QAAU,GAAGnE,EAAMmE,YAAYgI,EAAI26D,OACxB,OAEA,CAMA,UAGA,CACA,GACA,CAqDA,eAEA,MACA,IACA,WACA,OACA,MACA,EA1DA,eAAAmnC,EAAA,GACA,YACA,eACA,gBAGA,cACA,KACA,8BAEA,GAEA,KAGA,SACA,SACA,MACA,IAEA,mBACA,8BAEA,GACA,KAGA,oBAAA89F,EAAA,OAEA,gBAEA,IA+BA,0BACA,4BACA,aA/BA,KAEA,OACA,IACA,SACA,eACA,CACA,CAEA,gBAEA,gBACA,8BAGA,CACA,CAYA,GAMA,CAEA,iBACA,qCACA,CAEA,eACA,yBACA,EAGA,EAIA,YACA,MAGA,WACA,aAGA,GAXA,EAYA,CA2BA,eACA,aAEA,IACA,GACA,oBACA,UACA,eACA,UAEA,8BAGA,eACA,6BAEA,OAEA,CAGA,iBC7PxB,SAASC,GAAa5nM,EAA2D,CAAC,GACvF,MAAMqmL,EAASrmL,EAAQqmL,SAAU,UACjC,KAAK,aAAgBA,EACnB,MAAO,CAAC,EAGV,MAAMoE,GAAU,UACV4G,GAAM,OAAwB5G,GACpC,GAAI4G,EAAIuW,aACN,OAAOvW,EAAIuW,aAAa5nM,GAG1B,MAAMuvG,EAAQvvG,EAAQuvG,QAAS,UACzBk9E,EAAOzsL,EAAQysL,OAAQ,UACvBob,EAAcpb,GAAO,QAAkBA,GAmB/C,SAA4Bl9E,GAC1B,MAAM,QAAEm5E,EAAO,QAAEsF,EAAO,kBAAE8Z,GAAsBv4F,EAAMw4F,wBACtD,OAAO,SAA0Brf,EAASof,EAAmB9Z,EAC/D,CAtBuDga,CAAmBz4F,GAClEmgF,EAAMjD,GAAO,QAAkCA,IAAQ,QAAmCpG,EAAQ92E,GAClG04F,GAAU,SAA4CvY,GAG5D,OADiC,MAAmB3nK,KAAK8/K,GAMlD,CACL,eAAgBA,EAChBI,YANA,KAAMp9J,KAAK,yDACJ,CAAC,EAOZ,CCuKmC,eACA,yDACA,CAkBA,YACA,EACA,EACA,EACA,GAEA,SACA,MACA,aACA,gBACA,SACA,sBAcA,OAZA,IACA,QACA,qBACA,4BAEA,WACA,0BAEA,SACA,4BAGA,CACA,CCtQ5B,MAAMq9J,GAAsB,oBAY5B,SAASC,GAA6B96I,GAE3CooI,GADa,MACIpoI,GACjBqoI,GAFa,MAES0S,GACxB,CAGO,SAASA,KACd,IAAK,GAA0BjjB,eAC7B,OAGF,MAAMkjB,EAAWljB,eAAe7sL,UAGhC+vM,EAASt2L,KAAO,IAAIwpE,MAAM8sH,EAASt2L,KAAM,CACvC,KAAAxX,CACE+tM,EACAC,EACAC,GASA,MAAMnB,EAAe,IAAIjiM,MAEnBuoL,EAAwC,KAAvB,UAIjB/gL,GAAS,EAAA46F,EAAA,IAASghG,EAAgB,IAAMA,EAAgB,GAAGhgK,mBAAgBxmC,EAC3E+F,EAiHZ,SAAwBA,GACtB,IAAI,EAAAy/F,EAAA,IAASz/F,GACX,OAAOA,EAGT,IAGE,OAAO,EAAalF,UACtB,CAAE,MAAO,CAGX,CA7HkB4lM,CAAeD,EAAgB,IAE3C,IAAK57L,IAAW7E,EACd,OAAOugM,EAAa/tM,MAAMguM,EAAgBC,GAG5CD,EAAeL,IAAuB,CACpCt7L,SACA7E,MACA2gM,gBAAiB,CAAC,GAIL,SAAX97L,GAAqB7E,EAAI8f,MAAM,gBACjC0gL,EAAeI,wBAAyB,GAG1C,MAAMC,EAAwC,KAE5C,MAAMC,EAAUN,EAAeL,IAE/B,GAAKW,GAI6B,IAA9BN,EAAevsH,WAAkB,CACnC,IAGE6sH,EAAQC,YAAcP,EAAet7L,MACvC,CAAE,MAEF,CAQA8oL,GAAgB,MANoB,CAClC9H,aAAqC,KAAvB,UACdN,iBACA/I,IAAK2jB,EACLlB,gBAGJ,GAmCF,MAhCI,uBAAwBkB,GAA+D,mBAAtCA,EAAexsH,mBAClEwsH,EAAexsH,mBAAqB,IAAIR,MAAMgtH,EAAexsH,mBAAoB,CAC/ExhF,MAAK,CAACwuM,EAA4BC,EAA2BC,KAC3DL,IACOG,EAA2BxuM,MAAMyuM,EAA2BC,MAIvEV,EAAehpM,iBAAiB,mBAAoBqpM,GAMtDL,EAAejjB,iBAAmB,IAAI/pG,MAAMgtH,EAAejjB,iBAAkB,CAC3E,KAAA/qL,CACE2uM,EACAC,EACAC,GAEA,MAAO7xL,EAAQrc,GAASkuM,EAElBP,EAAUM,EAAwBjB,IAMxC,OAJIW,IAAW,EAAArhG,EAAA,IAASjwF,KAAW,EAAAiwF,EAAA,IAAStsG,KAC1C2tM,EAAQH,gBAAgBnxL,EAAO2T,eAAiBhwB,GAG3CguM,EAAyB3uM,MAAM4uM,EAAyBC,EACjE,IAGKd,EAAa/tM,MAAMguM,EAAgBC,EAC5C,IAIFH,EAAS9iB,KAAO,IAAIhqG,MAAM8sH,EAAS9iB,KAAM,CACvC,KAAAhrL,CAAM8uM,EAAcC,EAA2DC,GAC7E,MAAMC,EAAgBF,EAAYpB,IAElC,OAAKsB,QAImBxnM,IAApBunM,EAAa,KACfC,EAAc38L,KAAO08L,EAAa,IAOpCxT,GAAgB,MAJoB,CAClCpI,eAAuC,KAAvB,UAChB/I,IAAK0kB,IAIAD,EAAa9uM,MAAM+uM,EAAaC,IAb9BF,EAAa9uM,MAAM+uM,EAAaC,EAc3C,GAEJ,CCrJA,SAASE,GAAgBh8L,EAAe,GACtC,SAAS,WAAkCkzK,YAAY+oB,YAAcj8L,GAAQ,GAC/E,CCoGA,MAAMk8L,GAAmB,IAAI/vM,QACvBgwM,GAAuB,IAAIjpL,IAEpBkpL,GAAsE,CACjFC,YAAY,EACZC,UAAU,EACVC,mBAAmB,EACnBC,6BAA6B,GAIxB,SAASC,GAA2B7jB,EAAgB3+K,GACzD,MAAM,WACJoiM,EAAU,SACVC,EAAQ,4BACRE,EAA2B,2BAC3BE,EAA0B,kBAC1BH,EAAiB,wBACjBI,EAAuB,mBACvBC,GACE,IACCR,MACAniM,GAGC4iM,EACkC,mBAA/BH,EAA4CA,EAA8B7+K,IAAc,EAE3Fi/K,EAAkCxiM,GAuHnC,SACLyiM,EACAJ,GAIA,MAAMn1J,GAAO,WAEb,GAAKA,EAUE,CACL,IAAIw1J,EACAC,EAGJ,IACED,EAAc,IAAI/T,IAAI8T,EAAWv1J,GACjCy1J,EAAgB,IAAIhU,IAAIzhJ,GAAM25I,MAChC,CAAE,MACA,OAAO,CACT,CAEA,MAAM+b,EAAsBF,EAAY7b,SAAW8b,EACnD,OAAKN,GAID,EAAAjtM,EAAA,IAAyBstM,EAAY5nM,WAAYunM,IAChDO,IAAuB,EAAAxtM,EAAA,IAAyBstM,EAAY5T,SAAUuT,GAJlEO,CAOX,CA/BW,CAIT,MAAMC,IAAgCJ,EAAU3iL,MAAM,aACtD,OAAKuiL,GAGI,EAAAjtM,EAAA,IAAyBqtM,EAAWJ,GAFpCQ,CAIX,CAsBF,CA/JmEC,CAAoB9iM,EAAKqiM,GAEpFhd,EAA8B,CAAC,EAEjC0c,IAGFzjB,EAAO8f,mBAAkB5jM,IACJ,gBAAfA,EAAMyL,MAA0BzL,EAAM6qL,OACxC7qL,EAAM6qL,MAAMtyL,SAAQ2xL,IAClB,GAAgB,gBAAZA,EAAKp9J,GAAsB,CAC7B,MAAMy7K,EAAmBlB,GAAqBhxM,IAAI6zL,EAAKgB,SACnDqd,IACFre,EAAKt0H,UAAY2yI,EAAmB,IACpClB,GAAqBjlL,OAAO8nK,EAAKgB,SAErC,KAGGlrL,KAGL0nM,GLvHD,SAA2C58I,GAChD,MAAMr/C,EAAO,sBACbynL,GAAWznL,GKsH2Bw5L,IAChC,GAAIA,EAAYx6L,SAAU,CACxB,MAAMy/K,EAAOkd,GAAiB/wM,IAAI4uM,EAAYx6L,UAC1Cy/K,GAAQ+a,EAAYvZ,cACtB2b,GAAqBtwM,IAAImzL,EAAM+a,EAAYvZ,aAE/C,KL3HNyH,GAAgB1nL,GAAM,IAAM44L,GAAgBmE,KAC9C,CKoHMC,GAUFtE,IAA+Bc,IAC7B,MAAMyD,EH5IL,SACLzD,EACA8C,EACAO,EACAzd,EACA8d,EAAyB,qBAEzB,IAAK1D,EAAYC,UACf,OAGF,MAAM,OAAE76L,EAAM,IAAE7E,GAAQy/L,EAAYC,UAE9B0D,GAAyB,EAAA9Y,EAAA,MAAqBiY,EAAiBviM,GAErE,GAAIy/L,EAAYvZ,cAAgBkd,EAAwB,CACtD,MAAMviB,EAAS4e,EAAYC,UAAU2D,OACrC,IAAKxiB,EAAQ,OAEb,MAAM6D,EAAOW,EAAMxE,GAOnB,YANI6D,IA0J2B,cACA,gBACA,6BAEA,mDAEA,MACA,oBACA,KACA,gDAEA,CACA,eACA,kDAEA,OACA,CAzK7B4e,CAAQ5e,EAAM+a,UAGPpa,EAAMxE,IAGjB,CAEA,MAAM0iB,KAAc,UAEd7e,EACJ0e,GAA0BG,EACtBla,GAuK2B,SACA,EACA,EACA,GAEA,cACA,OACA,eAAA2F,GAAA,OACA,uBAEA,CAjLTwU,CAAoBxjM,EAAK6E,EAAQs+L,IACnD,IAAI,EAKV,GAHA1D,EAAYC,UAAU2D,OAAS3e,EAAKjE,cAAcI,OAClDwE,EAAMX,EAAKjE,cAAcI,QAAU6D,EAE/Boe,EAAoBrD,EAAYC,UAAU1/L,KAAM,CAClD,MAAMwoJ,EAA4Bi3C,EAAY/0L,KAAK,GAE7CzS,EAAsCwnM,EAAY/0L,KAAK,IAAM,CAAC,EAE9D5I,EAyCH,SACL0mJ,EACAi7C,EAOA/e,GAEA,MAAMgf,EAAe7D,GAAa,CAAEnb,SAC9Bob,EAAc4D,EAAa,gBAC3BxD,EAAUwD,EAAaxD,QAG7B,IAAKJ,EACH,OAGF,MAAM6D,EAAkBF,EAAgB3hM,WAAY,EAAA29F,EAAA,IAAU+oD,GAAWA,EAAQ1mJ,aAAU7H,GAE3F,GAAK0pM,EAEE,IAuF0B,YACA,sDACA,CAzFtBC,CAAUD,GAAkB,CACrC,MAAME,EAAa,IAAI7E,QAAQ2E,GAO/B,GAJKE,EAAWhzM,IAAI,iBAClBgzM,EAAWtyM,IAAI,eAAgBuuM,GAG7BI,EAAS,CACX,MAAM4D,EAAoBD,EAAWhzM,IAAI,WAEpCizM,EAEOC,GAAoCD,IAC9CD,EAAWtyM,IAAI,UAAW,GAAGuyM,KAAqB5D,KAFlD2D,EAAWtyM,IAAI,UAAW2uM,EAIC,CAEA,QACA,sBACA,eAEA,oCACA,2BAGA,gBACA,gCASA,OANA,OAGA,sBAGA,CACA,EACA,oDAEA,kBAAAA,aAAA,EACA,IACA,iBACA,OACA,IACA,GAEA,EACA,IACA,iBACA,mBACA,OAMA,OAJA,OACA,UAGA,IACA,EACA,oBACA,sCAEA,EA/D/B,MAAO,IAAKwD,EAgEmB,CAhIfM,CACdx7C,EACAvwJ,GAIA,EAAAqyL,EAAA,MAAqBiZ,EAAY7e,OAAOzqL,GAEtC6H,IAEF29L,EAAY/0L,KAAK,GAAKzS,EACtBA,EAAQ6J,QAAUA,EAEtB,CAEA,MAAMw8K,GAAS,UAEf,GAAIA,EAAQ,CACV,MAAM2lB,EAAY,CAChB3yJ,MAAOmuJ,EAAY/0L,KACnBzF,SAAUw6L,EAAYx6L,SACtB2gL,eAAgB6Z,EAAY7Z,eAC5BM,aAAcuZ,EAAYvZ,cAG5B5H,EAAOjhE,KAAK,4BAA6BqnE,EAAMuf,EACjD,CAEA,OAAOvf,CACT,CGmE0Bwf,CAAuBzE,EAAa8C,EAAkBC,EAAgCnd,GAS1G,GAPIoa,EAAYx6L,UAAYw6L,EAAYC,UAAU2D,QAChDzB,GAAiBrwM,IAAIkuM,EAAYx6L,SAAUw6L,EAAYC,UAAU2D,QAM/DH,EAAa,CACf,MAAMiB,EAAUC,GAAW3E,EAAYC,UAAU1/L,KAC3C26D,EAAOwpI,EAAUE,GAASF,GAASxpI,UAAO1gE,EAChDipM,EAAYjiB,cAAc,CACxB,WAAYkjB,EACZ,iBAAkBxpI,IAGhBsnI,GACFqC,GAAepB,GAGjBZ,IAAqBY,EAAa,CAAEphM,QAAS29L,EAAY39L,SAC3D,MAIAkgM,GACF5B,IAA6BX,IAC3B,MAAMyD,EAwGL,SACLzD,EACA8C,EACAO,EACAzd,GAEA,MAAMxI,EAAM4iB,EAAY5iB,IAClB4kB,EAAgB5kB,IAAMsjB,IAE5B,IAAKtjB,GAAOA,EAAI+jB,yBAA2Ba,EACzC,OAGF,MAAM,IAAEzhM,EAAG,OAAE6E,GAAW48L,EAElB2B,GAAyB,EAAA9Y,EAAA,MAAqBiY,EAAiBviM,GAGrE,GAAIy/L,EAAYvZ,cAAgBkd,EAAwB,CACtD,MAAMviB,EAAShE,EAAI0nB,uBACnB,IAAK1jB,EAAQ,OAEb,MAAM6D,EAAOW,EAAMxE,GAQnB,YAPI6D,QAAsCzqL,IAA9BwnM,EAAcV,eACxB,QAAcrc,EAAM+c,EAAcV,aAClCrc,EAAKzyJ,aAGEozJ,EAAMxE,IAGjB,CAEA,MAAMsjB,EAAUC,GAAWpkM,GACrBwkM,EAAsBH,GAAVF,GAAuCnkM,GAEnDykM,EAA0CzkM,E1C5FxC,mB0C8FFujM,KAAc,UAEd7e,EACJ0e,GAA0BG,EACtBla,GAAkB,CAChBhrL,KAAM,GAAGwG,KAAU4/L,IACZ,YACA,MACA,WACA,gBACA,aACA,yBACA,2BACA,wBACA,uCACA,sCAGA,MAEA,gDACA,8BAEA,MAkBA,cACA,+CAEA,GAKA,SACA,EACA,EACA,GAEA,6CAEA,wBAKA,IAGA,GADA,qCACA,GAIA,mBACA,KAcA,sDATA,+BAEA,CACA,OAEA,CACA,CAnCA,OAEA,CAvBA,CACA,GAIA,sBAIA,mBAKA,OAJA,GACA,wCAGA,CACA,CArLSC,CAAYjF,EAAa8C,EAAkBC,EAAgCnd,GAC/F,GAAI6d,EAAa,CAKf,IAAIphM,EAJAmgM,GACFqC,GAAepB,GAIjB,IACEphM,EAAU,IAAIk9L,QAAQS,EAAY5iB,IAAI8nB,mBAAmBhE,gBAC3D,CAAE,MAEF,CACA2B,IAAqBY,EAAa,CAAEphM,WACtC,IAGN,CAiBA,SAASwiM,GAAe5f,GACtB,MAAM,IAAE1kL,IAAQ,QAAW0kL,GAAMpvL,KAEjC,IAAK0K,GAAsB,iBAARA,EACjB,OAGF,MAAM86K,EAAUkb,GAAqC,YAAY,EAAGviK,cAClEA,EAAQ1gC,SAAQo9F,IACd,GAxBN,SAAqCA,GACnC,MACsB,aAApBA,EAAM0jG,WACN,kBAAmB1jG,GAC6C,iBAAzD,EAAqC4nG,kBACnB,UAAxB5nG,EAAMy0G,eAAqD,mBAAxBz0G,EAAMy0G,cAE9C,CAiBUC,CAA4B10G,IAAUA,EAAM9xF,KAAKymM,SAAS9kM,GAAM,CAClE,MAAM+kM,EDjOP,SACLC,GAEA,MAAMC,EAA0D,GAGhE,GAAsChrM,MAAlC+qM,EAAejN,gBAA8B,CAC/C,MAAM,KAAE15L,EAAI,QAAEX,GAAYo6L,GAAuBkN,EAAejN,iBAChEkN,EAAe1yM,KAAK,CAAC,2BAA4BmL,GAAU,CAAC,wBAAyBW,GACvF,CACA,OAAK,UAGE,IACF4mM,EACH,CAAC,8BAA+BvD,GAAgBsD,EAAeE,gBAC/D,CAAC,2BAA4BxD,GAAgBsD,EAAeG,aAC5D,CAAC,mCAAoCzD,GAAgBsD,EAAeI,oBACpE,CAAC,iCAAkC1D,GAAgBsD,EAAeK,kBAClE,CAAC,6BAA8B3D,GAAgBsD,EAAeM,eAC9D,CAAC,uCAAwC5D,GAAgBsD,EAAeO,wBACxE,CAAC,8BAA+B7D,GAAgBsD,EAAeQ,aAC/D,CAAC,6BAA8B9D,GAAgBsD,EAAeS,eAC9D,CAAC,8BAA+B/D,GAAgBsD,EAAehV,gBAC/D,CAAC,4BAA6B0R,GAAgBsD,EAAeU,eAbtDT,CAeX,CCuM+BU,CAA+Bx1G,GACtD40G,EAAehyM,SAAQ6yM,GAAkBlhB,EAAK3lI,gBAAgB6mJ,KAG9DjnM,WAAWm8K,EACb,IACA,GAEN,CAiLiB,eACA,IAIA,OADA,8BACA,IACA,OACA,MACA,CACA,CCrYV,MA+OD+qB,GAAyD,IAC1D5a,GACH6a,sBAAsB,EACtBC,oBAAoB,EACpBC,oBAAoB,EACpBC,gBAAgB,EAChBC,0BAA0B,EAC1BC,WAAW,EACXC,qBAAqB,EACrBC,oBAAqB,GACrBC,0BAA2B,GAC3BC,iBAAiB,EACjBC,kBAAmB,YACnBC,yBAAyB,EACzBC,aAAc,CAAC,KACZ5E,IAYQ6E,GAA4B,CAAEhnM,EAA2C,CAAC,KACrF,MAAMinM,EAAyB,CAC7BvoM,UAAMpE,EACNnH,YAAQmH,GAOJ4sM,EAAyB,GAAO5tL,UAEhC,UACJktL,EAAS,oBACTC,EAAmB,eACnBH,EAAc,yBACdC,EACAQ,cAAc,mBAAEI,EAAkB,yBAAEC,EAAwB,yBAAEC,GAA0B,gBACxFC,EAAe,YACf/b,EAAW,aACXC,EAAY,iBACZC,EAAgB,mBAChB4a,EAAkB,WAClBjE,EAAU,SACVC,EAAQ,4BACRE,EAA2B,2BAC3BE,EAA0B,kBAC1BH,EAAiB,oBACjBoE,EAAmB,0BACnBC,EAAyB,mBACzBP,EAAkB,qBAClBD,EAAoB,gBACpBS,EAAe,kBACfC,EAAiB,wBACjBC,EAAuB,mBACvBnE,GACE,IACCuD,MACAlmM,GAGL,IAAIunM,EACAC,EAGJ,SAASC,EAAiB9oB,EAAgBgN,EAAoC+b,GAAa,GACzF,MAAMC,EAAgD,aAAxBhc,EAAiBhkK,GAEzCigL,EAA0CN,EAC5CA,EAAgB3b,GAChBA,EAEEhW,EAAaiyB,EAAsBjyB,YAAc,CAAC,EASxD,GALIgW,EAAiBjtL,OAASkpM,EAAsBlpM,OAClDi3K,EAAW,MAAoC,SAC/CiyB,EAAsBjyB,WAAaA,IAGhC+xB,EAAY,CAEf,MAAM9kM,GAAM,UAKZ,YAJA8mL,GAAkB,IACbke,EACHx3I,UAAWxtD,IACV0vB,IAAI1vB,EAET,CAEAqkM,EAAYvoM,KAAOkpM,EAAsBlpM,KACzCuoM,EAAY9zM,OAASwiL,EAAW,MAEhC,MAAMkyB,EAAWnc,GAAckc,EAAuB,CACpDrc,cACAC,eACAC,mBAEAQ,kBAAmB0b,EACnBxb,cAAepH,IAGbwiB,MjBrEmC,cACA,aACA,aACA,sBAEA,OAGA,cAEA,kBAEA,oCAEA,yBACA,wBACA,KAKA,wBAGA,iCAIA,oBACA,kBAsLA,gBACA,sFACA,eAEA,uCACA,0BACA,+BA4DA,gBACA,6BACA,sBACA,wBACA,gBAKA,UACA,qBACA,YACA,YACA,oCAIA,UACA,sBACA,YACA,YACA,oCAIA,CAnFA,OACA,CA9LA,QACA,MAEA,WACA,YACA,gBA6EA,SACA,EACA,EACA,EACA,EACA,EACA,GAEA,GACA,2CACA,kBAEA,OAGA,eACA,yBAUA,kBACA,MACA,MAEA,GACA,wCAGA,QACA,uDACA,0CAeA,cACA,IAEA,iBAEA,MACA,OAIA,uBAEA,mCACA,kBACA,+CACA,cACA,IAEA,yDACA,OAEA,CAGA,MACA,CAEA,eAGA,YADA,sCAIA,IACA,oDACA,OAEA,CACA,OAGA,CACA,CAtDA,MAGA,MACA,UACA,YACA,eACA,cAGA,CA7HA,wCAGA,aAEA,gCAEA,4BACA,8CAEA,uCACA,+CAEA,KACA,CACA,gBAiQA,SACA,EACA,EACA,EACA,EACA,EACA,EACA,GAIA,iEACA,OAGA,uEACA,kBACA,OAGA,cAEA,GACA,wCAEA,qDACA,yDACA,iEAGA,uBACA,UACA,oCAIA,MAAAO,EAAA,EACA,qBAiBA,GAhBA,IACA,wCAGA,aACA,6CAGA,SACA,4BAGA,oDAIA,yBACA,8CACA,6BACA,+BACA,CAEA,YAGA,OAFA,IAEA,CACA,sCACA,KACA,cAEA,CApUA,CACA,EACA,EACA,OACA,EACA,EACA,EACA,uBAKA,IAGA,0BA0TA,YACA,qBACA,MACA,OAIA,qBACA,IACA,iBACA,0DAGA,QACA,wCAGA,YACA,wDAIA,oBACA,sDAGA,2BACA,mEAEA,CArVA,IAGA,iBA+YA,SAAA1O,GACA,eACA,MACA,OAGA,wCAEA,OACA,uBACA,UACA,oBAGA,CA5ZA,KAGA,kCACA,OAIA,kCACA,OAGA,uCrC3YpC,SAAwB16L,EAAclL,EAAeq9B,EAAuB4rK,GAAa,WAC9F,MAAMnS,EAAWmS,IAAc,QAAYA,GAEvCnS,IACF,KAAe,KAAMlyL,IAAI,mDAAmDsG,OAAUlL,KAASq9B,KACK,cACA,SACA,WAGA,CqCkY7D,sBAIA,2CAQA,mDA2TA,cAEA,gCAGA,YACA,oDAGA,OACA,+BAGA,QAEA,qDAGA,mBAEA,2CAGA,qBAIA,+CAGA,oCAIA,wCACA,2BACA,uDAGA,CAhWA,OAGA,UACA,UACA,KACA,CiBpCnCk3K,CAAsBhjB,EAAM,CAC1BijB,yBAA0BZ,EAC1Ba,yBAA0BZ,EAC1BX,sBACAC,8BAEFuB,GAAkBvpB,OAAQrkL,GAK1B,MAAMutG,GAAQ,UACRsgG,EAAwBtgG,EAAMw4F,wBAEpCx4F,EAAMugG,sBAAsB,IACvBD,EACHnnB,QAAS6mB,EAAS/mB,cAAcE,QAChCsF,SAAS,QAAcuhB,GACvB7f,KAAK,QAAkCjD,IACvC,IAMN,SAASsjB,IACHnB,GAA0B,CAAC,cAAe,YAAYhpM,SAASgpM,EAAuB5yH,aACxFqqG,EAAOjhE,KAAK,2BAA4BmqF,EAE5C,CANAK,GAAkBvpB,EAAQkpB,GAQtBF,GAAyBT,IAC3BA,EAAuBrvM,iBAAiB,oBAAoB,KAC1DwwM,GAAY,IAGdA,IAEJ,CAEA,MAAO,CACL3pM,KAvY0C,iBAwY1C,KAAA4pM,CAAM3pB,GAgCJ,G5CncC,WAQL,SAAS4pB,IACP,MAAM9L,GAAa,UACbnS,EAAWmS,IAAc,QAAYA,GAC3C,GAAInS,EAAU,CACZ,MAAMjyL,EAAU,iBAChB,KAAe,KAAMD,IAAI,wBAAwBC,8BACjDiyL,EAAS9I,UAAU,CAAE7tJ,KAAM,KAAmBt7B,WAChD,CACF,CAfIs2L,KAmBJ4Z,EAAcv6K,IAAM,8BAEpB2gK,IAAqB,EACrBR,GAAqCoa,GACrC/Z,GAAkD+Z,GACpD,C4C2YMC,GAEAjB,EAAoBlO,GAAuB,CACzCC,yBAA0B8N,IAA4B,EACtD7N,yBAA0B8N,IAA4B,EACtD1oB,WAGE6nB,Gd5ZH,WAEL,GADoBvO,OACD,UAAgC,CACjD,MAAMwQ,EL+HDxS,GAAkB,MKpFWsG,GLoFM7F,GAAeZ,IK7HvD,MAAO,KACL2S,GAAa,CAEjB,CAGF,CckZQC,GAGEjC,GbhaYxO,OACD,WACV5B,GAAqC,UAAWsG,IamanD4J,GACA,EAAArnB,WAAWuS,qBACXA,oBAAoBC,qBACpBD,oBAAoBC,oBAAoBxzL,SAAS,wBjBzStC,IAAIuzL,qBAAoB1lF,IACvC,MAAMjrB,GAAS,UACf,GAAKA,EAGL,IAAK,MAAM0P,KAASub,EAAK6lF,aAAuD,CAC9E,IAAKphG,EAAMm4G,QAAQ,GACjB,SAGF,MAAMv4I,EAAY8nI,IAAS,UAA4C1nG,EAAMpgC,YAErE42H,gBAAiB4hB,EAAsBjhL,GAAIkhL,IAAa,QAAW/nH,GAE3E,GAAiB,eAAb+nH,GAA6BD,GAAwBx4I,EAAYw4I,EAKnE,SAEF,MAAMjsH,EAAWu7G,GAAQ1nG,EAAM7T,UAEzBg5F,EAA6B,CACjC,CAAC,MAAmC,2BAGhCmzB,EAAgBt4G,EAAMm4G,QAAQ,IAC9B,QAAEI,EAAO,YAAEC,EAAW,UAAEC,EAAS,mBAAEC,EAAkB,mBAAEC,GAAuBL,EACpFnzB,EAAW,0BAA4BozB,EACvCpzB,EAAW,+BAAiCqzB,EACxCC,IACFtzB,EAAW,iBAAmBszB,GAE5BC,IACFvzB,EAAW,iBAAmBuzB,IAEJ,IAAxBC,IACFxzB,EAAW,uCAAyCwzB,GAGtDtS,GAAgB/1G,EAAQ1wB,EAAWA,EAAYusB,EAAU,CACvDj+E,KAAM,yBACNipB,GAAI,0BACJguJ,cAEJ,KAGOvsE,QAAQ,CAAE9iG,KAAM,uBAAwBurL,UAAU,IiB2P5CyU,GjBlVfjQ,GAAqC,YAAY,EAAGviK,cAClD,MAAMgtD,GAAS,UACf,IAAKA,EACH,OAGF,MAAQn5D,GAAIkhL,EAAU7hB,gBAAiB4hB,IAAyB,QAAW9nH,GAE3E,IAAK,MAAM0P,KAAS18D,EAAS,CAC3B,MAAMs8B,EAAY8nI,IAAS,UAA4C1nG,EAAMpgC,WACvEusB,EAAWu7G,GAAQ1nG,EAAM7T,UAEd,eAAbksH,GAA6BD,GAAwBx4I,EAAYw4I,GAQrE/R,GAAgB/1G,EAAQ1wB,EAAWA,EAAYusB,EAAU,CACvDj+E,KAAM,yBACNipB,GAAI,eACJguJ,WAAY,CACV,CAAC,MAAmC,4BAG1C,KiB2TMwxB,GjBxPR9Q,GAAqC,SAAS,EAAGviK,cAC/C,MAAMgtD,GAAS,UACf,GAAKA,EAGL,IAAK,MAAM0P,KAAS18D,EAClB,GAAmB,UAAf08D,EAAM9xF,KAAkB,CAC1B,MAAM0xD,EAAY8nI,IAAS,UAA4C1nG,EAAMpgC,WACvEusB,EAAWu7G,GAAQ1nG,EAAM7T,UAEzBysH,EAAiF,CACrF1qM,MAAM,SAAiB8xF,EAAMz9F,QAC7B40B,GAAI,kBAAkB6oE,EAAM9xF,OACK,YACA,YACA,mCAIA,sBACA,IACA,qCAGA,KAAA0xD,EAAAA,EAAA,IACA,CACA,IiBkOjCw2I,GAAmBM,EAAwB,CAC7C,MAAMmC,EAAqB,KACzB7B,GAA2B,SAAoB,EAEjD3vM,iBAAiB,QAASwxM,EAAoB,CAAEn7H,SAAS,IACzDr2E,iBAAiB,UAAWwxM,EAAoB,CAAEn7H,SAAS,EAAMqtD,SAAS,GAC5E,CAEA,SAAS+tE,IACP,MAAM7M,EAAa8M,GAAkB5qB,GAEjC8d,KAAe,QAAWA,GAAYhsI,YACxC,IAAe,KAAMr4D,IAAI,qDAAoD,QAAWqkM,GAAY90K,MAEG,iCACA,QAEA,CAEA,oCACA,kBACA,OAGA,iBAWA,OAVA,IACA,4GACA,EACA,EACA,CACA,4BACA,IAEA,GAQA,SAEA,KAEA,8EAEA,mBACA,sEAGA,4BACA,2BAGA,KACA,mBACA,GACA,IAGA,qCACA,kBACA,OAEA,IAEA,0CACA,2BAEA,iBAEA,aACA,2BAIA,4BACA,yBAGA,KACA,iBACA,GACA,GAEA,EACA,iBACA,kBAMA,GAJA,WP7f1G,SACLg3J,GACA,kBACEkoB,EAAiB,wBACjBC,IAMF,MAAM0C,EAA0C,oBAAtB3C,EAE1B,IAAI4C,EAA4BD,EAkKxB,WACA,IACA,MAAAE,EAAA,+BAEA,oBACA,OACA,MACA,CACA,CA1K4CC,QAAuCrvM,EAE3FqkL,EAAO7mG,GAAG,aAAaitG,IACrB,IAAI,QAAYA,KAAUA,EACxB,OAGF,MAAMojB,GAAwB,UAAkB9H,wBAChDoJ,EAkEG,SACLC,EACA3kB,EACAojB,GAEA,MAAMtkB,GAAW,QAAWkB,GAYtB6kB,EAA2B,CAC/B9oB,YAAaiE,EAAKjE,cAClBmF,eAAgBpC,EAASmD,gBACzB6D,WAbF,WACE,IACE,OACE1jK,OAAOghL,EAAsBngB,KAAKoE,cAAgBjlK,OAAO08J,EAASluL,OAAO,MAE7E,CAAE,MACA,OAAO,CACT,CACF,CAKck0M,GACZnf,WAAYyd,EAAsBzd,YAGpC,IAAKgf,EACH,OAAOE,EAGT,MAAME,EAAuBJ,EAAkB5oB,YAC/C,OAAIgpB,EAAqB9oB,UAAY6C,EAASoD,SAIrCyiB,GAQL5vM,KAAK8I,MAAQ,IAAO8mM,EAAkBzjB,gBA3ID,OA4InC,IACF,KAAM7tL,IACJ,yBAAyB0xM,kBAAqC,CAC5DniL,GAAIk8J,EAASl8J,MACVo9J,EAAKjE,kBAKR,WACA,UACA,YACA,2BAQA,eA3JuC,wBA6JvC,4BACA,cAKA,EACA,CAzIsBipB,CAAyBN,EAA2B1kB,EAAMojB,GAElFqB,GA4IE,YACA,IACA,+CACA,UAEA,mEACA,CACA,CAlJJQ,CAAmCP,EACrC,IAGF,IAAIQ,GAAyB,EACzBnD,GAYFnoB,EAAO7mG,GAAG,kBAAkBoyH,IAC1B,IAAKT,EACH,OAGF,MAAM5hG,GAAQ,UACRsiG,EAA4BtiG,EAAMw4F,wBAOpC4J,GAA0BE,EAA0BhkB,aACtD8jB,GAAyB,GAI3BpiG,EAAMugG,sBAAsB,IACvB+B,EACHniB,IAAK,IACAmiB,EAA0BniB,IAC7BoE,YAAa55J,OAAOi3K,EAA0B5e,YAC9CvE,QAAS9zJ,OAAO43K,GAAmBX,EAA0B3oB,eAE/D4J,WAAY+e,EAA0B/e,aAGxCwf,EAA2Bhf,cAAgBkf,GAAmBX,EAA0B3oB,aACxFopB,EAA2Bjf,iBAAmBwe,EAA0B5e,WAExEqf,EAA2B9E,eAAiB,IACvC8E,EAA2B9E,eAC9B,CAAC,MAAuDqE,EAA0B5e,YACnF,GAGP,COibiH,oDAGA,aACA,MACA,oBAiFA,SACA,EACA,EACA,GAEA,kCArFA,IAsFA,qCAEA,cAEA,GACA,kCAIA,CA/FA,IACA,0BAEA,yBACA,YACA,aACA,iCAGA,CAEA,GACA,sBAUA,kCAEA,YADA,UAIA,SACA,cACA,QACA,EACA,MAqLA,cACA,oBAEA,aAKA,UADA,kBACA,OAMA,WAKA,CAxMA,OAsEA,SACA,EACA,EACA,GAEA,gCACA,qDACA,+CAEA,mBACA,6BAIA,OACA,4BACA,sBACA,KACA,SAKA,KACA,CA5FA,CACA,EACA,CACA,uCACA,YACA,aACA,mCAGA,qBACA,GAGA,CAEA,IC5lB3G,GAAOvxK,SACT,GAAOA,SAASzhB,iBAAiB,oBAAoB,KACnD,MAAM4kM,GAAa,UACnB,IAAKA,EACH,OAGF,MAAMnS,GAAW,QAAYmS,GAE7B,GAAI,GAAOnjL,SAASu9C,QAAUyzH,EAAU,CACtC,MAAM+f,EAAkB,aAElB,GAAE1iL,EAAE,OAAEpiB,IAAW,QAAW+kL,GAE9B,IACF,KAAMlyL,IAAI,0BAA0BiyM,+CAA6D1iL,KAKG,GACA,mCAGA,+DACA,OACA,KAGA,qGDmkBG,GAwFA,SACA,EACA,EACA,EACA,EACA,GAQA,MAFA,aA4CA,0BAzCA,KACA,0BAEA,QACA,MACA,uBACA,yCAGA,YAFA,IACA,sGAGA,CAEA,IACA,8CACA,QACA,UAGA,OAKA,KACA,CACA,YACA,KACA,YACA,yBAGA,CACA,cACA,eACA,qBAfA,+FAiBA,GAIA,aAEA,CAhJA,YAGA,Gdvd3C,WACA,wBACA,mBACA,iBAEA,eACA,ILiL/D,SAAkC6oE,GACvC,MAAO,aAAcA,CACvB,CKnLsE,QACA,OAGA,wBACA,aAKA,WAKA,iBACA,mBACA,YACA,CAIA,WACA,WAXA,CAWA,GACA,EAGA,cACA,mBACA,Ccqb2C,GAGA,MACA,aACA,WACA,8BACA,+DACA,6BACA,oBACA,sBAEA,EAEA,EAyDA,eAKA,oBAEA,sCACA,yCACA,CA+DA,4BACA,eACA,YACA,CAEA,kBACA,gBACA,CAGA,uCEtvBjH,MAAM85G,GAAW,IAGXC,GAAmB/3K,OAAO,GAC1Bg4K,GAAc,OAGd,GAAY,GAAOvvM,UAGzB,IAAIwvM,GAAc,GACdC,GAAsB,GACtBC,GAAU,GACVC,GAAa,IAAW9S,WAAa,GACrC+S,GAAW,GACf,MAAMC,GAAY,IAAW/4K,UAAY,IAAWg5K,YAAY,IAAM,GAsBhEC,GAAgB,IAAWA,cALjC,IAAyBr1M,GA+EH,YACA,EACA,EACA,EACA,GAEA,0BAGA,uGAGA,WACA,oBACA,wFAIA,QA/CA,YACA,oCASA,MALA,mCACA,IACA,gEAGA,mBACA,GAGA,CACA,CAgCA,IACA,EAzEA,YACA,8BACA,CAQA,CADA,EAgEA,GAuEA,YACA,MACA,IAGA,SACA,WACA,UACA,UACA,iBACA,iBAIA,EAAAg8C,EAAA,WACA,MACA,SAIA,oBAKA,aACA,sEACA,WAwDA,OAtDA,2BAEA,sBAaA,YAZA,QACA,IACA,eACA,UAGA,cAEA,uCAAAtf,GAAA,eACA,WACA,eAKA,0BAIA,WAEA,SACA,kBAEA,4BAGA,kCACA,qBACA,gBACA,wEACA,cACA,iBAIA,iDACA,CAEA,SAEA,yDACA,WACA,cAGA,SAAA44K,GAAA,EACA,eACA,OAGA,CACA,CAtNA,IAHA,EA+DA,MAEA,mCACA,sBACA,gBACA,8DAtEA,MA+GA,MAvCA,CACA,WACA,oCACA,sBACA,YACA,sBACA,gCACA,SACA,kBACA,WAAAhwM,UAAA,WAEA,IACA,QACA,WACA,iBAEA,QACA,UACA,SACA,gBACA,gBACA,gBAEA,YACA,wBAEA,UACA,cACA,CACA,uBACA,2BACA,WACA,oBACA,sBACA,yCAMA,CAeA,eACA,iCACA,CAuIA,eACA,mBACA,kBACA,EAAA3C,GAAA,YAEA,UAIA,aAHA,EAIA,CAnTG,iBADA3C,GAOLq1M,KAN0B,OAATr1M,IAAiB,yBAA0BA,IAO9Eq1M,GACGE,qBAAqB,CAAC,eAAgB,QAAS,WAAY,kBAAmB,oBAC9E7lM,MAAMu8G,IAML,GALA6oF,GAAc7oF,EAAGpsC,UAAY,GAC7Bm1H,GAAU/oF,EAAGupF,cAAgB,GAC7BN,GAAWjpF,EAAGwpF,OAAS,GACvBV,GAAsB9oF,EAAGypF,iBAAmB,GAExCzpF,EAAG0pF,iBAAiBp4M,OAAQ,CAE9B,MAAMq4M,EAAU3pF,EAAG0pF,gBAAgB1pF,EAAG0pF,gBAAgBp4M,OAAS,GAC/D03M,GAAa,GAAGW,EAAQC,SAASD,EAAQxtM,SAC3B,KAEA,eAmVA,UAmDA,eAEA,MAIA,OAHA,IACA,mGAEA,EAGA,oBAIA,OAHA,IACA,iFAEA,EAGA,mBACA,kBACA,MAEA,OADA,mEACA,EAIA,6BAIA,OA7HA,iBAFA,EA+HA,IA7HA,mDACA,IACA,UACA,kHACA,cACA,6BAEA,IAIA,iBAKA,YACA,iGACA,IAiHA,MAUA,0BAGA,IACA,SACA,yGACA,QAGA,IAlBA,IACA,SACA,uHAEA,IAVA,iFACA,GAjIA,KA4JA,CAOA,YACA,EACA,EACA,EACA,GAEA,OAhJA,YACA,iBAAA7K,OAAA,GACA,IAIA,oFAEA,KAGA,SAAAA,SACA,IACA,0EAEA,EAIA,CA6HA,CAAAuxL,GAIA,YAHA,IAIA,CAKA,iBAWA,eACA,kBAIA,OAHA,GACA,aAEA,CACA,CCliBf,SAASgnB,GAAoB1mB,GAElC,IAAIkB,EACAylB,GAAwB3mB,KAC1BkB,EAAwC,KAAvB,WAGnB,MAAM0lB,EDqZc,WAEA,oBAEA,GAVA,mBAUA,EAIA,YAHA,IACA,kHAMA,MAEA,kBAKA,IACA,6BARA,GAQA,iBACA,UACA,KACA,SACA,yIAEA,uEAEA,KACA,CAGA,CCrbHC,GAIjB,IAAKD,EACH,OAGE,IACF,KAAMvzM,IAAI,wCAAuC,QAAW2sL,GAAM71K,eAMY,oBAmBA,mBAEA,MAIA,EAUA,SACA,OACA,UACA,IACA,mBACA,UAGA,IACA,8EAIA,EDge5D,cAGA,GAFA,YAEA,YACA,+BACA,YACA,CACA,CC7d4D,MATA,IACA,SACA,+DAAAA,cACA,+GAMA,IAEA,WACA,IACA,wDACA,GAEA,EAtDA,gCACA,aACA,oBAuDA,0BACA,IACA,sGAIA,MD+S5D,KC3S4D,sBA0BA,MAnBA,WACA,UAKA,UACA,KACA,OAEA,KAEA,OAIA,GAdA,GAeA,CAGA,CCtI3E,SAAS28L,GAAyBhxM,GACvC,MAAMixM,EAA6B,GAE/BjxM,EAAMxC,SACRyzM,EAAiBl5M,KAAKiI,EAAMxC,SAG9B,IAEE,MAAM0zM,EAAgBlxM,EAAMqgG,UAAU18E,OAAO3jB,EAAMqgG,UAAU18E,OAAOtrB,OAAS,GACzE64M,GAAev4M,QACjBs4M,EAAiBl5M,KAAKm5M,EAAcv4M,OAChCu4M,EAAczlM,MAChBwlM,EAAiBl5M,KAAK,GAAGm5M,EAAczlM,SAASylM,EAAcv4M,SAGvC,OAEA,CAEA,QACA,CCd/B,MAAMw4M,GAAwB,CAC5B,oBACA,gDACA,kEACA,wCACA,6BACA,yDACA,qDACA,gHACA,gDACA,gIACA,wDA4BWC,GAA4C,CAAC3zM,EAAwC,CAAC,KACjG,IAAI4zM,EACJ,MAAO,CACLxtM,KAlBqB,eAmBrB,KAAA4pM,CAAM3pB,GACJ,MAAMwtB,EAAgBxtB,EAAOyJ,aAC7B8jB,EAAgBE,GAAc9zM,EAAS6zM,EACzC,EACA,YAAAvsB,CAAa/kL,EAAOqlL,EAAOvB,GACzB,IAAKutB,EAAe,CAClB,MAAMC,EAAgBxtB,EAAOyJ,aAC7B8jB,EAAgBE,GAAc9zM,EAAS6zM,EACzC,CACA,OA4CN,SAA0BtxM,EAAcvC,GACtC,GAAKuC,EAAMyL,MAoCkG,2BAsBA,cACA,cACA,SAGA,sBACA,wBACA,CA1BA,yBAKA,OAJA,KACA,UACA,iGAEA,MA5C5F,CAEf,GAgD2G,cACA,mBAIA,8BACA,CAtDvG+lM,CAAgBxxM,EAAOvC,EAAQg0M,cAKwE,OAJzG,KACE,KAAMnpK,KACJ,2EAA0E,SAAoBtoC,OAEO,EAEA,GAqGA,YAEA,uCAMA,YAEA,8EAEA,CAjHA,IAOA,OANA,KACA,UACA,iGACA,OAGA,EAEA,GAiDA,cACA,cACA,SAEA,cACA,wBACA,CAvDA,eAOA,OANA,KACA,UACA,gFACA,aACA,UAEA,EAEA,IAgDA,cACA,cACA,SAEA,cACA,uBACA,CAtDA,gBAOA,OANA,KACA,UACA,qFACA,aACA,UAEA,CAEA,CAWA,QACA,CA7FlG0xM,CAAiB1xM,EAAOqxM,GAAiB,KAAOrxM,CACzD,EACD,EAmBU2xM,GAA8C,CAAEl0M,EAAwC,CAAC,KAC7F,IACF2zM,GAAwB3zM,GAC3BoG,KAAM,mBAIV,SAAS0tM,GACPK,EAAgD,CAAC,EACjDN,EAA8C,CAAC,GAE/C,MAAO,CACLO,UAAW,IAAKD,EAAgBC,WAAa,MAASP,EAAcO,WAAa,IACjFC,SAAU,IAAKF,EAAgBE,UAAY,MAASR,EAAcQ,UAAY,IAC9EL,aAAc,IACRG,EAAgBH,cAAgB,MAChCH,EAAcG,cAAgB,MAC9BG,EAAgBG,qBAAuB,GAAKZ,IAElDa,mBAAoB,IAAKJ,EAAgBI,oBAAsB,MAASV,EAAcU,oBAAsB,IAEhH,CAkG+G,eACA,IAGA,qCACA,UACA,yEACA,wBACA,SApBA,eACA,+BACA,aAEA,+DACA,uBAEA,CAEA,WACA,CAUA,QACA,OAEA,OADA,gEACA,IACA,CACA,CClN/G,IAAIC,GAEJ,MAEMC,GAAgB,IAAI76M,QAuCb86M,GArCwB,KAC5B,CACLtuM,KANqB,mBAOrB,SAAAuuM,GAEEH,GAA2B5yH,SAAStpF,UAAUuK,SAI9C,IACE++E,SAAStpF,UAAUuK,SAAW,YAAoC4P,GAChE,MAAMmiM,GAAmB,SAAoB31M,MACvCm1B,EACJqgL,GAAc97M,KAAI,iBAA+CqJ,IAArB4yM,EAAiCA,EAAmB31M,KAClG,OAAOu1M,GAAyBj6M,MAAM65B,EAAS3hB,EACjD,CACF,CAAE,MAEF,CACF,EACA,KAAAu9L,CAAM3pB,GACJouB,GAAcn7M,IAAI+sL,GAAQ,EAC5B,ICISwuB,GA5Bc,KACzB,IAAIC,EAEJ,MAAO,CACL1uM,KANqB,SAOrB,YAAAkhL,CAAanyG,GAGX,GAAIA,EAAannE,KACf,OAAOmnE,EAIT,IACE,GAiBD,SAA0BA,EAAqB2/H,GACpD,QAAKA,MAeP,SAA6B3/H,EAAqB2/H,GAChD,MAAMC,EAAiB5/H,EAAap1E,QAC9Bi1M,EAAkBF,EAAc/0M,QAGtC,SAAKg1M,IAAmBC,OAKnBD,IAAmBC,IAAsBD,GAAkBC,KAI5DD,IAAmBC,MAIlBC,GAAmB9/H,EAAc2/H,MAIjCI,GAAkB//H,EAAc2/H,KAKvC,CAtCMK,CAAoBhgI,EAAc2/H,MAwCxC,SAA+B3/H,EAAqB2/H,GAClD,MAAMM,EAAoBC,GAAuBP,GAC3CQ,EAAmBD,GAAuBlgI,GAEhD,SAAKigI,IAAsBE,KAIvBF,EAAkBpnM,OAASsnM,EAAiBtnM,MAAQonM,EAAkBl6M,QAAUo6M,EAAiBp6M,UAIhG+5M,GAAmB9/H,EAAc2/H,MAIjCI,GAAkB//H,EAAc2/H,IAKvC,CAzDMS,CAAsBpgI,EAAc2/H,GAK1C,CA/BY,CAAiB3/H,EAAc2/H,GAEjC,OADA,KAAe,KAAMjqK,KAAK,wEACnB,IAEX,CAAE,MAAO,CAET,OAAQiqK,EAAgB3/H,CAC1B,EAEH,EA4ED,SAAS+/H,GAAkB//H,EAAqB2/H,GAC9C,IAAIU,GAAgB,SAAmBrgI,GACnCsgI,GAAiB,SAAmBX,GAGxC,IAAKU,IAAkBC,EACrB,OAAO,EAIT,GAAKD,IAAkBC,IAAqBD,GAAiBC,EAC3D,OAAO,EAOT,GAAIA,EAAe76M,SAAW46M,EAAc56M,OAC1C,OAAO,EAIT,IAAK,IAAIF,EAAI,EAAGA,EAAI+6M,EAAe76M,OAAQF,IAAK,CAE9C,MAAMg7M,EAASD,EAAe/6M,GAExBi7M,EAASH,EAAc96M,GAE7B,GACEg7M,EAAO7uB,WAAa8uB,EAAO9uB,UAC3B6uB,EAAOE,SAAWD,EAAOC,QACzBF,EAAOG,QAAUF,EAAOE,OACxBH,EAAOI,WAAaH,EAAOG,SAE3B,OAAO,CAEX,CAEA,OAAO,CACT,CAEA,SAASb,GAAmB9/H,EAAqB2/H,GAC/C,IAAIiB,EAAqB5gI,EAAa6gI,YAClCC,EAAsBnB,EAAckB,YAGxC,IAAKD,IAAuBE,EAC1B,OAAO,EAIT,GAAKF,IAAuBE,IAA0BF,GAAsBE,EAC1E,OAAO,EAOT,IACE,QAAUF,EAAmBnyM,KAAK,MAAQqyM,EAAoBryM,KAAK,IACrE,CAAE,MACA,OAAO,CACT,CACF,CAEA,SAASyxM,GAAuB9yM,GAC9B,OAAOA,EAAMqgG,WAAW18E,SAAS,EACnC,CC9KA,MAAMgwL,GAAqB,IAsCQ,mBACA,aA7BA,YACA,SARnC,SAA4BvmB,GAC1B,MAAMz1G,EAAWy1G,EAAIz1G,SAAW,GAAGy1G,EAAIz1G,YAAc,GACpB,yBACA,yDACA,CAIA,6BACA,CA2BA,OAxBA,cACA,SACA,mBAaA,OAVA,cAGA,0BAGA,IACA,0CAGA,iCACA,CAQA,OACA,oDCInC,MAAMi8H,GAAqB,8DACrBC,GAAoC,6DAEpCC,GAAwBl+M,OAAOib,IAAI,uBACnCkjM,GAA2Bn+M,OAAOib,IAAI,6BAY5C,SAASmjM,GAAmBx2M,GAC1B,MAAO,CACLA,UACA,CAACs2M,KAAwB,EAE7B,CAEA,SAASG,GAAyBz2M,GAChC,MAAO,CACLA,UACA,CAACu2M,KAA2B,EAEhC,CAEA,SAASG,GAAiB76M,GACxB,QAASA,GAA0B,iBAAVA,GAAsBy6M,MAAyBz6M,CAC1E,CAEA,SAAS86M,GAAuB96M,GAC9B,QAASA,GAA0B,iBAAVA,GAAsB06M,MAA4B16M,CAC7E,CAiCgB,MAAM+6M,GA4BV,WAAAt+M,CAAY2H,GAcpB,GAbAf,KAAKyI,SAAW1H,EAChBf,KAAK23M,cAAgB,CAAC,EACtB33M,KAAK43M,eAAiB,EACtB53M,KAAK63M,UAAY,CAAC,EAClB73M,KAAK83M,OAAS,CAAC,EACf93M,KAAK+3M,iBAAmB,GAEpBh3M,EAAQ2vL,IACV1wL,KAAKg4M,MAAO,QAAQj3M,EAAQ2vL,KAE5B,KAAe,KAAM9kJ,KAAK,iDAGxB5rC,KAAKg4M,KAAM,CACb,MAAMlvM,EAAMmvM,GACVj4M,KAAKg4M,KACLj3M,EAAQ6vL,OACR7vL,EAAQm3M,UAAYn3M,EAAQm3M,UAAUrqB,SAAM9qL,GAE9C/C,KAAKm4M,WAAap3M,EAAQq3M,UAAU,CAClCxnB,OAAQ5wL,KAAKyI,SAASmoL,OACtBL,mBAAoBvwL,KAAKuwL,mBAAmBpwL,KAAKH,SAC9Ce,EAAQs3M,iBACXvvM,OAEJ,CACF,CAOO,gBAAAwvM,CAAiB30G,EAAoBioD,EAAkBt7C,GAC5D,MAAMioG,GAAU,WAGhB,IAAI,SAAwB50G,GAE1B,OADA,KAAe,KAAM9iG,IAAIq2M,IAClBqB,EAGT,MAAMC,EAAkB,CACtBC,SAAUF,KACP3sD,GASL,OANA5rJ,KAAK04M,SACH14M,KAAK24M,mBAAmBh1G,EAAW60G,GAAiB1qM,MAAKxK,GACvDtD,KAAK44M,cAAct1M,EAAOk1M,EAAiBloG,MAIxCkoG,EAAgBC,QACzB,CAOO,cAAAI,CACL/3M,EACAg4M,EACAltD,EACAmtD,GAEA,MAAMP,EAAkB,CACtBC,UAAU,cACP7sD,GAGCotD,GAAe,EAAAzwG,EAAA,IAAsBznG,GAAWA,EAAUm6B,OAAOn6B,GAEjEm4M,GAAgB,EAAA1wG,EAAA,IAAYznG,GAC9Bd,KAAKk5M,iBAAiBF,EAAcF,EAAON,GAC3Cx4M,KAAK24M,mBAAmB73M,EAAS03M,GAIrC,OAFAx4M,KAAK04M,SAASO,EAAcnrM,MAAKxK,GAAStD,KAAK44M,cAAct1M,EAAOk1M,EAAiBO,MAE9EP,EAAgBC,QACzB,CAOO,YAAAhnB,CAAanuL,EAAcsoJ,EAAkBmtD,GAClD,MAAMR,GAAU,WAGhB,GAAI3sD,GAAMutD,oBAAqB,SAAwBvtD,EAAKutD,mBAE1D,OADA,KAAe,KAAMt4M,IAAIq2M,IAClBqB,EAGT,MAAMC,EAAkB,CACtBC,SAAUF,KACP3sD,GAGCmmC,EAAwBzuL,EAAMyuL,uBAAyB,CAAC,EACxDJ,EAAuCI,EAAsBJ,kBAC7DE,EAAgDE,EAAsBF,2BAM5E,OAJA7xL,KAAK04M,SACH14M,KAAK44M,cAAct1M,EAAOk1M,EAAiB7mB,GAAqBonB,EAAclnB,IAGzE2mB,EAAgBC,QACzB,CAKO,cAAAW,CAAetsB,GACpB9sL,KAAKq5M,YAAYvsB,IAEjB,SAAcA,EAAS,CAAEwsB,MAAM,GACjC,CAgBO,MAAA3oB,GACL,OAAO3wL,KAAKg4M,IACd,CAKO,UAAAnnB,GACL,OAAO7wL,KAAKyI,QACd,CAMO,cAAA8wM,GACL,OAAOv5M,KAAKyI,SAASyvM,SACvB,CAMO,YAAAsB,GACL,OAAOx5M,KAAKm4M,UACd,CAUO,KAAAz4M,CAAMunE,GACX,MAAMmxI,EAAYp4M,KAAKm4M,WACvB,OAAIC,GACFp4M,KAAKmmH,KAAK,SACHnmH,KAAKy5M,wBAAwBxyI,GAASn5D,MAAK4rM,GACzCtB,EAAU14M,MAAMunE,GAASn5D,MAAK6rM,GAAoBD,GAAkBC,QAGtE,UAAoB,EAE/B,CAUO,KAAAz5J,CAAM+mB,GACX,OAAOjnE,KAAKN,MAAMunE,GAASn5D,MAAK7K,IAC9BjD,KAAK6wL,aAAa11G,SAAU,EAC5Bn7E,KAAKmmH,KAAK,SACHljH,IAEX,CAKO,kBAAA22M,GACL,OAAO55M,KAAK+3M,gBACd,CAKO,iBAAA7Q,CAAkB2S,GACvB75M,KAAK+3M,iBAAiB18M,KAAKw+M,EAC7B,CAMO,IAAAP,IAEHt5M,KAAKuI,cAMLvI,KAAKyI,SAASk+K,aAAa17J,MAAK,EAAG9jB,UAAWA,EAAKiiB,WAAW,iBAE9DppB,KAAK85M,oBAET,CAOO,oBAAAha,CAA0Dia,GAC/D,OAAO/5M,KAAK23M,cAAcoC,EAC5B,CASO,cAAAC,CAAepzB,GACpB,MAAMqzB,EAAqBj6M,KAAK23M,cAAc/wB,EAAYz/K,MAG1DmgL,EAAiBtnL,KAAM4mL,EAAa5mL,KAAK23M,eAEpCsC,GACH9yB,EAAuBnnL,KAAM,CAAC4mL,GAElC,CAKO,SAAAszB,CAAU52M,EAAcsoJ,EAAkB,CAAC,GAChD5rJ,KAAKmmH,KAAK,kBAAmB7iH,EAAOsoJ,GAEpC,IAAIpvJ,E5DtUD,SACL8G,EACAotL,EACAypB,EACAvpB,GAEA,MAAMwpB,EAAUzsB,EAAgCwsB,GAS1CE,EAAY/2M,EAAMyL,MAAuB,iBAAfzL,EAAMyL,KAA0BzL,EAAMyL,KAAO,SA/DxE,SAAkCzL,EAAcg3M,GACrD,IAAKA,EACH,OAAOh3M,EAGT,MAAMi3M,EAAej3M,EAAMuqL,KAAO,CAAC,EAEnCvqL,EAAMuqL,IAAM,IACP0sB,EACHpzM,KAAMozM,EAAapzM,MAAQmzM,EAAWnzM,KACtCX,QAAS+zM,EAAa/zM,SAAW8zM,EAAW9zM,QAC5CmgL,aAAc,IAAKrjL,EAAMuqL,KAAKlH,cAAgB,MAAS2zB,EAAW3zB,cAAgB,IAClF6zB,SAAU,IAAKl3M,EAAMuqL,KAAK2sB,UAAY,MAASF,EAAWE,UAAY,IACtEC,SACEn3M,EAAMuqL,KAAK4sB,UAAYH,EAAWG,SAC9B,IACKn3M,EAAMuqL,KAAK4sB,YACXH,EAAWG,eAEhB13M,EAIV,CA0CE23M,CAAyBp3M,EAAO62M,GAAUtsB,KAE1C,MAAM8sB,EL6ID,SACLr3M,EACA82M,EACAxpB,EACAF,GAEA,MAAMsB,EAAyB1uL,EAAMyuL,uBAAuBC,uBAC5D,MAAO,CACLymB,SAAUn1M,EAAMm1M,SAChB3nB,SAAS,IAAIvuL,MAAOwuL,iBAChBqpB,GAAW,CAAEvsB,IAAKusB,QAChBxpB,GAAUF,GAAO,CAAEA,KAAK,QAAYA,OACtCsB,GAA0B,CAC5Bp8E,MAAOo8E,GAGb,CK7J0B4oB,CAA2Bt3M,EAAO82M,EAASxpB,EAAQF,GAS3E,cAHOptL,EAAMyuL,sBAGNhH,EAA8B4vB,EAAiB,CADzB,CAAC,CAAE5rM,KAAMsrM,GAAa/2M,IAErD,C4DyScu3M,CAAoBv3M,EAAOtD,KAAKg4M,KAAMh4M,KAAKyI,SAASyvM,UAAWl4M,KAAKyI,SAASmoL,QAEvF,IAAK,MAAMpE,KAAc5gC,EAAKkvD,aAAe,GAC3Ct+M,EAAMwuL,EAAkBxuL,EAAK+vL,EAA6BC,IAG5D,MAAMpzE,EAAUp5G,KAAKswL,aAAa9zL,GAC9B48G,GACFA,EAAQtrG,MAAKitM,GAAgB/6M,KAAKmmH,KAAK,iBAAkB7iH,EAAOy3M,IAAe,KAEnF,CAKO,WAAA1B,CAAYvsB,GAEjB,MAAQt9J,QAASwrL,EAAqBt0M,YAAau0M,EAA0B,MAAwBj7M,KAAKyI,SAC1G,GAAI,eAAgBqkL,EAAS,CAC3B,MAAMouB,EAAepuB,EAAQquB,OAAS,CAAC,EACvC,IAAKD,EAAa1rL,UAAYwrL,EAE5B,YADA,KAAe,KAAMpvK,KAAKurK,KAG5B+D,EAAa1rL,QAAU0rL,EAAa1rL,SAAWwrL,EAC/CE,EAAax0M,YAAcw0M,EAAax0M,aAAeu0M,EACvDnuB,EAAQquB,MAAQD,CAClB,KAAO,CACL,IAAKpuB,EAAQt9J,UAAYwrL,EAEvB,YADA,KAAe,KAAMpvK,KAAKurK,KAG5BrqB,EAAQt9J,QAAUs9J,EAAQt9J,SAAWwrL,EACrCluB,EAAQpmL,YAAcomL,EAAQpmL,aAAeu0M,CAC/C,CAEAj7M,KAAKmmH,KAAK,oBAAqB2mE,GAE/B,MAAMtwL,E5DlYH,SACLswL,EACA4D,EACAypB,EACAvpB,GAEA,MAAMwpB,EAAUzsB,EAAgCwsB,GAUhD,OAAOpvB,EATiB,CACtB+F,SAAS,IAAIvuL,MAAOwuL,iBAChBqpB,GAAW,CAAEvsB,IAAKusB,QAChBxpB,GAAUF,GAAO,CAAEA,KAAK,QAAYA,KAMY,CAFtD,eAAgB5D,EAAU,CAAC,CAAE/9K,KAAM,YAAc+9K,GAAW,CAAC,CAAE/9K,KAAM,WAAa+9K,EAAQ/6E,WAG9F,C4DiXgBqpG,CAAsBtuB,EAAS9sL,KAAKg4M,KAAMh4M,KAAKyI,SAASyvM,UAAWl4M,KAAKyI,SAASmoL,QAI7F5wL,KAAKswL,aAAa9zL,EACpB,CAKO,kBAAA+zL,CAAmBzpE,EAAyBu0F,EAAwBx6G,EAAgB,GACzF,GAAI7gG,KAAKyI,SAAS6yM,kBAAmB,CAOnC,MAAMrhN,EAAM,GAAG6sH,KAAUu0F,IACZ,oEACA,0CACA,CACA,CAqNA,QACA,QAAAr7M,KAAA,UAAAA,KAAA,cASA,OANA,UAMA,KAEA,qBACA,MACA,aACA,CAEA,CAoKA,aACA,uBACA,GACA,uBAEA,CAKA,gBAGA,OAFA,8BAEA,mCACA,uCACA,mDACA,MAIA,uCAEA,aACA,CAKA,qBACA,oCACA,mBvEtzBZ,SAA2BonL,EAAgBT,GAChD,MAAMY,EAAqC,CAAC,EAS5C,OAPAZ,EAAa9qL,SAAS+qL,IAEhBA,GACFU,EAAiBF,EAAQR,EAAaW,EACxC,IAGKA,CACT,CuE2yBmB,SACA,SACA,CAGA,6BACA,wBACA,KACA,4BAEA,MACA,KAEA,kBACA,oBACA,oBACA,KACA,KACA,CACA,CACA,CAKA,yBACA,0BAGA,eACA,sBACA,gCAEA,uBAEA,CAYA,2BACA,sBACA,QACA,MAEA,oBACA,wBACA,iBACA,QAEA,GAPA,EAQA,UACA,iBACA,OAEA,GAZA,EAaA,GAEA,CAGA,aACA,8DACA,CAgBA,cACA,EACA,EACA,EACA,GAEA,0BACA,kCAWA,OAVA,4BACA,kBAGA,iCAEA,QACA,0CAGA,kCACA,YACA,SAGA,kCAEA,YACA,qBACA,YAGA,yBAOA,OALA,yBACA,4BACA,yBAGA,IAEA,CAQA,cACA,EACA,KACA,aACA,cAMA,OAJA,YACA,8DAGA,kCACA,GACA,aAEA,IACA,MACA,MACA,oBACA,MACA,qBAEA,aAGA,GAGA,CAeA,cACA,EACA,EACA,EACA,GAEA,2BACA,gBAEA,QACA,QACA,kBACA,kCAKA,+BACA,0CAEA,OADA,gDACA,SACA,GACA,2FAKA,sCAEA,mCACA,UACA,YAEA,MADA,6CACA,+DAIA,GADA,+BAEA,SAGA,QA2KA,SACA,EACA,EACA,EACA,GAEA,6EACA,QAEA,MAAAgB,IAAA,EACA,cAGA,UAEA,SAEA,QC5wCZ,SAA2CjlL,GAChD,MAAM,SAAEosL,EAAQ,eAAEpB,EAAc,QAAEE,EAAO,OAAExgL,EAAM,OAAE2hL,EAAM,KAAEvxL,EAAI,GAAEgyB,GAAO9sB,EAAMylL,UAAUnzE,OAAS,CAAC,EAElG,MAAO,CACLx3G,KAAMA,GAAQ,CAAC,EACfuZ,YAAarU,EAAMw3G,YACnB1qF,KACAk+J,iBACAE,QAASA,GAAW,GACpBiB,gBAAiBnsL,EAAMmsL,iBAAmB,EAC1CzhL,SACAkrD,UAAW51D,EAAM41D,UACjBw2H,SAAUA,GAAY,GACtBC,SACAC,WAAYxxL,IAAO,MACnByxL,eAAgBzxL,IAAO,MACvB0xL,aAAcxsL,EAAMwsL,aACpBE,YAAY,EAEhB,CDyvCmB,IAGA,qBAEA,YAIA,MACA,aACA,EAIA,aClwCV,CACLjhL,KAAM,cACNmqD,WAH8Cs0H,EDmwC/B,GChwCCt0H,UAChBu2H,gBAAiBjC,EAAKiC,gBACtB30E,YAAa0yE,EAAK71K,YAClBoxK,SAAU,CACRnzE,MAAO,CACL85E,SAAUlC,EAAKkC,SACflB,QAAShB,EAAKgB,QACdF,eAAgBd,EAAKc,eACrBl+J,GAAIo9J,EAAKp9J,GACTpiB,OAAQw/K,EAAKx/K,OACb2hL,OAAQnC,EAAKmC,OACbvxL,KAAM,IACDovL,EAAKpvL,QACJovL,EAAKoC,YAAc,CAAE,CAAC,MAAgCpC,EAAKoC,eAC3DpC,EAAKqC,gBAAkB,CAAE,CAAC,MAAoCrC,EAAKqC,mBAI7EC,aAActC,EAAKsC,gBD2uCJ,SAKA,CAGA,YACA,WAEA,UAEA,UAAAtC,KAAA,EAEA,qBACA,YAKA,MACA,aACA,EAIA,YAHA,UACA,UAIA,MACA,UAIA,gCACA,GACA,6CAEA,SACA,CACA,CAEA,MACA,YAGA,uBACA,4BACA,EAAAuE,sBACA,4BAEA,CACA,aACA,CACA,CCtzCZ,IAA2CvE,EDwzC/B,QACA,CAjQA,aACA,OAgJA,SACA,EACA,GAEA,sDACA,eACA,eACA,IACA,0BACA,YAEA,YAEA,IACA,uCAGA,0BACA,YAEA,QACA,CArKA,SAEA,UACA,aAEA,GADA,yCACA,GACA,MAEA,KAFA,aAEA,OACA,+CACA,CACA,wDACA,CAEA,uCAKA,GAJA,MACA,kCAGA,GACA,MAGA,GAHA,wDACA,0BAGA,KACA,+CAEA,CAKA,2BACA,wCACA,iBACA,uBACA,EACA,SAEA,CAGA,OADA,oBACA,KAEA,eACA,gBACA,QAaA,MAVA,yBACA,WACA,WACA,iBAEA,MACA,eAEA,sBAEA,GACA,kIACA,GAEA,CAKA,YACA,sBACA,QACA,IACA,sBACA,KAEA,IACA,sBACA,IAGA,CAKA,iBACA,uBAEA,OADA,kBACA,iCACA,wBACA,OACA,SACA,WACA,WACA,GAEA,CAKA,iBACA,sCAEA,8BAEA,gBAEA,YADA,sCAKA,cAEA,YADA,0DAIA,qCAEA,SEpsCjB+tB,EFosCiB,EEzrCVxwB,GAVP2F,EFmsCiB,2CEzrCiC,CAAEA,OAAQ,CAAC,EAAG,CAPrB,CACzC,CAAE3hL,KAAM,iBACR,CACEmqD,WAAwB,UACxBqiJ,wBATC,IACLA,EACA7qB,EFusCiB,oBACA,EAsIA,eACA,sBACA,CAEA,eACA,4BACA,iBGh1CZ,SAAS8qB,GAAiBz6M,EAAkBoG,EAAcs0M,EAAQ,CAACt0M,GAAOvL,EAAS,OACxF,MAAMu+M,EAAWp5M,EAAQm3M,WAAa,CAAC,EAElCiC,EAAStsB,MACZssB,EAAStsB,IAAM,CACb1mL,KAAM,qBAAqBA,IACK,qBACA,yBACA,iBAEA,eAIA,aACA,CCiLyB,iBACA,WA0BA,YACA,kBACA,CA5BA,QACA,gBACA,OAGA,uBACA,EClLxD,SACLu0M,EACAvB,EACAvpB,EACAF,GAEA,MAAM9lL,EAA0B,CAAC,EAajC,OAXIuvM,GAAUtsB,MACZjjL,EAAQijL,IAAM,CACZ1mL,KAAMgzM,EAAStsB,IAAI1mL,KACnBX,QAAS2zM,EAAStsB,IAAIrnL,UAIpBoqL,GAAYF,IAChB9lL,EAAQ8lL,KAAM,QAAYA,IAGrB3F,EAA4BngL,EAAS,EA3CC0tE,EA2C+BojI,EA1CrE,CACL,CACE3sM,KAAM,MACN4sM,WAAYrjI,EAAM38E,OAClB8wL,aAAc,yCAEhB,CACEn0G,aARC,IAAwCA,CA4C/C,CD8J+D,oCAGA,eAEA,oBAIA,iBACA,CA4BA,cAEA,wDACA,CEzOxD,SAASsjI,GAA0B9uB,GACpC,eAAgBA,OACoB/pL,IAAlC+pL,EAAQquB,OAAoB,aAC9BruB,EAAQquB,MAAQ,IACXruB,EAAQquB,MACX/a,WAAY,kBAIUr9L,IAAtB+pL,EAAQ+uB,YACV/uB,EAAQ+uB,UAAY,WAG1B,CCNO,SAASC,GAAmBC,EAA0B9U,GAE3D,MAAM7e,EAAS4zB,GAAiBD,EAAa9U,GAEvCtjG,EAAuB,CAC3B50F,KAAMktM,GAAYhV,GAClBhrM,MAAOigN,GAAejV,IAWxB,OARI7e,EAAOzsL,SACTgoG,EAAUwkF,WAAa,CAAEC,gBAGJrlL,IAAnB4gG,EAAU50F,MAA0C,KAApB40F,EAAU1nG,QAC5C0nG,EAAU1nG,MAAQ,8BAGb0nG,CACT,CAmDA,SAASw4G,GAAeJ,EAA0B9U,GAChD,MAAO,CACLtjG,UAAW,CACT18E,OAAQ,CAAC60L,GAAmBC,EAAa9U,KAG/C,CAGA,SAAS+U,GACPD,EACA9U,GAKA,MAAM9e,EAAa8e,EAAG9e,YAAc8e,EAAG/sG,OAAS,GAE1CkiH,EAoBR,SAAsCnV,GACpC,OAAIA,GAAMoV,GAAoBvzL,KAAKm+K,EAAGnmM,SAC7B,EAGF,CACT,CA1BoBw7M,CAA6BrV,GACzCsV,EAmCR,SAA8BtV,GAC5B,MAA8B,iBAAnBA,EAAGsV,YACLtV,EAAGsV,YAGL,CACT,CAzCsBC,CAAqBvV,GAEzC,IACE,OAAO8U,EAAY5zB,EAAYi0B,EAAWG,EAC5C,CAAE,MAEF,CAEA,MAAO,EACT,CAGA,MAAMF,GAAsB,8BAiC5B,SAASI,GAAuB94G,GAG9B,MAA2B,oBAAhB+4G,kBAAgE,IAA1BA,YAAYC,WAEpDh5G,aAAqB+4G,YAAYC,SAI5C,CAOO,SAASV,GAAYhV,GAC1B,MAAM9/L,EAAO8/L,GAAI9/L,KAIjB,OAAKA,GAAQs1M,GAAuBxV,GAETA,EAAGnmM,SAAWoE,MAAMwgC,QAAQuhK,EAAGnmM,UAAiC,GAArBmmM,EAAGnmM,QAAQnF,OACrDsrM,EAAGnmM,QAAQ,GAAK,wBAGrCqG,CACT,CAOO,SAAS+0M,GAAejV,GAC7B,MAAMnmM,EAAUmmM,GAAInmM,QAEpB,OAAI27M,GAAuBxV,GAErB/hM,MAAMwgC,QAAQuhK,EAAGnmM,UAAiC,GAArBmmM,EAAGnmM,QAAQnF,OACnCsrM,EAAGnmM,QAAQ,GAEb,iBAGJA,EAIDA,EAAQnE,OAA0C,iBAA1BmE,EAAQnE,MAAMmE,QACjCA,EAAQnE,MAAMmE,QAGhBA,EAPE,kBAQX,CA6CO,SAAS87M,GACdb,EACAp4G,EACAk5G,EACAC,EACAC,GAEA,IAAIz5M,EAEJ,IAAI,EAAAilG,EAAA,IAAa5E,IAA4B,EAA0BhnG,MAGrE,OAAOw/M,GAAeJ,EADHp4G,EAC2BhnG,OAUhD,IAAI,EAAA4rG,EAAA,IAAW5E,KAAc,EAAA4E,EAAA,IAAe5E,GAA4B,CACtE,MAAMq5G,EAAer5G,EAErB,GAAI,UAAW,EACbrgG,EAAQ64M,GAAeJ,EAAap4G,OAC/B,CACL,MAAMx8F,EAAO61M,EAAa71M,QAAS,EAAAohG,EAAA,IAAWy0G,GAAgB,WAAa,gBACrEl8M,EAAUk8M,EAAal8M,QAAU,GAAGqG,MAAS61M,EAAal8M,UAAYqG,EACpC,eACA,aACA,CAMA,MALA,aAEA,oDAGA,CACA,CACA,kBAEA,SAEA,yBAKA,EAtQ9C,SACE40M,EACAp4G,EACAk5G,EACAE,GAEA,MAAM31B,GAAS,UACT61B,EAAiB71B,GAAQyJ,aAAaosB,eAGtCC,EAoVsC,YACA,iBACA,8CACA,aACA,sBACA,QAEA,CAIA,CA/VtBC,CAA2Bx5G,GAE3CyjG,EAAQ,CACZgW,gBAAgB,EAAAjzK,EAAA,IAAgBw5D,EAAWs5G,IAG7C,GAAIC,EACF,MAAO,CACLv5G,UAAW,CACT18E,OAAQ,CAAC60L,GAAmBC,EAAamB,KAE3C9V,SAIJ,MAAM9jM,EAAQ,CACZqgG,UAAW,CACT18E,OAAQ,CACN,CACElY,MAAM,EAAAw5F,EAAA,IAAQ5E,GAAaA,EAAUvqG,YAAY+N,KAAO41M,EAAuB,qBAAuB,QACtG9gN,MAAOohN,GAAgC15G,EAAW,CAAEo5G,4BAI1D3V,SAGF,GAAIyV,EAAoB,CACtB,MAAMz0B,EAAS4zB,GAAiBD,EAAac,GACzCz0B,EAAOzsL,SAGT2H,EAAMqgG,UAAU18E,OAAO,GAAIkhK,WAAa,CAAEC,UAE9C,CAEA,OAAO9kL,CACT,CAuN8C,GADA,EACA,MACA,YACA,eAEA,IAYA,eACA,2BACA,YACA,eAGA,EACA,CAEA,YACA,EACA,EACA,EACA,GAEA,WAEA,SACA,gBACA,WACA,aACA,4CAGA,0BACA,CAEA,gBACA,mEAMA,OAJA,YACA,UACA,UAEA,CACA,CAGA,OADA,YACA,CACA,CAEA,YACA,GACA,yBAEA,kBAAAqgG,GACA,oCAIA,kBACA,uEAGA,WAEA,WAMA,YACA,IACA,iCACA,kCACA,OAEA,CACA,CAdA,eACA,2BAGA,yCACA,CC5TvC,MAAM25G,WAAsB5F,GAO1B,WAAAt+M,CAAY2H,GACjB,MAAM4jC,GAqFmE44K,EArFxCx8M,EAsF5B,CACLyuB,QACgC,iBAAvBguL,mBACHA,mBACA,GAAO1kN,gBAAgBC,GAC7BuiN,mBAAmB,EAEnBmC,4BAA4B,KACzBF,IATA,IAAsEA,EAnFzE/B,GAAiB72K,EAAM,UAAW,CAAC,WADjB,GAAO+4K,mBChDQ,ODoD7B/4K,EAAKuzK,WAAWrqB,MAClBlpJ,EAAKuzK,UAAUrqB,IAAI4sB,SAAW,CAC5BkD,SAAUh5K,EAAKi7J,eAAiB,OAAS,WAEtCj7J,EAAKuzK,UAAUrqB,IAAI4sB,WAI1B1oK,MAAMpN,GAEN,MAAM,eAAEi7J,EAAc,kBAAE0b,EAAiB,WAAEsC,GAAe59M,KAAKyI,SAE3D,GAAOsZ,WAAau5L,GAAqBsC,IAC3C,GAAO77L,SAASzhB,iBAAiB,oBAAoB,KACX,WAApC,GAAOyhB,SAAS44K,kBACd2gB,GACFt7M,KAAK69M,iBAEHD,GACFE,GAA0B99M,MAE9B,IAIA49M,IACF59M,KAAKugF,GAAG,SAAS,KACfu9H,GAA0B99M,KAAK,IAGjCA,KAAKugF,GAAG,mBAAmB,KACrBvgF,KAAK+9M,sBACP3xM,aAAapM,KAAK+9M,sBAGpB/9M,KAAK+9M,qBAAuBt2M,YAAW,KACrCq2M,GAA0B99M,KAAK,GA9FV,IA+FG,KAI1B4/L,GACF5/L,KAAKugF,GAAG,oBAAqBq7H,GAEjC,CAKO,kBAAAjD,CAAmBh1G,EAAoBioD,GAC5C,ODyFG,SACLmwD,EACAp4G,EACAioD,EACAkxD,GAEA,MACMx5M,EAAQs5M,GAAsBb,EAAap4G,EADtBioD,GAAMixD,yBAAsB95M,EACyB+5M,GAMhF,OALA,SAAsBx5M,GACtBA,EAAMw1M,MAAQ,QACVltD,GAAM6sD,WACRn1M,EAAMm1M,SAAW7sD,EAAK6sD,WAEjB,SAAoBn1M,EAC7B,CCvGWq1M,CAAmB34M,KAAKyI,SAASszM,YAAap4G,EAAWioD,EAAM5rJ,KAAKyI,SAASq0M,iBACtF,CAKO,gBAAA5D,CACLp4M,EACAg4M,EAAuB,OACvBltD,GAEA,ODkGG,SACLmwD,EACAj7M,EACAg4M,EAAuB,OACvBltD,EACAkxD,GAEA,MACMx5M,EAAQ06M,GAAgBjC,EAAaj7M,EADhB8qJ,GAAMixD,yBAAsB95M,EACiB+5M,GAKxE,OAJAx5M,EAAMw1M,MAAQA,EACVltD,GAAM6sD,WACRn1M,EAAMm1M,SAAW7sD,EAAK6sD,WAEjB,SAAoBn1M,EAC7B,CChHW41M,CAAiBl5M,KAAKyI,SAASszM,YAAaj7M,EAASg4M,EAAOltD,EAAM5rJ,KAAKyI,SAASq0M,iBACzF,CAKU,aAAAmB,CACR36M,EACAsoJ,EACAmtD,EACAnnB,GAIA,OAFAtuL,EAAM26E,SAAW36E,EAAM26E,UAAY,aAE5BlsC,MAAMksK,cAAc36M,EAAOsoJ,EAAMmtD,EAAcnnB,EACxD,EE7IF,SAASssB,KACD,0BAIN,KAAeriN,SAAQ,SAAUi9M,GACzBA,KAAS,EAAAnxB,WAAWjrL,UAI1B,SAAK,EAAAirL,WAAWjrL,QAASo8M,GAAO,SAAUqF,GAGxC,OAFA,KAAuBrF,GAASqF,EAEzB,YAAa3qM,GAElBsjL,GAAgB,UADwB,CAAEtjL,OAAMslM,UAGhD,MAAMj4M,EAAM,KAAuBi4M,GACnCj4M,GAAKvF,MAAM,EAAAqsL,WAAWjrL,QAAS8W,EACjC,CACF,GACF,GACF,CCjCA,MAAM4qM,GAAsB,IAQrB,SAASC,GAAcC,EAAwB1yD,GACpD,MAAMw7B,GAAS,UACTwK,GAAiB,UAEvB,IAAKxK,EAAQ,OAEb,MAAM,iBAAEm3B,EAAmB,KAAI,eAAEC,EAAiBJ,IAAwBh3B,EAAOyJ,aAEjF,GAAI2tB,GAAkB,EAAG,OAEzB,MACMC,EAAmB,CAAEvlJ,WADT,aACuBolJ,GACnCI,EAAkBH,GACnB,SAAe,IAAMA,EAAiBE,EAAkB7yD,KACzD6yD,EAEoB,OAApBC,IAEAt3B,EAAOjhE,MACTihE,EAAOjhE,KAAK,sBAAuBu4F,EAAiB9yD,GAGtDgmC,EAAeysB,cAAcK,EAAiBF,GAChD,CCnCO,SAASG,GAAwCrxM,GAEtD,YAAmBvK,IAAfuK,OACF,EACSA,GAAc,KAAOA,EAAa,IACpC,UACEA,GAAc,IAChB,aAEP,CAEJ,CCWA,MAAMsxM,GAAoB,IAE1B,IAAIC,GACAC,GACAC,GAeG,SAASC,KACd,IAAK9mB,GAAOn2K,SACV,OAMF,MAAMk9L,EAAoBnoB,GAAgB32L,KAAK,KAAM,OAC/C++M,EAAwBC,GAAoBF,GAAmB,GACrE/mB,GAAOn2K,SAASzhB,iBAAiB,QAAS4+M,GAAuB,GACjEhnB,GAAOn2K,SAASzhB,iBAAiB,WAAY4+M,GAAuB,GAOpE,CAAC,cAAe,QAAQrjN,SAASL,IAC/B,MAAM4jN,EAAelnB,GACf3oH,EAAQ6vI,EAAa5jN,IAASnC,UAG/Bk2E,GAAOr1E,iBAAiB,uBAI7B,SAAKq1E,EAAO,oBAAoB,SAAU8vI,GACxC,OAAO,SAAqCtwM,EAAM63F,EAAU7lG,GAC1D,GAAa,UAATgO,GAA4B,YAARA,EACtB,IACE,MAAMunL,EAAYt2L,KAAKs/M,oCACrBt/M,KAAKs/M,qCAAuC,CAAC,EACzCC,EAAkBjpB,EAASvnL,GAAQunL,EAASvnL,IAAS,CAAEywM,SAAU,GAEvE,IAAKD,EAAenxJ,QAAS,CAC3B,MAAMA,EAAU+wJ,GAAoBF,GACpCM,EAAenxJ,QAAUA,EACzBixJ,EAAyBllN,KAAK6F,KAAM+O,EAAMq/C,EAASrtD,EACrD,CAEAw+M,EAAeC,UACjB,CAAE,MAGF,CAGF,OAAOH,EAAyBllN,KAAK6F,KAAM+O,EAAM63F,EAAU7lG,EAC7D,CACF,KAEA,SACEwuE,EACA,uBACA,SAAUkwI,GACR,OAAO,SAAqC1wM,EAAM63F,EAAU7lG,GAC1D,GAAa,UAATgO,GAA4B,YAARA,EACtB,IACE,MAAMunL,EAAWt2L,KAAKs/M,qCAAuC,CAAC,EACxDC,EAAiBjpB,EAASvnL,GAE5BwwM,IACFA,EAAeC,WAEXD,EAAeC,UAAY,IAC7BC,EAA4BtlN,KAAK6F,KAAM+O,EAAMwwM,EAAenxJ,QAASrtD,GACrEw+M,EAAenxJ,aAAUrrD,SAClBuzL,EAASvnL,IAImB,IAAjCjV,OAAOiB,KAAKu7L,GAAU36L,eACjBqE,KAAKs/M,oCAGlB,CAAE,MAGF,CAGF,OAAOG,EAA4BtlN,KAAK6F,KAAM+O,EAAM63F,EAAU7lG,EAChE,CACF,IACD,GAEL,CAsDA,SAASo+M,GACP/wJ,EACAsxJ,GAA0B,GAE1B,OAAQp8M,IAIN,IAAKA,GAASA,EAAuB,gBACnC,OAGF,MAAM9H,EAoCV,SAAwB8H,GACtB,IACE,OAAOA,EAAM9H,MACf,CAAE,MAGA,OAAO,IACT,CACF,CA5CmBmkN,CAAer8M,GAG9B,GArCJ,SAA4B+2M,EAAmB7+M,GAE7C,MAAkB,aAAd6+M,KAIC7+M,GAAQ9C,SAMU,UAAnB8C,EAAO9C,SAA0C,aAAnB8C,EAAO9C,UAA0B8C,EAAOokN,kBAK5E,CAoBQC,CAAmBv8M,EAAMyL,KAAMvT,GACjC,QAIF,SAAyB8H,EAAO,mBAAmB,GAE/C9H,IAAWA,EAAOskN,YAEpB,SAAyBtkN,EAAQ,aAAa,YAGhD,MAAM2L,EAAsB,aAAf7D,EAAMyL,KAAsB,QAAUzL,EAAMyL,MA5E7D,SAAsCzL,GAEpC,GAAIA,EAAMyL,OAAS+vM,GACjB,OAAO,EAGT,IAGE,IAAKx7M,EAAM9H,QAAW8H,EAAa,OAAwBw8M,YAAcf,GACvE,OAAO,CAEX,CAAE,MAGF,CAKA,OAAO,CACT,EA4DSgB,CAA6Bz8M,KAEhC8qD,EADoC,CAAE9qD,QAAO6D,OAAMgtG,OAAQurG,IAE3DZ,GAAwBx7M,EAAMyL,KAC9BgwM,GAA4BvjN,EAASA,EAAOskN,eAAY/8M,GAI1DqJ,aAAayyM,IACbA,GAAkB3mB,GAAOzwL,YAAW,KAClCs3M,QAA4Bh8M,EAC5B+7M,QAAwB/7M,CAAS,GAChC67M,GAAkB,CAEzB,CChLA,MAyCaoB,GArCmB,CAAEj/M,EAAuC,CAAC,KACxE,MAAM0H,EAAW,CACf/L,SAAS,EACTujN,KAAK,EACLt3M,OAAO,EACP89L,SAAS,EACTyZ,QAAQ,EACRv6B,KAAK,KACF5kL,GAGL,MAAO,CACLoG,KAdqB,cAerB,KAAA4pM,CAAM3pB,GDnCH,IAAgDh5H,ECqC7C3lD,EAAS/L,SJ9DZ,SAA0C0xD,GAC/C,MAAMr/C,EAAO,UACbynL,GAAWznL,EAAMq/C,GACjBqoI,GAAgB1nL,EAAMmvM,GACxB,CI2DQiC,CAgH2E,YACA,mBACA,kBACA,OAGA,SACA,mBACA,MACA,iBACA,kBAEA,OCjM3CrH,EDiM2C,QC/LrE,SAAVA,EAAmB,UAAY,CAAC,QAAS,QAAS,UAAW,MAAO,OAAQ,SAASnyM,SAASmyM,GAASA,EAAQ,ODgMhC,8BClM5E,IAAiCA,EDqM2C,uBACA,kBAKA,OAJA,iFACA,gCAKA,CAEA,MACA,aACA,eAEA,CACA,CA/I1CsH,CAA6Bh5B,IAE5D3+K,EAASw3M,MDxCoC7xJ,ECwF4B,SACA,EACA,GAEA,mBACA,kBACA,OAGA,MACA,EACA,iDAEA,EACA,gFACA,KArFjD,OAsFiD,IACA,UACA,iHAEA,EA1FjD,MA6FiD,qBACA,OAIA,IACA,gBACA,EAmOA,YACA,qBACA,CArOA,eAEA,8CACA,cACA,OACA,aACA,CAEA,gBACA,OAGA,SACA,wBACA,WAGA,IACA,gCAGA,MACA,cACA,YACA,iBAEA,CACA,CAxGpCiyJ,CAAyBj5B,EAAQ3+K,EAASw3M,KDvCvFzpB,GADa,MACIpoI,GACjBqoI,GAFa,MAESuoB,KCwCdv2M,EAASk9K,KACXujB,GA8I2E,YACA,mBACA,kBACA,OAGA,yCAEA,YAGA,cACA,OAGA,6CAEA,GACA,SACA,MACA,eAGA,GACA,UACA,QACA,iBACA,gBAGA,GACA,eACA,OACA,YACA,aAGA,8CAEA,OACA,CACA,CAvL9CoX,CAAyBl5B,IAEpD3+K,EAASE,OACX8+L,GAyL2E,YACA,mBACA,kBACA,OAGA,yCAGA,QAIA,kEAUA,GAJA,mBACA,gBAGA,SACA,oBACA,GACA,aACA,aACA,iBACA,gBAGA,GACA,iBACA,OACA,cACA,aAGA,8CAEA,OACA,MACA,mBACA,MACA,YACA,uBAGA,8BACA,+BACA,UAEA,SACA,aACA,WACA,iBACA,gBAGA,GACA,iBACA,OACA,YACA,yBAGA,8CAEA,OACA,CACA,CACA,CAjQ5C8Y,CAA2Bn5B,IAExD3+K,EAASg+L,SACXN,GAmQ2E,YACA,mBACA,kBACA,OAGA,aACA,OACA,6BACA,qBACA,cAGA,UACA,KAKA,2CACA,cAEA,2CACA,cAGA,IACA,sBACA,MACA,OACA,OAGA,CACA,CArS1Cqa,CAA6Bp5B,IAE5D3+K,EAASy3M,QACX94B,EAAO7mG,GAAG,kBAWlB,SAAqC6mG,GACnC,OAAO,SAA6B9jL,IAC9B,YAAgB8jL,GAIpBi3B,GACE,CACEhD,SAAU,WAAyB,gBAAf/3M,EAAMyL,KAAyB,cAAgB,SACQ,oBACA,cACA,sBAEA,CACA,SAGA,CACA,CA7B9C0xM,CAA4Br5B,GAE7D,EAEH,EE5FKs5B,GAAuB,CAC3B,cACA,SACA,OACA,mBACA,iBACA,mBACA,oBACA,kBACA,cACA,aACA,qBACA,cACA,aACA,iBACA,eACA,kBACA,cACA,cACA,eACA,qBACA,SACA,eACA,YACA,eACA,gBACA,YACA,kBACA,SACA,iBACA,4BACA,wBAoEWC,GA5CwB,CAAE5/M,EAA4C,CAAC,KAClF,MAAM0H,EAAW,CACfy9K,gBAAgB,EAChB06B,aAAa,EACbvrK,uBAAuB,EACvBwrK,aAAa,EACbp5M,YAAY,EACZq5M,6BAA6B,KAC1B//M,GAGL,MAAO,CACLo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A,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,KAEJ,GAAM,CACF,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,KACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,IACA,MAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,KACA,KACA,KAEJ,GAAM,CACF,IACA,KAEJ,GAAM,CACF,IACA,MAEJ,GAAM,CACF,IACA,KACA,IACA,MAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CACF,KACA,KACA,IACA,KAEJ,GAAM,CAC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AANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,KAC7B,CEvvCA,SAAS+a,GAAcC,GACnBA,EAAI7oC,SAAQ,SAAU85B,GAElB,UADOA,EAAGwI,SACNjI,EAAgBP,IAAOS,EAAgBT,GACvC,IAAK,IAAI3O,KAAK2O,EAAG50B,eACN40B,EAAG50B,QAAQimB,GAAGmX,SACrBsG,GAAc9O,EAAG50B,QAAQimB,GAAG/qB,YAG3B85B,EAAgBJ,IAAOe,EAAiBf,EAAGte,SAG1C2e,EAAcL,IAAOM,EAAcN,KACzCgB,EAAmBhB,EAAGte,cAHfse,EAAGte,MAAM8mB,SAMX3H,EAAab,IAClB8O,GAAc9O,EAAG93B,SAEzB,GACJ,CACO,SAASuN,GAAMtK,EAAS6jC,QACd,IAATA,IAAmBA,EAAO,CAAC,GAC/BA,GAAO,IAAAnL,UAAS,CAAE4D,sBAAsB,EAAMD,qBAAqB,GAAQwH,GAC3E,IAAI1hC,EAAS,IAAI,GAAOnC,EAAS6jC,GAAMv5B,QACvC,GAAInI,EAAOa,IAAK,CACZ,IAAInH,EAAQioC,YAAYrP,EAAUtyB,EAAOa,IAAIogC,OAK7C,MAHAvnC,EAAMwhC,SAAWl7B,EAAOa,IAAIq6B,SAE5BxhC,EAAMkoC,gBAAkB5hC,EAAOa,IAAIhD,QAC7BnE,CACV,CAIA,OAHMgoC,aAAmC,EAASA,EAAKG,kBACnDL,GAAcxhC,EAAO26B,KAElB36B,EAAO26B,GAClB,CAGO,IC3CI41D,gBACX,SAAWA,GAEPA,EAAyB,cAAI,gBAE7BA,EAAyB,cAAI,gBAE7BA,EAA4B,iBAAI,kBACnC,CAPD,CAOGA,KAAcA,GAAY,CAAC,IAC9B,ICRWS,GCDAyzD,GFSPj0D,GAA6B,SAAUC,GAEvC,SAASD,EAAYjV,EAAKpiD,EAAMyI,GAC5B,IAAIziC,EAAQsxF,EAAOv5F,KAAK6F,KAAMw+E,IAAQx+E,KAGtC,OAFAoC,EAAMg6B,KAAOA,EACbh6B,EAAMyiC,gBAAkBA,EACjBziC,CACX,CAIA,OAVA,IAAAuxF,WAAUF,EAAaC,GAOvBD,EAAYp6F,UAAUuK,SAAW,WAC7B,MAAO,oBAAoBtB,OAAOtC,KAAKo8B,KAAM,MAAM95B,OAAOtC,KAAKc,QACnE,EACO2yF,CACX,CAZgC,CAY9BttF,OAEEytF,GAAmC,SAAUF,GAE7C,SAASE,EAAkBtlB,EAAYryE,EAAO8E,EAAS8jC,GACnD,OAAO6uD,EAAOv5F,KAAK6F,KAAM,uBAAwBsC,OAAOgsE,EAAY,QAAUhsE,OAAOrG,EAAO,oBAAsBqG,OAAOxI,OAAOiB,KAAKgG,GAAS4D,KAAK,QAAS,KAAO6uF,GAAUK,cAAehvD,IAAoB7kC,IACpN,CACA,OAJA,IAAA2zF,WAAUC,EAAmBF,GAItBE,CACX,CANsC,CAMpCH,IAEEK,GAAuC,SAAUJ,GAEjD,SAASI,EAAsB73F,EAAO8S,EAAM81B,GACxC,OAAO6uD,EAAOv5F,KAAK6F,KAAM,cAAesC,OAAOrG,EAAO,sBAAuBqG,OAAOyM,GAAOykF,GAAUK,cAAehvD,IAAoB7kC,IAC5I,CACA,OAJA,IAAA2zF,WAAUG,EAAuBJ,GAI1BI,CACX,CAN0C,CAMxCL,IAEEM,GAAmC,SAAUL,GAE7C,SAASK,EAAkBzlB,EAAYzpC,GACnC,OAAO6uD,EAAOv5F,KAAK6F,KAAM,qCAAsCsC,OAAOgsE,EAAY,sCAAwChsE,OAAOuiC,EAAiB,KAAO2uD,GAAUQ,cAAenvD,IAAoB7kC,IAC1M,CACA,OAJA,IAAA2zF,WAAUI,EAAmBL,GAItBK,CACX,CANsC,CAMpCN,ICtBK,SAASS,GAAqBv+D,GACjC,MAAqB,mBAAPA,CAClB,CAEO,SAASwP,GAAcT,EAAKe,EAAS4sD,EAAY7lB,EAASvlD,EAAQktE,EAEzEtvD,GAEI,GAAmB,IAAfH,EAAI/oC,QAAgB+5B,EAAiBgP,EAAI,IACzC,MAAO,CACH,CACI31B,KAAMklF,GAAUr+D,QAChB35B,MAAOyoC,EAAI,GAAGzoC,QAK1B,IADA,IAAIgH,EAAS,GACJywB,EAAK,EAAG0gE,EAAQ1vD,EAAKhR,EAAK0gE,EAAMz4F,OAAQ+3B,IAAM,CACnD,IAAIiC,EAAKy+D,EAAM1gE,GAEf,GAAIgC,EAAiBC,GACjB1yB,EAAO5H,KAAK,CACR0T,KAAMklF,GAAUr+D,QAChB35B,MAAO05B,EAAG15B,aAMlB,GAAIq6B,EAAeX,GACmB,iBAAvBw+D,GACPlxF,EAAO5H,KAAK,CACR0T,KAAMklF,GAAUr+D,QAChB35B,MAAOo2F,EAAWQ,gBAAgBptD,GAASjc,OAAO2qE,SAJ9D,CASA,IAAIE,EAAU1+D,EAAG15B,MAEjB,IAAMgrB,KAAUotE,KAAWptE,GACvB,MAAM,IAAI8sE,GAAkBM,EAASxvD,GAEzC,IAAI5oC,EAAQgrB,EAAOotE,GACnB,GAAIx+D,EAAkBF,GACb15B,GAA0B,iBAAVA,GAAuC,iBAAVA,IAC9CA,EACqB,iBAAVA,GAAuC,iBAAVA,EAC9Bg/B,OAAOh/B,GACP,IAEdgH,EAAO5H,KAAK,CACR0T,KAAuB,iBAAV9S,EAAqBg4F,GAAUr+D,QAAUq+D,GAAUp5F,OAChEoB,MAAOA,SAOf,GAAI+5B,EAAcL,GAAlB,CACI,IAAIte,EAA4B,iBAAbse,EAAGte,MAChBm1D,EAAQljE,KAAKqsB,EAAGte,OAChBsf,EAAmBhB,EAAGte,OAClBse,EAAGte,MAAMmqB,mBACTz+B,EACVE,EAAO5H,KAAK,CACR0T,KAAMklF,GAAUr+D,QAChB35B,MAAOo2F,EACFU,kBAAkBttD,EAASpuB,GAC3BmS,OAAOvtB,IAGpB,MACA,GAAIg6B,EAAcN,GACVte,EAA4B,iBAAbse,EAAGte,MAChBm1D,EAAQh+D,KAAKmnB,EAAGte,OAChBsf,EAAmBhB,EAAGte,OAClBse,EAAGte,MAAMmqB,cACTgrC,EAAQh+D,KAAK+O,OACvBta,EAAO5H,KAAK,CACR0T,KAAMklF,GAAUr+D,QAChB35B,MAAOo2F,EACFU,kBAAkBttD,EAASpuB,GAC3BmS,OAAOvtB,UAIpB,GAAI85B,EAAgBJ,IACZte,EAA4B,iBAAbse,EAAGte,MAChBm1D,EAAQluE,OAAOq3B,EAAGte,OAClBqf,EAAiBf,EAAGte,OAChBse,EAAGte,MAAMmqB,mBACTz+B,IACGsU,EAAMwE,QACf5f,GAESob,EAAMwE,OAAS,GAE5B5Y,EAAO5H,KAAK,CACR0T,KAAMklF,GAAUr+D,QAChB35B,MAAOo2F,EACFQ,gBAAgBptD,EAASpuB,GACzBmS,OAAOvtB,SAfpB,CAmBA,GAAIu6B,EAAab,GAAK,CAClB,IAAI93B,EAAW83B,EAAG93B,SAAUy2F,EAAU3+D,EAAG15B,MACrCs4F,EAAWttE,EAAOqtE,GACtB,IAAKJ,GAAqBK,GACtB,MAAM,IAAIT,GAAsBQ,EAAS,WAAYzvD,GAEzD,IACI2vD,EAASD,EADDpvD,GAActnC,EAAU4nC,EAAS4sD,EAAY7lB,EAASvlD,EAAQktE,GAC9C5hF,KAAI,SAAU+Z,GAAK,OAAOA,EAAErwB,KAAO,KAC1DiJ,MAAMwgC,QAAQ8uD,KACfA,EAAS,CAACA,IAEdvxF,EAAO5H,KAAKC,MAAM2H,EAAQuxF,EAAOjiF,KAAI,SAAUmX,GAC3C,MAAO,CACH3a,KAAmB,iBAAN2a,EAAiBuqE,GAAUr+D,QAAUq+D,GAAUp5F,OAC5DoB,MAAOytB,EAEf,IACJ,CACA,GAAIwM,EAAgBP,GAApB,CAEI,KADIoD,EAAMpD,EAAG50B,QAAQ9E,IAAU05B,EAAG50B,QAAQmuB,OAEtC,MAAM,IAAI0kE,GAAkBj+D,EAAG15B,MAAOA,EAAOnC,OAAOiB,KAAK46B,EAAG50B,SAAU8jC,GAE1E5hC,EAAO5H,KAAKC,MAAM2H,EAAQkiC,GAAcpM,EAAI98B,MAAOwpC,EAAS4sD,EAAY7lB,EAASvlD,GAErF,MACA,GAAImP,EAAgBT,GAApB,CACI,IAAIoD,EACJ,KADIA,EAAMpD,EAAG50B,QAAQ,IAAIuB,OAAOrG,KACtB,CACN,IAAKgpC,KAAKguD,YACN,MAAM,IAAIQ,GAAY,kHAAqHD,GAAUiB,iBAAkB5vD,GAE3K,IAAI6vD,EAAOrC,EACNW,eAAevtD,EAAS,CAAE12B,KAAM4mB,EAAGwM,aACnChM,OAAOl6B,GAAS05B,EAAGlxB,QAAU,IAClCs0B,EAAMpD,EAAG50B,QAAQ2zF,IAAS/+D,EAAG50B,QAAQmuB,KACzC,CACA,IAAK6J,EACD,MAAM,IAAI66D,GAAkBj+D,EAAG15B,MAAOA,EAAOnC,OAAOiB,KAAK46B,EAAG50B,SAAU8jC,GAE1E5hC,EAAO5H,KAAKC,MAAM2H,EAAQkiC,GAAcpM,EAAI98B,MAAOwpC,EAAS4sD,EAAY7lB,EAASvlD,EAAQhrB,GAAS05B,EAAGlxB,QAAU,IAEnH,CA3CA,CArEA,CAiHJ,CACA,OAxKkB2tF,EAwKEnvF,GAvKVtH,OAAS,EACRy2F,EAEJA,EAAMp+D,QAAO,SAAU5X,EAAKsyD,GAC/B,IAAIimB,EAAWv4E,EAAIA,EAAIzgB,OAAS,GAShC,OARKg5F,GACDA,EAAS5lF,OAASklF,GAAUr+D,SAC5B84C,EAAK3/D,OAASklF,GAAUr+D,QAIxB++D,EAAS14F,OAASyyE,EAAKzyE,MAHvBmgB,EAAI/gB,KAAKqzE,GAKNtyD,CACX,GAAG,IAfP,IAAsBg2E,CAyKtB,CEpJA,SAASP,GAAuBC,GAC5B,MAAO,CACHt+D,OAAQ,WACJ,MAAO,CACH75B,IAAK,SAAUM,GACX,OAAO63F,EAAM73F,EACjB,EACAI,IAAK,SAAUJ,EAAKgC,GAChB61F,EAAM73F,GAAOgC,CACjB,EAER,EAER,EFtCA,SAAWg4F,GACPA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAkB,OAAI,GAAK,QACxC,CAHD,CAGGA,KAAcA,GAAY,CAAC,IE8EgB,WAC1C,SAAS3nB,EAAkBxrE,EAAS2kC,EAASssD,EAAiBptD,QAC1C,IAAZc,IAAsBA,EAAU6mC,EAAkB3jC,eACtD,IA7CyBnvC,EAvBXw4F,EAAeC,EAoEzB7vF,EAAQpC,KA0CZ,GAzCAA,KAAKkyF,eAAiB,CAClB5zF,OAAQ,CAAC,EACTs4B,SAAU,CAAC,EACXu7D,YAAa,CAAC,GAElBnyF,KAAKwpB,OAAS,SAAUvC,GACpB,IAAImrE,EAAQhwF,EAAM+iC,cAAcle,GAEhC,GAAqB,IAAjBmrE,EAAMz2F,OACN,OAAOy2F,EAAM,GAAGn2F,MAEpB,IAAIgH,EAASmvF,EAAMp+D,QAAO,SAAU5X,EAAKsyD,GASrC,OARKtyD,EAAIzgB,QACL+yE,EAAK3/D,OAASklF,GAAUr+D,SACO,iBAAxBxZ,EAAIA,EAAIzgB,OAAS,GAIxBygB,EAAIA,EAAIzgB,OAAS,IAAM+yE,EAAKzyE,MAH5BmgB,EAAI/gB,KAAKqzE,EAAKzyE,OAKXmgB,CACX,GAAG,IACH,OAAInZ,EAAOtH,QAAU,EACVsH,EAAO,IAAM,GAEjBA,CACX,EACAjD,KAAKmlC,cAAgB,SAAUle,GAC3B,OAAOke,GAAc/iC,EAAM6qE,IAAK7qE,EAAMqjC,QAASrjC,EAAMiwF,WAAYjwF,EAAMoqE,QAASvlD,OAAQlkB,EAAWX,EAAMtB,QAC7G,EACAd,KAAKulC,gBAAkB,WACnB,IAAI5R,EACJ,MAAO,CACHtX,QAAyC,QAA/BsX,EAAKvxB,EAAMkwF,sBAAmC,IAAP3+D,OAAgB,EAASA,EAAG/vB,aACzEqhC,KAAKuoC,aAAa7nC,mBAAmBvjC,EAAMqjC,SAAS,GAEhE,EACAzlC,KAAKuyF,OAAS,WAAc,OAAOnwF,EAAM6qE,GAAK,EAE9CjtE,KAAKylC,QAAUA,EACfzlC,KAAKsyF,eAAiBhmB,EAAkBkmB,cAAc/sD,GAC/B,iBAAZ3kC,EAAsB,CAE7B,GADAd,KAAKc,QAAUA,GACVwrE,EAAkBwB,QACnB,MAAM,IAAIhuE,UAAU,+EAExB,IAAI6zB,EAAKgR,GAAQ,CAAC,EAA+B8tD,GAAf9+D,EAAG0+D,YAAwB,IAAAK,QAAO/+D,EAAI,CAAC,gBAEzE3zB,KAAKitE,IAAMX,EAAkBwB,QAAQhtE,GAAS,IAAA04B,WAAS,IAAAA,UAAS,CAAC,EAAGi5D,GAAY,CAAEp2E,OAAQrc,KAAKsyF,iBACnG,MAEItyF,KAAKitE,IAAMnsE,EAEf,IAAKoE,MAAMwgC,QAAQ1lC,KAAKitE,KACpB,MAAM,IAAIntE,UAAU,kDAIxBE,KAAKwsE,SA/HSwlB,EA+Hc1lB,EAAkBE,SA/HjBylB,EA+H0BF,GA3HpDj4F,OAAOiB,KAAKi3F,GAAeh+D,QAAO,SAAU5X,EAAK4K,GAb5D,IAAqB2rE,EAAIC,EAejB,OADAx2E,EAAI4K,IAdS2rE,EAcQX,EAAchrE,IAdlB4rE,EAcsBX,EAAQjrE,KAV5C,IAAAwS,WAAS,IAAAA,WAAS,IAAAA,UAAS,CAAC,EAAIm5D,GAAM,CAAC,GAAMC,GAAM,CAAC,GAAK94F,OAAOiB,KAAK43F,GAAI3+D,QAAO,SAAU5X,EAAK4K,GAElG,OADA5K,EAAI4K,IAAK,IAAAwS,WAAS,IAAAA,UAAS,CAAC,EAAGm5D,EAAG3rE,IAAM4rE,EAAG5rE,IAAM,CAAC,GAC3C5K,CACX,GAAG,CAAC,IALOu2E,GAaAv2E,CACX,IAAG,IAAAod,UAAS,CAAC,EAAGw4D,IALLA,GA8HPhyF,KAAKqyF,WACA1tD,GAAQA,EAAK0tD,kBAzGR,KADe74F,EA0GgCwG,KAAKkyF,kBAzG1C14F,EAAQ,CAC5B8E,OAAQ,CAAC,EACTs4B,SAAU,CAAC,EACXu7D,YAAa,CAAC,IAEX,CACHU,iBAAiB,SAAQ,WAGrB,IAFA,IAAIl/D,EACAngB,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,KAAMC,EAAKsR,KAAKuoC,cAAcrtE,KAAK7E,MAAMq4B,GAAI,IAAAm/D,eAAc,MAAC,GAASt/E,GAAM,IACtF,GAAG,CACCha,MAAOq4F,GAAuBr4F,EAAM8E,QACpCq2B,SAAU,KAAWM,WAEzB89D,mBAAmB,SAAQ,WAGvB,IAFA,IAAIp/D,EACAngB,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,KAAMC,EAAKsR,KAAKC,gBAAgB/kC,KAAK7E,MAAMq4B,GAAI,IAAAm/D,eAAc,MAAC,GAASt/E,GAAM,IACxF,GAAG,CACCha,MAAOq4F,GAAuBr4F,EAAMo9B,UACpCjC,SAAU,KAAWM,WAEzB+9D,gBAAgB,SAAQ,WAGpB,IAFA,IAAIr/D,EACAngB,EAAO,GACFkgB,EAAK,EAAGA,EAAKh4B,UAAUC,OAAQ+3B,IACpClgB,EAAKkgB,GAAMh4B,UAAUg4B,GAEzB,OAAO,KAAMC,EAAKsR,KAAKguD,aAAa9yF,KAAK7E,MAAMq4B,GAAI,IAAAm/D,eAAc,MAAC,GAASt/E,GAAM,IACrF,GAAG,CACCha,MAAOq4F,GAAuBr4F,EAAM24F,aACpCx9D,SAAU,KAAWM,YAqE7B,CACAn7B,OAAOC,eAAeuyE,EAAmB,gBAAiB,CACtD3yE,IAAK,WAKD,OAJK2yE,EAAkB4mB,wBACnB5mB,EAAkB4mB,uBACd,IAAIjuD,KAAKuoC,cAAejoC,kBAAkBlpB,QAE3CiwD,EAAkB4mB,qBAC7B,EACA93F,YAAY,EACZc,cAAc,IAElBowE,EAAkB4mB,sBAAwB,KAC1C5mB,EAAkBkmB,cAAgB,SAAU/sD,GACxC,QAA2B,IAAhBR,KAAKuC,OAAhB,CAGA,IAAI5B,EAAmBX,KAAKuoC,aAAa7nC,mBAAmBF,GAC5D,OAAIG,EAAiBjqC,OAAS,EACnB,IAAIspC,KAAKuC,OAAO5B,EAAiB,IAErC,IAAIX,KAAKuC,OAA0B,iBAAZ/B,EAAuBA,EAAUA,EAAQ,GALvE,CAMJ,EACA6mC,EAAkBwB,QAAU1iE,GAI5BkhE,EAAkBE,QAAU,CACxBluE,OAAQ,CACJ60F,QAAS,CACL95D,sBAAuB,GAE3BF,SAAU,CACN9hB,MAAO,YAEX+7E,QAAS,CACL/7E,MAAO,YAGf/N,KAAM,CACF+pF,MAAO,CACHj8D,MAAO,UACPC,IAAK,UACLH,KAAM,WAEV3Z,OAAQ,CACJ6Z,MAAO,QACPC,IAAK,UACLH,KAAM,WAEVo8D,KAAM,CACFl8D,MAAO,OACPC,IAAK,UACLH,KAAM,WAEVq8D,KAAM,CACFj8D,QAAS,OACTF,MAAO,OACPC,IAAK,UACLH,KAAM,YAGd1oB,KAAM,CACF6kF,MAAO,CACH57D,KAAM,UACNC,OAAQ,WAEZna,OAAQ,CACJka,KAAM,UACNC,OAAQ,UACRC,OAAQ,WAEZ27D,KAAM,CACF77D,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,aAAc,SAElB27D,KAAM,CACF97D,KAAM,UACNC,OAAQ,UACRC,OAAQ,UACRC,aAAc,UAK9B,CAxJ6C,GDlF7C,SAAW8vH,GACPA,EAA4B,aAAI,eAChCA,EAAqC,sBAAI,wBACzCA,EAA8B,eAAI,iBAClCA,EAA4B,aAAI,eAChCA,EAAmC,oBAAI,qBAC1C,CAND,CAMGA,KAAkBA,GAAgB,CAAC,IACtC,IAqByDh0D,GArBrDi0D,GAA2B,SAAUj0D,GAErC,SAASi0D,EAAUvrH,EAAMt7B,EAAS6iG,GAC9B,IAAIvhG,EAAQpC,KACR8D,EAAM6/F,EACJA,aAAqBx9F,MACjBw9F,EACA,IAAIx9F,MAAM80B,OAAO0oE,SACrB5gG,EAQN,OAPAX,EAAQsxF,EAAOv5F,KAAK6F,KAAM,yBAAyBsC,OAAO85B,EAAM,MAAM95B,OAAOxB,EAAS,MAAMwB,OAAOwB,EAAM,KAAKxB,OAAOwB,EAAIhD,QAAS,MAAMwB,OAAOwB,EAAIo2F,OAAS,MAAQl6F,MAC9Jo8B,KAAOA,EAE0B,mBAA5Bj2B,MAAMmjF,mBAEbnjF,MAAMmjF,kBAAkBlnF,EAAOulJ,GAE5BvlJ,CACX,CACA,OAjBA,IAAAuxF,WAAUg0D,EAAWj0D,GAiBdi0D,CACX,CAnB8B,CAmB5BxhJ,QAoCsC,SAAUutF,IAC9C,IAAAC,YACA,SAA4B7yF,EAASub,EAAQ7c,EAAYmkG,GACrD,IAAIvhG,EAAQsxF,EAAOv5F,KAAK6F,KAAM,GAAGsC,OAAOxB,EAAS,iBAAiBwB,OAAO9C,aAA+C,EAASA,EAAWzG,GAAI,uBAAuBuJ,OAAO9C,aAA+C,EAASA,EAAWiiJ,eAAgB,mBAAmBn/I,OAAO9C,aAA+C,EAASA,EAAWmY,YAAa,MAAO0E,EAAQsnF,IAAc3jG,KAGxY,OAFAoC,EAAM5C,WAAaA,EACnB4C,EAAMia,OAASA,EACRja,CACX,GAN8BsxF,EAQlC,EATuC,EAlCkBA,GAMvDi0D,IALE,IAAAh0D,YACA,SAAmC7yF,EAAS6iG,GACxC,OAAOjQ,GAAOv5F,KAAK6F,KAAM0nJ,GAAcG,sBAAuB/mJ,EAAS6iG,IAAc3jG,IACzF,GAHqC0zF,IAOD,SAAUA,IAC9C,IAAAC,YACA,SAA4B7yF,EAAS6iG,GACjC,OAAOjQ,EAAOv5F,KAAK6F,KAAM0nJ,GAAcK,eAAgBjnJ,EAAS6iG,IAAc3jG,IAClF,GAH8B0zF,EAKlC,CANuC,CAMrCi0D,IAEoC,SAAUj0D,IAC5C,IAAAC,YACA,SAA0B7yF,EAAS6iG,GAC/B,OAAOjQ,EAAOv5F,KAAK6F,KAAM0nJ,GAAcO,aAAcnnJ,EAAS6iG,IAAc3jG,IAChF,GAH4B0zF,EAKhC,CANqC,CAMnCi0D,IAEmC,SAAUj0D,GAE3C,SAASw0D,EAAgBpnJ,EAASub,EAAQsnF,GACtC,IAAIvhG,EAAQsxF,EAAOv5F,KAAK6F,KAAM0nJ,GAAcS,aAAc,GAAG7lJ,OAAOxB,EAAS,cAAcwB,OAAO+Z,EAAQ,MAAOsnF,IAAc3jG,KAE/H,OADAoC,EAAMia,OAASA,EACRja,CACX,CACA,OANA,IAAAuxF,WAAUu0D,EAAiBx0D,GAMpBw0D,CACX,CARoC,CAQlCP,MAa2C,SAAUj0D,IACnD,IAAAC,YACA,SAAiCn0F,EAAY6c,GACzC,IAAIja,EAAQsxF,EAAOv5F,KAAK6F,KAAM0nJ,GAAcY,oBAAqB,qBAAsBhmJ,OAAO9C,EAAWzG,GAAI,kBAAoBuJ,OAAO+Z,EAAQ,aAAc/Z,OAAO9C,EAAWiiJ,eAC1K,oBAAoBn/I,OAA4C,iBAA9B9C,EAAWiiJ,eACzCjiJ,EAAWiiJ,eACXjiJ,EAAWiiJ,eACRlvI,KAAI,SAAUgP,GAAK,IAAIoS,EAAI,OAA0B,QAAlBA,EAAKpS,EAAEtlB,aAA0B,IAAP03B,EAAgBA,EAAKzmB,KAAKC,UAAUoU,EAAI,IACrG5c,OAAQ,KACf,KAAM,mBAAqB3E,KAEjC,OADAoC,EAAM5C,WAAaA,EACZ4C,CACX,GAXmCsxF,EAavC,CAd4C,CAc1Ci0D,aEjFQplJ,KAAK8I,OCgBkBrM,EAAAA,EAAAA,eAAyB,2FCI1D,MAAMm0U,IAEI,EAAAnvT,GAAA,GAAsB,EAAQ,QAAyBwiD,MA6CpDA,IAAQ,EAAAhmD,GAAA,GAAyC,CAC1D1iB,YAAa,QACbqR,SAAUgkU,GACV/jU,eA5CAA,EA6CAiC,WAAY,SAAiBhV,GACzB,MAAM8zO,GAAiB,IAAA5+N,QAAkB,OAEnC,QACF1B,EAAO,UACPJ,EAAS,YACTy3D,EAAW,SACXrpE,EAAQ,cACRspE,EAAa,SACbH,EAAQ,QACR1vD,EAAO,SAEPyvD,EAAQ,KACRj0D,GAAO,KACJ1C,GACH/T,GAEJ,IAAAmB,YAAU,KACN,MAAMsU,EAAUq+N,GAAgBr+N,QAMhC,OAJIA,GAAWwF,GACXxF,EAAQxR,iBAAiB,QAASgX,GAG/B,IACHxF,GAAWwF,EACLxF,EAAQ7N,oBAAoB,QAASqT,QACrCvU,CAAS,IAevB,MAAMqwU,EACU,YAAZvjU,EACO,WACW,UAAZA,EACC,WACDA,EAEJ22D,GAAQ,SAAa,YAC3B,OACI,gBAACA,EAAK,IACEp2D,MACA,SAAmB,CAAE0C,SACzBrC,MAAOhB,EACPxS,IAAKkzO,EACLtgO,QAASujU,GAERv1U,EACAqpE,GACG,gBAACpyB,GAAA,QAAM,CACH7lC,KAAK,SACLY,QAAQ,iBACRqkC,QAAS,KACL8yB,MACIG,GACAgpK,EAAer+N,SAASouC,UAI/BgnB,GAKrB,EACAxuE,QAAS,6BClIb,MAAM26U,GAGF,CACAC,QAAS,OACTp3R,KAAM,OACNyb,SAAU,UACV47Q,SAAU,SAQd,SAASC,GAAiB3jU,GACtB,OAAQA,GACJ,IAAK,WACM,SACX,IAAK,WACM,SAGX,QACW,SAEnB,CAEA,SAAS4jU,GAAcC,EAAkC78R,GACrD,OAAQA,EAAO9nC,MACX,IAAK,YAAa,CACd,MAAM4kU,EAAW,IACV98R,EAAO3oC,QACVnV,IAAI4tT,EAAAA,GAAAA,KACJ7wL,SAAU09M,GAAiB38R,EAAO3oC,QAAQ2B,UAI9C,IAAI+jU,EAAcF,EAAO/3U,OACzB,IAAK,IAAIF,EAAI,EAAGA,EAAIi4U,EAAO/3U,OAAQF,IAC/B,GAAIk4U,EAAS79M,UAAY49M,EAAOj4U,GAAGq6H,SAAU,CAC3B89M,EAAAn4U,EACd,MAIR,MAAO,IAAIi4U,EAAO3nU,MAAM,EAAG6nU,GAAcD,EAAQ,CAErD,IAAK,eACD,OAAOD,EAAOx4U,QAAQqoB,GAAMA,EAAExqB,KAAO89C,EAAO99C,KAGxD,CAEO,SAASs3O,GACZxT,GAEA,MAAO62G,EAAQljM,IAAYgC,EAAAA,EAAAA,YAAWihM,GAAe,IAE/ChgH,GAAYzxH,EAAAA,EAAAA,cAAahmF,IAC3Bw0H,EAAS,CAAEzhI,KAAM,YAAab,QAAS8N,GAAS,GACjD,IAEG63T,EAAeH,EAAO,GAEtBvjG,GAAiB5yO,EAAAA,EAAAA,UAAQ,KA1FnC,IAAAo2B,EAAA6kF,EA2FQ,OAAOq7N,GACD34T,EAAAA,EAAAA,cACI60B,EAAAA,cAACnyC,GAAAA,EAAU,IAAGi/N,GACV9sL,EAAAA,cAAC,OACG,cAAY,sBACZ14B,MAAO,CACHvD,SAAU,QACV4E,KAAM,MACNqgD,UAAW,mBACXlgD,OAAQ,QAEZ2B,KAAK,UAELu1B,EAAAA,cAACy2B,GAAA,CACGU,YAAa,OAAAvzC,EAAakgT,EAAA/nE,qBAAgB,EAAAn4O,EAAA5jB,MAC1C9V,IAAK45U,EAAa96U,GAClBiuE,SAAUA,KA3GxC,IAAAwsJ,EA4GkC,OAAAA,EAAAqgH,EAAa/nE,iBAAbt4C,EAA6BhsN,WAE7BgpI,EAAS,CAAEzhI,KAAM,eAAgBhW,GAAI86U,EAAa96U,IAAK,EAE3Due,QAASA,IACLk5H,EAAS,CAAEzhI,KAAM,eAAgBhW,GAAI86U,EAAa96U,KAEtDkuE,QAAS,OAAAuxC,EAAaq7N,EAAAC,aAAet7N,EAAA,IACrC3oG,QACIgkU,EAAahkU,QAAUwjU,GAAYQ,EAAahkU,SAAW,QAG9DgkU,EAAahrR,WAI1B9mC,SAASnU,MAEb,OACP,CAACimU,EAAch3G,IAEX,OAACsT,EAAgB1c,EAC5B,+DC1GO,MAAMsgH,GAAN,cAAmC58E,YAGtC/9P,WAAAA,CAAY6hI,GACF,MAAA84M,GAAqBl4D,WAAY,CAAElhJ,SAAS,EAAMy8H,UAAU,EAAMn8H,UAAQ,GAJjF,IAAM+4M,GAAND,GAAMC,GACOn4D,WAAa,8CCH1B,SAASo4D,GACZC,GAEO,qBAAiCvzT,EAAAA,UAGpCvnB,WAAAA,CAAYiD,GACR01C,MAAM11C,GAHV,KAAAkC,MAAkC+4C,EAAAA,EAAAA,aAI9Bt3C,KAAKm0U,aAAen0U,KAAKm0U,aAAah0U,KAAKH,KAAI,CAGnDm0U,YAAAA,GACQn0U,KAAKzB,KAAKuT,UACH9C,EAAAA,EAAAA,QAAA+gC,EAAAA,cAACmkS,EAAA,IAAoBl0U,KAAK3D,QAAW2D,KAAKzB,KAAKuT,QAC1D,CAGJsjC,iBAAAA,GACIp1C,KAAKm0U,cAAa,CAGtBt8R,kBAAAA,GACI73C,KAAKm0U,cAAa,CAGtBx8R,oBAAAA,GACQ33C,KAAKzB,KAAKuT,UACa+7C,EAAAA,EAAAA,wBAAA7tD,KAAKzB,KAAKuT,QACrC,CAGJ9C,MAAAA,GACW,OAAA+gC,EAAAA,cAAC,OAAI9yC,IAAK+C,KAAKzB,KAAM8Y,MAAO,CAAEkkC,OAAQ,YAAa,EAGtE,CCpCO,MAAM64R,GAAN,cAAkCj9E,YAGrC/9P,WAAAA,GACI24C,MAAMqiS,GAAoBv4D,WAAY,CAAElhJ,SAAS,EAAMy8H,UAAU,GAAM,GAJxE,IAAMlrB,GAANkoG,GAAMloG,GACO2vC,WAAa,mBCFpB,MAAAw4D,IAAgBr1U,EAAAA,EAAAA,gBAAuB,GAE7C,SAASs1U,IAAe,SAC3B5rF,EAAA,SACA7qP,IAEA,OAAAkyC,EAAAA,cAAQskS,GAAcz2U,SAAd,CAAuB3B,MAAOysP,GAAW7qP,EACrD,CCNa,MAAA02U,IAAiBv1U,EAAAA,EAAAA,gBAAuB,GAQxC6wO,GAAkBA,EAAG2kG,SAAQ32U,eACtC,MAAO+lO,EAAU6wG,IAAe55T,EAAAA,EAAAA,WAAkB,GAE5C65T,GAAqB1yO,EAAAA,EAAAA,cAAY,KACvByyO,EAAA,MAAAD,EAAAA,EAAU9wU,UAAUC,OAAO,GACxC,CAAC6wU,IAgBJ,OAdAh3U,EAAAA,EAAAA,YAAU,KACak3U,GAAA,GACpB,CAACA,KAEJl3U,EAAAA,EAAAA,YAAU,KACC7E,OAAA2H,iBAAiB,SAAUo0U,GAC3B/7U,OAAA2H,iBAAiB,UAAWo0U,GAE5B,KACI/7U,OAAAsL,oBAAoB,SAAUywU,GAC9B/7U,OAAAsL,oBAAoB,UAAWywU,EAAmB,IAE9D,CAACA,IAEJ3kS,EAAAA,cAAQwkS,GAAe32U,SAAf,CAAwB3B,MAAO2nO,GAAW/lO,EAAS,ECtBlDouQ,GAAaz+C,EAAAA,GAAAA,GCNpBmnH,GAA+C,CACjD/sU,WAAO,EACPD,UAAM,GCFG,MAAAitU,IAA2B51U,EAAAA,EAAAA,eAItC,IAEK,SAAS61U,IAA0B,SACtCh3U,KACGuS,IAEH,OAAA2/B,EAAAA,cACK6kS,GAAyBh3U,SAAzB,CAAkC3B,MAAOmU,GACrCvS,EAGb,CCbO,SAASi3U,KAGL,OADS33U,EAAAA,EAAAA,YAAWy3U,GAE/B,CCDO,SAASG,IAAU,MAAE94U,EAAO+gD,KAAAA,IAI/B,MAHa,QAATA,GACQtgD,QAAAkvC,KAAK,2CAA2CoR,KAErD,OAAO/gD,EAAMkJ,KAAKlJ,EAAMrD,KAAKqD,EAAM2J,IAC9C,CA0BO,MAAMovU,GAAuC,CAChDjmU,KAAM,SACNm8D,MAAO,IACPsuN,MAAO,CACH,CACIz9Q,MAAO,CAAC,CAAEihC,KAAM,MAAO/gD,MAAO,CAAEkJ,EAAG,IAAKvM,EAAG,IAAKgN,EAAG,OACnDnB,OAAQ,GAEZ,CACIsX,MAAO,CAAC,CAAEihC,KAAM,MAAO/gD,MAAO,CAAEkJ,EAAG,IAAKvM,EAAG,IAAKgN,EAAG,OACnDnB,OAAQ,IAGhBwwU,eAAgB,CAAE9vU,EAAG,GAAIvM,EAAG,GAAIgN,EAAG,KAGhC,SAASgzS,GACZnrB,GAEA,MAAM,KAAE1+Q,EAAMm8D,MAAAA,EAAA,MAAOsuN,EAAOy7C,eAAAA,GAA+B,MAAZxnD,EAAYA,EAAAunD,GAE3D,OAAOz3U,EAAAA,EAAAA,UAAQ,KAEP,QAAS,IAATwR,QACU,IAAVm8D,QACU,IAAVsuN,QACmB,IAAnBy7C,GACiB,IAAjBz7C,EAAM79R,OAEC,OAGX,MAAM66D,EAxDE,SACZznD,EACAm8D,EACAsuN,GAkBO,MAfM,WAATzqR,GACQrS,QAAAkvC,KAAK,8CAA8C78B,KAcxD,GAAGA,cARW,GAAKm8D,SAEPsuN,EACdjnR,KAAK67I,GAEK,GAAG2mL,GADI3mL,EAAKryI,MAAM,OACmB,IAAdqyI,EAAK3pJ,YAEtCE,KAAK,QAEd,CAkC2BuwU,CAAenmU,EAAMm8D,EAAOsuN,GAExC,OAAEhjO,aAAYz6C,MADPg5T,GAAU,CAAE/3R,KAAM,MAAO/gD,MAAOg5U,IAClB,GAC7B,CAAClmU,EAAMm8D,EAAOsuN,EAAOy7C,GAC5B,CCvEM,MAAA5uF,IAAoBrnP,EAAAA,EAAAA,eAAiC,MAG3D,SAASm2U,GAAmB94U,GACxB,MAAM,SAAEwB,KAAauS,GAAS/T,EAC9B,OAAA0zC,EAAAA,cAAQs2M,GAAkBzoP,SAAlB,CAA2B3B,MAAOmU,GAAOvS,EACrD,CCFO,SAASkxO,KACN,MAAA/yN,GAAS7e,EAAAA,EAAAA,YAAWkpP,IAE1B,IAAKrqO,EACK,UAAI7V,MAAM,sCAGb,OAAA6V,CACX,CCfgB,SAAAo5T,GACZz3T,EACAmI,GAEA,MAAO7iB,EAAQoyU,IAAax6T,EAAAA,EAAAA,UAAwB8C,IAC7ChhB,EAAOmwR,IAAYjyQ,EAAAA,EAAAA,aACnBm0Q,EAASsmD,IAAcz6T,EAAAA,EAAAA,WAAS,GAqCvC,OAnCArd,EAAAA,EAAAA,YAAU,KACN,IAAI+3U,GAAY,EAEhB,SAASC,EAAUC,GACXF,GAIJE,GAAG,CAsBP,OAlBcD,GAAC,IAAKF,GAAW,KAGxBxvT,EAAAhY,MAAM4nU,IACLF,GAAU,KACNH,EAAUK,GACV5oD,OAAS,EAAS,GAEhB,IAELxwQ,OAAOq5T,IACMH,GAAC,IAAK1oD,EAAS6oD,IAAO,IAEnCvjG,SAAS,IAAKojG,GAAU,IAAMF,GAAW,OAK3C,KACSC,GAAA,EAChB,GACD,CAACzvT,IAEG,CAAE7pB,MAAOgH,EAAQtG,QAAOqyR,UACnC,CClBA,SAAS4mD,GAAWzxS,EAAgB+7L,GAChC,MAAO,GAAG/7L,KAAU+7L,GACxB,CAKO,MAAM21G,GAAN,cAAqC1+E,YAMxC/9P,WAAAA,CAAYssH,GACR3zE,MAAM8jS,GAAuBh6D,WAAY,CACrClhJ,SAAS,EACTy8H,UAAU,EACVn8H,OAAQ,CAAEvV,WACb,GAXF,IAAMowN,GAAND,GA4BA,SAAS9tG,GACZ5jM,EACAitM,EACA3lB,EACA4lB,GAEA,MAAM0kG,EAAO,CACT9zI,KAAOv8E,IAxFf,IAAA/xF,EAyFY,IAAKy9M,EACD,OAEE,MAAAn3O,EAAM27U,GAAWzxS,EAAQuhF,GAC/B,OAAO/xF,EAAAh7B,OAAA+oL,cAAP/tJ,EAAoBsuK,KAAKhoM,GACT,MAAAwxN,GAAAA,EAAA,IAAIqqH,GAAuB77U,GAAK,EAEpD0nK,QAASA,CAACx6J,EAAc2zB,EAAgBC,KAhGhD,IAAApH,EAiGY,GAAKy9M,EAGE,cAAAz9M,EAAAh7B,OAAO+oL,kBAAa,EAAA/tJ,EAAAguI,QACvBi0K,GAAWzxS,EAAQh9B,GACnB2zB,EAAQ86S,GAAWzxS,EAAQrJ,QAAS,EACpCC,EAAM66S,GAAWzxS,EAAQpJ,QAAO,IASxCktM,aAAeD,IACL,MAAAguG,EAAWJ,GAAW5tG,EAAa,SACnCiuG,EAASL,GAAW5tG,EAAa,OACvC+tG,EAAK9zI,KAAK+zI,GACV,IAAIE,GAAQ,EACZ,MAAO,KACH,IAAKA,EAAO,CACAA,GAAA,EACRH,EAAK9zI,KAAKg0I,GACV,MAAME,EAAqBJ,EAAKp0K,QAAQqmE,EAAaguG,EAAUC,GAG3D5kG,GAC0BA,EAAArJ,EAAa,MAAAmuG,OAAA,EAAAA,EAAoB/wP,SAC/D,EAER,GAGD,OAAA2wP,CACX,CAOO,SAASK,GAAer1U,GACrB,aACFojC,EACAitM,6BAA8BilG,EAC9B5qH,cAAe6qH,EAAA,0BACfjlG,GACAtwO,EAGE4oO,GAAaxsO,EAAAA,EAAAA,YAAWkpP,KAE1BjV,6BAA8BmlG,EAC9B9qH,cAAe+qH,GACf,MAAA7sG,EAAAA,EAAc,CAAC,EACbyH,EACFilG,GAAuCE,EAErC9qH,EAAgB6qH,GAAwBE,EAEvC,OAAAj5U,EAAAA,EAAAA,UACH,IACIwqO,GACI5jM,EACAitM,EACA3lB,EACA4lB,IAER,CAAC5lB,EAAe2lB,EAA8BjtM,EAAQktM,GAE9D,CC9HgB,SAAA+L,GACZr8O,EACAqwO,EACA3lB,GAEA,MAAM,YAAEuc,EAAA,OAAa7jM,EAAQktM,0BAAAA,GAA8BtwO,EASpD,OARMgnO,GACT5jM,EACAitM,EACA3lB,EACA4lB,GAIQpJ,aAAaD,EAC7B,CAQO,SAASmJ,GAAmBpwO,GACzB,kBACFinO,EAAA,OACA7jM,EAAA,KACA8yE,EAAA,0BACAo6H,EAAA,6BACAD,EAAA,cACA3lB,GACA1qN,EACEg1U,EAAOK,GAAe,CACxBjyS,SACAktM,4BACAD,+BACA3lB,kBAEEkzB,GAAQptO,EAAAA,EAAAA,UAWd,OATA/T,EAAAA,EAAAA,YAAU,KACAmhP,EAAA7sO,QAAUikU,EAAK9tG,aAAaD,EAAY,GAM/C,CAACA,EAAa/wH,KAEVjV,EAAAA,EAAAA,cAAY,KA3FvB,IAAAruE,EA4FQ,OAAAA,EAAAgrN,EAAM7sO,UAAN6hB,EAAAx5B,KAAAwkP,EAAA,GACD,GACP,CCxEO,SAASo7D,KACZ,OAAO58S,EAAAA,EAAAA,YAAWk3U,GACtB,CF6BayB,GAIOj6D,WAAa,qBGnC1B,MAAMwY,GAAYA,KACJl3R,EAAAA,EAAAA,YAAWo3U,ICOhB,SAAAl1D,GAAkBo3D,EAA0B,KACxD,MAAMC,GAAenlU,EAAAA,EAAAA,QAAehP,KAAK8I,OACnCsrU,GAAaplU,EAAAA,EAAAA,QAA6C,OAE1D,WAAEugP,GAAe/iB,KAEjB6nG,GAAiB50O,EAAAA,EAAAA,cAClBxuF,IAEOmjU,EAAW7kU,UACX1F,aAAauqU,EAAW7kU,SACxB6kU,EAAW7kU,QAAU,MAGzB,MAAMuqH,EAAc95H,KAAK8I,MAAQqrU,EAAa5kU,QAE9C,GAAIuqH,GAAeo6M,EAEf3kF,EAAWt+O,OACR,CAEH,MAAMqjU,EAAgBJ,EAAkBp6M,EAC7Bs6M,EAAA7kU,QAAUrK,YAAW,KAC5BqqP,EAAWt+O,EAAK,GACjBqjU,EAAa,IAGxB,CAACJ,EAAiB3kF,IAYf,OARPt0P,EAAAA,EAAAA,YAAU,IACC,KACCm5U,EAAW7kU,SACX1F,aAAauqU,EAAW7kU,QAAO,GAGxC,IAEI8kU,CACX,C9b5CY,IAAAhkF,GAAA,CAAAkkF,IACRA,EAAK,UACLA,EAAK,UACLA,EAAK,UACLA,EAAK,UACLA,EAAU,eACVA,EAAY,sBANJA,GAAA,CAAAlkF,IAAA,IASAvqB,GAAA,CAAA0uG,IACRA,EAAa,sCACbA,EAAW,kCACXA,EAAM,sCACNA,EAAM,oCACNA,EAAY,6BACZA,EAAa,iCACbA,EAAM,UAPEA,GAAA,CAAA1uG,IAAA,IAUL,MAGMo9C,GAAqB,K+bL5BuxD,GAAsB,kBACtBC,GAAyB,aAqBzBC,GAAuBA,CAAC9yD,EAAexqN,EAAoByqN,KAC7D,IAAI79Q,EArB2B,aAyB/B,OAAI69Q,IAIU,cAAVD,EACU59Q,EA5BoB,qBA6BvB,MAAAozD,OAAA,EAAAA,EAAW3tC,cAActlB,SAASisP,GAAUukF,UAEzC3wU,EAhCiB,iBAiCV,cAAV49Q,EACG59Q,EA9B2B,2BA+BpB,YAAV49Q,EACG59Q,EAlCuB,uBAmChB,YAAV49Q,IACG59Q,EAnCiB,kBAsCxBA,EAAA,EAGL4wU,GAAsBn7T,GACV,UAAVA,EACO,QAEG,aAAVA,EACO,WAEG,SAAVA,EACO,OAEG,YAAVA,EACO,UAEJ,KAGJ,SAASsoQ,IAAoB,MAChCH,EAAA,YACA19Q,EAAA,OACA2V,EAAA,SACA6rN,EAAA,OACAS,EAAA,UACA67C,EAAA,UACA7nD,EAAA1gN,MACAA,EAAA,UACA29C,EAAA,kBACAyqN,IAEM,MAAAgzD,GZ5EyB76U,EY4EYkK,GZ3EpCnJ,EAAAA,EAAAA,UAAQ,IAZnB,SAAmBmJ,EAAmB,SAC5B,MAAAkb,EAAS+yT,GAAQjuU,GACvB,GAAIkb,EACO,OAAAA,EAGL,MAAAzB,EAVV,SAAsBzZ,EAAmB,SACrC,OAAO,IAAI4wU,EAAgB,CAAEvF,eAAgBrrU,GACjD,CAQmB6wU,CAAa7wU,GAErB,OADPiuU,GAAQjuU,GAAeyZ,EAChBA,CACX,CAGyBq3T,CAAUh7U,IAAM,CAACA,KADnC,IAA4BA,EY6E/B,MAAMi7U,EAAoBP,GAAqB9yD,EAAOxqN,EAAWyqN,IAC3D,eAAE1jR,GAAmBouO,KACrB2oG,EAASC,GAAAA,EAAahH,KAEtBiH,GAA8Br6U,EAAAA,EAAAA,UAAS,OAAO,MAAAm6U,OAAA,EAAAA,EAAQG,YAAYj7U,SAAQ,CAAC86U,KAE1E70T,EAAUi1T,IAAej9T,EAAAA,EAAAA,WAAS,GA2ElC,OAzEPrd,EAAAA,EAAAA,YAAU,MA8CNke,iBACQ,IACM,MAAAq8T,QA/Cdr8T,iBACU,MAAA7e,QAAc8D,IACb,OACHq3U,YAAa9vG,EACb/U,QAAS,CACLp6N,GAAI4vO,EACJxoG,MAAOqkJ,EACP3nR,SAEJo7U,iBAAkBxyD,GAClB7oR,OAAQsrO,EACRxhO,cACA2V,SACAJ,MAAOm7T,GAAmBn7T,SAAU,EACpC0gN,YACJ,CAgCwCu7G,SA7B5Cx8T,eAA8Bq8T,GAlJtC,IAAApkT,EAAA6kF,EAmJgB12F,eAAenoB,IAAIq9U,IACnBc,GAAY,GAIZJ,GAAUE,QACJF,EAAOS,gBAAgBnB,UAEvBK,EAAgB90T,KAClB00T,IACA,OAAAz+N,EAAA,OAAQ7kF,EAAA,MAAAh7B,YAAA,EAAAA,OAAA8hR,oCAA+B,EAAA9mP,EAAA89S,iBAAvC,EAAAj5N,EAAmDhyG,UAAWixU,EAE9DM,EAER,CAeUK,CAAeL,SAZ7Br8T,eAA4Bq8T,GApKpC,IAAApkT,EAuKiB+jT,GAAWE,SAEN,OAAAjkT,EAAA0jT,EAAgBlH,mBAAe,EAAAx8S,EAAAx5B,KAAAk9U,EAAAU,GACzC,CAOU5H,CAAa4H,GACnBD,GAAY,EAAI,OACXv2T,GACG7kB,QAAAC,MAAM,iDAAkD4kB,EAAC,CACrE,CAGC82T,EAAqB,GAC3B,CACCnwG,EACAmvG,EACA3wU,EACA2V,EACAo7T,EACAx7T,EACA0gN,EACA6nD,EACA77C,EACAhoO,EACA+2U,EACAE,IAGG/0T,CACX,CChLO,SAASi3R,KACN,oBAAEllS,GAAkBm6N,KAEnB,OACH8qE,gBAAmC,aAAlBjlS,EACjBglS,eAAkC,YAAlBhlS,EAExB,CCZgB,SAAA0jU,GACZC,EACAx3U,GAEA,MAAM,SAAEw7C,EAAUjlC,QAAAA,EAAA,QAASigG,EAAA,UAAS6qK,GAAc,MAAArhR,EAAAA,EAAW,CAAC,EAC9D,OAAQw3U,GACJ,KAAK/qH,EAAAA,GAAAA,GAAiC6tB,QAClC,MAAA+mC,GAAAA,IACA,MACJ,KAAK50D,EAAAA,GAAAA,GAAiC0vD,OAClC,MAAA3gO,GAAAA,IACA,MACJ,KAAKixK,EAAAA,GAAAA,GAAiCi+C,MAClC,MAAAn0P,GAAAA,IACA,MACJ,KAAKk2M,EAAAA,GAAAA,GAAiCrnN,MAClC,MAAAoxG,GAAAA,IAEJ,KAAKi2G,EAAAA,GAAAA,GAAiCojB,gBAK9C,CCvBO,MAAM4nG,GAAN,cAA8BrhF,YAKjC/9P,WAAAA,CACI6hI,GAEM,MAAAu9M,GAAgB38D,WAAY,CAAElhJ,SAAS,EAAMy8H,UAAU,EAAMn8H,UAAQ,GAR5E,IAAM2mH,GAAN42F,GCeP,eAAsBhgH,GAAen8M,GAEjC,GAAe,OAAXA,EACA,OAMJ,KAH0Bo8T,EAAAA,GAAAA,GAAep8T,GAIrC,OAIJ,MAAMq8T,EAAoB,CACtB,wDACA,yDACA,yDACA,gEAEEx5U,QAAQkd,IAAIs8T,GAGlB,MAAMC,EAAgB,CAClB,qCAEA,qCACA,qCACA,qCACA,4CAEEz5U,QAAQkd,IAAIu8T,EACtB,CCvBO,SAAS3pG,GAAoB3yO,GAChC,MAAM,SAAEwB,KAAa+8Q,GAAcv+Q,EAC7BstO,EAAaoF,KAEnB,OAAAh/L,EAAAA,cACKolS,GAAoB,IAAGxrG,KAAgBixC,GACnC/8Q,EAGb,CFjCa+jP,GAGOi6B,WAAa,mKGejC,SAAS+8D,IAAuC,MAC5C38T,EAAA,SACApe,IAKA,MAAMg7U,EAAW58T,GAAS,QAEtB,OAAA8zB,EAAAA,cAACv0B,KAAA,CACG/L,UAAW,SAASopU,KAAYxhU,GAAMmE,gCACtCS,MAAO48T,GAENh7U,EAGb,CAEO,SAASo/N,GACZ5gO,GAKM,eACFwB,EAAA,MACAge,EAAQ,uBACRjH,EAAgB,iBAChBqH,EAAQ,WACL7L,GACH/T,EACE2f,GAASze,EAAAA,EAAAA,UAAQ,KAAM,CAAGse,QAAOjH,gBAAeqH,WAAU,CAACJ,EAAOjH,EAAeqH,IAGnF,OAAA8zB,EAAAA,cAAC6oS,GAAA,CAAuC38T,SACpC8zB,EAAAA,cAACnyC,GAAAA,EAAA,IACOwS,EACJX,UAAWk6J,KAAWtyJ,GAAMyhU,cAAezhU,GAAMzC,OAC7CoH,GAEHne,GAIjB,CC7DO,MAAMk7U,GAAN,cAA4B5hF,YAG/B/9P,WAAAA,GACI24C,MAAMgnS,GAAcl9D,WAAY,CAAElhJ,SAAS,EAAMy8H,UAAU,GAAM,GAJlE,IAAMnW,GAAN83F,GAAM93F,GACO46B,WAAa,WCF1B,MAAMm9D,GAAN,cAA0B7hF,YAG7B/9P,WAAAA,CAAY6hI,GACF,MAAA+9M,GAAYn9D,WAAY,CAAElhJ,SAAS,EAAMy8H,UAAU,EAAMn8H,UAAQ,GAJxE,IAAM6gH,GAANk9F,GAAMl9F,GACO+/B,WAAa,SCA1B,MAAMo9D,GAAN,cAA+B9hF,YAGlC/9P,WAAAA,GACI24C,MAAMknS,GAAiBp9D,WAAY,CAAElhJ,SAAS,EAAMy8H,UAAU,GAAM,GAJrE,IAAMtV,GAANm3F,GCCS,SAAA/3B,GACZg4B,EACA/xU,EACA+mJ,GAEM,MAAAuvE,EAAWy7G,EAAU/xU,GAC3B,IAAKs2N,EACK,UAAIt3N,MAAM,+BAA+BgB,KAGnD,OAAOs2N,EAASjlO,QAAQ,SAAUqE,IAC9B,MAAM5C,EAAM4C,EAAMrE,QAAQ,IAAK,IAC/B,OAAOyB,KAAOi0J,EAASA,EAAOj0J,GAAK2J,WAAa,KAExD,CDfak+O,GACO+5B,WAAa,eC4BjC,MAAMs9D,GAAkC,CACpC/3B,WAAY,8BACZ3B,WAAY,mCACZS,YAAa,wCACbK,QAAS,uCACTP,gBAAiB,sCACjBJ,YAAa,kCACbE,cAAe,oCACfW,SAAU,uCAER24B,GAAiC,CACnCh4B,WAAY,wBACZ3B,WAAY,2BACZS,YAAa,gCACbK,QAAS,4BACTP,gBAAiB,gCACjBJ,YAAa,4BACbE,cAAe,8BACfW,SAAU,sCAGP,SAASvkE,GAAc1/O,GACnB,MAAQ,UAARA,EAAkB28U,GAAgBC,EAC7C,CCvDgB,SAAAnvF,GAAO5tN,EAAsB,IACzC,OAAOA,EAAS1gC,OAAS,CAC7B,CAEgB,SAAA2+O,GAAWj+M,EAAsB,IAC7C,OAA2B,IAApBA,EAAS1gC,MACpB,CAEgB,SAAA2hR,GAAYjhP,EAAsB,IAC9C,OAAOA,EAAS1gC,OAAS,CAC7B,CCRO,MAAM+uT,GAAqB,CAC9B,sCACA,wCACA,mCACA,8CACA,wCACA,0CACA,0CACA,2CACA,4CACA,mDACA,+CACA,0CACA,8CACA,4CACA,6CACA,0CACA,+CACA,0CACA,yCACA,6CACA,uCACA,mDACA,4CACA,6CACA,yCACA,0CACA,oCACA,kBACA,4BACA,6BAGS2uB,GAA2B,CACpC,0CACA,0CACA,yCACA,4CACA,4CAGSC,GAAkB,CAC3B,yCACA,yCAGSzuB,GAAqB,CAC9B,uCACA,2CACGyuB,MACAD,IAIMj2D,GAAmB,uCACnBC,GAAwB,wCAExB5B,GAAuB,CAJL,sCAIuB2B,GAAkBC,IAS3D98B,GAAY,CACrB47D,KAAM,iCACNpkC,KAAM,oCACNmxC,qBAAsB,0BACtBxoE,2BAA4B,qCAC5ByoE,kBAAmB,mCACnBC,YAAa,wBACbnuC,iBAAkB,mCAClBouC,kBAAmB,kCACnBC,kBAAmB,8BACnB3xC,kBAAmB,8BACnBn3B,sBAAuB,8BACvBi7D,QAAS,uCACTC,aAAc,wCACdC,cAAe,yCACfC,gBAAiB,wCACjBC,aAAc,0CACdC,iBAAkB,0CAClBC,qBAAsB,yCACtBC,mBAAoB,4CACpBC,uBAAwB,2CACxBvkC,yBAA0B,qDAC1BwkC,yBAA0B,qDAC1Bq3B,0BAA2B,sDAC3B9yF,kBAAmB,4CACnB68B,gBAAiB,gDACjBC,aAAc,+CACdC,kBAAmB,8CACnB+rC,gBAAiB,gCACjBC,kBAAmB,kBACnBC,kBAAmB,yBACnB9oE,wBAAyB,kCACzBC,6BAA8B,uCAC9B8oE,wBAAyB,4CACzBhsC,UAAW,oCACXisC,6BACI,4EACJC,sBAAuB,oEACvBC,8BACI,0EACJC,KAAM,qBACNC,SAAU,sBACVC,WAAY,gCACZC,SAAU,0CACVC,OAAQ,8BACRC,SAAU,iDACVC,IAAK,2BACLjtC,IAAK,kBACLktC,YAAa,oBACb5P,SAAU,yCAGDnwB,GAAkB,CAC3B/pC,GAAUspE,8BACVtpE,GAAUqpE,sBACVrpE,GAAUupE,KACVvpE,GAAUopE,6BACVppE,GAAUwpE,SACVxpE,GAAUypE,WACVzpE,GAAU0pE,SACV1pE,GAAU2pE,OACV3pE,GAAU4pE,SACV5pE,GAAU6pE,KAgED90C,IAnCL/0B,GAAUG,2BACVH,GAAUo3B,kBACVp3B,GAAUC,sBACVD,GAAUE,kBACVF,GAAUI,wBACVJ,GAAUK,6BAIVL,GAAUg9B,aACVh9B,GAAU+8B,gBACV/8B,GAAUi9B,kBACVj9B,GAAUipE,kBAEFjpE,GAAUm9B,UAChBn9B,GAAU48B,IAMA58B,GAAUG,2BAA4BH,GAAU2oE,qBAChD3oE,GAAUkpE,kBAAmBlpE,GAAUK,6BAEnDL,GAAUo3B,kBACVp3B,GAAUC,sBACVD,GAAU6oE,YACV7oE,GAAU8oE,kBAEE9oE,GAAU+8B,gBAAiB/8B,GAAUg9B,aAAch9B,GAAUi9B,kBACtEj9B,GAAU47D,KACR57D,GAAU8pE,YAIyB,iBAEnC70C,GAAyC,wBAGzCD,GAA0C,kBCnLvC,SAAAhhC,GAAoBl+M,EAAsB,IACtD,OAAOA,EAASpR,MAAM1J,IAAMi4T,ODuCAp3T,ECvCgBb,EDwCrCk6I,QAAQr5I,EAAQrT,MAAQsqU,GAAyB1yU,SAASyb,EAAQrT,OADtE,IAAyBqT,CCvCkB,GAClD,CAKgB,SAAA++P,GAAkB9kP,EAAsB,IACpD,OAAOA,EAASpR,MAAM1J,IAAMk4T,ODoCFr3T,ECpCgBb,EDqCnCk6I,QAAQr5I,EAAQrT,MAAQuqU,GAAgB3yU,SAASyb,EAAQrT,OAD7D,IAAuBqT,CCpCkB,GAChD,CAKgB,SAAA0+P,GAA2BzkP,EAAsB,IACtD,OAAA4tN,GAAO5tN,IAAaA,EAASpR,MAAM0K,IAAQA,EAAGu7L,SACzD,CCXO,SAASozE,GAAcxwB,GACnB,OAAA5mQ,KAAK9B,MAAM0oQ,EACtB,CCpBO,SAASj1C,GACZzgD,GAEA,MAAMn7K,EAAqB,CAAC,EAC5B,IAAK,MAAMhJ,KAAOmkL,EACVA,EAAWnkL,IAA4B,UAApBmkL,EAAWnkL,KACvBgJ,EAAAhJ,GAAOmkL,EAAWnkL,IAG1B,OAAAgJ,CACX,C7bKO,SAASgiR,KAEZ,MAAM1gB,EAAiB7gQ,UAAUu6E,SACjC,IAAKsmL,EAEM,cAEL,MAAAtmL,EAAWsmL,EAAet4O,cAM5B,OAAAgyD,EAAS55C,QAAQ,WAAY,GAAM45C,EAAS55C,QAAQ,QAAa,EAC1D,MAEP45C,EAAS55C,QAAQ,QAAS,GAAM45C,EAAS55C,QAAQ,QAAa,EACvD,MAEJ,KACX,CAGO,SAAS2iM,KACZ,QAE0B,oBAAXruO,UACN,iBAAkBA,QACdA,OAAOsuO,eACgB,oBAAbllN,UACPA,oBAAoBppB,OAAOsuO,mBAGd,oBAAdvjO,YAEN/K,OAAO+K,UAAUwjO,iBAAkBvuO,OAAO+K,UAAUyjO,iBAGjE,CAmBO,SAASqzE,KACZ,MAAyB,QAAlBv1B,IACX,C8b9EA,IAAIy0D,IAAa,EAiBV,MAAMnwG,GAAe,CAIxBC,QAASA,CACLpN,EAQAjJ,KAOc,CACdG,YAAaH,EAAQG,YACrB6jD,iBAAkBhkD,EAAQgkD,iBAC1BltC,YAAa9W,EAAQ8W,YACrBa,aAAc3X,EAAQ2X,aACtBzuN,OAAQ+/M,EAAgBlD,SACxBkrD,MAAOhoD,EAAgBxiK,UACvBoyK,QAAS5P,EAAgBwE,YACzBqL,WAAY7P,EAAgBsO,eAC5BzuN,MAAOmgN,EAAgBngN,MACvB09T,aAAcv9G,EAAgBu9G,aAC9BhxG,OAAQxV,EAAQyV,gBAMpBgxG,QAAU74U,IA3Ed,IAAA4yB,EAAA6kF,EAAA+F,EAAAC,EAAAC,EAAAS,EAmGQ,MAAM26N,EAAiB,OAAAlmT,EAAA5yB,EAAQoyN,QAAQ2mH,sBAAiB,EAAAnmT,EAAAz4B,QACnDoxB,GAAwB,mBAAlBA,EAAEs+M,cACX,GAEK,OACHtX,YAAavyN,EAAQoyN,QAAQ6oC,aAC7B/xB,YAAalpO,EAAQoyN,QAAQ8W,YAC7Ba,aAA8B,MAAhB+uG,OAAgB,EAAAA,EAAA/uG,aAC9BqsC,iBAAkC,MAAhB0iE,OAAgB,EAAAA,EAAAE,cAClCpxG,OAAQ5nO,EAAQoyN,QAAQwV,OACxBy7C,MAAOrjR,EAAQ64D,WAAa74D,EAAQmnO,WAAY,OAAA1vH,EAAAz3G,EAAQo0B,cAAS,EAAAqjF,EAAA4rK,OACjEp4C,QAASjrO,EAAQirO,UAAW,OAAAztH,EAAAx9G,EAAQo0B,cAAS,EAAAopF,EAAAytH,SAC7CC,WAAY,OAAAztH,EAAQz9G,EAAAo0B,cAAS,EAAAqpF,EAAAytH,WAC7B5vN,OAAQtb,EAAQsb,SAAU,OAAAoiG,EAAA19G,EAAQo0B,cAAS,EAAAspF,EAAApiG,QAC3CJ,MAAOlb,EAAQkb,QAAS,OAAAijG,EAAAn+G,EAAQo0B,cAAS,EAAA+pF,EAAAjjG,OAC7C,GAID,SAASqtN,GAAgBlrO,GAC5B,GAAIs7U,GACA,OAGE,kBACFpmH,EAAA,MACA8wD,EAAA,QACAp4C,EAAA,WACAC,EAAA,aACA0tG,EAAA,YACA1vG,EAAA,OACA5tN,EAAA,aACAyuN,EAAA,iBACAqsC,EAAA,MACAl7P,EAAA,OACA0sN,GACAvqO,EAGEg0I,EAAmCllI,KAAK9B,OAAM8V,IAE5C84T,EAAAA,GAAAA,IAAA,CAAEjhV,GAAI4vO,KACAsxG,EAAAA,GAAAA,MACRC,QAAQ,CACV,cAAe79T,EACf,aAAcJ,EACd,aAAcmoQ,EACd,eAAgBp4C,EAChB,kBAAmBC,EACnB,oBAAqB0tG,EACrB,oBAAqBrmH,EACrB,mBAAoB2W,EACpB,qBAAsBa,EACtB,yBAA0BqsC,EAC1B,WAAY/kI,IAGHsnM,IAAA,CACjB,CAeA,MAoBa3zF,GAAyBA,CAACppP,EAAc+oP,KAC3C,MAAAy0F,EArBgBv+U,KACtB,MAAMs+Q,EAAmB,CAAC,EAWnB,OATPpgR,OAAOiB,KAAKa,GAAQC,SAAS5B,IACnB,MAAAgC,EAAQL,EAAO3B,GACf8U,SAAc9S,GAEhBA,GAAmB,WAAT8S,GAA8B,YAATA,GAA+B,WAATA,IACrDmrQ,EAAKjgR,GAAOgC,EAAA,IAIbi+Q,CAAA,EASYkgE,CAAiB10F,GACpC20F,GAAAA,GAAwB19U,EAAO,CAAEu9Q,KAAMigE,GAAa,ECjKjD,SAASroB,GACZvwS,GAlCJ,IAAAoS,EAoCU,MAAA2mT,EACD,OAAA3mT,EAA6CpS,EAAAgtC,aAC7C56B,EAAApS,EACCnoB,EAAckhV,EAAOlhV,aACrB,UAAE0hI,KAAc1qH,GAASkqU,EACzBn9N,EAAQ,IAAI/jH,EAAYkhV,EAAOvrU,MAC9BjV,OAAAo2C,OAAOitE,EAAO/sG,GACZ2R,SAAAnU,KAAK69M,cAActuG,GAC5B57F,EAAEq8B,iBACN,CCnBA,MCPM4iL,GAAQ,2BAERC,GAAkB,CACpB,UAAW,UACX,UAAW,WAMC,SAAAI,GACZC,EACAzkN,EACA0kN,GAGA,IAAIj4N,EAAM,GAAG03N,MAASM,KAV1B,SAAwBzkN,GAzBxB,IAAAsX,EA2BW,OADuB,OAAAA,EAAA8sM,GAAgBpkN,IAAsBsX,EAAAtX,CAExE,CAOuC2kN,CAAe3kN,KAQ3C,OAPH0kN,IAEIj4N,GAAA,IACA,IAAIhP,OAAOyiC,QAAQwkM,IACdxuN,KAAK,EAACo/G,EAAO/zF,KAAS,GAAG+zF,KAASnJ,mBAAmB5qF,OACrDj5B,KAAK,MAEXmE,CACX,qFhL5CA,SAASyxU,IAAiS,OAApRA,EAAWzgV,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW++U,EAASj/U,MAAM0E,KAAMtE,UAAW,CiLAjV,SAAS8+U,IAAiS,OAApRA,EAAW1gV,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWg/U,EAASl/U,MAAM0E,KAAMtE,UAAW,CCAjV,SAAS++U,IAAiS,OAApRA,EAAW3gV,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWi/U,EAASn/U,MAAM0E,KAAMtE,UAAW,CCAjV,SAASg/U,IAAiS,OAApRA,EAAW5gV,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWk/U,EAASp/U,MAAM0E,KAAMtE,UAAW,CCAjV,SAASi/U,IAAiS,OAApRA,EAAW7gV,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWm/U,EAASr/U,MAAM0E,KAAMtE,UAAW,CCAjV,SAASk/U,IAAiS,OAApRA,EAAW9gV,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWo/U,EAASt/U,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAm/U,EAAgBA,EACd77J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAO6qS,EAAS,CACrD,YAAa,UACb37G,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,4GACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6JACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6IACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,8IChCL,SAASq3T,IAAiS,OAApRA,EAAWhhV,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWs/U,EAASx/U,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAq/U,EAAgBA,EACd/7J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAO+qS,EAAS,CACrD,YAAa,UACb77G,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,4GACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6JACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6IACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,8IChCL,SAASu3T,IAAiS,OAApRA,EAAWlhV,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWw/U,EAAS1/U,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAu/U,EAAgBA,EACdj8J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOirS,EAAS,CACrD/7G,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,+pBACHgzC,KAAM,aClBR,SAASykR,IAAiS,OAApRA,EAAWphV,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW0/U,EAAS5/U,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAy/U,EAAgBA,EACdn8J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOmrS,EAAS,CACrDj8G,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,+pBACHgzC,KAAM,aClBR,SAASwsP,IAAiS,OAApRA,EAAWnpT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWynT,EAAS3nT,MAAM0E,KAAMtE,UAAW,CCAjV,SAASwnT,IAAiS,OAApRA,EAAWppT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW0nT,EAAS5nT,MAAM0E,KAAMtE,UAAW,CCAjV,SAASynT,IAAiS,OAApRA,EAAWrpT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW2nT,EAAS7nT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAA0/U,EAAgBA,EACdp8J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOozQ,EAAS,CACrDlkF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,0TACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,qGCrBL,SAAS4/R,IAAiS,OAApRA,EAAWvpT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW6nT,EAAS/nT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAA2/U,EAAgBA,EACdr8J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOszQ,EAAS,CACrDpkF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,0TACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,qGCrBL,SAAS8/R,IAAiS,OAApRA,EAAWzpT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW+nT,EAASjoT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAA4/U,EAAgBA,EACdt8J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOwzQ,EAAS,CACrDtkF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,wkBACHgzC,KAAM,aClBR,SAASgtP,IAAiS,OAApRA,EAAW3pT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWioT,EAASnoT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAA6/U,EAAgBA,EACdv8J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAO0zQ,EAAS,CACrDxkF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,wkBACHgzC,KAAM,aClBR,SAASktP,IAAiS,OAApRA,EAAW7pT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWmoT,EAASroT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAA8/U,EAAgBA,EACdx8J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAO4zQ,EAAS,CACrD1kF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,qcACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,sJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,uJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iKCzBL,SAASogS,IAAiS,OAApRA,EAAW/pT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWqoT,EAASvoT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAA+/U,EAAgBA,EACdz8J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAO8zQ,EAAS,CACrD5kF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,qcACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,sJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,uJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iKCzBL,SAASsgS,IAAiS,OAApRA,EAAWjqT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWuoT,EAASzoT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAggV,EAAgBA,EACd18J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOg0Q,EAAS,CACrD9kF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,cACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,8RACHgzC,KAAM,aClBR,SAASwtP,IAAiS,OAApRA,EAAWnqT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWyoT,EAAS3oT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAigV,EAAgBA,EACd38J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOk0Q,EAAS,CACrDhlF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,6KACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,cACbtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,8RACHgzC,KAAM,aClBR,SAASytP,IAAiS,OAApRA,EAAWpqT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW0oT,EAAS5oT,MAAM0E,KAAMtE,UAAW,CCAjV,SAAS0oT,IAAiS,OAApRA,EAAWtqT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW4oT,EAAS9oT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAkgV,EAAgBA,EACd58J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOq0Q,EAAS,CACrD,YAAa,UACbnlF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,8KACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6SACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,omBACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,mPACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC,YAAa,MACb0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,+cACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,oWC3BL,SAAS4gS,IAAiS,OAApRA,EAAWvqT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW6oT,EAAS/oT,MAAM0E,KAAMtE,UAAW,CCAjV,SAAS4oT,IAAiS,OAApRA,EAAWxqT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW8oT,EAAShpT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAmgV,EAAgBA,EACd78J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOu0Q,EAAS,CACrD,YAAa,UACbrlF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,8KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6SACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,sbACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,oSACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,sVACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,kLACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,gdACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,ucACHgzC,KAAM,UChCR,SAAS8tP,IAAiS,OAApRA,EAAWzqT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW+oT,EAASjpT,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAogV,EAAgBA,EACd98J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOw0Q,EAAS,CACrD,YAAa,UACbtlF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,8KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6SACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,kUACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,0ZACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,IAAK,CACxC,YAAa,MACb0mB,KAAM,QACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,0wBACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,qnBC3BL,SAAS+gS,IAAiS,OAApRA,EAAW1qT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWgpT,EAASlpT,MAAM0E,KAAMtE,UAAW,CCAjV,SAAS+oT,IAAiS,OAApRA,EAAW3qT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWipT,EAASnpT,MAAM0E,KAAMtE,UAAW,CCAjV,SAASgpT,IAAiS,OAApRA,EAAW5qT,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWkpT,EAASppT,MAAM0E,KAAMtE,UAAW,CCAjV,SAASq0R,IAAiS,OAApRA,EAAWj2R,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWu0R,EAASz0R,MAAM0E,KAAMtE,UAAW,CCAjV,SAASs0R,IAAiS,OAApRA,EAAWl2R,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWw0R,EAAS10R,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAqgV,EAAgBA,EACd/8J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOigP,EAAS,CACrD,YAAa,UACb/wD,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,8KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6SACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,gPACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,snBACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,miBACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,miBACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC,YAAa,MACb0mB,KAAM,QACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,+GACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,guBCjCL,SAASuwN,IAAiS,OAApRA,EAAWl6O,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWw4O,EAAS14O,MAAM0E,KAAMtE,UAAW,CCAjV,SAASu4O,IAAiS,OAApRA,EAAWn6O,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWy4O,EAAS34O,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAsgV,EAAgBA,EACdh9J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOkkM,EAAS,CACrD,YAAa,UACbhV,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,4JACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,yTACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,8VACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,8fACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,kUACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,IAAK,CACxC,YAAa,MACb0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,0sBACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,gkCC9BL,SAASywN,IAAiS,OAApRA,EAAWp6O,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAW04O,EAAS54O,MAAM0E,KAAMtE,UAAW,CCAjV,SAASu0C,KAAiS,OAApRA,GAAWn2C,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIxB,KAAO2B,EAAc9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAAQuB,EAAOvB,GAAO2B,EAAO3B,GAAS,CAAG,OAAOuB,CAAO,EAAWy0C,GAAS30C,MAAM0E,KAAMtE,UAAW,CAEjV,IAAAugV,GAAgBA,EACdj9J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOE,GAAS,CACrDgvL,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,0IACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,kQACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,oQACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6NACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,+gBACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,+eCgCL,MAAMy4T,GAAgBA,CAClBC,EACAC,KACc,CACd,CAAC7pG,EAAAA,EAAOugD,UAAWqpD,EACnB,CAAC5pG,EAAAA,EAAOC,OAAQ2pG,EAChB,CAAC5pG,EAAAA,EAAOwgD,MAAOqpD,GAAYD,EAC3B,CAAC5pG,EAAAA,EAAO0gD,SAAUmpD,GAAYD,IAG5B9tC,GAAyC,CAC3Cz/R,QAASstU,IRlEGG,EACdr9J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAO00Q,EAAS,CACrDxlF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,sLACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,iXACHgzC,KAAM,eDbQ6lR,EACdt9J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOy0Q,EAAS,CACrDvlF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClD,YAAa,WACbtsB,EAAG,sLACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,eACbtsB,EAAG,iXACHgzC,KAAM,eSuDJ,6CAA8CylR,IhCpElCK,EACdv9J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOyqS,EAAS,CACrD,YAAa,UACbv7G,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,8KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6SACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,omBACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,ybACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,8jBACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC,YAAa,MACb0mB,KAAM,QACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,8cACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,y+BgC0CD,0BAA2By4T,GAAcN,GACzC,yBAA0BM,GAAcN,GACxC,oCAAqCM,GAAcN,GACnD,qCAAsCM,IdzE1BM,EACdx9J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOm0Q,EAAS,CACrD,YAAa,UACbjlF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,8KACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6SACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC,YAAa,MACb0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,+cACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,mWACassB,EAAAA,cAAoB,OAAQ,CAC5CtsB,EAAG,gWACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,yIACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,uWACHgzC,KAAM,Yc+CJ,wCAAyCylR,IZ3E7BO,EACdz9J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOs0Q,EAAS,CACrD,YAAa,UACbplF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,8KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6SACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,0YACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,ySACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6lBACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC,YAAa,MACb0mB,KAAM,QACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,kdACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,qpBYiDD,6BAA8By4T,GAAcL,GAC5C,iCAAkCK,GAAcL,GAEhD,sBAAuBK,GAAcJ,GACrC,uBAAwBI,GAAcJ,GACtC,yBAA0BI,GAAcJ,GAExC,uBAAwBI,GAAcH,GACtC,kCAAmCG,GAAcH,GACjD,yBAA0BG,GAAcH,GAExC,kBAAmBG,GAAcF,GACjC,0BAA2BE,GAAcF,GACzC,kBAAmBE,GAAcF,GACjC,8BAA+BE,IJ3FnBQ,EACd19J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOikM,EAAS,CACrD/U,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,6KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,uSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,+VACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,4fACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iUACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,yWACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,IAAK,CACxC,YAAa,MACb0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,0sBACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,kkCI+DD,yCAA0Cy4T,GAAcD,IACxD,6CAA8CC,GAAcD,IAC5D,gDAAiDC,GAAcD,IAC/D,4CAA6CC,IFhGjCS,EACd39J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOmkM,EAAS,CACrD,YAAa,UACbjV,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,4JACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,yTACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC,YAAa,QACb0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,miBACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6mBACassB,EAAAA,cAAoB,OAAQ,CAC5CtsB,EAAG,oaACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,+TACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,wWACHgzC,KAAM,YEsEJ,kBAAmBylR,IvBlGPU,EACd59J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOmzQ,EAAS,CACrD,YAAa,UACbjkF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,4JACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,yTACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,+/CACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,ihFACHgzC,KAAM,eDlBQomR,EACd79J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOkzQ,EAAS,CACrD,YAAa,UACbhkF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,4JACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,yTACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,+/CACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,ihFACHgzC,KAAM,ewBkFJ,0CAA2CylR,GACvCnB,EACAF,GAEJ,0CAA2CqB,GACvCf,EACAF,GAEJ,yCAA0CiB,GACtCT,EACAD,GAEJ,0CAA2CU,GACvCP,EACAD,GAGJ,mCAAoCQ,GAAcb,EAAuBD,GACzE,4EAA6Ec,GACzEb,EACAD,GAEJ,gCAAiCc,GAAcb,EAAuBD,GACtE,yEAA0Ec,GACtEb,EACAD,GAGJ,sBAAuBc,GAAcX,EAAsBD,GAC3D,2BAA4BY,GAAcX,EAAsBD,GAChE,oEAAqEY,GACjEX,EACAD,GAGJ,kBAAmBY,INvIPY,EACd99J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOggP,EAAS,CACrD9wD,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,0KACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,qSACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,ifACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6NACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,qlBACassB,EAAAA,cAAoB,OAAQ,CAC5CtsB,EAAG,mWACHgzC,KAAM,eDtBQsmR,EACd/9J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAO20Q,EAAS,CACrD,YAAa,UACbzlF,MAAO,6BACPjvL,QAAS,eACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,8KACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,6SACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,qfACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,+OACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,8jBACHgzC,KAAM,SACS1mB,EAAAA,cAAoB,OAAQ,CAC3C,YAAa,KACbtsB,EAAG,uWACHgzC,KAAM,eOgHJ,oCAAqCylR,IjNzIzBc,EACdh+J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAOwqS,EAAS,CACrD,YAAa,UACbt7G,MAAO,6BACPjvL,QAAS,aACR3zC,GAAqB0zC,EAAAA,cAAoB,IAAK,CAC/C,YAAa,sBACCA,EAAAA,cAAoB,OAAQ,CAC1Cz9B,MAAO,KACPipC,OAAQ,KACR2I,GAAI,OACJC,GAAI,OACJsS,KAAM,UACN,YAAa,uBACG1mB,EAAAA,cAAoB,IAAK,CACzC,YAAa,kCACCA,EAAAA,cAAoB,IAAK,CACvC,YAAa,+BACb0mB,KAAM,QACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,0NACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,wHACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,qRiNiHD,oBAAqBy4T,I/B3ITe,EACdj+J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAO0qS,EAAS,CACrDx7G,MAAO,6BACPjvL,QAAS,iBACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,iLACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,2VACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,ijBACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,uIACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,oFACassB,EAAAA,cAAoB,IAAK,KAAmBA,EAAAA,cAAoB,OAAQ,CACxFtsB,EAAG,+WACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,oJACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,0a+BgHD,kBAAmBy4T,I9B5IPgB,EACdl+J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAO2qS,EAAS,CACrDz7G,MAAO,6BACPjvL,QAAS,iBACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,iLACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,2VACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,IAAK,CACxC0mB,KAAM,WACQ1mB,EAAAA,cAAoB,OAAQ,CAC1CtsB,EAAG,ijBACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,uIACYssB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,oFACassB,EAAAA,cAAoB,IAAK,KAAmBA,EAAAA,cAAoB,OAAQ,CACxFtsB,EAAG,+WACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,kJACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,8LACHgzC,KAAM,YACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,oNACHgzC,KAAM,gB8B8GJ,wCAAyCylR,I7B7I7BiB,EACdn+J,SAAS,CAAC,KACP3iL,KACc0zC,EAAAA,cAAoB,MAAO4qS,EAAS,CACrD,YAAa,QACb17G,MAAO,6BACP3sN,MAAO,MACPipC,OAAQ,MACRvL,QAAS,aACR3zC,GAAqB0zC,EAAAA,cAAoB,OAAQ,CAClDtsB,EAAG,iLACHgzC,KAAM,6BACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,sLACHgzC,KAAM,6BACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iKACHgzC,KAAM,6BACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,iLACHgzC,KAAM,6BACS1mB,EAAAA,cAAoB,OAAQ,CAC3CtsB,EAAG,sGACHgzC,KAAM,iC6BwHK2mR,GAAgD,CACzD,SAAUlB,GAAcnB,EAAuBF,GAC/C,SAAUqB,GAAcf,EAAuBF,GAC/C,QAASiB,GAAcT,EAAsBD,GAC7C,SAAUU,GAAcP,EAAuBD,iPCjCnD,SAASrtE,EAAegvE,GApHxB,IAAA1pT,EAqHW,UACA0pT,EAGH7zB,SAAU,OAAA71R,EAAA0pT,EAAK7zB,UAAL71R,EAAiB0pT,EAAK3gH,QAExC,CAEY,IAAA4gH,EAAA,CAAAC,IACRA,EAAW,oBACXA,EAAkB,sBAClBA,EAAwB,8CACxBA,EAAgB,yCAJRA,GAAA,CAAAD,GAAA,IAOZ,MAAME,EAAgB7gV,IApItB,IAAAg3B,EAAA6kF,EAAA+F,EAAAC,EAAAC,EAqII,MAAMmtH,EAAU,UACZ,IAAAixC,EAAAA,EAAAA,IAAWlgR,GAAQ,CACnB,MAAM8gV,EAIF,CAAC,EAQE,OALPA,EAAU9xG,WAAa,OAAAnzH,EAAA,OAAM7kF,EAAAh3B,EAAA+gV,gBAAgB3vU,eAAtB,EAAA4lB,EAAgC3lB,QAAUwqG,EAAAozH,EACvD6xG,EAAA5xG,WAAa,OAAAttH,EAAM5hH,EAAAmE,SAAWy9G,EAAAqtH,EACxC6xG,EAAUE,WAAahhV,EAAMy/B,KACvBtiC,OAAOiB,KAAKm3N,EAAAA,IAAAA,IAAkBp4N,OAAOmtB,OAAOirM,EAAAA,IAAAA,IAAkB7tL,QAAQ1nC,EAAMy/B,OAC5EwvM,EACC6xG,CAAA,CAEJ,OACH9xG,WAAYC,EACZC,WAAY,OAAArtH,EAAM7hH,EAAAmE,SAAW09G,EAAAotH,EAC7B+xG,WAAY,OAAAl/N,EAAM9hH,EAAAwK,MAAQs3G,EAAAmtH,EAC9B,EAGSgyG,EAAqBA,EAC9Bx7T,UACA05M,cACA/sN,OACA2tN,UACA//N,QACAgsT,WACAa,WACA7gF,aAEA,MAAMuhF,EAAa9nS,GAAWumN,GAAU1gO,EAAO4hT,cAAcznS,EAASumN,GAE/D,OACHrlO,MAAO,IACA+qQ,EAAe,CACdvyC,cACAY,UACA3tN,OACAqtO,SAAU,oBACVotE,SAAsB,MAAZA,EAAYA,EAAA9sF,EACtB5zN,IAAKq1B,SAAS6X,KACd6qD,MAAO,OAEPlkG,GAAS6gV,EAAa7gV,OAE1BylB,GAAW,CAAEymC,QAAS5gD,EAAOs/S,aAAanlS,OAC1CumS,GAAY,CAAEl0K,GAAI,CAAEk0K,aACxB5+E,OAAQ,IACAmgF,GAAc,CACdC,OAAQ,CAAEC,aAAcF,EAAWH,YAAa7/E,UAAWggF,EAAW1vS,QAGlF,EAGSqjU,EAA6BA,EACtCz7T,UACAqyH,KACAk0F,aAEA,MAAMuhF,EAAajiT,EAAO4hT,cAAcznS,EAASumN,GAC1C,OACH9/K,QAAS5gD,EAAOs/S,aAAanlS,GAC7B2nN,OAAQ,CACJogF,OAAQ,CAAEC,aAAcF,EAAWH,YAAa7/E,UAAWggF,EAAW1vS,OAE1ElX,MAAO+qQ,EAAe,CAClBvyC,YAAarnF,EAAGinH,YAChBh/B,QAAS,OACT3tN,KAAM,QACNqtO,SAAU,oBACVotE,SAAU,OACV1gT,IAAKq1B,SAAS6X,OAElBy+F,GAAI,CACAitG,WAAYjtG,EAAGygC,cACfysE,cAAeltG,EAAG4gC,OAClBp+D,KAAMw9B,EAAGx9B,MAEjB,EAGS6mO,EAAyBA,CAClCj9O,EACAs0H,EACA1gF,KAEO,CACHnxI,MAAO+qQ,EAAe,CAClBvyC,YAAa,WACbY,QAAS,OACT3tN,KAAM,SACNqtO,SAAU,WACVotE,SAAU,OACV3oN,QACAs0H,QACArsN,IAAKq1B,SAAS6X,OAElBy+F,GAAI,CACAitG,WAAYjtG,EAAGygC,cACfysE,cAAeltG,EAAG4gC,OAClBp+D,KAAMw9B,EAAGx9B,QAQR8mO,EAAsCC,IACxC,CACHvpM,GAAI,CACAupM,kBAEJ16U,MAAO+qQ,EAAe,CAClBjyB,SAAU,SACVtgB,YAAa,SACb/sN,KAAM,QACN2tN,QAAS,kBACT8sF,SAAU,WAMTy0B,EAA0CA,CACnDD,EACAE,KAEO,CACHzpM,GAAI,CACAupM,kBAEJ16U,MAAO+qQ,EAAe,CAClBjyB,SAAU,SACVtgB,YAAa,SACb/sN,KAAM,SACN2tN,QAAS,qBACT8sF,SAAU,SAEdz/E,OAAQ,CACJ7tM,OAAQ,CACJgiT,mBAQHC,EAA6CA,EACtD/7T,UACAqyH,KACAk0F,SACAy1G,WAEA,MAAMl0B,EAAajiT,EAAO4hT,cAAcznS,EAASumN,GAE1C,OACH9/K,QAAS5gD,EAAOs/S,aAAanlS,GAC7B2nN,OAAQ,CACJogF,OAAQ,CAAEC,aAAcF,EAAWH,YAAa7/E,UAAWggF,EAAW1vS,MACtE0hB,OAAQ,CACJkiT,QAEJ3hV,QAAS,CACL1D,GAAIqpB,EAAQrpB,KAGpBuK,MAAO+qQ,EAAe,CAClBvyC,YAAa,SACbY,QAAS,eACT3tN,KAAM,QACNqtO,SAAU,SACVotE,SAAU,OACV1gT,IAAKq1B,SAAS6X,OAElBy+F,GAAI,CACAupM,eAAgBvpM,EAAG4pM,YACnB38F,WAAYjtG,EAAGygC,cACfysE,cAAeltG,EAAG4gC,OAClBp+D,KAAMw9B,EAAGx9B,MAEjB,EAISqnO,EAAsBA,CAC/BC,EACAC,KArUJ,IAAA7qT,EAuUI,MAAM8qT,EAAsB,IAAMF,EAAgBtjN,QAC5C8uI,EAAY,OAAAp2O,EAAA8qT,EAAoB51R,QAAQ9vD,IAAM46B,EAAA,GAE7C,UACA8qT,EACH51R,QAAS,IACF41R,EAAoB51R,QACvB95C,KAAM,WAEVg7N,OAAQ,CACJt1F,GAAI,CACAt2G,SAAUqgT,GAEd/hV,QAAS,CACL1D,GAAIgxQ,IAGZzmQ,MAAO,IACAm7U,EAAoBn7U,MACvB84O,SAAU,qBAElB,EAGSsiG,EAAmBA,EAC1Bl1B,WAAU1tF,cAAaY,UAAS3tN,QAClCsmK,KAEO,CACH00D,OAAQ,CACJt1F,GAAI,CACAktG,cAAetsE,IAGvB/xK,MAAO+qQ,EAAe,CAClBvyC,cACAY,UACA3tN,OACAqtO,SAAU,oBACVotE,SAAsB,MAAZA,EAAYA,EAAA9sF,EACtB77H,MAAO,EACP/3F,IAAKq1B,SAAS6X,SAKb2oS,EAAqBA,EAC5Bn1B,WAAU1tF,cAAaY,UAAS3tN,QAClC2mP,KAEO,CACH3rB,OAAQ,CACJt1F,GAAI,CACAv5I,OAAQw6P,IAGhBpyP,MAAO+qQ,EAAe,CAClBxtK,MAAO,EACPi7H,cACAY,UACA3tN,OACAqtO,SAAU,oBACVotE,SAAsB,MAAZA,EAAYA,EAAA9sF,EACtB5zN,IAAKq1B,SAAS6X,SA0Bb4oS,EAAwBA,EACjC3qI,QACA81D,YACArtC,UACAiM,aAEA,MAAMuhF,EAAaj2G,GAAS00B,GAAU1gO,EAAO4hT,cAAc51G,EAAO00B,GAE3D,OACHrlO,MAAO,IACA+qQ,EAAe,CACdvyC,YAAa,MACbY,UACA3tN,KAAM,QACNqtO,SAAU,kBACVotE,SAAU9sF,EACV5zN,IAAKq1B,SAAS6X,QAGtB6S,QAAS5gD,EAAOs/S,aAAatzG,GAC7Bx/D,GAAI,CACAk0K,SAAU,QAEd5+E,OAAQ,CACJ91B,MAAO,CACHr4M,OAAQ,aACRwuT,aAAc,cAElB3tT,QAAS,CACL1D,GAAIgxQ,MAEJmgD,GAAc,CACdC,OAAQ,CACJC,aAAcF,EAAWH,YACzB7/E,UAAWggF,EAAW1vS,QAItC,EA8EEvS,EAAS,IA3Ef,MAAA7O,WAAAA,GACe,KAAAmD,UAAA,EAEX,KAAQiqT,cAAe,EAEvB,cAAInpT,GACA,OAAO2C,KAAK4mT,iBAAA,CAGhB,eAAIb,GACA,OAAO/lT,KAAKwmT,YAAA,CAGhB,YAAIlmI,GACO,OAAAtgL,KAAKwmT,eAAiBxmT,KAAKzD,QAAA,CAGtC+8M,IAAAA,CAAKt9L,GACIhc,KAAKwmT,eACD,KAAAI,kBAAoB,IAAIviT,EAAAA,cAAiB2X,GAC9Chc,KAAKwmT,cAAe,EACxB,CAGJe,YAAAA,CAAanlS,GACL,IAAArT,EAEJ,MAAMhW,EAAKqpB,EAAQrpB,GAAGqvB,MAAM,KAAKV,MAc1B,OAZHtF,EAAQskQ,UACD33Q,EAAA,UACAqT,EAAQs3N,SACR3qO,EAAA,SACAqT,EAAQulS,OACR54S,EAAA,QACA62Q,EAAAA,EAAAA,IAAQxjQ,GACRrT,EAAA,QACAqT,EAAQq9P,YACR1wQ,EAAA,WAGJ,CACHs6S,OAAQjnS,EAAQknS,UAChB7iR,UAAWrkB,EAAQqkB,UACnB1tC,KACA4zN,SAAUvqM,EAAQiiO,UAElBt1O,OACJ,CAGJ86S,aAAAA,CAAcznS,EAAyBumN,GA5f3C,IAAAh1M,EA6fc,MAAAnZ,EAAO,OAAAmZ,EAAQvR,EAAA0nS,kBAAkB5gR,MAAMxf,GAAMA,EAAE3wB,KAAO4vO,UAAS,EAAAh1M,EAAAnZ,KAErE,IAAIuvS,EAAc,OAQX,OAPH3nS,EAAQynO,cAAc33B,EAAAA,IAAAA,GAAe83F,QACvBD,EAAA,WAEd3nS,EAAQynO,cAAc33B,EAAAA,IAAAA,GAAeg2B,UACvB6hE,EAAA,QAGX,CACHA,cACAvvS,OACJ,CAGJvb,SAAAA,CAAUoiE,GA7gBd,IAAA1tC,EA8gBY3zB,KAAKsgL,WACA,OAAA3sJ,EAAA3zB,KAAK3C,aAALs2B,EAAiB10B,UAAUoiE,GACpC,GCveKw9Q,EAAiB,KAOxBjoH,EAA0D,CAC5DvuF,GAAIA,IAAM,gCACVwuF,GAAIA,IAAM,gCACVC,GAAIA,IAAM,gCACV7yK,GAAIA,IAAM,gCACV0kE,GAAIA,IAAM,gCACViX,GAAIA,IAAM,gCACVjqG,GAAIA,IAAM,gCACVkW,GAAIA,IAAM,+BACVkrL,GAAIA,IAAM,gCACV+nH,GAAIA,IAAM,gCACV5rM,GAAIA,IAAM,gCACV8jF,IAAKA,IAAM,gCACXC,GAAIA,IAAM,gCACV7jF,GAAIA,IAAM,gCACV8jF,GAAIA,IAAM,+BACVn+N,GAAIA,IAAM,gCACVo+N,GAAIA,IAAM,gCACVpuG,GAAIA,IAAM,gCACVquG,GAAIA,IAAM,gCACVlnM,GAAIA,IAAM,+BACV6uT,GAAIA,IAAM,gCACVh6P,GAAIA,IAAM,gCACVgpC,GAAIA,IAAM,gCACVyS,GAAIA,IAAM,+BACV62F,GAAIA,IAAM,gCACV/jM,GAAIA,IAAM,+BACVgkM,GAAIA,IAAM,gCACVC,GAAIA,IAAM,gCACVC,GAAIA,IAAM,gCACVr6E,GAAIA,IAAM,+BACV6hM,GAAIA,IAAM,gCACVvnH,GAAIA,IAAM,gCACVrtG,GAAIA,IAAM,gCACV0kB,GAAIA,IAAM,gCACV4oF,GAAIA,IAAM,gCACVt6E,GAAIA,IAAM,gCACVzI,GAAIA,IAAM,gCACV,UAAWgjF,IAAM,gCACjB,UAAWC,IAAM,8BACjBC,GAAIA,IAAM,+BACVC,GAAIA,IAAM,iCAGP,SAASomF,EAAkB7hS,GACvB,OAAA07M,EAAkBpxN,SAAS0V,EACtC,CAEa,MAAA07M,EAAoBj+N,OAAOiB,KAAK67N,GAEhC6B,EAAiB/8M,UAC1B,IAAIyiS,EAAiB9hS,EAChB6hS,EAAkB7hS,KACX3f,QAAAkvC,KAAK,qBAAsBvvB,EAAQ,wBAC1B8hS,EAAA0gC,GAGf,MAAAI,GAAmB5gC,EAAAA,EAAAA,GAAqBF,IACxCtkF,EAAAA,EAAAA,GAAkBskF,GAClBj/S,QAAQC,QAAQ,KAEf,CAAEmjJ,EAAUs3E,SAAqB16N,QAAQkd,IAAI,EAChDo8M,EAAAA,EAAAA,IAAe2lF,GACfvnF,EAAgBunF,KAChB8gC,IAGJ,MAAO,IAAKrlH,KAAgBt3E,EAAS1zI,QAAS,EC5F5CswU,EAA4B,eAE3B,SAAS9I,IACZ,OAAO+I,EAAAA,EAAAA,IAAqB,CAAEh7S,OAAQ+6S,GAC1C,CAEgB,SAAA/tG,EAAmBnJ,EAAqB/wH,GACpD,OAAOmoO,EAAAA,EAAAA,IAAyB,CAAEp3G,cAAa7jM,OAAQ+6S,EAA2BjoO,QACtF,CCMO,SAASooO,EAAiBhjU,GAE7B,IAAKA,GAA4B,IAAlBA,EAAO1gB,OACX,OAOX,MAAMg9N,EAAet8M,EAAO4P,cAAczzB,QAAQ,KAAM,KACpD,GAAAmgO,EAAavvM,WAAW,MACpB,OAAAuvM,EAAavvM,WAAW,YAAc,CAAC,QAAS,SAASziB,SAASgyN,GAC3D,UAEA,UAGf,MAAMvuL,EAAmBuuL,EAAavwM,MAAM,SAAS,GAC9C,OAAA81R,EAAkB9zQ,GAAoBA,OAAmB,CACpE,CAuBgB,SAAAk1S,GAAc,OAAEjjU,IAC5B,MAAOugN,EAAe2iH,IAAoB1kU,EAAAA,EAAAA,UAA+B,MAEnE4+M,EAAS0X,EAAmB,iBAmB3B,OAjBP3zO,EAAAA,EAAAA,YAAU,KACN,IAAI+3U,GAAY,EAWhB,OAtCc,gBAAS,OAAEl5T,IAEvB,MAAAmjU,EAAgBH,EAAiBhjU,GAGvC,GAAImjU,EAIO,OAAEnjU,OAFeA,EAAO7jB,QAAQ,IAAK,KAEV8pJ,eADXm2E,EAAe+mH,IAEnC,CAEK9iV,QAAAkvC,KAAK,qBAAsBvvB,EAAQ,wBACrC,MAAAimI,QAAiBm2E,EAAeomH,GAC/B,OAAExiU,OAAQwiU,EAAgBv8L,WAAS,CAElD,CAYQm9L,CAAS,CAAEpjU,WACNvO,MAAM4xU,IACIjmH,IACF87G,GACgBgK,EAAA,IAAKG,GAEnB,IAEVpjU,MAAM5f,QAAQC,OAEZ,KACS44U,GAAA,EAChB,GACD,CAAC97G,EAAQp9M,IAELugN,CACX,iDCnFO,MAAM47G,EAAN,cAA8BrhF,YAGjC/9P,WAAAA,CAAY6hI,GACF,MAAAu9M,EAAgB38D,WAAY,CAAElhJ,SAAS,EAAMy8H,UAAU,EAAMn8H,UAAQ,GAJ5E,IAAM2mH,EAAN42F,EAAM52F,EACOi6B,WAAa,0DCU1B,MAAM8jE,EAA4C,CACrDjkF,YAAa,MACbrmF,OAAQ,aACRH,cAAe,OACfj+D,KAAM,OACN2oO,cAAc,EACdt1E,oBAAoB,EACpBb,yBAAyB,oFCdhB,MAAAo2E,GAAyB7gV,EAAAA,EAAAA,eAA+B2gV,EAAAA,GAErE,SAASG,EAAkBpkF,GACvB,OAAQA,GACJ,IAAK,MACM,YACX,IAAK,QACM,cACX,IAAK,SACM,eACX,IAAK,SACM,eACX,QACI,OAAOikF,EAAAA,EAAyBjkF,YAE5C,CAEA,SAASqkF,EACL1qK,GAEA,OAAQA,GACJ,IAAK,UACM,mBACX,IAAK,QACM,cACX,QACI,OAAOsqK,EAAAA,EAAyBtqK,OAE5C,CAEA,SAAS2qK,EAAoB/nG,GACzB,OAAQA,GACJ,IAAK,MACM,YACX,IAAK,OACM,aACX,QACI,OAAO0nG,EAAAA,EAAyBzqK,cAE5C,CAEA,SAAS+qK,EAAWhpO,GAChB,OAAQA,GACJ,IAAK,OACM,aACX,IAAK,OACM,aACX,QACI,OAAO0oO,EAAAA,EAAyB1oO,KAE5C,CAEO,SAASipO,EAAwB7jV,GACpC,MAAM2f,GAASze,EAAAA,EAAAA,UACX,KA9ER,IAAAo2B,EAAA6kF,EAAA+F,EA8Ee,OACHm9I,YAAaokF,EAAkBzjV,EAAMq/P,aACrCrmF,OAAQ0qK,EAAa1jV,EAAMg5K,QAC3BH,cAAe8qK,EAAoB3jV,EAAM64K,eACzCj+D,KAAMgpO,EAAW5jV,EAAM46G,MACvBonO,YAAahiV,EAAMgiV,YACnBuB,aAAc,OAAAjsT,EAAMt3B,EAAAujV,eAAgBjsT,EACpC22O,mBAAoB,OAAA9xJ,EAAMn8G,EAAAiuQ,qBAAsB9xJ,EAChDixJ,wBAAyB,OAAAlrJ,EAAMliH,EAAAotQ,0BAA2BlrJ,EAC9D,GACA,CACIliH,EAAMotQ,wBACNptQ,EAAMujV,aACNvjV,EAAMiuQ,mBACNjuQ,EAAMq/P,YACNr/P,EAAMgiV,YACNhiV,EAAMg5K,OACNh5K,EAAM64K,cACN74K,EAAM46G,OAId,OAAAlnE,EAAAA,cAAQ8vS,EAAuBjiV,SAAvB,IAAoCvB,EAAOJ,MAAO+f,GAC9D,CC9EA,SAAwB2/O,IACpB,OAAOx+P,EAAAA,EAAAA,YAAW0iV,EACtB,2ECFA,SAAwBrkF,EACpBx+K,GAEO,gBAAuB3gF,GACpB,kBACFq/P,EAAA,OACArmF,EAAA,cACAH,EAAA,KACAj+D,EAAA,YACAonO,EAAA,aACAuB,EAAA,mBACAt1E,EAAA,wBACAb,KACGr5P,GACH/T,EAGA,OAAA0zC,EAAAA,cAACmwS,EAAAA,EAAA,CACGxkF,cACArmF,SACAH,gBACAj+D,OACAonO,cACAuB,eACAt1E,qBACAb,2BAEA15N,EAAAA,cAACitC,EAAkB,IAAI5sE,IAC3B,CAGZ,gVClCA,IAAI47O,EAAwF,KCgB5F,eAAsBm0F,EAAiBC,GAC5B,OACHC,oBAAqBA,IAAMD,EAAaC,sBACxCx3G,gBAAiBA,IAAMu3G,EAAav3G,kBACpCy3G,gBAAiBA,IAAMF,EAAaE,kBACpCC,kBAAmBA,IAAMH,EAAaG,oBACtCz0G,4BAA6BpwN,UACnB,MAAAyZ,QAAgBirT,EAAat0G,8BDrBxC,IACH00G,ECwBe,ODxBfA,ECsBkCrrT,EAAQ62N,uBDpBjBA,EAAAw0F,ECsBVrrT,CAAA,EAEXsrT,wBAAyBA,IAAML,EAAaK,0BAC5C7/B,oBAAqBA,IAAMw/B,EAAax/B,sBACxC18E,uBAAwBk8G,EAAav3G,kBACrCi9D,qBAAsBs6C,EAAaM,oBAE3C,EC1BAzgV,EAAAA,EAAAA,IAAU,CAAEm4G,oBAAoB,IAsBhC,MAAMuoO,EAAoBllL,QAAQ9iK,OAAOguO,WAGnCi6G,EAA2C,CAAC,YAAa,cAAe,aAExEC,EAAkD,CAAC,YAAa,cAEhEC,EAAyBA,CAAC5yL,EAAmB6yL,MACpB,UAAvB7yL,EAAOxnJ,cACHm6U,EAAsCl6U,SAASunJ,EAAOg6E,YACtDxrO,QAAQ2rB,MAAM,UAAU04T,iBAA2B7yL,EAAOg6E,8BACnD,IAKnB,eAAsBE,EAAcl6E,GAChC,MAAM2/B,EAAM8pJ,EAAAA,EAAahH,KACzB,GAAI9iJ,EAAK,CACL,MAAM,MAAEu2F,GAAUv2F,EAAIgqJ,YACtB,GAAIzzD,GAASw8D,EAAgCj6U,SAASy9Q,GAAQ,CAClD1nR,QAAAw/C,KAAK,0CAA0CkoO,OACjD,cAAE48D,EAAA,OAASC,EAAQC,WAAAA,EAAA,aAAYC,GAAiBtzJ,EAAIgqJ,YACrDpwG,aAECu5G,GAAWC,GAAUC,GAAcC,GACrCtzJ,EAAIsiJ,aAAa,CACb1oG,aAAc,CACVu5G,SAAS,EAGTC,QAAQ,EAGRC,YAAY,EAGZC,cAAc,IAG1B,CAGJ,aADMtzJ,EAAIuzJ,uBAAuBt5O,EAAAA,IAC1Bq4O,EAAiBtyJ,EAAG,CAG/B,MAmDM,2BAAEwzJ,SAAqC,gCACvCntH,QAAYmtH,EACd,CACIC,cAAe,CAEX,cAvDa,IAAIC,gBAAgB5oV,OAAOwlC,SAASjC,QACvBxiC,IAAI,yBAElCgD,QAAQ2rB,MAAM,mDACP,GAGiB0jM,aAAaC,QAAQ,yBAE7CtvN,QAAQ2rB,MAAM,gDACP,GAGJy4T,EAAuB5yL,EAAQ,WA2C9B,kBAvCa,IAAIqzL,gBAAgB5oV,OAAOwlC,SAASjC,QACvBxiC,IAAI,6BAElCgD,QAAQ2rB,MAAM,uDACP,GAGiB0jM,aAAaC,QAAQ,6BAE7CtvN,QAAQ2rB,MAAM,oDACP,GAGJy4T,EAAuB5yL,EAAQ,eA2B9B,cAvBa,IAAIqzL,gBAAgB5oV,OAAOwlC,SAASjC,QACvBxiC,IAAI,yBAElCgD,QAAQ2rB,MAAM,qEACP,GAGiB0jM,aAAaC,QAAQ,yBAE7CtvN,QAAQ2rB,MAAM,kEACP,GAGJy4T,EAAuB5yL,EAAQ,6BAW9B,wBAAwB,EACxB,wBAAyByyL,EACzB,6BAA8BA,EAC9B,yBAA0BA,GAE9Ba,UAAWtzL,EAAOg6E,SAClBlnO,YAAoC,SAAvBktJ,EAAOxnJ,YAAyBwrN,EAAAA,IAAAA,GAAQuvH,WAAavvH,EAAAA,IAAAA,GAAQwvH,MAC1EC,QAASzzL,EAAOy6E,OAChBi5G,6BAA6B,EAC7BC,aAAc3zL,EAAO4zL,YACrBxnH,OAAQpsE,EAAO7xI,OACf0lU,kBAAmB,CACfC,WAAY9zL,EAAOt0F,UACnBqoR,iBAAkB/zL,EAAOrvJ,iBAE7BqjV,kBAAmBh0L,EAAOi0L,gBAE9B,CAAEC,mBAAoBl0L,EAAOs6E,eAIjC,OADAtU,EAAImuH,eAAev6O,EAAAA,IACZq4O,EAAiBjsH,EAC5B,CAEa,MAAAouH,GAAatjV,EAAAA,EAAAA,eAAiC,MAC9CiwO,EAAcqzG,EAAW1kV,SAE/B,SAAS2kV,EAAkBlmV,GACxB,kBACFylV,EAAA,eACAK,EAAA,SACAj6G,EAAA,YACAxhO,EAAA,OACA+yN,EAAA,OACAp9M,EAAA,UACAu9C,EAAA,gBACA/6D,EAAA,aACA2pO,EAAA,OACAG,GACAtsO,EACEk7G,EAAUl7G,EAAMk7G,SAAW76G,QAAQC,OAClCigO,EAAe2iH,IAAoB1kU,EAAAA,EAAAA,UAA4B,MA0C/D,OAxCPrd,EAAAA,EAAAA,YAAU,KACN,IAAI+3U,GAAY,EAsBhB,OApBcntG,EAAA,CACV05G,cACAK,iBACAj6G,WACAxhO,cACA2V,SACAu9C,YACA/6D,kBACA2pO,eACAG,WAEC76N,MAAMomN,IACH,MAAAuF,GAAAA,IACK87G,GACDgK,EAAiBrrH,EAEd,IAEV53M,MAAMi7F,GAEJ,KACSg+N,GAAA,EAChB,GACD,CACCuM,EACAK,EACAj6G,EACAxhO,EACA+yN,EACAp9M,EACAk7F,EACA39C,EACA/6D,EACA2pO,EACAG,IAGG/L,CACX,CCxNO,SAASuwE,IACN,MAAAj5E,GAAM/2N,EAAAA,EAAAA,YAAWmlV,GAEvB,IAAKpuH,EACK,UAAI/tN,MAAM,6BAGb,OAAA+tN,CACX,CCRO,SAASsuH,EAASp+G,GACrB,MAAMlQ,EAAMi5E,KACL9oE,EAAOo+G,IAAY5nU,EAAAA,EAAAA,eAAqC,GAaxD,OAXPrd,EAAAA,EAAAA,YAAU,KACF4mO,EACKlQ,EAAIgQ,iBAAiBid,oBAAoB/c,GAASt2N,MAAM7K,IACzDw/U,EAASx/U,EACF,IAGXw/U,OAAS,EAAS,GAEvB,CAACr+G,EAASlQ,EAAIgQ,mBAEVG,CACX,CCRO,MAAMq+G,EAAoB,GAE3BC,EAA6C,CAC/CjtF,WAAY,mBACZxnG,OAAQ,CAAEo6F,WAAY,KAqCnB,SAASs6F,GAAoB,QAChCztT,EAAA,OACA+4H,EAAS,CAAEo6F,WAAY,MAEvB,GAAKnzN,EAIE,OAAAA,EAAQytT,oBAAoB10L,EACvC,CAEgB,SAAA2iG,EACZ17N,EACA+4H,EAA0By0L,GAE1B,GAAKxtT,EAIL,OAAQ+4H,EAAOwnG,YACX,IAAK,mBACD,OAAOktF,EAAoB,CAAEztT,aAAY+4H,IAE7C,IAAK,iBACD,OA+BL,UAA6B,QAChC/4H,EAAA,OACA+4H,IAEA,GAAK/4H,EAIL,OAAOA,EAAQ0tT,kBApBnB,SAAgCjpF,GAC5B,OAAQA,GACJ,KAAKpsC,EAAAA,GAAAA,GAAkCi+F,MAC5B,SACX,KAAKj+F,EAAAA,GAAAA,GAAkC8+B,cAC5B,SACX,KAAK9+B,EAAAA,GAAAA,GAAkCg+F,IACvC,QACW,OAEnB,CAUqCs3B,CAAuB,MAAA50L,OAAA,EAAAA,EAAQ0rG,eACpE,CAxCmBmpF,CAAoB,CAAE5tT,aAAY+4H,IAE7C,QACW,OAEnB,CAEgB,SAAA80L,EACZ90L,EAAiC,CAAEwnG,WAAY,mBAAoBxnG,OAAQ,CAAEo6F,WAAY,MAxG7F,IAAA30N,EAAA6kF,EA0GI,MAAQ0rH,iBAAkB/uM,GAAYg4Q,IAE/B,OAAA5vS,EAAAA,EAAAA,UACH,IAAMqlV,EAAoB,CAAEztT,aAAY+4H,KAExC,CAAC/4H,EAAS,OAAAxB,EAAOu6H,EAAAA,aAAP,EAAAv6H,EAAe20N,WAAY,OAAA9vI,EAAA01C,EAAOA,aAAP,EAAA11C,EAAe+vI,mBAE5D,CAyBO,SAASmE,GAAa,QACzBv3N,EAAA,MACAktL,EAAQqgI,EAAA,QACR91F,GAAU,SACVv3E,EAAS,yBACTH,EAAgB,oBAChBt5K,EAAA,UACA01P,EAAYT,EAAa17N,KAErB,GAACA,GAAYv5B,EASV,OALMA,EAAO+pO,QAAQxwM,EAAQywM,mBAAmB1wD,EAAeG,GAASi8E,EAAW,CACtFjvC,QACA4gI,aAAcr2F,GAItB,CAEO,SAASs2F,GAAa,MACzB7gI,EAAQqgI,EAAA,QACR91F,GAAU,YACV0E,EAAA,OACAj8E,EAAS,yBACTH,EAAgB,oBAChBt5K,IAEM,uBAAEsoO,GAAqBipE,IAEtB,OAAA5vS,EAAAA,EAAAA,UACH,IACImvP,EAAa,CACTv3N,QAAS+uM,EACT7hB,QACAuqC,UACA0E,YACAj8E,SACAH,gBACAt5K,YAER,CAACsoO,EAAkB7hB,EAAOuqC,EAAS0E,EAAWj8E,EAAQH,EAAet5K,GAE7E,CCnJO,SAASs9P,GAAyB,QACrC/jO,EAAA,kBACAguT,EAAA,iBACArqF,EAAA,MACAz2C,EAAQqgI,EAAA,QACR91F,GAAU,SACVv3E,EAAS,wBACTH,EAAgB,oBAChBt5K,IAEI,IAACu5B,IAAYv5B,EACb,OAGJ,MAAMw0H,EAAQj7F,EAAQiuT,+BAA+BluK,EAAeG,GAC9Dn6K,EAASi6B,EAAQkuT,gCAAgC,CAAEF,oBAAmBrqF,qBAMrE,OALMl9P,EAAO+pO,QAAQv1G,EAAOl1H,EAAQ,CACvC+nV,aAAcr2F,EACdvqC,SAIR,CCtBA,MAAMihI,EAAwB,+BACxBC,EAAsB,yCAmCfjnE,EAAoBA,CAAC+gE,EAAsBt8U,KAC9C,qBAAE+kS,GAAmBqH,KACrB,SAAE3+I,EAAW,IAAK5iJ,UAAAA,EAAY,IAAG,SAAE02I,GAAavhJ,GAAW,CAAC,GAC3DoG,EAAMg1Q,IAAWthQ,EAAAA,EAAAA,UAAiB,KAClC2oU,EAAYC,IAAiB5oU,EAAAA,EAAAA,UAAmB,KAChDohQ,EAAiBynE,IAAsB7oU,EAAAA,EAAAA,aACxC,UAAEmpQ,EAAW5hQ,QAAAA,EAAA,SAASg6N,GArBLihG,KACnB,GAAgB,iBAATA,EACP,MAAO,CAAEjhG,SAAU,SAAU4nC,UAAWq5D,EAAMj7T,aAAS,GAGvD,IAAA4hQ,EAOJ,OALgBA,EADZq5D,GAAQA,EAAK32D,UACD,UAEA,OAGT,CAAE1C,YAAW5hQ,QAASi7T,EAAMjhG,SAAU,SAAU,EASdunG,CAAkBtG,GAErDhhE,GAAe9+Q,EAAAA,EAAAA,UAAQ,KAClBc,EAAAA,EAAAA,IAAU8wQ,IACbgN,EAAQhN,EAAQ,GACjB3gH,IACJ,CAAC2tH,EAAS3tH,IAEPo1L,GAAsB5hP,EAAAA,EAAAA,cACxBtmF,UACI,IAAImoU,GAAuB,EAC3B,MAAMpnV,EAAU2lB,EAOhB,GANiB,WAAbg6N,EACAynG,QAAoB/9C,EAAeg+C,6BAA6B30E,EAAS1yQ,GACrD,WAAb2/O,IACOynG,QAAMpnV,EAAQsnV,6BAA6B50E,KAGzC,IAAhB00E,EACO,oBAGf,CAACzhU,EAAS0jR,EAAgB1pD,IAGxB4nG,GAAoBhiP,EAAAA,EAAAA,cACrBmtK,GACOA,EAAQ/lP,WAAW,KACZ,eACA+lP,EAAQvhE,SAAS,KACjB,aACA01I,EAAsBx6T,KAAKqmP,GAC3B,aACAo0E,EAAoBz6T,KAAKqmP,GACzB,eACAA,EAAQxzQ,OAASiQ,EACjB,iBACA43U,EAAW78U,SAASwoQ,GACpB,iBADA,GAIf,CAACq0E,EAAY53U,IAGXw7G,GAAWplB,EAAAA,EAAAA,cACbtmF,UACQ,IAAA/e,EACE,MAAAsnV,EAAgCD,EAAkB70E,GACpD80E,EACQtnV,EAAAsnV,EACa,YAAdjgE,GAA2B7U,EAAQxzQ,SAClCgB,QAAMinV,EAAoBz0E,IAGtCu0E,EAAmB/mV,EAAM,GAE7B,CAACqnR,EAAWggE,EAAmBJ,KAGnCpmV,EAAAA,EAAAA,YAAU,KACD4pH,EAASjgH,EAAK,GACpB,CAACA,EAAMigH,EAAUo8N,EAAW7nV,SAE/B,MAAMq+S,GAAeh4M,EAAAA,EAAAA,cAChBm7K,IACQqmE,EAAW78U,SAASw2Q,IACrBsmE,EAAc,IAAID,EAAYrmE,GAAK,GAG3C,CAACqmE,IAGC5vF,GAAWr2P,EAAAA,EAAAA,UAAQ,KACrB,GAAI0+Q,GAAmB35H,GAAYA,EAAS25H,GAAkB,CACpD,MAAAhjL,EAAQqpD,EAAS25H,GACvB,MAAwB,mBAAVhjL,EAAuBA,EAAM,CAAE+qL,cAAe/qL,CAAA,IAEjE,CAAC+qL,EAAW1hI,EAAU25H,IAElB,OACH+9B,eACAr9S,MAAOs/Q,EACProB,WACAyoB,eACJ,ECrIG,SAASiI,EACZvrR,GACA,mBAAEmrV,GAA0C,CAAC,GAMvC,qBAAEp+C,GAAmBqH,IAErB5qR,GAAOhlB,EAAAA,EAAAA,UAAQme,SACZ3iB,QAGQ+sS,EAAeG,eAAeltS,GAFhCmG,QAAQC,aAAQ,IAG5B,CAACpG,EAAI+sS,KAEA7pS,MAAOQ,EAASE,MAAAA,EAAA,QAAOqyR,IAAYomD,EAAAA,EAAAA,SAAoC,EAAW7yT,GAYnF,OAVPhlB,EAAAA,EAAAA,UAAQ,KACAd,GAAWynV,GACNznV,EAAQynV,qBAAqB5nU,OAAM,KACpC5f,QAAQC,MAAM,kDAAmD,CAC7DotQ,UAAWttQ,EAAQ1D,IACrB,GACL,GAEN,CAAC0D,EAASynV,IAEN,CAAEvnV,QAAOqyR,UAASvyR,UAC7B,CCtCO,MAAM0nV,EAAa,QACbC,EAAuB,kBAU7B,SAASC,EACZ7pU,GAEA,OAAOA,EAAKzL,OAASo1U,CACzB,CAEO,SAASv+D,EAAQvhD,GArCxB,IAAA1wM,EAsCI,OAAO8nI,QAAS,OAAA9nI,EAAA0wM,EAAsBo+C,YAAtB,EAAA9uP,EAA6BuV,KAAKm7S,GACtD,CAEO,SAASC,EACZ9pU,GAEA,OAAOA,EAAKzL,OAASq1U,CACzB,CAEO,SAAStlE,EAAgBz6C,GA/ChC,IAAA1wM,EAgDI,OAAO8nI,QAAS,OAAA9nI,EAAA0wM,EAAsBo+C,YAAtB,EAAA9uP,EAA6BuV,KAAKo7S,GACtD,CAEO,MAAMtjC,EAAc,CACvBt6B,UA7BG,SAAmBriD,GACtB,OAAOA,EAAMqiD,SACjB,EA4BIjH,UA1BG,SAAmBp7C,GACtB,OAAOA,EAAMo7C,SACjB,GA2BY,IAAAwG,EAAA,CAAAs+D,IACRA,EAAQ,cACRA,EAAU,kBACVA,EAAe,4BAHPA,GAAA,CAAAt+D,GAAA,IAQL,SAASD,EAAewW,GAC3B,GAAIA,EAAQ/Z,MACJ,OAAA3D,EAAgB0d,GACT,eACA5W,EAAQ4W,GACR,QAEA,SAGnB,CAEa,MAAAwI,EAAgB3gE,IACnB,WAAEl9N,EAAA,YAAMrJ,EAAa2hR,UAAA+kE,EAAA,SAAW9qG,EAAUgtC,UAAA+9D,GAAcpgH,EAIxDqgH,EAAyBrgH,EAAMqgH,cAKrC,OAAIF,EACO1mV,GAAe,GAGtB4mV,GAAiBhrG,GAAY+qG,IAAct9U,EAAKR,SAAS,KAClDQ,GAAQrJ,GAAe,GAG3BqJ,EAAKihB,MAAM,KAAKrc,MAAM,GAAG,GAAIpH,KAAK,IAAI,EC9D1C,SAASk4Q,EAAWlgR,GACvB,OAAO8+J,QAAQ9+J,aAAiBwJ,OAAwB,aAAfxJ,EAAMwK,KACnD,CAUO,SAASs5Q,EAAab,GACrB,GAA0B,IAA1BA,EAAejkR,OACR,SAEL,MAAAymB,EAAUw9P,EAAe,GACxB,OAAA/C,EAAWz6P,EAAQzlB,QAAUylB,EAAQzlB,MAAMy/B,OAAS81L,EAAAA,IAAAA,GAAiByyH,kBAChF,EC7BA1kV,EAAAA,EAAAA,IAAU,CAAEm4G,oBAAoB,ICEhC,MAAMwsO,EAAoB,GAUnB,SAASz3D,GAAe,OAC3B93G,EAAS,qBACTH,EAAgB,oBAChB03E,GAAU,QACVvqC,EAAQuiI,EAAA,OACR1pV,GACa,CAAC,GACR,qBAAE4qS,GAAmBqH,IAgBpB,OAfM5vS,EAAAA,EAAAA,UAAQ,IACJuoS,EACR++C,WACAl/G,QACGmgE,EAAeg/C,gBAAgB5vK,EAAeG,GAC9Cn6K,GAAU4qS,EAAei/C,mBACzB,CACI9B,aAAcr2F,EACdvqC,WAKb,CAACyjF,EAAgB5wH,EAAeG,EAAQn6K,EAAQ0xP,EAASvqC,GAGhE,CClCA,MAAMszC,EAAoB,GAUnB,SAASqvF,GAAe,OAC3B3vK,EAAS,qBACTH,EAAgB,oBAChB03E,GAAU,QACVvqC,EAAQszC,EAAA,aACRsvF,EAAe,CAAC,GACH,CAAC,GACR,qBAAEr7C,GChBL,WAKH,MAAM11E,EAAMi5E,IACN5qR,GAAOhlB,EAAAA,EAAAA,UAAQ,IACV22N,EAAIqsH,qBACZ,CAACrsH,KAEAj4N,MAAO2tS,EAAA,MACPjtS,EAAA,QACAqyR,IACAomD,EAAAA,EAAAA,SAA+B,EAAW7yT,GACvC,OAAE5lB,QAAOqyR,UAAS4a,iBAC7B,CDC+Bs7C,GAiBpB,OAhBM3nV,EAAAA,EAAAA,UAAQ,KACjB,GAAKqsS,EAYE,OATMA,EAAeu7C,gBAAgBx/G,QACxCikE,EAAew7C,gBAAgBlwK,EAAeG,GAC9Cu0H,EAAey7C,iBAAiBJ,GAChC,CACIhC,aAAcr2F,EACdvqC,SAID,GACR,CAACunF,EAAgB10H,EAAeG,EAAQ4vK,EAAcr4F,EAASvqC,GAGtE,CErCA,SAASijI,EAAerlJ,GACb,OAAAA,EAAK94L,MAAQ84L,EAAK9/D,KAC7B,CAUA,SAASolN,EAAuB77T,GAjChC,IAAAiK,EAkCI,MAAM6xT,EACS,UAAX97T,EAAElP,OACU,YAAXkP,EAAE3a,MAAiC,uBAAX2a,EAAE3a,SAC1B,OAAA4kB,EAAEjK,EAAA+7T,mBAAF,EAAA9xT,EAAgBhtB,SAAS,kBAC9B,MACe,wBAAX+iB,EAAE3a,OAAmC2a,EAAEsqR,gBAAkBtqR,EAAEg8T,UAAYF,EAE/E,CAKA,SAASG,EAAkBt2T,EAAqBzpB,GA9ChD,IAAA+tB,EAAA6kF,EAAA+F,EAAAC,EA+CI,OAAQ,OAAAhG,EAAA,OAAA7kF,EAAA2xT,EAAej2T,SAAI,EAAAsE,EAAAmxP,qBAAnBtsK,EAA0C,IAAI+pI,cAClD,OAAA/jI,EAAA,OAAeD,EAAA+mO,EAAA1/U,SAAf,EAAA24G,EAAmBumK,qBAAuBtmK,EAAA,GAElD,CAMO,SAASw2L,EAAuB3wE,GACnC,MAAM,kBAAEylF,GAAsBzlF,GAAS,CAAC,EACxC,OAAO9mO,EAAAA,EAAAA,UAAQ,IACNusT,EAGEA,EAAkB5uT,OAAOqqV,GAAwB/sQ,KAAKmtQ,GAFlD,IAGZ,CAAC77B,GACR,aC/DAhyT,EAAOD,QAAU,8HCDjB,SAASo4C,IAYP,OAXAn4C,EAAOD,QAAUo4C,EAAWn2C,OAAOo2C,OAASp2C,OAAOo2C,OAAO/vC,OAAS,SAAU3E,GAC3E,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GACvB,IAAK,IAAIxB,KAAO2B,EACV9B,OAAOT,UAAUa,eAAeC,KAAKyB,EAAQ3B,KAC/CuB,EAAOvB,GAAO2B,EAAO3B,GAG3B,CACA,OAAOuB,CACT,EAAG1D,EAAOD,QAAQ0B,YAAa,EAAMzB,EAAOD,QAAiB,QAAIC,EAAOD,QACjEo4C,EAAS30C,MAAM0E,KAAMtE,UAC9B,CACA5D,EAAOD,QAAUo4C,EAAUn4C,EAAOD,QAAQ0B,YAAa,EAAMzB,EAAOD,QAAiB,QAAIC,EAAOD,mBCThGC,EAAOD,QALP,SAAgCoB,GAC9B,OAAOA,GAAOA,EAAIM,WAAaN,EAAM,CACnC,QAAWA,EAEf,EACyCnB,EAAOD,QAAQ0B,YAAa,EAAMzB,EAAOD,QAAiB,QAAIC,EAAOD,uBCL9G,OAOC,WACA,aAEA,IAAI+tV,EAAS,CAAC,EAAE1rV,eAEhB,SAASyvK,IAGR,IAFA,IAAI/vH,EAAU,GAELn+C,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAC1C,IAAIq5B,EAAMp5B,UAAUD,GAChBq5B,IACH8kB,EAAUisS,EAAYjsS,EAASksS,EAAWhxT,IAE5C,CAEA,OAAO8kB,CACR,CAEA,SAASksS,EAAYhxT,GACpB,GAAmB,iBAARA,GAAmC,iBAARA,EACrC,OAAOA,EAGR,GAAmB,iBAARA,EACV,MAAO,GAGR,GAAI5vB,MAAMwgC,QAAQ5Q,GACjB,OAAO60I,EAAWruK,MAAM,KAAMw5B,GAG/B,GAAIA,EAAIlxB,WAAa9J,OAAOT,UAAUuK,WAAakxB,EAAIlxB,SAASA,WAAW+C,SAAS,iBACnF,OAAOmuB,EAAIlxB,WAGZ,IAAIg2C,EAAU,GAEd,IAAK,IAAI3/C,KAAO66B,EACX8wT,EAAOzrV,KAAK26B,EAAK76B,IAAQ66B,EAAI76B,KAChC2/C,EAAUisS,EAAYjsS,EAAS3/C,IAIjC,OAAO2/C,CACR,CAEA,SAASisS,EAAa5pV,EAAO8pV,GAC5B,OAAKA,EAID9pV,EACIA,EAAQ,IAAM8pV,EAGf9pV,EAAQ8pV,EAPP9pV,CAQT,CAEqCnE,EAAOD,SAC3C8xK,EAAW/6J,QAAU+6J,EACrB7xK,EAAOD,QAAU8xK,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIH,CArEA,gCCUO,IAAIq8K,EAiBA19G,EAkBA29G,EAiBAC,EAQAC,EAOAC,EAYAC,EAKAC,EASAC,EAQAC,2JApGX,SAAWR,GAEPA,EAAoC,eAAI,kBAExCA,EAA6B,QAAI,UAEjCA,EAA4B,OAAI,SAGhCA,EAA2B,MAAI,QAE/BA,EAA2B,MAAI,OAClC,CAZD,CAYGA,IAAwBA,EAAsB,CAAC,IAKlD,SAAW19G,GACP,IAAIkP,EASAsd,GARJ,SAAWtd,GAEPA,EAAkB,MAAI,QAItBA,EAAkB,MAAI,OACzB,CAPD,CAOGA,EAAalP,EAAIkP,aAAelP,EAAIkP,WAAa,CAAC,IAErD,SAAWsd,GACPA,EAAwB,OAAI,SAC5BA,EAAwB,OAAI,SAC5BA,EAAsB,KAAI,MAC7B,CAJD,CAIGA,EAAkBxsB,EAAIwsB,kBAAoBxsB,EAAIwsB,gBAAkB,CAAC,GACvE,CAhBD,CAgBGxsB,IAAQA,EAAM,CAAC,IAElB,SAAW29G,GACPA,EAAgC,eAAI,kBACpCA,EAAyB,QAAI,UAC7BA,EAA+B,cAAI,kBACnCA,EAAyB,QAAI,UAC7BA,EAA6B,YAAI,eACjCA,EAAiC,gBAAI,SACrCA,EAA2B,UAAI,YAC/BA,EAAuB,MAAI,QAC3BA,EAA0B,SAAI,WAC9BA,EAAyB,QAAI,UAC7BA,EAAmC,kBAAI,qBACvCA,EAA0B,SAAI,WAC9BA,EAA2B,UAAI,YAC/BA,EAA8B,aAAI,eACrC,CAfD,CAeGA,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GACPA,EAA8B,SAAI,YAClCA,EAA4B,OAAI,SAChCA,EAA6B,QAAI,UACjCA,EAAgC,WAAI,cACpCA,EAAmC,cAAI,gBAC1C,CAND,CAMGA,IAAwBA,EAAsB,CAAC,IAElD,SAAWC,GACPA,EAAgC,SAAI,YACpCA,EAA8B,OAAI,SAClCA,EAA8B,OAAI,SAClCA,EAA6B,MAAI,OACpC,CALD,CAKGA,IAA0BA,EAAwB,CAAC,IAEtD,SAAWC,GACPA,EAA+B,UAAI,YACnCA,EAAiC,YAAI,cACrCA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,MACjCA,EAA8B,SAAI,WAClCA,EAA0B,KAAI,OAC9BA,EAAwB,GAAI,KAC5BA,EAA6B,QAAI,UACjCA,EAA8B,SAAI,UACrC,CAVD,CAUGA,IAAwBA,EAAsB,CAAC,IAElD,SAAWC,GACPA,EAAwC,UAAI,YAC5CA,EAAqC,OAAI,QAC5C,CAHD,CAGGA,IAAiCA,EAA+B,CAAC,IAEpE,SAAWC,GACPA,EAAoC,UAAI,aACxCA,EAAuC,aAAI,iBAC3CA,EAAiC,OAAI,SACrCA,EAAoC,UAAI,YACxCA,EAAmC,SAAI,YACvCA,EAAiC,OAAI,QACxC,CAPD,CAOGA,IAA6BA,EAA2B,CAAC,IAE5D,SAAWC,GACPA,EAA2C,cAAI,yBAC/CA,EAA6C,gBAAI,2BACjDA,EAA6C,gBAAI,2BACjDA,EAA8C,iBAAI,4BAClDA,EAA6C,gBAAI,0BACpD,CAND,CAMGA,IAAgCA,EAA8B,CAAC,IAElE,SAAWC,GACPA,EAA0B,IAAI,kBAC9BA,EAA4B,MAAI,oBAChCA,EAAoC,cAAI,6BAC3C,CAJD,CAIGA,IAAyBA,EAAuB,CAAC,IAC7C,MAAMC,EAAuB3sV,OAAOo2C,OAAOp2C,OAAOo2C,OAAOp2C,OAAOo2C,OAAOp2C,OAAOo2C,OAAOp2C,OAAOo2C,OAAOp2C,OAAOo2C,OAAOp2C,OAAOo2C,OAAO,CAAC,EAAGi2S,GAAwBC,GAAsBF,GAAsBG,GAA+BE,GAA8BC,GAAuBF,GAC3R,IAAInrH,EAMAurH,EAQAC,EAcA16E,EAyDA26E,EAkBAr5H,GAtGX,SAAW4N,GACPA,EAAYA,EAAiB,IAAI,GAAK,MACtCA,EAAYA,EAAoB,OAAI,GAAK,SACzCA,EAAYA,EAAkB,KAAI,GAAK,MAC1C,CAJD,CAIGA,IAAgBA,EAAc,CAAC,IAElC,SAAWurH,GACPA,EAAYA,EAAmB,MAAI,GAAK,QACxCA,EAAYA,EAAkB,KAAI,GAAK,OACvCA,EAAYA,EAAkB,KAAI,GAAK,OACvCA,EAAYA,EAAmB,MAAI,GAAK,QACxCA,EAAYA,EAAsB,SAAI,GAAK,UAC9C,CAND,CAMGA,IAAgBA,EAAc,CAAC,IAElC,SAAWC,GACPA,EAAsB,SAAI,QAC1BA,EAAwB,WAAI,QAC5BA,EAAsB,SAAI,QAC1BA,EAAuB,UAAI,QAC9B,CALD,CAKGA,IAAgBA,EAAc,CAAC,IASlC,SAAW16E,GAKPA,EAA6B,iBAAI,mBAMjCA,EAAuB,WAAI,aAO3BA,EAAiB,KAAI,OAOrBA,EAAmB,OAAI,SAMvBA,EAAuB,WAAI,aAC3BA,EAAyB,aAAI,eAM7BA,EAAmB,OAAI,SAIvBA,EAAiB,KAAI,OAIrBA,EAAiB,KAAI,OAIrBA,EAAqB,SAAI,WAIzBA,EAAgB,IAAI,KACvB,CAvDD,CAuDGA,IAAeA,EAAa,CAAC,IAEhC,SAAW26E,GAIPA,EAA6B,GAAI,KAMjCA,EAAiC,OAAI,SAKrCA,EAA4C,kBAAI,aACnD,CAhBD,CAgBGA,IAA6BA,EAA2B,CAAC,IAE5D,SAAWr5H,GACPA,EAA6B,iBAAI,SACjCA,EAA2B,eAAI,UAC/BA,EAA6B,iBAAI,OACpC,CAJD,CAIGA,IAAeA,EAAa,CAAC,kCCzOzB,IAAIs5H,EAQAC,EAaAC,ECrBAvsF,ECwBAwsF,ECPAC,EAKAC,EAOAC,ECZAC,ECjBAC,ECAAC,ECAAC,EAKAC,ECYAn5H,ECAAo5H,EA0FAC,EA6CAC,ECxJAC,ECAAC,EAYAC,ECZA,EAkCA,EClCAC,ECCAC,EAIAC,EAkCAC,EAIAC,EAqBAC,EAWAC,EC3EPC,ECkBOC,EAKAC,EAMAC,EC7BAC,EAMAC,EAUAC,EChBAC,EAIAC,EAKAC,EAQAC,EAKAC,EAKAC,EAWAC,EAcAC,EAKAC,EAQAC,EAUAC,EAKAC,EC/DAC,EAOAC,EAIAC,EC5BAC,GAWAC,GAkCAC,GAkBAC,GAWAC,GA8BAC,GCxGAC,GAMAC,GCLAC,GAOAC,GCRAC,GAeAC,GAQAC,qLvBtBX,SAAW3D,GACPA,EAAgBA,EAAwB,OAAI,GAAK,SACjDA,EAAgBA,EAA2B,UAAI,GAAK,YACpDA,EAAgBA,EAA8B,aAAI,GAAK,eACvDA,EAAgBA,EAA2B,UAAI,GAAK,YACpDA,EAAgBA,EAAyB,QAAI,GAAK,SACrD,CAND,CAMGA,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GACPA,EAA0BA,EAAgC,KAAI,GAAK,OACnEA,EAA0BA,EAAiD,sBAAI,GAAK,wBACpFA,EAA0BA,EAAiD,sBAAI,GAAK,wBACpFA,EAA0BA,EAAgD,qBAAI,GAAK,uBACnFA,EAA0BA,EAA8C,mBAAI,GAAK,qBACjFA,EAA0BA,EAA+C,oBAAI,GAAK,sBAClFA,EAA0BA,EAAmC,QAAI,GAAK,SACzE,CARD,CAQGA,IAA8BA,EAA4B,CAAC,IAK9D,SAAWC,GACPA,EAAaA,EAAoB,MAAI,GAAK,QAC1CA,EAAaA,EAAuB,SAAI,GAAK,WAC7CA,EAAaA,EAA6B,eAAI,GAAK,iBACnDA,EAAaA,EAAoC,sBAAI,GAAK,uBAC7D,CALD,CAKGA,IAAiBA,EAAe,CAAC,IC1BpC,SAAWvsF,GACPA,EAAgBA,EAA8B,aAAI,GAAK,eACvDA,EAAgBA,EAAyB,QAAI,GAAK,UAClDA,EAAgBA,EAA4B,WAAI,GAAK,aACrDA,EAAgBA,EAA0B,SAAI,GAAK,WACnDA,EAAgBA,EAA8B,aAAI,GAAK,eACvDA,EAAgBA,EAA4B,WAAI,GAAK,aACrDA,EAAgBA,EAAoC,mBAAI,GAAK,qBAC7DA,EAAgBA,EAA+B,cAAI,GAAK,gBACxDA,EAAgBA,EAA4B,WAAI,GAAK,YACxD,CAVD,CAUGA,IAAoBA,EAAkB,CAAC,ICc1C,SAAWwsF,GACPA,EAAcA,EAAuB,QAAI,GAAK,UAC9CA,EAAcA,EAAmB,IAAI,GAAK,MAC1CA,EAAcA,EAAwB,SAAI,GAAK,WAC/CA,EAAcA,EAA6B,cAAI,GAAK,eACvD,CALD,CAKGA,IAAkBA,EAAgB,CAAC,ICZtC,SAAWC,GACPA,EAAe,KAAI,OACnBA,EAAoB,UAAI,WAC3B,CAHD,CAGGA,IAAaA,EAAW,CAAC,IAE5B,SAAWC,GACPA,EAAuB,MAAI,QAC3BA,EAAwB,OAAI,SAC5BA,EAAwB,OAAI,SAC5BA,EAAyB,QAAI,SAChC,CALD,CAKGA,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAqB,UAAI,WAC5B,CAFD,CAEGA,IAAcA,EAAY,CAAC,ICd9B,SAAWC,GACPA,EAAoB,OAAI,KACxBA,EAAqB,QAAI,MACzBA,EAAqB,QAAI,MACzBA,EAAqB,QAAI,MACzBA,EAAqB,QAAI,MACzBA,EAAqB,QAAI,KAC5B,CAPD,CAOGA,IAAgBA,EAAc,CAAC,ICxBlC,SAAWC,GACPA,EAAIA,EAAW,MAAI,GAAK,QACxBA,EAAIA,EAAgB,WAAI,GAAK,YAChC,CAHD,CAGGA,IAAQA,EAAM,CAAC,ICHlB,SAAWC,GACPA,EAAgBA,EAA4B,WAAI,GAAK,aACrDA,EAAgBA,EAAiC,gBAAI,GAAK,kBAC1DA,EAAgBA,EAAyB,QAAI,GAAK,UAClDA,EAAgBA,EAAmC,kBAAI,GAAK,oBAC5DA,EAAgBA,EAAkC,iBAAI,GAAK,kBAC9D,CAND,CAMGA,IAAoBA,EAAkB,CAAC,ICN1C,SAAWC,GACPA,EAAeA,EAA0B,UAAI,GAAK,YAClDA,EAAeA,EAA2B,WAAI,GAAK,YACtD,CAHD,CAGGA,IAAmBA,EAAiB,CAAC,IAExC,SAAWC,GACPA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAqB,SAAI,GAAK,WACzCA,EAAWA,EAAoB,QAAI,GAAK,UACxCA,EAAWA,EAAmB,OAAI,GAAK,QAC1C,CALD,CAKGA,IAAeA,EAAa,CAAC,ICOhC,SAAWn5H,GACPA,EAASA,EAAc,IAAI,GAAK,MAChCA,EAASA,EAAc,IAAI,GAAK,MAChCA,EAASA,EAAe,KAAI,GAAK,OACjCA,EAASA,EAAe,KAAI,GAAK,OACjCA,EAASA,EAAgB,MAAI,GAAK,OACrC,CAND,CAMGA,IAAaA,EAAW,CAAC,ICN5B,SAAWo5H,GACPA,EAAaA,EAAsB,QAAI,GAAK,UAC5CA,EAAaA,EAAoC,sBAAI,GAAK,wBAC1DA,EAAaA,EAAiC,mBAAI,GAAK,qBACvDA,EAAaA,EAA6B,eAAI,GAAK,iBACnDA,EAAaA,EAA4B,cAAI,GAAK,gBAClDA,EAAaA,EAAgC,kBAAI,GAAK,oBACtDA,EAAaA,EAA6B,eAAI,GAAK,iBACnDA,EAAaA,EAA+B,iBAAI,GAAK,mBAIrDA,EAAaA,EAA0B,YAAI,GAAK,cAChDA,EAAaA,EAAsC,wBAAI,IAAM,0BAC7DA,EAAaA,EAAwD,0CAAI,IAAM,4CAC/EA,EAAaA,EAA2D,6CAAI,IAAM,+CAClFA,EAAaA,EAA6B,eAAI,IAAM,iBACpDA,EAAaA,EAAgC,kBAAI,IAAM,oBAMvDA,EAAaA,EAAuB,SAAI,IAAM,WAI9CA,EAAaA,EAA4B,cAAI,IAAM,gBACnDA,EAAaA,EAA0B,YAAI,IAAM,cACjDA,EAAaA,EAAgC,kBAAI,IAAM,oBACvDA,EAAaA,EAA0B,YAAI,IAAM,cAMjDA,EAAaA,EAAyB,WAAI,IAAM,aAIhDA,EAAaA,EAAwB,UAAI,IAAM,YAM/CA,EAAaA,EAAkC,oBAAI,IAAM,sBAKzDA,EAAaA,EAAgC,kBAAI,IAAM,oBAMvDA,EAAaA,EAA8B,gBAAI,IAAM,kBAKrDA,EAAaA,EAA2B,aAAI,IAAM,eAIlDA,EAAaA,EAA+B,iBAAI,IAAM,mBAItDA,EAAaA,EAA+B,iBAAI,IAAM,mBAItDA,EAAaA,EAAqC,uBAAI,IAAM,yBAK5DA,EAAaA,EAAsC,wBAAI,IAAM,0BAI7DA,EAAaA,EAA6C,+BAAI,IAAM,iCAIpEA,EAAaA,EAAwC,0BAAI,IAAM,2BAClE,CAxFD,CAwFGA,IAAiBA,EAAe,CAAC,IAEpC,SAAWC,GACPA,EAAgBA,EAAsB,KAAI,GAAK,OAC/CA,EAAgBA,EAAwC,uBAAI,GAAK,yBACjEA,EAAgBA,EAAyC,wBAAI,GAAK,0BAIlEA,EAAgBA,EAA2C,0BAAI,GAAK,4BAIpEA,EAAgBA,EAAwC,uBAAI,GAAK,yBAMjEA,EAAgBA,EAA6B,YAAI,GAAK,cAKtDA,EAAgBA,EAAgD,+BAAI,GAAK,iCAKzEA,EAAgBA,EAAkD,iCAAI,GAAK,mCAI3EA,EAAgBA,EAAwC,uBAAI,GAAK,yBAKjEA,EAAgBA,EAAqC,oBAAI,GAAK,sBAK9DA,EAAgBA,EAA6C,4BAAI,IAAM,8BACvEA,EAAgBA,EAA6C,4BAAI,IAAM,6BAC1E,CA3CD,CA2CGA,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAsC,yBAAI,kEAC1CA,EAA8B,iBAAI,sCAClCA,EAAgC,mBAAI,iEACpCA,EAA4B,eAAI,uDAChCA,EAAqC,wBAAI,6DACzCA,EAAgC,mBAAI,0DACpCA,EAAqC,wBAAI,0DACzCA,EAAwB,WAAI,kDAC5BA,EAA2B,cAAI,qDAClC,CAVD,CAUGA,IAAgBA,EAAc,CAAC,IClKlC,SAAWC,GACPA,EAA6BA,EAA4C,cAAI,GAAK,gBAClFA,EAA6BA,EAA2C,aAAI,GAAK,eACjFA,EAA6BA,EAA0C,YAAI,GAAK,aACnF,CAJD,CAIGA,IAAiCA,EAA+B,CAAC,ICJpE,SAAWC,GACPA,EAAiC,MAAI,QACrCA,EAAiC,MAAI,QACrCA,EAAqC,UAAI,YACzCA,EAAuC,YAAI,cAC3CA,EAAkC,OAAI,SACtCA,EAAoC,SAAI,WACxCA,EAAkC,OAAI,SACtCA,EAAqC,UAAI,YACzCA,EAA+B,IAAI,KACtC,CAVD,CAUGA,IAA8BA,EAA4B,CAAC,IAE9D,SAAWC,GACPA,EAAgC,YAAI,aACpCA,EAAgC,YAAI,aACpCA,EAAyB,KAAI,MAChC,CAJD,CAIGA,IAAuBA,EAAqB,CAAC,IChBhD,SAAWD,GACPA,EAAiC,MAAI,QACrCA,EAAqC,UAAI,YACzCA,EAAuC,YAAI,cAI3CA,EAAiC,MAAI,QAIrCA,EAAiC,MAAI,QAIrCA,EAAkC,OAAI,SAItCA,EAAoC,SAAI,WAIxCA,EAAkC,OAAI,SAItCA,EAAqC,UAAI,YAIzCA,EAA+B,IAAI,KACtC,CAhCD,CAgCG,IAA8B,EAA4B,CAAC,IAE9D,SAAWC,GACPA,EAAgC,YAAI,gBACpCA,EAAgC,YAAI,eACpCA,EAAyB,KAAI,MAChC,CAJD,CAIG,IAAuB,EAAqB,CAAC,ICtChD,SAAWC,GACPA,EAAiB,QAAI,6CACrBA,EAAY,GAAI,wCAChBA,EAAc,KAAI,0CAClBA,EAAmB,UAAI,+CACvBA,EAA6B,oBAAI,wDACjCA,EAAkB,SAAI,8CACtBA,EAAe,MAAI,2CACnBA,EAAmB,UAAI,+CACvBA,EAAc,KAAI,0CAClBA,EAAiB,QAAI,6CACrBA,EAAiB,QAAI,6CACrBA,EAAmB,UAAI,+CACvBA,EAAwB,eAAI,oDAC5BA,EAAsB,aAAI,kDAC1BA,EAAmB,UAAI,+CACvBA,EAAkB,SAAI,8CACtBA,EAAgB,OAAI,4CACpBA,EAAoB,WAAI,gDACxBA,EAAoB,WAAI,gDACxBA,EAAsB,aAAI,kDAC1BA,EAAa,IAAI,yCACjBA,EAA0B,iBAAI,gDAC9BA,EAAwB,eAAI,oDAC5BA,EAAwB,eAAI,oDAC5BA,EAAuB,cAAI,yDAC3BA,EAAsB,aAAI,0DAC1BA,EAA2B,kBAAI,uDAC/BA,EAA0B,iBAAI,sDAC9BA,EAAqB,YAAI,iDACzBA,EAAkB,SAAI,8CACtBA,EAAsB,aAAI,cAC1BA,EAAiB,QAAI,kBACrBA,EAA6B,oBAAI,sBACjCA,EAAgC,uBAAI,yBACpCA,EAAuB,cAAI,gBAC3BA,EAA2B,kBAAI,4CAC/BA,EAAsB,aAAI,uCAC1BA,EAAuB,cAAI,wCAC3BA,EAAuB,cAAI,wCAC3BA,EAAsB,aAAI,uCAC1BA,EAA0B,iBAAI,2CAC9BA,EAAoB,WAAI,qCACxBA,EAAuB,cAAI,wCAC3BA,EAAwB,eAAI,0CAC5BA,EAA4B,mBAAI,6CAChCA,EAAoC,2BAAI,qDACxCA,EAA4B,mBAAI,6CAChCA,EAA2B,kBAAI,4CAC/BA,EAAyB,gBAAI,0CAC7BA,EAAiC,wBAAI,oDACrCA,EAAmC,0BAAI,sDACvCA,EAAkC,yBAAI,qDACtCA,EAAsB,aAAI,OAC1BA,EAAsB,aAAI,OAC1BA,EAAkB,SAAI,mCACtBA,EAAkC,yBAAI,kDACtCA,EAAgC,uBAAI,gDACpCA,EAAgC,uBAAI,gDACpCA,EAAoC,2BAAI,mDACxCA,EAA0B,iBAAI,2CAC9BA,EAA0B,iBAAI,2CAC9BA,EAA6B,oBAAI,8CACjCA,EAAyB,gBAAI,0CAC7BA,EAAyB,gBAAI,0CAC7BA,EAA0B,iBAAI,2CAC9BA,EAAuC,8BAAI,+CAC3CA,EAA6B,oBAAI,8CACjCA,EAAkC,yBAAI,mDACtCA,EAAyB,gBAAI,0CAC7BA,EAAmC,0BAAI,qDACvCA,EAAoC,2BAAI,sDACxCA,EAA4B,mBAAI,6CAChCA,EAA0B,iBAAI,2CAC9BA,EAAgC,uBAAI,iDACpCA,EAA4B,mBAAI,6CAChCA,EAA6B,oBAAI,8CACjCA,EAA4B,mBAAI,6CAChCA,EAA2B,kBAAI,4CAC/BA,EAA4B,mBAAI,6CAChCA,EAAwC,+BAAI,wDAC5CA,EAAqC,4BAAI,oDAC5C,CAlFD,CAkFGA,IAAYA,EAAU,CAAC,ICjF1B,SAAWC,GACPA,EAA+B,YAAI,+BACtC,CAFD,CAEGA,IAAsBA,EAAoB,CAAC,IAE9C,SAAWC,GAIPA,EAAaA,EAAkB,IAAI,GAAK,MAQxCA,EAAaA,EAAoB,MAAI,GAAK,QAM1CA,EAAaA,EAAkB,IAAI,GAAK,MAKxCA,EAAaA,EAAoB,MAAI,GAAK,QAI1CA,EAAaA,EAA2B,aAAI,GAAK,eAIjDA,EAAaA,EAAqB,OAAI,GAAK,QAC9C,CAhCD,CAgCGA,IAAiBA,EAAe,CAAC,IAEpC,SAAWC,GACPA,EAA4B,OAAI,QACnC,CAFD,CAEGA,IAAwBA,EAAsB,CAAC,IAElD,SAAWC,GACPA,EAAmBA,EAA4B,QAAI,GAAK,UACxDA,EAAmBA,EAA8B,UAAI,GAAK,YAI1DA,EAAmBA,EAAkD,8BAAI,GAAK,gCAC9EA,EAAmBA,EAA2D,uCAAI,GAAK,yCACvFA,EAAmBA,EAAmD,+BAAI,GAAK,iCAI/EA,EAAmBA,EAA0D,sCAAI,GAAK,wCACtFA,EAAmBA,EAAqD,iCAAI,GAAK,mCACjFA,EAAmBA,EAA0E,sDAAI,GAAK,wDACtGA,EAAmBA,EAA0C,sBAAI,GAAK,uBACzE,CAhBD,CAgBGA,IAAuBA,EAAqB,CAAC,IAKhD,SAAWC,GACPA,EAAuBA,EAAgC,QAAI,GAAK,UAChEA,EAAuBA,EAAgC,QAAI,GAAK,UAChEA,EAAuBA,EAAuC,eAAI,GAAK,iBACvEA,EAAuBA,EAA2C,mBAAI,GAAK,qBAC3EA,EAAuBA,EAA2C,mBAAI,GAAK,oBAC9E,CAND,CAMGA,IAA2BA,EAAyB,CAAC,IAKxD,SAAWC,GACPA,EAAsC,aAAI,cAC1CA,EAAoC,WAAI,YACxCA,EAAoC,WAAI,YACxCA,EAAqC,YAAI,oBACzCA,EAAqC,YAAI,WAC5C,CAND,CAMGA,IAA4BA,EAA0B,CAAC,ICjF1D,SAAWC,GACPA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAgB,IAAI,GAAK,MACpCA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAkB,MAAI,GAAK,QACtCA,EAAWA,EAAmB,OAAI,GAAK,SACvCA,EAAWA,EAAkB,MAAI,IAAM,QACvCA,EAAWA,EAAmB,OAAI,IAAM,SACxCA,EAAWA,EAAiB,KAAI,IAAM,OACtCA,EAAWA,EAAoB,QAAI,KAAO,UAC1CA,EAAWA,EAAoB,QAAI,KAAO,UAC1CA,EAAWA,EAAsB,UAAI,KAAO,YAC5CA,EAAWA,EAA4B,gBAAI,MAAQ,kBACnDA,EAAWA,EAAyB,aAAI,MAAQ,cACnD,CAdD,CAcGA,IAAeA,EAAa,CAAC,ICIhC,SAAWC,GACPA,EAAwB,MAAI,QAC5BA,EAA2B,SAAI,UAClC,CAHD,CAGGA,IAAqBA,EAAmB,CAAC,IAE5C,SAAWC,GACPA,EAAwC,IAAI,MAC5CA,EAAyC,KAAI,OAC7CA,EAAyC,KAAI,MAChD,CAJD,CAIGA,IAAuCA,EAAqC,CAAC,IAEhF,SAAWC,GACPA,EAAkC,WAAI,cACtCA,EAAyC,kBAAI,qBAC7CA,EAAmC,YAAI,eACvCA,EAAiC,UAAI,aACrCA,EAAmC,YAAI,eACvCA,EAAkC,WAAI,cACtCA,EAAiC,UAAI,aACrCA,EAAgC,SAAI,WACpCA,EAAgC,SAAI,WACpCA,EAAoC,aAAI,gBACxCA,EAAgC,SAAI,WACpCA,EAAoC,aAAI,gBACxCA,EAAmC,YAAI,cACvCA,EAAiC,UAAI,YACrCA,EAAqC,cAAI,iBACzCA,EAAkC,WAAI,cACtCA,EAAkC,WAAI,cACtCA,EAAmC,YAAI,eACvCA,EAAiC,UAAI,aACrCA,EAA6C,sBAAI,0BACjDA,EAAiC,UAAI,aACrCA,EAAmC,YAAI,eACvCA,EAA+B,QAAI,UACnCA,EAAwC,iBAAI,oBAC5CA,EAAkC,WAAI,cACtCA,EAAmC,YAAI,eACvCA,EAAsC,eAAI,mBAC1CA,EAAqC,cAAI,kBACzCA,EAAwC,iBAAI,oBAC5CA,EAAkC,WAAI,cACtCA,EAA0C,mBAAI,uBAC9CA,EAA0C,mBAAI,uBAC9CA,EAAyC,kBAAI,sBAC7CA,EAAoC,aAAI,gBACxCA,EAA4C,qBAAI,yBAChDA,EAAyC,kBAAI,sBAC7CA,EAAqC,cAAI,iBACzCA,EAAiC,UAAI,aACrCA,EAAsC,eAAI,mBAC1CA,EAA6B,MAAI,QACjCA,EAAsC,eAAI,kBAC1CA,EAAuC,gBAAI,mBAC3CA,EAA+B,QAAI,WACnCA,EAA6C,sBAAI,0BACjDA,EAA6B,MAAI,QACjCA,EAAwC,iBAAI,oBAC5CA,EAA8B,OAAI,UAClCA,EAAmC,YAAI,cACvCA,EAAmC,YAAI,eACvCA,EAAyC,kBAAI,qBAC7CA,EAA8C,uBAAI,2BAClDA,EAA6C,sBAAI,0BACjDA,EAAqC,cAAI,iBACzCA,EAA2C,oBAAI,wBAC/CA,EAAsC,eAAI,kBAC1CA,EAAwC,iBAAI,qBAC5CA,EAAkC,WAAI,aACtCA,EAA+B,QAAI,UACnCA,EAA+B,QAAI,UACnCA,EAA6B,MAAI,QACjCA,EAAkC,WAAI,cACtCA,EAAsC,eAAI,kBAC1CA,EAAkC,WAAI,cACtCA,EAA8B,OAAI,SAClCA,EAAkC,WAAI,aACtCA,EAAmC,YAAI,gBACvCA,EAAoC,aAAI,iBACxCA,EAAyC,kBAAI,uBAC7CA,EAAsC,eAAI,mBAC1CA,EAAyC,kBAAI,uBAC7CA,EAAyC,kBAAI,uBAC7CA,EAAuC,gBAAI,oBAC3CA,EAAwC,iBAAI,qBAC5CA,EAAoC,aAAI,gBACxCA,EAA4C,qBAAI,yBAChDA,EAA4B,KAAI,OAChCA,EAAgC,SAAI,WACpCA,EAAgC,SAAI,YACpCA,EAA4B,KAAI,OAChCA,EAA4B,KAAI,OAChCA,EAA4B,KAAI,OAChCA,EAA+B,QAAI,UACnCA,EAAmC,YAAI,eACvCA,EAA2B,IAAI,MAC/BA,EAA+B,QAAI,WACnCA,EAAkC,WAAI,aACtCA,EAAuC,gBAAI,oBAC3CA,EAAwC,iBAAI,oBAC5CA,EAAoC,aAAI,gBACxCA,EAAgC,SAAI,WACpCA,EAAiC,UAAI,aACrCA,EAAwC,iBAAI,qBAC5CA,EAAqC,cAAI,iBACzCA,EAAuC,gBAAI,mBAC3CA,EAAyC,kBAAI,qBAC7CA,EAAiC,UAAI,aACrCA,EAA+B,QAAI,UACnCA,EAAqC,cAAI,iBACzCA,EAAoC,aAAI,gBACxCA,EAAgC,SAAI,WACpCA,EAA8B,OAAI,SAClCA,EAAoC,aAAI,eACxCA,EAA+B,QAAI,WACnCA,EAA+B,QAAI,UACnCA,EAAgC,SAAI,WACpCA,EAAkC,WAAI,cACtCA,EAAmC,YAAI,eACvCA,EAA8B,OAAI,SAClCA,EAAkC,WAAI,cACtCA,EAA8B,OAAI,SAClCA,EAA8B,OAAI,SAClCA,EAAkC,WAAI,cACtCA,EAAsC,eAAI,kBAC1CA,EAAwC,iBAAI,oBAC5CA,EAAuC,gBAAI,oBAC3CA,EAA8B,OAAI,SAClCA,EAAgC,SAAI,YACpCA,EAAmC,YAAI,eACvCA,EAA8B,OAAI,SAClCA,EAAoC,aAAI,gBACxCA,EAAoC,aAAI,gBACxCA,EAAqC,cAAI,iBACzCA,EAAqC,cAAI,iBACzCA,EAAmC,YAAI,eACvCA,EAAoC,aAAI,gBACxCA,EAA6B,MAAI,QACjCA,EAAwC,iBAAI,oBAC5CA,EAAuC,gBAAI,mBAC3CA,EAA+B,QAAI,UACnCA,EAAsC,eAAI,kBAC1CA,EAAiC,UAAI,YACrCA,EAAqC,cAAI,iBACzCA,EAAyC,kBAAI,sBAC7CA,EAA2C,oBAAI,wBAC/CA,EAAqC,cAAI,iBACzCA,EAAwC,iBAAI,oBAC5CA,EAAoC,aAAI,gBACxCA,EAAsC,eAAI,mBAC1CA,EAAsC,eAAI,iBAC7C,CA5ID,CA4IGA,IAA0BA,EAAwB,CAAC,ICzKtD,SAAWC,GACPA,EAA6B,QAAI,UACjCA,EAA6B,QAAI,UACjCA,EAA0B,KAAI,MACjC,CAJD,CAIGA,IAAwBA,EAAsB,CAAC,IAElD,SAAWC,GACPA,EAA8B,OAAI,SAClCA,EAAgC,SAAI,WACpCA,EAAgC,SAAI,WACpCA,EAA+B,QAAI,UACnCA,EAAiC,UAAI,YACrCA,EAAoC,aAAI,eACxCA,EAA6B,MAAI,OACpC,CARD,CAQGA,IAA0BA,EAAwB,CAAC,IAEtD,SAAWC,GACPA,EAAuC,UAAI,YAC3CA,EAAoC,OAAI,SACxCA,EAAmC,MAAI,QACvCA,EAA8C,iBAAI,mBAClDA,EAAkC,KAAI,MACzC,CAND,CAMGA,IAAgCA,EAA8B,CAAC,ICtBlE,SAAWC,GACPA,EAA8B,GAAI,IACrC,CAFD,CAEGA,IAA8BA,EAA4B,CAAC,IAE9D,SAAWC,GACPA,EAAuC,QAAI,UAC3CA,EAAuC,QAAI,SAC9C,CAHD,CAGGA,IAAkCA,EAAgC,CAAC,IAEtE,SAAWC,GACPA,EAA2B,QAAI,UAC/BA,EAA2B,QAAI,UAC/BA,EAA0B,OAAI,SAC9BA,EAAgC,aAAI,eACpCA,EAA2B,QAAI,SAClC,CAND,CAMGA,IAAsBA,EAAoB,CAAC,IAE9C,SAAWC,GACPA,EAAyB,OAAI,SAC7BA,EAA6B,WAAI,WACpC,CAHD,CAGGA,IAAqBA,EAAmB,CAAC,IAE5C,SAAWC,GACPA,EAAwB,OAAI,SAC5BA,EAA0B,SAAI,UACjC,CAHD,CAGGA,IAAoBA,EAAkB,CAAC,IAE1C,SAAWC,GAEPA,EAAoB,KAAI,OAExBA,EAA0B,WAAI,aAE9BA,EAA4B,aAAI,eAEhCA,EAAoB,KAAI,MAC3B,CATD,CASGA,IAAkBA,EAAgB,CAAC,IAEtC,SAAWC,GACPA,EAAwB,UAAI,GAC5BA,EAA0B,YAAI,cAC9BA,EAAwC,0BAAI,4BAC5CA,EAA8B,gBAAI,kBAClCA,EAAsB,QAAI,UAC1BA,EAAmB,KAAI,OACvBA,EAA6B,eAAI,iBACjCA,EAAqB,OAAI,SACzBA,EAAsB,QAAI,UAC1BA,EAA4B,cAAI,gBAChCA,EAAmC,qBAAI,sBAC1C,CAZD,CAYGA,IAAiBA,EAAe,CAAC,IAEpC,SAAWC,GACPA,EAAuB,QAAI,UAC3BA,EAAuB,QAAI,SAC9B,CAHD,CAGGA,IAAkBA,EAAgB,CAAC,IAEtC,SAAWC,GACPA,EAAiD,uBAAI,yBACrDA,EAAgD,sBAAI,wBACpDA,EAAkD,wBAAI,0BACtDA,EAAyD,+BAAI,iCAC7DA,EAAiD,uBAAI,wBACxD,CAND,CAMGA,IAA6BA,EAA2B,CAAC,IAE5D,SAAWC,GACPA,EAAwB,MAAI,QAC5BA,EAAyB,OAAI,SAC7BA,EAA2B,SAAI,WAC/BA,EAA0B,QAAI,UAC9BA,EAA4B,UAAI,YAChCA,EAA2B,SAAI,WAC/BA,EAA+B,aAAI,cACtC,CARD,CAQGA,IAAqBA,EAAmB,CAAC,IAE5C,SAAWC,GACPA,EAAoC,QAAI,UACxCA,EAAwC,YAAI,aAC/C,CAHD,CAGGA,IAA+BA,EAA6B,CAAC,IAEhE,SAAWC,GACPA,EAAgD,kBAAI,oBACpDA,EAAmD,qBAAI,uBACvDA,EAAmD,qBAAI,sBAC1D,CAJD,CAIGA,IAAiCA,EAA+B,CAAC,ICnEpE,SAAWC,GACPA,EAAkC,MAAI,QACtCA,EAAkC,MAAI,QACtCA,EAAmC,OAAI,SACvCA,EAAkC,MAAI,OACzC,CALD,CAKGA,IAA+BA,EAA6B,CAAC,IAEhE,SAAWC,GACPA,EAA2C,YAAI,cAClD,CAFD,CAEGA,IAAkCA,EAAgC,CAAC,IAEtE,SAAWC,GACPA,EAAoC,OAAI,SACxCA,EAAyC,YAAI,aAC7CA,EAAqC,QAAI,UACzCA,EAAoC,OAAI,SACxCA,EAAuC,UAAI,WAC9C,CAND,CAMGA,IAAgCA,EAA8B,CAAC,IClClE,SAAWC,GACPA,EAA8B,cAAI,gBAClCA,EAA6B,aAAI,eACjCA,EAAqB,KAAI,MAC5B,CAJD,CAIGA,KAAmBA,GAAiB,CAAC,IAOxC,SAAWC,GAKPA,EAA6B,SAAI,UAKjCA,EAA2B,OAAI,SAO/BA,EAA6B,SAAI,WAMjCA,EAA8B,UAAI,YAQlCA,EAAwB,IAAI,KAC/B,CAhCD,CAgCGA,KAAuBA,GAAqB,CAAC,IAEhD,SAAWC,GAIPA,EAA8B,IAAI,MAIlCA,EAA+B,KAAI,MACtC,CATD,CASGA,KAA6BA,GAA2B,CAAC,IAS5D,SAAWC,GAIPA,EAA4B,IAAI,MAIhCA,EAA6B,KAAI,MACpC,CATD,CASGA,KAA2BA,GAAyB,CAAC,IAExD,SAAWC,GAIPA,EAAyB,KAAI,OAI7BA,EAA0B,MAAI,QAI9BA,EAAgC,YAAI,iBACvC,CAbD,CAaGA,KAAuBA,GAAqB,CAAC,IAiBhD,SAAWC,GAMPA,EAA4C,gBAAI,kBAMhDA,EAAsC,UAAI,YAM1CA,EAA8C,kBAAI,mBACrD,CAnBD,CAmBGA,KAA+BA,GAA6B,CAAC,IC3HhE,SAAWC,GACPA,EAAYA,EAAkB,KAAI,GAAK,OACvCA,EAAYA,EAAsC,yBAAI,GAAK,2BAC3DA,EAAYA,EAAyB,YAAI,GAAK,aACjD,CAJD,CAIGA,KAAgBA,GAAc,CAAC,IAElC,SAAWC,GACPA,EAAiBA,EAAiC,eAAI,GAAK,iBAC3DA,EAAiBA,EAA8C,4BAAI,GAAK,8BACxEA,EAAiBA,EAAyC,uBAAI,GAAK,yBACnEA,EAAiBA,EAA6B,WAAI,GAAK,aACvDA,EAAiBA,EAA0C,wBAAI,GAAK,yBACvE,CAND,CAMGA,KAAqBA,GAAmB,CAAC,ICX5C,SAAWC,GACPA,EAAqC,YAAI,cACzCA,EAAqC,YAAI,cACzCA,EAAkC,SAAI,WACtCA,EAAmC,UAAI,WAC1C,CALD,CAKGA,KAA4BA,GAA0B,CAAC,IAE1D,SAAWC,GACPA,EAA4B,IAAI,MAChCA,EAA6B,KAAI,MACpC,CAHD,CAGGA,KAA2BA,GAAyB,CAAC,ICXxD,SAAWC,GAIPA,EAAgBA,EAA4B,WAAI,GAAK,aACrDA,EAAgBA,EAA0B,SAAI,GAAK,WACnDA,EAAgBA,EAAsB,KAAI,GAAK,OAM/CA,EAAgBA,EAAuB,MAAI,GAAK,OACnD,CAbD,CAaGA,KAAoBA,GAAkB,CAAC,IAE1C,SAAWC,GACPA,EAAcA,EAAsB,OAAI,IAAM,SAC9CA,EAAcA,EAAuB,QAAI,KAAO,UAChDA,EAAcA,EAAuB,QAAI,KAAO,UAChDA,EAAcA,EAAuB,QAAI,KAAO,UAChDA,EAAcA,EAAwB,SAAI,MAAQ,UACrD,CAND,CAMGA,KAAkBA,GAAgB,CAAC,IAEtC,SAAWC,GACPA,EAAmB,IAAI,YACvBA,EAAoB,KAAI,YAC3B,CAHD,CAGGA,KAAkBA,GAAgB,CAAC,kCC3B/B,IAAIxX,EAKAE,EAKAN,GATX,SAAWI,GACPA,EAAa,OAAI,SACjBA,EAAc,QAAI,SACrB,CAHD,CAGGA,IAASA,EAAO,CAAC,IAEpB,SAAWE,GACPA,EAAU,IAAI,MACdA,EAAa,OAAI,QACpB,CAHD,CAGGA,IAASA,EAAO,CAAC,IAEpB,SAAWN,GACPA,EAAiC,oBAAI,wBACrCA,EAAiC,oBAAI,wBACrCA,EAA8B,iBAAI,qBAClCA,EAA4B,eAAI,mBAChCA,EAAqB,QAAI,YACzBA,EAAwB,WAAI,eAC5BA,EAAqB,QAAI,YACzBA,EAAwB,WAAI,eAC5BA,EAAyB,YAAI,gBAC7BA,EAAwB,WAAI,eAC5BA,EAAmB,MAAI,UACvBA,EAA6B,gBAAI,oBACjCA,EAA+B,kBAAI,sBACnCA,EAAkC,qBAAI,yBACtCA,EAAoC,uBAAI,2BACxCA,EAAqC,wBAAI,4BACzCA,EAAsC,yBAAI,6BAC1CA,EAAyC,4BAAI,gCAC7CA,EAAsC,yBAAI,4BAC7C,CApBD,CAoBGA,IAAgBA,EAAc,CAAC,sHCX3B,IAAIF,EASAC,EASAC,EAaA6X,EC9BA5X,EA6BAC,GD7BX,SAAWJ,GACPA,EAAqB,SAAI,WACzBA,EAAsB,UAAI,YAC1BA,EAA8B,kBAAI,oBAClCA,EAAuB,WAAI,aAC3BA,EAAsB,UAAI,YAC1BA,EAAmB,OAAI,QAC1B,CAPD,CAOGA,IAAeA,EAAa,CAAC,IAEhC,SAAWC,GACPA,EAAW,KAAI,OACfA,EAAW,KAAI,OACfA,EAAW,KAAI,MAClB,CAJD,CAIGA,IAASA,EAAO,CAAC,IAKpB,SAAWC,GACPA,EAAoB,OAAI,4BACxBA,EAAoB,OAAI,6BACxBA,EAAoB,OAAI,4BACxBA,EAAuB,UAAI,gCAC3BA,EAA2B,cAAI,oCAC/BA,EAA2B,cAAI,mCAC/BA,EAA2B,cAAI,kCAClC,CARD,CAQGA,IAAgBA,EAAc,CAAC,IAKlC,SAAW6X,GACPA,EAA+B,WAAI,aACnCA,EAAmC,eAAI,iBACvCA,EAAgC,YAAI,aACvC,CAJD,CAIGA,IAAuBA,EAAqB,CAAC,IClChD,SAAW5X,GACPA,EAAuB,UAAI,8CAC3BA,EAAmB,MAAI,0CACvBA,EAAmB,MAAI,0CACvBA,EAA4B,eAAI,mDAChCA,EAAmB,MAAI,0CACvBA,EAAwB,WAAI,+CAC5BA,EAAuB,UAAI,8CAC3BA,EAAkB,KAAI,yCACtBA,EAAsB,SAAI,6CAC1BA,EAAqB,QAAI,0CACzBA,EAAwB,WAAI,+CAC5BA,EAAmB,MAAI,0CACvBA,EAAkB,KAAI,yCACtBA,EAAsB,SAAI,6CAC1BA,EAAmB,MAAI,uCACvBA,EAAmB,MAAI,4CACvBA,EAA8B,iBAAI,qDAClCA,EAA4B,eAAI,mDAChCA,EAAqB,QAAI,4CACzBA,EAAsB,SAAI,6CAC1BA,EAAkB,KAAI,yCACtBA,EAAmB,MAAI,0CACvBA,EAAsB,SAAI,4CAC7B,CAxBD,CAwBGA,IAAgBA,EAAc,CAAC,IAKlC,SAAWC,GACPA,EAAsB,QAAI,UAC1BA,EAAwB,UAAI,WAC/B,CAHD,CAGGA,IAAiBA,EAAe,CAAC,qMCvC7B,MAAM4X,EAIJ,WAAAtxV,CAAYk3G,EAAeshF,GAChC,IAAI+4J,EAOAC,EAHFD,EAHGr6O,GACa,IAAI,IASpBs6O,EAHGh5J,GACsB,IAAI,IAM/B5xL,KAAK6qV,OAAS,CAAC,CAAEv6O,MAAOq6O,IACxB3qV,KAAK8qV,gBAAkBF,CACzB,CAKO,SAAAG,CAAavjV,GAClB,MAAM8oG,EAAQtwG,KAAKgrV,aAEnB,IAAIjlJ,EACJ,IACEA,EAAqBv+L,EAAS8oG,EAChC,CAAE,MAAO/uF,GAEP,MADAvhB,KAAKirV,YACC1pU,CACR,CAEA,OAAI,EAAAgnF,EAAA,IAAWw9F,GAENA,EAAmBj4L,MACxB88F,IACE5qG,KAAKirV,YACErgP,KAETrpF,IAEE,MADAvhB,KAAKirV,YACC1pU,CAAC,KAKbvhB,KAAKirV,YACEllJ,EACT,CAKO,SAAAmlJ,GACL,OAAOlrV,KAAKmrV,cAAc/jK,MAC5B,CAKO,QAAAgkK,GACL,OAAOprV,KAAKmrV,cAAc76O,KAC5B,CAKO,iBAAA+6O,GACL,OAAOrrV,KAAK8qV,eACd,CAKO,WAAAK,GACL,OAAOnrV,KAAK6qV,OAAO7qV,KAAK6qV,OAAOlvV,OAAS,EAC1C,CAKQ,UAAAqvV,GAEN,MAAM16O,EAAQtwG,KAAKorV,WAAWjuO,QAK9B,OAJAn9G,KAAK6qV,OAAOxvV,KAAK,CACf+rL,OAAQpnL,KAAKkrV,YACb56O,UAEKA,CACT,CAKQ,SAAA26O,GACN,QAAIjrV,KAAK6qV,OAAOlvV,QAAU,IACjBqE,KAAK6qV,OAAOnjU,MACvB,EAOF,SAAS4jU,IACP,MAAMC,GAAW,UACXrrI,GAAS,QAAiBqrI,GAEhC,OAAQrrI,EAAOhmH,MAAQgmH,EAAOhmH,OAAS,IAAIwwP,GC5HpC,QAAmB,uBAAuB,IAAM,IAAI,OAKpD,QAAmB,yBAAyB,IAAM,IAAI,MDwH/D,CAEA,SAASK,EAAavjV,GACpB,OAAO8jV,IAAuBP,UAAUvjV,EAC1C,CAEA,SAASgkV,EAAgBl7O,EAAc9oG,GACrC,MAAM0yF,EAAQoxP,IACd,OAAOpxP,EAAM6wP,WAAU,KACrB7wP,EAAMixP,cAAc76O,MAAQA,EACrB9oG,EAAS8oG,KAEpB,CAEA,SAASm7O,EAAsBjkV,GAC7B,OAAO8jV,IAAuBP,WAAU,IAC/BvjV,EAAS8jV,IAAuBD,sBAE3C,CE/HO,SAASK,EAAwBlgK,GACtC,MAAM00B,GAAS,QAAiB10B,GAEhC,OAAI00B,EAAO9tB,IACF8tB,EAAO9tB,IFiIT,CACLq5J,qBACAV,YACAS,eACAG,sBAAuB,CAAIb,EAAwBtjV,IAC1CikV,EAAmBjkV,GAE5ByyU,gBAAiB,IAAMqR,IAAuBF,WAC9CC,kBAAmB,IAAMC,IAAuBD,oBEpIpD,6FCiBO,SAASO,IAGd,OADAC,EAAiB,EAAAlkK,YACV,EAAAA,UACT,CAGO,SAASkkK,EAAiBrgK,GAC/B,MAAMsgK,EAActgK,EAAQsgK,WAAatgK,EAAQsgK,YAAc,CAAC,EAOhE,OAJAA,EAAWtlV,QAAUslV,EAAWtlV,SAAW,IAInCslV,EAAW,KAAeA,EAAW,MAAgB,CAAC,CAChE,CAaO,SAASC,EACd5kV,EACA6kV,EACA/yV,EAAM,EAAA0uL,YAEN,MAAMmkK,EAAc7yV,EAAI6yV,WAAa7yV,EAAI6yV,YAAc,CAAC,EAClDtgK,EAAWsgK,EAAW,KAAeA,EAAW,MAAgB,CAAC,EAEvE,OAAOtgK,EAAQrkL,KAAUqkL,EAAQrkL,GAAQ6kV,IAC3C,+CCrFO,MAAMC,EAAsB,wJCU5B,SAAShS,IACd,MAAMzuJ,GAAU,UAEhB,OADY,OAAwBA,GACzByuJ,iBACb,CAMO,SAASoR,IACd,MAAM7/J,GAAU,UAEhB,OADY,OAAwBA,GACzB6/J,mBACb,CAMO,SAASa,IACd,OAAO,QAAmB,eAAe,IAAM,IAAI,KACrD,CAeO,SAASnB,KACX36U,GAEH,MAAMo7K,GAAU,UACV4G,GAAM,OAAwB5G,GAGpC,GAAoB,IAAhBp7K,EAAKzU,OAAc,CACrB,MAAO20G,EAAO9oG,GAAY4I,EAE1B,OAAKkgG,EAIE8hF,EAAIo5J,aAAal7O,EAAO9oG,GAHtB4qL,EAAI24J,UAAUvjV,EAIzB,CAEA,OAAO4qL,EAAI24J,UAAU36U,EAAK,GAC5B,CAsDO,SAAS86U,IACd,OAAOjR,IAAkBiR,WAC3B,CAKO,SAASiB,EAAyB77O,GACvC,MAAM87O,EAAqB97O,EAAMw4F,yBAE3B,QAAErf,EAAO,aAAEmF,EAAY,kBAAEia,GAAsBujJ,EAE/CC,EAA6B,CACjC38J,SAAUjG,EACV+E,QAASqa,IAAqB,UAOhC,OAJIja,IACFy9J,EAAa/9J,eAAiBM,GAGzBy9J,CACT,iDCtIO,MAAMC,GAAc,sJCoBpB,SAASh0I,EAAiB30G,EAAoBioD,GACnD,OAAO,UAAkB0sD,iBAAiB30G,GAAW,QAA+BioD,GACtF,CAwBO,SAAS6lC,EAAanuL,EAAcsoJ,GACzC,OAAO,UAAkB6lC,aAAanuL,EAAOsoJ,EAC/C,CAOO,SAAS2gM,EAAWplV,EAAcguB,IACvC,UAAoBo3T,WAAWplV,EAAMguB,EACvC,CA4CO,SAAS6kT,EAAQ/5I,IACtB,UAAoB+5I,QAAQ/5I,EAC9B,CA+HO,SAAShyL,IACd,MAAMm5K,GAAS,UACf,OAAwC,IAAjCA,GAAQyJ,aAAa11G,WAAuBisG,GAAQoyB,cAC7D,CAkBO,SAASgzI,EAAar3T,GAC3B,MAAMy8J,GAAiB,UACjBmnB,GAAe,WAGf,UAAExY,GAAc,EAAA5Y,WAAWjkL,WAAa,CAAC,EAEzCopL,GAAU,QAAY,CAC1BmT,KAAM8Y,EAAa7Y,WAAatO,EAAesO,aAC3CK,GAAa,CAAEA,gBAChBprK,IAICs3T,EAAiB76J,EAAe86J,aAUtC,MAT+B,OAA3BD,GAAgBz+U,SAClB,QAAcy+U,EAAgB,CAAEz+U,OAAQ,WAG1C2+U,IAGA/6J,EAAeg7J,WAAW9/J,GAEnBA,CACT,CAKO,SAAS6/J,IACd,MAAM/6J,GAAiB,UAGjB9E,GAFe,UAEQ4/J,cAAgB96J,EAAe86J,aACxD5/J,IACF,QAAaA,GAEf+/J,IAGAj7J,EAAeg7J,YACjB,CAKA,SAASC,IACP,MAAMj7J,GAAiB,UACjBxK,GAAS,UACT0F,EAAU8E,EAAe86J,aAC3B5/J,GAAW1F,GACbA,EAAOgyB,eAAetsB,EAE1B,CAQO,SAASssB,EAAer+K,GAAe,GAExCA,EACF4xT,IAKFE,GACF,iKClPO,MAAMC,EA8DJ,WAAA1zV,GACL4G,KAAK+sV,qBAAsB,EAC3B/sV,KAAKgtV,gBAAkB,GACvBhtV,KAAK+3M,iBAAmB,GACxB/3M,KAAKitV,aAAe,GACpBjtV,KAAKktV,aAAe,GACpBltV,KAAKmtV,MAAQ,CAAC,EACdntV,KAAKi6Q,MAAQ,CAAC,EACdj6Q,KAAKotV,OAAS,CAAC,EACfptV,KAAKqtV,UAAY,CAAC,EAClBrtV,KAAKstV,uBAAyB,CAAC,EAC/BttV,KAAKutV,oBAAsB,CACzB9jK,SAAS,SACT0J,WAAY/tL,KAAKC,SAErB,CAKO,KAAA83G,GACL,MAAMqwO,EAAW,IAAIV,EA2BrB,OA1BAU,EAASP,aAAe,IAAIjtV,KAAKitV,cACjCO,EAASvzE,MAAQ,IAAKj6Q,KAAKi6Q,OAC3BuzE,EAASJ,OAAS,IAAKptV,KAAKotV,QAC5BI,EAASH,UAAY,IAAKrtV,KAAKqtV,WAC3BrtV,KAAKqtV,UAAUx5N,QAGjB25N,EAASH,UAAUx5N,MAAQ,CACzB5sG,OAAQ,IAAIjnB,KAAKqtV,UAAUx5N,MAAM5sG,UAIrCumU,EAASL,MAAQntV,KAAKmtV,MACtBK,EAASC,OAASztV,KAAKytV,OACvBD,EAASE,SAAW1tV,KAAK0tV,SACzBF,EAASG,iBAAmB3tV,KAAK2tV,iBACjCH,EAASI,aAAe5tV,KAAK4tV,aAC7BJ,EAASz1I,iBAAmB,IAAI/3M,KAAK+3M,kBACrCy1I,EAASN,aAAe,IAAIltV,KAAKktV,cACjCM,EAASF,uBAAyB,IAAKttV,KAAKstV,wBAC5CE,EAASD,oBAAsB,IAAKvtV,KAAKutV,qBACzCC,EAAS5kK,QAAU5oL,KAAK4oL,QACxB4kK,EAASK,aAAe7tV,KAAK6tV,cAE7B,OAAiBL,GAAU,OAAiBxtV,OAErCwtV,CACT,CAOO,SAAArmI,CAAU//B,GACfpnL,KAAK4oL,QAAUxB,CACjB,CAMO,cAAA0mK,CAAeC,GACpB/tV,KAAK6tV,aAAeE,CACtB,CAKO,SAAA7C,GACL,OAAOlrV,KAAK4oL,OACd,CAMO,WAAAmlK,GACL,OAAO/tV,KAAK6tV,YACd,CAKO,gBAAAG,CAAiBxmV,GACtBxH,KAAKgtV,gBAAgB3xV,KAAKmM,EAC5B,CAKO,iBAAA0/L,CAAkB1/L,GAEvB,OADAxH,KAAK+3M,iBAAiB18M,KAAKmM,GACpBxH,IACT,CAMO,OAAAg6U,CAAQ/5I,GAeb,OAZAjgM,KAAKmtV,MAAQltJ,GAAQ,CACnB9/D,WAAOp9H,EACPhK,QAAIgK,EACJq9L,gBAAYr9L,EACZi1L,cAAUj1L,GAGR/C,KAAK0tV,WACP,QAAc1tV,KAAK0tV,SAAU,CAAEztJ,SAGjCjgM,KAAKiuV,wBACEjuV,IACT,CAKO,OAAAkgM,GACL,OAAOlgM,KAAKmtV,KACd,CAMO,OAAAjT,CAAQhgE,GAMb,OALAl6Q,KAAKi6Q,MAAQ,IACRj6Q,KAAKi6Q,SACLC,GAELl6Q,KAAKiuV,wBACEjuV,IACT,CAKO,MAAA81F,CAAO77F,EAAagC,GAGzB,OAFA+D,KAAKi6Q,MAAQ,IAAKj6Q,KAAKi6Q,MAAO,CAAChgR,GAAMgC,GACrC+D,KAAKiuV,wBACEjuV,IACT,CAMO,SAAAkuV,CAAUpsO,GAMf,OALA9hH,KAAKotV,OAAS,IACTptV,KAAKotV,UACLtrO,GAEL9hH,KAAKiuV,wBACEjuV,IACT,CAKO,QAAAmuV,CAASl0V,EAAamtM,GAG3B,OAFApnM,KAAKotV,OAAS,IAAKptV,KAAKotV,OAAQ,CAACnzV,GAAMmtM,GACvCpnM,KAAKiuV,wBACEjuV,IACT,CAMO,cAAAouV,CAAer3I,GAGpB,OAFA/2M,KAAK4tV,aAAe72I,EACpB/2M,KAAKiuV,wBACEjuV,IACT,CAKO,QAAAquV,CAASv1I,GAGd,OAFA94M,KAAKytV,OAAS30I,EACd94M,KAAKiuV,wBACEjuV,IACT,CAaO,kBAAAsuV,CAAmBnnV,GAGxB,OAFAnH,KAAK2tV,iBAAmBxmV,EACxBnH,KAAKiuV,wBACEjuV,IACT,CAOO,UAAAusV,CAAWtyV,EAAak7B,GAS7B,OARgB,OAAZA,SAEKn1B,KAAKqtV,UAAUpzV,GAEtB+F,KAAKqtV,UAAUpzV,GAAOk7B,EAGxBn1B,KAAKiuV,wBACEjuV,IACT,CAKO,UAAA4sV,CAAW9/J,GAOhB,OANKA,EAGH9sL,KAAK0tV,SAAW5gK,SAFT9sL,KAAK0tV,SAId1tV,KAAKiuV,wBACEjuV,IACT,CAKO,UAAA0sV,GACL,OAAO1sV,KAAK0tV,QACd,CAQO,MAAAzmI,CAAOsnI,GACZ,IAAKA,EACH,OAAOvuV,KAGT,MAAMwuV,EAAyC,mBAAnBD,EAAgCA,EAAevuV,MAAQuuV,EAE7EE,EACJD,aAAwB1B,EACpB0B,EAAa1lK,gBACb,QAAc0lK,GACZ,OACAzrV,GAEF,KAAEm3Q,EAAI,MAAE9yE,EAAK,KAAEnH,EAAI,SAAElX,EAAQ,MAAE+vB,EAAK,YAAE/B,EAAc,GAAE,mBAAEq1I,GAAuBqC,GAAiB,CAAC,EAsBvG,OApBAzuV,KAAKi6Q,MAAQ,IAAKj6Q,KAAKi6Q,SAAUC,GACjCl6Q,KAAKotV,OAAS,IAAKptV,KAAKotV,UAAWhmJ,GACnCpnM,KAAKqtV,UAAY,IAAKrtV,KAAKqtV,aAActkK,GAErCkX,GAAQnmM,OAAOiB,KAAKklM,GAAMtkM,SAC5BqE,KAAKmtV,MAAQltJ,GAGX6Y,IACF94M,KAAKytV,OAAS30I,GAGZ/B,EAAYp7M,SACdqE,KAAK4tV,aAAe72I,GAGlBq1I,IACFpsV,KAAKutV,oBAAsBnB,GAGtBpsV,IACT,CAMO,KAAA4xD,GAgBL,OAdA5xD,KAAKitV,aAAe,GACpBjtV,KAAKi6Q,MAAQ,CAAC,EACdj6Q,KAAKotV,OAAS,CAAC,EACfptV,KAAKmtV,MAAQ,CAAC,EACdntV,KAAKqtV,UAAY,CAAC,EAClBrtV,KAAKytV,YAAS1qV,EACd/C,KAAK2tV,sBAAmB5qV,EACxB/C,KAAK4tV,kBAAe7qV,EACpB/C,KAAK0tV,cAAW3qV,GAChB,OAAiB/C,UAAM+C,GACvB/C,KAAKktV,aAAe,GACpBltV,KAAK6wM,sBAAsB,CAAEpnB,SAAS,SAAmB0J,WAAY/tL,KAAKC,WAE1ErF,KAAKiuV,wBACEjuV,IACT,CAMO,aAAAq+M,CAAcC,EAAwBE,GAC3C,MAAMkwI,EAAsC,iBAAnBlwI,EAA8BA,EApb3B,IAub5B,GAAIkwI,GAAa,EACf,OAAO1uV,KAGT,MAAMy+M,EAA+B,CACnCvlJ,WAAW,aACRolJ,EAEHx9M,QAASw9M,EAAWx9M,SAAU,QAASw9M,EAAWx9M,QAAS,MAAQw9M,EAAWx9M,SAWhF,OARAd,KAAKitV,aAAa5xV,KAAKojN,GACnBz+M,KAAKitV,aAAatxV,OAAS+yV,IAC7B1uV,KAAKitV,aAAejtV,KAAKitV,aAAalhV,OAAO2iV,GAC7C1uV,KAAK4oL,SAAS2H,mBAAmB,kBAAmB,aAGtDvwL,KAAKiuV,wBAEEjuV,IACT,CAKO,iBAAA2uV,GACL,OAAO3uV,KAAKitV,aAAajtV,KAAKitV,aAAatxV,OAAS,EACtD,CAKO,gBAAAizV,GAGL,OAFA5uV,KAAKitV,aAAe,GACpBjtV,KAAKiuV,wBACEjuV,IACT,CAKO,aAAA6uV,CAAcriK,GAEnB,OADAxsL,KAAKktV,aAAa7xV,KAAKmxL,GAChBxsL,IACT,CAKO,gBAAA8uV,GAEL,OADA9uV,KAAKktV,aAAe,GACbltV,IACT,CAKO,YAAA8oL,GACL,MAAO,CACLsqH,YAAapzS,KAAKitV,aAClBnyI,YAAa96M,KAAKktV,aAClBnkK,SAAU/oL,KAAKqtV,UACfnzE,KAAMl6Q,KAAKi6Q,MACX7yE,MAAOpnM,KAAKotV,OACZntJ,KAAMjgM,KAAKmtV,MACXr0I,MAAO94M,KAAKytV,OACZ12I,YAAa/2M,KAAK4tV,cAAgB,GAClCmB,gBAAiB/uV,KAAK+3M,iBACtBq0I,mBAAoBpsV,KAAKutV,oBACzBx7J,sBAAuB/xL,KAAKstV,uBAC5B7qJ,gBAAiBziM,KAAK2tV,iBACtBngK,MAAM,OAAiBxtL,MAE3B,CAKO,wBAAAgvV,CAAyBC,GAE9B,OADAjvV,KAAKstV,wBAAyB,OAAMttV,KAAKstV,uBAAwB2B,EAAS,GACnEjvV,IACT,CAKO,qBAAA6wM,CAAsB17K,GAE3B,OADAn1B,KAAKutV,oBAAsBp4T,EACpBn1B,IACT,CAKO,qBAAA8oM,GACL,OAAO9oM,KAAKutV,mBACd,CAOO,gBAAAj1I,CAAiB30G,EAAoBioD,GAC1C,MAAM2sD,EAAU3sD,GAAM6sD,WAAY,UAElC,IAAKz4M,KAAK4oL,QAER,OADA,KAAe,KAAMh9I,KAAK,+DACnB2sK,EAGT,MAAMsE,EAAqB,IAAI12M,MAAM,6BAarC,OAXAnG,KAAK4oL,QAAQ0vB,iBACX30G,EACA,CACEw1G,kBAAmBx1G,EACnBk5G,wBACGjxD,EACH6sD,SAAUF,GAEZv4M,MAGKu4M,CACT,CAOO,cAAAM,CAAe/3M,EAAiBg4M,EAAuBltD,GAC5D,MAAM2sD,EAAU3sD,GAAM6sD,WAAY,UAElC,IAAKz4M,KAAK4oL,QAER,OADA,KAAe,KAAMh9I,KAAK,6DACnB2sK,EAGT,MAAMsE,EAAqB,IAAI12M,MAAMrF,GAcrC,OAZAd,KAAK4oL,QAAQiwB,eACX/3M,EACAg4M,EACA,CACEK,kBAAmBr4M,EACnB+7M,wBACGjxD,EACH6sD,SAAUF,GAEZv4M,MAGKu4M,CACT,CAOO,YAAA9mB,CAAanuL,EAAcsoJ,GAChC,MAAM2sD,EAAU3sD,GAAM6sD,WAAY,UAElC,OAAKz4M,KAAK4oL,SAKV5oL,KAAK4oL,QAAQ6I,aAAanuL,EAAO,IAAKsoJ,EAAM6sD,SAAUF,GAAWv4M,MAE1Du4M,IANL,KAAe,KAAM3sK,KAAK,2DACnB2sK,EAMX,CAKU,qBAAA01I,GAIHjuV,KAAK+sV,sBACR/sV,KAAK+sV,qBAAsB,EAC3B/sV,KAAKgtV,gBAAgBnxV,SAAQ2L,IAC3BA,EAASxH,KAAK,IAEhBA,KAAK+sV,qBAAsB,EAE/B,qJC7oBK,MAAMmC,EAAmC,gBAQnCC,EAAwC,qBAQxCC,EAAuD,oCAKvDC,EAA+B,YAK/BC,EAAmC,gBAGnCC,EAAoD,iCAGpDC,EAA6C,0BAG7CC,EAA8C,2BAS9CC,EAA6C,0BAK7CC,EAAgC,oBAEhCC,EAAoC,wBAsBpCC,EAAoC,8GClE1C,SAASC,EAAY36T,GAE1B,MAAM46T,GAAe,UAEfjjK,EAAmB,CACvBkjK,KAAK,UACL12I,MAAM,EACNpgJ,UAAW62R,EACXE,QAASF,EACT3qQ,SAAU,EACVp3E,OAAQ,KACR80M,OAAQ,EACRiE,gBAAgB,EAChBh1G,OAAQ,IAkHO,YACA,OACA,eACA,YAEA,8CACA,cAAAxvG,KAAA,+BACA,gBACA,gBACA,qEACA,oBACA,wCACA,OACA,kBACA,YAAAuqL,EAAA,YACA,uBACA,wBAGA,CArIDojK,CAAcpjK,IAO9B,OAJI33J,GACFg7T,EAAcrjK,EAAS33J,GAGlB23J,CACT,CAcO,SAASqjK,EAAcrjK,EAAkB33J,EAA0B,CAAC,GAiCxD,GAhCbA,EAAQ8qK,QACLnT,EAAQ+uB,WAAa1mL,EAAQ8qK,KAAKG,aACrCtT,EAAQ+uB,UAAY1mL,EAAQ8qK,KAAKG,YAG9BtT,EAAQsjK,KAAQj7T,EAAQi7T,MAC3BtjK,EAAQsjK,IAAMj7T,EAAQ8qK,KAAKlnM,IAAMo8B,EAAQ8qK,KAAK9/D,OAAShrG,EAAQ8qK,KAAKjI,WAIxElL,EAAQ5zH,UAAY/jC,EAAQ+jC,YAAa,UAErC/jC,EAAQk7T,qBACVvjK,EAAQujK,mBAAqBl7T,EAAQk7T,oBAGnCl7T,EAAQ4xL,iBACVj6B,EAAQi6B,eAAiB5xL,EAAQ4xL,gBAE/B5xL,EAAQ66T,MAEVljK,EAAQkjK,IAA6B,KAAvB76T,EAAQ66T,IAAIr0V,OAAgBw5B,EAAQ66T,KAAM,gBAErCjtV,IAAjBoyB,EAAQmkL,OACVxsB,EAAQwsB,KAAOnkL,EAAQmkL,OAEpBxsB,EAAQsjK,KAAOj7T,EAAQi7T,MAC1BtjK,EAAQsjK,IAAM,GAAGj7T,EAAQi7T,OAEV,6BACA,qBAEA,iBACA,uBACA,+BACA,0BACA,CACA,8BACA,mBACA,CACA,YACA,qBAEA,gBACA,8BAEA,2BACA,0BAEA,2BACA,yBAEA,4BACA,mBAEA,WACA,kBAEA,CAaA,gBACA,SACA,EACA,aACA,kBACA,qBAGA,MACA,wKC1GnB,MAAME,EAAmB,aASlB,SAASC,EAAgB/iK,EAAYiD,GAC1C,MAAM+/J,EAAmBhjK,GACzB,QAAyBgjK,EAAkBF,EAAkB7/J,EAC/D,CAOO,SAASggK,EAAoC/gK,EAAkBtI,GACpE,MAAMrmL,EAAUqmL,EAAOyJ,cAEf6/J,UAAW1/J,GAAe5J,EAAOuJ,UAAY,CAAC,EAIhDF,EAA8B,CAClC/pL,YAAa3F,EAAQ2F,aAAe,IACpC8oB,QAASzuB,EAAQyuB,QACjBwhK,aACAtB,WACAihK,QAAQ,QAAuBvpK,IAKjC,OAFAA,EAAOjhE,KAAK,YAAasqE,GAElBA,CACT,CAKO,SAASmgK,EAAmCxpK,EAAgB92E,GACjE,MAAM87O,EAAqB97O,EAAMw4F,wBACjC,OAAOsjJ,EAAmB37J,KAAOggK,EAAoCrE,EAAmB3iK,QAASrC,EACnG,CASO,SAASypK,EAAkCrjK,GAChD,MAAMpG,GAAS,UACf,IAAKA,EACH,MAAO,CAAC,EAGV,MAAM2L,GAAW,QAAYvF,GACvBsjK,GAAe,QAAW/9J,GAC1Bg+J,EAAqBD,EAAa1yV,KAClC4yV,EAAaj+J,EAASxJ,cAAcynK,WAIpCC,EACJD,GAAYr3V,IAAI,uBAChBo3V,EAAmB,OACnBA,EAAmB,MAErB,SAASG,EAA0BzgK,GAIZ,MAHa,iBAAvBwgK,GAAiE,iBAAvBA,IACnDxgK,EAAIoE,YAAc,GAAGo8J,KAEF,CACA,CAGA,aACA,KACA,YAIA,6BAGA,iBAEA,KACA,YAIA,qCAGA,UAGA,gBAsBA,MArBA,eACA,kBAMA,WACA,8BACA,cAGA,+BAEA,gEAGA,KAEA,wBAEA,CACA,6EChJlB,MAAME,EAAoB,EACpBC,EAAiB,EACjBC,EAAoB,EAuD1B,SAASC,EAAc9jK,EAAY+jK,GACxC/jK,EAAK3lI,aAAa,4BAA6B0pS,GAE/C,MAAMC,EAjDD,SAAmCD,GACxC,GAAIA,EAAa,KAAOA,GAAc,IACpC,MAAO,CAAEn1T,KAAMg1T,GAGjB,GAAIG,GAAc,KAAOA,EAAa,IACpC,OAAQA,GACN,KAAK,IACH,MAAO,CAAEn1T,KAAMi1T,EAAmBvwV,QAAS,mBAC7C,KAAK,IACH,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,qBAC7C,KAAK,IACH,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,aAC7C,KAAK,IACH,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,kBAC7C,KAAK,IACH,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,uBAC7C,KAAK,IACH,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,sBAC7C,KAAK,IACH,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,aAC7C,QACE,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,oBAIjD,GAAIywV,GAAc,KAAOA,EAAa,IACpC,OAAQA,GACN,KAAK,IACH,MAAO,CAAEn1T,KAAMi1T,EAAmBvwV,QAAS,iBAC7C,KAAK,IACH,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,eAC7C,KAAK,IACH,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,qBAC7C,QACE,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,kBAIjD,MAAO,CAAEs7B,KAAMi1T,EAAmBvwV,QAAS,gBAC7C,CASqB2wV,CAA0BF,GAClB,kBAAvBC,EAAW1wV,SACb0sL,EAAKvD,UAAUunK,EAEnB,wEC/DA,MAAME,EAA4B,eAC5BC,EAAsC,wBAQrC,SAASC,EAAwBpkK,EAAwBl9E,EAAcshF,GACxEpE,KACF,QAAyBA,EAAMmkK,EAAqC//J,IACpE,QAAyBpE,EAAMkkK,EAA2BphP,GAE9D,CAKO,SAASuhP,EAAwBrkK,GACtC,MAAO,CACLl9E,MAAO,EAAyBohP,GAChC9/J,eAAgB,EAAyB+/J,GAE7C,yGCvBO,MAAMG,EAA4B,UAE5BC,EAAkC,WAOlCC,EAA4B,KASlC,SAASC,EAEdC,GAEA,MAAMC,EA0DK,SACA,GAEA,sCAIA,wBAEA,kBACA,aAIA,OAHA,OAAA51T,QAAA,sBACA,UAEAsoH,CAAA,GACA,IAGA,IACA,CA7EWutM,CAAmBF,GAEzC,IAAKC,EACH,OAIF,MAAMngK,EAAyBl4L,OAAOyiC,QAAQ41T,GAAen+T,QAA+B,CAAC6wH,GAAM5qJ,EAAKgC,MAClGhC,EAAI2uB,MAAMmpU,KAEZltM,EADuB5qJ,EAAI8R,MAAM+lV,EAA0Bn2V,SACrCM,GAEjB4oJ,IACN,CAAC,GAIJ,OAAI/qJ,OAAOiB,KAAKi3L,GAAwBr2L,OAAS,EACxCq2L,OAEP,CAEJ,CAWO,SAASqgK,EAEdrgK,GAEA,GAAKA,EAeM,OA8DA,YACA,cAAAj3L,KAAA,UAKA,+CACA,4DACA,sBACA,mBACA,KACA,UACA,+FAEAm3V,GAEAI,CACA,GACA,GACA,CAjFA,CAVex4V,OAAOyiC,QAAQy1J,GAAwBh+J,QAC/D,CAAC6wH,GAAM0tM,EAAQC,MACTA,IACF3tM,EAAI,GAAGitM,IAA4BS,KAAYC,GAE1C3tM,IAEA,IAIA,CAgCA,cACA,SACA,WACA,QACA,sBACA,IACA,mCACA,OAGA,MACA,OAGA,oBACA,OACA,QAEAA,IACA,GACA,mFCjIb,MAAMqzC,WAASvQ,WAET8qK,EAA4B,GAY3B,SAASC,EACdC,EACA5xV,EAAwE,CAAC,GAEzE,IAAK4xV,EACH,MAAO,YAOT,IACE,IAAIC,EAAcD,EAClB,MAAME,EAAsB,EACtB/uO,EAAM,GACZ,IAAIvoE,EAAS,EACTj0B,EAAM,EACV,MAAMmxR,EAAY,MACZq6C,EAAYr6C,EAAU98S,OAC5B,IAAIo3V,EACJ,MAAMC,EAAW9tV,MAAMwgC,QAAQ3kC,GAAWA,EAAUA,EAAQiyV,SACtDC,GAAoB/tV,MAAMwgC,QAAQ3kC,IAAYA,EAAQkyV,iBAAoBR,EAEhF,KAAOG,GAAer3S,IAAWs3S,IAC/BE,EAAUG,EAAqBN,EAAaI,KAK5B,SAAZD,GAAuBx3S,EAAS,GAAKj0B,EAAMw8F,EAAInoH,OAASm3V,EAAYC,EAAQp3V,QAAUs3V,KAI1FnvO,EAAIzoH,KAAK03V,GAETzrU,GAAOyrU,EAAQp3V,OACfi3V,EAAcA,EAAY9uU,WAG5B,OAAOggG,EAAIxqC,UAAU30E,KAAK8zS,EAC5B,CAAE,MACA,MAAO,WACT,CACF,CAOA,SAASy6C,EAAqBv9T,EAAaq9T,GACzC,MAAML,EAAOh9T,EAOPmuF,EAAM,GAEZ,IAAK6uO,GAAMj6V,QACT,MAAO,GAIT,GAAIw/L,EAAOj2K,aAEL0wU,aAAgB1wU,aAAe0wU,EAAKx4E,QAAS,CAC/C,GAAIw4E,EAAKx4E,QAAyB,gBAChC,OAAOw4E,EAAKx4E,QAAyB,gBAEvC,GAAIw4E,EAAKx4E,QAAuB,cAC9B,OAAOw4E,EAAKx4E,QAAuB,aAEvC,CAGFr2J,EAAIzoH,KAAKs3V,EAAKj6V,QAAQuzB,eAGtB,MAAMknU,EAAeH,GAAUr3V,OAC3Bq3V,EAAS93V,QAAOk4V,GAAWT,EAAKp6Q,aAAa66Q,KAAU7gV,KAAI6gV,GAAW,CAACA,EAAST,EAAKp6Q,aAAa66Q,MAClG,KAEJ,GAAID,GAAcx3V,OAChBw3V,EAAat3V,SAAQw3V,IACnBvvO,EAAIzoH,KAAK,IAAIg4V,EAAY,OAAOA,EAAY,OAAO,QAEhD,CACDV,EAAK55V,IACP+qH,EAAIzoH,KAAK,IAAIs3V,EAAK55V,MAGG,MAAA0W,EAAA,EAAAA,UACA,mBACA,uBACA,iBACA,eAEA,CACA,CACA,mDACA,kBACA,0BACA,GACA,uBAEA,CAEA,iBACA,CAKA,aACA,IACA,kBAAA0uB,SAAA,IACA,OACA,QACA,CACA,CASA,cAEA,kBACA,YAGA,QAEA,cADA,EACA,KACA,MACA,YAGA,6BACA,6BACA,SAAAg8O,QAAA,gBAEA,2BACA,SAAAA,QAAA,aAEA,CAEA,cACA,CAEA,WACA,wECvK3B,IAAIm5E,EACAC,EACAC,EAKG,SAASC,EAAwB13I,GACtC,MAAM23I,EAAa,EAAA/rK,WAAWgsK,gBAC9B,IAAKD,EACH,MAAO,CAAC,EAGV,MAAME,EAAc95V,OAAOiB,KAAK24V,GAIhC,OAAIF,GAA0BI,EAAYj4V,SAAW43V,IAIrDA,EAAgBK,EAAYj4V,OAG5B63V,EAAyBI,EAAY5/T,QAA+B,CAAC6wH,EAAKgvM,KACnEP,IACHA,EAAqB,CAAC,GAGxB,MAAMrwV,EAASqwV,EAAmBO,GAElC,GAAI5wV,EACF4hJ,EAAI5hJ,EAAO,IAAMA,EAAO,OACnB,CACL,MAAM6wV,EAAc/3I,EAAY83I,GAEhC,IAAK,IAAIp4V,EAAIq4V,EAAYn4V,OAAS,EAAGF,GAAK,EAAGA,IAAK,CAChD,MAAMs4V,EAAaD,EAAYr4V,GACzBmsL,EAAWmsK,GAAYnsK,SACvBosK,EAAUN,EAAWG,GAE3B,GAAIjsK,GAAYosK,EAAS,CACvBnvM,EAAI+iC,GAAYosK,EAChBV,EAAmBO,GAAY,CAACjsK,EAAUosK,GAC1C,KACF,CACF,CACF,CAEA,OAAOnvM,CAAG,GACT,CAAC,IAhCK2uM,CAmCX,CAKO,SAASS,EACdl4I,EACAm4I,GAEA,MAAMC,EAAqBV,EAAwB13I,GAEnD,IAAKo4I,EACH,MAAO,GAGT,MAAMC,EAAuB,GAC7B,IAAK,MAAM5xO,KAAQ0xO,EACb1xO,GAAQ2xO,EAAmB3xO,IAC7B4xO,EAAO/4V,KAAK,CACV0T,KAAM,YACNslV,UAAW7xO,EACX8xO,SAAUH,EAAmB3xO,KAKnC,OAAO4xO,CACT,iHCzEO,MAAMG,EAA0C,CACrD,QACA,OACA,OACA,QACA,MACA,SACA,SAOWC,EAQR,CAAC,EAQC,SAASC,EAAkBjtV,GAChC,KAAM,0BACJ,OAAOA,IAGT,MAAM9K,EAAU,EAAAirL,WAAWjrL,QACrBg4V,EAA4E,CAAC,EAE7EC,EAAgB76V,OAAOiB,KAAKy5V,GAGlCG,EAAc94V,SAAQi9M,IACpB,MAAMqF,EAAwBq2I,EAAuB17I,GACrD47I,EAAa57I,GAASp8M,EAAQo8M,GAC9Bp8M,EAAQo8M,GAASqF,CAAsB,IAGzC,IACE,OAAO32M,GACT,CAAE,QAEAmtV,EAAc94V,SAAQi9M,IACpBp8M,EAAQo8M,GAAS47I,EAAa57I,EAAO,GAEzC,CACF,CAUA,SAAS7qM,IACP,OAAO2mV,IAAqBz5Q,OAC9B,CAkBA,SAAS05Q,EAAU/7I,KAAwBtlM,GACpC,KAIDvF,KACFwmV,GAAe,KACb,EAAA9sK,WAAWjrL,QAAQo8M,GAAO,kBAAaA,SAActlM,EAAK,GAG/B,CAEA,aACA,YAIA,+CAHA,YAIA,CAKA,SAEA,OArDjC,WACEohV,IAAqBz5Q,SAAU,CACjC,EAqDiC,QAnDjC,WACEy5Q,IAAqBz5Q,SAAU,CACjC,EAmDiC,YAEA,IA/CjC,YAAgB3nE,GACdqhV,EAAU,SAAUrhV,EACtB,EA+CiC,KAzCjC,YAAiBA,GACfqhV,EAAU,UAAWrhV,EACvB,EAyCiC,MAvCjC,YAAkBA,GAChBqhV,EAAU,WAAYrhV,EACxB,wGC3FA,MAAMshV,EAAe,YAGfC,EAAY,kEAeX,SAASC,EAAYtkK,EAAoBukK,GAAwB,GACtE,MAAM,KAAExxR,EAAI,KAAE++C,EAAI,KAAE0yO,EAAI,KAAEpvK,EAAI,UAAEikF,EAAS,SAAE9uL,EAAQ,UAAEy1Q,GAAchgK,EACnE,MACE,GAAGz1G,OAAcy1Q,IAAYuE,GAAgBC,EAAO,IAAIA,IAAS,MAChE,qCAEA,CAQA,cACA,kBAEA,MAMA,YAJA,cAEA,6CAKA,0CACA,SACA,IAEA,qBAMA,GALA,aACA,0BACA,WAGA,GACA,wBACA,IACA,OAEA,CAEA,0EACA,CAEA,cACA,OACA,oBACA,0BACA,gBACA,YACA,gBACA,gBACA,sBAEA,CAyDA,cACA,wBAEA,uBAEA,MAQA,OANA,QACA,kBACA,IACA,EArBA,YACA,mBAEA,aACA,CAiBA,KAGA,CACA,CAMA,cACA,qCACA,MA7EA,YACA,QACA,SAGA,uCAWA,QATA,4CACA,UACA,OACA,gDACA,OASA,iBA3FL,SAAyBj6Q,GACvB,MAAoB,SAAbA,GAAoC,UAAbA,CAChC,CA8FK,IAKA,2BACA,oDACA,IANA,wDACA,IANA,yDACA,IAcA,CAyCA,IAGA,QACA,gEC7IE,SAASm4G,EACd+hK,GAEA,GAAkC,kBAAvBC,qBAAqCA,mBAC9C,OAAO,EAGT,MAAMr0V,EAAUo0V,IAAgB,WAAatkK,aAC7C,SACI9vL,GAE2B,MAA5BA,EAAQ6yL,mBAA8B7yL,EAAQwyL,cAEnD,yLC5BA,MAAM35F,EAAiB9/F,OAAOT,UAAUuK,SASjC,SAASyxV,EAAQC,GACtB,OAAQ17P,EAAez/F,KAAKm7V,IAC1B,IAAK,iBACL,IAAK,qBACL,IAAK,wBACL,IAAK,iCACH,OAAO,EACT,QACE,OAAOC,EAAaD,EAAKnvV,OAE/B,CAQA,SAASqvV,EAAUF,EAAc7lV,GAC/B,OAAOmqF,EAAez/F,KAAKm7V,KAAS,WAAW7lV,IACjD,CASO,SAASgmV,EAAaH,GAC3B,OAAOE,EAAUF,EAAK,aACxB,CASO,SAASI,EAAWJ,GACzB,OAAOE,EAAUF,EAAK,WACxB,CASO,SAASK,EAAeL,GAC7B,OAAOE,EAAUF,EAAK,eACxB,CASO,SAASM,EAASN,GACvB,OAAOE,EAAUF,EAAK,SACxB,CASO,SAASO,EAAsBP,GACpC,MACiB,iBAARA,GACC,OAARA,GACA,+BAAgCA,GAChC,+BAAgCA,CAEpC,CASO,SAASQ,EAAYR,GAC1B,OAAe,OAARA,GAAgBO,EAAsBP,IAAwB,iBAARA,GAAmC,mBAARA,CAC1F,CASO,SAASp1P,EAAco1P,GAC5B,OAAOE,EAAUF,EAAK,SACxB,CASO,SAASS,EAAQT,GACtB,MAAwB,oBAAV/kB,OAAyBglB,EAAaD,EAAK/kB,MAC3D,CASO,SAAS7nP,EAAU4sQ,GACxB,MAA0B,oBAAZ//S,SAA2BggT,EAAaD,EAAK//S,QAC7D,CASO,SAASqiQ,EAAS09C,GACvB,OAAOE,EAAUF,EAAK,SACxB,CAMO,SAASU,EAAWV,GAEzB,OAAO75L,QAAQ65L,GAAKxnV,MAA4B,mBAAbwnV,EAAIxnV,KACzC,CASO,SAASmoV,EAAiBX,GAC/B,OAAOp1P,EAAco1P,IAAQ,gBAAiBA,GAAO,mBAAoBA,GAAO,oBAAqBA,CACvG,CAUO,SAASC,EAAaD,EAAU3lU,GACrC,IACE,OAAO2lU,aAAe3lU,CACxB,CAAE,MACA,OAAO,CACT,CACF,CAcO,SAASumU,EAAeZ,GAE7B,QAAyB,iBAARA,GAA4B,OAARA,IAAiB,EAAsBa,UAAW,EAAsBC,OAC/G,CAOO,SAASC,EAAU/kM,GACxB,MAA0B,oBAAZy2C,SAA2BwtJ,EAAajkM,EAASy2C,QACjE,gCC9MO,SAAS1mG,EAASi1P,EAAeC,EAAaC,EAAS,GAG5D,IAAKD,GAAgC,iBAAbA,GAAyBC,GAAU,EACzD,OAAOD,EAIT,GAAID,GAA+C,IAAjCx8V,OAAOiB,KAAKw7V,GAAU56V,OACtC,OAAO26V,EAIT,MAAMG,EAAS,IAAKH,GAGpB,IAAK,MAAMr8V,KAAOs8V,EACZz8V,OAAOT,UAAUa,eAAeC,KAAKo8V,EAAUt8V,KACjDw8V,EAAOx8V,GAAOonG,EAAMo1P,EAAOx8V,GAAMs8V,EAASt8V,GAAMu8V,EAAS,IAI7D,OAAOC,CACT,gICDO,SAASC,EAAM7xV,EAVtB,WACE,MAAM8xV,EAAM,EAAAhvK,WACZ,OAAOgvK,EAAI9xV,QAAU8xV,EAAI7xV,QAC3B,CAO+B8xV,IAC7B,IAAIC,EAAgB,IAA8B,GAAhBzxV,KAAKC,SACvC,IACE,GAAIR,GAAQq/K,WACV,OAAOr/K,EAAOq/K,aAAa1rL,QAAQ,KAAM,IAEvCqM,GAAQD,kBACViyV,EAAgB,KAKd,MAAMn3P,EAAa,IAAI16F,WAAW,GAGlC,OAFAH,EAAOD,gBAAgB86F,GAEhBA,EAAW,EAAE,EAG1B,CAAE,MAGF,CAIA,OAAQ,CAAE,KAA6B,IAAM,IAAM,IAAM,MAAMlnG,QAAQ,UAAUkxB,IAE9E,GAA+C,GAAlBmtU,MAA0B,EAA2B,GAAKjzV,SAAS,KAErG,CAEA,SAASkzV,EAAkBxzV,GACzB,OAAOA,EAAMqgG,WAAW18E,SAAS,EACnC,CAMO,SAAS8vU,EAAoBzzV,GAClC,MAAM,QAAExC,EAAS23M,SAAUF,GAAYj1M,EACvC,GAAIxC,EACF,OAAOA,EAGT,MAAMk2V,EAAiBF,EAAkBxzV,GACzC,OAAI0zV,EACEA,EAAejoV,MAAQioV,EAAe/6V,MACjC,GAAG+6V,EAAejoV,SAASioV,EAAe/6V,QAEzC,gCAEA,cACA,CASA,kBACA,oCACA,wBACA,gBACA,UACA,eAEA,SACA,kBAEA,CASA,gBACA,aACA,MACA,OAGA,MACA,cAGA,GAFA,aAFA,6BAEA,QAEA,eACA,+BACA,kBACA,CACA,CA2FA,cACA,GAeA,YACA,IACA,4BACA,QACA,CAnBA,IACA,SAGA,KAGA,mCACA,OAEA,CAEA,QACA,gGC9LP,SAASkuC,EAAUiQ,EAAgB06D,EAAgB,IAAKmiP,EAAwB,KACrF,IAEE,OAAOC,EAAM,GAAI98S,EAAO06D,EAAOmiP,EACjC,CAAE,MAAOnzV,GACP,MAAO,CAAEiqN,MAAO,yBAAyBjqN,KAC3C,CACF,CAGO,SAASqzV,EAEdt8V,EAEAi6G,EAAgB,EAEhBj1D,EAAkB,QAElB,MAAMm5K,EAAa7uL,EAAUtvC,EAAQi6G,GAErC,OAyNgB74G,EAzNH+8N,EAkNf,SAAoB/8N,GAElB,QAASm7V,UAAUn7V,GAAOmsB,MAAM,SAASzsB,MAC3C,CAKS07V,CAAWnqV,KAAKC,UAAUlR,IA1NN4jD,EAClBs3S,EAAgBt8V,EAAQi6G,EAAQ,EAAGj1D,GAGrCm5K,EAqNT,IAAkB/8N,CApNlB,CAWA,SAASi7V,EACPj9V,EACAgC,EACA64G,EAAgB,IAChBmiP,EAAwB,IACxBtyP,EAyOF,WACE,MAAMxa,EAAQ,IAAIwsD,QAYlB,MAAO,CAXP,SAAiB19I,GACf,QAAIkxF,EAAMzwF,IAAIT,KAGdkxF,EAAMxmD,IAAI1qC,IACH,EACT,EAEA,SAAmBA,GACjBkxF,EAAMzkE,OAAOzsB,EACf,EAEF,CAvPSq+V,IAEP,MAAO/iU,EAASgjU,GAAa5yP,EAG7B,GACW,MAAT1oG,GACA,CAAC,UAAW,UAAU0K,gBAAgB1K,IACpB,iBAAVA,GAAsB2zB,OAAOiM,SAAS5/B,GAE9C,OAAOA,EAGT,MAAMu7V,EA6FR,SACEv9V,EAGAgC,GAEA,IACE,GAAY,WAARhC,GAAoBgC,GAA0B,iBAAVA,GAAsB,EAAgCw4C,QAC5F,MAAO,WAGT,GAAY,kBAARx6C,EACF,MAAO,kBAMT,GAAsB,oBAAXk6G,QAA0Bl4G,IAAUk4G,OAC7C,MAAO,WAIT,GAAsB,oBAAXx7G,QAA0BsD,IAAUtD,OAC7C,MAAO,WAIT,GAAwB,oBAAbopB,UAA4B9lB,IAAU8lB,SAC/C,MAAO,aAGT,IAAI,QAAe9lB,GACjB,MAAO,iBAIT,IAAI,QAAiBA,GACnB,MAAO,mBAGT,GAAqB,iBAAVA,IAAuB2zB,OAAOiM,SAAS5/B,GAChD,MAAO,IAAIA,KAGb,GAAqB,mBAAVA,EACT,MAAO,eAAc,QAAgBA,MAGvC,GAAqB,iBAAVA,EACT,MAAO,IAAIg/B,OAAOh/B,MAIpB,GAAqB,iBAAVA,EACT,MAAO,YAAYg/B,OAAOh/B,MAO5B,MAAMw7V,EAcV,SAA4Bx7V,GAC1B,MAAM5C,EAA8BS,OAAOitF,eAAe9qF,GAE1D,OAAO5C,GAAWD,YAAcC,EAAUD,YAAY+N,KAAO,gBAC/D,CAlBoBuwV,CAAmBz7V,GAGnC,MAAI,qBAAqB6sB,KAAK2uU,GACrB,iBAAiBA,KAGnB,WAAWA,IACpB,CAAE,MAAO3zV,GACP,MAAO,yBAAyBA,IAClC,CACF,CAtKsB6zV,CAAe19V,EAAKgC,GAIxC,IAAKu7V,EAAYpuU,WAAW,YAC1B,OAAOouU,EAQT,GAAI,EAA8D,8BAChE,OAAOv7V,EAMT,MAAM27V,EACiF,iBAA9E,EAAwE,wCAC1E,EAA0E,wCAC3E9iP,EAGN,GAAuB,IAAnB8iP,EAEF,OAAOJ,EAAYh/V,QAAQ,UAAW,IAIxC,GAAI+7B,EAAQt4B,GACV,MAAO,eAIT,MAAM47V,EAAkB57V,EACxB,GAAI47V,GAAqD,mBAA3BA,EAAgB9lP,OAC5C,IAGE,OAAOmlP,EAAM,GAFKW,EAAgB9lP,SAEN6lP,EAAiB,EAAGX,EAAetyP,EACjE,CAAE,MAEF,CAMF,MAAMq0H,EAAc9zN,MAAMwgC,QAAQzpC,GAAS,GAAK,CAAC,EACjD,IAAI67V,EAAW,EAIf,MAAMC,GAAY,QAAqB97V,GAEvC,IAAK,MAAM+7V,KAAYD,EAAW,CAEhC,IAAKj+V,OAAOT,UAAUa,eAAeC,KAAK49V,EAAWC,GACnD,SAGF,GAAIF,GAAYb,EAAe,CAC7Bj+H,EAAWg/H,GAAY,oBACvB,KACF,CAGA,MAAMC,EAAaF,EAAUC,GAC7Bh/H,EAAWg/H,GAAYd,EAAMc,EAAUC,EAAYL,EAAiB,EAAGX,EAAetyP,GAEtFmzP,GACF,CAMA,OAHAP,EAAUt7V,GAGH+8N,CACT,0JCzJO,SAASviK,EAAK76D,EAAgCuL,EAAc+wV,GACjE,KAAM/wV,KAAQvL,GACZ,OAIF,MAAMwlN,EAAWxlN,EAAOuL,GAExB,GAAwB,mBAAbi6M,EACT,OAGF,MAAM+2I,EAAUD,EAAmB92I,GAIZ,mBAAZ+2I,GACTC,EAAoBD,EAAS/2I,GAG/B,IACExlN,EAAOuL,GAAQgxV,CACjB,CAAE,MACA,KAAe,KAAMt3V,IAAI,6BAA6BsG,eAAmBvL,EAC3E,CACF,CASO,SAASy8V,EAAyBp/V,EAAakO,EAAclL,GAClE,IACEnC,OAAOC,eAAed,EAAKkO,EAAM,CAE/BlL,MAAOA,EACPE,UAAU,EACVD,cAAc,GAElB,CAAE,MACA,KAAe,KAAM2E,IAAI,0CAA0CsG,eAAmBlO,EACxF,CACF,CASO,SAASm/V,EAAoBD,EAA0B/2I,GAC5D,IACE,MAAM7xI,EAAQ6xI,EAAS/nN,WAAa,CAAC,EACrC8+V,EAAQ9+V,UAAY+nN,EAAS/nN,UAAYk2E,EACzC8oR,EAAyBF,EAAS,sBAAuB/2I,EAC3D,CAAE,MAAO,CACX,CAUO,SAASk3I,EAAwC35V,GACtD,OAAOA,EAAK45V,mBACd,CAUO,SAASC,EAAwBv8V,GAetC,IAAI,QAAQA,GACV,MAAO,CACL6E,QAAS7E,EAAM6E,QACfqG,KAAMlL,EAAMkL,KACZ+yF,MAAOj+F,EAAMi+F,SACVu+P,EAAiBx8V,IAEjB,IAAI,QAAQA,GAAQ,CACzB,MAAMrC,EAMF,CACFmV,KAAM9S,EAAM8S,KACZvT,OAAQk9V,EAAqBz8V,EAAMT,QACnC+pD,cAAemzS,EAAqBz8V,EAAMspD,kBACvCkzS,EAAiBx8V,IAOtB,MAJ2B,oBAAhBk7P,cAA+B,QAAal7P,EAAOk7P,eAC5Dv9P,EAAOqhI,OAASh/H,EAAMg/H,QAGjBrhI,CACT,CACE,OAAOqC,CAEX,CAGA,SAASy8V,EAAqBl9V,GAC5B,IACE,OAAO,QAAUA,IAAU,QAAiBA,GAAU1B,OAAOT,UAAUuK,SAASzJ,KAAKqB,EACvF,CAAE,MACA,MAAO,WACT,CACF,CAGA,SAASi9V,EAAiBx/V,GACxB,GAAmB,iBAARA,GAA4B,OAARA,EAAc,CAC3C,MAAM0/V,EAA6C,CAAC,EACpD,IAAK,MAAM7vT,KAAY7vC,EACjBa,OAAOT,UAAUa,eAAeC,KAAKlB,EAAK6vC,KAC5C6vT,EAAe7vT,GAAY,EAAiCA,IAGhE,OAAO6vT,CACT,CACE,MAAO,CAAC,CAEZ,CAOO,SAASC,EAA+Bj1P,EAAoC/3F,EAAoB,IACrG,MAAM7Q,EAAOjB,OAAOiB,KAAKy9V,EAAqB70P,IAC9C5oG,EAAKy9E,OAEL,MAAMywI,EAAWluN,EAAK,GAEtB,IAAKkuN,EACH,MAAO,uBAGT,GAAIA,EAASttN,QAAUiQ,EACrB,OAAO,QAASq9M,EAAUr9M,GAG5B,IAAK,IAAIitV,EAAe99V,EAAKY,OAAQk9V,EAAe,EAAGA,IAAgB,CACrE,MAAMhwI,EAAa9tN,EAAKgR,MAAM,EAAG8sV,GAAcl0V,KAAK,MACpD,KAAIkkN,EAAWltN,OAASiQ,GAGxB,OAAIitV,IAAiB99V,EAAKY,OACjBktN,GAEF,QAASA,EAAYj9M,EAC9B,CAEA,MAAO,EACT,gCCrMO,SAASkoL,EAAgBR,GAC9B,GAA0B,kBAAfA,EACT,OAAO1jK,OAAO0jK,GAGhB,MAAMwlK,EAA6B,iBAAfxlK,EAA0B35J,WAAW25J,GAAcA,EACvE,MAAoB,iBAATwlK,GAAqBjpU,MAAMipU,IAASA,EAAO,GAAKA,EAAO,OAAlE,EAIOA,CACT,8ICRO,SAASC,EACdC,EACA11V,EACAsoJ,EACAvtI,EAAgB,GAEhB,OAAO,IAAI,MAA0B,CAAClf,EAAS6D,KAC7C,MAAMi2V,EAAYD,EAAW36U,GAC7B,GAAc,OAAV/a,GAAuC,mBAAd21V,EAC3B95V,EAAQmE,OACH,CACL,MAAML,EAASg2V,EAAU,IAAK31V,GAASsoJ,GAEvC,KAAeqtM,EAAUlgW,IAAiB,OAAXkK,GAAmB,KAAMpC,IAAI,oBAAoBo4V,EAAUlgW,sBAEtF,EAAAwvG,EAAA,IAAWtlG,GACRA,EACF6K,MAAKorV,GAASH,EAAsBC,EAAYE,EAAOttM,EAAMvtI,EAAQ,GAAGvQ,KAAK3O,KAC7E2O,KAAK,KAAM9K,GAET+1V,EAAsBC,EAAY/1V,EAAQ2oJ,EAAMvtI,EAAQ,GAC1DvQ,KAAK3O,GACL2O,KAAK,KAAM9K,EAElB,IAEJ,iDCNO,SAASm2V,EAAe/6V,EAAiBg7V,GAC9C,MAAM,MACJhyJ,EAAK,KACL8yE,EAAI,KACJj6E,EAAI,SACJlX,EAAQ,MACR+vB,EAAK,sBACL/mB,EAAqB,YACrBqhH,EAAW,YACXr8F,EAAW,gBACXg4I,EAAe,YACfj0I,EAAW,mBACXsxI,EAAkB,gBAClB3pJ,EAAe,KACfjV,GACE4rK,EAEJC,EAA2Bj7V,EAAM,QAASgpM,GAC1CiyJ,EAA2Bj7V,EAAM,OAAQ87Q,GACzCm/E,EAA2Bj7V,EAAM,OAAQ6hM,GACzCo5J,EAA2Bj7V,EAAM,WAAY2qL,GAE7C3qL,EAAK2zL,uBAAwB,EAAA1wF,EAAA,GAAMjjG,EAAK2zL,sBAAuBA,EAAuB,GAElF+mB,IACF16M,EAAK06M,MAAQA,GAGXrW,IACFrkM,EAAKqkM,gBAAkBA,GAGrBjV,IACFpvL,EAAKovL,KAAOA,GAGV4lH,EAAYz3S,SACdyC,EAAKg1S,YAAc,IAAIh1S,EAAKg1S,eAAgBA,IAG1Cr8F,EAAYp7M,SACdyC,EAAK24M,YAAc,IAAI34M,EAAK24M,eAAgBA,IAG1Cg4I,EAAgBpzV,SAClByC,EAAK2wV,gBAAkB,IAAI3wV,EAAK2wV,mBAAoBA,IAGlDj0I,EAAYn/M,SACdyC,EAAK08M,YAAc,IAAI18M,EAAK08M,eAAgBA,IAG9C18M,EAAKguV,mBAAqB,IAAKhuV,EAAKguV,sBAAuBA,EAC7D,CAMO,SAASiN,EAGdj7V,EAAY8zE,EAAYonR,GACxBl7V,EAAK8zE,IAAQ,EAAAmvB,EAAA,GAAMjjG,EAAK8zE,GAAOonR,EAAU,EAC3C,4DCtDO,SAASC,EACdx4V,EACAuC,EACAsoJ,EACAt7C,EACA82E,EACAwK,GAEA,MAAM,eAAEqrB,EAAiB,EAAC,oBAAEu8I,EAAsB,KAAUz4V,EACtD04V,EAAkB,IACnBn2V,EACHm1M,SAAUn1M,EAAMm1M,UAAY7sD,EAAK6sD,WAAY,UAC7Cv/I,UAAW51D,EAAM41D,YAAa,WAE1BytH,EAAe/6B,EAAK+6B,cAAgB5lL,EAAQ4lL,aAAap0K,KAAI9W,GAAKA,EAAE0L,QA+ErE,SAA4B7D,EAAcvC,GAC/C,MAAM,YAAE2F,EAAW,QAAE8oB,EAAO,KAAEkqU,EAAI,eAAEC,EAAiB,KAAQ54V,EAI7DuC,EAAMoD,YAAcpD,EAAMoD,aAAeA,GAAe,KAEnDpD,EAAMksB,SAAWA,IACpBlsB,EAAMksB,QAAUA,IAGblsB,EAAMo2V,MAAQA,IACjBp2V,EAAMo2V,KAAOA,GAGf,MAAMpoM,EAAUhuJ,EAAMguJ,QAClBA,GAASxoJ,MACXwoJ,EAAQxoJ,KAAM,QAASwoJ,EAAQxoJ,IAAK6wV,GAExC,CAhGEC,CAAmBH,EAAU14V,GA0J/B,SAAmCuC,EAAcu2V,GAC3CA,EAAiBl+V,OAAS,IAC5B2H,EAAMuqL,IAAMvqL,EAAMuqL,KAAO,CAAC,EAC1BvqL,EAAMuqL,IAAIlH,aAAe,IAAKrjL,EAAMuqL,IAAIlH,cAAgB,MAAQkzK,GAEpE,CA9JEC,CAA0BL,EAAU9yK,GAEhCS,GACFA,EAAOjhE,KAAK,qBAAsB7iH,QAIjBP,IAAfO,EAAMyL,MA6FL,SAAuBzL,EAAcy4M,GAE1C,MAAMo4I,GAAqB,OAAwBp4I,GAEnDz4M,EAAMqgG,WAAW18E,QAAQprB,SAAQ8nG,IAC/BA,EAAUwkF,YAAYC,QAAQvsL,SAAQq2J,IAChCA,EAAM01B,WACR11B,EAAMoiM,SAAWH,EAAmBjiM,EAAM01B,UAC5C,GACA,GAEN,CAvGImyK,CAAcN,EAAU14V,EAAQg7M,aAKlC,MAAMi+I,EA8NR,SAAuB1pP,EAA0Bi+O,GAC/C,IAAKA,EACH,OAAOj+O,EAGT,MAAM0pP,EAAa1pP,EAAQA,EAAM6M,QAAU,IAAI,IAE/C,OADA68O,EAAW/yI,OAAOsnI,GACXyL,CACT,CAtOqBC,CAAc3pP,EAAOs7C,EAAK2iM,gBAEzC3iM,EAAKu7C,YACP,QAAsBsyJ,EAAU7tM,EAAKu7C,WAGvC,MAAM+yJ,EAAwB9yK,EAASA,EAAOwyB,qBAAuB,GAK/Dx7M,GAAO,UAAiB0qL,eAE1B8I,GAEFunK,EAAe/6V,EADOwzL,EAAe9I,gBAInCkxK,GAEFb,EAAe/6V,EADQ47V,EAAWlxK,gBAIpC,MAAMgyB,EAAc,IAAKlvD,EAAKkvD,aAAe,MAAQ18M,EAAK08M,aAe1D,OAdIA,EAAYn/M,SACdiwJ,EAAKkvD,YAAcA,GDpFhB,SAA+Bx3M,EAAclF,GAClD,MAAM,YAAE24M,EAAW,KAAEvpB,EAAI,YAAE4lH,EAAW,sBAAErhH,GAA0B3zL,GAqGpE,SAA0BkF,EAAclF,GACtC,MAAM,MAAEgpM,EAAK,KAAE8yE,EAAI,KAAEj6E,EAAI,SAAElX,EAAQ,MAAE+vB,EAAK,gBAAErW,GAAoBrkM,EAE5DtE,OAAOiB,KAAKqsM,GAAOzrM,SACrB2H,EAAM8jM,MAAQ,IAAKA,KAAU9jM,EAAM8jM,QAGjCttM,OAAOiB,KAAKm/Q,GAAMv+Q,SACpB2H,EAAM42Q,KAAO,IAAKA,KAAS52Q,EAAM42Q,OAG/BpgR,OAAOiB,KAAKklM,GAAMtkM,SACpB2H,EAAM28L,KAAO,IAAKA,KAAS38L,EAAM28L,OAG/BnmM,OAAOiB,KAAKguL,GAAUptL,SACxB2H,EAAMylL,SAAW,IAAKA,KAAazlL,EAAMylL,WAGvC+vB,IACFx1M,EAAMw1M,MAAQA,GAIZrW,GAAkC,gBAAfn/L,EAAMyL,OAC3BzL,EAAMw3G,YAAc2nF,EAExB,CA7HE03J,CAAiB72V,EAAOlF,GAKpBovL,GAsIN,SAA0BlqL,EAAckqL,GACtClqL,EAAMylL,SAAW,CACfnzE,OAAO,QAAmB43E,MACvBlqL,EAAMylL,UAGXzlL,EAAMyuL,sBAAwB,CAC5BC,wBAAwB,QAAkCxE,MACvDlqL,EAAMyuL,uBAGX,MAAMgB,GAAW,QAAYvF,GACvBiV,GAAkB,QAAW1P,GAAUp7K,YACzC8qL,IAAoBn/L,EAAMw3G,aAA8B,gBAAfx3G,EAAMyL,OACjDzL,EAAMw3G,YAAc2nF,EAExB,CArJI23J,CAAiB92V,EAAOkqL,GA2J5B,SAAiClqL,EAAcyzM,GAE7CzzM,EAAMyzM,YAAczzM,EAAMyzM,YACtB7xM,MAAMwgC,QAAQpiC,EAAMyzM,aAClBzzM,EAAMyzM,YACN,CAACzzM,EAAMyzM,aACT,GAGAA,IACFzzM,EAAMyzM,YAAczzM,EAAMyzM,YAAYz0M,OAAOy0M,IAI1CzzM,EAAMyzM,YAAYp7M,eACd2H,EAAMyzM,WAEjB,CAzKEsjJ,CAAwB/2V,EAAOyzM,GAsHjC,SAAiCzzM,EAAc8vS,GAC7C,MAAMknD,EAAoB,IAAKh3V,EAAM8vS,aAAe,MAAQA,GAC5D9vS,EAAM8vS,YAAcknD,EAAkB3+V,OAAS2+V,OAAoBv3V,CACrE,CAxHEw3V,CAAwBj3V,EAAO8vS,GA0HjC,SAAiC9vS,EAAcyuL,GAC7CzuL,EAAMyuL,sBAAwB,IACzBzuL,EAAMyuL,yBACNA,EAEP,CA9HEyoK,CAAwBl3V,EAAOyuL,EACjC,CCuEE0oK,CAAsBhB,EAAUr7V,GAQjB26V,EANS,IACnBmB,KAEA97V,EAAK2wV,iBAG4C0K,EAAU7tM,GAElD99I,MAAKuzD,IACbA,GAgED,SAAwB/9D,GAE7B,MAAM6wV,EAA6C,CAAC,EAcpD,GAbA7wV,EAAMqgG,WAAW18E,QAAQprB,SAAQ8nG,IAC/BA,EAAUwkF,YAAYC,QAAQvsL,SAAQq2J,IAChCA,EAAMoiM,WACJpiM,EAAMwoM,SACRvG,EAAmBjiM,EAAMwoM,UAAYxoM,EAAMoiM,SAClCpiM,EAAM01B,WACfusK,EAAmBjiM,EAAM01B,UAAY11B,EAAMoiM,iBAEtCpiM,EAAMoiM,SACf,GACA,IAG2C,IAA3Cx6V,OAAOiB,KAAKo5V,GAAoBx4V,OAClC,OAIF2H,EAAMq3V,WAAar3V,EAAMq3V,YAAc,CAAC,EACxCr3V,EAAMq3V,WAAWvG,OAAS9wV,EAAMq3V,WAAWvG,QAAU,GACrD,MAAMA,EAAS9wV,EAAMq3V,WAAWvG,OAChCt6V,OAAOyiC,QAAQ43T,GAAoBt4V,SAAQ,EAAE+rL,EAAU0sK,MACrDF,EAAO/4V,KAAK,CACV0T,KAAM,YACNslV,UAAWzsK,EACX0sK,YACA,GAEN,CA1FMsG,CAAev5R,GAGa,iBAAnB47I,GAA+BA,EAAiB,EA8G/D,SAAwB35M,EAAqBwxG,EAAe+lP,GAC1D,IAAKv3V,EACH,OAAO,KAGT,MAAM01N,EAAoB,IACrB11N,KACCA,EAAM8vS,aAAe,CACvBA,YAAa9vS,EAAM8vS,YAAY7gS,KAAI3M,IAAK,IACnCA,KACCA,EAAExH,MAAQ,CACZA,MAAM,EAAA+rC,EAAA,IAAUvkC,EAAExH,KAAM02G,EAAO+lP,YAIjCv3V,EAAM28L,MAAQ,CAChBA,MAAM,EAAA91J,EAAA,IAAU7mC,EAAM28L,KAAMnrF,EAAO+lP,OAEjCv3V,EAAMylL,UAAY,CACpBA,UAAU,EAAA5+I,EAAA,IAAU7mC,EAAMylL,SAAUj0E,EAAO+lP,OAEzCv3V,EAAM8jM,OAAS,CACjBA,OAAO,EAAAj9J,EAAA,IAAU7mC,EAAM8jM,MAAOtyF,EAAO+lP,KAwCzC,OA7BIv3V,EAAMylL,UAAUnzE,OAASojH,EAAWjwC,WACtCiwC,EAAWjwC,SAASnzE,MAAQtyG,EAAMylL,SAASnzE,MAGvCtyG,EAAMylL,SAASnzE,MAAMx3G,OACvB46N,EAAWjwC,SAASnzE,MAAMx3G,MAAO,EAAA+rC,EAAA,IAAU7mC,EAAMylL,SAASnzE,MAAMx3G,KAAM02G,EAAO+lP,KAK7Ev3V,EAAM6qL,QACR6qC,EAAW7qC,MAAQ7qL,EAAM6qL,MAAM57K,KAAIi7K,IAC1B,IACFA,KACCA,EAAKpvL,MAAQ,CACfA,MAAM,EAAA+rC,EAAA,IAAUqjJ,EAAKpvL,KAAM02G,EAAO+lP,SAUtCv3V,EAAMylL,UAAUl1D,OAASmlG,EAAWjwC,WACtCiwC,EAAWjwC,SAASl1D,OAAQ,EAAA1pF,EAAA,IAAU7mC,EAAMylL,SAASl1D,MAAO,EAAGgnO,IAG1D7hI,CACT,CA5Ka8hI,CAAez5R,EAAK47I,EAAgBu8I,GAEtCn4R,IAEX,CAwLO,SAAS05R,EACdnvM,GAEA,GAAKA,EAKL,OAaF,SAA+BA,GAC7B,OAAOA,aAAgB,KAAyB,mBAATA,CACzC,CAfMovM,CAAsBpvM,IA4B5B,SAA4BA,GAC1B,OAAO9xJ,OAAOiB,KAAK6wJ,GAAM3gI,MAAKhxB,GAAOghW,EAAmBt0V,SAAS1M,IACnE,CA1BMihW,CAAmBtvM,GAHd,CAAE2iM,eAAgB3iM,GASpBA,CACT,CAOA,MAAMqvM,EAAsD,CAC1D,OACA,QACA,QACA,WACA,OACA,cACA,2FC9UK,SAASE,IACd,OAAO,SACT,CAKO,SAASC,IACd,OAAO,UAAQxuV,UAAU,GAC3B,wECVA,MAAMyuV,EAAmB,cAUlB,SAASC,EAAiBhrP,EAAck9E,GACzCA,GACF,QAAyBl9E,EAA6B+qP,EAAkB7tK,UAGjE,EAA8B6tK,EAEzC,CAMO,SAASE,EAAiBjrP,GAC/B,OAAOA,EAAM+qP,EACf,8TCLO,MAAMG,EAAkB,EAClBC,EAAqB,EAElC,IAAIC,GAA0B,EAOvB,SAASC,EAA8BnuK,GAC5C,MAAQ7D,OAAQ6E,EAAS/E,QAASiG,GAAalC,EAAKjE,eAC9C,KAAEnrL,EAAI,GAAEgyB,EAAE,eAAEk+J,EAAc,OAAEtgL,EAAM,OAAE2hL,EAAM,MAAEpvH,GAAUq7R,EAAWpuK,GAEvE,MAAO,CACLc,iBACAE,UACAkB,WACAtxL,OACAgyB,KACApiB,SACA2hL,SACApvH,QAEJ,CAKO,SAASs7R,EAAmBruK,GACjC,MAAM,OAAE7D,EAAQF,QAASiG,EAAQ,SAAEosK,GAAatuK,EAAKjE,cAI/C+E,EAAiBwtK,EAAWnyK,EAASiyK,EAAWpuK,GAAMc,eACtDh+E,GAAQ,OAAwBk9E,GAAMl9E,MAI5C,MAAO,CACLg+E,iBACAE,QAJcstK,EAAWxrP,GAAOw4F,wBAAwBD,oBAAqB,SAAmBlf,EAKhG+F,WAEJ,CAKO,SAASqsK,EAAkBvuK,GAChC,MAAM,QAAE/D,EAAO,OAAEE,GAAW6D,EAAKjE,cAC3BwF,EAAUitK,EAAcxuK,GAC9B,OAAO,QAA0B/D,EAASE,EAAQoF,EACpD,CAOO,SAASktK,EAA4B17R,GAC1C,OAAIA,GAASA,EAAM5kE,OAAS,EACnB4kE,EAAMhuD,KAAI,EAAG4iB,SAAWw0J,SAAQF,UAASG,gBAAesyK,GAAe99K,iBAAiB,CAC7FoQ,QAAS7E,EACT+F,SAAUjG,EACVsF,QAASnF,IAAe6xK,EACxBr9K,gBACG89K,WAGL,CAEJ,CAKO,SAASC,EAAuB/hT,GACrC,MAAqB,iBAAVA,EACFgiT,EAAyBhiT,GAG9Bl1C,MAAMwgC,QAAQ0U,GAETA,EAAM,GAAKA,EAAM,GAAK,IAG3BA,aAAiB73C,KACZ65V,EAAyBhiT,EAAMp0C,YAGjC,SACT,CAKA,SAASo2V,EAAyBljS,GAEhC,OADaA,EAAY,WACXA,EAAY,IAAOA,CACnC,CAQO,SAAS0iS,EAAWpuK,GACzB,GAmEF,SAA0BA,GACxB,MAAmD,mBAArC,EAAqBgC,WACrC,CArEM6sK,CAAiB7uK,GACnB,OAAOA,EAAKgC,cAGd,MAAQ7F,OAAQ6E,EAAS/E,QAASiG,GAAalC,EAAKjE,cAGpD,GAwCF,SAA6CiE,GAC3C,MAAM8uK,EAAW9uK,EACjB,SAAS8uK,EAASl+K,YAAgBk+K,EAASzjS,WAAeyjS,EAASn1V,MAAUm1V,EAAS98J,SAAa88J,EAAStuV,OAC9G,CA3CMuuV,CAAoC/uK,GAAO,CAC7C,MAAM,WAAEpP,EAAU,UAAEvlH,EAAS,KAAE1xD,EAAI,QAAEq4L,EAAO,OAAExxL,EAAM,MAAEuyD,GAAUitH,EAahE,MAAO,CACLgB,UACAkB,WACAtxL,KAAMggL,EACNzmK,YAAaxQ,EACbmnL,eAXA,iBAAkBd,EACdA,EAAKoB,aACL,sBAAuBpB,EACpBA,EAAuB,mBAAqC7D,YAC7D5mL,EAQN0sL,gBAAiB0sK,EAAuBtjS,GAExCK,UAAWijS,EAAuB38J,SAAYz8L,EAC9CiL,OAAQwuV,EAAiBxuV,GACzBoiB,GAAIguJ,EAAW,MACfuR,OAAQvR,EAAW,MACnB79G,MAAO07R,EAA4B17R,GAEvC,CAIA,MAAO,CACLiuH,UACAkB,WACAD,gBAAiB,EACjBrxL,KAAM,CAAC,EAEX,CAgCO,SAAS49V,EAAcxuK,GAG5B,MAAM,WAAE5D,GAAe4D,EAAKjE,cAC5B,OAAOK,IAAe6xK,CACxB,CAGO,SAASe,EAAiBxuV,GAC/B,GAAKA,GAAUA,EAAOouB,OAAS,KAI/B,OAAIpuB,EAAOouB,OAAS,KACX,KAGFpuB,EAAOlN,SAAW,eAC3B,CAEA,MAAM27V,EAAoB,oBACpBC,EAAkB,kBAUjB,SAASC,EAAmBnvK,EAAiC+H,GAGlE,MAAMxC,EAAWvF,EAAKkvK,IAAoBlvK,GAC1C,QAAyB+H,EAAwCmnK,EAAiB3pK,GAI9EvF,EAAKivK,GACPjvK,EAAKivK,GAAmB94T,IAAI4xJ,IAE5B,QAAyB/H,EAAMivK,EAAmB,IAAIx5T,IAAI,CAACsyJ,IAE/D,CAGO,SAASqnK,EAAwBpvK,EAAiC+H,GACnE/H,EAAKivK,IACPjvK,EAAKivK,GAAmB/2U,OAAO6vK,EAEnC,CAKO,SAASsnK,EAAmBrvK,GACjC,MAAMsvK,EAAY,IAAI75T,IAkBtB,OAhBA,SAAS85T,EAAgBvvK,GAEvB,IAAIsvK,EAAUpjW,IAAI8zL,IAGPwuK,EAAcxuK,GAAO,CAC9BsvK,EAAUn5T,IAAI6pJ,GACd,MAAM6H,EAAa7H,EAAKivK,GAAqBv3V,MAAM+B,KAAKumL,EAAKivK,IAAsB,GACnF,IAAK,MAAMlnK,KAAaF,EACtB0nK,EAAgBxnK,EAEpB,CACF,CAEAwnK,CAAgBvvK,GAETtoL,MAAM+B,KAAK61V,EACpB,CAKO,SAASE,EAAYxvK,GAC1B,OAAOA,EAAKkvK,IAAoBlvK,CAClC,CAKO,SAASyvK,IACd,MAAMzxK,GAAU,UACV4G,GAAM,OAAwB5G,GACpC,OAAI4G,EAAI6qK,cACC7qK,EAAI6qK,iBAGN,QAAiB,UAC1B,CAKO,SAASC,IACTxB,KACH,SAAe,KAEbh/V,QAAQkvC,KACN,sIACD,IAEH8vT,GAA0B,EAE9B,sFC7TA,MAAMyB,EAAyB,GAClBC,EAAmB,IAE1BC,EAAuB,kBACvBC,EAAqB,kCASpB,SAASC,KAAqBC,GACnC,MAAMC,EAAgBD,EAAQhlR,MAAK,CAACnpD,EAAGzpB,IAAMypB,EAAE,GAAKzpB,EAAE,KAAI2M,KAAI+Z,GAAKA,EAAE,KAErE,MAAO,CAAC4tE,EAAewjQ,EAAyB,EAAGnhJ,EAAsB,KACvE,MAAMn0B,EAAuB,GACvB1zE,EAAQxa,EAAM9xE,MAAM,MAE1B,IAAK,IAAI3sB,EAAIiiW,EAAgBjiW,EAAIi5G,EAAM/4G,OAAQF,IAAK,CAClD,IAAIuhC,EAAO03E,EAAMj5G,GAKbuhC,EAAKrhC,OAAS,OAChBqhC,EAAOA,EAAKjxB,MAAM,EAAG,OAKvB,MAAM4xV,EAAcN,EAAqBv0U,KAAKkU,GAAQA,EAAKxkC,QAAQ6kW,EAAsB,MAAQrgU,EAIjG,IAAI2gU,EAAY/0U,MAAM,cAAtB,CAIA,IAAK,MAAMw5L,KAAUq7I,EAAe,CAClC,MAAMvrM,EAAQkwD,EAAOu7I,GAErB,GAAIzrM,EAAO,CACTk2B,EAAO/sL,KAAK62J,GACZ,KACF,CACF,CAEA,GAAIk2B,EAAOzsL,QAAUwhW,EAAyB5gJ,EAC5C,KAZF,CAcF,CAEA,OAuBG,SAAqCriH,GAC1C,IAAKA,EAAMv+F,OACT,MAAO,GAGT,MAAMiiW,EAAa14V,MAAM+B,KAAKizF,GA2B9B,MAxBI,gBAAgBpxE,KAAK+0U,EAAkBD,GAAY/mJ,UAAY,KACjE+mJ,EAAWl2U,MAIbk2U,EAAWtkR,UAGPgkR,EAAmBx0U,KAAK+0U,EAAkBD,GAAY/mJ,UAAY,MACpE+mJ,EAAWl2U,MAUP41U,EAAmBx0U,KAAK+0U,EAAkBD,GAAY/mJ,UAAY,KACpE+mJ,EAAWl2U,OAIRk2U,EAAW7xV,MAAM,EAAGoxV,GAAwB5qV,KAAI2/I,IAAS,IAC3DA,EACH01B,SAAU11B,EAAM01B,UAAYi2K,EAAkBD,GAAYh2K,SAC1DivB,SAAU3kD,EAAM2kD,UAAYumJ,KAEhC,CA5DWU,CAA4B11K,EAAOr8K,MAAMwwM,GAAa,CAEjE,CAQO,SAASwhJ,EAAkChiJ,GAChD,OAAI72M,MAAMwgC,QAAQq2K,GACTwhJ,KAAqBxhJ,GAEvBA,CACT,CA+CA,SAAS8hJ,EAAkBl2U,GACzB,OAAOA,EAAIA,EAAIhsB,OAAS,IAAM,CAAC,CACjC,CAEA,MAAMqiW,EAAsB,cAKrB,SAASC,EAAgBn4U,GAC9B,IACE,OAAKA,GAAoB,mBAAPA,GAGXA,EAAG3e,MAFD62V,CAGX,CAAE,MAGA,OAAOA,CACT,CACF,CAKO,SAASE,EAAmB56V,GACjC,MAAMqgG,EAAYrgG,EAAMqgG,UAExB,GAAIA,EAAW,CACb,MAAMykF,EAAuB,GAC7B,IASE,OAPAzkF,EAAU18E,OAAOprB,SAAQI,IAEnBA,EAAMksL,WAAWC,QAEnBA,EAAO/sL,QAAQY,EAAMksL,WAAWC,OAClC,IAEKA,CACT,CAAE,MACA,MACF,CACF,CAEF,4FC1JO,SAAS+1K,EAASt3V,EAAaqE,EAAc,GAClD,MAAmB,iBAARrE,GAA4B,IAARqE,GAGxBrE,EAAIlL,QAAUuP,EAFZrE,EAEwB,GAAGA,EAAIkF,MAAM,EAAGb,OACf,CAmDA,gBACA,qBACA,SAGA,WAEA,QAAAzP,EAAA,EAAAA,EAAA,SAAAA,IAAA,CACA,aACA,KAMA,WACA,yBAEA,iBAEA,OACA,sCACA,CACA,CAEA,gBACA,CAUA,WACA,EACA,EACA,MAEA,uBAIA,WACA,aAEA,aACA,uBAIA,CAYA,WACA,EACA,KACA,MAEA,4BACA,mFCtH7B,SAAS2iW,EAAuBniW,GACrC,OAAO,IAAIoiW,GAAYl/V,IACrBA,EAAQlD,EAAM,GAElB,CAQO,SAASqiW,EAA+Bx3O,GAC7C,OAAO,IAAIu3O,GAAY,CAAChyU,EAAGrpB,KACzBA,EAAO8jH,EAAO,GAElB,CAQO,MAAMu3O,EAKJ,WAAAjlW,CAAYmlW,GACjBv+V,KAAKo5D,OA9Ca,EA+ClBp5D,KAAKw+V,UAAY,GAEjBx+V,KAAKy+V,aAAaF,EACpB,CAGO,IAAAzwV,CACL4wV,EACAC,GAEA,OAAO,IAAIN,GAAY,CAACl/V,EAAS6D,KAC/BhD,KAAKw+V,UAAUnjW,KAAK,EAClB,EACA4H,IACE,GAAKy7V,EAKH,IACEv/V,EAAQu/V,EAAYz7V,GACtB,CAAE,MAAOse,GACPve,EAAOue,EACT,MANApiB,EAAQ8D,EAOV,EAEF6jH,IACE,GAAK63O,EAGH,IACEx/V,EAAQw/V,EAAW73O,GACrB,CAAE,MAAOvlG,GACPve,EAAOue,EACT,MANAve,EAAO8jH,EAOT,IAGJ9mH,KAAK4+V,kBAAkB,GAE3B,CAGO,MACLD,GAEA,OAAO3+V,KAAK8N,MAAK8vB,GAAOA,GAAK+gU,EAC/B,CAGO,QAAiBE,GACtB,OAAO,IAAIR,GAAqB,CAACl/V,EAAS6D,KACxC,IAAI46B,EACAkhU,EAEJ,OAAO9+V,KAAK8N,MACV7R,IACE6iW,GAAa,EACblhU,EAAM3hC,EACF4iW,GACFA,GACF,IAEF/3O,IACEg4O,GAAa,EACblhU,EAAMkpF,EACF+3O,GACFA,GACF,IAEF/wV,MAAK,KACDgxV,EACF97V,EAAO46B,GAITz+B,EAAQy+B,EAAsB,GAC9B,GAEN,CAGQ,gBAAAghU,GACN,GAlIkB,IAkId5+V,KAAKo5D,OACP,OAGF,MAAM2lS,EAAiB/+V,KAAKw+V,UAAUzyV,QACtC/L,KAAKw+V,UAAY,GAEjBO,EAAeljW,SAAQuyD,IACjBA,EAAQ,KAzIK,IA6IbpuD,KAAKo5D,QACPhL,EAAQ,GAAGpuD,KAAK8pL,QA7ID,IAgJb9pL,KAAKo5D,QACPhL,EAAQ,GAAGpuD,KAAK8pL,QAGlB17H,EAAQ,IAAK,EAAI,GAErB,CAGQ,YAAAqwS,CAAaF,GACnB,MAAMlpB,EAAY,CAACljS,EAAcl2C,KA5Jf,IA6JZ+D,KAAKo5D,UAIL,QAAWn9D,GACR,EAA0B6R,KAAK3O,EAAS6D,IAI/ChD,KAAKo5D,OAASjnB,EACdnyC,KAAK8pL,OAAS7tL,EAEd+D,KAAK4+V,oBAAkB,EAGnBz/V,EAAWlD,IACfo5U,EA5KiB,EA4KSp5U,EAAM,EAG5B+G,EAAU8jH,IACduuN,EA/KiB,EA+KSvuN,EAAO,EAGnC,IACEy3O,EAASp/V,EAAS6D,EACpB,CAAE,MAAOue,GACPve,EAAOue,EACT,CACF,oFC3LF,MAAMy9U,EAAmB,IAoBlB,SAASC,IACd,OAAO18V,KAAK8I,MAAQ2zV,CACtB,CAgCA,IAAIE,EAoBAC,EATG,SAASC,IAGd,OADaF,IAA8BA,EArC7C,WACE,MAAM,YAAEx9K,GAAgB,EAAAiG,WAGxB,IAAKjG,GAAar2K,MAAQq2K,EAAY+oB,WACpC,OAAOw0J,EAGT,MAAMx0J,EAAa/oB,EAAY+oB,WAW/B,MAAO,KACGA,EAAa/oB,EAAYr2K,OAAS2zV,CAE9C,CAeyEK,MAEzE,CA2DO,SAASC,IAKd,OAJKH,IACHA,EAnDJ,WAKE,MAAM,YAAEz9K,GAAgB,EAAAiG,WACxB,IAAKjG,GAAar2K,IAChB,MAAO,MAACtI,EAAW,QAGrB,MAAMwlK,EAAY,KACZg3L,EAAiB79K,EAAYr2K,MAC7Bm0V,EAAUj9V,KAAK8I,MAGfo0V,EAAkB/9K,EAAY+oB,WAChCrlM,KAAKqF,IAAIi3K,EAAY+oB,WAAa80J,EAAiBC,GACnDj3L,EACEm3L,EAAuBD,EAAkBl3L,EAQzCo3L,EAAkBj+K,EAAYv8F,QAAQw6Q,gBAGtCC,EAFgD,iBAApBD,EAEgBv6V,KAAKqF,IAAIk1V,EAAkBJ,EAAiBC,GAAWj3L,EAGzG,OAAIm3L,GAF8BE,EAAuBr3L,EAInDk3L,GAAmBG,EACd,CAACl+K,EAAY+oB,WAAY,cAEzB,CAACk1J,EAAiB,mBAKtB,CAACH,EAAS,UACnB,CAQuBK,IAGdV,EAAiB,EAC1B,wGC7HO,MAAMW,EAAqB,IAAItuU,OACpC,6DA0CK,SAASuuU,EACdn3J,EACAI,GAEA,MAAMg3J,EAhCD,SAAgCC,GACrC,IAAKA,EACH,OAGF,MAAM7tV,EAAU6tV,EAAYr3U,MAAMk3U,GAClC,IAAK1tV,EACH,OAGF,IAAIuhL,EAOJ,MANmB,MAAfvhL,EAAQ,GACVuhL,GAAgB,EACQ,MAAfvhL,EAAQ,KACjBuhL,GAAgB,GAGX,CACLlK,QAASr3K,EAAQ,GACjBuhL,gBACA/E,aAAcx8K,EAAQ,GAE1B,CAU0B8tV,CAAuBt3J,GACzC5W,GAAyB,QAAsCgX,GAErE,IAAKg3J,GAAiBv2K,QACpB,MAAO,CACLA,SAAS,SACT0J,WAAY/tL,KAAKC,UAIrB,MAAM8tL,EAsCE,SACA,EACA,GAGA,gCACA,cACA,SAIA,gCACA,oCACA,gBAEA,gBAEA,sBAGA,aAEA,CA5DWgtK,CAAmCH,EAAiBhuK,GAGnEA,IACFA,EAAuBouK,YAAcjtK,EAAWvvL,YAGlD,MAAM,QAAE6lL,EAAO,aAAEmF,EAAY,cAAE+E,GAAkBqsK,EAEjD,MAAO,CACLv2K,UACAmF,eACAG,QAAS4E,EACTlD,IAAKuB,GAA0B,CAAC,EAChCmB,aAEJ,CAKO,SAASktK,EACd52K,GAA8B,SAC9BE,GAA6B,SAC7BoF,GAEA,IAAIuxK,EAAgB,GAIpB,YAHgBv9V,IAAZgsL,IACFuxK,EAAgBvxK,EAAU,KAAO,MAE5B,GAAGtF,KAAWE,IAAS22K,GACtB,iDChGH,MAAMC,EAA2D,iECkDjE,MAAM54K,EAAa1vL,0DChD1B,iBAFa,EAAKiB,qECAdq+F,EAAcz9F,OAAOT,UAGrB,EAAiBk+F,EAAYr9F,eAO7B09F,EAAuBL,EAAY3zF,SAGnCm0F,EAAiB,IAAS,IAAOC,iBAAcj1F,ECfnD,IAOI,EAPcjJ,OAAOT,UAOcuK,SCHvC,IAII,EAAiB,IAAS,IAAOo0F,iBAAcj1F,EAkBnD,QATA,SAAoB9G,GAClB,OAAa,MAATA,OACe8G,IAAV9G,EAdQ,qBADL,gBAiBJ,GAAkB,KAAkBnC,OAAOmC,GFGrD,SAAmBA,GACjB,IAAIw9F,EAAQ,EAAet/F,KAAK8B,EAAO87F,GACnCthE,EAAMx6B,EAAM87F,GAEhB,IACE97F,EAAM87F,QAAkBh1F,EACxB,IAAI22F,GAAW,CACjB,CAAE,MAAOn4E,GAAI,CAEb,IAAIte,EAAS20F,EAAqBz9F,KAAK8B,GAQvC,OAPIy9F,IACED,EACFx9F,EAAM87F,GAAkBthE,SAEjBx6B,EAAM87F,IAGV90F,CACT,CEpBM,CAAUhH,GDNhB,SAAwBA,GACtB,OAAO,EAAqB9B,KAAK8B,EACnC,CCKM,CAAeA,EACrB,iDCZA,QANA,SAAmB0C,GACjB,OAAO,SAAS1C,GACd,OAAO0C,EAAK1C,EACd,CACF,iDCRA,QAFkC,iBAAVk4G,QAAsBA,QAAUA,OAAOr6G,SAAWA,QAAUq6G,sDCApF,IAGI9d,EAAW,mBAoBf,QAVA,SAAiBp6F,EAAON,GACtB,IAAIoT,SAAc9S,EAGlB,SAFAN,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARoT,GACU,UAARA,GAAoBsnF,EAASvtE,KAAK7sB,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQN,CACjD,iGCOA,QAdA,SAAwBM,EAAOoiB,EAAOxjB,GACpC,KAAK,OAASA,GACZ,OAAO,EAET,IAAIkU,SAAcsP,EAClB,SAAY,UAARtP,GACK,OAAYlU,KAAW,OAAQwjB,EAAOxjB,EAAOc,QACrC,UAARoT,GAAoBsP,KAASxjB,KAE7B,OAAGA,EAAOwjB,GAAQpiB,EAG7B,gECxBIw6F,EAAgC,iBAAX5+F,SAAuBA,UAAYA,QAAQ2/E,UAAY3/E,QAG5E6+F,EAAaD,GAAgC,iBAAV3+F,QAAsBA,SAAWA,OAAO0/E,UAAY1/E,OAMvF6+F,EAHgBD,GAAcA,EAAW7+F,UAAY4+F,GAGtB,IAAWv1E,QAiB9C,QAdgB,WACd,IAIE,OAFYw1E,GAAcA,EAAWp1E,SAAWo1E,EAAWp1E,QAAQ,QAAQk9E,OAOpE7H,GAAeA,EAAYE,SAAWF,EAAYE,QAAQ,OACnE,CAAE,MAAOt1E,GAAI,CACf,CAZe,iECZXi1E,EAA0B,iBAAR39F,MAAoBA,MAAQA,KAAKiB,SAAWA,QAAUjB,KAK5E,QAFW,KAAc29F,GAAY7T,SAAS,cAATA,4ECgBrC,QAJU,WACR,OAAO,IAAKpgF,KAAK8I,KACnB,ECnBA,IAAIm1V,EAAe,KCEnB,IAAIC,EAAc,OAelB,QANA,SAAkBviW,GAChB,OAAOA,EACHA,EAAO6N,MAAM,EDHnB,SAAyB7N,GAGvB,IAFA,IAAImgB,EAAQngB,EAAOvC,OAEZ0iB,KAAWmiV,EAAa13U,KAAK5qB,EAAO+iC,OAAO5iB,MAClD,OAAOA,CACT,CCFsB,CAAgBngB,GAAU,GAAG1F,QAAQioW,EAAa,IAClEviW,CACN,iBCRIwiW,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAe71V,SA8CnB,QArBA,SAAkB/O,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,IAAI,EAAAw7S,EAAA,GAASx7S,GACX,OA1CM,IA4CR,IAAI,EAAA6gG,EAAA,GAAS7gG,GAAQ,CACnB,IAAIizB,EAAgC,mBAAjBjzB,EAAMqP,QAAwBrP,EAAMqP,UAAYrP,EACnEA,GAAQ,EAAA6gG,EAAA,GAAS5tE,GAAUA,EAAQ,GAAMA,CAC3C,CACA,GAAoB,iBAATjzB,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQ,EAASA,GACjB,IAAI6kW,EAAWH,EAAW73U,KAAK7sB,GAC/B,OAAQ6kW,GAAYF,EAAU93U,KAAK7sB,GAC/B4kW,EAAa5kW,EAAM8P,MAAM,GAAI+0V,EAAW,EAAI,GAC3CJ,EAAW53U,KAAK7sB,GAvDb,KAuD6BA,CACvC,ECxDA,IAGI4iG,EAAYz5F,KAAK8F,IACjB61V,EAAY37V,KAAKm/B,IAqLrB,QA7HA,SAAkB5lC,EAAM2U,EAAMvS,GAC5B,IAAIigW,EACAC,EACAC,EACAj+V,EACA48E,EACA29F,EACA2jL,EAAiB,EACjB9iC,GAAU,EACV+iC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAAR1iW,EACT,MAAM,IAAImB,UAzEQ,uBAmFpB,SAASwhW,EAAW9yV,GAClB,IAAIgF,EAAOwtV,EACPz/P,EAAU0/P,EAKd,OAHAD,EAAWC,OAAWl+V,EACtBo+V,EAAiB3yV,EACjBvL,EAAStE,EAAKrD,MAAMimG,EAAS/tF,EAE/B,CAqBA,SAAS+tV,EAAa/yV,GACpB,IAAIgzV,EAAoBhzV,EAAOgvK,EAM/B,YAAyBz6K,IAAjBy6K,GAA+BgkL,GAAqBluV,GACzDkuV,EAAoB,GAAOJ,GANJ5yV,EAAO2yV,GAM8BD,CACjE,CAEA,SAASO,IACP,IAAIjzV,EAAO,IACX,GAAI+yV,EAAa/yV,GACf,OAAOkzV,EAAalzV,GAGtBqxE,EAAUp4E,WAAWg6V,EA3BvB,SAAuBjzV,GACrB,IAEImzV,EAAcruV,GAFM9E,EAAOgvK,GAI/B,OAAO4jL,EACHL,EAAUY,EAAaT,GAJD1yV,EAAO2yV,IAK7BQ,CACN,CAmBqCC,CAAcpzV,GACnD,CAEA,SAASkzV,EAAalzV,GAKpB,OAJAqxE,OAAU98E,EAINs+V,GAAYL,EACPM,EAAW9yV,IAEpBwyV,EAAWC,OAAWl+V,EACfE,EACT,CAcA,SAAS4+V,IACP,IAAIrzV,EAAO,IACPszV,EAAaP,EAAa/yV,GAM9B,GAJAwyV,EAAWtlW,UACXulW,EAAWjhW,KACXw9K,EAAehvK,EAEXszV,EAAY,CACd,QAAgB/+V,IAAZ88E,EACF,OAzEN,SAAqBrxE,GAMnB,OAJA2yV,EAAiB3yV,EAEjBqxE,EAAUp4E,WAAWg6V,EAAcnuV,GAE5B+qT,EAAUijC,EAAW9yV,GAAQvL,CACtC,CAkEa8+V,CAAYvkL,GAErB,GAAI4jL,EAIF,OAFAh1V,aAAayzE,GACbA,EAAUp4E,WAAWg6V,EAAcnuV,GAC5BguV,EAAW9jL,EAEtB,CAIA,YAHgBz6K,IAAZ88E,IACFA,EAAUp4E,WAAWg6V,EAAcnuV,IAE9BrQ,CACT,CAGA,OA3GAqQ,EAAO,EAASA,IAAS,GACrB,EAAAwpF,EAAA,GAAS/7F,KACXs9T,IAAYt9T,EAAQs9T,QAEpB6iC,GADAE,EAAS,YAAargW,GACH89F,EAAU,EAAS99F,EAAQmgW,UAAY,EAAG5tV,GAAQ4tV,EACrEG,EAAW,aAActgW,IAAYA,EAAQsgW,SAAWA,GAoG1DQ,EAAUpoP,OApCV,gBACkB12G,IAAZ88E,GACFzzE,aAAayzE,GAEfshR,EAAiB,EACjBH,EAAWxjL,EAAeyjL,EAAWphR,OAAU98E,CACjD,EA+BA8+V,EAAUniW,MA7BV,WACE,YAAmBqD,IAAZ88E,EAAwB58E,EAASy+V,EAAa,IACvD,EA4BOG,CACT,iDCxJA,QAJA,SAAY5lW,EAAOizB,GACjB,OAAOjzB,IAAUizB,GAAUjzB,GAAUA,GAASizB,GAAUA,CAC1D,iDCTA,QAFchqB,MAAMwgC,iFCSpB,QAJA,SAAqBzpC,GACnB,OAAgB,MAATA,IAAiB,OAASA,EAAMN,WAAY,OAAWM,EAChE,2ECMA,QAVA,SAAoBA,GAClB,KAAK,OAASA,GACZ,OAAO,EAIT,IAAIw6B,GAAM,OAAWx6B,GACrB,MA5BY,qBA4BLw6B,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,CAC/D,iDCAA,QALA,SAAkBx6B,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,gBA+BvB,iDCFA,QALA,SAAkBA,GAChB,IAAI8S,SAAc9S,EAClB,OAAgB,MAATA,IAA0B,UAAR8S,GAA4B,YAARA,EAC/C,iDCAA,QAJA,SAAsB9S,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,2ECEA,QALA,SAAkBA,GAChB,MAAuB,iBAATA,IACX,OAAaA,IArBF,oBAqBY,OAAWA,EACvC,iECNA,QAVA,SAAsBo8E,EAAOp+E,GAE3B,IADA,IAAI0B,EAAS08E,EAAM18E,OACZA,KACL,IAAI,EAAAm0B,EAAA,GAAGuoD,EAAM18E,GAAQ,GAAI1B,GACvB,OAAO0B,EAGX,OAAQ,CACV,ECfA,IAGI+2C,EAHaxtC,MAAM7L,UAGCq5C,OCOxB,SAASwmD,EAAU38D,GACjB,IAAIle,GAAS,EACT1iB,EAAoB,MAAX4gC,EAAkB,EAAIA,EAAQ5gC,OAG3C,IADAqE,KAAK4xD,UACIvzC,EAAQ1iB,GAAQ,CACvB,IAAIs9F,EAAQ18D,EAAQle,GACpBre,KAAK3F,IAAI4+F,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAC,EAAU7/F,UAAUu4D,MClBpB,WACE5xD,KAAKq5F,SAAW,GAChBr5F,KAAK4W,KAAO,CACd,EDgBAsiF,EAAU7/F,UAAkB,ODT5B,SAAyBY,GACvB,IAAImE,EAAO4B,KAAKq5F,SACZh7E,EAAQ,EAAajgB,EAAMnE,GAE/B,QAAIokB,EAAQ,IAIRA,GADYjgB,EAAKzC,OAAS,EAE5ByC,EAAKspB,MAELgrB,EAAOv4C,KAAKiE,EAAMigB,EAAO,KAEzBre,KAAK4W,KACA,GACT,ECLAsiF,EAAU7/F,UAAUM,IEhBpB,SAAsBM,GACpB,IAAImE,EAAO4B,KAAKq5F,SACZh7E,EAAQ,EAAajgB,EAAMnE,GAE/B,OAAOokB,EAAQ,OAAItb,EAAY3E,EAAKigB,GAAO,EAC7C,EFYA66E,EAAU7/F,UAAUK,IGjBpB,SAAsBO,GACpB,OAAO,EAAa+F,KAAKq5F,SAAUp/F,IAAQ,CAC7C,EHgBAi/F,EAAU7/F,UAAUgB,IIjBpB,SAAsBJ,EAAKgC,GACzB,IAAImC,EAAO4B,KAAKq5F,SACZh7E,EAAQ,EAAajgB,EAAMnE,GAQ/B,OANIokB,EAAQ,KACRre,KAAK4W,KACPxY,EAAK/C,KAAK,CAACpB,EAAKgC,KAEhBmC,EAAKigB,GAAO,GAAKpiB,EAEZ+D,IACT,EJQA,oCK1BA,QAFiB,IAAK,sBCAtB,IACMo3F,EADFM,GACEN,EAAM,SAASp7D,KAAK,GAAc,EAAWjhC,MAAQ,EAAWA,KAAK48F,UAAY,KACvE,iBAAmBP,EAAO,kBCDtCK,EAHY9U,SAAStpF,UAGIuK,SCK7B,IAGIwyF,EAAe,8BAGf,EAAYzT,SAAStpF,UACrBk+F,EAAcz9F,OAAOT,UAGrB,EAAe,EAAUuK,SAGzB,EAAiB2zF,EAAYr9F,eAG7B29F,EAAarmE,OAAO,IACtB,EAAar3B,KAAK,GAAgB3B,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhF,QARA,SAAsByD,GACpB,UAAK,EAAA6gG,EAAA,GAAS7gG,KFxBE0C,EEwBiB1C,EFvBxBy7F,GAAeA,KAAc/4F,OE0BxB,EAAAq+F,EAAA,GAAW/gG,GAAS47F,EAAazB,GAChCttE,KD9BjB,SAAkBnqB,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO84F,EAAat9F,KAAKwE,EAC3B,CAAE,MAAO4iB,GAAI,CACb,IACE,OAAQ5iB,EAAO,EACjB,CAAE,MAAO4iB,GAAI,CACf,CACA,MAAO,EACT,CCoBsB,CAAStlB,IF5B/B,IAAkB0C,CE6BlB,EC5BA,EALA,SAAmB9D,EAAQZ,GACzB,IAAIgC,ECJN,SAAkBpB,EAAQZ,GACxB,OAAiB,MAAVY,OAAiBkI,EAAYlI,EAAOZ,EAC7C,CDEc,CAASY,EAAQZ,GAC7B,OAAO,EAAagC,GAASA,OAAQ8G,CACvC,EERA,EAFU,EAAU,IAAM,OCC1B,EAFmB,EAAUjJ,OAAQ,UCArC,IAMI,EAHcA,OAAOT,UAGQa,eCNjC,IAGI,EAHcJ,OAAOT,UAGQa,eCOjC,SAAS8+F,EAAKz8D,GACZ,IAAIle,GAAS,EACT1iB,EAAoB,MAAX4gC,EAAkB,EAAIA,EAAQ5gC,OAG3C,IADAqE,KAAK4xD,UACIvzC,EAAQ1iB,GAAQ,CACvB,IAAIs9F,EAAQ18D,EAAQle,GACpBre,KAAK3F,IAAI4+F,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAD,EAAK3/F,UAAUu4D,MChBf,WACE5xD,KAAKq5F,SAAW,EAAe,EAAa,MAAQ,CAAC,EACrDr5F,KAAK4W,KAAO,CACd,EDcAoiF,EAAK3/F,UAAkB,OEhBvB,SAAoBY,GAClB,IAAIgJ,EAASjD,KAAKtG,IAAIO,WAAe+F,KAAKq5F,SAASp/F,GAEnD,OADA+F,KAAK4W,MAAQ3T,EAAS,EAAI,EACnBA,CACT,EFaA+1F,EAAK3/F,UAAUM,IFPf,SAAiBM,GACf,IAAImE,EAAO4B,KAAKq5F,SAChB,GAAI,EAAc,CAChB,IAAIp2F,EAAS7E,EAAKnE,GAClB,MArBiB,8BAqBVgJ,OAA4BF,EAAYE,CACjD,CACA,OAAO,EAAe9I,KAAKiE,EAAMnE,GAAOmE,EAAKnE,QAAO8I,CACtD,EECAi2F,EAAK3/F,UAAUK,IDXf,SAAiBO,GACf,IAAImE,EAAO4B,KAAKq5F,SAChB,OAAO,OAA8Bt2F,IAAd3E,EAAKnE,GAAsB,EAAeE,KAAKiE,EAAMnE,EAC9E,ECSA++F,EAAK3/F,UAAUgB,IGdf,SAAiBJ,EAAKgC,GACpB,IAAImC,EAAO4B,KAAKq5F,SAGhB,OAFAr5F,KAAK4W,MAAQ5W,KAAKtG,IAAIO,GAAO,EAAI,EACjCmE,EAAKnE,GAAQ,QAA0B8I,IAAV9G,EAfV,4BAekDA,EAC9D+D,IACT,EHWA,UIdA,EAPA,SAAoBuS,EAAKtY,GACvB,ICJiBgC,EACb8S,EDGA3Q,EAAOmU,EAAI8mF,SACf,OCHgB,WADZtqF,SADa9S,EDKAhC,KCHmB,UAAR8U,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV9S,EACU,OAAVA,GDEDmC,EAAmB,iBAAPnE,EAAkB,SAAW,QACzCmE,EAAKmU,GACX,EEFA,SAAS4mF,EAAS58D,GAChB,IAAIle,GAAS,EACT1iB,EAAoB,MAAX4gC,EAAkB,EAAIA,EAAQ5gC,OAG3C,IADAqE,KAAK4xD,UACIvzC,EAAQ1iB,GAAQ,CACvB,IAAIs9F,EAAQ18D,EAAQle,GACpBre,KAAK3F,IAAI4+F,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAE,EAAS9/F,UAAUu4D,MCdnB,WACE5xD,KAAK4W,KAAO,EACZ5W,KAAKq5F,SAAW,CACd,KAAQ,IAAI,EACZ,IAAO,IAAK,GAAO,GACnB,OAAU,IAAI,EAElB,EDQAF,EAAS9/F,UAAkB,OEf3B,SAAwBY,GACtB,IAAIgJ,EAAS,EAAWjD,KAAM/F,GAAa,OAAEA,GAE7C,OADA+F,KAAK4W,MAAQ3T,EAAS,EAAI,EACnBA,CACT,EFYAk2F,EAAS9/F,UAAUM,IGhBnB,SAAqBM,GACnB,OAAO,EAAW+F,KAAM/F,GAAKN,IAAIM,EACnC,EHeAk/F,EAAS9/F,UAAUK,IIjBnB,SAAqBO,GACnB,OAAO,EAAW+F,KAAM/F,GAAKP,IAAIO,EACnC,EJgBAk/F,EAAS9/F,UAAUgB,IKjBnB,SAAqBJ,EAAKgC,GACxB,IAAImC,EAAO,EAAW4B,KAAM/F,GACxB2c,EAAOxY,EAAKwY,KAIhB,OAFAxY,EAAK/D,IAAIJ,EAAKgC,GACd+D,KAAK4W,MAAQxY,EAAKwY,MAAQA,EAAO,EAAI,EAC9B5W,IACT,ELYA,UMjBA,SAASs5F,EAAM/8D,GACb,IAAIn+B,EAAO4B,KAAKq5F,SAAW,IAAI,EAAU98D,GACzCv8B,KAAK4W,KAAOxY,EAAKwY,IACnB,CAGA0iF,EAAMjgG,UAAUu4D,MCXhB,WACE5xD,KAAKq5F,SAAW,IAAI,EACpBr5F,KAAK4W,KAAO,CACd,EDSA0iF,EAAMjgG,UAAkB,OEZxB,SAAqBY,GACnB,IAAImE,EAAO4B,KAAKq5F,SACZp2F,EAAS7E,EAAa,OAAEnE,GAG5B,OADA+F,KAAK4W,KAAOxY,EAAKwY,KACV3T,CACT,EFOAq2F,EAAMjgG,UAAUM,IGbhB,SAAkBM,GAChB,OAAO+F,KAAKq5F,SAAS1/F,IAAIM,EAC3B,EHYAq/F,EAAMjgG,UAAUK,IIdhB,SAAkBO,GAChB,OAAO+F,KAAKq5F,SAAS3/F,IAAIO,EAC3B,EJaAq/F,EAAMjgG,UAAUgB,IKPhB,SAAkBJ,EAAKgC,GACrB,IAAImC,EAAO4B,KAAKq5F,SAChB,GAAIj7F,aAAgB,EAAW,CAC7B,IAAI8+F,EAAQ9+F,EAAKi7F,SACjB,IAAK,GAAQ6D,EAAMvhG,OAASwhG,IAG1B,OAFAD,EAAM7hG,KAAK,CAACpB,EAAKgC,IACjB+D,KAAK4W,OAASxY,EAAKwY,KACZ5W,KAET5B,EAAO4B,KAAKq5F,SAAW,IAAI,EAAS6D,EACtC,CAGA,OAFA9+F,EAAK/D,IAAIJ,EAAKgC,GACd+D,KAAK4W,KAAOxY,EAAKwY,KACV5W,IACT,ELLA,UMhBA,EARsB,WACpB,IACE,IAAIrB,EAAO,EAAU7E,OAAQ,kBAE7B,OADA6E,EAAK,CAAC,EAAG,GAAI,CAAC,GACPA,CACT,CAAE,MAAO4iB,GAAI,CACf,CANqB,GCsBrB,EAbA,SAAyB1mB,EAAQZ,EAAKgC,GACzB,aAAPhC,GAAsB,EACxB,EAAeY,EAAQZ,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASgC,EACT,UAAY,IAGdpB,EAAOZ,GAAOgC,CAElB,ECHA,EAPA,SAA0BpB,EAAQZ,EAAKgC,SACtB8G,IAAV9G,KAAwB,EAAA6zB,EAAA,GAAGj1B,EAAOZ,GAAMgC,SAC9B8G,IAAV9G,KAAyBhC,KAAOY,KACnC,EAAgBA,EAAQZ,EAAKgC,EAEjC,ECFA,ECPS,SAASpB,EAAQujG,EAAU5B,GAMhC,IALA,IAAIn+E,GAAS,EACTghF,EAAWvlG,OAAOe,GAClBwB,EAAQmgG,EAAS3hG,GACjBc,EAASU,EAAMV,OAEZA,KAAU,CACf,IAAI1B,EAAMoC,IAA6BgiB,GACvC,IAA+C,IAA3C+/E,EAASiB,EAASplG,GAAMA,EAAKolG,GAC/B,KAEJ,CACA,OAAOxkG,CACT,EClBF,IAAI47F,EAAgC,iBAAX5+F,SAAuBA,UAAYA,QAAQ2/E,UAAY3/E,QAG5E6+F,EAAaD,GAAgC,iBAAV3+F,QAAsBA,SAAWA,OAAO0/E,UAAY1/E,OAMvFggG,EAHgBpB,GAAcA,EAAW7+F,UAAY4+F,EAG5B,IAAKqB,YAAS/0F,EACvC47F,EAAc7G,EAASA,EAAO6G,iBAAc57F,EAqBhD,MC7BA,EAFiB,IAAKiC,WCYtB,EALA,SAAyB06F,EAAYM,GACnC,ICFwBL,EACpB18F,EDCA83F,EAASiF,GCFWL,EDEeD,EAAW3E,OCD9C93F,EAAS,IAAI08F,EAAYvmG,YAAYumG,EAAY9E,YACrD,IAAI,EAAW53F,GAAQ5I,IAAI,IAAI,EAAWslG,IACnC18F,GDDqDy8F,EAAW3E,OACvE,OAAO,IAAI2E,EAAWtmG,YAAY2hG,EAAQ2E,EAAW5E,WAAY4E,EAAW/jG,OAC9E,EEVA,IAAIijG,EAAe9kG,OAAO05B,OA0B1B,QAhBkB,WAChB,SAAS34B,IAAU,CACnB,OAAO,SAAS00E,GACd,KAAK,EAAAutB,EAAA,GAASvtB,GACZ,MAAO,CAAC,EAEV,GAAIqvB,EACF,OAAOA,EAAarvB,GAEtB10E,EAAOxB,UAAYk2E,EACnB,IAAItsE,EAAS,IAAIpI,EAEjB,OADAA,EAAOxB,eAAY0J,EACZE,CACT,CACF,CAdiB,GCRjB,GCGiBtE,EDLU7E,OAAOitF,eCKXhuB,EDL2Bj/D,OCMzC,SAASg7B,GACd,OAAOn2B,EAAKo6D,EAAUjkC,GACxB,GAHF,IAAiBn2B,EAAMo6D,ECPnB,EAAcj/D,OAAOT,UAgBzB,QAPA,SAAqB4C,GACnB,IAAIwhG,EAAOxhG,GAASA,EAAM7C,YAG1B,OAAO6C,KAFqB,mBAARwhG,GAAsBA,EAAKpkG,WAAc,EAG/D,4BCEA,QAJA,SAAyB4C,GACvB,OAAO,EAAA69F,EAAA,GAAa79F,IAVR,uBAUkB,OAAWA,EAC3C,ECXA,IAAI,GAAcnC,OAAOT,UAGrB,GAAiB,GAAYa,eAG7Bs5C,GAAuB,GAAYA,qBAyBvC,SALkB,EAAgB,WAAa,OAAO93C,SAAW,CAA/B,IAAsC,EAAkB,SAASO,GACjG,OAAO,EAAA69F,EAAA,GAAa79F,IAAU,GAAe9B,KAAK8B,EAAO,YACtDu3C,GAAqBr5C,KAAK8B,EAAO,SACtC,8BC7BA,IAAI,GAAgC,iBAAXpE,SAAuBA,UAAYA,QAAQ2/E,UAAY3/E,QAG5E,GAAa,IAAgC,iBAAVC,QAAsBA,SAAWA,OAAO0/E,UAAY1/E,OAMvF,GAHgB,IAAc,GAAWD,UAAY,GAG5B,IAAKigG,YAAS/0F,EAwB3C,UArBqB,GAAS,GAAOo1F,cAAWp1F,ICHhD,WACE,OAAO,CACT,ECVA,IAGI,GAAY4/E,SAAStpF,UACrB,GAAcS,OAAOT,UAGrB,GAAe,GAAUuK,SAGzB,GAAiB,GAAY1J,eAG7BukG,GAAmB,GAAatkG,KAAKL,wBCcrCw8F,GAAiB,CAAC,EACtBA,GAZiB,yBAYYA,GAXZ,yBAYjBA,GAXc,sBAWYA,GAVX,uBAWfA,GAVe,uBAUYA,GATZ,uBAUfA,GATsB,8BASYA,GARlB,wBAShBA,GARgB,yBAQY,EAC5BA,GAjCc,sBAiCYA,GAhCX,kBAiCfA,GApBqB,wBAoBYA,GAhCnB,oBAiCdA,GApBkB,qBAoBYA,GAhChB,iBAiCdA,GAhCe,kBAgCYA,GA/Bb,qBAgCdA,GA/Ba,gBA+BYA,GA9BT,mBA+BhBA,GA9BgB,mBA8BYA,GA7BZ,mBA8BhBA,GA7Ba,gBA6BYA,GA5BT,mBA6BhBA,GA5BiB,qBA4BY,8BCxCzBQ,GAAmB,MAAY,KAASC,aAqB5C,SAFmBD,IAAmB,QAAUA,ID8BhD,SAA0B76F,GACxB,OAAO,EAAA69F,EAAA,GAAa79F,KAClB,EAAA2hG,GAAA,GAAS3hG,EAAMN,WAAa26F,IAAe,OAAWr6F,GAC1D,EErCA,GAZA,SAAiBpB,EAAQZ,GACvB,IAAY,gBAARA,GAAgD,mBAAhBY,EAAOZ,KAIhC,aAAPA,EAIJ,OAAOY,EAAOZ,EAChB,ECdA,IAGI,GAHcH,OAAOT,UAGQa,eAoBjC,SARA,SAAqBW,EAAQZ,EAAKgC,GAChC,IAAI2/F,EAAW/gG,EAAOZ,GAChB,GAAeE,KAAKU,EAAQZ,KAAQ,EAAA61B,EAAA,GAAG8rE,EAAU3/F,UACxC8G,IAAV9G,GAAyBhC,KAAOY,IACnC,EAAgBA,EAAQZ,EAAKgC,EAEjC,kBCdI,GAHcnC,OAAOT,UAGQa,eAqCjC,SA3BA,SAAuB+B,EAAO6hG,GAC5B,IAAIC,GAAQ,EAAAr4D,GAAA,GAAQzpC,GAChB+hG,GAASD,GAAS,GAAY9hG,GAC9BgiG,GAAUF,IAAUC,GAAS,GAAS/hG,GACtCiiG,GAAUH,IAAUC,IAAUC,GAAU,GAAahiG,GACrDkiG,EAAcJ,GAASC,GAASC,GAAUC,EAC1Cj7F,EAASk7F,EClBf,SAAmB73F,EAAG83F,GAIpB,IAHA,IAAI//E,GAAS,EACTpb,EAASiC,MAAMoB,KAEV+X,EAAQ/X,GACfrD,EAAOob,GAAS+/E,EAAS//E,GAE3B,OAAOpb,CACT,CDU6B,CAAUhH,EAAMN,OAAQs/B,QAAU,GACzDt/B,EAASsH,EAAOtH,OAEpB,IAAK,IAAI1B,KAAOgC,GACT6hG,IAAa,GAAe3jG,KAAK8B,EAAOhC,IACvCkkG,IAEQ,UAAPlkG,GAECgkG,IAAkB,UAAPhkG,GAA0B,UAAPA,IAE9BikG,IAAkB,UAAPjkG,GAA0B,cAAPA,GAA8B,cAAPA,KAEtD,QAAQA,EAAK0B,KAElBsH,EAAO5H,KAAKpB,GAGhB,OAAOgJ,CACT,EEzCA,IAGI,GAHcnJ,OAAOT,UAGQa,eAwBjC,SAfA,SAAoBW,GAClB,KAAK,EAAAiiG,EAAA,GAASjiG,GACZ,OCVJ,SAAsBA,GACpB,IAAIoI,EAAS,GACb,GAAc,MAAVpI,EACF,IAAK,IAAIZ,KAAOH,OAAOe,GACrBoI,EAAO5H,KAAKpB,GAGhB,OAAOgJ,CACT,CDEW,CAAapI,GAEtB,IAAIqmG,EAAU,EAAYrmG,GACtBoI,EAAS,GAEb,IAAK,IAAIhJ,KAAOY,GACD,eAAPZ,IAAyBinG,GAAY,GAAe/mG,KAAKU,EAAQZ,KACrEgJ,EAAO5H,KAAKpB,GAGhB,OAAOgJ,CACT,EECA,GAJA,SAAgBpI,GACd,OAAO,EAAAilG,GAAA,GAAYjlG,GAAU,GAAcA,GAAQ,GAAQ,GAAWA,EACxE,ECEA,GAJA,SAAuBoB,GACrB,OCfF,SAAoBL,EAAQS,EAAOxB,EAAQo/F,GACzC,IAAIkG,GAAStlG,EACbA,IAAWA,EAAS,CAAC,GAKrB,IAHA,IAAIwjB,GAAS,EACT1iB,EAASU,EAAMV,SAEV0iB,EAAQ1iB,GAAQ,CACvB,IAAI1B,EAAMoC,EAAMgiB,GAEZ4lD,EAAWg2B,EACXA,EAAWp/F,EAAOZ,GAAM2B,EAAO3B,GAAMA,EAAKY,EAAQe,QAClDmH,OAEaA,IAAbkhE,IACFA,EAAWroE,EAAO3B,IAEhBkmG,EACF,EAAgBtlG,EAAQZ,EAAKgqE,GAE7B,GAAYppE,EAAQZ,EAAKgqE,EAE7B,CACA,OAAOppE,CACT,CDTS,CAAWoB,EAAO,GAAOA,GAClC,EEgEA,GA9DA,SAAuBpB,EAAQe,EAAQ3B,EAAKmlG,EAAUI,EAAWvF,EAAYC,GAC3E,ICJyBj+F,EDIrB2/F,EAAW,GAAQ/gG,EAAQZ,GAC3BslG,EAAW,GAAQ3jG,EAAQ3B,GAC3BihG,EAAUhB,EAAMvgG,IAAI4lG,GAExB,GAAIrE,EACF,EAAiBrgG,EAAQZ,EAAKihG,OADhC,CAIA,IAAIj3B,EAAWg2B,EACXA,EAAW2B,EAAU2D,EAAWtlG,EAAM,GAAKY,EAAQe,EAAQs+F,QAC3Dn3F,EAEA68F,OAAwB78F,IAAbkhE,EAEf,GAAI27B,EAAU,CACZ,IAAI7B,GAAQ,EAAAr4D,GAAA,GAAQ65D,GAChBtB,GAAUF,GAAS,GAASwB,GAC5BM,GAAW9B,IAAUE,GAAU,GAAasB,GAEhDt7B,EAAWs7B,EACPxB,GAASE,GAAU4B,GACjB,EAAAn6D,GAAA,GAAQk2D,GACV33B,EAAW23B,GC1BQ3/F,ED4BM2/F,GC3BxB,EAAA9B,EAAA,GAAa79F,KAAU,EAAA6jG,GAAA,GAAY7jG,GD4BpCgoE,EEjDR,SAAmBroE,EAAQy8E,GACzB,IAAIh6D,GAAS,EACT1iB,EAASC,EAAOD,OAGpB,IADA08E,IAAUA,EAAQnzE,MAAMvJ,MACf0iB,EAAQ1iB,GACf08E,EAAMh6D,GAASziB,EAAOyiB,GAExB,OAAOg6D,CACT,CFwCmB,CAAUujB,GAEdqC,GACP2B,GAAW,EACX37B,ExBtCR,SAAqB82B,EAAQiF,GAC3B,GAAIA,EACF,OAAOjF,EAAOhvF,QAEhB,IAAIpQ,EAASo/F,EAAOp/F,OAChBsH,EAAS07F,EAAcA,EAAYhjG,GAAU,IAAIo/F,EAAO3hG,YAAYuC,GAGxE,OADAo/F,EAAOovE,KAAKlnK,GACLA,CACT,CwB6BmB,CAAYs8F,GAAU,IAE1BM,GACPD,GAAW,EACX37B,EAAW,EAAgBs7B,GAAU,IAGrCt7B,EAAW,IZpBnB,SAAuBhoE,GACrB,KAAK,EAAA69F,EAAA,GAAa79F,IA5CJ,oBA4Cc,OAAWA,GACrC,OAAO,EAET,IAAIszE,EAAQ,EAAatzE,GACzB,GAAc,OAAVszE,EACF,OAAO,EAET,IAAIkuB,EAAO,GAAetjG,KAAKo1E,EAAO,gBAAkBA,EAAMn2E,YAC9D,MAAsB,mBAARqkG,GAAsBA,aAAgBA,GAClD,GAAatjG,KAAKsjG,IAASgB,EAC/B,CYYa,CAAcc,IAAa,GAAYA,IAC9Ct7B,EAAW23B,EACP,GAAYA,GACd33B,EAAW,GAAc23B,IAEjB,EAAAkB,EAAA,GAASlB,MAAa,EAAAoB,EAAA,GAAWpB,KACzC33B,EGlER,SAAyBppE,GACvB,MAAqC,mBAAtBA,EAAOzB,aAA8B,EAAYyB,GAE5D,CAAC,EADD,EAAW,EAAaA,GAE9B,CH8DmB,CAAgB0kG,KAI7BK,GAAW,CAEf,CACIA,IAEF1F,EAAM7/F,IAAIklG,EAAUt7B,GACpBu7B,EAAUv7B,EAAUs7B,EAAUH,EAAUnF,EAAYC,GACpDA,EAAc,OAAEqF,IAElB,EAAiB1kG,EAAQZ,EAAKgqE,EAnD9B,CAoDF,EIlDA,GAtBA,SAASk7B,EAAUtkG,EAAQe,EAAQwjG,EAAUnF,EAAYC,GACnDr/F,IAAWe,GAGf,EAAQA,GAAQ,SAAS2jG,EAAUtlG,GAEjC,GADAigG,IAAUA,EAAQ,IAAI,IAClB,EAAA4C,EAAA,GAASyC,GACX,GAAc1kG,EAAQe,EAAQ3B,EAAKmlG,EAAUD,EAAWlF,EAAYC,OAEjE,CACH,IAAIj2B,EAAWg2B,EACXA,EAAW,GAAQp/F,EAAQZ,GAAMslG,EAAWtlG,EAAM,GAAKY,EAAQe,EAAQs+F,QACvEn3F,OAEaA,IAAbkhE,IACFA,EAAWs7B,GAEb,EAAiB1kG,EAAQZ,EAAKgqE,EAChC,CACF,GAAG,GACL,ECnBA,GAJA,SAAkBhoE,GAChB,OAAOA,CACT,ECfA,IAAI4iG,GAAYz5F,KAAK8F,IAgCrB,MCdA,GATuB,EAA4B,SAASvM,EAAMT,GAChE,OAAO,EAAeS,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,OCGc1C,EDHIiC,ECIb,WACL,OAAOjC,CACT,GDLE,UAAY,ICEhB,IAAkBA,CDAlB,EAPwC,GEXxC,IAII6iG,GAAYv8F,KAAK8I,ICQrB,SDGA,SAAkB1M,GAChB,IAAIkiG,EAAQ,EACRC,EAAa,EAEjB,OAAO,WACL,IAAIC,EAAQjC,KACRpf,EApBO,IAoBiBqhB,EAAQD,GAGpC,GADAA,EAAaC,EACTrhB,EAAY,GACd,KAAMmhB,GAzBI,IA0BR,OAAOnlG,UAAU,QAGnBmlG,EAAQ,EAEV,OAAOliG,EAAKrD,WAAMyH,EAAWrH,UAC/B,CACF,CCvBkB,CAAS,ICK3B,GAJA,SAAkBiD,EAAMm8B,GACtB,OAAO,GLCT,SAAkBn8B,EAAMm8B,EAAOi+B,GAE7B,OADAj+B,EAAQ+jE,QAAoB97F,IAAV+3B,EAAuBn8B,EAAKhD,OAAS,EAAKm/B,EAAO,GAC5D,WAML,IALA,IAAItnB,EAAO9X,UACP2iB,GAAS,EACT1iB,EAASkjG,GAAUrrF,EAAK7X,OAASm/B,EAAO,GACxCu9C,EAAQnzE,MAAMvJ,KAET0iB,EAAQ1iB,GACf08E,EAAMh6D,GAAS7K,EAAKsnB,EAAQzc,GAE9BA,GAAS,EAET,IADA,IAAIijF,EAAYp8F,MAAM41B,EAAQ,KACrBzc,EAAQyc,GACfwmE,EAAUjjF,GAAS7K,EAAK6K,GAG1B,OADAijF,EAAUxmE,GAASi+B,EAAUsf,GMpBjC,SAAe15E,EAAM4iG,EAAS/tF,GAC5B,OAAQA,EAAK7X,QACX,KAAK,EAAG,OAAOgD,EAAKxE,KAAKonG,GACzB,KAAK,EAAG,OAAO5iG,EAAKxE,KAAKonG,EAAS/tF,EAAK,IACvC,KAAK,EAAG,OAAO7U,EAAKxE,KAAKonG,EAAS/tF,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAO7U,EAAKxE,KAAKonG,EAAS/tF,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,OAAO7U,EAAKrD,MAAMimG,EAAS/tF,EAC7B,CNaW,CAAM7U,EAAMqB,KAAMshG,EAC3B,CACF,CKpBqB,CAAS3iG,EAAMm8B,EAAO,IAAWn8B,EAAO,GAC7D,kBEwBA,UC5BwByiG,GDwBG,SAASvmG,EAAQe,EAAQwjG,GAClD,GAAUvkG,EAAQe,EAAQwjG,EAC5B,ECzBS,IAAS,SAASvkG,EAAQ60E,GAC/B,IAAIrxD,GAAS,EACT1iB,EAAS+zE,EAAQ/zE,OACjBs+F,EAAat+F,EAAS,EAAI+zE,EAAQ/zE,EAAS,QAAKoH,EAChD2+F,EAAQ/lG,EAAS,EAAI+zE,EAAQ,QAAK3sE,EAWtC,IATAk3F,EAAcmH,GAASzlG,OAAS,GAA0B,mBAAds+F,GACvCt+F,IAAUs+F,QACXl3F,EAEA2+F,IAAS,QAAehyB,EAAQ,GAAIA,EAAQ,GAAIgyB,KAClDzH,EAAat+F,EAAS,OAAIoH,EAAYk3F,EACtCt+F,EAAS,GAEXd,EAASf,OAAOe,KACPwjB,EAAQ1iB,GAAQ,CACvB,IAAIC,EAAS8zE,EAAQrxD,GACjBziB,GACFwlG,GAASvmG,EAAQe,EAAQyiB,EAE7B,CACA,OAAOxjB,CACT,KAvBF,IAAwBumG,4EC0DxB,QAlBA,SAAkBziG,EAAM2U,EAAMvS,GAC5B,IAAIs9T,GAAU,EACVgjC,GAAW,EAEf,GAAmB,mBAAR1iW,EACT,MAAM,IAAImB,UAnDQ,uBAyDpB,OAJI,OAASiB,KACXs9T,EAAU,YAAat9T,IAAYA,EAAQs9T,QAAUA,EACrDgjC,EAAW,aAActgW,IAAYA,EAAQsgW,SAAWA,IAEnD,OAAS1iW,EAAM2U,EAAM,CAC1B,QAAW+qT,EACX,QAAW/qT,EACX,SAAY+tV,GAEhB,6qBClDA,IAAI54P,EAAgB,SAAShlF,EAAG7d,GAI9B,OAHA6iG,EAAgB3uG,OAAOm3E,gBAClB,CAAEC,UAAW,cAAgBhsE,OAAS,SAAUue,EAAG7d,GAAK6d,EAAEytD,UAAYtrE,CAAG,GAC1E,SAAU6d,EAAG7d,GAAK,IAAK,IAAI0mB,KAAK1mB,EAAO9L,OAAOT,UAAUa,eAAeC,KAAKyL,EAAG0mB,KAAI7I,EAAE6I,GAAK1mB,EAAE0mB,GAAI,EAC7Fm8E,EAAchlF,EAAG7d,EAC1B,EAEO,SAAS+tF,EAAUlwE,EAAG7d,GAC3B,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAI9F,UAAU,uBAAyBm7B,OAAOr1B,GAAK,iCAE7D,SAASqrG,IAAOjxG,KAAK5G,YAAcqqB,CAAG,CADtCglF,EAAchlF,EAAG7d,GAEjB6d,EAAEpqB,UAAkB,OAANuM,EAAa9L,OAAO05B,OAAO5tB,IAAMqrG,EAAG53G,UAAYuM,EAAEvM,UAAW,IAAI43G,EACjF,CAEO,IAAIz3E,EAAW,WAQpB,OAPAA,EAAW1/B,OAAOo2C,QAAU,SAAkB3sB,GAC1C,IAAK,IAAIK,EAAGnoB,EAAI,EAAG6K,EAAI5K,UAAUC,OAAQF,EAAI6K,EAAG7K,IAE5C,IAAK,IAAI6wB,KADT1I,EAAIloB,UAAUD,GACO3B,OAAOT,UAAUa,eAAeC,KAAKypB,EAAG0I,KAAI/I,EAAE+I,GAAK1I,EAAE0I,IAE9E,OAAO/I,CACX,EACOiW,EAASl+B,MAAM0E,KAAMtE,UAC9B,EAEO,SAASg3F,EAAO9uE,EAAGrC,GACxB,IAAIgC,EAAI,CAAC,EACT,IAAK,IAAI+I,KAAK1I,EAAO9pB,OAAOT,UAAUa,eAAeC,KAAKypB,EAAG0I,IAAM/K,EAAE8iB,QAAQ/X,GAAK,IAC9E/I,EAAE+I,GAAK1I,EAAE0I,IACb,GAAS,MAAL1I,GAAqD,mBAAjC9pB,OAAOkB,sBACtB,KAAIS,EAAI,EAAb,IAAgB6wB,EAAIxyB,OAAOkB,sBAAsB4oB,GAAInoB,EAAI6wB,EAAE3wB,OAAQF,IAC3D8lB,EAAE8iB,QAAQ/X,EAAE7wB,IAAM,GAAK3B,OAAOT,UAAUm6C,qBAAqBr5C,KAAKypB,EAAG0I,EAAE7wB,MACvE8nB,EAAE+I,EAAE7wB,IAAMmoB,EAAE0I,EAAE7wB,IAF4B,CAItD,OAAO8nB,CACT,CAEO,SAASy+U,EAAW94P,EAAY1tG,EAAQvB,EAAKG,GAClD,IAA2HqpB,EAAvHiG,EAAIhuB,UAAUC,OAAQwJ,EAAIukB,EAAI,EAAIluB,EAAkB,OAATpB,EAAgBA,EAAON,OAAOE,yBAAyBwB,EAAQvB,GAAOG,EACrH,GAAuB,iBAAZ4xE,SAAoD,mBAArBA,QAAQi2R,SAAyB98V,EAAI6mE,QAAQi2R,SAAS/4P,EAAY1tG,EAAQvB,EAAKG,QACpH,IAAK,IAAIqB,EAAIytG,EAAWvtG,OAAS,EAAGF,GAAK,EAAGA,KAASgoB,EAAIylF,EAAWztG,MAAI0J,GAAKukB,EAAI,EAAIjG,EAAEte,GAAKukB,EAAI,EAAIjG,EAAEjoB,EAAQvB,EAAKkL,GAAKse,EAAEjoB,EAAQvB,KAASkL,GAChJ,OAAOukB,EAAI,GAAKvkB,GAAKrL,OAAOC,eAAeyB,EAAQvB,EAAKkL,GAAIA,CAC9D,CAEO,SAAS+8V,EAAQC,EAAYv4P,GAClC,OAAO,SAAUpuG,EAAQvB,GAAO2vG,EAAUpuG,EAAQvB,EAAKkoW,EAAa,CACtE,CAEO,SAASC,EAAa54Q,EAAM64Q,EAAcn5P,EAAYo5P,EAAWC,EAAcC,GACpF,SAASC,EAAOxuU,GAAK,QAAU,IAANA,GAA6B,mBAANA,EAAkB,MAAM,IAAIn0B,UAAU,qBAAsB,OAAOm0B,CAAG,CAKtH,IAJA,IAGI5H,EAHA6X,EAAOo+T,EAAUp+T,KAAMjqC,EAAe,WAATiqC,EAAoB,MAAiB,WAATA,EAAoB,MAAQ,QACrF1oC,GAAU6mW,GAAgB74Q,EAAO84Q,EAAkB,OAAI94Q,EAAOA,EAAKnwF,UAAY,KAC/EmG,EAAa6iW,IAAiB7mW,EAAS1B,OAAOE,yBAAyBwB,EAAQ8mW,EAAUn7V,MAAQ,CAAC,GAC/Fw/B,GAAO,EACLlrC,EAAIytG,EAAWvtG,OAAS,EAAGF,GAAK,EAAGA,IAAK,CAC7C,IAAI05B,EAAU,CAAC,EACf,IAAK,IAAI7I,KAAKg2U,EAAWntU,EAAQ7I,GAAW,WAANA,EAAiB,CAAC,EAAIg2U,EAAUh2U,GACtE,IAAK,IAAIA,KAAKg2U,EAAUI,OAAQvtU,EAAQutU,OAAOp2U,GAAKg2U,EAAUI,OAAOp2U,GACrE6I,EAAQwtU,eAAiB,SAAU1uU,GAAK,GAAI0S,EAAM,MAAM,IAAI7mC,UAAU,0DAA2D0iW,EAAkBnnW,KAAKonW,EAAOxuU,GAAK,MAAQ,EAC5K,IAAIhxB,GAAS,EAAIimG,EAAWztG,IAAa,aAATyoC,EAAsB,CAAEvqC,IAAK6F,EAAW7F,IAAKU,IAAKmF,EAAWnF,KAAQmF,EAAWvF,GAAMk7B,GACtH,GAAa,aAAT+O,EAAqB,CACrB,QAAe,IAAXjhC,EAAmB,SACvB,GAAe,OAAXA,GAAqC,iBAAXA,EAAqB,MAAM,IAAInD,UAAU,oBACnEusB,EAAIo2U,EAAOx/V,EAAOtJ,QAAM6F,EAAW7F,IAAM0yB,IACzCA,EAAIo2U,EAAOx/V,EAAO5I,QAAMmF,EAAWnF,IAAMgyB,IACzCA,EAAIo2U,EAAOx/V,EAAOq2M,QAAOipJ,EAAa/6U,QAAQ6E,EACtD,MACSA,EAAIo2U,EAAOx/V,MACH,UAATihC,EAAkBq+T,EAAa/6U,QAAQ6E,GACtC7sB,EAAWvF,GAAOoyB,EAE/B,CACI7wB,GAAQ1B,OAAOC,eAAeyB,EAAQ8mW,EAAUn7V,KAAM3H,GAC1DmnC,GAAO,CACT,CAEO,SAASi8T,EAAkBrhQ,EAASghQ,EAActmW,GAEvD,IADA,IAAI4mW,EAAWnnW,UAAUC,OAAS,EACzBF,EAAI,EAAGA,EAAI8mW,EAAa5mW,OAAQF,IACrCQ,EAAQ4mW,EAAWN,EAAa9mW,GAAGtB,KAAKonG,EAAStlG,GAASsmW,EAAa9mW,GAAGtB,KAAKonG,GAEnF,OAAOshQ,EAAW5mW,OAAQ,CAC5B,CAEO,SAAS6mW,EAAU7vU,GACxB,MAAoB,iBAANA,EAAiBA,EAAI,GAAG3wB,OAAO2wB,EAC/C,CAEO,SAAS8vU,EAAkB9uU,EAAG9sB,EAAMg9B,GAEzC,MADoB,iBAATh9B,IAAmBA,EAAOA,EAAKwQ,YAAc,IAAIrV,OAAO6E,EAAKwQ,YAAa,KAAO,IACrF7d,OAAOC,eAAek6B,EAAG,OAAQ,CAAE/3B,cAAc,EAAMD,MAAOkoC,EAAS,GAAG7hC,OAAO6hC,EAAQ,IAAKh9B,GAAQA,GAC/G,CAEO,SAAS67V,EAAWC,EAAaC,GACtC,GAAuB,iBAAZl3R,SAAoD,mBAArBA,QAAQmuI,SAAyB,OAAOnuI,QAAQmuI,SAAS8oJ,EAAaC,EAClH,CAEO,SAASC,EAAU5hQ,EAAS6hQ,EAAYr1N,EAAG90B,GAEhD,OAAO,IAAK80B,IAAMA,EAAI7uI,WAAU,SAAUC,EAAS6D,GAC/C,SAASqgW,EAAUpnW,GAAS,IAAM43O,EAAK56H,EAAUlyF,KAAK9qB,GAAS,CAAE,MAAOslB,GAAKve,EAAOue,EAAI,CAAE,CAC1F,SAAS+hV,EAASrnW,GAAS,IAAM43O,EAAK56H,EAAiB,MAAEh9G,GAAS,CAAE,MAAOslB,GAAKve,EAAOue,EAAI,CAAE,CAC7F,SAASsyN,EAAK5wO,GAJlB,IAAehH,EAIagH,EAAO0jC,KAAOxnC,EAAQ8D,EAAOhH,QAJ1CA,EAIyDgH,EAAOhH,MAJhDA,aAAiB8xI,EAAI9xI,EAAQ,IAAI8xI,GAAE,SAAU5uI,GAAWA,EAAQlD,EAAQ,KAIjB6R,KAAKu1V,EAAWC,EAAW,CAC7GzvH,GAAM56H,EAAYA,EAAU39G,MAAMimG,EAAS6hQ,GAAc,KAAKr8U,OAClE,GACF,CAEO,SAASw8U,EAAYhiQ,EAAS3zF,GACnC,IAAsGqmB,EAAGmwB,EAAG7gC,EAAG3qB,EAA3GyzB,EAAI,CAAEtc,MAAO,EAAGyzV,KAAM,WAAa,GAAW,EAAPjgV,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGkgV,KAAM,GAAIC,IAAK,IAChG,OAAO9qW,EAAI,CAAEmuB,KAAM48U,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,mBAAXzqW,SAA0BN,EAAEM,OAAOC,UAAY,WAAa,OAAO6G,IAAM,GAAIpH,EACvJ,SAAS+qW,EAAKr9V,GAAK,OAAO,SAAU6gB,GAAK,OACzC,SAAciJ,GACV,GAAI6D,EAAG,MAAM,IAAIn0B,UAAU,mCAC3B,KAAOlH,IAAMA,EAAI,EAAGw3B,EAAG,KAAO/D,EAAI,IAAKA,OACnC,GAAI4H,EAAI,EAAGmwB,IAAM7gC,EAAY,EAAR6M,EAAG,GAASg0B,EAAU,OAAIh0B,EAAG,GAAKg0B,EAAS,SAAO7gC,EAAI6gC,EAAU,SAAM7gC,EAAEppB,KAAKiqD,GAAI,GAAKA,EAAEr9B,SAAWxD,EAAIA,EAAEppB,KAAKiqD,EAAGh0B,EAAG,KAAKuW,KAAM,OAAOpjB,EAE3J,OADI6gC,EAAI,EAAG7gC,IAAG6M,EAAK,CAAS,EAARA,EAAG,GAAQ7M,EAAEtnB,QACzBm0B,EAAG,IACP,KAAK,EAAG,KAAK,EAAG7M,EAAI6M,EAAI,MACxB,KAAK,EAAc,OAAX/D,EAAEtc,QAAgB,CAAE9T,MAAOm0B,EAAG,GAAIuW,MAAM,GAChD,KAAK,EAAGta,EAAEtc,QAASq0C,EAAIh0B,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAK/D,EAAEq3U,IAAIh8U,MAAO2E,EAAEo3U,KAAK/7U,MAAO,SACxC,QACI,MAAkBnE,GAAZA,EAAI8I,EAAEo3U,MAAY9nW,OAAS,GAAK4nB,EAAEA,EAAE5nB,OAAS,KAAkB,IAAVy0B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAE/D,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAV+D,EAAG,MAAc7M,GAAM6M,EAAG,GAAK7M,EAAE,IAAM6M,EAAG,GAAK7M,EAAE,IAAM,CAAE8I,EAAEtc,MAAQqgB,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAY/D,EAAEtc,MAAQwT,EAAE,GAAI,CAAE8I,EAAEtc,MAAQwT,EAAE,GAAIA,EAAI6M,EAAI,KAAO,CACpE,GAAI7M,GAAK8I,EAAEtc,MAAQwT,EAAE,GAAI,CAAE8I,EAAEtc,MAAQwT,EAAE,GAAI8I,EAAEq3U,IAAIroW,KAAK+0B,GAAK,KAAO,CAC9D7M,EAAE,IAAI8I,EAAEq3U,IAAIh8U,MAChB2E,EAAEo3U,KAAK/7U,MAAO,SAEtB0I,EAAKxiB,EAAKzT,KAAKonG,EAASl1E,EAC5B,CAAE,MAAO9K,GAAK6O,EAAK,CAAC,EAAG7O,GAAI6iC,EAAI,CAAG,CAAE,QAAUnwB,EAAI1Q,EAAI,CAAG,CACzD,GAAY,EAAR6M,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEn0B,MAAOm0B,EAAG,GAAKA,EAAG,QAAK,EAAQuW,MAAM,EAC9E,CAtBgDktM,CAAK,CAACvtO,EAAG6gB,GAAK,CAAG,CAuBnE,CAEO,IAAIy8U,EAAkB9pW,OAAO05B,OAAS,SAAUoqC,EAAGj1C,EAAG3B,EAAG68U,QACnD9gW,IAAP8gW,IAAkBA,EAAK78U,GAC3B,IAAI5sB,EAAON,OAAOE,yBAAyB2uB,EAAG3B,GACzC5sB,KAAS,QAASA,GAAQuuB,EAAEpvB,WAAaa,EAAK+B,UAAY/B,EAAK8B,gBAChE9B,EAAO,CAAEgB,YAAY,EAAMzB,IAAK,WAAa,OAAOgvB,EAAE3B,EAAI,IAE9DltB,OAAOC,eAAe6jE,EAAGimS,EAAIzpW,EAC9B,EAAI,SAAUwjE,EAAGj1C,EAAG3B,EAAG68U,QACX9gW,IAAP8gW,IAAkBA,EAAK78U,GAC3B42C,EAAEimS,GAAMl7U,EAAE3B,EACX,EAEM,SAAS88U,EAAan7U,EAAGi1C,GAC9B,IAAK,IAAItxC,KAAK3D,EAAa,YAAN2D,GAAoBxyB,OAAOT,UAAUa,eAAeC,KAAKyjE,EAAGtxC,IAAIs3U,EAAgBhmS,EAAGj1C,EAAG2D,EAC7G,CAEO,SAASo8E,EAAS9qC,GACvB,IAAIh6C,EAAsB,mBAAX1qB,QAAyBA,OAAOC,SAAUwvB,EAAI/E,GAAKg6C,EAAEh6C,GAAInoB,EAAI,EAC5E,GAAIktB,EAAG,OAAOA,EAAExuB,KAAKyjE,GACrB,GAAIA,GAAyB,iBAAbA,EAAEjiE,OAAqB,MAAO,CAC1CorB,KAAM,WAEF,OADI62C,GAAKniE,GAAKmiE,EAAEjiE,SAAQiiE,OAAI,GACrB,CAAE3hE,MAAO2hE,GAAKA,EAAEniE,KAAMkrC,MAAOi3B,EACxC,GAEJ,MAAM,IAAI99D,UAAU8jB,EAAI,0BAA4B,kCACtD,CAEO,SAASg+E,EAAOhkC,EAAGt3D,GACxB,IAAIqiB,EAAsB,mBAAXzvB,QAAyB0kE,EAAE1kE,OAAOC,UACjD,IAAKwvB,EAAG,OAAOi1C,EACf,IAAmBz4D,EAAYoc,EAA3B9lB,EAAIktB,EAAExuB,KAAKyjE,GAAOikC,EAAK,GAC3B,IACI,WAAc,IAANv7F,GAAgBA,KAAM,MAAQnB,EAAI1J,EAAEsrB,QAAQ4f,MAAMk7D,EAAGxmG,KAAK8J,EAAElJ,MACxE,CACA,MAAOU,GAAS4kB,EAAI,CAAE5kB,MAAOA,EAAS,CACtC,QACI,IACQwI,IAAMA,EAAEwhC,OAAShe,EAAIltB,EAAU,SAAIktB,EAAExuB,KAAKsB,EAClD,CACA,QAAU,GAAI8lB,EAAG,MAAMA,EAAE5kB,KAAO,CACpC,CACA,OAAOklG,CACT,CAGO,SAAS8G,IACd,IAAK,IAAI9G,EAAK,GAAIpmG,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAC3ComG,EAAKA,EAAGv/F,OAAOs/F,EAAOlmG,UAAUD,KACpC,OAAOomG,CACT,CAGO,SAASkiQ,IACd,IAAK,IAAIngV,EAAI,EAAGnoB,EAAI,EAAGuoW,EAAKtoW,UAAUC,OAAQF,EAAIuoW,EAAIvoW,IAAKmoB,GAAKloB,UAAUD,GAAGE,OACxE,IAAIwJ,EAAID,MAAM0e,GAAIoD,EAAI,EAA3B,IAA8BvrB,EAAI,EAAGA,EAAIuoW,EAAIvoW,IACzC,IAAK,IAAI4zB,EAAI3zB,UAAUD,GAAIwuF,EAAI,EAAGg6Q,EAAK50U,EAAE1zB,OAAQsuF,EAAIg6Q,EAAIh6Q,IAAKjjE,IAC1D7hB,EAAE6hB,GAAKqI,EAAE46D,GACjB,OAAO9kF,CACT,CAEO,SAAS2tF,EAAc/kE,EAAI9mB,EAAMi9V,GACtC,GAAIA,GAA6B,IAArBxoW,UAAUC,OAAc,IAAK,IAA4BkmG,EAAxBpmG,EAAI,EAAGmsB,EAAI3gB,EAAKtL,OAAYF,EAAImsB,EAAGnsB,KACxEomG,GAAQpmG,KAAKwL,IACR46F,IAAIA,EAAK38F,MAAM7L,UAAU0S,MAAM5R,KAAK8M,EAAM,EAAGxL,IAClDomG,EAAGpmG,GAAKwL,EAAKxL,IAGrB,OAAOsyB,EAAGzrB,OAAOu/F,GAAM38F,MAAM7L,UAAU0S,MAAM5R,KAAK8M,GACpD,CAEO,SAASk9V,EAAQh9U,GACtB,OAAOnnB,gBAAgBmkW,GAAWnkW,KAAKmnB,EAAIA,EAAGnnB,MAAQ,IAAImkW,EAAQh9U,EACpE,CAEO,SAASi9U,EAAiB7iQ,EAAS6hQ,EAAYnqP,GACpD,IAAK//G,OAAOmrW,cAAe,MAAM,IAAIvkW,UAAU,wCAC/C,IAAoDrE,EAAhD7C,EAAIqgH,EAAU39G,MAAMimG,EAAS6hQ,GAAc,IAAQ57Q,EAAI,GAC3D,OAAO/rF,EAAI,CAAC,EAAGkoW,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWloW,EAAEvC,OAAOmrW,eAAiB,WAAc,OAAOrkW,IAAM,EAAGvE,EACpH,SAASkoW,EAAKr9V,GAAS1N,EAAE0N,KAAI7K,EAAE6K,GAAK,SAAU6gB,GAAK,OAAO,IAAIjoB,SAAQ,SAAUmwB,EAAGzpB,GAAK4hF,EAAEnsF,KAAK,CAACiL,EAAG6gB,EAAGkI,EAAGzpB,IAAM,GAAK+5E,EAAOr5E,EAAG6gB,EAAI,GAAI,EAAG,CACzI,SAASw4D,EAAOr5E,EAAG6gB,GAAK,KACVhiB,EADqBvM,EAAE0N,GAAG6gB,IACnBlrB,iBAAiBkoW,EAAUjlW,QAAQC,QAAQgG,EAAElJ,MAAMkrB,GAAGrZ,KAAKw2V,EAASthW,GAAUuhW,EAAO/8Q,EAAE,GAAG,GAAIriF,EADtE,CAAE,MAAOoc,GAAKgjV,EAAO/8Q,EAAE,GAAG,GAAIjmE,EAAI,CAC/E,IAAcpc,CADmE,CAEjF,SAASm/V,EAAQroW,GAAS0jF,EAAO,OAAQ1jF,EAAQ,CACjD,SAAS+G,EAAO/G,GAAS0jF,EAAO,QAAS1jF,EAAQ,CACjD,SAASsoW,EAAOtwU,EAAG9M,GAAS8M,EAAE9M,GAAIqgE,EAAEh8E,QAASg8E,EAAE7rF,QAAQgkF,EAAO6H,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACnF,CAEO,SAASg9Q,EAAiB5mS,GAC/B,IAAIniE,EAAG6wB,EACP,OAAO7wB,EAAI,CAAC,EAAGkoW,EAAK,QAASA,EAAK,SAAS,SAAUpiV,GAAK,MAAMA,CAAG,IAAIoiV,EAAK,UAAWloW,EAAEvC,OAAOC,UAAY,WAAc,OAAO6G,IAAM,EAAGvE,EAC1I,SAASkoW,EAAKr9V,EAAG2tB,GAAKx4B,EAAE6K,GAAKs3D,EAAEt3D,GAAK,SAAU6gB,GAAK,OAAQmF,GAAKA,GAAK,CAAErwB,MAAOkoW,EAAQvmS,EAAEt3D,GAAG6gB,IAAKwf,MAAM,GAAU1S,EAAIA,EAAE9M,GAAKA,CAAG,EAAI8M,CAAG,CACvI,CAEO,SAASwwU,EAAc7mS,GAC5B,IAAK1kE,OAAOmrW,cAAe,MAAM,IAAIvkW,UAAU,wCAC/C,IAAiCrE,EAA7BktB,EAAIi1C,EAAE1kE,OAAOmrW,eACjB,OAAO17U,EAAIA,EAAExuB,KAAKyjE,IAAMA,EAAqC8qC,EAAS9qC,GAA2BniE,EAAI,CAAC,EAAGkoW,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAWloW,EAAEvC,OAAOmrW,eAAiB,WAAc,OAAOrkW,IAAM,EAAGvE,GAC9M,SAASkoW,EAAKr9V,GAAK7K,EAAE6K,GAAKs3D,EAAEt3D,IAAM,SAAU6gB,GAAK,OAAO,IAAIjoB,SAAQ,SAAUC,EAAS6D,IACvF,SAAgB7D,EAAS6D,EAAQygB,EAAG0D,GAAKjoB,QAAQC,QAAQgoB,GAAGrZ,MAAK,SAASqZ,GAAKhoB,EAAQ,CAAElD,MAAOkrB,EAAGwf,KAAMljB,GAAM,GAAGzgB,EAAS,CADbuhW,CAAOplW,EAAS6D,GAA7BmkB,EAAIy2C,EAAEt3D,GAAG6gB,IAA8Bwf,KAAMxf,EAAElrB,MAAQ,GAAI,CAAG,CAEjK,CAEO,SAASyoW,EAAqBC,EAAQp7U,GAE3C,OADIzvB,OAAOC,eAAkBD,OAAOC,eAAe4qW,EAAQ,MAAO,CAAE1oW,MAAOstB,IAAiBo7U,EAAOp7U,IAAMA,EAClGo7U,CACT,CAEA,IAAIC,EAAqB9qW,OAAO05B,OAAS,SAAUoqC,EAAGz2C,GACpDrtB,OAAOC,eAAe6jE,EAAG,UAAW,CAAExiE,YAAY,EAAMa,MAAOkrB,GAChE,EAAI,SAASy2C,EAAGz2C,GACfy2C,EAAW,QAAIz2C,CACjB,EAEO,SAAS09U,EAAaC,GAC3B,GAAIA,GAAOA,EAAIvrW,WAAY,OAAOurW,EAClC,IAAI7hW,EAAS,CAAC,EACd,GAAW,MAAP6hW,EAAa,IAAK,IAAI99U,KAAK89U,EAAe,YAAN99U,GAAmBltB,OAAOT,UAAUa,eAAeC,KAAK2qW,EAAK99U,IAAI48U,EAAgB3gW,EAAQ6hW,EAAK99U,GAEtI,OADA49U,EAAmB3hW,EAAQ6hW,GACpB7hW,CACT,CAEO,SAAS8hW,EAAgBD,GAC9B,OAAQA,GAAOA,EAAIvrW,WAAcurW,EAAM,CAAEl2V,QAASk2V,EACpD,CAEO,SAASE,EAAuBC,EAAU9yT,EAAOjO,EAAMjQ,GAC5D,GAAa,MAATiQ,IAAiBjQ,EAAG,MAAM,IAAIn0B,UAAU,iDAC5C,GAAqB,mBAAVqyC,EAAuB8yT,IAAa9yT,IAAUle,GAAKke,EAAMz4C,IAAIurW,GAAW,MAAM,IAAInlW,UAAU,4EACvG,MAAgB,MAATokC,EAAejQ,EAAa,MAATiQ,EAAejQ,EAAE95B,KAAK8qW,GAAYhxU,EAAIA,EAAEh4B,MAAQk2C,EAAMx4C,IAAIsrW,EACtF,CAEO,SAASC,EAAuBD,EAAU9yT,EAAOl2C,EAAOioC,EAAMjQ,GACnE,GAAa,MAATiQ,EAAc,MAAM,IAAIpkC,UAAU,kCACtC,GAAa,MAATokC,IAAiBjQ,EAAG,MAAM,IAAIn0B,UAAU,iDAC5C,GAAqB,mBAAVqyC,EAAuB8yT,IAAa9yT,IAAUle,GAAKke,EAAMz4C,IAAIurW,GAAW,MAAM,IAAInlW,UAAU,2EACvG,MAAiB,MAATokC,EAAejQ,EAAE95B,KAAK8qW,EAAUhpW,GAASg4B,EAAIA,EAAEh4B,MAAQA,EAAQk2C,EAAM93C,IAAI4qW,EAAUhpW,GAASA,CACtG,CAEO,SAASkpW,EAAsBhzT,EAAO8yT,GAC3C,GAAiB,OAAbA,GAA0C,iBAAbA,GAA6C,mBAAbA,EAA0B,MAAM,IAAInlW,UAAU,0CAC/G,MAAwB,mBAAVqyC,EAAuB8yT,IAAa9yT,EAAQA,EAAMz4C,IAAIurW,EACtE,CAEO,SAASG,EAAwB5oW,EAAKP,EAAOyf,GAClD,GAAIzf,QAAoC,CACtC,GAAqB,iBAAVA,GAAuC,mBAAVA,EAAsB,MAAM,IAAI6D,UAAU,oBAClF,IAAIqmB,EACJ,GAAIzK,EAAO,CACP,IAAKxiB,OAAOmsW,aAAc,MAAM,IAAIvlW,UAAU,uCAC9CqmB,EAAUlqB,EAAM/C,OAAOmsW,aAC3B,CACA,QAAgB,IAAZl/U,EAAoB,CACpB,IAAKjtB,OAAOitB,QAAS,MAAM,IAAIrmB,UAAU,kCACzCqmB,EAAUlqB,EAAM/C,OAAOitB,QAC3B,CACA,GAAuB,mBAAZA,EAAwB,MAAM,IAAIrmB,UAAU,0BACvDtD,EAAI09F,MAAM7+F,KAAK,CAAEY,MAAOA,EAAOkqB,QAASA,EAASzK,MAAOA,GAC1D,MACSA,GACPlf,EAAI09F,MAAM7+F,KAAK,CAAEqgB,OAAO,IAE1B,OAAOzf,CACT,CAEA,IAAIqpW,EAA8C,mBAApBC,gBAAiCA,gBAAkB,SAAU5oW,EAAO6oW,EAAY1kW,GAC5G,IAAIygB,EAAI,IAAIpb,MAAMrF,GAClB,OAAOygB,EAAEpa,KAAO,kBAAmBoa,EAAE5kB,MAAQA,EAAO4kB,EAAEikV,WAAaA,EAAYjkV,CACjF,EAEO,SAASkkV,EAAmBjpW,GACjC,SAASyoG,EAAK1jF,GACZ/kB,EAAIG,MAAQH,EAAIygU,SAAW,IAAIqoC,EAAiB/jV,EAAG/kB,EAAIG,MAAO,4CAA8C4kB,EAC5G/kB,EAAIygU,UAAW,CACjB,CAcA,OAbA,SAASl2S,IACP,KAAOvqB,EAAI09F,MAAMv+F,QAAQ,CACvB,IAAI+pW,EAAMlpW,EAAI09F,MAAMxyE,MACpB,IACE,IAAIzkB,EAASyiW,EAAIv/U,SAAWu/U,EAAIv/U,QAAQhsB,KAAKurW,EAAIzpW,OACjD,GAAIypW,EAAIhqV,MAAO,OAAOxc,QAAQC,QAAQ8D,GAAQ6K,KAAKiZ,GAAM,SAASxF,GAAc,OAAT0jF,EAAK1jF,GAAWwF,GAAQ,GACjG,CACA,MAAOxF,GACH0jF,EAAK1jF,EACT,CACF,CACA,GAAI/kB,EAAIygU,SAAU,MAAMzgU,EAAIG,KAC9B,CACOoqB,EACT,CAEA,SACE4sE,YACAn6D,WACAk5D,SACAsvQ,aACAE,UACAc,aACAG,YACAI,cACAK,kBACAE,eACAp7P,WACA9G,SACA+G,WACAo7P,iBACAjxQ,gBACAqxQ,UACAC,mBACAI,mBACAC,gBACAC,uBACAG,eACAE,kBACAC,yBACAE,yBACAC,wBACAC,0BACAK,0GC/WF,MC4BAn3D,EAAAA,EAAAv/R,OAAAkN,YA7BA,IAAA0X,EA8BI,MAAAgyU,EAAA,MAAA1pV,EAAAA,EAAAs2N,EAAAA,GAAAC,MAEA,IAAAozH,EAAAv3D,EAAAA,EAAAt/R,GACA,IAAA62V,EAAA,CACI,MAAAC,EAAA/rW,OAAAyiC,QAAA6gT,EAAAA,IACA0oB,EAAAC,GAAA,OAAApyU,EAAAkyU,EAAA38T,MAAA,EAAA/E,KAAAp1B,EAAAqa,WAAA+a,MAAAxQ,EAAA,GACA,IAAAoyU,EACI,MAAM,IAAN5/V,MAAA,2BAAA4I,KAGJ62V,EAAAG,CAAa,CAGjB,MAAAz1T,EAAAs1T,EAAAD,GACA,OAAA51T,EAAAA,cAAAO,EAAA,eAAAvhC,EAAAU,UD3CkB,cC2ClB,4ICTJ,MAAMu2V,GACA,EAAAhiV,EAAA,GAAsB,EAAQ,QAA0BpV,QAI9D,IAAIQ,GAkEW,EAAAoR,EAAA,GAAiD,CAC5D1iB,YAAa,SACbqR,SAAU62V,EACV52V,YACAiC,WAAY,SAAyBhV,GACjC,MAAM4pW,GAAmB,IAAA10V,QAA0B,OAE7C,kBACFisC,EAAiB,YACjBX,EAAW,SACXh/C,EAAQ,UACR4R,EAAS,aACTqtC,EAAY,cACZG,EAAa,SACbV,EAAQ,QACRjlC,EAAO,UACPglC,EAAS,KACTxpC,EAAI,eACJiqC,EAAc,MACdxlC,EAAK,SACL2uV,KACG91V,GACH/T,GAEJ,IAAAmB,YAAU,KACN,MAAMsU,EAAUm0V,GAAkBn0V,QAMlC,OAJIA,GAAWwF,GACXxF,EAAQxR,iBAAiB,QAASgX,GAG/B,KACCxF,GAAWwF,GACXxF,EAAQ7N,oBAAoB,QAASqT,GAE5C,GACF,CAACA,KAEJ,IAAA9Z,YAAU,KACN,MAAMsU,EAAUm0V,GAAkBn0V,QAC5Bq0V,EAAiB9kS,IACnB/kB,IAAY+kB,EAAItyD,KAAMsyD,GAClBvvD,IACAA,EAAQgB,MAAO,IASvB,OALIhB,GAAWwqC,IACXxqC,EAAQxR,iBAAiB,UAAW6lW,GACpCr0V,EAAQxR,iBAAiB,YAAa6lW,IAGnC,KACCr0V,GAAWwqC,IACXxqC,EAAQ7N,oBAAoB,UAAWkiW,GACvCr0V,EAAQ7N,oBAAoB,YAAakiW,IAEhD,GACF,CAAC7pT,KAEJ,IAAA9+C,YAAU,KACN,MAAMsU,EAAUm0V,GAAkBn0V,QAC5Bw0Q,EAAe,KACjB/pO,MACIzqC,IACAA,EAAQgB,MAAO,IAQvB,OAJIhB,GAAWyqC,GACXzqC,EAAQxR,iBAAiB,SAAUgmR,GAGhC,KACCx0Q,GAAWyqC,GACXzqC,EAAQ7N,oBAAoB,SAAUqiR,GAE7C,GACF,CAAC/pO,IAEJ,MAAM5hC,GAAqB,IAAApJ,QAAuB,OAC3C,CAAEqJ,IAAe,IAAAC,WAAS,IAEjC,IAAArd,YAAU,KACNod,GAAY,EAAK,GAClB,IAWH,MAAMwrV,GAAgB,QAAa,qBACnC,OACI,gCACI,gBAACA,EAAa,IACNh2V,MACA,QAAmB,CACnBi2V,YAAappT,EACbnqC,OACAozV,UACKA,GAAY1oT,GAAqB1qC,KAAS,IAEnD7V,IAAKgpW,EACLx1V,MAAOhB,EACP62V,SAAU/uV,EAAK,gBACAulC,EAAY,eACbD,EAAW,kBACRE,GAEjB,uBAAK9/C,IAAK0d,KAEbA,EAAmB7I,UAChB,IAAAoJ,cAAard,EAAU8c,EAAmB7I,SAG1D,EACApZ,QAAS,sBAzHb,MA4Ia,GAAgB,EAAA8nB,EAAA,GAA6C,CACtE1iB,YAAa,SACbqR,SAAU62V,EACV52V,UAAWA,EACXiC,YAAY,IAAArU,aAAW,UACnB,YAAEqpW,EAAW,MAAE1pW,EAAK,UAAE4pW,EAAS,QAAEjvV,KAAYlH,GAC7CpT,GAEA,MAAMigR,GAAgB,QAAa,aAC7BhgR,GAAM,IAAAsU,QAAmB,MAgB/B,OAdA,IAAA/T,YAAU,KACN,MAAM,QAAEsU,GAAY7U,EAMpB,OAJI6U,GAAWwF,GACXxF,EAAQxR,iBAAiB,QAASgX,GAG/B,KACCxF,GAAWwF,GACXxF,EAAQ7N,oBAAoB,QAASqT,GAE5C,GACF,CAACA,IAGA,gBAAC2lQ,EAAa,IACN7sQ,MACA,QAAmB,CAAEi2V,cAAa1pW,QAAO4pW,cAC7CtpW,KAAK,EAAAgnB,EAAA,GAAU,CAACjnB,EAAYC,KAGxC,IACAvE,QAAS,eAYa,EAAA8nB,EAAA,GAAqD,CAC3E1iB,YAAa,SACbqR,SAAU62V,EACV52V,UAAWA,EACXiC,YAAY,IAAArU,aAAW,UACnB,YAAEqpW,EAAW,QAAE/uV,EAAO,KAAExE,EAAI,WAAE0zV,EAAU,SAAEN,KAAa91V,GACvDpT,GAEA,MAAMypW,GAAa,QAAa,kBAC1BxpW,GAAM,IAAAsU,QAAuB,MAgBnC,OAdA,IAAA/T,YAAU,KACN,MAAM,QAAEsU,GAAY7U,EAMpB,OAJI6U,GAAWwF,GACXxF,EAAQxR,iBAAiB,QAASgX,GAG/B,KACCxF,GAAWwF,GACXxF,EAAQ7N,oBAAoB,QAASqT,GAE5C,GACF,CAACA,IAGA,gBAACmvV,EAAU,IACHr2V,MACA,QAAmB,CACnBi2V,cACAvzV,OACA0zV,aACAN,aAEJjpW,KAAK,EAAAgnB,EAAA,GAAU,CAACjnB,EAAYC,KAGxC,IACAvE,QAAS,kCCxUb,MC4CAguW,EAAA72V,IAGI,OAAAA,GAAiB,kBAET,MAAO,sBAEP,MAAO,YACN,QAED,MAAO,QAInB,IAAAotQ,GAAAjgR,EAAAA,EAAAA,aAAA,sBACI6/C,EAAA,SACIh/C,EAAA,UACA4R,EAAA,mBACYgtC,EAAA,aACZK,EAAA,YACAupT,EAAA,UACAM,EAAA,SACApqT,EAAA,UACAD,EAAA,aACA4sP,EAAA,OACA99B,EAAA,UACAm7F,EAAA,KACA3vV,EAAA,MACAW,EAAA,QACA1H,KACAO,GAEJnT,GAGA,MAAA0/Q,GAAA36K,EAAAA,EAAAA,cAA6C1+F,IAErC,GAAAg5C,IAAAG,EAKA,OADAn5C,EAAAyxC,iBACAuH,EAAA,UAAAh5C,EAAA,GACJ,CAAAm5C,EAAAH,IAIJ,OAAAvM,EAAAA,cACI62T,EAAC,IAAAx2V,EACOnT,MACJ,aAAAsa,EACY9G,MAAA8rP,EAAA9sP,ED/FC,gBC+FD,CAGgC,8BAAAy5R,GAAA99B,IAE3Ci7F,cACD,aAAAE,QAAA,EACyB3vV,OACzB/G,YACA82V,GAAA52T,EAAAA,cAGI,KAAC,CAAA9gC,KAAA,UACQQ,UAAA8sP,EAAA,CACiB,wBAAA2sC,EACO,8BAAAA,GAAA99B,KAE5B7zP,GAGL1Z,EAGHg/C,GAAA9M,EAAAA,cAAA+E,EAAAA,QAAA,CAAA/lC,KAAA,SAAAc,QAAA,YAAAqkC,QAAAqI,EAAAttC,KAAA,UAAA4tC,GAKGC,GAAA/M,EAAAA,cAGA+E,EAAAA,QAAC,+BACev4C,SAAAkgD,EACFvI,QAAAyoO,EACD1tQ,KAAA,SACJiB,UAAAg5R,GAAA,gBAAAr5R,EAAA,cAC2DA,QAAA62V,EAAA72V,IAC/BitC,GAOrD,6EC3IA,SAAgB,SAAW,kBAAkB,SAAW,kBAAkB,KAAO,eCgCjF,SAAAsgO,EAAA/gR,GACI,MAAM,SAANwB,EAAA,UAAA4R,EAAA,QAAAI,EAAA,aAAAO,GAAA/T,EAEA,OAAA0zC,EAAAA,cACI,MAAC,IAAA3/B,EACOX,UAAA8sP,EAAA9sP,EAAAuvK,EAAA40E,SAAA,CAC8C,CAAA50E,EAAAu0J,UAAA,aAAA1jU,KAEjDkgC,EAAAA,cAAA,OAAAtgC,UAAAuvK,EAAA54G,MAAAvoE,GAKb,2ECzBA,SAAwBgpW,EAAQxqW,GAC5B,OACK0zC,EAAAA,cAAAO,EAAAA,EAAA,IAASj0C,GAAA0zC,EAAAA,cACL,MAAI,CAAAkvL,MAAM,6BAA6B3sN,MAAM,KAAKipC,OAAO,KAAKvL,QAAQ,aAAAD,EAAAA,cAClE,OAAK,CAAA9c,EAAE,OAAOmxB,EAAE,OAAO9xC,MAAM,MAAMipC,OAAO,MAAM2I,GAAG,IAAIC,GAAG,MAC1DpU,EAAAA,cAAA,QAAK9c,EAAE,OAAOmxB,EAAE,OAAO9xC,MAAM,MAAMipC,OAAO,MAAM2I,GAAG,IAAIC,GAAG,MAC3DpU,EAAAA,cAAC,OAAK,CAAA9c,EAAE,QAAQmxB,EAAE,OAAO9xC,MAAM,MAAMipC,OAAO,MAAM2I,GAAG,IAAIC,GAAG,MAC3DpU,EAAAA,cAAA,QAAK9c,EAAE,OAAOmxB,EAAE,OAAO9xC,MAAM,MAAMipC,OAAO,MAAM2I,GAAG,IAAIC,GAAG,MAC1DpU,EAAAA,cAAA,QAAK9c,EAAE,OAAOmxB,EAAE,OAAO9xC,MAAM,MAAMipC,OAAO,MAAM2I,GAAG,IAAIC,GAAG,MAC3DpU,EAAAA,cAAC,QAAK9c,EAAE,QAAQmxB,EAAE,OAAO9xC,MAAM,MAAMipC,OAAO,MAAM2I,GAAG,IAAIC,GAAG,MAAIpU,EAAAA,cAC/D,OAAK,CAAA9c,EAAE,OAAOmxB,EAAE,QAAQ9xC,MAAM,MAAMipC,OAAO,MAAM2I,GAAG,IAAIC,GAAG,MAC3DpU,EAAAA,cAAA,QAAK9c,EAAE,OAAOmxB,EAAE,QAAQ9xC,MAAM,MAAMipC,OAAO,MAAM2I,GAAG,IAAIC,GAAG,MAC3DpU,EAAAA,cAAA,QAAK9c,EAAE,QAAQmxB,EAAE,QAAQ9xC,MAAM,MAAMipC,OAAO,MAAM2I,GAAG,IAAIC,GAAG,OAI7E,2EChBA,SAAwBisO,EAAU/zR,GAE1B,OAAA0zC,EAAAA,cAACO,EAAAA,EAAM,IAAGj0C,GACN0zC,EAAAA,cAAC,OACGh3C,GAAG,IACH,YAAU,QACVkmO,MAAM,6BACN3sN,MAAM,KACNipC,OAAO,KACPvL,QAAQ,aAERD,EAAAA,cAAC,QACGtsB,EAAE,ugBACFonD,YAAY,MAEhB96B,EAAAA,cAAC,QACGtsB,EAAE,gVACFonD,YAAY,MAEhB96B,EAAAA,cAAC,QACGtsB,EAAE,oPACFonD,YAAY,OAKhC,2EC1BA,SAAwBg/N,EAAcxtS,GAE9B,OAAA0zC,EAAAA,cAACO,EAAAA,EAAM,IAAGj0C,GACN0zC,EAAAA,cAAC,OAAIkvL,MAAM,6BAA6B3sN,MAAM,KAAKipC,OAAO,KAAKvL,QAAQ,aACnED,EAAAA,cAAC,OAAK,CAAAtsB,EAAE,4LAA0LssB,EAAAA,cACjM,OAAK,CAAAtsB,EAAE,yjBAIxB,2ECTA,SAAwBkhS,EAAYtoT,GAE5B,OAAA0zC,EAAAA,cAACO,EAAAA,EAAA,IAASj0C,GAAA0zC,EAAAA,cACL,MAAI,CAAAkvL,MAAM,6BAA6B3sN,MAAM,KAAKipC,OAAO,KAAKvL,QAAQ,aAAAD,EAAAA,cAClE,SAAO,CAAAiU,GAAG,KAAKC,GAAG,IAAI9+C,EAAE,QACzB4qC,EAAAA,cAAC,QACGtsB,EAAE,8NACFonD,YAAY,MAEhB96B,EAAAA,cAAC,OAAK,CAAAtsB,EAAE,84BACRssB,EAAAA,cAAC,QACGtsB,EAAE,6GACFonD,YAAY,MAEf96B,EAAAA,cAAA,QAAKtsB,EAAE,+XAIxB,2EClBA,SAAwB8pQ,EAASlxR,GAEzB,OAAA0zC,EAAAA,cAACO,EAAAA,EAAM,IAAGj0C,GACN0zC,EAAAA,cAAC,OAAIkvL,MAAM,6BAA6B3sN,MAAM,KAAKipC,OAAO,KAAKvL,QAAQ,aACnED,EAAAA,cAAC,OAAK,CAAAtsB,EAAE,gNAA8MssB,EAAAA,cACrN,OAAK,CAAAtsB,EAAE,qYAIxB,2ECTA,SAAwBqjV,EAAczqW,GAE9B,OAAA0zC,EAAAA,cAACO,EAAAA,EAAM,IAAGj0C,GACN0zC,EAAAA,cAAC,OACGh3C,GAAG,IACH,YAAU,QACVkmO,MAAM,6BACN3sN,MAAM,KACNipC,OAAO,KACPvL,QAAQ,aAERD,EAAAA,cAAC,OAAK,CAAAtsB,EAAE,47CAIxB,gGCnCA,SAAgB,aAAe,uBC6B/B,SAAAm3R,GAAA,UAAAnrS,EAAA,KAAAmH,IACI,MAAM,eAANgjS,IAAAE,EAAAA,EAAAA,MACAitD,EAAAntD,EAAA,QACA,OAAA7pQ,EAAAA,cAAA,OAAAtgC,UAAA8sP,EAAAv9E,EAAA47H,aAAAnrS,GAAA,+BAAAsgC,EAAAA,cAAAk7B,EAAAA,EAAA,CAAAr0D,KAAAA,GAAAmwV,IAKJ,gECXA,SAAwBhqF,GAAkB,eACtCC,EAAA,aACAL,IAiBA,MAAO,CAAEpoO,WAZSytD,EAAAA,EAAAA,cACb1+F,IACOA,EAAM9H,kBAAkBymB,cACnB+6P,GAAiC,UAAf15Q,EAAM84B,OACzB94B,EAAMyxC,iBACNzxC,EAAMs6C,kBACD++N,EAAar5Q,IACtB,GAGR,CAAC05Q,EAAgBL,IAGzB,s/JC9CIqqF,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBnkW,IAAjBokW,EACH,OAAOA,EAAatvW,QAGrB,IAAIC,EAASkvW,EAAyBE,GAAY,CACjDnuW,GAAImuW,EACJztI,QAAQ,EACR5hO,QAAS,CAAC,GAUX,OANAuvW,EAAoBF,GAAU/sW,KAAKrC,EAAOD,QAASC,EAAQA,EAAOD,QAASovW,GAG3EnvW,EAAO2hO,QAAS,EAGT3hO,EAAOD,OACf,CAGAovW,EAAoBt+U,EAAIy+U,EviD5BpBlvW,EAAW,GACf+uW,EAAoBriR,EAAI,CAAC3hF,EAAQokW,EAAUvhV,EAAIgwG,KAC9C,IAAGuxO,EAAH,CAMA,IAAIC,EAAethV,IACnB,IAASvqB,EAAI,EAAGA,EAAIvD,EAASyD,OAAQF,IAAK,CAGzC,IAFA,IAAK4rW,EAAUvhV,EAAIgwG,GAAY59H,EAASuD,GACpC4nW,GAAY,EACPp5Q,EAAI,EAAGA,EAAIo9Q,EAAS1rW,OAAQsuF,MACpB,EAAX6rC,GAAsBwxO,GAAgBxxO,IAAah8H,OAAOiB,KAAKksW,EAAoBriR,GAAGv5D,OAAOpxB,GAASgtW,EAAoBriR,EAAE3qF,GAAKotW,EAASp9Q,MAC9Io9Q,EAAS30T,OAAOu3C,IAAK,IAErBo5Q,GAAY,EACTvtO,EAAWwxO,IAAcA,EAAexxO,IAG7C,GAAGutO,EAAW,CACbnrW,EAASw6C,OAAOj3C,IAAK,GACrB,IAAI0J,EAAI2gB,SACE/iB,IAANoC,IAAiBlC,EAASkC,EAC/B,CACD,CACA,OAAOlC,CAnBP,CAJC6yH,EAAWA,GAAY,EACvB,IAAI,IAAIr6H,EAAIvD,EAASyD,OAAQF,EAAI,GAAKvD,EAASuD,EAAI,GAAG,GAAKq6H,EAAUr6H,IAAKvD,EAASuD,GAAKvD,EAASuD,EAAI,GACrGvD,EAASuD,GAAK,CAAC4rW,EAAUvhV,EAAIgwG,EAqBjB,EwiDzBdmxO,EAAoB3gW,EAAKxO,IACxB,IAAIyvW,EAASzvW,GAAUA,EAAOyB,WAC7B,IAAOzB,EAAiB,QACxB,IAAM,EAEP,OADAmvW,EAAoBxjV,EAAE8jV,EAAQ,CAAEl4U,EAAGk4U,IAC5BA,CAAM,EviDNVnvW,EAAW0B,OAAOitF,eAAkB9tF,GAASa,OAAOitF,eAAe9tF,GAASA,GAASA,EAAa,UAQtGguW,EAAoB1jV,EAAI,SAAStnB,EAAO+gD,GAEvC,GADU,EAAPA,IAAU/gD,EAAQ+D,KAAK/D,IAChB,EAAP+gD,EAAU,OAAO/gD,EACpB,GAAoB,iBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAP+gD,GAAa/gD,EAAM1C,WAAY,OAAO0C,EAC1C,GAAW,GAAP+gD,GAAoC,mBAAf/gD,EAAM6R,KAAqB,OAAO7R,CAC5D,CACA,IAAIurW,EAAK1tW,OAAO05B,OAAO,MACvByzU,EAAoB9hW,EAAEqiW,GACtB,IAAIC,EAAM,CAAC,EACXtvW,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAI0Z,EAAiB,EAAPkrC,GAAY/gD,EAAyB,iBAAX6V,KAAyB3Z,EAAeksC,QAAQvyB,GAAUA,EAAU1Z,EAAS0Z,GACxHhY,OAAOoN,oBAAoB4K,GAASjW,SAAS5B,GAASwtW,EAAIxtW,GAAO,IAAOgC,EAAMhC,KAI/E,OAFAwtW,EAAa,QAAI,IAAM,EACvBR,EAAoBxjV,EAAE+jV,EAAIC,GACnBD,CACR,EwiDxBAP,EAAoBxjV,EAAI,CAAC5rB,EAAS6vW,KACjC,IAAI,IAAIztW,KAAOytW,EACXT,EAAoBrpS,EAAE8pS,EAAYztW,KAASgtW,EAAoBrpS,EAAE/lE,EAASoC,IAC5EH,OAAOC,eAAelC,EAASoC,EAAK,CAAEmB,YAAY,EAAMzB,IAAK+tW,EAAWztW,IAE1E,ECNDgtW,EAAoBhzU,EAAI,CAAC,EAGzBgzU,EAAoB1lV,EAAKomV,GACjBzoW,QAAQkd,IAAItiB,OAAOiB,KAAKksW,EAAoBhzU,GAAGD,QAAO,CAAC7X,EAAUliB,KACvEgtW,EAAoBhzU,EAAEh6B,GAAK0tW,EAASxrV,GAC7BA,IACL,KCNJ8qV,EAAoBv/Q,EAAKigR,GAEZA,EAAU,MCHvBV,EAAoBruW,EAAI,WACvB,GAA0B,iBAAfX,WAAyB,OAAOA,WAC3C,IACC,OAAO+H,MAAQ,IAAI2iF,SAAS,cAAb,EAChB,CAAE,MAAOphE,GACR,GAAsB,iBAAX5oB,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBsuW,EAAoBrpS,EAAI,CAAC3kE,EAAKi5E,IAAUp4E,OAAOT,UAAUa,eAAeC,KAAKlB,EAAKi5E,G3iDA9E75E,EAAa,CAAC,EACdC,EAAoB,yBAExB2uW,EAAoBr/U,EAAI,CAAC9e,EAAK69B,EAAM1sC,EAAK0tW,KACxC,GAAGtvW,EAAWyQ,GAAQzQ,EAAWyQ,GAAKzN,KAAKsrC,OAA3C,CACA,IAAIqD,EAAQ49T,EACZ,QAAW7kW,IAAR9I,EAEF,IADA,IAAIm3M,EAAUrvL,SAAS8B,qBAAqB,UACpCpoB,EAAI,EAAGA,EAAI21M,EAAQz1M,OAAQF,IAAK,CACvC,IAAImoB,EAAIwtL,EAAQ31M,GAChB,GAAGmoB,EAAE20D,aAAa,QAAUzvE,GAAO8a,EAAE20D,aAAa,iBAAmBjgF,EAAoB2B,EAAK,CAAE+vC,EAASpmB,EAAG,KAAO,CACpH,CAEGomB,IACH49T,GAAa,GACb59T,EAASjoB,SAASpkB,cAAc,WAEzBkqW,QAAU,QACjB79T,EAAOi9B,QAAU,IACbggS,EAAoBnyO,IACvB9qF,EAAO6d,aAAa,QAASo/S,EAAoBnyO,IAElD9qF,EAAO6d,aAAa,eAAgBvvD,EAAoB2B,GAExD+vC,EAAOtmB,IAAM5a,GAEdzQ,EAAWyQ,GAAO,CAAC69B,GACnB,IAAImhU,EAAmB,CAACriV,EAAMniB,KAE7B0mC,EAAOo8I,QAAUp8I,EAAOrmB,OAAS,KACjCvX,aAAa66D,GACb,IAAI8gS,EAAU1vW,EAAWyQ,GAIzB,UAHOzQ,EAAWyQ,GAClBkhC,EAAOlmB,YAAckmB,EAAOlmB,WAAW6tC,YAAY3nB,GACnD+9T,GAAWA,EAAQlsW,SAASiqB,GAAQA,EAAGxiB,KACpCmiB,EAAM,OAAOA,EAAKniB,EAAM,EAExB2jE,EAAUx/D,WAAWqgW,EAAiB3nW,KAAK,UAAM4C,EAAW,CAAEgM,KAAM,UAAWvT,OAAQwuC,IAAW,MACtGA,EAAOo8I,QAAU0hL,EAAiB3nW,KAAK,KAAM6pC,EAAOo8I,SACpDp8I,EAAOrmB,OAASmkV,EAAiB3nW,KAAK,KAAM6pC,EAAOrmB,QACnDikV,GAAc7lV,SAAS+E,KAAKuqC,YAAYrnB,EApCkB,CAoCX,E4iDvChDi9T,EAAoB9hW,EAAKtN,IACH,oBAAXqB,QAA0BA,OAAO8+F,aAC1Cl+F,OAAOC,eAAelC,EAASqB,OAAO8+F,YAAa,CAAE/7F,MAAO,WAE7DnC,OAAOC,eAAelC,EAAS,aAAc,CAAEoE,OAAO,GAAO,ECL9DgrW,EAAoBe,IAAOlwW,IAC1BA,EAAOmwW,MAAQ,GACVnwW,EAAO+F,WAAU/F,EAAO+F,SAAW,IACjC/F,SCHR,IAAIowW,EACAjB,EAAoBruW,EAAEuvW,gBAAeD,EAAYjB,EAAoBruW,EAAEulC,SAAW,IACtF,IAAIpc,EAAWklV,EAAoBruW,EAAEmpB,SACrC,IAAKmmV,GAAanmV,IACbA,EAASqmV,gBACZF,EAAYnmV,EAASqmV,cAAc1kV,MAC/BwkV,GAAW,CACf,IAAI92J,EAAUrvL,EAAS8B,qBAAqB,UAC5C,GAAGutL,EAAQz1M,OAEV,IADA,IAAIF,EAAI21M,EAAQz1M,OAAS,EAClBF,GAAK,IAAMysW,GAAWA,EAAY92J,EAAQ31M,KAAKioB,GAExD,CAID,IAAKwkV,EAAW,MAAM,IAAI/hW,MAAM,yDAChC+hW,EAAYA,EAAU1vW,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KACpFyuW,EAAoB36U,EAAI47U,YCbxB,IAAIG,EAAkB,CACrB,KAAM,EACN,KAAM,GAGPpB,EAAoBhzU,EAAEg2D,EAAI,CAAC09Q,EAASxrV,KAElC,IAAImsV,EAAqBrB,EAAoBrpS,EAAEyqS,EAAiBV,GAAWU,EAAgBV,QAAW5kW,EACtG,GAA0B,IAAvBulW,EAGF,GAAGA,EACFnsV,EAAS9gB,KAAKitW,EAAmB,SAEjC,GAAG,MAAQX,EAAS,CAEnB,IAAIvuP,EAAU,IAAIl6G,SAAQ,CAACC,EAAS6D,IAAYslW,EAAqBD,EAAgBV,GAAW,CAACxoW,EAAS6D,KAC1GmZ,EAAS9gB,KAAKitW,EAAmB,GAAKlvP,GAGtC,IAAItwG,EAAMm+V,EAAoB36U,EAAI26U,EAAoBv/Q,EAAEigR,GAEpDhrW,EAAQ,IAAIwJ,MAgBhB8gW,EAAoBr/U,EAAE9e,GAfFxF,IACnB,GAAG2jW,EAAoBrpS,EAAEyqS,EAAiBV,KAEf,KAD1BW,EAAqBD,EAAgBV,MACRU,EAAgBV,QAAW5kW,GACrDulW,GAAoB,CACtB,IAAI7hI,EAAYnjO,IAAyB,SAAfA,EAAMyL,KAAkB,UAAYzL,EAAMyL,MAChEw5V,EAAUjlW,GAASA,EAAM9H,QAAU8H,EAAM9H,OAAOkoB,IACpD/mB,EAAMmE,QAAU,iBAAmB6mW,EAAU,cAAgBlhI,EAAY,KAAO8hI,EAAU,IAC1F5rW,EAAMwK,KAAO,iBACbxK,EAAMoS,KAAO03N,EACb9pO,EAAM20J,QAAUi3M,EAChBD,EAAmB,GAAG3rW,EACvB,CACD,GAEwC,SAAWgrW,EAASA,EAC9D,MAAOU,EAAgBV,GAAW,CAEpC,EAWFV,EAAoBriR,EAAEqF,EAAK09Q,GAA0C,IAA7BU,EAAgBV,GAGxD,IAAIa,EAAuB,CAACC,EAA4BrqW,KACvD,IAGI8oW,EAAUS,GAHTN,EAAUqB,EAAa9hJ,GAAWxoN,EAGhB3C,EAAI,EAC3B,GAAG4rW,EAASp8U,MAAMlyB,GAAgC,IAAxBsvW,EAAgBtvW,KAAa,CACtD,IAAImuW,KAAYwB,EACZzB,EAAoBrpS,EAAE8qS,EAAaxB,KACrCD,EAAoBt+U,EAAEu+U,GAAYwB,EAAYxB,IAGhD,GAAGtgJ,EAAS,IAAI3jN,EAAS2jN,EAAQqgJ,EAClC,CAEA,IADGwB,GAA4BA,EAA2BrqW,GACrD3C,EAAI4rW,EAAS1rW,OAAQF,IACzBksW,EAAUN,EAAS5rW,GAChBwrW,EAAoBrpS,EAAEyqS,EAAiBV,IAAYU,EAAgBV,IACrEU,EAAgBV,GAAS,KAE1BU,EAAgBV,GAAW,EAE5B,OAAOV,EAAoBriR,EAAE3hF,EAAO,EAGjC0lW,EAAqB1wW,WAA8C,kCAAIA,WAA8C,mCAAK,GAC9H0wW,EAAmB9sW,QAAQ2sW,EAAqBroW,KAAK,KAAM,IAC3DwoW,EAAmBttW,KAAOmtW,EAAqBroW,KAAK,KAAMwoW,EAAmBttW,KAAK8E,KAAKwoW,QCnFvF1B,EAAoBriR,OAAE7hF,EAAW,CAAC,OAAO,IAAOkkW,EAAoB,SACpE,IAAI2B,EAAsB3B,EAAoBriR,OAAE7hF,EAAW,CAAC,OAAO,IAAOkkW,EAAoB,gBACxEA,EAAoBriR,EAAEgkR","sources":["webpack://UniversalAssetBrowser/webpack/universalModuleDefinition","webpack://UniversalAssetBrowser/webpack/runtime/chunk loaded","webpack://UniversalAssetBrowser/webpack/runtime/create fake namespace object","webpack://UniversalAssetBrowser/webpack/runtime/load script","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-web-component-fallbacks/fallbackTagName.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-web-component-fallbacks/version.js","webpack://UniversalAssetBrowser/../../node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/004cb891-style.module.css?a64d","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/03642f7a-styles.module.css?66db","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/04018caa-style.module.css?625d","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/072ab2ca-spectrum-breadcrumbs.module.css?0848","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/1da80658-styles.module.css?186a","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/28f55957-styles.module.css?6a6d","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/30d95789-style.module.css?452c","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/3abcb136-styles.module.css?56bb","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/7569c8ad-styles.module.css?f714","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/881db82f-styles.module.css?a78c","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/893d2027-style.module.css?977e","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/8bb28299-styles.module.css?c737","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/9559da06-styles.modules.css?1fc7","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/9a64f7b0-styles.modules.css?9800","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/a5015deb-styles.module.css?6ab5","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/a82eaf4c-styles.module.css?d3ee","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/b60c95c7-styles.module.css?0e34","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/b61e2f16-AddFolderDialog.module.css?0d79","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/c2c34d3f-Breadcrumbs.module.css?206a","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/c4a9f287-styles.module.css?d3e4","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/d1d09d73-styles.module.css?05c8","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/e5f9ba5d-styles.module.css?4d7f","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/ccx-ingest/dist/components/IngestProvider.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/ccx-ingest/dist/context/index.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/ccx-ingest/dist/controllers/IngestController.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/ccx-ingest/dist/decorators/ccxIngest.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/ccx-ingest/dist/hooks/useCCXIngest.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/ccx-ingest/index.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/ccx-ingest/node_modules/uuid/lib/bytesToUuid.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/ccx-ingest/node_modules/uuid/lib/rng-browser.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/ccx-ingest/node_modules/uuid/v1.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-shared/sentry/index.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/ingest/src/Ingest.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Button.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/ButtonGroup.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/DropdownButton.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/FieldLabel.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Add.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/AddCircle.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Alert.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/ChevronDown.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/ChevronLeft.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/ChevronRight.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/ClassicGridView.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Copy.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Delete.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Download.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/DownloadFromCloud.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Duplicate.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Export.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Flag.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Folder.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/FolderAdd.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Globe.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/InfoOutline.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Move.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/MoveTo.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/OpenIn.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Remove.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/SelectBoxAll.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Share.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/SortOrderDown.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/SortOrderUp.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/StarFilled.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/StarOutline.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Undo.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/UploadToCloud.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/User.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/UserGroup.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/ViewList.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/utils.ts","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Link.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Menu.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/OverlayTrigger.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Popover.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Progress.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Provider.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Radio.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/RadioGroup.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Rule.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Select.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Switch.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Textarea.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Textfield.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Tooltip.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Wait.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/preload.ts","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/utils/ThemeContext.ts","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/utils/createWrapper.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/utils/useForceReactSpectrum.ts","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/utils/index.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/utils/interopRequireDefault.ts","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/utils/mergeRefs.ts","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/lru-cache/index.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/classes/comparator.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/classes/range.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/classes/semver.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/functions/cmp.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/functions/compare.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/functions/eq.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/functions/gt.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/functions/gte.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/functions/lt.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/functions/lte.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/functions/neq.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/functions/satisfies.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/internal/constants.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/internal/debug.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/internal/identifiers.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/internal/parse-options.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/node_modules/semver/internal/re.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/ecma402-abstract/lib/utils.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/fast-memoize/lib/index.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/icu-messageformat-parser/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/icu-messageformat-parser/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/icu-messageformat-parser/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-datetimeformat/should-polyfill.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-datetimeformat/supported-locales.generated.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-localematcher/lib/abstract/BestAvailableLocale.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-localematcher/lib/abstract/LookupSupportedLocales.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-localematcher/lib/abstract/UnicodeExtensionValue.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-localematcher/lib/abstract/ResolveLocale.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-localematcher/lib/abstract/LookupMatcher.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-localematcher/lib/abstract/BestFitMatcher.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-localematcher/lib/abstract/utils.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-localematcher/lib/index.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl-localematcher/lib/abstract/CanonicalizeLocaleList.js","webpack://UniversalAssetBrowser/../../../../../../webpack/universalModuleDefinition","webpack://UniversalAssetBrowser/../../../../../../webpack/bootstrap 04946e45a7fe193d15c0","webpack://UniversalAssetBrowser/../../../../../../src/utils.js?1189","webpack://UniversalAssetBrowser/../../../../../../src/getAppLocale.js","webpack://UniversalAssetBrowser/../../../../../../src/apps.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/index.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/cchome.js","webpack://UniversalAssetBrowser/../../../../../../src/getAppLocaleFromIMS.js","webpack://UniversalAssetBrowser/../../../../../../src/getLocalizedURL.js","webpack://UniversalAssetBrowser/../../../../../../src/index.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/ucv2.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/adminconsole.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/adobeaccount.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/assets.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/behance.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/quick_actions.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/squirrel.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/cchome_learn.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/cchome_leftnav.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/cclibrary.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/ccsearch.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/color.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/community.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/creativecloudapp.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/dcweb.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/dva_voice.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/editbilling.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/experiencecloud.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/frameio.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/ims.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/lightroom.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/jarvis.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/mcs.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/mt.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/ngl.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/acrobat_plan.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/panellicensing.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/psweb.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/portfolio.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/projectx.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/publiclinks.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/react_spectrum.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/redemptionui.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/spark.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/stock.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/stock_api.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/font_picker.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/fonts.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/s3diweb.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/s3diweviewer.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/ucv1.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/unifiedpanel.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/uss.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/utilitynav.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/ututs.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/xd.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/mini_plans_photoshop_lightroom_start_trial.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/mini_plans.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/adobedotcom.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/globalnav.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/timeline.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/_supplement.js","webpack://UniversalAssetBrowser/../../../../../../src/locales/_region.js","webpack://UniversalAssetBrowser/../../../../../../src/getAppLocales.js","webpack://UniversalAssetBrowser/../../../../../../src/getAppRegions.js","webpack://UniversalAssetBrowser/../../../../../../node_modules/process/browser.js","webpack://UniversalAssetBrowser/../../../../../../src/getLocalizedURLFromIMS.js","webpack://UniversalAssetBrowser/../../../../../../src/parseLocaleParam.js","webpack://UniversalAssetBrowser/../../node_modules/@spectrum/spectrum-iconstore/icons/react/CreativeCloud/18.js","webpack://UniversalAssetBrowser/../../node_modules/@spectrum/spectrum-iconstore/icons/react/CreativeCloud/24.js","webpack://UniversalAssetBrowser/../../node_modules/@spectrum/spectrum-iconstore/icons/react/CreativeCloud/index.js","webpack://UniversalAssetBrowser/../../node_modules/@spectrum/spectrum-iconstore/icons/react/Icon.js","webpack://UniversalAssetBrowser/../../node_modules/@spectrum/spectrum-iconstore/icons/react/core/ArrowDownSmall.js","webpack://UniversalAssetBrowser/../../node_modules/@spectrum/spectrum-iconstore/icons/react/core/ArrowUpSmall.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Accordion/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Accordion/js/Accordion.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Accordion/js/AccordionItem.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Accordion/js/UxpAccordionItem.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Button/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Button/js/Button.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Button/js/SpUxpButton.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Button/js/UxpButton.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/ButtonGroup/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/ButtonGroup/js/ButtonGroup.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Checkbox/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Checkbox/js/Checkbox.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Checkbox/js/SpUxpCheckbox.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Checkbox/js/UxpCheckbox.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/js/Dialog.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/js/DialogButtons.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/js/DialogHeader.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/js/SpUxpDialog.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/js/SpUxpNativeDialog.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/js/UxpDialog.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/js/UxpDialogButtons.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/js/UxpDialogHeader.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/js/UxpNativeDialog.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dialog/js/UxpNonNativeDialog.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dropdown/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dropdown/js/Dropdown.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Dropdown/js/UxpDropdown.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/DropdownButton/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/DropdownButton/js/DropdownButton.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/FieldLabel/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/FieldLabel/js/FieldLabel.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/FieldLabel/js/LabelBase.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/FieldLabel/js/SpUxpFieldLabel.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/FieldLabel/js/UxpFieldLabel.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/FieldLabel/js/UxpLabelBase.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Heading/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Heading/js/Heading.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Add/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Add/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Add/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/AddCircle/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/AddCircle/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/AddCircle/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Alert/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Alert/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Alert/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ArrowDown/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ArrowDown/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ArrowDown/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ArrowUp/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ArrowUp/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ArrowUp/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Asterisk/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Asterisk/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Asterisk/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/CheckmarkCircle/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/CheckmarkCircle/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/CheckmarkCircle/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ChevronDown/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ChevronDown/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ChevronDown/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ChevronLeft/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ChevronLeft/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ChevronLeft/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ChevronRight/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ChevronRight/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ChevronRight/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Circle/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Circle/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Circle/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ClassicGridView/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ClassicGridView/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ClassicGridView/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Clock/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Clock/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Clock/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Close/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Close/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Close/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/CloseCircle/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/CloseCircle/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/CloseCircle/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Cloud/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Cloud/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Cloud/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Copy/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Copy/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Copy/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Delete/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Delete/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Delete/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DeleteOutline/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DeleteOutline/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DeleteOutline/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DeviceDesktop/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DeviceDesktop/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DeviceDesktop/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DeviceLaptop/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DeviceLaptop/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DeviceLaptop/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DocumentOutline/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DocumentOutline/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DocumentOutline/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Download/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Download/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Download/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DownloadFromCloud/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DownloadFromCloud/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/DownloadFromCloud/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Duplicate/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Duplicate/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Duplicate/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Export/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Export/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Export/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Flag/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Flag/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Flag/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Folder/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Folder/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Folder/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/FolderAdd/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/FolderAdd/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/FolderAdd/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Globe/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Globe/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Globe/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Import/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Import/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Import/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/InfoOutline/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/InfoOutline/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/InfoOutline/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/More/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/More/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/More/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Move/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Move/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Move/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/MoveTo/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/MoveTo/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/MoveTo/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/OpenIn/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/OpenIn/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/OpenIn/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Properties/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Properties/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Properties/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Remove/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Remove/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Remove/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Rename/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Rename/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Rename/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/SelectBoxAll/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/SelectBoxAll/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/SelectBoxAll/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Share/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Share/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Share/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/SortOrderDown/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/SortOrderDown/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/SortOrderDown/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/SortOrderUp/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/SortOrderUp/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/SortOrderUp/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Star/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Star/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Star/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/StarOutline/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/StarOutline/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/StarOutline/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Undo/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Undo/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/Undo/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/UploadToCloud/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/UploadToCloud/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/UploadToCloud/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/User/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/User/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/User/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/UserGroup/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/UserGroup/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/UserGroup/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ViewList/18.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ViewList/24.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/ViewList/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/AlertMedium.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/CheckmarkMedium.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/CheckmarkSmall.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/ChevronDownMedium.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/ChevronRightMedium.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/CornerTriangle.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/CrossLarge.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/CrossMedium.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/DashSmall.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/InfoMedium.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/core/SuccessMedium.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Icon/js/Icon.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Link/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Link/js/Link.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Link/js/SpUxpLink.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/List/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/List/js/List.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/List/js/ListItem.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/List/js/SpUxpListItem.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/List/js/UxpListItem.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Menu/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Menu/js/Menu.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Menu/js/MenuDivider.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Menu/js/MenuHeading.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Menu/js/MenuItem.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Menu/js/SubMenu.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Menu/js/UxpMenu.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Menu/js/UxpSubMenu.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/ModalContainer/js/ModalContainer.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/ModalContainer/js/ModalManager.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/OverlayTrigger/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/OverlayTrigger/js/Overlay.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/OverlayTrigger/js/OverlayTrigger.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/OverlayTrigger/js/Position.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/OverlayTrigger/js/UxpFlyoutOverlay.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/OverlayTrigger/js/UxpOverlay.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/OverlayTrigger/js/UxpOverlayTrigger.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/OverlayTrigger/js/UxpPosition.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/OverlayTrigger/js/calculatePosition.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Popover/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Popover/js/Popover.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Popover/js/UxpPopover.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/PortalContainer/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/PortalContainer/js/PortalContainer.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/PortalContainer/js/UxpPortalContainer.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Progress/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Progress/js/Progress.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Progress/js/SpUxpProgress.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Progress/js/UxpProgress.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Provider/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Provider/js/Provider.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Provider/js/UxpProvider.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Radio/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Radio/js/Radio.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Radio/js/SpUxpRadio.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/RadioGroup/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/RadioGroup/js/RadioGroup.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/RadioGroup/js/SpUxpRadioGroup.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Rule/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Rule/js/Rule.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Rule/js/SpUxpRule.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/ScrollManager/ScrollManager.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/ScrollManager/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Select/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Select/js/Select.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Select/js/SpUxpSelect.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Select/js/UxpSelect.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/SelectList/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/SelectList/js/SelectList.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/SelectList/js/SpUxpSelectList.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/SelectList/js/UxpSelectList.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/SideNav/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/SideNav/js/SideNav.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/SideNav/js/SideNavHeading.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/SideNav/js/SideNavItem.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Switch/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Switch/js/MaybeUxpSwitchBase.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Switch/js/Switch.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Switch/js/SwitchBase.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Switch/js/UxpSwitchBase.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Table/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Table/js/MaybeUxpTR.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Table/js/TBody.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Table/js/TD.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Table/js/TH.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Table/js/THead.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Table/js/TR.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Table/js/Table.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Table/js/UxpTR.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Textarea/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Textfield/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Textfield/js/SpUxpTextfield.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Textfield/js/Textfield.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Textfield/js/UxpTextfield.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Textfield/js/validationStateSvg.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Toast/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Toast/js/MaybeUxpToast.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Toast/js/Toast.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Toast/js/UxpToast.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Toast/js/state.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Tooltip/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Tooltip/js/SpUxpTooltip.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Tooltip/js/Tooltip.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Tooltip/js/UxpTooltip.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Wait/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Wait/js/UxpWait.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Wait/js/Wait.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Well/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/Well/js/Well.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/focus-ring-polyfill/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/autobind-decorator/lib/index.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/intl-messageformat/index.js","webpack://UniversalAssetBrowser/../../../../../../src/compiler.js","webpack://UniversalAssetBrowser/../../../../../../src/core.js","webpack://UniversalAssetBrowser/../../../../../../src/en.js","webpack://UniversalAssetBrowser/../../../../../../src/es5.js","webpack://UniversalAssetBrowser/../../../../../../src/main.js","webpack://UniversalAssetBrowser/../../../../../../src/utils.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/LegacyPortal.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/Modal.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/ModalManager.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/Portal.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/RefHolder.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/RootCloseWrapper.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/utils/addEventListener.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/utils/addFocusListener.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/utils/getContainer.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/utils/isOverflowing.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/utils/manageAriaHidden.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/node_modules/react-overlays/lib/utils/ownerDocument.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/FocusManager.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/OpenTransition.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/SpEventUtils.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/UxpOptions.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/boundingRectOverlapping.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/configureTypekit.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/convertUnsafeMethod.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/createId.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/dna.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/events.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/filterDOMProps.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/focusRing.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/hostStyleConfig.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/icon.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/intl.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/needsNative.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/scrollToDOMNode.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/setOverlayOnProvider.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/string.js","webpack://UniversalAssetBrowser/../../node_modules/@torq-native/react-spectrum/utils/timer.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/activeElement.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/class/addClass.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/class/hasClass.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/class/index.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/class/removeClass.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/events/off.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/events/on.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/ownerDocument.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/query/closest.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/query/contains.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/query/isWindow.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/query/matches.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/query/offset.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/query/offsetParent.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/query/position.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/query/querySelectorAll.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/query/scrollLeft.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/query/scrollTop.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/style/getComputedStyle.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/style/index.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/style/removeStyle.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/transition/isTransform.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/transition/properties.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/util/camelize.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/util/camelizeStyle.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/util/hyphenate.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/util/hyphenateStyle.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/util/inDOM.js","webpack://UniversalAssetBrowser/../../node_modules/dom-helpers/util/scrollbarSize.js","webpack://UniversalAssetBrowser/../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://UniversalAssetBrowser/../../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://UniversalAssetBrowser/../../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://UniversalAssetBrowser/../../node_modules/intl-messageformat-parser/index.js","webpack://UniversalAssetBrowser/../../../../../../src/parser.js","webpack://UniversalAssetBrowser/../../node_modules/intl-messageformat/lib/src/core.js","webpack://UniversalAssetBrowser/../../node_modules/intl-messageformat/lib/src/error.js","webpack://UniversalAssetBrowser/../../node_modules/intl-messageformat/lib/src/formatters.js","webpack://UniversalAssetBrowser/../../node_modules/lodash.isequal/index.js","webpack://UniversalAssetBrowser/../../node_modules/lodash.merge/index.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/assertEnvironment.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/utils.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/observerBatching.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/staticRendering.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/printDebugValue.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/reactionCleanupTracking.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/useQueuedForceUpdate.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/useObserver.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/observer.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/ObserverComponent.js","webpack://UniversalAssetBrowser/../../node_modules/mobx-react-lite/es/index.js","webpack://UniversalAssetBrowser/../../node_modules/mobx/lib/mobx.module.js","webpack://UniversalAssetBrowser/../../node_modules/object-assign/index.js","webpack://UniversalAssetBrowser/../../node_modules/path-browserify/index.js","webpack://UniversalAssetBrowser/../../node_modules/process/browser.js","webpack://UniversalAssetBrowser/../../node_modules/prop-types-extra/lib/componentOrElement.js","webpack://UniversalAssetBrowser/../../node_modules/prop-types-extra/lib/deprecated.js","webpack://UniversalAssetBrowser/../../node_modules/prop-types-extra/lib/elementType.js","webpack://UniversalAssetBrowser/../../node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","webpack://UniversalAssetBrowser/../../node_modules/prop-types-extra/node_modules/react-is/cjs/react-is.production.min.js","webpack://UniversalAssetBrowser/../../node_modules/prop-types-extra/node_modules/react-is/index.js","webpack://UniversalAssetBrowser/../../node_modules/prop-types-extra/node_modules/warning/warning.js","webpack://UniversalAssetBrowser/../../node_modules/prop-types/factoryWithThrowingShims.js","webpack://UniversalAssetBrowser/../../node_modules/prop-types/index.js","webpack://UniversalAssetBrowser/../../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://UniversalAssetBrowser/../../node_modules/react-dom/cjs/react-dom.production.min.js","webpack://UniversalAssetBrowser/../../node_modules/react-dom/index.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/lib/src/components/createFormattedComponent.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/lib/index.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/lib/src/components/injectIntl.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/lib/src/components/message.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/intl/lib/src/message.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/intl/lib/src/number.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/intl/lib/src/relativeTime.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/intl/lib/src/dateTime.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/intl/lib/src/plural.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/intl/lib/src/list.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/intl/lib/src/displayName.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/lib/src/components/provider.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/intl/lib/src/create-intl.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/lib/src/components/relative.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/lib/src/components/useIntl.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/lib/src/utils.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/ecma402-abstract/lib/utils.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/intl/lib/src/error.js","webpack://UniversalAssetBrowser/../../node_modules/react-intl/node_modules/@formatjs/intl/lib/src/utils.js","webpack://UniversalAssetBrowser/../../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://UniversalAssetBrowser/../../node_modules/react-transition-group/Transition.js","webpack://UniversalAssetBrowser/../../node_modules/react-transition-group/utils/PropTypes.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/node_modules/clsx/dist/clsx.m.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Grid/types.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Grid/utils/CellSizeAndPositionManager.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Grid/utils/maxElementSize.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/utils/createCallbackMemoizer.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Grid/utils/updateScrollIndexHelper.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/node_modules/dom-helpers/esm/canUseDOM.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/node_modules/dom-helpers/esm/scrollbarSize.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/utils/animationFrame.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Grid/Grid.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/utils/requestAnimationTimeout.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Grid/defaultOverscanIndicesGetter.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Grid/defaultCellRangeRenderer.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Grid/accessibilityOverscanIndicesGetter.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/ArrowKeyStepper/ArrowKeyStepper.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/AutoSizer/AutoSizer.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/vendor/detectElementResize.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurer.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Collection/CollectionView.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Collection/types.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Collection/Section.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Collection/SectionManager.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/utils/getUpdatedOffsetForIndex.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Collection/Collection.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Collection/utils/calculateSizeAndPositionData.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/ColumnSizer/ColumnSizer.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/InfiniteLoader/InfiniteLoader.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/List/types.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/List/List.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/vendor/binarySearchBounds.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/vendor/intervalTree.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Masonry/PositionCache.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Masonry/Masonry.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/MultiGrid/CellMeasurerCacheDecorator.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/MultiGrid/MultiGrid.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Table/defaultHeaderRowRenderer.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/ScrollSync/ScrollSync.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Table/SortDirection.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Table/SortIndicator.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Table/defaultHeaderRenderer.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Table/defaultRowRenderer.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Table/Column.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Table/Table.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Table/defaultCellDataGetter.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/Table/defaultCellRenderer.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/WindowScroller/utils/onScroll.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/WindowScroller/utils/dimensions.js","webpack://UniversalAssetBrowser/../../node_modules/react-virtualized/dist/es/WindowScroller/WindowScroller.js","webpack://UniversalAssetBrowser/../../node_modules/react/cjs/react.production.min.js","webpack://UniversalAssetBrowser/../../node_modules/react/index.js","webpack://UniversalAssetBrowser/../../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://UniversalAssetBrowser/../../node_modules/scheduler/cjs/scheduler.production.min.js","webpack://UniversalAssetBrowser/../../node_modules/scheduler/index.js","webpack://UniversalAssetBrowser/../../node_modules/semver-compare/index.js","webpack://UniversalAssetBrowser/../../node_modules/use-resize-observer/dist/bundle.esm.js","webpack://UniversalAssetBrowser/../../node_modules/uuid/dist/esm-browser/rng.js","webpack://UniversalAssetBrowser/../../node_modules/uuid/dist/esm-browser/stringify.js","webpack://UniversalAssetBrowser/../../node_modules/uuid/dist/esm-browser/native.js","webpack://UniversalAssetBrowser/../../node_modules/uuid/dist/esm-browser/v4.js","webpack://UniversalAssetBrowser/../../node_modules/warning/browser.js","webpack://UniversalAssetBrowser/../../node_modules/yallist/iterator.js","webpack://UniversalAssetBrowser/../../node_modules/yallist/yallist.js","webpack://UniversalAssetBrowser/../uap/node_modules/@ccx-public/ccx-ingest/dist/components/IngestProvider.js","webpack://UniversalAssetBrowser/../uap/node_modules/@ccx-public/ccx-ingest/dist/context/index.js","webpack://UniversalAssetBrowser/../uap/node_modules/@ccx-public/ccx-ingest/dist/controllers/IngestController.js","webpack://UniversalAssetBrowser/../uap/node_modules/@ccx-public/ccx-ingest/dist/decorators/ccxIngest.js","webpack://UniversalAssetBrowser/../uap/node_modules/@ccx-public/ccx-ingest/index.js","webpack://UniversalAssetBrowser/../uap/node_modules/@ccx-public/ccx-ingest/node_modules/uuid/lib/bytesToUuid.js","webpack://UniversalAssetBrowser/../uap/node_modules/@ccx-public/ccx-ingest/node_modules/uuid/lib/rng-browser.js","webpack://UniversalAssetBrowser/../uap/node_modules/@ccx-public/ccx-ingest/node_modules/uuid/v1.js","webpack://UniversalAssetBrowser/../uap/node_modules/@ccx-public/ingest/src/Ingest.js","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/integration.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/path.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/integrations/rewriteframes.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/featureFlags.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/integrations/featureFlags/featureFlagsIntegration.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/sentryNonRecordingSpan.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/envelope.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/should-ignore-span.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/measurement.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/sentrySpan.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/logSpans.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/envelope.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/trace.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/sampling.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/idleSpan.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/instrument/handlers.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/instrument/globalError.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/instrument/globalUnhandledRejection.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/errors.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/url.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/types.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/debug-build.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/bindReporter.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/getNavigationEntry.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/getActivationStart.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/initMetric.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/generateUniqueID.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/initUnique.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/LayoutShiftManager.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/observe.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/runOnce.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/getVisibilityWatcher.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/whenActivated.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/onFCP.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/getCLS.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/polyfills/interactionCountPolyfill.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/InteractionManager.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/onHidden.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/whenIdleOrHidden.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/getINP.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/lib/LCPEntryManager.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/getLCP.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/web-vitals/onTTFB.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/instrument.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/utils.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/browserMetrics.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/lcp.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/cls.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/inp.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/metrics/elementTiming.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/handleCallbackErrors.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/supports.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/instrument/history.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/debug-build.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/helpers.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/tracing/linkedTraces.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/instrument/fetch.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/traceData.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/fetch.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/instrument/xhr.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/tracing/resource-timing.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/tracing/request.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/tracing/browserTracingIntegration.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/tracing/backgroundtab.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/profiling/utils.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/profiling/startProfileForSpan.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/eventUtils.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/integrations/eventFilters.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/integrations/functiontostring.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/integrations/dedupe.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/api.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/client.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/transactionEvent.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/clientreport.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/sdkMetadata.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/logs/exports.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/logs/envelope.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/ipAddress.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/eventbuilder.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/client.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/env.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/instrument/console.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/breadcrumbs.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/breadcrumb-log-level.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/instrument/dom.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/integrations/breadcrumbs.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/severity.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/integrations/browserapierrors.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/integrations/globalhandlers.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/aggregate-errors.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/integrations/linkederrors.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/stack-parsers.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/promisebuffer.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/ratelimit.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/transports/base.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry-internal/browser-utils/src/getNativeImplementation.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/transports/fetch.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/react/src/sdk.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/sdk.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/utils/detectBrowserExtension.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/integrations/httpcontext.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/integrations/browsersession.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/sdk.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/transports/multiplexed.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/transports/offline.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/transports/offline.ts","webpack://UniversalAssetBrowser/./src/utils/sentry.ts","webpack://UniversalAssetBrowser/./src/utils/matchMediaPolyfill.ts","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Circle.tsx","webpack://UniversalAssetBrowser/../../src/utils/storage.ts","webpack://UniversalAssetBrowser/../../src/utils/FileCapabilities.ts","webpack://UniversalAssetBrowser/../../src/utils/Logger.ts","webpack://UniversalAssetBrowser/../../src/types/NotificationStatus.ts","webpack://UniversalAssetBrowser/../../src/stores/constants.ts","webpack://UniversalAssetBrowser/../../src/stores/AssetSyncStateStore.ts","webpack://UniversalAssetBrowser/../../src/stores/QuotaStore.ts","webpack://UniversalAssetBrowser/../../src/components/GenericTile.tsx","webpack://UniversalAssetBrowser/../../src/components/Tile.tsx","webpack://UniversalAssetBrowser/../../src/utils/i18n.ts","webpack://UniversalAssetBrowser/../../src/contexts/IntlWrapper.tsx","webpack://UniversalAssetBrowser/../../src/utils/constants.ts","webpack://UniversalAssetBrowser/../../src/components/CloudSyncStatusPopdown.tsx","webpack://UniversalAssetBrowser/../../src/utils/utils.ts","webpack://UniversalAssetBrowser/../../src/components/svgs/CheckmarkCircle.tsx","webpack://UniversalAssetBrowser/../../src/components/ItemSyncStatus.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/CheckmarkCircleBorderless.tsx","webpack://UniversalAssetBrowser/../../src/components/tiles/cloudDocsSyncingTile.tsx","webpack://UniversalAssetBrowser/../../src/utils/urls.ts","webpack://UniversalAssetBrowser/../../src/components/CDOLink.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/AlertIconBorderless.tsx","webpack://UniversalAssetBrowser/../../src/components/CloudQuotaStatus.tsx","webpack://UniversalAssetBrowser/../../src/components/tiles/global.tsx","webpack://UniversalAssetBrowser/../../src/components/tiles/alertTile.tsx","webpack://UniversalAssetBrowser/../../src/components/tiles/cloudQuotaTile.tsx","webpack://UniversalAssetBrowser/../../src/components/tiles/networkStatusTile.tsx","webpack://UniversalAssetBrowser/../../src/stores/CloudStatusStore.ts","webpack://UniversalAssetBrowser/../../src/stores/SAMSyncingAssets.ts","webpack://UniversalAssetBrowser/../../src/utils/platform.ts","webpack://UniversalAssetBrowser/../../src/utils/sam-utils.ts","webpack://UniversalAssetBrowser/../../src/stores/CDCGlobalStore.ts","webpack://UniversalAssetBrowser/../../src/stores/CDOStore.ts","webpack://UniversalAssetBrowser/../../src/hooks/useSpectrumProviderProps.ts","webpack://UniversalAssetBrowser/../../src/contexts/RawProvidersWrapper.tsx","webpack://UniversalAssetBrowser/../../src/containers/ToastOverlay.tsx","webpack://UniversalAssetBrowser/../../src/components/CDOProvider.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/NoConnection.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/EmptySharedDocs.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/SomethingWentWrong.tsx","webpack://UniversalAssetBrowser/../../src/utils/component-strings.tsx","webpack://UniversalAssetBrowser/../../src/stores/OnboardingStore.ts","webpack://UniversalAssetBrowser/../../assets/moving-files.svg","webpack://UniversalAssetBrowser/../../assets/no-files-to-show.svg","webpack://UniversalAssetBrowser/../../assets/shortcut-for-bulk-selection.svg","webpack://UniversalAssetBrowser/../../assets/mobile-long-press.svg","webpack://UniversalAssetBrowser/../../src/utils/OnboardingUtils.ts","webpack://UniversalAssetBrowser/../../src/components/Header.tsx","webpack://UniversalAssetBrowser/../../src/utils/actions/mapCustomActions.tsx","webpack://UniversalAssetBrowser/../../src/utils/HTMLToReactElement.tsx","webpack://UniversalAssetBrowser/../../src/components/CDOTab.tsx","webpack://UniversalAssetBrowser/../../src/utils/export-utils.ts","webpack://UniversalAssetBrowser/../../src/utils/action-menu-utils.ts","webpack://UniversalAssetBrowser/../../src/components/SharedWithYou.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/EmptyTrash.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/InfoIconOutline.tsx","webpack://UniversalAssetBrowser/../../src/components/Deleted.tsx","webpack://UniversalAssetBrowser/../../src/utils/stop-propagation.ts","webpack://UniversalAssetBrowser/../../src/components/OnboardingBanner.tsx","webpack://UniversalAssetBrowser/../../src/components/CloudDocuments.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/EmptyCloudDocsIlst.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/UserLoggedOut.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/EmptyReviewLinks.tsx","webpack://UniversalAssetBrowser/../../src/components/ReviewLinks.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/EmptyRecents.tsx","webpack://UniversalAssetBrowser/../../src/utils/actions/ViewAllFilesAction.tsx","webpack://UniversalAssetBrowser/../../src/components/Recents.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/EmptyMediaGallerySvg.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/EmptyFavorites.tsx","webpack://UniversalAssetBrowser/../../src/components/Favorites.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/EmptyGenerationHistory.tsx","webpack://UniversalAssetBrowser/../../src/components/GenerationHistory.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/EmptyFFBoards.tsx","webpack://UniversalAssetBrowser/../../src/components/FFBoards.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/CloudSyncDefault.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/CloudSyncDisconnected.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/CloudSyncError.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/CloudSyncInProgress.tsx","webpack://UniversalAssetBrowser/../../src/components/svgs/CloudSyncPaused.tsx","webpack://UniversalAssetBrowser/../../src/components/CloudSyncStatus.tsx","webpack://UniversalAssetBrowser/../../src/version.js","webpack://UniversalAssetBrowser/../../src/index.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Checkbox.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/DeviceDesktop.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Accordion.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Properties.tsx","webpack://UniversalAssetBrowser/../../src/components/ProjectsViewOptionsButton/index.tsx","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/c10aa374-styles.module.css?e710","webpack://UniversalAssetBrowser/../../../../src/components/shared/ViewOptionsDropdown/ViewOptionsDropdown.tsx","webpack://UniversalAssetBrowser/../../../../src/components/ViewOptionsButton/ViewOptionsButton.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Icon/Close.tsx","webpack://UniversalAssetBrowser/../../src/locale/bn.js","webpack://UniversalAssetBrowser/../../src/locale/cs.js","webpack://UniversalAssetBrowser/../../src/locale/cy.js","webpack://UniversalAssetBrowser/../../src/locale/da.js","webpack://UniversalAssetBrowser/../../src/locale/de.js","webpack://UniversalAssetBrowser/../../src/locale/el.js","webpack://UniversalAssetBrowser/../../src/locale/en.js","webpack://UniversalAssetBrowser/../../src/locale/es.js","webpack://UniversalAssetBrowser/../../src/locale/fi.js","webpack://UniversalAssetBrowser/../../src/locale/fil.js","webpack://UniversalAssetBrowser/../../src/locale/fr.js","webpack://UniversalAssetBrowser/../../src/locale/hi.js","webpack://UniversalAssetBrowser/../../src/locale/hu.js","webpack://UniversalAssetBrowser/../../src/locale/id.js","webpack://UniversalAssetBrowser/../../src/locale/it.js","webpack://UniversalAssetBrowser/../../src/locale/ja.js","webpack://UniversalAssetBrowser/../../src/locale/ko.js","webpack://UniversalAssetBrowser/../../src/locale/ms.js","webpack://UniversalAssetBrowser/../../src/locale/nb.js","webpack://UniversalAssetBrowser/../../src/locale/nl.js","webpack://UniversalAssetBrowser/../../src/locale/pl.js","webpack://UniversalAssetBrowser/../../src/locale/pt.js","webpack://UniversalAssetBrowser/../../src/locale/ro.js","webpack://UniversalAssetBrowser/../../src/locale/ru.js","webpack://UniversalAssetBrowser/../../src/locale/sv.js","webpack://UniversalAssetBrowser/../../src/locale/ta.js","webpack://UniversalAssetBrowser/../../src/locale/th.js","webpack://UniversalAssetBrowser/../../src/locale/tr.js","webpack://UniversalAssetBrowser/../../src/locale/uk.js","webpack://UniversalAssetBrowser/../../src/locale/vi.js","webpack://UniversalAssetBrowser/../../src/locale/zh-Hans.js","webpack://UniversalAssetBrowser/../../src/locale/zh-Hant.js","webpack://UniversalAssetBrowser/../../src/locale/zu.js","webpack://UniversalAssetBrowser/../../src/components/IntlWrapper.tsx","webpack://UniversalAssetBrowser/../../src/components/SaveAsOrExportInput.tsx","webpack://UniversalAssetBrowser/../../src/components/ConfirmationDialog.tsx","webpack://UniversalAssetBrowser/../../src/components/FileFormatDropdown.tsx","webpack://UniversalAssetBrowser/../../src/components/PickerViewFooter.tsx","webpack://UniversalAssetBrowser/../../src/components/VerticalTabs.tsx","webpack://UniversalAssetBrowser/../../src/components/OnboardingView.tsx","webpack://UniversalAssetBrowser/../../src/components/ProjectsTab/CustomOrganizerHeader.tsx","webpack://UniversalAssetBrowser/../../src/components/ProjectsTab/ProjectsTab.tsx","webpack://UniversalAssetBrowser/../../src/utils/MoveFromSelectionManager.ts","webpack://UniversalAssetBrowser/../../src/components/UAPHeader.tsx","webpack://UniversalAssetBrowser/../../src/components/CloseButton.tsx","webpack://UniversalAssetBrowser/../../src/components/PickerView.tsx","webpack://UniversalAssetBrowser/../../src/utils/viewEnabled.ts","webpack://UniversalAssetBrowser/../../src/components/PickerViewLoader.tsx","webpack://UniversalAssetBrowser/../../src/components/DocumentPicker.tsx","webpack://UniversalAssetBrowser/../../src/UAP.tsx","webpack://UniversalAssetBrowser/./src/componentVersions.ts","webpack://UniversalAssetBrowser/./src/components/CDOReactComponent.tsx","webpack://UniversalAssetBrowser/../../node_modules/@sentry/browser/src/profiling/integration.ts","webpack://UniversalAssetBrowser/./src/main-desktop.tsx","webpack://UniversalAssetBrowser/../src/events/OpenLinkEvent.ts","webpack://UniversalAssetBrowser/../src/utils/open-link-event.ts","webpack://UniversalAssetBrowser/../src/components/ExternalLink/ExternalLink.tsx","webpack://UniversalAssetBrowser/../src/components/AddFolderDialog/AddFolderDialog.tsx","webpack://UniversalAssetBrowser/../src/utils/available-offline.ts","webpack://UniversalAssetBrowser/../src/actions/createAddToBoardAction.tsx","webpack://UniversalAssetBrowser/../src/actions/createCopyLinkAction.tsx","webpack://UniversalAssetBrowser/../src/components/ProgressDialog/index.tsx","webpack://UniversalAssetBrowser/../src/actions/createDiscardAction.tsx","webpack://UniversalAssetBrowser/../src/actions/createDuplicateAction.tsx","webpack://UniversalAssetBrowser/../src/events/ExportEvent.ts","webpack://UniversalAssetBrowser/../src/utils/export-utils.ts","webpack://UniversalAssetBrowser/../src/actions/analytics/AnalyticsEvent.ts","webpack://UniversalAssetBrowser/../src/actions/createMakeAvailableOfflineAction.tsx","webpack://UniversalAssetBrowser/../src/actions/createOpenAction.tsx","webpack://UniversalAssetBrowser/../src/actions/createRenameAction.tsx","webpack://UniversalAssetBrowser/../src/actions/share/mimeTypeConfig.ts","webpack://UniversalAssetBrowser/../src/actions/share/ShareDialog.tsx","webpack://UniversalAssetBrowser/../src/actions/share/createShareAction.tsx","webpack://UniversalAssetBrowser/../src/components/LeaveDialog/index.tsx","webpack://UniversalAssetBrowser/../src/actions/createLeaveAction.tsx","webpack://UniversalAssetBrowser/../src/svgs/FolderGeneral2024.tsx","webpack://UniversalAssetBrowser/../src/components/PermDeleteDialog/PermDeleteDialog.tsx","webpack://UniversalAssetBrowser/../src/actions/createPermDeleteAction.tsx","webpack://UniversalAssetBrowser/../src/utils/ validate-email.ts","webpack://UniversalAssetBrowser/../src/components/ReportAbuseDialog/ReportAbuseDialog.tsx","webpack://UniversalAssetBrowser/../src/components/ReportAbuseDialog/post-report-abuse.ts","webpack://UniversalAssetBrowser/../src/components/SyncErrorDialog/SyncErrorDialog.tsx","webpack://UniversalAssetBrowser/../src/actions/newLibrary/NewLibraryDialog.tsx","webpack://UniversalAssetBrowser/../src/actions/newBrand/NewBrandDialog.tsx","webpack://UniversalAssetBrowser/../src/components/LoadingPlaceholder/LoadingPlaceholder.tsx","webpack://UniversalAssetBrowser/../src/components/Project.tsx","webpack://UniversalAssetBrowser/../src/utils/formatting-utils.ts","webpack://UniversalAssetBrowser/../src/components/Size/Size.tsx","webpack://UniversalAssetBrowser/../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_DeviceDesktop_20_N.svg","webpack://UniversalAssetBrowser/../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_File_20_N.svg","webpack://UniversalAssetBrowser/../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_UserGroup_20_N.svg","webpack://UniversalAssetBrowser/../src/svgs/Model.tsx","webpack://UniversalAssetBrowser/../src/components/AppIcon.tsx","webpack://UniversalAssetBrowser/../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_CheckmarkCircle_20_N.svg","webpack://UniversalAssetBrowser/../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_CloudStateErrorRed_22x20_N.svg","webpack://UniversalAssetBrowser/../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_CloudStateSlowConnection_22x20_N.svg","webpack://UniversalAssetBrowser/../src/components/CloudBadge.tsx","webpack://UniversalAssetBrowser/../src/components/CloudStatusIcon.tsx","webpack://UniversalAssetBrowser/../src/components/LiveCoEditingIcon.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/AdobeAssetGridItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/AdobeAssetListItem.tsx","webpack://UniversalAssetBrowser/../src/components/DotSeparator/DotSeparator.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/ExpressViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/LibraryElementViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/Library/EmptyLibraryThumbnail.tsx","webpack://UniversalAssetBrowser/../src/components/Library/utils/LibraryUtils.ts","webpack://UniversalAssetBrowser/../src/components/Library/utils/colorUtils.ts","webpack://UniversalAssetBrowser/../src/components/Library/RenditionViews/ColorElementView.tsx","webpack://UniversalAssetBrowser/../src/components/Library/RenditionViews/ColorThemeElementView.tsx","webpack://UniversalAssetBrowser/../src/components/Library/utils/gradient.tsx","webpack://UniversalAssetBrowser/../src/components/Library/RenditionViews/GradientElementView.tsx","webpack://UniversalAssetBrowser/../src/components/Library/RenditionViews/ThumbnailView.tsx","webpack://UniversalAssetBrowser/../src/components/Library/types/LibraryTypes.ts","webpack://UniversalAssetBrowser/../src/components/Library/LibraryRenditionView.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/LibraryViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/ProjectViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/ReviewViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/WebLinkViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/XdArtifactViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/FolderViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/ConceptViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/Assets3DViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/SquirrelViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/FireflyGenerationViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/FireflyTemplateViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItems/TemplateViewItem.tsx","webpack://UniversalAssetBrowser/../../src/actions/createAddFolderAction.tsx","webpack://UniversalAssetBrowser/../../src/utils/permissions.ts","webpack://UniversalAssetBrowser/../../src/utils/route-enabled-utils.ts","webpack://UniversalAssetBrowser/../../src/actions/createCopyToAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/createExportAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/createFavoriteAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/createImportAction.tsx","webpack://UniversalAssetBrowser/../../src/components/LossyMoveWarning/index.tsx","webpack://UniversalAssetBrowser/../../src/components/MoveLibraryPermissionDialog/index.tsx","webpack://UniversalAssetBrowser/../../src/actions/utils.ts","webpack://UniversalAssetBrowser/../../src/actions/createMoveAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/createMoveFromAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/createRestoreAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/showLocation/createShowLocationAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/createRemoveFavoriteAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/reportAbuse/createReportAbuseAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/createRemoveLibraryAction.tsx","webpack://UniversalAssetBrowser/../../src/components/SynErrorResolutionFailureDialog/SyncErrorResolutionFailureDialog.tsx","webpack://UniversalAssetBrowser/../../src/actions/createResolveSyncConflictsAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/newLibrary/createNewLibraryAction.tsx","webpack://UniversalAssetBrowser/../../src/actions/createAddLibraryAction.tsx","webpack://UniversalAssetBrowser/../../../../src/components/AdobeAssetsView/AAVContext.tsx","webpack://UniversalAssetBrowser/../../../../src/components/AdobeAssetsView/AdobeAssetCollectionItem.ts","webpack://UniversalAssetBrowser/../../../../src/hooks/useColumns.ts","webpack://UniversalAssetBrowser/../../../../src/components/Header/Header.tsx","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/b336ea91-styles.module.css?eec8","webpack://UniversalAssetBrowser/../../../../src/components/ViewItems/PlaceholderItem.tsx","webpack://UniversalAssetBrowser/../../../../src/components/AdobeAssetsView/AdobeAssetsView.tsx","webpack://UniversalAssetBrowser/../../../../src/utils/theme-utils.ts","webpack://UniversalAssetBrowser/../../../../src/hooks/useDefaultActions.ts","webpack://UniversalAssetBrowser/../../../../src/hooks/useDragDrop.tsx","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/75c4a46a-styles.modules.css?3999","webpack://UniversalAssetBrowser/../../../../src/components/BackButton/BackButton.tsx","webpack://UniversalAssetBrowser/../../../../src/components/TextOverflowEllipsis/TextOverflowEllipsis.tsx","webpack://UniversalAssetBrowser/../../../../src/components/Breadcrumbs/Breadcrumbs.tsx","webpack://UniversalAssetBrowser/../../../../src/components/CollaboratorPopoverContent/CollaboratorPopoverContent.tsx","webpack://UniversalAssetBrowser/../../../../src/components/CollaboratorCount/UserIconAndCount.tsx","webpack://UniversalAssetBrowser/../../../../src/components/CollaboratorCount/CollaboratorCount.tsx","webpack://UniversalAssetBrowser/../../../../src/components/CompatibilityFilter/CompatibilityFilter.tsx","webpack://UniversalAssetBrowser/../adobe-assets-view/dist/assets/4aedcfbc-styles.module.css?b566","webpack://UniversalAssetBrowser/../../../../src/components/FileTypesFilter/FileTypesFilter.tsx","webpack://UniversalAssetBrowser/../../../../src/components/HeaderActionButton/HeaderActionButton.tsx","webpack://UniversalAssetBrowser/../../../../src/hooks/useBreadcrumbs.tsx","webpack://UniversalAssetBrowser/../../../../src/components/HeaderNavigation/HeaderNavigation.tsx","webpack://UniversalAssetBrowser/../../../../src/components/HeaderSelectButton/HeaderSelectButton.tsx","webpack://UniversalAssetBrowser/../../../src/utils/collection-view-compat.ts","webpack://UniversalAssetBrowser/../../../src/components/HeaderViewOptions.tsx","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseToString.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_arrayMap.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_castSlice.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseSlice.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_hasUnicode.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isRegExp.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseIsRegExp.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_unicodeToArray.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_stringToArray.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_asciiToArray.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/split.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/toString.js","webpack://UniversalAssetBrowser/../../../../src/components/ProjectBadge/ProjectBadge.tsx","webpack://UniversalAssetBrowser/../../../../src/components/RenameDialog/RenameDialog.tsx","webpack://UniversalAssetBrowser/../../../../src/components/SortDropdown/SortDropdown.tsx","webpack://UniversalAssetBrowser/../../../../src/components/TypeDropdownFilter/TypeDropdownFilter.tsx","webpack://UniversalAssetBrowser/../../../src/components/CollaboratorInfo/ProjectNameWithBadge.tsx","webpack://UniversalAssetBrowser/../../../src/components/CollaboratorInfo/CollaboratorInfo.tsx","webpack://UniversalAssetBrowser/../../../src/components/columns.tsx","webpack://UniversalAssetBrowser/../../../src/hooks/useCompatibleTypesFilter.ts","webpack://UniversalAssetBrowser/../../../src/utils/filtering-utils/compatibility-filter.ts","webpack://UniversalAssetBrowser/../../../src/hooks/useSAMListPagination.ts","webpack://UniversalAssetBrowser/../../../src/stores/AAVOperationStore.ts","webpack://UniversalAssetBrowser/../../../src/svgs/EmptyCloudDocs.tsx","webpack://UniversalAssetBrowser/../../../src/svgs/IconBoards.tsx","webpack://UniversalAssetBrowser/../../../src/types/BackedCollectionItem.ts","webpack://UniversalAssetBrowser/../../../../src/events/AssetLinkEvent.ts","webpack://UniversalAssetBrowser/../../../../src/utils/asset-link/constructAssetLink.ts","webpack://UniversalAssetBrowser/../../../../src/utils/filtering-utils/filtering-type-enums.ts","webpack://UniversalAssetBrowser/../../../../src/utils/filtering-utils/filtering-utils.tsx","webpack://UniversalAssetBrowser/../../../src/utils/folders.ts","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_CCLibrary_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_ReviewLink_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_AdobeAcrobatPDF.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_Aero.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_Illustrator.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_InDesign.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_Photoshop.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_AdobeFirefly.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_XD.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-firefly-s2/assets/svg/S2_Icon_AIGenClockPending_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_3D_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_AlertTriangle_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_AppsAll_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_MusicNote_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_VolumeTwo_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_AudioWave_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_Brand_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_FileText_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_Filmstrip_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_Folder_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_Image_20_N.svg","webpack://UniversalAssetBrowser/../../../../../node_modules/@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_Project_20_N.svg","webpack://UniversalAssetBrowser/../../../src/svgs/LceBadge_darkUI.svg","webpack://UniversalAssetBrowser/../../../src/svgs/LceBadge_lightUI.svg","webpack://UniversalAssetBrowser/../../../src/svgs/SquirrelIcon.tsx","webpack://UniversalAssetBrowser/../../../src/svgs/IconVector.tsx","webpack://UniversalAssetBrowser/../../../src/utils/icons.tsx","webpack://UniversalAssetBrowser/../../../src/utils/ingest.ts","webpack://UniversalAssetBrowser/../../../../src/utils/metrics/aav-metrics.ts","webpack://UniversalAssetBrowser/../../../../src/utils/metrics/aav-rename-callbacks.ts","webpack://UniversalAssetBrowser/../../../../src/utils/metrics/libraries-aav-metrics.ts","webpack://UniversalAssetBrowser/../../../../src/utils/metrics/projects-aav-metrics.ts","webpack://UniversalAssetBrowser/../../../src/events/OpenEvent.ts","webpack://UniversalAssetBrowser/../../../src/utils/open-event.ts","webpack://UniversalAssetBrowser/../../../src/utils/view-item-utils.ts","webpack://UniversalAssetBrowser/../../../../src/utils/view-item/view-item.ts","webpack://UniversalAssetBrowser/../src/utils/is-normal-folder.ts","webpack://UniversalAssetBrowser/../src/components/TypeDropdownFilter/utils.tsx","webpack://UniversalAssetBrowser/../../node_modules/uuid/dist/esm-browser/v1.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/toDate/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/startOfDay/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/startOfWeek/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/differenceInCalendarWeeks/index.js","webpack://UniversalAssetBrowser/../../node_modules/autobind-decorator/lib/esm/index.js","webpack://UniversalAssetBrowser/../src/utils/metrics.ts","webpack://UniversalAssetBrowser/../src/utils/Subscribable.ts","webpack://UniversalAssetBrowser/../src/utils/action.ts","webpack://UniversalAssetBrowser/../src/utils/constants.ts","webpack://UniversalAssetBrowser/../src/components/ActionButton.tsx","webpack://UniversalAssetBrowser/../src/contexts/CollectionViewContext.tsx","webpack://UniversalAssetBrowser/../src/components/ActionMenu.tsx","webpack://UniversalAssetBrowser/../src/utils/normalize-path.ts","webpack://UniversalAssetBrowser/../src/utils/derive-parent-path.ts","webpack://UniversalAssetBrowser/../src/components/BackButton.tsx","webpack://UniversalAssetBrowser/../src/components/Busy.tsx","webpack://UniversalAssetBrowser/../src/utils/utils.ts","webpack://UniversalAssetBrowser/../src/utils/platform.ts","webpack://UniversalAssetBrowser/../src/utils/drag-utils.ts","webpack://UniversalAssetBrowser/../src/stores/DragState.ts","webpack://UniversalAssetBrowser/../src/stores/SelectionStore.ts","webpack://UniversalAssetBrowser/../src/types/CollectionViewMetrics.ts","webpack://UniversalAssetBrowser/../src/utils/objects.ts","webpack://UniversalAssetBrowser/../src/utils/stop-propagation.ts","webpack://UniversalAssetBrowser/../src/components/ImageView.tsx","webpack://UniversalAssetBrowser/../src/components/DragCard.tsx","webpack://UniversalAssetBrowser/../src/components/EmptyView.tsx","webpack://UniversalAssetBrowser/../src/components/Dimmer.tsx","webpack://UniversalAssetBrowser/../src/utils/validate-filename.ts","webpack://UniversalAssetBrowser/../src/components/Rename.tsx","webpack://UniversalAssetBrowser/../src/utils/relativeDateTimeUtils.ts","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/differenceInSeconds/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack://UniversalAssetBrowser/../../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack://UniversalAssetBrowser/../src/utils/get-extend-selection-mode.ts","webpack://UniversalAssetBrowser/../src/utils/actions/RenameAction.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItem.tsx","webpack://UniversalAssetBrowser/../src/components/ViewItemIcon.tsx","webpack://UniversalAssetBrowser/../src/thirdparty/events.ts","webpack://UniversalAssetBrowser/../src/thirdparty/scrollToDOMNode.ts","webpack://UniversalAssetBrowser/../src/thirdparty/string.ts","webpack://UniversalAssetBrowser/../src/thirdparty/FocusManager.ts","webpack://UniversalAssetBrowser/../src/utils/scrollbar-measurer.ts","webpack://UniversalAssetBrowser/../src/utils/react-virtualized-change-props.ts","webpack://UniversalAssetBrowser/../src/utils/ensure-focus-on-items.ts","webpack://UniversalAssetBrowser/../src/components/ErrorBoundary.tsx","webpack://UniversalAssetBrowser/../src/components/UnableToOpenItemWarning.tsx","webpack://UniversalAssetBrowser/../src/components/WindowScrollerProvider.tsx","webpack://UniversalAssetBrowser/../src/components/GridView.tsx","webpack://UniversalAssetBrowser/../src/components/GridItem.tsx","webpack://UniversalAssetBrowser/../src/components/SortArrow.tsx","webpack://UniversalAssetBrowser/../src/components/HeaderColumn.tsx","webpack://UniversalAssetBrowser/../src/components/ListView.tsx","webpack://UniversalAssetBrowser/../src/components/ListItem.tsx","webpack://UniversalAssetBrowser/../src/components/svgs/EmptyFilterView.tsx","webpack://UniversalAssetBrowser/../src/utils/Logger.ts","webpack://UniversalAssetBrowser/../src/utils/actions/SelectAction.tsx","webpack://UniversalAssetBrowser/../src/utils/selectionManagers/SelectionManager.ts","webpack://UniversalAssetBrowser/../src/utils/selectionManagers/MultiSelectionManager.ts","webpack://UniversalAssetBrowser/../src/utils/selectionManagers/SingleSelectionManager.ts","webpack://UniversalAssetBrowser/../src/stores/OperationStore.ts","webpack://UniversalAssetBrowser/../src/stores/ViewStateStore.ts","webpack://UniversalAssetBrowser/../src/components/ContextMenu.tsx","webpack://UniversalAssetBrowser/../src/components/CDOView.tsx","webpack://UniversalAssetBrowser/../src/utils/sleep.ts","webpack://UniversalAssetBrowser/../src/components/ViewToggles.tsx","webpack://UniversalAssetBrowser/../src/components/ScrollContainer.tsx","webpack://UniversalAssetBrowser/../src/stores/ToastStore.ts","webpack://UniversalAssetBrowser/../src/components/HierarchyList/ExpandToggle.tsx","webpack://UniversalAssetBrowser/../src/components/HierarchyList/HierarchyListTypes.ts","webpack://UniversalAssetBrowser/../src/components/HierarchyList/ToggleHierarchyItemEvent.ts","webpack://UniversalAssetBrowser/../src/components/HierarchyList/HierarchyListItem.tsx","webpack://UniversalAssetBrowser/../src/components/HierarchyList/HierarchyList.tsx","webpack://UniversalAssetBrowser/../src/index.tsx","webpack://UniversalAssetBrowser/../../../src/utils/i18n.ts","webpack://UniversalAssetBrowser/../src/enums/Themes.ts","webpack://UniversalAssetBrowser/../../../src/config/SharedConfig.tsx","webpack://UniversalAssetBrowser/../../../src/hooks/useBreakpoint.ts","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-loader-mf/dist-esm/index.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-loader/node_modules/@ccx-public/component-types/dist/ccLibraries/message.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-loader/node_modules/@ccx-public/component-types/dist/ccLibraries/model.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-loader/node_modules/@ccx-public/component-types/dist/Timeline/index.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/@formatjs/icu-messageformat-parser/lib/error.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/@formatjs/icu-messageformat-parser/lib/types.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/@formatjs/icu-messageformat-parser/lib/index.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/intl-messageformat/lib/src/error.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/intl-messageformat/lib/src/formatters.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/lib/src/error.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/node_modules/intl-messageformat/lib/src/core.js","webpack://UniversalAssetBrowser/../../node_modules/@formatjs/intl/lib/src/list.js","webpack://UniversalAssetBrowser/../src/providers/FormatIntlProvider.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Toast.tsx","webpack://UniversalAssetBrowser/../../../src/hooks/useToasts.tsx","webpack://UniversalAssetBrowser/../../src/SelectionChangeEvent.ts","webpack://UniversalAssetBrowser/../../src/utils/wrapComponentWithReactDom.tsx","webpack://UniversalAssetBrowser/../../src/ChunkLoadErrorEvent.ts","webpack://UniversalAssetBrowser/../../src/contexts/MobileContext.tsx","webpack://UniversalAssetBrowser/../../src/contexts/NetworkContext.tsx","webpack://UniversalAssetBrowser/../../src/enums/PickerMode.ts","webpack://UniversalAssetBrowser/../../src/hooks/useComponentLoader.ts","webpack://UniversalAssetBrowser/../../src/providers/DocumentCallbacksProvider.tsx","webpack://UniversalAssetBrowser/../../src/hooks/useDocumentCallbacks.ts","webpack://UniversalAssetBrowser/../../src/hooks/useFormattedGradient.ts","webpack://UniversalAssetBrowser/../../src/providers/HostConfigProvider.tsx","webpack://UniversalAssetBrowser/../../src/hooks/useHostConfig.ts","webpack://UniversalAssetBrowser/../../src/hooks/useLoading.ts","webpack://UniversalAssetBrowser/../../src/hooks/usePerformance.ts","webpack://UniversalAssetBrowser/../../src/hooks/useLoadPerformance.ts","webpack://UniversalAssetBrowser/../../src/hooks/useMobile.ts","webpack://UniversalAssetBrowser/../../src/hooks/useOnline.ts","webpack://UniversalAssetBrowser/../../src/hooks/useSafeCloseModal.ts","webpack://UniversalAssetBrowser/../../src/hooks/useShareSheetLoader.ts","webpack://UniversalAssetBrowser/../../src/hooks/useTheme.ts","webpack://UniversalAssetBrowser/../../src/Modal.tsx","webpack://UniversalAssetBrowser/../../src/NavigationEvent.ts","webpack://UniversalAssetBrowser/../../src/polyfills/locale.ts","webpack://UniversalAssetBrowser/../../src/providers/HostConfigOverrides.tsx","webpack://UniversalAssetBrowser/../../src/providers/spectrum.tsx","webpack://UniversalAssetBrowser/../../src/RenderedEvent.ts","webpack://UniversalAssetBrowser/../../src/RoutedEvent.ts","webpack://UniversalAssetBrowser/../../src/NavigateOutEvent.ts","webpack://UniversalAssetBrowser/../../src/routes.ts","webpack://UniversalAssetBrowser/../../src/selection-utils/SelectionUtils.ts","webpack://UniversalAssetBrowser/../../src/utils/asset-mimetypes.ts","webpack://UniversalAssetBrowser/../../src/selection-utils/AssetSelectionUtils.ts","webpack://UniversalAssetBrowser/../../src/utils/assetRefs.ts","webpack://UniversalAssetBrowser/../../src/utils/filterBooleanAttributes.ts","webpack://UniversalAssetBrowser/../../src/utils/sentry.ts","webpack://UniversalAssetBrowser/../../src/utils/skip-propagation.ts","webpack://UniversalAssetBrowser/../../src/utils/typeChecks.ts","webpack://UniversalAssetBrowser/../../src/utils/url.ts","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/Ae_AEP_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/GLB_1024.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/GLTF_1024.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/SqIcon.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Audio_Generic_darkUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Audio_Generic_lightUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Image_Generic_darkUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Image_Generic_lightUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_PDF_darkUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_PDF_lightUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Presentation_Generic_darkUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Presentation_Generic_lightUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Spreadsheet_Generic_darkUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Spreadsheet_Generic_lightUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Text_Generic_darkUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Text_Generic_lightUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Video_Generic_darkUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/acrobat_Video_Generic_lightUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/ai_AIC_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/ai_AI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/an_FLA_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/ar_REAL_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/dn_DN_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/filetype_generic_darkUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/filetype_generic_lightUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/filetype_zip_darkUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/filetype_zip_lightUI_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/id_INDD_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/ps_PSDC_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/ps_PSD_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/xd_XDC_128.svg","webpack://UniversalAssetBrowser/../../../src/assets/document-icons/xd_XD_128.svg","webpack://UniversalAssetBrowser/../../../src/utils/assetIcons.tsx","webpack://UniversalAssetBrowser/../src/utils/ingest.ts","webpack://UniversalAssetBrowser/../src/components/withProviders/intl/i18n.ts","webpack://UniversalAssetBrowser/../src/hooks/usePerformance.ts","webpack://UniversalAssetBrowser/../src/components/withProviders/intl/index.tsx","webpack://UniversalAssetBrowser/../../src/components/withProviders/events/NavigationEvent.ts","webpack://UniversalAssetBrowser/../../src/organizerConfig.ts","webpack://UniversalAssetBrowser/../src/contexts/OrganizerConfigContext.tsx","webpack://UniversalAssetBrowser/../src/hooks/useOrganizerConfig.ts","webpack://UniversalAssetBrowser/../src/components/withOrganizerConfig.tsx","webpack://UniversalAssetBrowser/../../src/utils/generation-history-utils.ts","webpack://UniversalAssetBrowser/../../src/utils/uab-sam-core.ts","webpack://UniversalAssetBrowser/../../src/utils/initializeSAM.ts","webpack://UniversalAssetBrowser/../../src/hooks/useSAM.ts","webpack://UniversalAssetBrowser/../../src/hooks/useAsset.ts","webpack://UniversalAssetBrowser/../../src/hooks/useAssetList.ts","webpack://UniversalAssetBrowser/../../src/hooks/useGenerationHistoryList.ts","webpack://UniversalAssetBrowser/../../src/hooks/useNameValidation.ts","webpack://UniversalAssetBrowser/../../src/hooks/useProject.ts","webpack://UniversalAssetBrowser/../../src/utils/assets.ts","webpack://UniversalAssetBrowser/../../src/utils/errors.ts","webpack://UniversalAssetBrowser/../../src/utils/list-utils.ts","webpack://UniversalAssetBrowser/../../src/hooks/useProjectList.ts","webpack://UniversalAssetBrowser/../../src/hooks/useLibraryList.ts","webpack://UniversalAssetBrowser/../../src/hooks/useLibraryContext.ts","webpack://UniversalAssetBrowser/../../src/hooks/useDirectCollaborators.ts","webpack://UniversalAssetBrowser/./src/version.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/extends.js","webpack://UniversalAssetBrowser/../../node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://UniversalAssetBrowser/../../node_modules/classnames/index.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/AssetBrowser/index.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/assets/AdobeAsset.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/assets/AssetContext.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/assets/NetworkStatus.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/BoardModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/collaboration/AvatarSizes.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/core/Environment.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/core/ItemLoaderState.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/core/ItemSource.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/core/SAMCore.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/core/SAMError.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/frameio/FrameioInterface.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/custom-models/legacy-cme/LegacyCustomModelModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/CustomModelModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/LinkUtils.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/ProjectsModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/AssetModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/AssignmentModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/ClassroomMemberModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/ClassroomModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/GenerationHistoryAssetModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/LibraryModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/RepositoryModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/interface/StudentAssignmentModel.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/SAM/utils/RenditionFetcher.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/Timeline/index.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/ccLibraries/message.js","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/component-types/dist/ccLibraries/model.js","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/asyncContext/stackStrategy.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/defaultScopes.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/asyncContext/index.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/carrier.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/constants.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/currentScopes.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/debug-build.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/exports.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/scope.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/semanticAttributes.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/session.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/dynamicSamplingContext.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/spanstatus.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/tracing/utils.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/baggage.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/browser.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/debug-ids.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/debug-logger.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/dsn.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/hasSpansEnabled.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/is.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/merge.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/misc.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/normalize.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/object.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/parseSampleRate.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/eventProcessors.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/applyScopeDataToEvent.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/prepareEvent.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/propagationContext.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/spanOnScope.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/spanUtils.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/stacktrace.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/string.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/syncpromise.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/time.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/tracing.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/version.ts","webpack://UniversalAssetBrowser/../../node_modules/@sentry/core/src/utils/worldwide.ts","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_Symbol.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_getRawTag.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_objectToString.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseGetTag.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseUnary.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_freeGlobal.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_isIndex.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_isIterateeCall.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_nodeUtil.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_root.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/now.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_trimmedEndIndex.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseTrim.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/toNumber.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/debounce.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/eq.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isArray.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isArrayLike.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isFunction.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isLength.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isObject.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isObjectLike.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isSymbol.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_assocIndexOf.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_listCacheDelete.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_ListCache.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_listCacheClear.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_listCacheGet.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_listCacheHas.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_listCacheSet.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_coreJsData.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_isMasked.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_toSource.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseIsNative.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_getNative.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_getValue.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_Map.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_nativeCreate.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_hashGet.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_hashHas.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_Hash.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_hashClear.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_hashDelete.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_hashSet.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_getMapData.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_isKeyable.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_MapCache.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_mapCacheClear.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_mapCacheDelete.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_mapCacheGet.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_mapCacheHas.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_mapCacheSet.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_Stack.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_stackClear.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_stackDelete.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_stackGet.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_stackHas.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_stackSet.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_defineProperty.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseAssignValue.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_assignMergeValue.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseFor.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_createBaseFor.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_cloneBuffer.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_Uint8Array.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_cloneTypedArray.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_cloneArrayBuffer.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseCreate.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_getPrototype.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_overArg.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_isPrototype.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseIsArguments.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isArguments.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isBuffer.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/stubFalse.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isPlainObject.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseIsTypedArray.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isTypedArray.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_safeGet.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_assignValue.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_arrayLikeKeys.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseTimes.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseKeysIn.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_nativeKeysIn.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/keysIn.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/toPlainObject.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_copyObject.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseMergeDeep.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/isArrayLikeObject.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_copyArray.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_initCloneObject.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseMerge.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/identity.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_overRest.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseSetToString.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/constant.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_shortOut.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_setToString.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_baseRest.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_apply.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/merge.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/_createAssigner.js","webpack://UniversalAssetBrowser/../../node_modules/lodash-es/throttle.js","webpack://UniversalAssetBrowser/../../node_modules/tslib/tslib.es6.mjs","webpack://UniversalAssetBrowser/../ui/dist/assets/3ffa1de1-AssetIcon.module.css?e765","webpack://UniversalAssetBrowser/../../../src/AssetIcon/AssetIcon.tsx","webpack://UniversalAssetBrowser/../../node_modules/@ccx-public/spectrum-wrapper/src/Dialog.tsx","webpack://UniversalAssetBrowser/../ui/dist/assets/319822b4-DialogContent.module.css?496e","webpack://UniversalAssetBrowser/../../../src/DialogContent/DialogContent.tsx","webpack://UniversalAssetBrowser/../ui/dist/assets/4f5385aa-HelpText.module.css?8127","webpack://UniversalAssetBrowser/../../../src/HelpText/HelpText.tsx","webpack://UniversalAssetBrowser/../../../src/Icons/All.tsx","webpack://UniversalAssetBrowser/../../../src/Icons/Brand.tsx","webpack://UniversalAssetBrowser/../../../src/Icons/CCLibrary.tsx","webpack://UniversalAssetBrowser/../../../src/Icons/Project.tsx","webpack://UniversalAssetBrowser/../../../src/Icons/User.tsx","webpack://UniversalAssetBrowser/../../../src/Icons/UserGroup.tsx","webpack://UniversalAssetBrowser/../ui/dist/assets/a2a66edc-LoadingState.module.css?671d","webpack://UniversalAssetBrowser/../../../src/LoadingState/LoadingState.tsx","webpack://UniversalAssetBrowser/../../../src/hooks/useEnterKeySubmit.ts","webpack://UniversalAssetBrowser/webpack/bootstrap","webpack://UniversalAssetBrowser/webpack/runtime/compat get default export","webpack://UniversalAssetBrowser/webpack/runtime/define property getters","webpack://UniversalAssetBrowser/webpack/runtime/ensure chunk","webpack://UniversalAssetBrowser/webpack/runtime/get javascript chunk filename","webpack://UniversalAssetBrowser/webpack/runtime/global","webpack://UniversalAssetBrowser/webpack/runtime/hasOwnProperty shorthand","webpack://UniversalAssetBrowser/webpack/runtime/make namespace object","webpack://UniversalAssetBrowser/webpack/runtime/node module decorator","webpack://UniversalAssetBrowser/webpack/runtime/publicPath","webpack://UniversalAssetBrowser/webpack/runtime/jsonp chunk loading","webpack://UniversalAssetBrowser/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"UniversalAssetBrowser\"] = factory();\n\telse\n\t\troot[\"UniversalAssetBrowser\"] = factory();\n})(globalThis, () => {\nreturn ","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"UniversalAssetBrowser:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/* eslint-env node */\n/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2024 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nconst VERSION = require('./version');\n\nconst fallbackTagNameSuffix =\n    '-' + VERSION.replace(/[\\^~]/g, '').replace(/\\./g, '-');\n\nfunction fallbackTagName(tagName) {\n    return `${tagName}${fallbackTagNameSuffix}`;\n}\n\nmodule.exports = { fallbackTagName, fallbackTagNameSuffix };\n","// Generated by genversion.\nmodule.exports = '1.0.348';\n","var _global = (typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}); _global.SENTRY_RELEASE={id:\"universal-asset-browser@5.45.0-2\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"wrapper--RKZM2\",\"content\":\"content--GWLl3\",\"ellipsis\":\"ellipsis--uU2mi\",\"tooltip\":\"tooltip--nqMYo\"};","// extracted by mini-css-extract-plugin\nexport default {\"toolbarMenuItem\":\"toolbarMenuItem--vAuR1\"};","// extracted by mini-css-extract-plugin\nexport default {\"createInput\":\"createInput--c3FgK\",\"saveToSelect\":\"saveToSelect--jRk3V\",\"restrictToggle\":\"restrictToggle--VkEnO\",\"errorMessage\":\"errorMessage--MjGLi\",\"saveToSelectIcon\":\"saveToSelectIcon--bSkrE\",\"dialogContent\":\"dialogContent--oEEKO\",\"saveToSelectLabel\":\"saveToSelectLabel--KP44t\"};","// extracted by mini-css-extract-plugin\nexport default {\"spectrum-Breadcrumbs\":\"spectrum-Breadcrumbs--HXVJ5\",\"spectrum-Breadcrumbs--compact\":\"spectrum-Breadcrumbs--compact--IZM9U\",\"spectrum-Breadcrumbs--multiline\":\"spectrum-Breadcrumbs--multiline--FaweC\",\"spectrum-Breadcrumbs-itemSeparator\":\"spectrum-Breadcrumbs-itemSeparator--MMl53\",\"spectrum-Breadcrumbs-item\":\"spectrum-Breadcrumbs-item--Umv82\",\"spectrum-ActionButton\":\"spectrum-ActionButton--ElO3D\",\"spectrum-Breadcrumbs-itemLink\":\"spectrum-Breadcrumbs-itemLink--_GrGz\",\"is-disabled\":\"is-disabled--S6gB9\",\"is-dragged\":\"is-dragged--LIOoE\"};","// extracted by mini-css-extract-plugin\nexport default {\"typeFilterDropDown\":\"typeFilterDropDown--H0twz\"};","// extracted by mini-css-extract-plugin\nexport default {\"badge\":\"badge--VP4tj\",\"sizeXXS\":\"sizeXXS--TKOLT\",\"sizeXS\":\"sizeXS--aySMY\",\"sizeS\":\"sizeS--uu1n3\",\"sizeM\":\"sizeM--fYqIg\",\"sizeL\":\"sizeL--ka8Ds\",\"sizeL50\":\"sizeL50--OimcZ\",\"sizeXL\":\"sizeXL--vK3ST\",\"sizeXXL\":\"sizeXXL--tMONm\"};","// extracted by mini-css-extract-plugin\nexport default {\"restrictToggle\":\"restrictToggle--fSnyn\",\"divider\":\"divider--MMONl\"};","// extracted by mini-css-extract-plugin\nexport default {\"collabInfoContainer\":\"collabInfoContainer--FHudW\",\"collabInfoText\":\"collabInfoText--Hab6B\"};","// extracted by mini-css-extract-plugin\nexport default {\"userIconAndCount\":\"userIconAndCount--TCnmC\",\"usersIcon\":\"usersIcon--fGRgO\",\"userCount\":\"userCount--b_h6i\",\"iconXS\":\"iconXS--hhnVf\"};","// extracted by mini-css-extract-plugin\nexport default {\"shareDialog\":\"shareDialog--xYgZ5\"};","// extracted by mini-css-extract-plugin\nexport default {\"renameContent\":\"renameContent--OjIY4\",\"renameInput\":\"renameInput--s78zH\",\"inputExpress\":\"inputExpress--mun8j\",\"waitContainer\":\"waitContainer--zIMMe\"};","// extracted by mini-css-extract-plugin\nexport default {\"description\":\"description--d7VSt\",\"emailNameInputFields\":\"emailNameInputFields--jeShs\",\"emailInputField\":\"emailInputField--wfydb\",\"nameInputField\":\"nameInputField--PbfQL\",\"inputTextfield\":\"inputTextfield--jdE8s\",\"radioGroupContainer\":\"radioGroupContainer--M3beH\",\"radioGroup\":\"radioGroup--Rl6j1\",\"radioGroupRequired\":\"radioGroupRequired--zpKCz\",\"radio\":\"radio--iVL3E\",\"textAreaDesc\":\"textAreaDesc--NV8hC\",\"disclaimerHelperText\":\"disclaimerHelperText--RTBL0\",\"mobile\":\"mobile--c8kM3\"};","// extracted by mini-css-extract-plugin\nexport default {\"loadingAnimated\":\"loadingAnimated--KcRnS\",\"loading-swipe\":\"loading-swipe--wdi_Q\",\"loadingStatic\":\"loadingStatic--XuKL8\",\"element\":\"element--trFtB\"};","// extracted by mini-css-extract-plugin\nexport default {\"dialogItemsContainer\":\"dialogItemsContainer--rbtuf\",\"dialogRenditionWrapper\":\"dialogRenditionWrapper--JTkoZ\",\"dialogRendition\":\"dialogRendition--vA4DD\",\"folderGeneral\":\"folderGeneral--_dgVv\",\"dialogSize\":\"dialogSize--Uy5EY\",\"dialogTitle\":\"dialogTitle--tqfsv\"};","// extracted by mini-css-extract-plugin\nexport default {\"BackButton\":\"BackButton--f3XwZ\",\"spectrum-Tool\":\"spectrum-Tool--EiSsk\",\"spectrum-Icon--sizeS\":\"spectrum-Icon--sizeS--q9VPn\"};","// extracted by mini-css-extract-plugin\nexport default {\"libraryRenditionContainer\":\"libraryRenditionContainer--V51fK\",\"libraryRenditionTile\":\"libraryRenditionTile--moCyG\",\"libraryRenditionTopLeft\":\"libraryRenditionTopLeft--HdOzT\",\"libraryRenditionTopRight\":\"libraryRenditionTopRight--Q6zju\",\"libraryRenditionBottomLeft\":\"libraryRenditionBottomLeft--FRDT6\",\"libraryRenditionBottomRight\":\"libraryRenditionBottomRight--q1Yrl\",\"libraryRenditionTiledarkest\":\"libraryRenditionTiledarkest--B6dfw\",\"libraryRenditionTiledark\":\"libraryRenditionTiledark--CAgxL\",\"libraryRenditionTilelight\":\"libraryRenditionTilelight--Eudhh\",\"libraryRenditionTilelightest\":\"libraryRenditionTilelightest--eiKly\",\"libraryRenditionFull\":\"libraryRenditionFull--Xos4p\",\"libraryRenditionSwatch\":\"libraryRenditionSwatch--J8NbT\",\"placeholder\":\"placeholder--DXCG5\",\"libraryRenditionGradientContainer\":\"libraryRenditionGradientContainer--YvetG\"};","// extracted by mini-css-extract-plugin\nexport default {\"ellipsis\":\"ellipsis--nM1_P\",\"you\":\"you--S0ekK\",\"collaboratorName\":\"collaboratorName--FaGye\",\"sharedWithCollaboratorName\":\"sharedWithCollaboratorName--Kor5h\",\"divider\":\"divider--rm5HW\",\"headerText\":\"headerText--njP2R\",\"collaboratorSummary\":\"collaboratorSummary--hhsFG\",\"trigger\":\"trigger--C0ugZ\"};","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"input--QLdip\"};","// extracted by mini-css-extract-plugin\nexport default {\"breadcrumbs\":\"breadcrumbs--Gl0si\",\"enabledLink\":\"enabledLink--pT5Zb\",\"menuItemWrapper\":\"menuItemWrapper--MUlZd\",\"breadcrumbsItem\":\"breadcrumbsItem--_6w_c\",\"breadcrumbsItemLink\":\"breadcrumbsItemLink--aAL3a\",\"breadcrumbsItemIcon\":\"breadcrumbsItemIcon--IH4p0\"};","// extracted by mini-css-extract-plugin\nexport default {\"HeaderCompactBreadcrumbs\":\"HeaderCompactBreadcrumbs--zlFg_\"};","// extracted by mini-css-extract-plugin\nexport default {\"dialogRoot\":\"dialogRoot--_a4oO\"};","// extracted by mini-css-extract-plugin\nexport default {\"dropdownMenuItem\":\"dropdownMenuItem--AARu4\",\"dropdownButton\":\"dropdownButton--Tysjh\"};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _IngestController = _interopRequireDefault(require(\"../controllers/IngestController\"));\n\nvar _context = require(\"../context\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar getController = function getController(props) {\n  var canInstantiate = true;\n\n  if (props.disabled) {\n    canInstantiate = false;\n  }\n\n  if (props.env !== 'prod' && props.env !== 'production') {\n    if (!props.project) {\n      console.error('When instantiated the Ingest Provider component must be given a project prop.');\n      canInstantiate = false;\n    }\n\n    if (!props.apiKey) {\n      console.error('When instantiated the Ingest Provider component must be given an apiKey prop.');\n      canInstantiate = false;\n    }\n\n    if (!props.token && !props.allowNoToken) {\n      console.error('When instantiated the Ingest Provider component must be given a token prop.');\n      canInstantiate = false;\n    }\n  }\n\n  if (canInstantiate) {\n    return (0, _IngestController[\"default\"])(props);\n  }\n};\n\nvar IngestProvider = _react[\"default\"].forwardRef(function (props, ref) {\n  var ingestContext = (0, _react.useContext)(_context.IngestContext) || {};\n  var controller = getController(props);\n  var ingest = (0, _react.useMemo)(function () {\n    if (controller) {\n      return _objectSpread({}, ingestContext, _defineProperty({}, props.project, controller));\n    }\n\n    return _objectSpread({}, ingestContext);\n  }, [controller]);\n  (0, _react.useEffect)(function () {\n    return function () {\n      var _controller = getController(props);\n\n      if (_controller || props.disabled && _controller) {\n        _controller[\"delete\"]();\n      }\n    };\n  }, [props.project, props.disabled]);\n  (0, _react.useImperativeHandle)(ref, function () {\n    return {\n      getController: function getController() {\n        return ingest[props.project];\n      }\n    };\n  }, [ingest]);\n  return _react[\"default\"].createElement(_context.IngestContext.Provider, {\n    value: ingest\n  }, props.children);\n});\n\nIngestProvider.displayName = 'IngestProvider';\nIngestProvider.defaultProps = {\n  disabled: false,\n  env: 'stage'\n};\nIngestProvider.propTypes = {\n  allowNoToken: _propTypes[\"default\"].bool,\n  apiKey: _propTypes[\"default\"].string.isRequired,\n  data: _propTypes[\"default\"].object,\n  debounce: _propTypes[\"default\"].number,\n  disabled: _propTypes[\"default\"].bool,\n  children: _propTypes[\"default\"].node,\n  env: _propTypes[\"default\"].string,\n  ingestType: _propTypes[\"default\"].string,\n  maQueuedEvents: _propTypes[\"default\"].number,\n  onLog: _propTypes[\"default\"].func,\n  product: _propTypes[\"default\"].string,\n  productLocation: _propTypes[\"default\"].string,\n  project: _propTypes[\"default\"].string.isRequired,\n  timestampPropertyName: _propTypes[\"default\"].string,\n  token: _propTypes[\"default\"].string,\n  userRegion: _propTypes[\"default\"].string\n};\nvar _default = IngestProvider;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.IngestContext = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar IngestContext = _react[\"default\"].createContext({\n  fireEvent: function fireEvent() {\n    return new Promise(function (resolve) {\n      return resolve();\n    });\n  }\n});\n\nexports.IngestContext = IngestContext;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _lodash = _interopRequireDefault(require(\"lodash.merge\"));\n\nvar _v = _interopRequireDefault(require(\"uuid/v1\"));\n\nvar _ingest = _interopRequireDefault(require(\"@ccx-public/ingest\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar SINGLETON_CONTROLLER_MAP = {\n  // no op for when no controller is present.\n  fireEvent: function fireEvent() {\n    return Promise.resolve();\n  },\n  flush: function flush() {\n    return Promise.resolve();\n  }\n};\n/**\n * IngestController class\n */\n\nvar IngestController =\n/*#__PURE__*/\nfunction () {\n  /**\n   * Constructor for IngestController\n   * @param {object} props - base data object based on SDM\n   * @returns {undefined}\n   */\n  function IngestController(props) {\n    _classCallCheck(this, IngestController);\n\n    this.configure(props);\n    this.offlineQueue = [];\n    this.fireEvent = this.fireEvent.bind(this);\n    this.fireQueuedEvents = this.fireQueuedEvents.bind(this);\n    this._sessionGuid = (0, _v[\"default\"])();\n    window.addEventListener('online', this.fireQueuedEvents);\n  }\n  /**\n   * configures the controller. Used for instantiation or when values changes.\n   * @param {object} props - base data object based on SDM\n   * @returns {undefined}\n   */\n\n\n  _createClass(IngestController, [{\n    key: \"configure\",\n    value: function configure(props) {\n      var token = props.token;\n      var onLog = props.onLog;\n\n      if (!props.apiInstance) {\n        var dependencies = {\n          getAccessToken: function getAccessToken(cb) {\n            cb(null, token);\n          },\n          log: function log(message) {\n            onLog && onLog(message);\n          }\n        };\n        var options = {\n          ENVIRONMENT: props.env,\n          ALLOW_NO_TOKEN: props.allowNoToken,\n          ANALYTICS_API_KEY: props.apiKey,\n          ANALYTICS_PROJECT: props.project,\n          ANALYTICS_X_PRODUCT: props.product,\n          ANALYTICS_X_PRODUCT_LOCATION: props.productLocation,\n          ANALYTICS_MAX_QUEUED_EVENTS: props.maxQueuedEvents,\n          ANALYTICS_DEBOUNCE: props.debounce,\n          ANALYTICS_USER_REGION: props.userRegion,\n          ANALYTICS_INGEST_TYPE: props.ingestType,\n          TIMESTAMP_PROPERTY_NAME: props.timestampPropertyName\n        };\n        var apiInstance = new _ingest[\"default\"](dependencies, options);\n        apiInstance.enable(true);\n        this._ingestApi = apiInstance;\n      } else {\n        this._ingestApi = props.apiInstance;\n      }\n\n      this.updateData(props.data);\n      this.project = props.project;\n\n      this.fireEventCb = props.fireEventCallback || function () {};\n    }\n    /**\n     * Function to update data\n     * @param {object} data - data to update the base data object\n     * @returns {undefined}\n     */\n\n  }, {\n    key: \"updateData\",\n    value: function updateData(data) {\n      this._baseData = data;\n    }\n    /**\n     * Private function to flatten an object\n     * @param {object} nestedObj - object to be flattened\n     * @param {object} flatObj - object is being flattened\n     * @param {object} curPrefix - key prefix used for flattening\n     * @returns {object} flattened object\n     */\n\n  }, {\n    key: \"_flattenObj\",\n    value: function _flattenObj(nestedObj, flatObj, curPrefix) {\n      var _this = this;\n\n      Object.keys(nestedObj).forEach(function (key) {\n        var value = nestedObj[key];\n        var newKey = curPrefix ? \"\".concat(curPrefix, \".\").concat(key) : key;\n\n        if (value && _typeof(value) === 'object' && !(value instanceof Date)) {\n          _this._flattenObj(value, flatObj, newKey);\n        } else {\n          flatObj[newKey] = value;\n        }\n      });\n      return flatObj;\n    }\n    /**\n     * Flush events that were queued while offline.\n     * @returns {undefined}\n     */\n\n  }, {\n    key: \"fireQueuedEvents\",\n    value: function fireQueuedEvents() {\n      var _this2 = this;\n\n      this.offlineQueue.forEach(function (_ref) {\n        var augmentedData = _ref.augmentedData,\n            fireImmediately = _ref.fireImmediately,\n            options = _ref.options,\n            mergeBaseData = _ref.mergeBaseData;\n\n        _this2.fireEvent(augmentedData, fireImmediately, options, mergeBaseData);\n      });\n      this.offlineQueue = [];\n    }\n    /**\n     * Function to fire an event to Ingest\n     * @param {object} augmentedData - object to augment base data set for event\n     * @param {boolean} fireImmediately - indication if we should immediately fire\n     * @param {object} options - optional project override block (params outside payload)\n     * @param {boolean} mergeBaseData - indication if we should merge augmentedData into current base data object\n     * @returns {object} promise for event being fired\n     */\n\n  }, {\n    key: \"fireEvent\",\n    value: function fireEvent() {\n      var _this3 = this;\n\n      var augmentedData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var fireImmediately = arguments.length > 1 ? arguments[1] : undefined;\n      var options = arguments.length > 2 ? arguments[2] : undefined;\n      var mergeBaseData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n      return new Promise(function (resolve, reject) {\n        var result = {};\n\n        if (mergeBaseData) {\n          var _sdmJsonData$event$se, _sdmJsonData$event$gu, _sdmJsonData$event$of;\n\n          var sdmJsonData = (0, _lodash[\"default\"])({}, _this3._baseData) || {};\n\n          if (!sdmJsonData.event) {\n            sdmJsonData.event = {};\n          }\n\n          sdmJsonData.event.session_guid = (_sdmJsonData$event$se = sdmJsonData.event.session_guid) !== null && _sdmJsonData$event$se !== void 0 ? _sdmJsonData$event$se : _this3._sessionGuid;\n          sdmJsonData.event.guid = (_sdmJsonData$event$gu = sdmJsonData.event.guid) !== null && _sdmJsonData$event$gu !== void 0 ? _sdmJsonData$event$gu : (0, _v[\"default\"])();\n          sdmJsonData.event.offline = (_sdmJsonData$event$of = sdmJsonData.event.offline) !== null && _sdmJsonData$event$of !== void 0 ? _sdmJsonData$event$of : (!navigator.onLine).toString();\n          (0, _lodash[\"default\"])(result, sdmJsonData, augmentedData);\n        } else {\n          result = augmentedData;\n        }\n\n        var flattenedBody = _this3._flattenObj(result, {});\n\n        var cb = function cb(err) {\n          if (!err) {\n            _this3.fireEventCb(result);\n\n            resolve(flattenedBody);\n          } else {\n            reject(err);\n          }\n        };\n\n        if (navigator.onLine) {\n          _this3._ingestApi.postEvent(flattenedBody, !fireImmediately ? cb : undefined, options);\n\n          if (fireImmediately) {\n            _this3._ingestApi.flush(true, cb);\n          }\n        } else {\n          resolve(flattenedBody);\n\n          _this3.offlineQueue.push({\n            augmentedData: result,\n            fireImmediately: fireImmediately,\n            options: options,\n            mergeBaseData: false\n          });\n        }\n      });\n    }\n    /**\n     * Function to flush the event queue\n     * @returns {object} promise for event being fired\n     */\n\n  }, {\n    key: \"flush\",\n    value: function flush() {\n      var _this4 = this;\n\n      return new Promise(function (resolve, reject) {\n        var cb = function cb(err) {\n          if (!err) {\n            resolve();\n          } else {\n            reject(err);\n          }\n        };\n\n        _this4._ingestApi.flush(true, cb);\n      });\n    }\n    /**\n     * Deletes the controller from the singleton map.\n     * @returns {undefined}\n     */\n\n  }, {\n    key: \"delete\",\n    value: function _delete() {\n      window.removeEventListener('online', this.fireQueuedEvents);\n      this.offlineQueue = [];\n      delete SINGLETON_CONTROLLER_MAP[this.project];\n    }\n  }]);\n\n  return IngestController;\n}();\n/**\n * configures the controller. Used for instantiation or when values changes.\n * @param {object} props - base data object based on SDM\n * @returns {undefined}\n */\n\n\nfunction IngestControllerSingleton(props) {\n  var instance;\n\n  if (SINGLETON_CONTROLLER_MAP[props.project]) {\n    instance = SINGLETON_CONTROLLER_MAP[props.project];\n    instance.configure(props);\n  } else {\n    instance = new IngestController(props);\n    SINGLETON_CONTROLLER_MAP[props.project] = instance;\n  }\n\n  return instance;\n}\n/**\n * Function designed to allow direct access to the IngestController for a project\n * @param {String} project - project name for on instantiated IngestController\n * @returns {IngestController} - IngestController\n */\n\n\nIngestControllerSingleton.getInstance = function getInstance(project) {\n  return SINGLETON_CONTROLLER_MAP[project] || SINGLETON_CONTROLLER_MAP;\n};\n\nvar _default = IngestControllerSingleton;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = _default;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _context = require(\"../context\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Decorator for ccxIngest\n * @param {string} controllerKey - key that will be used to return controller instance\n * @returns {object} decorated component\n */\nfunction _default(controllerKey) {\n  return function Component(WrappedComponent) {\n    return (\n      /*#__PURE__*/\n      function (_React$Component) {\n        _inherits(DecoratedComponent, _React$Component);\n\n        /**\n         * constructor - bind passed down methods and set init state\n         * @param {Object} props [description]\n         */\n        function DecoratedComponent(props) {\n          var _this;\n\n          _classCallCheck(this, DecoratedComponent);\n\n          _this = _possibleConstructorReturn(this, _getPrototypeOf(DecoratedComponent).call(this, props));\n          _this.handleWrappedRef = _this.handleWrappedRef.bind(_assertThisInitialized(_this));\n          return _this;\n        }\n        /**\n         * Provides access to the wrapped component\n         * @returns {ReactElement} wrapped component\n         */\n\n\n        _createClass(DecoratedComponent, [{\n          key: \"getWrappedInstance\",\n          value: function getWrappedInstance() {\n            return this._wrappedRef;\n          }\n          /**\n           * Gets ref for the wrapped component\n           * @param {ReactComponent} ref - the raw input component\n           * @return {undefined}\n           */\n\n        }, {\n          key: \"handleWrappedRef\",\n          value: function handleWrappedRef(ref) {\n            this._wrappedRef = ref;\n          }\n          /**\n           * Lifecycle method for render\n           * @returns {ReactElement} markup\n           */\n\n        }, {\n          key: \"render\",\n          value: function render() {\n            var _this2 = this;\n\n            return _react[\"default\"].createElement(_context.IngestContext.Consumer, null, function (ccxIngest) {\n              var ccxIngestResult;\n\n              if (controllerKey && ccxIngest && ccxIngest[controllerKey]) {\n                ccxIngestResult = ccxIngest[controllerKey];\n              } else {\n                ccxIngestResult = ccxIngest;\n              }\n\n              return _react[\"default\"].createElement(WrappedComponent, _extends({\n                ref: _this2.handleWrappedRef\n              }, _this2.props, {\n                ccxIngest: ccxIngestResult\n              }));\n            });\n          }\n        }]);\n\n        return DecoratedComponent;\n      }(_react[\"default\"].Component)\n    );\n  };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = require(\"react\");\n\nvar _context = require(\"../context\");\n\n/**\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe. All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe Inc. and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe Inc.\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Inc.\n */\nvar useCCXIngest = function useCCXIngest(project) {\n  var ctx = (0, _react.useContext)(_context.IngestContext);\n  return ctx[project] || ctx;\n};\n\nvar _default = useCCXIngest;\nexports[\"default\"] = _default;","Object.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = require('./dist/components/IngestProvider').default;\nexports.ccxController = require('./dist/controllers/IngestController').default;\nexports.ccxIngest = require('./dist/decorators/ccxIngest').default;\nexports.ccxIngestContext = require('./dist/context').IngestContext;\nexports.useCCXIngest = require('./dist/hooks/useCCXIngest').default;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n  byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n  var i = offset || 0;\n  var bth = byteToHex;\n  // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n  return ([\n    bth[buf[i++]], bth[buf[i++]],\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]],\n    bth[buf[i++]], bth[buf[i++]],\n    bth[buf[i++]], bth[buf[i++]]\n  ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator.  In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API.  We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n                      (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n  // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n  var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n  module.exports = function whatwgRNG() {\n    getRandomValues(rnds8);\n    return rnds8;\n  };\n} else {\n  // Math.random()-based (RNG)\n  //\n  // If all else fails, use Math.random().  It's fast, but is of unspecified\n  // quality.\n  var rnds = new Array(16);\n\n  module.exports = function mathRNG() {\n    for (var i = 0, r; i < 16; i++) {\n      if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n      rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n    }\n\n    return rnds;\n  };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n  var i = buf && offset || 0;\n  var b = buf || [];\n\n  options = options || {};\n  var node = options.node || _nodeId;\n  var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n  // node and clockseq need to be initialized to random values if they're not\n  // specified.  We do this lazily to minimize issues related to insufficient\n  // system entropy.  See #189\n  if (node == null || clockseq == null) {\n    var seedBytes = rng();\n    if (node == null) {\n      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n      node = _nodeId = [\n        seedBytes[0] | 0x01,\n        seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n      ];\n    }\n    if (clockseq == null) {\n      // Per 4.2.2, randomize (14 bit) clockseq\n      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n    }\n  }\n\n  // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so\n  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n  var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n  // Per 4.2.1.2, use count of uuid's generated during the current clock\n  // cycle to simulate higher resolution clock\n  var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n  // Time since last uuid creation (in msecs)\n  var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n  // Per 4.2.1.2, Bump clockseq on clock regression\n  if (dt < 0 && options.clockseq === undefined) {\n    clockseq = clockseq + 1 & 0x3fff;\n  }\n\n  // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n  // time interval\n  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n    nsecs = 0;\n  }\n\n  // Per 4.2.1.2 Throw error if too many uuids are requested\n  if (nsecs >= 10000) {\n    throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n  }\n\n  _lastMSecs = msecs;\n  _lastNSecs = nsecs;\n  _clockseq = clockseq;\n\n  // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n  msecs += 12219292800000;\n\n  // `time_low`\n  var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n  b[i++] = tl >>> 24 & 0xff;\n  b[i++] = tl >>> 16 & 0xff;\n  b[i++] = tl >>> 8 & 0xff;\n  b[i++] = tl & 0xff;\n\n  // `time_mid`\n  var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n  b[i++] = tmh >>> 8 & 0xff;\n  b[i++] = tmh & 0xff;\n\n  // `time_high_and_version`\n  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n  b[i++] = tmh >>> 16 & 0xff;\n\n  // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n  b[i++] = clockseq >>> 8 | 0x80;\n\n  // `clock_seq_low`\n  b[i++] = clockseq & 0xff;\n\n  // `node`\n  for (var n = 0; n < 6; ++n) {\n    b[i + n] = node[n];\n  }\n\n  return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nfunction inferEnvironment({\n    version,\n    hostname,\n    environment = process.env.NODE_ENV, // Sentry's default in node projects\n}) {\n    if (version && (version.includes('.pr') || version.includes('main'))) {\n        return 'preview'; // All builds that include \".pr\" or \"main\" in version map to the preview envionment e.g. 4.2.15-6931-42.pr and 28.1.0-main-1\n    }\n\n    if (hostname && hostname.includes('stage')) {\n        return 'staging'; // Hostname includes \"stage\", assume staging environment e.g. *.stage.adobe.com, stage.*.corp.adobe.com\n    }\n\n    if (\n        (hostname && hostname.includes('localhost')) ||\n        (hostname && hostname.includes('dev.adobe.com'))\n    ) {\n        return 'development'; // Hostname includes \"localhost\" or \"dev.aodbe.com\", assume localhost environment e.g. localhost, localhost.adobe.com, cclibrariespanel-cdn.dev.adobe.com\n    }\n\n    return environment;\n}\n\nmodule.exports = { inferEnvironment };\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2017 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\n/*global module, require, console, window */\n\n/**\n    Utility functions\n**/\n\nfunction generateGUID() {\n    var s4 = function () {\n        return Math.floor((1 + Math.random()) * 0x10000)\n            .toString(16)\n            .substring(1);\n    };\n    return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n}\n\nfunction truncateEventQueue(queue, maxLength) {\n    var truncatedQueue = queue;\n    if (queue && queue.length > maxLength && maxLength > 0) {\n        var startIndex = queue.length - maxLength;\n        truncatedQueue = queue.slice(startIndex, queue.length);\n    }\n    return truncatedQueue;\n}\n\nfunction pad(n, length) {\n    var str = n.toString();\n    if (str.length < length) {\n        var padding = [];\n        padding.length = length - str.length + 1;\n        str = padding.join('0') + str;\n    }\n    return str;\n}\n\nfunction extend(dest, from) {\n    var props = Object.getOwnPropertyNames(from);\n\n    props.forEach(function (name) {\n        if (typeof from[name] === 'object') {\n            if (typeof dest[name] !== 'object') {\n                dest[name] = {};\n            }\n            extend(dest[name], from[name]);\n        } else {\n            var destination = Object.getOwnPropertyDescriptor(from, name);\n            Object.defineProperty(dest, name, destination);\n        }\n    });\n\n    return dest;\n}\n\nfunction notifyCallbacks(callbacks, err, numSentEvents) {\n    callbacks.forEach(function (callback) {\n        // Call each callback in a timeout, so if there's an exception in one callback it doesn't affect any others\n        setTimeout(function () {\n            callback(err, numSentEvents);\n        });\n    });\n}\n\n\n/**\n\t\tConstants\n**/\n\nvar LOG_PREFIX = 'Ingest :: ';\nvar ANALYTICS_HOST = {\n    prod:   'cc-api-data.adobe.io',\n    stage:  'cc-api-data-stage.adobe.io',\n    dev:    'cc-api-data-dev.adobe.io'\n};\nvar INGEST_PATH = '/ingest';\nvar RETRY_RANDOM_SECONDS = 10;\n\n// Settable options, with their default values\nvar DEFAULT_OPTIONS = {\n    ENVIRONMENT: 'prod',\n    ALLOW_NO_TOKEN: false,\n    ANALYTICS_INGEST_TYPE: 'dunamis',\n    ANALYTICS_MAX_QUEUED_EVENTS: 50,\n    ANALYTICS_DEBOUNCE: 10000,\n    ANALYTICS_API_KEY: null,\n    ANALYTICS_X_PRODUCT: null,\n    ANALYTICS_X_PRODUCT_LOCATION: undefined,\n    ANALYTICS_PROJECT: null,\n    ANALYTICS_USER_REGION: 'UNKNOWN',\n    TIMESTAMP_PROPERTY_NAME: 'event.dts_end'\n};\nvar REQUIRED_OPTIONS = [\n    'ANALYTICS_API_KEY',\n    'ANALYTICS_X_PRODUCT',\n    'ANALYTICS_PROJECT',\n];\n\n\n/**\n\t\tIngest Class\n**/\n\n// Constructor\nfunction Ingest(dependencies, options) {\n    dependencies = dependencies || {};\n    options = options || {};\n\n    var throwError = message => {\n        this._log(message);\n        throw new Error('ERROR: ' + message);\n    };\n\n    // Internal state\n    this._queuedEvents = [];\n    this._queuedCallbacks = [];\n    this._lastSendTime = 0;\n    this._isEnabled = false; // Sending analytics is disabled by default\n\n    // Configure dependencies\n    this._dependencies = extend({}, dependencies);\n    if (!dependencies.getAccessToken || typeof dependencies.getAccessToken !== 'function') {\n        throwError('Missing dependency: getAccessToken');\n    }\n\n    // Configure options\n    this._options = {};\n    Object.keys(DEFAULT_OPTIONS).forEach(key => {\n        this._options[key] = options[key] || DEFAULT_OPTIONS[key];\n    });\n\n    // Make sure required options have been passed in\n    REQUIRED_OPTIONS.forEach(option => {\n        if (!this._options[option]) {\n            throwError('Missing option: ' + option);\n        }\n    });\n\n    // Make sure we have fetch\n    if (typeof fetch === 'undefined') {\n        throwError(`Ingest requires fetch - if in a node environment, set 'global.fetch = require('node-fetch');'`);\n    }\n}\n\nIngest.prototype._log = function (message) {\n    var doLog = this._dependencies.log;\n    if (doLog) {\n        doLog(LOG_PREFIX + message);\n    }\n};\n\nIngest.prototype._getAgent = function (url, callback) {\n    if (this._dependencies.getAgent) {\n        this._dependencies.getAgent(url, callback);\n        return;\n    }\n    callback(null, {});\n};\n\nIngest.prototype._getAccessToken = function (callback) {\n    this._dependencies.getAccessToken(callback);\n};\n\nIngest.prototype._clearAccessToken = function () {\n    if (this._dependencies.clearAccessToken) {\n        this._dependencies.clearAccessToken();\n    }\n};\n\nIngest.prototype._getEnvironment = function () {\n    return ANALYTICS_HOST[this._options.ENVIRONMENT] ? this._options.ENVIRONMENT : 'prod';\n};\n\nIngest.prototype._getAnalyticsHost = function () {\n    return ANALYTICS_HOST[this._getEnvironment()];\n};\n\nIngest.prototype._formatTimestamp = function (date) {\n    // Corresponds to moment format string 'YYYY-MM-DDTHH:mm:ss.SSSZZ'\n    var YYYY = date.getFullYear();\n    var MM = pad(date.getMonth() + 1, 2); // Month is 0-11\n    var DD = pad(date.getDate(), 2);\n    var HH = pad(date.getHours(), 2);\n    var mm = pad(date.getMinutes(), 2);\n    var ss = pad(date.getSeconds(), 2);\n    var SSS = pad(date.getMilliseconds(), 3);\n\n    var offset = date.getTimezoneOffset();\n    var sign = offset < 0 ? '+' : '-'; // Sign is inverted\n    var hours = Math.floor(Math.abs(offset) / 60);\n    var mins = Math.abs(offset) % 60;\n    var ZZ = sign + pad(hours, 2) + pad(mins, 2);\n\n    return YYYY + '-' + MM + '-' + DD + 'T' + HH + ':' + mm + ':' + ss + '.' + SSS + ZZ;\n};\n\nIngest.prototype._updateDebounce = function (headers) {\n    var retryAfterHeader = headers && (headers['retry-after'] || headers['Retry-After']);\n    var retryAfter = 0;\n\n    if (retryAfterHeader) {\n        var retryTime;\n        try {\n            // First, try to parse it as a number (retry time in seconds)\n            retryTime = parseInt(retryAfterHeader, 10);\n        } catch (ignore) {\n            // ignore\n        }\n\n        if (retryTime) {\n            retryAfter = Math.max(0, retryTime);\n        } else {\n            // If that fails, try to parse it as a date\n            var retryDate = Date.parse(retryAfterHeader);\n            if (retryDate) {\n                // Need to add a randomised element to ensure requests don't all come back at the same time\n                var now = new Date().valueOf();\n                var retrySeconds = Math.max(0, retryDate - now) / 1000;\n                var retryRandom = Math.floor(Math.random() * RETRY_RANDOM_SECONDS);\n                retryAfter = retrySeconds + retryRandom;\n            }\n        }\n    }\n\n    this._options.ANALYTICS_DEBOUNCE = Math.max(retryAfter * 1000, this._options.ANALYTICS_DEBOUNCE);\n};\n\nIngest.prototype._queueEvent = function (event) {\n    if (this._queuedEvents.length >= this._options.ANALYTICS_MAX_QUEUED_EVENTS) {\n        this._queuedEvents.shift();\n    }\n    this._queuedEvents.push(event);\n};\n\nIngest.prototype._requeueEvents = function (failedEvents) {\n    // If we failed sending events, add them back to the beginning of the queue - but make sure it doesn't go over the maximum length\n    this._queuedEvents = failedEvents.concat(this._queuedEvents);\n    this._queuedEvents = truncateEventQueue(this._queuedEvents, this._options.ANALYTICS_MAX_QUEUED_EVENTS);\n};\n\nIngest.prototype._sendAnalytics = function (sendImmediately, callback, retryAttemps) {\n    retryAttemps = retryAttemps || 0;\n\n    if (callback) {\n        this._queuedCallbacks.push(callback);\n    }\n\n    if (!this._isEnabled || this._queuedEvents.length === 0) {\n        var callbacks = this._queuedCallbacks;\n        this._queuedCallbacks = [];\n        if (!this._isEnabled) {\n            notifyCallbacks(callbacks, new Error('Analytics Disabled'));\n        } else {\n            notifyCallbacks(callbacks, null, 0);\n        }\n        return;\n    }\n    var debounce = this._options.ANALYTICS_DEBOUNCE;\n\n    if (sendImmediately) {\n        // Clear any timeout, and set the debounce to zero, to force an immediate send\n        debounce = 0;\n        clearTimeout(this._pendingSendAnalyticsTimeout);\n        this._pendingSendAnalyticsTimeout = undefined;\n    }\n\n    if (this._sendingEvents || this._pendingSendAnalyticsTimeout) {\n        // We're in the middle of sending analytics already\n        // This will automatically kick off another send afterwards, so no need to do anything\n        // However, we'd want to store if we need to kick off another send with `sendImmediately = true` afterwards.\n        if (sendImmediately) {\n            this._fastFollow = true;\n        }\n\n        return;\n    }\n\n    var currentTime = new Date().valueOf();\n    if (currentTime - this._lastSendTime < debounce) {\n        // Throttle analytics, so we don't send too often - this allows us to batch up analytics\n        this._pendingSendAnalyticsTimeout = setTimeout(() => {\n            this._pendingSendAnalyticsTimeout = undefined;\n            this._sendAnalytics();\n        }, debounce);\n        return;\n    }\n\n    this._lastSendTime = currentTime;\n    // The queued events are now going to be sent\n    this._sendingEvents = this._queuedEvents;\n    this._sendingCallbacks = this._queuedCallbacks;\n    this._queuedEvents = [];\n    this._queuedCallbacks = [];\n\n    var requestId = generateGUID();\n    var logPrefix = '[' + requestId + '] ';\n    var ingestData = {\n        events: this._sendingEvents\n    };\n\n    // This gets called when finished, whether we got a response or failed with an error\n    var onFinished = err => {\n        var numNewEvents = this._queuedEvents ? this._queuedEvents.length : 0;\n        if (this._sendingEvents) {\n            var numSentEvents = this._sendingEvents.length;\n            if (err) {\n                this._requeueEvents(this._sendingEvents);\n                this._log(logPrefix + 'Error sending ' + numSentEvents + ' events: ' + err);\n            } else {\n                this._log(logPrefix + 'Success sending ' + numSentEvents + ' events: ' + JSON.stringify(this._sendingEvents));\n            }\n            delete this._sendingEvents;\n\n            var sendingCallbacks = this._sendingCallbacks;\n            delete this._sendingCallbacks;\n            if (err) {\n                notifyCallbacks(sendingCallbacks, err);\n            } else {\n                notifyCallbacks(sendingCallbacks, null, numSentEvents);\n            }\n        }\n\n        // If there were any new events while sending the last batch, trigger another send.\n        // Note: This doesn't auto-trigger a retry if we failed, and there were no new events.\n        if (numNewEvents > 0) {\n            // fastFollow stores whether a client has called us with sendImmediately = true when we were busy\n            this._sendAnalytics(this._fastFollow);\n        }\n        this._fastFollow = false;\n    };\n\n    // This gets called when we get an actual response from the server\n    var handleResponse = (statusCode, headers) => {\n        this._updateDebounce(headers);\n\n        if (statusCode === 401 && retryAttemps === 0) {\n            this._clearAccessToken();\n\n            this._requeueEvents(this._sendingEvents);\n            delete this._sendingEvents;\n\n            this._queuedCallbacks = this._sendingCallbacks.concat(this._queuedCallbacks);\n            delete this._sendingCallbacks;\n\n            // Retry one more time\n            this._log(logPrefix + 'Access token is expired. Retry one more time.');\n            this._sendAnalytics(true, undefined, retryAttemps + 1);\n            return;\n        }\n        if (statusCode !== 200) {\n            onFinished(new Error('Unexpected Response: ' + statusCode));\n            return;\n        }\n        onFinished();\n    };\n\n    this._getAccessToken((err, token) => {\n        if (err && !this._options.ALLOW_NO_TOKEN) {\n            onFinished(err);\n            return;\n        }\n        if ((!token || token.length === 0) && !this._options.ALLOW_NO_TOKEN) {\n            onFinished(new Error('No access token'));\n            return;\n        }\n\n        var urlBase = 'https://' + this._getAnalyticsHost();\n        this._log(logPrefix + 'Sending analytics to ' + urlBase + INGEST_PATH);\n\n        const headers = {\n            'x-api-key': this._options.ANALYTICS_API_KEY,\n            'X-Product': this._options.ANALYTICS_X_PRODUCT,\n            'User-Agent': this._options.ANALYTICS_USER_AGENT || this._options.ANALYTICS_API_KEY,\n            'X-Request-Id': requestId,\n            'Content-Type': 'application/json'\n        };\n        if (token) {\n            headers.Authorization = 'Bearer ' + token;\n        }\n        if (this._options.ANALYTICS_X_PRODUCT_LOCATION) {\n            headers['X-Product-Location'] = this._options.ANALYTICS_X_PRODUCT_LOCATION;\n        }\n\n        this._getAgent(urlBase, (err, proxyOptions) => {\n            const options = {\n                method: 'POST',\n                headers,\n                body: JSON.stringify(ingestData)\n            };\n\n            if (proxyOptions && proxyOptions.agent) {\n                options.agent = proxyOptions && proxyOptions.agent;\n            } else {\n                extend(options, proxyOptions || {});\n            }\n\n            fetch(urlBase + INGEST_PATH, options).then(response => {\n                handleResponse(response.status, response.headers);\n            }, onFinished);\n        });\n    });\n};\n\n\n/**\n\t\tPublic APIs\n**/\n\n/**\n * Configure whether analytics is enabled or not. Note: By default, analytics are disabled, so you need to\n * explicitly call `ingest.enable(true)` to enable sending analytics.\n *\n * When sending analytics is disabled, events are still queued up, so they can be sent when it's reenabled.\n *\n * @param {Boolean} isEnabled Whether to enable or disable sending analytics.\n *\n * @memberof Ingest\n */\nIngest.prototype.enable = function (isEnabled) {\n    this._isEnabled = isEnabled;\n    if (isEnabled) {\n        // If we enable analytics, trigger flushing any queued events\n        this._sendAnalytics(true);\n    }\n};\n\n/**\n * Post an analytics event to ingest.\n *\n * @param {Object} payload Ingest payload to be sent\n * @param {Function} [callback] If supplied, called when the event has been posted (or failed)\n *\n * @memberof Ingest\n */\nIngest.prototype.postEvent = function (payload, callback, options) {\n    var overrideOptions = options || {};\n    var dtsStart = 'event.dts_start';\n    var collDts = 'event.coll_dts';\n    var dtsEnd = overrideOptions.TIMESTAMP_PROPERTY_NAME || this._options.TIMESTAMP_PROPERTY_NAME;\n    var ingestProject = overrideOptions.ANALYTICS_PROJECT ||  this._options.ANALYTICS_PROJECT;\n    var ingestType = overrideOptions.ANALYTICS_INGEST_TYPE ||  this._options.ANALYTICS_INGEST_TYPE;\n\n    if (payload[collDts] && payload[collDts] instanceof Date) {\n        payload[collDts] = this._formatTimestamp(payload[collDts]);\n    }\n    if (payload[dtsStart] && payload[dtsStart] instanceof Date) {\n        payload[dtsStart] = this._formatTimestamp(payload[dtsStart]);\n    }\n    // Set to current time, if it's not supplied\n    if (!payload[dtsEnd]) {\n        payload[dtsEnd] = this._formatTimestamp(new Date());\n    }\n    if (payload[dtsEnd] instanceof Date) {\n        payload[dtsEnd] = this._formatTimestamp(payload[dtsEnd]);\n    }\n    var event = {\n        time: payload[dtsEnd],\n        project: ingestProject,\n        environment: this._getEnvironment(),\n        ingesttype: ingestType,\n        data: payload\n    };\n\n    /**\n\t * Payload's 'simulate' property triggers the option to not\n\t * actually post the event but dump all relevant data to a log\n\t */\n    if (!payload.simulate) {\n        this._queueEvent(event);\n        this._sendAnalytics(false, callback);\n    } else {\n        this._log('event sim:' + JSON.stringify(event));\n        if (callback) {\n            notifyCallbacks([ callback ], null, 0);\n        }\n    }\n};\n\n/**\n * Flush the analytics (trigger sending any queued analytics to the server)\n *\n * @param {Boolean} immediate Flush event immediately or not\n * @param {Function} [callback] If supplied, called when the flush has finished (or failed)\n *\n * @memberof Ingest\n */\nIngest.prototype.flush = function (sendImmediately, callback) {\n    this._sendAnalytics(sendImmediately, callback);\n};\n\nmodule.exports = Ingest;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport type { ActionButton as ActionButtonType } from '@ccx-public/spectrum-web-component-fallbacks/dist/action-button';\nimport type {\n    Button as ButtonType,\n    ButtonVariants,\n} from '@ccx-public/spectrum-web-component-fallbacks/dist/button';\nimport type { SyntheticEvent } from 'react';\nimport React, { forwardRef } from 'react';\nimport type { ReactProps, SpectrumElementProps } from './utils';\nimport { filterBooleanProps } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nconst RS2Button: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-var-requires\n      interopRequireDefault(require('react-spectrum/Button')).default\n    : undefined;\n\nlet swcActionButtonLoader;\nlet swcButtonLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcActionButtonLoader = new SWCLoader(['sp-action-button'], async () => {\n        const { ActionButton } = await import(\n            /* webpackChunkName: \"SpActionButton\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/action-button'\n        );\n        return [ActionButton];\n    });\n\n    swcButtonLoader = new SWCLoader(['sp-button'], async () => {\n        const { Button } = await import(\n            /* webpackChunkName: \"SpButton\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/button'\n        );\n        return [Button];\n    });\n}\n\ntype RS2ButtonCompatProps = {\n    // RS2: autoFocus, SWC: autofocus\n    autoFocus?: boolean;\n    // RS2-only prop that Dropdown looks for in its children.\n    dropdownTrigger?: boolean;\n    // RS2-only prop to switch the html element\n    element?: string;\n    // RS2: holdAffordance, SWC: hold-affordance. React seems to handle this\n    holdAffordance?: boolean;\n    // SWC will automatically slot content into an anchor tag if passed\n    href?: string;\n    // RS2 icon prop will get transformed into an icon slot for SWC.\n    icon?: JSX.Element;\n    // RS2-only to be used for variants 'and' and 'or'\n    logic?: boolean;\n    /**\n     * RS2: onClick, SWC: onclick. React seems to handle this\n     * automatically, but we need this here for typescript.\n     */\n    onClick?: (event: SyntheticEvent) => unknown;\n    // Fixing a typescript incompatibility. No runtime fixes needed.\n    role?: string;\n    /**\n     * Selected is relevant for:\n     *  - SWC sp-action-button\n     *  - RS2 with variant=\"action\"\n     * It is _not_ relevant for SWC sp-button\n     */\n    selected?: ActionButtonType['selected'];\n    variant?: ButtonVariants | 'warning' | 'action' | 'tool' | 'and' | 'or';\n    value?: string;\n    // RS2-UXP-only prop\n    uxpUseNative?: boolean;\n};\n\ntype ButtonProps = ReactProps<ButtonType, RS2ButtonCompatProps>;\n\n// SWC > 1.0 changed 'staticColor' to 'static-color'\ntype ButtonTypeKebabCase<T> = {\n    [K in keyof T as K extends 'staticColor' ? 'static-color' : K]: T[K];\n};\ntype SWCButtonType = ButtonTypeKebabCase<ButtonType>;\n\nfunction getButtonIcon(icon?: ButtonProps['icon']): React.ReactNode {\n    if (!icon) {\n        return;\n    }\n\n    return React.cloneElement(icon, {\n        key:\n            icon.key ||\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/restrict-template-expressions\n            `key-${icon.type?.render?.displayName || icon.type?.displayName}`,\n        slot: 'icon',\n    });\n}\n\nfunction spButtonVariantProps(\n    variant?: ButtonProps['variant'],\n    treatment?: ButtonProps['treatment']\n): Partial<SpectrumElementProps<SWCButtonType>> {\n    switch (variant) {\n        case 'accent':\n        case 'cta':\n            return {\n                variant: 'accent',\n                treatment: treatment || 'fill',\n            };\n        case 'primary':\n        case 'secondary':\n            return {\n                variant,\n                treatment: treatment || 'outline',\n            };\n        case 'warning':\n            return {\n                variant: 'negative',\n                treatment: treatment || 'outline',\n            };\n        case 'overBackground':\n            return {\n                'static-color': 'white',\n                treatment: treatment || 'outline',\n            };\n        case 'action':\n        case 'tool':\n        case 'and':\n        case 'or':\n            return {};\n        case undefined:\n            return {\n                variant: 'primary',\n                treatment: 'outline',\n            };\n        default:\n            return { variant };\n    }\n}\n\nconst NormalButton = createWrapper<ButtonType, RS2ButtonCompatProps>({\n    displayName: 'Button',\n    fallback: RS2Button,\n    swcLoader: swcButtonLoader,\n    swcProps: (props) => {\n        const buttonIcon = getButtonIcon(props.icon);\n        const {\n            autoFocus,\n            className,\n            children,\n            disabled,\n            holdAffordance,\n            pending,\n            quiet,\n            variant,\n            /* eslint-disable @typescript-eslint/no-unused-vars */\n            // RS2-only props\n            dropdownTrigger,\n            icon,\n            label,\n            staticColor,\n            uxpUseNative,\n            // SWC-only props\n            treatment,\n            // Non-relevant props\n            selected,\n            /* eslint-enable @typescript-eslint/no-unused-vars */\n            ...rest\n        } = props;\n        const booleanProps = filterBooleanProps({\n            autofocus: autoFocus,\n            disabled,\n            'hold-affordance': holdAffordance,\n            pending,\n            quiet,\n        });\n        const variantProps = spButtonVariantProps(variant, treatment);\n        const labelContents =\n            label || (typeof children === 'string' ? children : null);\n\n        return {\n            ...rest,\n            ...(staticColor && { 'static-color': staticColor }),\n            ...booleanProps,\n            ...variantProps,\n            children: [\n                buttonIcon,\n                labelContents,\n                typeof children !== 'string' && children,\n            ],\n            class: className,\n        };\n    },\n    tagName: 'sp-button',\n});\n\nfunction spActionButtonVariantProps(\n    variant: ButtonProps['variant']\n): Partial<SpectrumElementProps<ActionButtonType>> {\n    if (variant === 'tool') {\n        return { quiet: true };\n    }\n\n    return {};\n}\n\nconst ActionButton = createWrapper<ActionButtonType, RS2ButtonCompatProps>({\n    displayName: 'ActionButton',\n    fallback: RS2Button,\n    swcLoader: swcActionButtonLoader,\n    swcProps: (props) => {\n        const {\n            autoFocus,\n            children,\n            className,\n            disabled,\n            holdAffordance,\n            quiet,\n            selected,\n            variant,\n            /* eslint-disable @typescript-eslint/no-unused-vars */\n            // RS2-only props\n            dropdownTrigger,\n            icon,\n            label,\n            uxpUseNative,\n            /* eslint-enable @typescript-eslint/no-unused-vars */\n            ...rest\n        } = props;\n        const buttonIcon = getButtonIcon(icon);\n        const variantProps = spActionButtonVariantProps(variant);\n        const booleanProps = filterBooleanProps({\n            autofocus: autoFocus,\n            disabled,\n            'hold-affordance': holdAffordance,\n            quiet,\n            selected,\n        });\n        const labelContents =\n            label || (typeof children === 'string' ? children : null);\n\n        return {\n            ...rest,\n            ...booleanProps,\n            ...variantProps,\n            children: [\n                buttonIcon,\n                labelContents,\n                typeof children !== 'string' && children,\n            ],\n            class: className,\n        };\n    },\n    tagName: 'sp-action-button',\n});\n\nexport default forwardRef(function Button(props: ButtonProps, ref) {\n    if (\n        props.variant === 'action' ||\n        props.variant === 'tool' ||\n        props.variant === 'and' ||\n        props.variant === 'or' ||\n        (props.variant === 'secondary' && props.quiet) ||\n        (props.variant === 'primary' && props.quiet)\n    ) {\n        return <ActionButton {...props} ref={ref} />;\n    }\n\n    return <NormalButton {...props} ref={ref} />;\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\nimport React from 'react';\nimport type { ButtonGroup as ButtonGroupType } from '@ccx-public/spectrum-web-component-fallbacks/dist/button-group';\nimport type { ReactProps } from './utils';\nimport { filterBooleanProps, isUXP, useComponent } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport { forwardRef, useEffect, useRef } from 'react';\nimport type {\n    ActionGroup,\n    ActionGroup as ActionGroupType,\n} from '@ccx-public/spectrum-web-component-fallbacks/dist/action-group';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ButtonGroup: React.ComponentType<\n    ReactProps<ButtonGroupType, ButtonGroupRS2CompatProps>\n> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/ButtonGroup')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet buttonGroupLoader;\nlet actionGroupLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n    buttonGroupLoader = new SWCLoader(['sp-button-group'], async () => {\n        const { ButtonGroup } = await import(\n            /* webpackChunkName: \"SpButtonGroup\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/button-group'\n        );\n        return [ButtonGroup];\n    });\n\n    actionGroupLoader = new SWCLoader(['sp-action-group'], async () => {\n        const { ActionGroup } = await import(\n            /* webpackChunkName: \"SpActionGroup\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/action-group'\n        );\n        return [ActionGroup];\n    });\n}\n\ntype ButtonGroupRS2CompatProps = {\n    /**\n     * Renders the button group as a row or a column\n     */\n    orientation: 'horizontal' | 'vertical' | 'both';\n    multiple?: boolean;\n    /**\n     * Callback function to be called on change\n     */\n    onChange?: (event: string[]) => void;\n    /**\n     * Selected Value\n     */\n    value?: string | string[];\n};\n\n// https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/ButtonGroup/js/ButtonGroup.js\n// https://opensource.adobe.com/spectrum-web-components/components/button-group/\nconst NormalButtonGroup = createWrapper<\n    ButtonGroupType,\n    ButtonGroupRS2CompatProps\n>({\n    displayName: 'ButtonGroup',\n    fallback: RS2ButtonGroup,\n    swcLoader: buttonGroupLoader,\n    swcProps: (props) => {\n        // Important Differences:\n        // ReactSpectrum2        | SpectrumWebComponent     | UXPWebComponent\n        // -----------------------------------------------------------------\n        // orientation:          | vertical: boolean        | variant:\n        //     'vertical' |      |                          |   'vertical'\n        //     'horizontal       |                          |   'horizontal\n        const { className, orientation, ...rest } = props;\n        const vertical = orientation === 'vertical' || undefined;\n        const compatabilityProps = isUXP\n            ? // https://developers.corp.adobe.com/uxp/docs/apis/spectrum_uxp/spectrum_uxp_user_interface.md#sp-action-button\n              // UXP has a special 'align' property, we will just set the default\n              // to be 'center', which is standard in RS2 and SWC\n              { variant: orientation, align: 'center' }\n            : { vertical };\n        return { ...rest, ...compatabilityProps, class: className };\n    },\n    tagName: 'sp-button-group',\n});\n\nconst ActionButtonGroup = createWrapper<\n    ActionGroupType,\n    ButtonGroupRS2CompatProps\n>({\n    displayName: 'ActionGroup',\n    fallback: RS2ButtonGroup,\n    swcLoader: actionGroupLoader,\n    SWCWrapper: function SpActionGroup(props) {\n        const actionGroupContainer = useRef<ActionGroupType>(null);\n        const { className, value, multiple, orientation, onChange, ...rest } =\n            props;\n\n        const vertical = orientation === 'vertical' || undefined;\n        const selects = multiple ? 'multiple' : 'single';\n        const selectedValues = selects === 'multiple' ? value : [value].flat();\n\n        const compatabilityProps = isUXP\n            ? // https://developers.corp.adobe.com/uxp/docs/apis/spectrum_uxp/spectrum_uxp_user_interface.md#sp-action-button\n              // UXP has a special 'align' property, we will just set the default\n              // to be 'center', which is standard in RS2 and SWC\n              { variant: orientation, align: 'center' }\n            : {\n                  vertical,\n                  selected: JSON.stringify(selectedValues),\n                  ...(selects && { selects }),\n              };\n\n        useEffect(() => {\n            const current = actionGroupContainer.current;\n\n            const handleOnChange = (event: Event) => {\n                const target = event.target as ActionGroup;\n                onChange?.(target.selected);\n            };\n\n            if (current && onChange) {\n                current.addEventListener('change', handleOnChange);\n            }\n\n            return () => {\n                if (current && onChange) {\n                    current.removeEventListener('change', handleOnChange);\n                }\n            };\n        }, [onChange, value]);\n\n        const ActionGroup = useComponent('sp-action-group');\n\n        return (\n            // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n            // @ts-ignore\n            <ActionGroup\n                ref={actionGroupContainer}\n                {...rest}\n                {...compatabilityProps}\n                {...filterBooleanProps({\n                    vertical,\n                })}\n                class={className}\n            />\n        );\n    },\n    tagName: 'sp-action-group',\n});\n\nexport default forwardRef(function ButtonGroup(\n    props: ReactProps<ButtonGroupType, ButtonGroupRS2CompatProps>,\n    ref\n) {\n    if (props.onChange) {\n        return <ActionButtonGroup {...props} ref={ref} />;\n    }\n    return <NormalButtonGroup {...props} ref={ref} />;\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport type { SyntheticEvent } from 'react';\nimport React, { useEffect, useRef } from 'react';\n\n// https://opensource.adobe.com/spectrum-web-components/components/action-menu/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/DropdownButton\nimport type { ActionMenu as ActionMenuType } from '@ccx-public/spectrum-web-component-fallbacks/dist/action-menu';\nimport type { ReactProps } from './utils';\nimport { SWCLoader } from './utils/SWCLoader';\nimport createWrapper from './utils/createWrapper';\nimport { filterBooleanProps, useComponent } from './utils';\ntype RS2DropdownButtonCompatProps = {\n    label?: string;\n    // RS2 icon prop will get transformed into an icon slot for SWC.\n    icon?: JSX.Element;\n    onClick?: (event: SyntheticEvent) => void;\n    onSelect?: (option: string) => void;\n    alignRight?: boolean;\n    'aria-label'?: string;\n};\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2DropdownButton: React.ComponentType<\n    ReactProps<ActionMenuType, RS2DropdownButtonCompatProps>\n> = process.env.INCLUDE_RS2\n    ? require('react-spectrum/DropdownButton').default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nfunction getButtonIcon(\n    icon?: RS2DropdownButtonCompatProps['icon']\n): React.ReactNode {\n    if (!icon) {\n        return;\n    }\n\n    return React.cloneElement(icon, { slot: 'icon' });\n}\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-action-menu'], async () => {\n        const { ActionMenu } = await import(\n            /* webpackChunkName: \"SpActionMenu\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/action-menu'\n        );\n        return [ActionMenu];\n    });\n}\n\n// Temporary work around due to SWC bug causing @change to be fired twice for tablet devices\n// https://github.com/adobe/spectrum-web-components/issues/5556\n// Once this is resolved we can remove this debounce and upgrade the SWC version\nfunction debounce<T extends (...args: any[]) => any>(\n    func: T,\n    wait: number\n): (...args: Parameters<T>) => void {\n    let timeoutId: NodeJS.Timeout | null = null;\n\n    return (...args: Parameters<T>): void => {\n        if (timeoutId !== null) {\n            clearTimeout(timeoutId);\n        }\n\n        timeoutId = setTimeout(() => {\n            func(...args);\n        }, wait);\n    };\n}\n\nconst isLargeTouchScreen = () => {\n    const SWC_MOBILE_BREAKPOINT = 743;\n    return (\n        matchMedia('(pointer:coarse)').matches &&\n        window.screen.width > SWC_MOBILE_BREAKPOINT\n    );\n};\n\nconst DEBOUNCE_TIMEOUT = isLargeTouchScreen() ? 50 : 0;\n\nexport default createWrapper<ActionMenuType, RS2DropdownButtonCompatProps>({\n    displayName: 'DropdownButton',\n    fallback: (props) => {\n        const { children, ...rest } = props;\n        if (RS2DropdownButton) {\n            return (\n                <RS2DropdownButton {...rest}>\n                    {React.Children.map(children, (child) =>\n                        React.isValidElement(child)\n                            ? React.cloneElement(child, {\n                                  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                                  // @ts-ignore\n                                  forceFallback: true,\n                              })\n                            : child\n                    )}\n                </RS2DropdownButton>\n            );\n        }\n        return null;\n    },\n    swcLoader,\n    SWCWrapper: (props) => {\n        const actionMenuWrapperRef = useRef<ActionMenuType>(null);\n        const {\n            className,\n            children,\n            icon,\n            label,\n            onSelect,\n            disabled,\n            focused,\n            invalid,\n            open,\n            quiet,\n            readonly,\n            alignRight,\n            placement,\n            'aria-label': ariaLabel,\n            ...rest\n        } = props;\n        const buttonIcon = getButtonIcon(icon);\n        const labelContents = label ? <span slot=\"label\">{label}</span> : null;\n        const menuPlacement = alignRight ? 'bottom-end' : placement;\n\n        useEffect(() => {\n            const { current } = actionMenuWrapperRef;\n\n            const debouncedOnSelect = debounce((value: string) => {\n                onSelect?.(value);\n            }, DEBOUNCE_TIMEOUT);\n\n            const handleSelect = (event: Event) => {\n                const target = event.target as HTMLInputElement;\n                const value = target.value;\n                debouncedOnSelect(value);\n            };\n\n            if (current && onSelect) {\n                current.addEventListener('change', handleSelect);\n            }\n\n            return () => {\n                if (current && onSelect) {\n                    current.removeEventListener('change', handleSelect);\n                }\n            };\n        }, [onSelect]);\n\n        const SWCActionMenuProps = {\n            ...filterBooleanProps({\n                disabled,\n                focused,\n                invalid,\n                open,\n                quiet,\n                readonly,\n            }),\n            label: ariaLabel,\n            placement: menuPlacement,\n            ...rest,\n        };\n\n        const ActionMenu = useComponent('sp-action-menu');\n        return (\n            <ActionMenu\n                ref={actionMenuWrapperRef}\n                class={className}\n                {...SWCActionMenuProps}\n            >\n                {buttonIcon}\n                {labelContents}\n                {typeof children !== 'string' && children}\n            </ActionMenu>\n        );\n    },\n    tagName: 'sp-action-menu',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\n// RS2 :: https://react-spectrum.corp.adobe.com/storybook/?path=/story/fieldlabel--default\n// SWC :: https://opensource.adobe.com/spectrum-web-components/components/field-label/\nimport type { FieldLabel as FieldLabelType } from '@ccx-public/spectrum-web-component-fallbacks/dist/field-label';\nimport { filterBooleanProps, useComponent } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2FieldLabel: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/FieldLabel')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-field-label'], async () => {\n        const { FieldLabel } = await import(\n            /* webpackChunkName: \"SpFieldLabel\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/field-label'\n        );\n        return [FieldLabel];\n    });\n}\n\ntype RS2CompatProps = {\n    /**\n     * String to display\n     */\n    label?: string;\n    /**\n     * Justification of the label text within its container. Setting this property\n     * will situate the label container to the left of the form field, regardless\n     * of the property value.\n     */\n    position?: 'left' | 'right';\n    /**\n     * Like in a form, with what input should the label be associated\n     */\n    labelFor?: string;\n    /**\n     * Style for communicating whether the associated input is required or optional.\n     */\n    necessity?: 'required' | 'optional';\n};\n\nexport default createWrapper<FieldLabelType, RS2CompatProps>({\n    displayName: 'FieldLabel',\n    fallback: RS2FieldLabel,\n    swcLoader,\n    SWCWrapper: function SpFieldLabel(props) {\n        const {\n            className,\n            label,\n            necessity,\n            position,\n            labelFor,\n            children,\n            ...rest\n        } = props;\n        // mapping necessity to required and sideAligned to position\n        // ReactSpectrum2        | SpectrumWebComponent\n        // ---------------------------------------------\n        // necessity             | required\n        // position              | sideAligned\n        // for                   | labelFor\n        // label passed as child | label is prop\n\n        const required = necessity === 'required' ? true : false;\n        const sideAligned =\n            position === 'left'\n                ? 'start'\n                : position === 'right'\n                ? 'end'\n                : undefined;\n\n        const compatProps = {\n            ...rest,\n            ...filterBooleanProps({\n                required,\n            }),\n            'side-aligned': sideAligned,\n            children: label,\n            class: className,\n            for: labelFor,\n        };\n\n        const Fieldlabel = useComponent('sp-field-label');\n        // label is passed as children and other childrens would be rendered after sp-fieldlabel to comply with the behaviour of swc.\n        return (\n            <>\n                <Fieldlabel {...compatProps} />\n                {children}\n            </>\n        );\n    },\n    tagName: 'sp-field-label',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport type { Icon as SpectrumIcon } from '@ccx-public/spectrum-web-component-fallbacks/dist/icon';\nimport createWrapper from './utils/createWrapper';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport { SWCLoader } from './utils/SWCLoader';\nimport { getSWCProps } from './Icon/utils';\nimport type { RS2IconProps } from './Icon/utils';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Icon: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-icon'], async () => {\n        const { Icon } = await import(\n            /* webpackChunkName: \"SpIcon\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icon'\n        );\n        return [Icon];\n    });\n}\n\nconst Icon = createWrapper<SpectrumIcon, RS2IconProps>({\n    displayName: 'Icon',\n    fallback: RS2Icon,\n    swcLoader,\n    swcProps: getSWCProps,\n    tagName: 'sp-icon',\n});\n\nexport default Icon;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconAdd } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAdd.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Add: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Add')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-add'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconAdd\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconAdd.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconAdd];\n            }\n        const { IconAdd } = await import(\n            /* webpackChunkName: \"SpIconAdd\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAdd'\n        );\n        return [IconAdd];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconAdd, RS2IconProps>({\n            displayName: 'Add',\n            fallback: RS2Add,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-add',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconAddCircle } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAddCircle.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2AddCircle: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/AddCircle')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-add-circle'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconAddCircle\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconAddCircle.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconAddCircle];\n            }\n        const { IconAddCircle } = await import(\n            /* webpackChunkName: \"SpIconAddCircle\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAddCircle'\n        );\n        return [IconAddCircle];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconAddCircle, RS2IconProps>({\n            displayName: 'AddCircle',\n            fallback: RS2AddCircle,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-add-circle',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\n    import React, { useContext } from \"react\";\n    import { ThemeContext } from \"../utils/ThemeContext\";\n\nimport type { IconAlert } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAlert.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Alert: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Alert')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nlet s2swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-alert'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconAlert\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconAlert.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconAlert];\n            }\n        const { IconAlert } = await import(\n            /* webpackChunkName: \"SpIconAlert\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAlert'\n        );\n        return [IconAlert];\n    });\n\n    s2swcLoader = new SWCLoader(['sp-icon-alert-triangle'], async () => {\n        const { IconAlertTriangle } = await import(\n            /* webpackChunkName: \"SpIconIconAlertTriangle\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconAlertTriangle'\n        );\n        return [IconAlertTriangle];\n    });\n}\n\n\n        \n        const S1Icon = createWrapper<IconAlert, RS2IconProps>({\n            displayName: 'Alert',\n            fallback: RS2Alert,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-alert',\n        });\n    \n        const S2Icon = createWrapper<IconAlert, RS2IconProps>({\n            displayName: 'Alert',\n            fallback: RS2Alert,\n            swcLoader: s2swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-alert-triangle',\n        });\n\n        export default (props: React.ComponentProps<typeof S1Icon> & RS2IconProps) => {\n            const { spectrumTheme } = useContext(ThemeContext);\n            if (spectrumTheme === 'spectrum-two') {\n                return <S2Icon {...props} />;\n            }\n            return <S1Icon {...props} />;\n        };\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconChevronDown } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronDown.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ChevronDown: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/ChevronDown')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-chevron-down'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconChevronDown\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconChevronDown.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconChevronDown];\n            }\n        const { IconChevronDown } = await import(\n            /* webpackChunkName: \"SpIconChevronDown\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronDown'\n        );\n        return [IconChevronDown];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconChevronDown, RS2IconProps>({\n            displayName: 'ChevronDown',\n            fallback: RS2ChevronDown,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-chevron-down',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconChevronLeft } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronLeft.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ChevronLeft: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/ChevronLeft')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-chevron-left'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconChevronLeft\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconChevronLeft.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconChevronLeft];\n            }\n        const { IconChevronLeft } = await import(\n            /* webpackChunkName: \"SpIconChevronLeft\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronLeft'\n        );\n        return [IconChevronLeft];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconChevronLeft, RS2IconProps>({\n            displayName: 'ChevronLeft',\n            fallback: RS2ChevronLeft,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-chevron-left',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconChevronRight } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronRight.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ChevronRight: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/ChevronRight')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-chevron-right'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconChevronRight\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconChevronRight.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconChevronRight];\n            }\n        const { IconChevronRight } = await import(\n            /* webpackChunkName: \"SpIconChevronRight\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconChevronRight'\n        );\n        return [IconChevronRight];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconChevronRight, RS2IconProps>({\n            displayName: 'ChevronRight',\n            fallback: RS2ChevronRight,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-chevron-right',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\n    import React, { useContext } from \"react\";\n    import { ThemeContext } from \"../utils/ThemeContext\";\n\nimport type { IconClassicGridView } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconClassicGridView.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ClassicGridView: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/ClassicGridView')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nlet s2swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-classic-grid-view'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconClassicGridView\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconGridView.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconGridView];\n            }\n        const { IconClassicGridView } = await import(\n            /* webpackChunkName: \"SpIconClassicGridView\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconClassicGridView'\n        );\n        return [IconClassicGridView];\n    });\n\n    s2swcLoader = new SWCLoader(['sp-icon-view-grid'], async () => {\n        const { IconViewGrid } = await import(\n            /* webpackChunkName: \"SpIconIconViewGrid\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconViewGrid'\n        );\n        return [IconViewGrid];\n    });\n}\n\n\n        \n        const S1Icon = createWrapper<IconClassicGridView, RS2IconProps>({\n            displayName: 'ClassicGridView',\n            fallback: RS2ClassicGridView,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-classic-grid-view',\n        });\n    \n        const S2Icon = createWrapper<IconClassicGridView, RS2IconProps>({\n            displayName: 'ClassicGridView',\n            fallback: RS2ClassicGridView,\n            swcLoader: s2swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-view-grid',\n        });\n\n        export default (props: React.ComponentProps<typeof S1Icon> & RS2IconProps) => {\n            const { spectrumTheme } = useContext(ThemeContext);\n            if (spectrumTheme === 'spectrum-two') {\n                return <S2Icon {...props} />;\n            }\n            return <S1Icon {...props} />;\n        };\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconCopy } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCopy.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Copy: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Copy')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-copy'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconCopy\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconCopy.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconCopy];\n            }\n        const { IconCopy } = await import(\n            /* webpackChunkName: \"SpIconCopy\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCopy'\n        );\n        return [IconCopy];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconCopy, RS2IconProps>({\n            displayName: 'Copy',\n            fallback: RS2Copy,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-copy',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconDelete } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDelete.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Delete: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Delete')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-delete'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconDelete\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconDelete.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconDelete];\n            }\n        const { IconDelete } = await import(\n            /* webpackChunkName: \"SpIconDelete\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDelete'\n        );\n        return [IconDelete];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconDelete, RS2IconProps>({\n            displayName: 'Delete',\n            fallback: RS2Delete,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-delete',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconDownload } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDownload.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Download: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Download')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-download'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconDownload\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconDownload.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconDownload];\n            }\n        const { IconDownload } = await import(\n            /* webpackChunkName: \"SpIconDownload\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDownload'\n        );\n        return [IconDownload];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconDownload, RS2IconProps>({\n            displayName: 'Download',\n            fallback: RS2Download,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-download',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconDownloadFromCloud } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDownloadFromCloud.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2DownloadFromCloud: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/DownloadFromCloud')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-download-from-cloud'], async () => {\n        \n        const { IconDownloadFromCloud } = await import(\n            /* webpackChunkName: \"SpIconDownloadFromCloud\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDownloadFromCloud'\n        );\n        return [IconDownloadFromCloud];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconDownloadFromCloud, RS2IconProps>({\n            displayName: 'DownloadFromCloud',\n            fallback: RS2DownloadFromCloud,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-download-from-cloud',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconDuplicate } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDuplicate.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Duplicate: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Duplicate')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-duplicate'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconDuplicate\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconDuplicate.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconDuplicate];\n            }\n        const { IconDuplicate } = await import(\n            /* webpackChunkName: \"SpIconDuplicate\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDuplicate'\n        );\n        return [IconDuplicate];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconDuplicate, RS2IconProps>({\n            displayName: 'Duplicate',\n            fallback: RS2Duplicate,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-duplicate',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\n    import React, { useContext } from \"react\";\n    import { ThemeContext } from \"../utils/ThemeContext\";\n\nimport type { IconExport } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconExport.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Export: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Export')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nlet s2swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-export'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconExport\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconLeave.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconLeave];\n            }\n        const { IconExport } = await import(\n            /* webpackChunkName: \"SpIconExport\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconExport'\n        );\n        return [IconExport];\n    });\n\n    s2swcLoader = new SWCLoader(['sp-icon-export-to'], async () => {\n        const { IconExportTo } = await import(\n            /* webpackChunkName: \"SpIconIconExportTo\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconExportTo'\n        );\n        return [IconExportTo];\n    });\n}\n\n\n        \n        const S1Icon = createWrapper<IconExport, RS2IconProps>({\n            displayName: 'Export',\n            fallback: RS2Export,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-export',\n        });\n    \n        const S2Icon = createWrapper<IconExport, RS2IconProps>({\n            displayName: 'Export',\n            fallback: RS2Export,\n            swcLoader: s2swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-export-to',\n        });\n\n        export default (props: React.ComponentProps<typeof S1Icon> & RS2IconProps) => {\n            const { spectrumTheme } = useContext(ThemeContext);\n            if (spectrumTheme === 'spectrum-two') {\n                return <S2Icon {...props} />;\n            }\n            return <S1Icon {...props} />;\n        };\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconFlag } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFlag.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Flag: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Flag')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-flag'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconFlag\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconFlag.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconFlag];\n            }\n        const { IconFlag } = await import(\n            /* webpackChunkName: \"SpIconFlag\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFlag'\n        );\n        return [IconFlag];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconFlag, RS2IconProps>({\n            displayName: 'Flag',\n            fallback: RS2Flag,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-flag',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconFolder } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFolder.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Folder: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Folder')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-folder'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconFolder\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconFolder.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconFolder];\n            }\n        const { IconFolder } = await import(\n            /* webpackChunkName: \"SpIconFolder\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFolder'\n        );\n        return [IconFolder];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconFolder, RS2IconProps>({\n            displayName: 'Folder',\n            fallback: RS2Folder,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-folder',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconFolderAdd } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFolderAdd.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2FolderAdd: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/FolderAdd')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-folder-add'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconFolderAdd\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconFolderAdd.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconFolderAdd];\n            }\n        const { IconFolderAdd } = await import(\n            /* webpackChunkName: \"SpIconFolderAdd\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconFolderAdd'\n        );\n        return [IconFolderAdd];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconFolderAdd, RS2IconProps>({\n            displayName: 'FolderAdd',\n            fallback: RS2FolderAdd,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-folder-add',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\n    import React, { useContext } from \"react\";\n    import { ThemeContext } from \"../utils/ThemeContext\";\n\nimport type { IconGlobe } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconGlobe.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Globe: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Globe')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nlet s2swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-globe'], async () => {\n        \n        const { IconGlobe } = await import(\n            /* webpackChunkName: \"SpIconGlobe\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconGlobe'\n        );\n        return [IconGlobe];\n    });\n\n    s2swcLoader = new SWCLoader(['sp-icon-globe-grid'], async () => {\n        const { IconGlobeGrid } = await import(\n            /* webpackChunkName: \"SpIconIconGlobeGrid\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconGlobeGrid'\n        );\n        return [IconGlobeGrid];\n    });\n}\n\n\n        \n        const S1Icon = createWrapper<IconGlobe, RS2IconProps>({\n            displayName: 'Globe',\n            fallback: RS2Globe,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-globe',\n        });\n    \n        const S2Icon = createWrapper<IconGlobe, RS2IconProps>({\n            displayName: 'Globe',\n            fallback: RS2Globe,\n            swcLoader: s2swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-globe-grid',\n        });\n\n        export default (props: React.ComponentProps<typeof S1Icon> & RS2IconProps) => {\n            const { spectrumTheme } = useContext(ThemeContext);\n            if (spectrumTheme === 'spectrum-two') {\n                return <S2Icon {...props} />;\n            }\n            return <S1Icon {...props} />;\n        };\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\n    import React, { useContext } from \"react\";\n    import { ThemeContext } from \"../utils/ThemeContext\";\n\nimport type { IconInfoOutline } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconInfoOutline.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2InfoOutline: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/InfoOutline')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nlet s2swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-info-outline'], async () => {\n        \n        const { IconInfoOutline } = await import(\n            /* webpackChunkName: \"SpIconInfoOutline\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconInfoOutline'\n        );\n        return [IconInfoOutline];\n    });\n\n    s2swcLoader = new SWCLoader(['sp-icon-info-circle'], async () => {\n        const { IconInfoCircle } = await import(\n            /* webpackChunkName: \"SpIconIconInfoCircle\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconInfoCircle'\n        );\n        return [IconInfoCircle];\n    });\n}\n\n\n        \n        const S1Icon = createWrapper<IconInfoOutline, RS2IconProps>({\n            displayName: 'InfoOutline',\n            fallback: RS2InfoOutline,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-info-outline',\n        });\n    \n        const S2Icon = createWrapper<IconInfoOutline, RS2IconProps>({\n            displayName: 'InfoOutline',\n            fallback: RS2InfoOutline,\n            swcLoader: s2swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-info-circle',\n        });\n\n        export default (props: React.ComponentProps<typeof S1Icon> & RS2IconProps) => {\n            const { spectrumTheme } = useContext(ThemeContext);\n            if (spectrumTheme === 'spectrum-two') {\n                return <S2Icon {...props} />;\n            }\n            return <S1Icon {...props} />;\n        };\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconMove } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconMove.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Move: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Move')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-move'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconMove\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconMove.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconMove];\n            }\n        const { IconMove } = await import(\n            /* webpackChunkName: \"SpIconMove\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconMove'\n        );\n        return [IconMove];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconMove, RS2IconProps>({\n            displayName: 'Move',\n            fallback: RS2Move,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-move',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconMoveTo } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconMoveTo.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2MoveTo: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/MoveTo')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-move-to'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconMoveTo\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconMoveTo.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconMoveTo];\n            }\n        const { IconMoveTo } = await import(\n            /* webpackChunkName: \"SpIconMoveTo\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconMoveTo'\n        );\n        return [IconMoveTo];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconMoveTo, RS2IconProps>({\n            displayName: 'MoveTo',\n            fallback: RS2MoveTo,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-move-to',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconOpenIn } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconOpenIn.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2OpenIn: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/OpenIn')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-open-in'], async () => {\n        \n        const { IconOpenIn } = await import(\n            /* webpackChunkName: \"SpIconOpenIn\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconOpenIn'\n        );\n        return [IconOpenIn];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconOpenIn, RS2IconProps>({\n            displayName: 'OpenIn',\n            fallback: RS2OpenIn,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-open-in',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconRemove } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconRemove.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Remove: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Remove')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-remove'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconRemove\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconRemove.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconRemove];\n            }\n        const { IconRemove } = await import(\n            /* webpackChunkName: \"SpIconRemove\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconRemove'\n        );\n        return [IconRemove];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconRemove, RS2IconProps>({\n            displayName: 'Remove',\n            fallback: RS2Remove,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-remove',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\n    import React, { useContext } from \"react\";\n    import { ThemeContext } from \"../utils/ThemeContext\";\n\nimport type { IconSelectBoxAll } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSelectBoxAll.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2SelectBoxAll: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/SelectBoxAll')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nlet s2swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-select-box-all'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconSelectBoxAll\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconSelectBoxAll.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconSelectBoxAll];\n            }\n        const { IconSelectBoxAll } = await import(\n            /* webpackChunkName: \"SpIconSelectBoxAll\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSelectBoxAll'\n        );\n        return [IconSelectBoxAll];\n    });\n\n    s2swcLoader = new SWCLoader(['sp-icon-select-multi'], async () => {\n        const { IconSelectMulti } = await import(\n            /* webpackChunkName: \"SpIconIconSelectMulti\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSelectMulti'\n        );\n        return [IconSelectMulti];\n    });\n}\n\n\n        \n        const S1Icon = createWrapper<IconSelectBoxAll, RS2IconProps>({\n            displayName: 'SelectBoxAll',\n            fallback: RS2SelectBoxAll,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-select-box-all',\n        });\n    \n        const S2Icon = createWrapper<IconSelectBoxAll, RS2IconProps>({\n            displayName: 'SelectBoxAll',\n            fallback: RS2SelectBoxAll,\n            swcLoader: s2swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-select-multi',\n        });\n\n        export default (props: React.ComponentProps<typeof S1Icon> & RS2IconProps) => {\n            const { spectrumTheme } = useContext(ThemeContext);\n            if (spectrumTheme === 'spectrum-two') {\n                return <S2Icon {...props} />;\n            }\n            return <S1Icon {...props} />;\n        };\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconShare } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconShare.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Share: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Share')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-share'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconShare\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconShare.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconShare];\n            }\n        const { IconShare } = await import(\n            /* webpackChunkName: \"SpIconShare\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconShare'\n        );\n        return [IconShare];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconShare, RS2IconProps>({\n            displayName: 'Share',\n            fallback: RS2Share,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-share',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\n    import React, { useContext } from \"react\";\n    import { ThemeContext } from \"../utils/ThemeContext\";\n\nimport type { IconSortOrderDown } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSortOrderDown.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2SortOrderDown: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/SortOrderDown')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nlet s2swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-sort-order-down'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconSortOrderDown\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconSortOrderDown.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconSortOrderDown];\n            }\n        const { IconSortOrderDown } = await import(\n            /* webpackChunkName: \"SpIconSortOrderDown\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSortOrderDown'\n        );\n        return [IconSortOrderDown];\n    });\n\n    s2swcLoader = new SWCLoader(['sp-icon-sort-down'], async () => {\n        const { IconSortDown } = await import(\n            /* webpackChunkName: \"SpIconIconSortDown\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSortDown'\n        );\n        return [IconSortDown];\n    });\n}\n\n\n        \n        const S1Icon = createWrapper<IconSortOrderDown, RS2IconProps>({\n            displayName: 'SortOrderDown',\n            fallback: RS2SortOrderDown,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-sort-order-down',\n        });\n    \n        const S2Icon = createWrapper<IconSortOrderDown, RS2IconProps>({\n            displayName: 'SortOrderDown',\n            fallback: RS2SortOrderDown,\n            swcLoader: s2swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-sort-down',\n        });\n\n        export default (props: React.ComponentProps<typeof S1Icon> & RS2IconProps) => {\n            const { spectrumTheme } = useContext(ThemeContext);\n            if (spectrumTheme === 'spectrum-two') {\n                return <S2Icon {...props} />;\n            }\n            return <S1Icon {...props} />;\n        };\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\n    import React, { useContext } from \"react\";\n    import { ThemeContext } from \"../utils/ThemeContext\";\n\nimport type { IconSortOrderUp } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSortOrderUp.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2SortOrderUp: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/SortOrderUp')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nlet s2swcLoader;\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-sort-order-up'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconSortOrderUp\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconSortOrderUp.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconSortOrderUp];\n            }\n        const { IconSortOrderUp } = await import(\n            /* webpackChunkName: \"SpIconSortOrderUp\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSortOrderUp'\n        );\n        return [IconSortOrderUp];\n    });\n\n    s2swcLoader = new SWCLoader(['sp-icon-sort-up'], async () => {\n        const { IconSortUp } = await import(\n            /* webpackChunkName: \"SpIconIconSortUp\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconSortUp'\n        );\n        return [IconSortUp];\n    });\n}\n\n\n        \n        const S1Icon = createWrapper<IconSortOrderUp, RS2IconProps>({\n            displayName: 'SortOrderUp',\n            fallback: RS2SortOrderUp,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-sort-order-up',\n        });\n    \n        const S2Icon = createWrapper<IconSortOrderUp, RS2IconProps>({\n            displayName: 'SortOrderUp',\n            fallback: RS2SortOrderUp,\n            swcLoader: s2swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-sort-up',\n        });\n\n        export default (props: React.ComponentProps<typeof S1Icon> & RS2IconProps) => {\n            const { spectrumTheme } = useContext(ThemeContext);\n            if (spectrumTheme === 'spectrum-two') {\n                return <S2Icon {...props} />;\n            }\n            return <S1Icon {...props} />;\n        };\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconStarFilled } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconStarFilled.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2StarFilled: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Star')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-star-filled'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconStarFilled\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconStarFilled.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconStarFilled];\n            }\n        const { IconStarFilled } = await import(\n            /* webpackChunkName: \"SpIconStarFilled\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconStarFilled'\n        );\n        return [IconStarFilled];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconStarFilled, RS2IconProps>({\n            displayName: 'StarFilled',\n            fallback: RS2StarFilled,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-star-filled',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconStarOutline } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconStarOutline.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2StarOutline: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/StarOutline')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-star-outline'], async () => {\n        \n        const { IconStarOutline } = await import(\n            /* webpackChunkName: \"SpIconStarOutline\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconStarOutline'\n        );\n        return [IconStarOutline];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconStarOutline, RS2IconProps>({\n            displayName: 'StarOutline',\n            fallback: RS2StarOutline,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-star-outline',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconUndo } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUndo.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Undo: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Undo')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-undo'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconUndo\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconUndo.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconUndo];\n            }\n        const { IconUndo } = await import(\n            /* webpackChunkName: \"SpIconUndo\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUndo'\n        );\n        return [IconUndo];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconUndo, RS2IconProps>({\n            displayName: 'Undo',\n            fallback: RS2Undo,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-undo',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconUploadToCloud } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUploadToCloud.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2UploadToCloud: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/UploadToCloud')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-upload-to-cloud'], async () => {\n        \n        const { IconUploadToCloud } = await import(\n            /* webpackChunkName: \"SpIconUploadToCloud\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUploadToCloud'\n        );\n        return [IconUploadToCloud];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconUploadToCloud, RS2IconProps>({\n            displayName: 'UploadToCloud',\n            fallback: RS2UploadToCloud,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-upload-to-cloud',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconUser } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUser.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2User: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/User')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-user'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconUser\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconUser.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconUser];\n            }\n        const { IconUser } = await import(\n            /* webpackChunkName: \"SpIconUser\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUser'\n        );\n        return [IconUser];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconUser, RS2IconProps>({\n            displayName: 'User',\n            fallback: RS2User,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-user',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconUserGroup } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUserGroup.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2UserGroup: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/UserGroup')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-user-group'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconUserGroup\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconUserGroup.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconUserGroup];\n            }\n        const { IconUserGroup } = await import(\n            /* webpackChunkName: \"SpIconUserGroup\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconUserGroup'\n        );\n        return [IconUserGroup];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconUserGroup, RS2IconProps>({\n            displayName: 'UserGroup',\n            fallback: RS2UserGroup,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-user-group',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconViewList } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconViewList.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2ViewList: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/ViewList')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-view-list'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconViewList\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconListView.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconListView];\n            }\n        const { IconViewList } = await import(\n            /* webpackChunkName: \"SpIconViewList\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconViewList'\n        );\n        return [IconViewList];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconViewList, RS2IconProps>({\n            displayName: 'ViewList',\n            fallback: RS2ViewList,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-view-list',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\nimport type { Icon } from '@ccx-public/spectrum-web-component-fallbacks/dist/icon';\nimport type { ReactProps, SpectrumElementProps } from '../utils';\n\ntype RS2Size = 'XS' | 'S' | 'M' | 'L' | 'XL' | 'XXL';\ntype SWCSize = Icon['size'];\n\nfunction getSWCSize(size?: RS2Size): SWCSize {\n    // The sizing differences between RS2 and SWC are pretty wild. Since we're\n    // supporting the RS2 interface, we give the closest approximation to each\n    // size in SWC.\n    switch (size) {\n        case 'XS': // 12px\n            return 's'; // 16px\n        case 'S': // 18px\n            return 'm'; // 18px\n        case 'M': // 24px\n            return 'xl'; // 22px\n        case 'L': // 36px\n        case 'XL': // 48px\n        case 'XXL': // 72px\n            return 'xxl'; // 32px\n        // RS2 default is 'M'\n        default:\n            return 'xl'; // SWC equivalent is xl.\n    }\n}\n\nexport type RS2IconProps = {\n    alt?: string;\n    'aria-label'?: string;\n    size?: RS2Size;\n};\n\nexport function getSWCProps(\n    props: ReactProps<Icon, RS2IconProps>\n): SpectrumElementProps<Icon> {\n    const { alt, className, 'aria-label': ariaLabel, size, ...rest } = props;\n    return {\n        ...rest,\n        class: className,\n        label: alt || ariaLabel,\n        size: getSWCSize(size),\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// https://opensource.adobe.com/spectrum-web-components/components/link/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/Link\nimport type { Link as LinkType } from '@ccx-public/spectrum-web-component-fallbacks/dist/link';\nimport type { SyntheticEvent } from 'react';\nimport { filterBooleanProps } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Link: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Link')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-link'], async () => {\n        const { Link } = await import(\n            /* webpackChunkName: \"SpLink\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/link'\n        );\n        return [Link];\n    });\n}\n\ntype RS2CompatProps = {\n    /**\n     * Link address\n     */\n    href?: string;\n    /**\n     * Whether the link represents a quiet state\n     */\n    quiet?: boolean;\n    /* Called whenever a link is clicked\n     */\n    onClick?: (event?: SyntheticEvent) => unknown;\n    variant?: string;\n};\n\nexport default createWrapper<LinkType, RS2CompatProps>({\n    displayName: 'Link',\n    fallback: RS2Link,\n    swcLoader,\n    swcProps: (props) => {\n        const { className, variant, ...rest } = props;\n        // ReactSpectrum2           | SpectrumWebComponent\n        // ---------------------------------------------\n        // variant:quiet            | variant: secondary\n        // variant:overBackground   | staticColor\n        //        N/A               | quiet\n\n        return {\n            ...rest,\n            ...filterBooleanProps({\n                quiet: variant === 'quiet' ? false : true,\n            }),\n            class: className,\n            'static-color': variant === 'overBackground' ? 'white' : undefined,\n            variant: variant === 'quiet' ? 'secondary' : undefined,\n        };\n    },\n    tagName: 'sp-link',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport type { ForwardedRef, MutableRefObject } from 'react';\nimport React, { forwardRef, useEffect, useRef } from 'react';\n\n// https://opensource.adobe.com/spectrum-web-components/components/menu/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/Menu\nimport type {\n    MenuDivider as MenuDividerType,\n    MenuGroup as MenuGroupType,\n    MenuItem as MenuItemType,\n    Menu as MenuType,\n} from '@ccx-public/spectrum-web-component-fallbacks/dist/menu';\nimport type { ReactProps } from './utils';\nimport { filterBooleanProps, useComponent } from './utils';\n\nimport Popover from './Popover';\nimport { SWCLoader } from './utils/SWCLoader';\nimport createWrapper from './utils/createWrapper';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport mergeRefs from './utils/mergeRefs';\n\ntype RS2MenuCompatProps = {\n    open?: boolean;\n    onSelect?: (option: string) => void;\n    onClose?: () => unknown;\n};\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires */\nconst RS2Menu: {\n    Menu: React.ComponentType<ReactProps<MenuType, RS2MenuCompatProps>>;\n    MenuHeading: React.ComponentType<unknown>;\n    SubMenu: React.ComponentType<unknown>;\n    MenuDivider: React.ComponentType<unknown>;\n    MenuItem: React.ComponentType<unknown>;\n} = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Menu'))\n    : {};\n\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(\n        ['sp-menu', 'sp-menu-group', 'sp-menu-item', 'sp-menu-divider'],\n        async () => {\n            const { Menu, MenuGroup, MenuItem, MenuDivider } = await import(\n                /* webpackChunkName: \"SpMenu\" */\n                '@ccx-public/spectrum-web-component-fallbacks/dist/menu'\n            );\n            return [Menu, MenuGroup, MenuItem, MenuDivider];\n        }\n    );\n}\n\n// SWC menus can reside outside of a popover, but RS2 Menus are always inside a popover.\n// This is only so we can reuse a menu outside of the popover.\nexport const StandAloneMenu = createWrapper<MenuType>({\n    displayName: 'StandAloneMenu',\n    fallback: undefined,\n    swcLoader,\n    SWCWrapper: forwardRef(function SpStandAloneMenuPreview(\n        props: ReactProps<MenuType, RS2MenuCompatProps>,\n        ref: ForwardedRef<HTMLElement>\n    ) {\n        const privateRef = useRef<MenuType>(null);\n        const menuWrapperRef = ref\n            ? (ref as MutableRefObject<HTMLElement>)\n            : privateRef;\n        const { className, onSelect, ...rest } = props;\n        useEffect(() => {\n            const { current } = menuWrapperRef;\n            const handleSelect = (event: Event) => {\n                const target = event.target as HTMLInputElement;\n\n                onSelect?.(target.value);\n            };\n\n            if (current && onSelect) {\n                current.addEventListener('change', handleSelect);\n            }\n\n            return () => {\n                if (current && onSelect) {\n                    current.removeEventListener('change', handleSelect);\n                }\n            };\n        }, [onSelect, menuWrapperRef]);\n\n        const Menu = useComponent('sp-menu');\n\n        return <Menu ref={menuWrapperRef} class={className} {...rest} />;\n    }),\n    tagName: 'sp-menu',\n});\n\nexport const Menu = createWrapper<MenuType, RS2MenuCompatProps>({\n    displayName: 'Menu',\n    fallback: RS2Menu.Menu,\n    swcLoader,\n    SWCWrapper: forwardRef(function SpMenuPreview(\n        props,\n        ref: ForwardedRef<HTMLElement>\n    ) {\n        const privateRef = useRef<MenuType>(null);\n        const menuWrapperRef = ref\n            ? (ref as MutableRefObject<HTMLElement>)\n            : privateRef;\n        const { open, slot, style, onClose, ...rest } = props;\n\n        useEffect(() => {\n            const { current } = menuWrapperRef;\n\n            if (current && onClose) {\n                current.addEventListener('close', onClose);\n            }\n\n            return () => {\n                if (current && onClose) {\n                    current.removeEventListener('close', onClose);\n                }\n            };\n        }, [onClose, menuWrapperRef]);\n\n        return (\n            <Popover\n                open={open as boolean}\n                title={''}\n                style={{ minWidth: 'min-content', padding: 0, ...style }}\n                slot={slot}\n                excludeDialog\n            >\n                <StandAloneMenu ref={menuWrapperRef} {...rest} />\n            </Popover>\n        );\n    }),\n    tagName: 'sp-menu',\n});\n\ntype RS2MenuItemCompatProps = {\n    description?: JSX.Element | string;\n    icon?: JSX.Element;\n    role?: string;\n    valueContent?: JSX.Element;\n};\n\nfunction getIconSlot(icon?: RS2MenuItemCompatProps['icon']): React.ReactNode {\n    if (!icon) {\n        return;\n    }\n\n    return React.cloneElement(icon, { slot: 'icon' });\n}\n\nfunction getValueSlot(\n    value?: RS2MenuItemCompatProps['valueContent']\n): React.ReactNode {\n    if (!value) {\n        return;\n    }\n\n    return React.cloneElement(value, { slot: 'value' });\n}\n\nexport const MenuItem = createWrapper<MenuItemType, RS2MenuItemCompatProps>({\n    displayName: 'MenuItem',\n    fallback: RS2Menu.MenuItem,\n    swcLoader,\n    swcProps: function (props) {\n        const {\n            children,\n            description,\n            disabled,\n            icon,\n            selected,\n            valueContent,\n            className,\n            ...rest\n        } = props;\n\n        // ReactSpectrum2                   | SpectrumWebComponent\n        // ---------------------------------------------\n        // N/A (if Select, use renderItem)  | description\n        // N/A (if Select, use renderItem)  | valueContent\n\n        const iconSlot = getIconSlot(icon);\n        const valueSlot = getValueSlot(valueContent);\n\n        return {\n            class: className,\n            ...rest,\n            ...filterBooleanProps({\n                disabled: disabled,\n                selected: selected,\n            }),\n            children: (\n                <>\n                    {iconSlot}\n                    {children}\n                    {description && (\n                        <span slot=\"description\">{description}</span>\n                    )}\n                    {valueSlot}\n                </>\n            ),\n        };\n    },\n    tagName: 'sp-menu-item',\n});\n\nexport const MenuDivider = createWrapper<MenuDividerType>({\n    displayName: 'MenuDivider',\n    fallback: RS2Menu.MenuDivider,\n    swcLoader,\n    swcProps: function (props) {\n        const { className, ...rest } = props;\n        return { class: className, ...rest };\n    },\n    tagName: 'sp-menu-divider',\n});\n\nexport const MenuHeading = createWrapper<MenuGroupType>({\n    displayName: 'MenuHeading',\n    fallback: RS2Menu.MenuHeading,\n    swcLoader,\n    swcProps: function (props) {\n        const { children, ...rest } = props;\n\n        // For swc, preferable to use the header prop of MenuGroup not MenuHeading.\n        return {\n            ...rest,\n            children: <span slot=\"header\">{children}</span>,\n        };\n    },\n    tagName: 'sp-menu-group',\n});\n\nexport const SubMenu = createWrapper<MenuItemType, RS2MenuItemCompatProps>({\n    displayName: 'SubMenu',\n    fallback: RS2Menu.SubMenu,\n    swcLoader,\n    SWCWrapper: function (props) {\n        const { label, children, ...rest } = props;\n        const Menu = useComponent('sp-menu');\n        const MenuItem = useComponent('sp-menu-item');\n\n        return (\n            <MenuItem {...rest}>\n                {label}\n                <Menu slot=\"submenu\">{children}</Menu>\n            </MenuItem>\n        );\n    },\n    tagName: 'sp-menu-item',\n});\n\ntype MenuGroupReactCompatProps = {\n    // Will get transformed into a header slot for SWC.\n    header?: string;\n    onSelect?: (option: string) => unknown;\n};\n\n/**\n * MenuGroup component is only supported by Spectrum Web Components\n */\nexport const MenuGroup = createWrapper<\n    MenuGroupType,\n    MenuGroupReactCompatProps\n>({\n    displayName: 'MenuGroup',\n    fallback: undefined,\n    swcLoader,\n    SWCWrapper: forwardRef(function SpMenuGroupPreview(\n        props: ReactProps<MenuGroupType, MenuGroupReactCompatProps>,\n        ref: ForwardedRef<HTMLElement>\n    ) {\n        const menuGroupWrapperRef = useRef<MenuGroupType>(null);\n        const { className, children, header, onSelect, ...rest } = props;\n\n        useEffect(() => {\n            const { current } = menuGroupWrapperRef;\n            const handleChange = (event: Event) => {\n                const target = event.target as HTMLInputElement;\n\n                onSelect?.(target.value);\n            };\n\n            if (current && onSelect) {\n                current.addEventListener('change', handleChange);\n            }\n\n            return () => {\n                if (current && onSelect) {\n                    current.removeEventListener('change', handleChange);\n                }\n            };\n        }, [onSelect, menuGroupWrapperRef]);\n\n        const MenuGroup = useComponent('sp-menu-group');\n\n        return (\n            <MenuGroup\n                ref={mergeRefs([ref, menuGroupWrapperRef])}\n                class={className}\n                {...rest}\n            >\n                {header && <span slot=\"header\">{header}</span>}\n                {children}\n            </MenuGroup>\n        );\n    }),\n    tagName: 'sp-menu-group',\n});\n\nexport const menuSwcLoader = swcLoader;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// https://react-spectrum.corp.adobe.com/storybook/?path=/story/overlaytrigger--with-trigger-click\n// https://opensource.adobe.com/spectrum-web-components/components/overlay-trigger/\nimport type {\n    OverlayTrigger as OverlayTriggerType,\n    OverlayContentTypes,\n    Placement,\n} from '@ccx-public/spectrum-web-component-fallbacks/dist/overlay';\nimport React, { useRef, useEffect } from 'react';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport { filterBooleanProps, useComponent } from './utils';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2OverlayTrigger: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/OverlayTrigger')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['overlay-trigger'], async () => {\n        const { OverlayTrigger } = await import(\n            /* webpackChunkName: \"SpOverlay\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/overlay'\n        );\n        return [OverlayTrigger];\n    });\n}\n\ntype Triggers = 'click' | 'longClick' | 'hover' | 'focus';\n\ntype BoundariesElementType = (() => Element | null) | string;\ntype RS2CompatProps = {\n    open?: OverlayContentTypes;\n    placement?: string;\n    trigger?: Triggers | Triggers[];\n    onShow?: () => void;\n    onHide?: () => void;\n    delayShow?: number;\n    disabled?: boolean;\n    // RS2-UXP-only prop\n    boundariesElement?: BoundariesElementType;\n    show?: boolean;\n};\n\n// RS2 to SWC Placement map\nconst placementMap: Record<string, Placement> = {\n    left: 'left',\n    right: 'right',\n    top: 'top',\n    bottom: 'bottom',\n    'top left': 'top-start',\n    'top right': 'top-end',\n    'bottom left': 'bottom-start',\n    'bottom right': 'bottom-end',\n    'left top': 'left-start',\n    'left bottom': 'left-end',\n    'right top': 'right-start',\n    'right bottom': 'right-end',\n};\n\nconst DEFAULT_TRIGGERS = ['hover', 'focus'];\n\nexport default createWrapper<OverlayTriggerType, RS2CompatProps>({\n    displayName: 'OverlayTrigger',\n    fallback: RS2OverlayTrigger,\n    swcLoader,\n    SWCWrapper: function OverlayTrigger(props) {\n        const {\n            trigger = DEFAULT_TRIGGERS,\n            children,\n            className,\n            onHide,\n            onShow,\n            disabled,\n            delayShow,\n            // RS2-UXP-only props\n            /* eslint-disable @typescript-eslint/no-unused-vars */\n            boundariesElement,\n            show,\n            /* eslint-enable @typescript-eslint/no-unused-vars */\n            ...rest\n        } = props;\n        const childrenArray = React.Children.toArray(children);\n        const modalTriggerRef = useRef<OverlayTriggerType>(null);\n        const triggers =\n            typeof trigger === 'object' ? trigger : trigger ? [trigger] : [];\n        const slotNames: string[] = [];\n        const resultArray: JSX.Element[] = [];\n\n        // map RS2 to SWC Placement mapping\n        const placement = props.placement\n            ? placementMap[props.placement]\n            : 'left';\n\n        useEffect(() => {\n            const current = modalTriggerRef?.current;\n\n            if (current && onShow) {\n                current.addEventListener('sp-opened', onShow);\n            }\n            if (current && onHide) {\n                current.addEventListener('sp-closed', onHide);\n            }\n\n            return () => {\n                if (current && onShow) {\n                    current.removeEventListener('sp-opened', onShow);\n                }\n                if (current && onHide) {\n                    current.removeEventListener('sp-closed', onHide);\n                }\n            };\n        }, [onShow, onHide]);\n\n        triggers.forEach((curTrigger: string) => {\n            if (\n                curTrigger?.includes('hover') ||\n                curTrigger?.includes('focus')\n            ) {\n                slotNames.push('hover-content');\n            } else if (curTrigger?.includes('click')) {\n                slotNames.push('click-content');\n            } else if (curTrigger?.includes('longClick')) {\n                slotNames.push('longpress-content');\n            }\n        });\n\n        /*\n         * RS2 only supports two children to be used in an overlay trigger.\n         * It is assumed that the first child is the trigger element and the second child is\n         * the element to overlay. The following check, along with checking for trigger above\n         * and slot props below, are used to know if the RS2 interface is being used. If this is\n         * the case we make the same assuptions as RS2 and treat the first child as the trigger\n         * and the second child as the element to overlay.\n         * If any of these checks fail we still allow the overlay to render so the SWC interface cas be used as well.\n         * https://git.corp.adobe.com/React/react-spectrum-v2/blob/v2.39.0/src/OverlayTrigger/js/OverlayTrigger.js#L510\n         */\n        if (slotNames.length && childrenArray.length === 2) {\n            const firstChild = childrenArray[0] as JSX.Element;\n            const secondChild = childrenArray[1] as JSX.Element;\n\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n            if (!firstChild.props?.slot) {\n                const TriggerComp = React.cloneElement(firstChild, {\n                    slot: 'trigger',\n                });\n                resultArray.push(TriggerComp);\n            } else {\n                resultArray.push(firstChild);\n            }\n\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n            if (!secondChild.props?.slot) {\n                slotNames.forEach((curSlot: string) => {\n                    const TriggerTargetComp = React.cloneElement(secondChild, {\n                        slot: curSlot,\n                        delayed: delayShow ? true : undefined,\n                    });\n                    resultArray.push(TriggerTargetComp);\n                });\n            } else {\n                resultArray.push(secondChild);\n            }\n        }\n\n        const OverlayTrigger = useComponent('overlay-trigger');\n\n        return (\n            <OverlayTrigger\n                {...rest}\n                {...filterBooleanProps({ disabled })}\n                placement={placement}\n                class={className}\n                triggered-by={triggers.join(' ')}\n                ref={modalTriggerRef}\n            >\n                {resultArray.length ? resultArray : children}\n            </OverlayTrigger>\n        );\n    },\n    tagName: 'overlay-trigger',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport type { ReactProps } from './utils';\nimport { filterBooleanProps, useComponent } from './utils';\n\n// https://opensource.adobe.com/spectrum-web-components/components/popover/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/Popover\nimport type { Popover as PopoverType } from '@ccx-public/spectrum-web-component-fallbacks/dist/popover';\nimport { SWCLoader } from './utils/SWCLoader';\nimport createWrapper from './utils/createWrapper';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Popover: React.ComponentType<\n    ReactProps<PopoverType, BaseOptions & RS2CompatProps>\n> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Popover')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-popover', 'sp-dialog'], async () => {\n        const [{ Popover }, { Dialog }] = await Promise.all([\n            import(\n                /* webpackChunkName: \"SpPopover\" */\n                '@ccx-public/spectrum-web-component-fallbacks/dist/popover'\n            ),\n            import(\n                /* webpackChunkName: \"SpDialog\" */\n                '@ccx-public/spectrum-web-component-fallbacks/dist/dialog'\n            ),\n        ]);\n\n        return [Popover, Dialog];\n    });\n}\n\ntype RS2CompatProps = {\n    contentStyle?: object;\n    isDialog?: boolean;\n    open?: boolean;\n    role?: string;\n    title?: string;\n    trapFocus?: boolean;\n    variant?: string;\n};\n\ntype BaseOptions = {\n    enablePortaling?: boolean;\n    contentStyle?: object;\n    excludeDialog?: boolean;\n};\n\nexport default createWrapper<PopoverType, BaseOptions & RS2CompatProps>({\n    displayName: 'Popover',\n    fallback: RS2Popover,\n    swcLoader,\n    SWCWrapper: function (props) {\n        const {\n            children,\n            className,\n            contentStyle = {},\n            enablePortaling = false,\n            open,\n            placement,\n            title,\n            /* eslint-disable @typescript-eslint/no-unused-vars */\n            // RS2-UXP-only props\n            trapFocus,\n            isDialog,\n            role,\n            /* eslint-enable @typescript-eslint/no-unused-vars */\n            excludeDialog,\n            ...rest\n        } = props;\n\n        // ReactSpectrum2           | SpectrumWebComponent\n        // ---------------------------------------------\n        // title                    | title: present in child\n        // placement                 | placement with tip & dialog true\n\n        const childrenArr = [];\n        const hasTitle = title && title !== '';\n\n        if (hasTitle) {\n            childrenArr.push(<span slot=\"heading\">{title}</span>);\n        }\n\n        childrenArr.push(\n            <div key=\"popover-children\" style={contentStyle}>\n                {children}\n            </div>\n        );\n\n        const childrenWrapperRef = useRef<HTMLDivElement>(null);\n        const [, forceUpdate] = useState(false);\n\n        useEffect(() => {\n            if (enablePortaling) {\n                forceUpdate(true);\n            }\n        }, [enablePortaling]);\n\n        let popoverContents = enablePortaling ? (\n            <div ref={childrenWrapperRef}></div>\n        ) : (\n            childrenArr\n        );\n\n        const Popover = useComponent('sp-popover');\n        const Dialog = useComponent('sp-dialog');\n\n        if (!excludeDialog) {\n            popoverContents = (\n                <Dialog {...filterBooleanProps({ 'no-divider': !hasTitle })}>\n                    {popoverContents}\n                </Dialog>\n            );\n        }\n\n        return (\n            <>\n                <Popover\n                    {...rest}\n                    {...filterBooleanProps({\n                        open: open,\n                        tip: !!placement,\n                    })}\n                    class={className}\n                    placement={placement}\n                >\n                    {popoverContents}\n                </Popover>\n                {enablePortaling &&\n                    childrenWrapperRef.current &&\n                    createPortal(childrenArr, childrenWrapperRef.current)}\n            </>\n        );\n    },\n    tagName: 'sp-popover',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n//https://react-spectrum.corp.adobe.com/storybook/?path=/story/progress--default\n//https://opensource.adobe.com/spectrum-web-components/components/progress-bar/api/\n// SWC has ProgressBar and RS-2 has Progress\nimport type { ProgressBar as ProgressBarType } from '@ccx-public/spectrum-web-component-fallbacks/dist/progress-bar';\nimport { filterBooleanProps } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Progress: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Progress')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-progress-bar'], async () => {\n        const { ProgressBar } = await import(\n            /* webpackChunkName: \"SpProgessBar\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/progress-bar'\n        );\n\n        return [ProgressBar];\n    });\n}\n\ntype RS2CompatProps = {\n    /**\n     * Value between the min and max that specifies the progression of the progress bar.\n     * Calculated percentage is automatically clamped to 0-100.\n     */\n    value?: number;\n\n    /**\n     * Boolean to determine if the Progress component should endlessly scroll (indeterminate)\n     */\n    isIndeterminate?: boolean;\n\n    /**\n     * What type of progress bar to show: 'positive' (green), 'warning' (orange), 'critical' (red)\n     */\n    variant?: 'positive' | 'warning' | 'critical' | 'overBackground';\n\n    /**\n     * Determines the positioning of the provided label.\n     * Limited to 'left', 'top', or 'bottom'\n     */\n    labelPosition?: 'left' | 'top' | 'bottom';\n};\n\nexport default createWrapper<ProgressBarType, RS2CompatProps>({\n    displayName: 'Progress',\n    fallback: RS2Progress,\n    swcLoader,\n    swcProps: (props) => {\n        // Few properties are not supported by SWC like :: variant , labelPosition, showPercentage, min , max , size\n        const {\n            className,\n            isIndeterminate,\n            value,\n            variant,\n            labelPosition,\n            ...rest\n        } = props;\n\n        // ReactSpectrum2        | SpectrumWebComponent\n        // ---------------------------------------------\n        // value                 | progress\n        // isIndeterminate       | indeterminate\n        // variant               | overBackground\n        // labelPosition         | sideLabel\n\n        return {\n            ...rest,\n            ...filterBooleanProps({\n                indeterminate: isIndeterminate,\n                'over-background': variant === 'overBackground' ? true : false,\n                'side-label': labelPosition === 'left' ? true : false,\n            }),\n            class: className,\n            progress: value,\n        };\n    },\n    tagName: 'sp-progress-bar',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport React, { ComponentProps, useEffect, useMemo } from 'react'; // eslint-disable-line @typescript-eslint/consistent-type-imports\nimport type { Theme as ThemeType } from '@ccx-public/spectrum-web-component-fallbacks/dist/theme';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport type { SpectrumElementProps } from './utils';\nimport {\n    configureTypekit,\n    doesSWCNeedLoaded,\n    loadSwcIfNeeded,\n    useComponent,\n} from './utils';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport { getProviderConfig, ThemeContext } from './utils/ThemeContext';\nimport { _register } from './preload';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Provider: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Provider')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nconst TAG_NAME = 'sp-theme';\nlet swcLoader: SWCLoader | undefined;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader([TAG_NAME], async () => {\n        const { Theme } = await import(\n            /* webpackChunkName: \"SpTheme\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/theme'\n        );\n        return [Theme];\n    });\n}\n\nlet darkSpectrumThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet darkestSpectrumThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet lightSpectrumThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet lightestSpectrumThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet darkSpectrumTwoThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet darkestSpectrumTwoThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet lightSpectrumTwoThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet lightestSpectrumTwoThemeLoader = () =>\n    Promise.resolve() as Promise<unknown>;\nlet darkExpressThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet darkestExpressThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet lightExpressThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet lightestExpressThemeLoader = () => Promise.resolve() as Promise<unknown>;\nlet largeSpectrumScaleLoader = () => Promise.resolve() as Promise<unknown>;\nlet mediumSpectrumScaleLoader = () => Promise.resolve() as Promise<unknown>;\nlet largeExpressScaleLoader = () => Promise.resolve() as Promise<unknown>;\nlet mediumExpressScaleLoader = () => Promise.resolve() as Promise<unknown>;\nlet largeSpectrumTwoScaleLoader = () => Promise.resolve() as Promise<unknown>;\nlet mediumSpectrumTwoScaleLoader = () => Promise.resolve() as Promise<unknown>;\n\n// Theme loaders\nif (!process.env.EXCLUDE_SWC) {\n    darkSpectrumThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCDarkTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/theme-dark.js'\n        );\n    };\n    darkestSpectrumThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCDarkestTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/theme-darkest.js'\n        );\n    };\n    lightSpectrumThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCLightTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/theme-light.js'\n        );\n    };\n    lightestSpectrumThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCLightestTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/theme-lightest.js'\n        );\n    };\n    darkExpressThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCExpressDarkTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/theme-dark.js'\n        );\n    };\n    darkestExpressThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCExpressDarkestTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/theme-darkest.js'\n        );\n    };\n    lightExpressThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCExpressLightTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/theme-light.js'\n        );\n    };\n    lightestExpressThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCExpressLightestTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/theme-lightest.js'\n        );\n    };\n    darkSpectrumTwoThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCS2DarkTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/spectrum-two/theme-dark.js'\n        );\n    };\n    darkestSpectrumTwoThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCS2DarkestTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/spectrum-two/theme-darkest.js'\n        );\n    };\n    lightSpectrumTwoThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCS2LightTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/spectrum-two/theme-light.js'\n        );\n    };\n    lightestSpectrumTwoThemeLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCS2LightestTheme\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/spectrum-two/theme-lightest.js'\n        );\n    };\n\n    // Scale Loaders\n    largeSpectrumScaleLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCLargeScale\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/scale-large.js'\n        );\n    };\n    mediumSpectrumScaleLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCMediumScale\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/scale-medium.js'\n        );\n    };\n    largeExpressScaleLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCExpressLargeScale\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/scale-large.js'\n        );\n    };\n    mediumExpressScaleLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCExpressMediumScale\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/express/scale-medium.js'\n        );\n    };\n    largeSpectrumTwoScaleLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCS2LargeScale\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/spectrum-two/scale-large.js'\n        );\n    };\n    mediumSpectrumTwoScaleLoader = async () => {\n        return await import(\n            /* webpackChunkName: \"SWCS2MediumScale\" */ '@ccx-public/spectrum-web-component-fallbacks/dist/theme/spectrum-two/scale-medium.js'\n        );\n    };\n}\n\nasync function loadScale(\n    options: Pick<SpectrumElementProps<ThemeType>, 'scale' | 'system'>\n): Promise<unknown> {\n    switch (options.system) {\n        case 'express':\n            if (options.scale === 'large') {\n                return largeExpressScaleLoader();\n            } else {\n                return mediumExpressScaleLoader();\n            }\n        case 'spectrum-two':\n            if (options.scale === 'large') {\n                return largeSpectrumTwoScaleLoader();\n            } else {\n                return mediumSpectrumTwoScaleLoader();\n            }\n        case 'spectrum':\n        default:\n            if (options.scale === 'large') {\n                return largeSpectrumScaleLoader();\n            } else {\n                return mediumSpectrumScaleLoader();\n            }\n    }\n}\n\nasync function loadColor(\n    options: Pick<SpectrumElementProps<ThemeType>, 'color' | 'system'>\n): Promise<unknown> {\n    switch (options.color) {\n        case 'dark':\n            if (options.system === 'express') {\n                return darkExpressThemeLoader();\n            } else if (options.system === 'spectrum-two') {\n                return darkSpectrumTwoThemeLoader();\n            } else {\n                return darkSpectrumThemeLoader();\n            }\n        case 'darkest':\n            if (options.system === 'express') {\n                return darkestExpressThemeLoader();\n            } else if (options.system === 'spectrum-two') {\n                return darkestSpectrumTwoThemeLoader();\n            } else {\n                return darkestSpectrumThemeLoader();\n            }\n        case 'light':\n            if (options.system === 'express') {\n                return lightExpressThemeLoader();\n            } else if (options.system === 'spectrum-two') {\n                return lightSpectrumTwoThemeLoader();\n            } else {\n                return lightSpectrumThemeLoader();\n            }\n        case 'lightest':\n        default:\n            if (options.system === 'express') {\n                return lightestExpressThemeLoader();\n            } else if (options.system === 'spectrum-two') {\n                return lightestSpectrumTwoThemeLoader();\n            } else {\n                return lightestSpectrumThemeLoader();\n            }\n    }\n}\n\ntype Overrides = {\n    locale?: ThemeType['lang'];\n    scale?: ThemeType['scale'];\n    spectrumTheme?: ThemeType['system'];\n    theme?: ThemeType['color'];\n    // RS2-only props\n    typekitId?: string;\n    // UXP-RS2-only props\n    disableNativeControls?: boolean;\n    useHostThemes?: boolean;\n};\n\n_register(function (config) {\n    const { scale, spectrumTheme, theme, typekitId } = config;\n    const promises = [\n        loadScale({ scale, system: spectrumTheme }),\n        loadColor({ color: theme, system: spectrumTheme }),\n        configureTypekit(typekitId),\n    ];\n\n    if (doesSWCNeedLoaded(TAG_NAME)) {\n        promises.push(loadSwcIfNeeded(TAG_NAME, config, swcLoader));\n    }\n\n    return Promise.all(promises);\n});\n\nconst Provider = createWrapper<ThemeType, Overrides>({\n    displayName: 'Provider',\n    fallback: RS2Provider,\n    swcLoader,\n    SWCWrapper: function SpProvider(props) {\n        const {\n            className,\n            locale,\n            scale,\n            spectrumTheme,\n            theme,\n            typekitId = 'ruf7eed',\n            ...rest\n        } = props;\n\n        useEffect(() => {\n            loadScale({ scale, system: spectrumTheme }).catch(console.error);\n        }, [scale, spectrumTheme]);\n\n        useEffect(() => {\n            loadColor({ color: theme, system: spectrumTheme }).catch(\n                console.error\n            );\n        }, [spectrumTheme, theme]);\n\n        useEffect(() => {\n            configureTypekit(typekitId).catch(console.error);\n        }, [typekitId]);\n\n        const Provider = useComponent(TAG_NAME);\n\n        return (\n            <Provider\n                {...rest}\n                class={className}\n                color={theme}\n                lang={locale}\n                scale={scale}\n                system={spectrumTheme}\n            />\n        );\n    },\n    tagName: TAG_NAME,\n});\n\nexport default function ProviderWrapper(\n    props: ComponentProps<typeof Provider>\n) {\n    const { scale, spectrumTheme, theme, typekitId } = props;\n\n    const config = useMemo(\n        () => getProviderConfig({ scale, spectrumTheme, theme, typekitId }),\n        [scale, spectrumTheme, theme, typekitId]\n    );\n\n    return (\n        <ThemeContext.Provider value={config}>\n            <Provider {...props} />\n        </ThemeContext.Provider>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// https://opensource.adobe.com/spectrum-web-components/components/radio/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/Radio\nimport type { Radio as RadioType } from '@ccx-public/spectrum-web-component-fallbacks/dist/radio';\nimport { filterBooleanProps } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Radio: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Radio')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-radio'], async () => {\n        const { Radio } = await import(\n            /* webpackChunkName: \"SpRadio\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/radio'\n        );\n        return [Radio];\n    });\n}\n\ntype RS2CompatProps = {\n    /**\n     * The label to display with the radio\n     */\n    label?: string;\n\n    /**\n     * Flag that decides whether to display label\n     */\n    renderLabel?: boolean;\n\n    /**\n     * Flag that decides black/blue checks of circle\n     */\n    quiet?: boolean;\n};\n\nexport default createWrapper<RadioType, RS2CompatProps>({\n    displayName: 'Radio',\n    fallback: RS2Radio,\n    swcLoader,\n    swcProps: (props) => {\n        const {\n            className,\n            renderLabel = true,\n            label,\n            checked,\n            disabled,\n            invalid,\n            quiet = false,\n            ...rest\n        } = props;\n\n        // ReactSpectrum2        | SpectrumWebComponent\n        // ---------------------------------------------\n        // labelBelow            | label-below\n        // emphasized            | !quiet\n        // label                 | label is directly passed as innerHTML text\n        // renderlabel:          | no such flag to conditionally render label\n        // flag based on which   |\n        // label is rendered     |\n        //\n\n        // checked, disabled, invalid, emphasized, readOnly are props in RS2\n        // but when passed directly as attributes to SWC, they don't work as expected.\n        // So these attributes are only passed if they are true;\n\n        // label must be passed a prop and not as children to the wrapper.\n\n        return {\n            ...rest,\n            ...filterBooleanProps({\n                checked,\n                disabled,\n                invalid,\n                emphasized: !quiet,\n            }),\n            children: renderLabel ? label : '',\n            class: className,\n        };\n    },\n    tagName: 'sp-radio',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// https://opensource.adobe.com/spectrum-web-components/components/radio/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/RadioGroup\nimport type { RadioGroup as RadioGroupType } from '@ccx-public/spectrum-web-component-fallbacks/dist/radio';\nimport React, { useEffect, useRef } from 'react';\nimport type { ReactProps } from './utils';\nimport { filterBooleanProps, useComponent } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2RadioGroup: React.ComponentType<\n    ReactProps<RadioGroupType, RS2CompatProps>\n> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/RadioGroup')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-radio-group'], async () => {\n        const { RadioGroup } = await import(\n            /* webpackChunkName: \"SpRadio\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/radio'\n        );\n        return [RadioGroup];\n    });\n}\n\ntype RS2CompatProps = {\n    /**\n     * Which radio should be selected by default\n     */\n    defaultSelectedValue?: string;\n    /**\n     * Controlled: value of which radio should be selected\n     */\n    selectedValue?: string;\n\n    /**\n     * Display options in horizontal (default) or vertical alignment\n     */\n    vertical?: boolean;\n\n    /**\n     * Change event handler function\n     */\n    onChange?: (value: string) => unknown;\n};\n\nexport default createWrapper<RadioGroupType, RS2CompatProps>({\n    displayName: 'RadioGroup',\n    fallback: RS2RadioGroup,\n    swcLoader,\n    SWCWrapper: (props) => {\n        const radioGroupWrapperRef = useRef<RadioGroupType>(null);\n        const {\n            className,\n            selectedValue,\n            defaultSelectedValue,\n            vertical = false,\n            onChange,\n            ...rest\n        } = props;\n\n        useEffect(() => {\n            const current = radioGroupWrapperRef.current;\n\n            const change = (event: Event) => {\n                const target = event.target as RadioGroupType;\n                onChange?.(target.selected);\n            };\n\n            if (current && onChange) {\n                current.addEventListener('change', change);\n            }\n\n            return () => {\n                if (current && onChange) {\n                    current.removeEventListener('change', change);\n                }\n            };\n        }, [onChange]);\n\n        // ReactSpectrum2        | SpectrumWebComponent\n        // ---------------------------------------------\n        // selctedValue          | selected\n        // defaultSelectedValue  | selected\n        // vertical              | vertical\n        // !vertical             | horizontal\n\n        const RadioGroup = useComponent('sp-radio-group');\n        return (\n            <RadioGroup\n                {...rest}\n                {...filterBooleanProps({\n                    horizontal: !vertical,\n                    vertical,\n                    selected: selectedValue\n                        ? selectedValue\n                        : defaultSelectedValue,\n                })}\n                class={className}\n                ref={radioGroupWrapperRef}\n            />\n        );\n    },\n    tagName: 'sp-radio-group',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// https://opensource.adobe.com/spectrum-web-components/components/divider/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/Rule\nimport type { Divider as DividerType } from '@ccx-public/spectrum-web-component-fallbacks/dist/divider';\nimport type { ElementSize } from '@ccx-public/spectrum-web-component-fallbacks/dist/base';\nimport { SWCLoader } from './utils/SWCLoader';\nimport createWrapper from './utils/createWrapper';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Rule: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Rule')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-divider'], async () => {\n        const { Divider } = await import(\n            /* webpackChunkName: \"SpDivider\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/divider'\n        );\n        return [Divider];\n    });\n}\n\ntype RS2CompatProps = { variant?: 'small' | 'medium' | 'large' };\n\nconst SIZE_MAP: Record<string, ElementSize> = {\n    small: 's',\n    medium: 'm',\n    large: 'l',\n};\n\nexport default createWrapper<DividerType, RS2CompatProps>({\n    displayName: 'Rule',\n    fallback: RS2Rule,\n    swcLoader,\n    swcProps: (props) => {\n        const { className, variant = 'large', ...rest } = props;\n        // ReactSpectrum2           | SpectrumWebComponent\n        // ---------------------------------------------\n        // variant:small,           |  size: s,m,l\n        // medium,large(default)    |\n        // vertical not supported   | vertical supported\n\n        const size = SIZE_MAP[variant];\n        return {\n            ...rest,\n            class: className,\n            size,\n        };\n    },\n    tagName: 'sp-divider',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport type { ReactProps } from './utils';\nimport { filterBooleanProps, useComponent } from './utils';\n\nimport { MenuDivider, MenuItem, menuSwcLoader } from './Menu';\nimport { SWCLoader } from './utils/SWCLoader';\n// https://opensource.adobe.com/spectrum-web-components/components/picker/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/Select\nimport type { Picker as SelectType } from '@ccx-public/spectrum-web-component-fallbacks/dist/picker';\nimport createWrapper from './utils/createWrapper';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport React, { forwardRef, useEffect, useRef } from 'react';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Select: React.ComponentType<ReactProps<SelectType, RS2CompatProps>> =\n    process.env.INCLUDE_RS2\n        ? interopRequireDefault(require('react-spectrum/Select')).default\n        : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(\n        ['sp-picker'],\n        async () => {\n            const { Picker } = await import(\n                /* webpackChunkName: \"SpPicker\" */\n                '@ccx-public/spectrum-web-component-fallbacks/dist/picker'\n            );\n            return [Picker];\n        },\n        menuSwcLoader ? [menuSwcLoader] : undefined\n    );\n}\n\ntype OptionObject = {\n    label: string;\n    value: string;\n    description?: JSX.Element | string;\n    icon?: JSX.Element;\n    valueContent?: JSX.Element;\n    [key: string]: unknown;\n};\n\ntype RS2CompatProps = {\n    /**\n     * Default Selected Value\n     */\n    defaultValue?: string;\n    /**\n     * Selected Value\n     */\n    value?: string;\n\n    quiet?: boolean;\n    /**\n     * Flag that decides whether to display label\n     */\n    placeholder?: string;\n    invalid?: boolean;\n    /**\n     * Select Dropdown options with label and value\n     */\n    options: (OptionObject | 'divider')[];\n\n    /**\n     * Callback function to be called on change\n     */\n    onChange?: (value: string) => void;\n\n    /**\n     * Callback function to be called on close\n     */\n    onClose?: (event: Event) => void;\n\n    /**\n     * Callback function to be called on open\n     */\n    onOpen?: (event: Event) => void;\n\n    /**\n     * A function that returns a wrapper component to render a list item label.\n     * Useful in providing custom html to the rendered label.\n     */\n    renderItem?: (option: OptionObject) => React.ReactNode;\n\n    /**\n     * Flag that sets placement to bottom-end\n     */\n    alignRight?: boolean;\n\n    /**\n     * Allows the Select button to grow past the fixed 100px width. RS2 only.\n     */\n    flexible?: boolean;\n\n    /**\n     * Defines a classname for the generated menu. RS2 only.\n     */\n    menuClassName?: string;\n};\n\nexport default createWrapper<SelectType, RS2CompatProps>({\n    displayName: 'Select',\n    fallback: forwardRef(function Select(props, ref) {\n        const { children, ...rest } = props;\n        if (RS2Select) {\n            return (\n                <RS2Select {...rest} ref={ref}>\n                    {React.Children.map(children, (child) =>\n                        React.isValidElement(child)\n                            ? React.cloneElement(child, {\n                                  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                                  // @ts-ignore\n                                  forceFallback: true,\n                              })\n                            : child\n                    )}\n                </RS2Select>\n            );\n        }\n        return null;\n    }),\n    swcLoader,\n    SWCWrapper: function SpSelectPreview(props) {\n        const selectWrapperRef = useRef<SelectType>(null);\n        const {\n            defaultValue,\n            className,\n            value,\n            quiet,\n            disabled,\n            placeholder,\n            placement,\n            invalid,\n            options,\n            alignRight,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            flexible,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            menuClassName,\n            onChange,\n            onClose,\n            onOpen,\n            renderItem,\n            ...rest\n        } = props;\n\n        useEffect(() => {\n            const current = selectWrapperRef.current;\n\n            const change = (event: Event) => {\n                const target = event.target as SelectType;\n                if (onChange) {\n                    onChange(target.value);\n                }\n            };\n\n            if (current && onChange) {\n                current.addEventListener('change', change);\n            }\n\n            return () => {\n                if (current && onChange) {\n                    current.removeEventListener('change', change);\n                }\n            };\n        }, [onChange]);\n\n        useEffect(() => {\n            const current = selectWrapperRef.current;\n\n            const handleClose = (event: Event) => {\n                if (onClose) {\n                    onClose(event);\n                }\n            };\n\n            if (current && onClose) {\n                current.addEventListener('sp-closed', handleClose);\n            }\n\n            return () => {\n                if (current && onClose) {\n                    current.removeEventListener('sp-closed', handleClose);\n                }\n            };\n        }, [onClose]);\n\n        useEffect(() => {\n            const current = selectWrapperRef.current;\n\n            const handleOpen = (event: Event) => {\n                if (onOpen) {\n                    onOpen(event);\n                }\n            };\n\n            if (current && onOpen) {\n                current.addEventListener('sp-opened', handleOpen);\n            }\n\n            return () => {\n                if (current && onOpen) {\n                    current.removeEventListener('sp-opened', handleOpen);\n                }\n            };\n        }, [onOpen]);\n\n        // ReactSpectrum2        | SpectrumWebComponent\n        // ---------------------------------------------\n        // placeholder           | label\n        // options               | menu item use the options\n        // defaultValue |value   | value\n        // alignRight            | placement='bottom-end'\n        // menuClassName         | n/a\n        // flexible              | n/a (always flexible)\n\n        const SWCSelectProps = {\n            label: placeholder,\n            value: defaultValue || value,\n            placement: alignRight ? 'bottom-end' : placement,\n            ...rest,\n        };\n        const booleanProps = filterBooleanProps({\n            invalid,\n            disabled,\n            quiet,\n        });\n        const selectChildren: React.ReactNode =\n            options &&\n            options.map((option: OptionObject | 'divider', index) => {\n                if (option === 'divider') {\n                    return <MenuDivider key={`divider-${index}`} />;\n                }\n                return (\n                    <MenuItem\n                        description={option.description}\n                        icon={option.icon}\n                        key={option.value}\n                        value={option.value}\n                        valueContent={option.valueContent}\n                    >\n                        {renderItem ? renderItem(option) : option.label}\n                    </MenuItem>\n                );\n            });\n\n        const Picker = useComponent('sp-picker');\n        return (\n            <Picker\n                ref={selectWrapperRef}\n                class={className}\n                {...SWCSelectProps}\n                {...booleanProps}\n            >\n                {selectChildren}\n            </Picker>\n        );\n    },\n    tagName: 'sp-picker',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// https://opensource.adobe.com/spectrum-web-components/components/switch/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/switch\nimport React, { useEffect, useRef } from 'react';\nimport type { Switch as SwitchType } from '@ccx-public/spectrum-web-component-fallbacks/dist/switch';\nimport { filterBooleanProps, useComponent } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Switch: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Switch')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-switch'], async () => {\n        const { Switch } = await import(\n            /* webpackChunkName: \"SpSwitch\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/switch'\n        );\n        return [Switch];\n    });\n}\n\ntype RS2CompatProps = {\n    /**\n     * The label to display with the Switch\n     */\n    label?: string;\n\n    /**\n     * Flag that decides whether to display label\n     */\n    renderLabel?: boolean;\n    /**\n     * Flag that decides black/blue checks of Switch\n     */\n    quiet?: boolean;\n    onChange?: (value: boolean, event: Event) => unknown;\n    /**\n     * SWC doesn't support fully controlling the checked state.\n     * Adding defaultChecked for RS2 compatability but checked and defaultChecked now behave the same.\n     */\n    defaultChecked?: boolean;\n};\n\nexport default createWrapper<SwitchType, RS2CompatProps>({\n    displayName: 'Switch',\n    fallback: RS2Switch,\n    swcLoader,\n    SWCWrapper: (props) => {\n        const switchWrapperRef = useRef<SwitchType>(null);\n        const {\n            renderLabel = true,\n            label,\n            className,\n            checked,\n            defaultChecked,\n            disabled,\n            children,\n            quiet,\n            onChange,\n            ...rest\n        } = props;\n\n        useEffect(() => {\n            const current = switchWrapperRef.current;\n\n            const change = (event: Event) => {\n                const target = event.target as SwitchType;\n                onChange?.(target.checked, event);\n            };\n\n            if (current && onChange) {\n                current.addEventListener('change', change);\n            }\n\n            return () => {\n                if (current && onChange) {\n                    current.removeEventListener('change', change);\n                }\n            };\n        }, [onChange]);\n\n        // Differences:\n        // ReactSpectrum           | SpectrumWebComponent\n        // ---------------------------------------------\n        // label                   | label is directly passed as innerHTML text\n\n        const Switch = useComponent('sp-switch');\n        return (\n            <Switch\n                {...rest}\n                {...filterBooleanProps({\n                    checked: checked ?? defaultChecked,\n                    disabled,\n                    emphasized: !quiet,\n                })}\n                class={className}\n                ref={switchWrapperRef}\n            >\n                {renderLabel ? label : ''}\n                {children}\n            </Switch>\n        );\n    },\n    tagName: 'sp-switch',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// SWC Props Link :: https://opensource.adobe.com/spectrum-web-components/components/textfield/api/\n// RS2 Props Link :: https://react-spectrum.corp.adobe.com/storybook/?path=/story/textfield\n\nimport React, { forwardRef } from 'react';\nimport type { RS2TextfieldCompatProps } from './Textfield';\nimport { SpTextfield, swcLoader } from './Textfield';\nimport type { Textfield as TextfieldType } from '@ccx-public/spectrum-web-component-fallbacks/dist/textfield';\nimport createWrapper from './utils/createWrapper';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Textarea: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Textarea')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nexport default createWrapper<TextfieldType, RS2TextfieldCompatProps>({\n    displayName: 'Textfield',\n    fallback: RS2Textarea,\n    swcLoader,\n    SWCWrapper: forwardRef(function SpTextarea(props, ref) {\n        return <SpTextfield {...props} ref={ref} multiLine />;\n    }),\n    tagName: 'sp-textfield',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// SWC Props Link :: https://opensource.adobe.com/spectrum-web-components/components/textfield/api/\n// RS2 Props Link :: https://react-spectrum.corp.adobe.com/storybook/?path=/story/textfield\nimport React, { forwardRef, useEffect, useRef } from 'react';\nimport type { Textfield as TextfieldType } from '@ccx-public/spectrum-web-component-fallbacks/dist/textfield';\nimport createWrapper from './utils/createWrapper';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport { SWCLoader } from './utils/SWCLoader';\nimport type { ReactProps, SpectrumElementProps } from './utils';\nimport { filterBooleanProps, useComponent } from './utils';\nimport mergeRefs from './utils/mergeRefs';\n\nexport type RS2TextfieldCompatProps = {\n    // RS2: autoFocus, SWC: autofocus\n    autoFocus?: boolean;\n    // Whether to disable the text field\n    disabled?: boolean;\n    // RS2-UXP-only prop: Whether the input gets converted into a span to handle z-index issues in UXP\n    disableOnOverlay?: boolean;\n    // RS2: DEPRECATED: use validationState instead, SWC: Whether to show the warning icon and red border.\n    invalid?: boolean;\n    // RS2: maxLength, SWC: maxlength The maximum number of characters that can be entered\n    maxLength?: number;\n    // RS2: multiLine, SWC: multiline: Whether to render a text field that accepts multiple lines of text\n    multiLine?: boolean;\n    // Function called when the text field value is changed\n    onChange?: (value: string, event?: Event) => void;\n    // Function called when focus is taken away from the text field\n    onBlur?: React.FocusEventHandler;\n    // Function called when focus is put on the text field\n    onFocus?: React.FocusEventHandler;\n    // Function called when a key is pressed while the input is focused\n    onKeyDown?: React.KeyboardEventHandler;\n    // Function called when a key is released while the input is focused\n    onKeyUp?: React.KeyboardEventHandler;\n    // Function called when a paste event has been fired on the input\n    onPaste?: React.ClipboardEventHandler;\n    // Whether the text field should render using a quiet variant\n    quiet?: boolean;\n    // RS2: readOnly, SWC: readonly: Whether the text field can only be read\n    readOnly?: boolean;\n    // Whether the text field requires user input (shows warning if empty)\n    required?: boolean;\n    // RS2: spellCheck, SWC: spellcheck: Whether to enable spell checking\n    spellCheck?: string;\n    // RS2-only, SWC will slot content into valid or invalid boolean props based on it\n    // It show either checkmark or warning icons\n    validationState?: 'valid' | 'invalid';\n};\n\nlet swcLoader: SWCLoader | undefined;\n\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-textfield'], async () => {\n        const { Textfield } = await import(\n            /* webpackChunkName: \"SpTextfield\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/textfield'\n        );\n        return [Textfield];\n    });\n}\n\ntype TextfieldProps = ReactProps<TextfieldType, RS2TextfieldCompatProps>;\n\nexport { swcLoader };\n\nexport function convertTextfieldPropsToSWC(\n    props: TextfieldProps\n): SpectrumElementProps<TextfieldType> {\n    const {\n        autoFocus,\n        className,\n        disabled,\n        invalid,\n        maxLength,\n        multiLine,\n        quiet,\n        readOnly,\n        required,\n        spellCheck,\n        /* eslint-disable @typescript-eslint/no-unused-vars */\n        // RS2-only props\n        disableOnOverlay,\n        validationState,\n        // Non-relevant props\n        onChange,\n        /* eslint-enable @typescript-eslint/no-unused-vars */\n        ...rest\n    } = props;\n\n    // Mapping for RS2 and SWC components which differ in name i.e readonly <-> readOnly\n    // ReactSpectrum2           | SpectrumWebComponent\n    // ---------------------------------------------\n    // autoFocus                | autofocus\n    // maxLength                | maxlength\n    // multiLine                | multiline\n    // readOnly                 | readonly\n    // spellCheck               | spellcheck\n    // validationState (string) | invalid (boolean)\n\n    return {\n        ...rest,\n        ...filterBooleanProps({\n            autofocus: autoFocus,\n            disabled,\n            invalid: validationState === 'invalid' ? true : invalid,\n            multiline: multiLine,\n            quiet,\n            readonly: readOnly,\n            required,\n            valid: validationState === 'valid',\n        }),\n        class: className,\n        maxlength: maxLength,\n        spellcheck: spellCheck === 'false' ? false : true,\n    };\n}\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Textfield: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Textfield')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nexport const SpTextfield = forwardRef(function SpTextfield(\n    props: TextfieldProps,\n    ref\n) {\n    const textfieldRef = useRef<TextfieldType>(null);\n    const { onChange } = props;\n\n    useEffect(() => {\n        const { current } = textfieldRef;\n\n        const handleInput = (event: Event) => {\n            const target = event.target as HTMLInputElement;\n\n            onChange?.(target.value, event);\n        };\n\n        if (current && onChange) {\n            current.addEventListener('input', handleInput);\n        }\n\n        return () => {\n            if (current && onChange) {\n                current.removeEventListener('input', handleInput);\n            }\n        };\n    }, [onChange]);\n\n    const Textfield = useComponent('sp-textfield');\n    return (\n        <Textfield\n            ref={mergeRefs([ref, textfieldRef])}\n            {...convertTextfieldPropsToSWC(props)}\n        />\n    );\n});\n\nexport default createWrapper<TextfieldType, RS2TextfieldCompatProps>({\n    displayName: 'Textfield',\n    fallback: RS2Textfield,\n    swcLoader,\n    SWCWrapper: forwardRef(function SpTextarea(props, ref) {\n        return <SpTextfield {...props} ref={ref} />;\n    }),\n    tagName: 'sp-textfield',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport type { Tooltip as SpectrumTooltip } from '@ccx-public/spectrum-web-component-fallbacks/dist/tooltip';\nimport type { ReactProps } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Tooltip: React.ComponentType<\n    ReactProps<SpectrumTooltip, RS2CompatProps>\n> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Tooltip')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-tooltip'], async () => {\n        const { Tooltip } = await import(\n            /* webpackChunkName: \"SpTooltip\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/tooltip'\n        );\n        return [Tooltip];\n    });\n}\n\ntype RS2CompatProps = {\n    testId?: string;\n    children: React.ReactNode;\n};\n\nexport default createWrapper<SpectrumTooltip, RS2CompatProps>({\n    displayName: 'Tooltip',\n    fallback: RS2Tooltip,\n    swcLoader,\n    swcProps: (props) => {\n        const { className, ...rest } = props;\n        return { ...rest, class: className };\n    },\n    tagName: 'sp-tooltip',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2022 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport type { ElementSize } from '@ccx-public/spectrum-web-component-fallbacks/dist/base';\nimport type { ProgressCircle } from '@ccx-public/spectrum-web-component-fallbacks/dist/progress-circle';\nimport { SWCLoader } from './utils/SWCLoader';\nimport createWrapper from './utils/createWrapper';\nimport { filterBooleanProps } from './utils';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Wait: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Wait')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-progress-circle'], async () => {\n        const { ProgressCircle } = await import(\n            /* webpackChunkName: \"SpProgressCircle\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/progress-circle'\n        );\n        return [ProgressCircle];\n    });\n}\n\ntype RS2Size = 'S' | 'M' | 'L';\ntype RS2CompatProps = {\n    /** progress of the progress circle */\n    value?: number;\n    variant?: 'overBackground';\n    size?: RS2Size;\n};\n\nconst SIZE_CONVERSIONS: Record<RS2Size, ElementSize> = {\n    S: 's',\n    M: 'm',\n    L: 'l',\n};\n\nexport default createWrapper<ProgressCircle, RS2CompatProps>({\n    displayName: 'Wait',\n    fallback: RS2Wait,\n    swcLoader,\n    swcProps: (props) => {\n        const {\n            className,\n            variant,\n            value,\n            indeterminate,\n            size = 'M',\n            ...rest\n        } = props;\n\n        // ReactSpectrum2           | SpectrumWebComponent\n        // ---------------------------------------------\n        // value                    | progress\n        // variant:overBackground   | staticColor\n\n        return {\n            ...rest,\n            ...filterBooleanProps({\n                indeterminate: typeof value === 'undefined' || indeterminate,\n            }),\n            class: className,\n            progress: value,\n            size: SIZE_CONVERSIONS[size],\n            'static-color':\n                variant && variant === 'overBackground' ? 'white' : undefined,\n        };\n    },\n    tagName: 'sp-progress-circle',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport type {\n    ProviderConfig,\n    ProviderPreloadProps,\n} from './utils/ThemeContext';\nimport { getProviderConfig } from './utils/ThemeContext';\n\ntype Loader = (config: ProviderConfig) => Promise<unknown>;\n\nconst _loaders: Loader[] = [];\n\nexport function _register(loader: Loader) {\n    _loaders.push(loader);\n}\n\nexport default function preload(props: ProviderPreloadProps = {}) {\n    const config = getProviderConfig(props);\n    const loaders = [..._loaders.map((loader) => loader(config))];\n    return Promise.all(loaders);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport type { ComponentProps } from 'react';\nimport type {\n    Color,\n    Scale,\n    SystemVariant,\n} from '@ccx-public/spectrum-web-component-fallbacks/dist/theme';\nimport type Provider from '../Provider';\n\nexport type ProviderPreloadProps = Pick<\n    ComponentProps<typeof Provider>,\n    'scale' | 'spectrumTheme' | 'theme' | 'typekitId'\n>;\n\nexport type ProviderConfig = {\n    scale: Scale;\n    spectrumTheme: SystemVariant;\n    theme: Color;\n    typekitId: string;\n};\n\nexport const getProviderConfig = ({\n    scale,\n    spectrumTheme,\n    theme,\n    typekitId,\n}: ProviderPreloadProps = {}): ProviderConfig => ({\n    scale: scale || 'medium',\n    spectrumTheme: spectrumTheme || 'spectrum',\n    theme: theme || 'light',\n    typekitId: typekitId || 'ruf7eed',\n});\n\nexport const ThemeContext = React.createContext<ProviderConfig>(\n    getProviderConfig()\n);\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport React, { forwardRef } from 'react';\nimport type { ReactProps, SpectrumElementProps } from '.';\nimport { loadSwcIfNeeded, useSWCLoader } from '.';\nimport type { SWCLoader } from './SWCLoader';\nimport { _register } from '../preload';\nimport type { ProviderConfig } from './ThemeContext';\n\ninterface BaseOptions<SWCProps, RS2CompatProps> {\n    displayName: string;\n    fallback:\n        | React.ComponentType<\n              Omit<\n                  ReactProps<SWCProps, RS2CompatProps>,\n                  'fallback' | 'forceFallback'\n              >\n          >\n        | undefined;\n    swcLoader: SWCLoader | undefined;\n    tagName: string;\n    loadSwc?: () => Promise<void>;\n}\n\ninterface SWCPropsOptions<SWCProps, RS2CompatProps>\n    extends BaseOptions<SWCProps, RS2CompatProps> {\n    swcProps: (\n        props: ReactProps<SWCProps, RS2CompatProps>\n    ) => SpectrumElementProps<SWCProps>;\n    SWCWrapper?: never;\n}\n\ninterface SWCWrapperOptions<SWCProps, RS2CompatProps>\n    extends BaseOptions<SWCProps, RS2CompatProps> {\n    swcProps?: never;\n    SWCWrapper: React.ComponentType<ReactProps<SWCProps, RS2CompatProps>>;\n}\n\ntype Options<SWCProps, RS2CompatProps> =\n    | SWCPropsOptions<SWCProps, RS2CompatProps>\n    | SWCWrapperOptions<SWCProps, RS2CompatProps>;\n\nexport default function createWrapper<SWCProps, RS2CompatProps = object>(\n    options: Options<SWCProps, RS2CompatProps>\n) {\n    // Register for preload\n    const loadSwc = (providerConfig: ProviderConfig) =>\n        loadSwcIfNeeded(options.tagName, providerConfig, options.swcLoader);\n\n    _register(options.loadSwc || loadSwc);\n\n    const Component: React.ForwardRefRenderFunction<\n        unknown,\n        ReactProps<SWCProps, RS2CompatProps>\n    > = (props, ref) => {\n        const { needsFallback, tagName } = useSWCLoader(\n            options.tagName,\n            options.swcLoader\n        );\n\n        const { fallback, forceFallback, ...rest } = props;\n\n        if (needsFallback || forceFallback) {\n            const { fallback: FallbackComponent } = options;\n\n            if (fallback) {\n                return <>{fallback}</>;\n            }\n\n            if (FallbackComponent) {\n                return <FallbackComponent {...rest} ref={ref} />;\n            }\n        }\n\n        if (options.SWCWrapper) {\n            return <options.SWCWrapper {...props} ref={ref} />;\n        }\n\n        const compatibilityProps = { ...options.swcProps(props), ref };\n        const SpComponent = tagName;\n\n        return (\n            <SpComponent {...(compatibilityProps as JSX.IntrinsicAttributes)} />\n        );\n    };\n    Component.displayName = options.displayName;\n    return forwardRef(Component);\n}\n","declare global {\n    interface Window {\n        __SPECTRUM_WRAPPER_STORYBOOK_FORCE_RS2__: boolean;\n    }\n}\n\nfunction useForceReactSpectrum() {\n    return (\n        window.__disable_swc__ ||\n        (window.__SPECTRUM_WRAPPER_STORYBOOK_FORCE_RS2__ &&\n            typeof process !== 'undefined' &&\n            process.env.STORYBOOK)\n    );\n}\n\nexport default useForceReactSpectrum;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2022 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport type { ReactNode } from 'react';\nimport { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport semverSatisfies from 'semver/functions/satisfies';\nimport { fallbackTagName } from '@ccx-public/spectrum-web-component-fallbacks/fallbackTagName';\nimport type { SWCLoader } from './SWCLoader';\nimport type { ProviderConfig } from './ThemeContext';\nimport { ThemeContext } from './ThemeContext';\nimport useForceReactSpectrum from './useForceReactSpectrum';\n\nconst CAN_USE_SWC = !process.env.EXCLUDE_SWC && !window.__disable_swc__;\n\nlet isUxpEnv = false;\ntry {\n    isUxpEnv = !!window.require('uxp');\n} catch (e) {} // eslint-disable-line no-empty\n\nexport const isUXP = isUxpEnv;\n\n// Use this to type the props of your wrapper so that they extends the web component you're wrapping.\n// This will help with any special cases with mismatching prop signatures where a spectrum web component accepts/requires props\n// that the React Spectrum component doesn't.\n\ntype Children = { children?: ReactNode };\ntype HTMLClass = { class?: string };\ntype ReactClass = { className?: string };\ntype ReactStyles = { style?: React.CSSProperties };\ntype FallbackProps = { fallback?: ReactNode; forceFallback?: boolean };\ntype ReactRef = { ref?: React.Ref<HTMLElement> };\ntype ModalOverlayProps = { modalTrigger?: boolean; modalContent?: boolean };\n\n// Utility for fixing the types coming from spectrum-web-components so that they\n// can be used in React.\n//\n// 1. The type expected for children is `HTMLCollection` and should be `ReactNode`.\n// 2. There is a `className` prop expected for some reason. We want to ignore that.\n// 3. We do want to provide a `class` property since that is what the web component expects.\nexport type SpectrumElementProps<T> = Partial<\n    Omit<T, 'children' | 'class' | 'style'> &\n        HTMLClass &\n        Children &\n        ReactStyles &\n        ReactRef\n>;\n\n// Utility for converting spectrum web component types to React prop-types and\n// providing overrides.\n//\n// Things done here:\n// 1. Remove `class` and replace with `className`\n// 2. Fix type of `children`\n// 3. Allow passing a `fallback` prop for all components\n// 4. Override default props. We use `Omit` for this because if you use & it\n//    just makes an intersection of all properties, for example `{ a: string } & {\n//    a: number } //=> { a: string & number }`, which results in `never`. We avoid\n//    this by omitting the overridden props before using `&`.\nexport type ReactProps<T, Overrides = object> = Partial<\n    Omit<SpectrumElementProps<T>, keyof Overrides | 'class'>\n> &\n    ReactClass &\n    FallbackProps &\n    ModalOverlayProps &\n    Overrides;\n\ntype SWCConstructor = CustomElementConstructor & { VERSION?: string };\n\n// UXP does not currently support Spectrum Web Components, but it does support \"Spectrum UXP\",\n// which are supposed to share the same signature as SPW (i.e <sp-button> is used isomorphically on both).\n// This does mean that checking the custom element registry (i.e window.customElements.get())\n// won't work in UXP as a way to check that the target web component is available.\n// As a workaround, in UXP we'll have to create the target element and check the return type\n// to determine the element availability. We'll cache the result so that we\n// only need to do this once per custom-element.\nexport const customElementRegistryCache = new Map<\n    string,\n    SWCConstructor | undefined\n>();\n\nfunction getCustomElementClass(tagName: string): SWCConstructor {\n    const cached = customElementRegistryCache.get(tagName);\n    if (cached !== undefined) {\n        return cached;\n    }\n\n    let registered = window.customElements?.get(tagName) as SWCConstructor;\n    if (!registered && isUXP && CAN_USE_SWC) {\n        // UXP fallback.\n        registered = document.createElement(tagName)\n            ?.constructor as SWCConstructor;\n    }\n\n    customElementRegistryCache.set(tagName, registered);\n    return registered;\n}\n\nexport function isRegisteredCustomElement(tagName: string) {\n    const constructor = getCustomElementClass(tagName);\n    return !!constructor && constructor !== HTMLElement;\n}\n\nconst SWC_COMPATIBLE_VERSION = '^1.2.0';\n\nexport function doesSWCNeedLoaded(tagName: string) {\n    if (!CAN_USE_SWC) {\n        return false;\n    }\n\n    if (!isRegisteredCustomElement(tagName)) {\n        return true;\n    }\n\n    const element = getCustomElementClass(tagName);\n\n    if (!element || !element.VERSION) {\n        return true;\n    }\n\n    return !semverSatisfies(element.VERSION, SWC_COMPATIBLE_VERSION);\n}\n\nexport const loadSwcIfNeeded = (\n    tagName: string,\n    providerConfig: ProviderConfig,\n    loader?: SWCLoader\n) => {\n    if (doesSWCNeedLoaded(tagName)) {\n        return loader?.load(providerConfig) || Promise.resolve();\n    } else {\n        return Promise.resolve();\n    }\n};\n\nfunction useIsUsingImportedSWC(tagName: string): boolean {\n    return useMemo(() => doesSWCNeedLoaded(tagName), [tagName]);\n}\n\nexport function useComponent<T extends string>(tagName: T): T {\n    return useIsUsingImportedSWC(tagName)\n        ? (fallbackTagName(tagName) as T)\n        : tagName;\n}\n\nexport function useSWCLoader<T extends string>(\n    tagName: T,\n    loader?: SWCLoader\n): { needsFallback: boolean; tagName: T } {\n    const shouldLoadSWC = useIsUsingImportedSWC(tagName);\n    const fallbackLoaded = useMemo(\n        () => isRegisteredCustomElement(fallbackTagName(tagName)),\n        [tagName]\n    );\n\n    const [, isLoaded] = useState(false);\n    const unmountedRef = useRef(true);\n    const theme = useContext(ThemeContext);\n\n    useEffect(() => {\n        unmountedRef.current = false;\n\n        if (shouldLoadSWC && !fallbackLoaded) {\n            // We need to load the SWC element. Note that it's ok if another component calls\n            // loader.load at the same time - it'll only import and register the component once.\n            loader?.load(theme).then(\n                () => {\n                    if (!unmountedRef.current) {\n                        isLoaded(true);\n                    }\n                },\n                (e) => console.error(`Error loading fallback for ${tagName}`, e)\n            );\n            return () => {\n                unmountedRef.current = true;\n            };\n        }\n    }, [theme, tagName, loader, shouldLoadSWC, fallbackLoaded]);\n\n    const forceReactSpectrum = useForceReactSpectrum();\n    const registeredTagName = useComponent(tagName);\n\n    return {\n        needsFallback:\n            !isRegisteredCustomElement(registeredTagName) ||\n            !!forceReactSpectrum,\n        tagName: registeredTagName,\n    };\n}\n\nexport function filterBooleanProps<T extends object>(obj: T) {\n    const result: { [K in keyof T]?: T[K] } = {};\n    (Object.keys(obj) as Array<keyof T>).forEach((name) => {\n        if (obj[name]) {\n            result[name] = obj[name];\n        }\n    });\n    return result;\n}\n\nexport function chain(...callbacks: unknown[]) {\n    return (...args: unknown[]) => {\n        for (const callback of callbacks) {\n            if (typeof callback === 'function') {\n                callback(...args);\n            }\n        }\n    };\n}\n\nexport function configureTypekit(typeKitId: string) {\n    return new Promise((resolve) => {\n        if (!window.Typekit) {\n            const config = {\n                kitId: typeKitId,\n                scriptTimeout: 3000,\n            };\n            const t = setTimeout(() => {\n                resolve(null);\n            }, config.scriptTimeout);\n\n            const tk = document.createElement('script');\n            let d = false;\n\n            tk.src = `https://use.typekit.net/${config.kitId}.js`;\n            tk.type = 'text/javascript';\n            tk.async = true;\n            tk.onload = function onload() {\n                if (d) {\n                    resolve(null);\n                    return;\n                }\n                d = true;\n                clearTimeout(t);\n                try {\n                    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n                    window.Typekit.load(config);\n                } catch (b) {\n                    /* empty */\n                }\n                resolve(null);\n            };\n\n            const s = document.getElementsByTagName('script')[0];\n            s?.parentNode?.insertBefore(tk, s);\n        } else {\n            resolve(null);\n        }\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/**\n * @torq-native/react-spectrum exports CommonJS modules:\n * https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/Provider/index.js#L20\n * @react/react-spectrum exports ES6 modules:\n * https://github.com/adobe/react-spectrum/blob/main/packages/%40react-spectrum/provider/src/Provider.tsx#L123\n * Ensure that we can import both types of modules isomorphically by\n * wrapping required CommonJS or ES6 modules and making them compatible with the ES6 module import syntax.\n * This is usually achieved by using Babel's `@babel/plugin-transform-modules-commonjs` plugin:\n * https://babeljs.io/docs/babel-plugin-transform-modules-commonjs#importinterop\n * but we don't want to add Babel as a dependency to this project.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default function interopRequireDefault(obj: any) {\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n    return obj?.__esModule ? obj : { default: obj };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\nimport type { MutableRefObject, RefCallback } from 'react';\n\nexport default function mergeRefs<T>(\n    refs: Array<MutableRefObject<T> | RefCallback<T> | null>\n): RefCallback<T> {\n    return function (value: T) {\n        refs.forEach((ref) => {\n            if (!ref) {\n                return;\n            }\n\n            if (typeof ref === 'function') {\n                ref(value);\n                return;\n            }\n\n            ref.current = value;\n        });\n    };\n}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest.  the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node.  This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n  constructor (options) {\n    if (typeof options === 'number')\n      options = { max: options }\n\n    if (!options)\n      options = {}\n\n    if (options.max && (typeof options.max !== 'number' || options.max < 0))\n      throw new TypeError('max must be a non-negative number')\n    // Kind of weird to have a default max of Infinity, but oh well.\n    const max = this[MAX] = options.max || Infinity\n\n    const lc = options.length || naiveLength\n    this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n    this[ALLOW_STALE] = options.stale || false\n    if (options.maxAge && typeof options.maxAge !== 'number')\n      throw new TypeError('maxAge must be a number')\n    this[MAX_AGE] = options.maxAge || 0\n    this[DISPOSE] = options.dispose\n    this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n    this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n    this.reset()\n  }\n\n  // resize the cache when the max changes.\n  set max (mL) {\n    if (typeof mL !== 'number' || mL < 0)\n      throw new TypeError('max must be a non-negative number')\n\n    this[MAX] = mL || Infinity\n    trim(this)\n  }\n  get max () {\n    return this[MAX]\n  }\n\n  set allowStale (allowStale) {\n    this[ALLOW_STALE] = !!allowStale\n  }\n  get allowStale () {\n    return this[ALLOW_STALE]\n  }\n\n  set maxAge (mA) {\n    if (typeof mA !== 'number')\n      throw new TypeError('maxAge must be a non-negative number')\n\n    this[MAX_AGE] = mA\n    trim(this)\n  }\n  get maxAge () {\n    return this[MAX_AGE]\n  }\n\n  // resize the cache when the lengthCalculator changes.\n  set lengthCalculator (lC) {\n    if (typeof lC !== 'function')\n      lC = naiveLength\n\n    if (lC !== this[LENGTH_CALCULATOR]) {\n      this[LENGTH_CALCULATOR] = lC\n      this[LENGTH] = 0\n      this[LRU_LIST].forEach(hit => {\n        hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n        this[LENGTH] += hit.length\n      })\n    }\n    trim(this)\n  }\n  get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n  get length () { return this[LENGTH] }\n  get itemCount () { return this[LRU_LIST].length }\n\n  rforEach (fn, thisp) {\n    thisp = thisp || this\n    for (let walker = this[LRU_LIST].tail; walker !== null;) {\n      const prev = walker.prev\n      forEachStep(this, fn, walker, thisp)\n      walker = prev\n    }\n  }\n\n  forEach (fn, thisp) {\n    thisp = thisp || this\n    for (let walker = this[LRU_LIST].head; walker !== null;) {\n      const next = walker.next\n      forEachStep(this, fn, walker, thisp)\n      walker = next\n    }\n  }\n\n  keys () {\n    return this[LRU_LIST].toArray().map(k => k.key)\n  }\n\n  values () {\n    return this[LRU_LIST].toArray().map(k => k.value)\n  }\n\n  reset () {\n    if (this[DISPOSE] &&\n        this[LRU_LIST] &&\n        this[LRU_LIST].length) {\n      this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n    }\n\n    this[CACHE] = new Map() // hash of items by key\n    this[LRU_LIST] = new Yallist() // list of items in order of use recency\n    this[LENGTH] = 0 // length of items in the list\n  }\n\n  dump () {\n    return this[LRU_LIST].map(hit =>\n      isStale(this, hit) ? false : {\n        k: hit.key,\n        v: hit.value,\n        e: hit.now + (hit.maxAge || 0)\n      }).toArray().filter(h => h)\n  }\n\n  dumpLru () {\n    return this[LRU_LIST]\n  }\n\n  set (key, value, maxAge) {\n    maxAge = maxAge || this[MAX_AGE]\n\n    if (maxAge && typeof maxAge !== 'number')\n      throw new TypeError('maxAge must be a number')\n\n    const now = maxAge ? Date.now() : 0\n    const len = this[LENGTH_CALCULATOR](value, key)\n\n    if (this[CACHE].has(key)) {\n      if (len > this[MAX]) {\n        del(this, this[CACHE].get(key))\n        return false\n      }\n\n      const node = this[CACHE].get(key)\n      const item = node.value\n\n      // dispose of the old one before overwriting\n      // split out into 2 ifs for better coverage tracking\n      if (this[DISPOSE]) {\n        if (!this[NO_DISPOSE_ON_SET])\n          this[DISPOSE](key, item.value)\n      }\n\n      item.now = now\n      item.maxAge = maxAge\n      item.value = value\n      this[LENGTH] += len - item.length\n      item.length = len\n      this.get(key)\n      trim(this)\n      return true\n    }\n\n    const hit = new Entry(key, value, len, now, maxAge)\n\n    // oversized objects fall out of cache automatically.\n    if (hit.length > this[MAX]) {\n      if (this[DISPOSE])\n        this[DISPOSE](key, value)\n\n      return false\n    }\n\n    this[LENGTH] += hit.length\n    this[LRU_LIST].unshift(hit)\n    this[CACHE].set(key, this[LRU_LIST].head)\n    trim(this)\n    return true\n  }\n\n  has (key) {\n    if (!this[CACHE].has(key)) return false\n    const hit = this[CACHE].get(key).value\n    return !isStale(this, hit)\n  }\n\n  get (key) {\n    return get(this, key, true)\n  }\n\n  peek (key) {\n    return get(this, key, false)\n  }\n\n  pop () {\n    const node = this[LRU_LIST].tail\n    if (!node)\n      return null\n\n    del(this, node)\n    return node.value\n  }\n\n  del (key) {\n    del(this, this[CACHE].get(key))\n  }\n\n  load (arr) {\n    // reset the cache\n    this.reset()\n\n    const now = Date.now()\n    // A previous serialized cache has the most recent items first\n    for (let l = arr.length - 1; l >= 0; l--) {\n      const hit = arr[l]\n      const expiresAt = hit.e || 0\n      if (expiresAt === 0)\n        // the item was created without expiration in a non aged cache\n        this.set(hit.k, hit.v)\n      else {\n        const maxAge = expiresAt - now\n        // dont add already expired items\n        if (maxAge > 0) {\n          this.set(hit.k, hit.v, maxAge)\n        }\n      }\n    }\n  }\n\n  prune () {\n    this[CACHE].forEach((value, key) => get(this, key, false))\n  }\n}\n\nconst get = (self, key, doUse) => {\n  const node = self[CACHE].get(key)\n  if (node) {\n    const hit = node.value\n    if (isStale(self, hit)) {\n      del(self, node)\n      if (!self[ALLOW_STALE])\n        return undefined\n    } else {\n      if (doUse) {\n        if (self[UPDATE_AGE_ON_GET])\n          node.value.now = Date.now()\n        self[LRU_LIST].unshiftNode(node)\n      }\n    }\n    return hit.value\n  }\n}\n\nconst isStale = (self, hit) => {\n  if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n    return false\n\n  const diff = Date.now() - hit.now\n  return hit.maxAge ? diff > hit.maxAge\n    : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n  if (self[LENGTH] > self[MAX]) {\n    for (let walker = self[LRU_LIST].tail;\n      self[LENGTH] > self[MAX] && walker !== null;) {\n      // We know that we're about to delete this one, and also\n      // what the next least recently used key will be, so just\n      // go ahead and set it now.\n      const prev = walker.prev\n      del(self, walker)\n      walker = prev\n    }\n  }\n}\n\nconst del = (self, node) => {\n  if (node) {\n    const hit = node.value\n    if (self[DISPOSE])\n      self[DISPOSE](hit.key, hit.value)\n\n    self[LENGTH] -= hit.length\n    self[CACHE].delete(hit.key)\n    self[LRU_LIST].removeNode(node)\n  }\n}\n\nclass Entry {\n  constructor (key, value, length, now, maxAge) {\n    this.key = key\n    this.value = value\n    this.length = length\n    this.now = now\n    this.maxAge = maxAge || 0\n  }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n  let hit = node.value\n  if (isStale(self, hit)) {\n    del(self, node)\n    if (!self[ALLOW_STALE])\n      hit = undefined\n  }\n  if (hit)\n    fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n  static get ANY () {\n    return ANY\n  }\n\n  constructor (comp, options) {\n    options = parseOptions(options)\n\n    if (comp instanceof Comparator) {\n      if (comp.loose === !!options.loose) {\n        return comp\n      } else {\n        comp = comp.value\n      }\n    }\n\n    comp = comp.trim().split(/\\s+/).join(' ')\n    debug('comparator', comp, options)\n    this.options = options\n    this.loose = !!options.loose\n    this.parse(comp)\n\n    if (this.semver === ANY) {\n      this.value = ''\n    } else {\n      this.value = this.operator + this.semver.version\n    }\n\n    debug('comp', this)\n  }\n\n  parse (comp) {\n    const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n    const m = comp.match(r)\n\n    if (!m) {\n      throw new TypeError(`Invalid comparator: ${comp}`)\n    }\n\n    this.operator = m[1] !== undefined ? m[1] : ''\n    if (this.operator === '=') {\n      this.operator = ''\n    }\n\n    // if it literally is just '>' or '' then allow anything.\n    if (!m[2]) {\n      this.semver = ANY\n    } else {\n      this.semver = new SemVer(m[2], this.options.loose)\n    }\n  }\n\n  toString () {\n    return this.value\n  }\n\n  test (version) {\n    debug('Comparator.test', version, this.options.loose)\n\n    if (this.semver === ANY || version === ANY) {\n      return true\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    return cmp(version, this.operator, this.semver, this.options)\n  }\n\n  intersects (comp, options) {\n    if (!(comp instanceof Comparator)) {\n      throw new TypeError('a Comparator is required')\n    }\n\n    if (this.operator === '') {\n      if (this.value === '') {\n        return true\n      }\n      return new Range(comp.value, options).test(this.value)\n    } else if (comp.operator === '') {\n      if (comp.value === '') {\n        return true\n      }\n      return new Range(this.value, options).test(comp.semver)\n    }\n\n    options = parseOptions(options)\n\n    // Special cases where nothing can possibly be lower\n    if (options.includePrerelease &&\n      (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n      return false\n    }\n    if (!options.includePrerelease &&\n      (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n      return false\n    }\n\n    // Same direction increasing (> or >=)\n    if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n      return true\n    }\n    // Same direction decreasing (< or <=)\n    if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n      return true\n    }\n    // same SemVer and both sides are inclusive (<= or >=)\n    if (\n      (this.semver.version === comp.semver.version) &&\n      this.operator.includes('=') && comp.operator.includes('=')) {\n      return true\n    }\n    // opposite directions less than\n    if (cmp(this.semver, '<', comp.semver, options) &&\n      this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n      return true\n    }\n    // opposite directions greater than\n    if (cmp(this.semver, '>', comp.semver, options) &&\n      this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n      return true\n    }\n    return false\n  }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n  constructor (range, options) {\n    options = parseOptions(options)\n\n    if (range instanceof Range) {\n      if (\n        range.loose === !!options.loose &&\n        range.includePrerelease === !!options.includePrerelease\n      ) {\n        return range\n      } else {\n        return new Range(range.raw, options)\n      }\n    }\n\n    if (range instanceof Comparator) {\n      // just put it in the set and return\n      this.raw = range.value\n      this.set = [[range]]\n      this.format()\n      return this\n    }\n\n    this.options = options\n    this.loose = !!options.loose\n    this.includePrerelease = !!options.includePrerelease\n\n    // First reduce all whitespace as much as possible so we do not have to rely\n    // on potentially slow regexes like \\s*. This is then stored and used for\n    // future error messages as well.\n    this.raw = range\n      .trim()\n      .split(/\\s+/)\n      .join(' ')\n\n    // First, split on ||\n    this.set = this.raw\n      .split('||')\n      // map the range to a 2d array of comparators\n      .map(r => this.parseRange(r.trim()))\n      // throw out any comparator lists that are empty\n      // this generally means that it was not a valid range, which is allowed\n      // in loose mode, but will still throw if the WHOLE range is invalid.\n      .filter(c => c.length)\n\n    if (!this.set.length) {\n      throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n    }\n\n    // if we have any that are not the null set, throw out null sets.\n    if (this.set.length > 1) {\n      // keep the first one, in case they're all null sets\n      const first = this.set[0]\n      this.set = this.set.filter(c => !isNullSet(c[0]))\n      if (this.set.length === 0) {\n        this.set = [first]\n      } else if (this.set.length > 1) {\n        // if we have any that are *, then the range is just *\n        for (const c of this.set) {\n          if (c.length === 1 && isAny(c[0])) {\n            this.set = [c]\n            break\n          }\n        }\n      }\n    }\n\n    this.format()\n  }\n\n  format () {\n    this.range = this.set\n      .map((comps) => comps.join(' ').trim())\n      .join('||')\n      .trim()\n    return this.range\n  }\n\n  toString () {\n    return this.range\n  }\n\n  parseRange (range) {\n    // memoize range parsing for performance.\n    // this is a very hot path, and fully deterministic.\n    const memoOpts =\n      (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n      (this.options.loose && FLAG_LOOSE)\n    const memoKey = memoOpts + ':' + range\n    const cached = cache.get(memoKey)\n    if (cached) {\n      return cached\n    }\n\n    const loose = this.options.loose\n    // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n    const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n    range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n    debug('hyphen replace', range)\n\n    // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n    range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n    debug('comparator trim', range)\n\n    // `~ 1.2.3` => `~1.2.3`\n    range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n    debug('tilde trim', range)\n\n    // `^ 1.2.3` => `^1.2.3`\n    range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n    debug('caret trim', range)\n\n    // At this point, the range is completely trimmed and\n    // ready to be split into comparators.\n\n    let rangeList = range\n      .split(' ')\n      .map(comp => parseComparator(comp, this.options))\n      .join(' ')\n      .split(/\\s+/)\n      // >=0.0.0 is equivalent to *\n      .map(comp => replaceGTE0(comp, this.options))\n\n    if (loose) {\n      // in loose mode, throw out any that are not valid comparators\n      rangeList = rangeList.filter(comp => {\n        debug('loose invalid filter', comp, this.options)\n        return !!comp.match(re[t.COMPARATORLOOSE])\n      })\n    }\n    debug('range list', rangeList)\n\n    // if any comparators are the null set, then replace with JUST null set\n    // if more than one comparator, remove any * comparators\n    // also, don't include the same comparator more than once\n    const rangeMap = new Map()\n    const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n    for (const comp of comparators) {\n      if (isNullSet(comp)) {\n        return [comp]\n      }\n      rangeMap.set(comp.value, comp)\n    }\n    if (rangeMap.size > 1 && rangeMap.has('')) {\n      rangeMap.delete('')\n    }\n\n    const result = [...rangeMap.values()]\n    cache.set(memoKey, result)\n    return result\n  }\n\n  intersects (range, options) {\n    if (!(range instanceof Range)) {\n      throw new TypeError('a Range is required')\n    }\n\n    return this.set.some((thisComparators) => {\n      return (\n        isSatisfiable(thisComparators, options) &&\n        range.set.some((rangeComparators) => {\n          return (\n            isSatisfiable(rangeComparators, options) &&\n            thisComparators.every((thisComparator) => {\n              return rangeComparators.every((rangeComparator) => {\n                return thisComparator.intersects(rangeComparator, options)\n              })\n            })\n          )\n        })\n      )\n    })\n  }\n\n  // if ANY of the sets match ALL of its comparators, then pass\n  test (version) {\n    if (!version) {\n      return false\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    for (let i = 0; i < this.set.length; i++) {\n      if (testSet(this.set[i], version, this.options)) {\n        return true\n      }\n    }\n    return false\n  }\n}\n\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n  safeRe: re,\n  t,\n  comparatorTrimReplace,\n  tildeTrimReplace,\n  caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n  let result = true\n  const remainingComparators = comparators.slice()\n  let testComparator = remainingComparators.pop()\n\n  while (result && remainingComparators.length) {\n    result = remainingComparators.every((otherComparator) => {\n      return testComparator.intersects(otherComparator, options)\n    })\n\n    testComparator = remainingComparators.pop()\n  }\n\n  return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n  debug('comp', comp, options)\n  comp = replaceCarets(comp, options)\n  debug('caret', comp)\n  comp = replaceTildes(comp, options)\n  debug('tildes', comp)\n  comp = replaceXRanges(comp, options)\n  debug('xrange', comp)\n  comp = replaceStars(comp, options)\n  debug('stars', comp)\n  return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n  return comp\n    .trim()\n    .split(/\\s+/)\n    .map((c) => replaceTilde(c, options))\n    .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('tilde', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      // ~1.2 == >=1.2.0 <1.3.0-0\n      ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n    } else if (pr) {\n      debug('replaceTilde pr', pr)\n      ret = `>=${M}.${m}.${p}-${pr\n      } <${M}.${+m + 1}.0-0`\n    } else {\n      // ~1.2.3 == >=1.2.3 <1.3.0-0\n      ret = `>=${M}.${m}.${p\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('tilde return', ret)\n    return ret\n  })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n  return comp\n    .trim()\n    .split(/\\s+/)\n    .map((c) => replaceCaret(c, options))\n    .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n  debug('caret', comp, options)\n  const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n  const z = options.includePrerelease ? '-0' : ''\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('caret', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      if (M === '0') {\n        ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n      } else {\n        ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n      }\n    } else if (pr) {\n      debug('replaceCaret pr', pr)\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p}-${pr\n        } <${+M + 1}.0.0-0`\n      }\n    } else {\n      debug('no pr')\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p\n          }${z} <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p\n          }${z} <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p\n        } <${+M + 1}.0.0-0`\n      }\n    }\n\n    debug('caret return', ret)\n    return ret\n  })\n}\n\nconst replaceXRanges = (comp, options) => {\n  debug('replaceXRanges', comp, options)\n  return comp\n    .split(/\\s+/)\n    .map((c) => replaceXRange(c, options))\n    .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n  comp = comp.trim()\n  const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n    debug('xRange', comp, ret, gtlt, M, m, p, pr)\n    const xM = isX(M)\n    const xm = xM || isX(m)\n    const xp = xm || isX(p)\n    const anyX = xp\n\n    if (gtlt === '=' && anyX) {\n      gtlt = ''\n    }\n\n    // if we're including prereleases in the match, then we need\n    // to fix this to -0, the lowest possible prerelease value\n    pr = options.includePrerelease ? '-0' : ''\n\n    if (xM) {\n      if (gtlt === '>' || gtlt === '<') {\n        // nothing is allowed\n        ret = '<0.0.0-0'\n      } else {\n        // nothing is forbidden\n        ret = '*'\n      }\n    } else if (gtlt && anyX) {\n      // we know patch is an x, because we have any x at all.\n      // replace X with 0\n      if (xm) {\n        m = 0\n      }\n      p = 0\n\n      if (gtlt === '>') {\n        // >1 => >=2.0.0\n        // >1.2 => >=1.3.0\n        gtlt = '>='\n        if (xm) {\n          M = +M + 1\n          m = 0\n          p = 0\n        } else {\n          m = +m + 1\n          p = 0\n        }\n      } else if (gtlt === '<=') {\n        // <=0.7.x is actually <0.8.0, since any 0.7.x should\n        // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n        gtlt = '<'\n        if (xm) {\n          M = +M + 1\n        } else {\n          m = +m + 1\n        }\n      }\n\n      if (gtlt === '<') {\n        pr = '-0'\n      }\n\n      ret = `${gtlt + M}.${m}.${p}${pr}`\n    } else if (xm) {\n      ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n    } else if (xp) {\n      ret = `>=${M}.${m}.0${pr\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('xRange return', ret)\n\n    return ret\n  })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n  debug('replaceStars', comp, options)\n  // Looseness is ignored here.  star is always as loose as it gets!\n  return comp\n    .trim()\n    .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n  debug('replaceGTE0', comp, options)\n  return comp\n    .trim()\n    .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n  from, fM, fm, fp, fpr, fb,\n  to, tM, tm, tp, tpr, tb) => {\n  if (isX(fM)) {\n    from = ''\n  } else if (isX(fm)) {\n    from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n  } else if (isX(fp)) {\n    from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n  } else if (fpr) {\n    from = `>=${from}`\n  } else {\n    from = `>=${from}${incPr ? '-0' : ''}`\n  }\n\n  if (isX(tM)) {\n    to = ''\n  } else if (isX(tm)) {\n    to = `<${+tM + 1}.0.0-0`\n  } else if (isX(tp)) {\n    to = `<${tM}.${+tm + 1}.0-0`\n  } else if (tpr) {\n    to = `<=${tM}.${tm}.${tp}-${tpr}`\n  } else if (incPr) {\n    to = `<${tM}.${tm}.${+tp + 1}-0`\n  } else {\n    to = `<=${to}`\n  }\n\n  return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n  for (let i = 0; i < set.length; i++) {\n    if (!set[i].test(version)) {\n      return false\n    }\n  }\n\n  if (version.prerelease.length && !options.includePrerelease) {\n    // Find the set of versions that are allowed to have prereleases\n    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n    // That should allow `1.2.3-pr.2` to pass.\n    // However, `1.2.4-alpha.notready` should NOT be allowed,\n    // even though it's within the range set by the comparators.\n    for (let i = 0; i < set.length; i++) {\n      debug(set[i].semver)\n      if (set[i].semver === Comparator.ANY) {\n        continue\n      }\n\n      if (set[i].semver.prerelease.length > 0) {\n        const allowed = set[i].semver\n        if (allowed.major === version.major &&\n            allowed.minor === version.minor &&\n            allowed.patch === version.patch) {\n          return true\n        }\n      }\n    }\n\n    // Version has a -pre, but it's not one of the ones we like.\n    return false\n  }\n\n  return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n  constructor (version, options) {\n    options = parseOptions(options)\n\n    if (version instanceof SemVer) {\n      if (version.loose === !!options.loose &&\n          version.includePrerelease === !!options.includePrerelease) {\n        return version\n      } else {\n        version = version.version\n      }\n    } else if (typeof version !== 'string') {\n      throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n    }\n\n    if (version.length > MAX_LENGTH) {\n      throw new TypeError(\n        `version is longer than ${MAX_LENGTH} characters`\n      )\n    }\n\n    debug('SemVer', version, options)\n    this.options = options\n    this.loose = !!options.loose\n    // this isn't actually relevant for versions, but keep it so that we\n    // don't run into trouble passing this.options around.\n    this.includePrerelease = !!options.includePrerelease\n\n    const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n    if (!m) {\n      throw new TypeError(`Invalid Version: ${version}`)\n    }\n\n    this.raw = version\n\n    // these are actually numbers\n    this.major = +m[1]\n    this.minor = +m[2]\n    this.patch = +m[3]\n\n    if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n      throw new TypeError('Invalid major version')\n    }\n\n    if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n      throw new TypeError('Invalid minor version')\n    }\n\n    if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n      throw new TypeError('Invalid patch version')\n    }\n\n    // numberify any prerelease numeric ids\n    if (!m[4]) {\n      this.prerelease = []\n    } else {\n      this.prerelease = m[4].split('.').map((id) => {\n        if (/^[0-9]+$/.test(id)) {\n          const num = +id\n          if (num >= 0 && num < MAX_SAFE_INTEGER) {\n            return num\n          }\n        }\n        return id\n      })\n    }\n\n    this.build = m[5] ? m[5].split('.') : []\n    this.format()\n  }\n\n  format () {\n    this.version = `${this.major}.${this.minor}.${this.patch}`\n    if (this.prerelease.length) {\n      this.version += `-${this.prerelease.join('.')}`\n    }\n    return this.version\n  }\n\n  toString () {\n    return this.version\n  }\n\n  compare (other) {\n    debug('SemVer.compare', this.version, this.options, other)\n    if (!(other instanceof SemVer)) {\n      if (typeof other === 'string' && other === this.version) {\n        return 0\n      }\n      other = new SemVer(other, this.options)\n    }\n\n    if (other.version === this.version) {\n      return 0\n    }\n\n    return this.compareMain(other) || this.comparePre(other)\n  }\n\n  compareMain (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    return (\n      compareIdentifiers(this.major, other.major) ||\n      compareIdentifiers(this.minor, other.minor) ||\n      compareIdentifiers(this.patch, other.patch)\n    )\n  }\n\n  comparePre (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    // NOT having a prerelease is > having one\n    if (this.prerelease.length && !other.prerelease.length) {\n      return -1\n    } else if (!this.prerelease.length && other.prerelease.length) {\n      return 1\n    } else if (!this.prerelease.length && !other.prerelease.length) {\n      return 0\n    }\n\n    let i = 0\n    do {\n      const a = this.prerelease[i]\n      const b = other.prerelease[i]\n      debug('prerelease compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  compareBuild (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    let i = 0\n    do {\n      const a = this.build[i]\n      const b = other.build[i]\n      debug('prerelease compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  // preminor will bump the version up to the next minor release, and immediately\n  // down to pre-release. premajor and prepatch work the same way.\n  inc (release, identifier, identifierBase) {\n    switch (release) {\n      case 'premajor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor = 0\n        this.major++\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'preminor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor++\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'prepatch':\n        // If this is already a prerelease, it will bump to the next version\n        // drop any prereleases that might already exist, since they are not\n        // relevant at this point.\n        this.prerelease.length = 0\n        this.inc('patch', identifier, identifierBase)\n        this.inc('pre', identifier, identifierBase)\n        break\n      // If the input is a non-prerelease version, this acts the same as\n      // prepatch.\n      case 'prerelease':\n        if (this.prerelease.length === 0) {\n          this.inc('patch', identifier, identifierBase)\n        }\n        this.inc('pre', identifier, identifierBase)\n        break\n\n      case 'major':\n        // If this is a pre-major version, bump up to the same major version.\n        // Otherwise increment major.\n        // 1.0.0-5 bumps to 1.0.0\n        // 1.1.0 bumps to 2.0.0\n        if (\n          this.minor !== 0 ||\n          this.patch !== 0 ||\n          this.prerelease.length === 0\n        ) {\n          this.major++\n        }\n        this.minor = 0\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'minor':\n        // If this is a pre-minor version, bump up to the same minor version.\n        // Otherwise increment minor.\n        // 1.2.0-5 bumps to 1.2.0\n        // 1.2.1 bumps to 1.3.0\n        if (this.patch !== 0 || this.prerelease.length === 0) {\n          this.minor++\n        }\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'patch':\n        // If this is not a pre-release version, it will increment the patch.\n        // If it is a pre-release it will bump up to the same patch version.\n        // 1.2.0-5 patches to 1.2.0\n        // 1.2.0 patches to 1.2.1\n        if (this.prerelease.length === 0) {\n          this.patch++\n        }\n        this.prerelease = []\n        break\n      // This probably shouldn't be used publicly.\n      // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n      case 'pre': {\n        const base = Number(identifierBase) ? 1 : 0\n\n        if (!identifier && identifierBase === false) {\n          throw new Error('invalid increment argument: identifier is empty')\n        }\n\n        if (this.prerelease.length === 0) {\n          this.prerelease = [base]\n        } else {\n          let i = this.prerelease.length\n          while (--i >= 0) {\n            if (typeof this.prerelease[i] === 'number') {\n              this.prerelease[i]++\n              i = -2\n            }\n          }\n          if (i === -1) {\n            // didn't increment anything\n            if (identifier === this.prerelease.join('.') && identifierBase === false) {\n              throw new Error('invalid increment argument: identifier already exists')\n            }\n            this.prerelease.push(base)\n          }\n        }\n        if (identifier) {\n          // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n          // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n          let prerelease = [identifier, base]\n          if (identifierBase === false) {\n            prerelease = [identifier]\n          }\n          if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n            if (isNaN(this.prerelease[1])) {\n              this.prerelease = prerelease\n            }\n          } else {\n            this.prerelease = prerelease\n          }\n        }\n        break\n      }\n      default:\n        throw new Error(`invalid increment argument: ${release}`)\n    }\n    this.raw = this.format()\n    if (this.build.length) {\n      this.raw += `+${this.build.join('.')}`\n    }\n    return this\n  }\n}\n\nmodule.exports = SemVer\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n  switch (op) {\n    case '===':\n      if (typeof a === 'object') {\n        a = a.version\n      }\n      if (typeof b === 'object') {\n        b = b.version\n      }\n      return a === b\n\n    case '!==':\n      if (typeof a === 'object') {\n        a = a.version\n      }\n      if (typeof b === 'object') {\n        b = b.version\n      }\n      return a !== b\n\n    case '':\n    case '=':\n    case '==':\n      return eq(a, b, loose)\n\n    case '!=':\n      return neq(a, b, loose)\n\n    case '>':\n      return gt(a, b, loose)\n\n    case '>=':\n      return gte(a, b, loose)\n\n    case '<':\n      return lt(a, b, loose)\n\n    case '<=':\n      return lte(a, b, loose)\n\n    default:\n      throw new TypeError(`Invalid operator: ${op}`)\n  }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n  new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n  try {\n    range = new Range(range, options)\n  } catch (er) {\n    return false\n  }\n  return range.test(version)\n}\nmodule.exports = satisfies\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n  'major',\n  'premajor',\n  'minor',\n  'preminor',\n  'patch',\n  'prepatch',\n  'prerelease',\n]\n\nmodule.exports = {\n  MAX_LENGTH,\n  MAX_SAFE_COMPONENT_LENGTH,\n  MAX_SAFE_BUILD_LENGTH,\n  MAX_SAFE_INTEGER,\n  RELEASE_TYPES,\n  SEMVER_SPEC_VERSION,\n  FLAG_INCLUDE_PRERELEASE: 0b001,\n  FLAG_LOOSE: 0b010,\n}\n","const debug = (\n  typeof process === 'object' &&\n  process.env &&\n  process.env.NODE_DEBUG &&\n  /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n  : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n  const anum = numeric.test(a)\n  const bnum = numeric.test(b)\n\n  if (anum && bnum) {\n    a = +a\n    b = +b\n  }\n\n  return a === b ? 0\n    : (anum && !bnum) ? -1\n    : (bnum && !anum) ? 1\n    : a < b ? -1\n    : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n  compareIdentifiers,\n  rcompareIdentifiers,\n}\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n  if (!options) {\n    return emptyOpts\n  }\n\n  if (typeof options !== 'object') {\n    return looseOption\n  }\n\n  return options\n}\nmodule.exports = parseOptions\n","const {\n  MAX_SAFE_COMPONENT_LENGTH,\n  MAX_SAFE_BUILD_LENGTH,\n  MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n  ['\\\\s', 1],\n  ['\\\\d', MAX_LENGTH],\n  [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n  for (const [token, max] of safeRegexReplacements) {\n    value = value\n      .split(`${token}*`).join(`${token}{0,${max}}`)\n      .split(`${token}+`).join(`${token}{1,${max}}`)\n  }\n  return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n  const safe = makeSafeRegex(value)\n  const index = R++\n  debug(name, index, value)\n  t[name] = index\n  src[index] = value\n  re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n  safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups.  The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:${src[t.PRERELEASE]})?${\n                     src[t.BUILD]}?` +\n                   `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:${src[t.PRERELEASELOOSE]})?${\n                          src[t.BUILD]}?` +\n                        `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n              '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n              `(?:${src[t.PRERELEASE]})?` +\n              `(?:${src[t.BUILD]})?` +\n              `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s+-\\\\s+` +\n                   `(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s+-\\\\s+` +\n                        `(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n    // Cannot count string length via Number.toString because it may use scientific notation\n    // for very small or very large numbers.\n    return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n    if (typeof s.repeat === 'function') {\n        return s.repeat(times);\n    }\n    var arr = new Array(times);\n    for (var i = 0; i < arr.length; i++) {\n        arr[i] = s;\n    }\n    return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n    if (!map.get(pl)) {\n        map.set(pl, Object.create(null));\n    }\n    var slots = map.get(pl);\n    slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n        var k = _a[_i];\n        setInternalSlot(map, pl, k, props[k]);\n    }\n}\nexport function getInternalSlot(map, pl, field) {\n    return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n    var fields = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        fields[_i - 2] = arguments[_i];\n    }\n    var slots = map.get(pl);\n    if (!slots) {\n        throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n    }\n    return fields.reduce(function (all, f) {\n        all[f] = slots[f];\n        return all;\n    }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n    return patternPart.type === 'literal';\n}\n/*\n  17 ECMAScript Standard Built-in Objects:\n    Every built-in Function object, including constructors, that is not\n    identified as an anonymous function has a name property whose value\n    is a String.\n\n    Unless otherwise specified, the name property of a built-in Function\n    object, if it exists, has the attributes { [[Writable]]: false,\n    [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n    var value = _a.value;\n    Object.defineProperty(target, name, {\n        configurable: true,\n        enumerable: false,\n        writable: true,\n        value: value,\n    });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n    if (Err === void 0) { Err = Error; }\n    if (!condition) {\n        throw new Err(message);\n    }\n}\n","//\n// Main\n//\nexport function memoize(fn, options) {\n    var cache = options && options.cache ? options.cache : cacheDefault;\n    var serializer = options && options.serializer ? options.serializer : serializerDefault;\n    var strategy = options && options.strategy ? options.strategy : strategyDefault;\n    return strategy(fn, {\n        cache: cache,\n        serializer: serializer,\n    });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n    return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n    var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n    var computedValue = cache.get(cacheKey);\n    if (typeof computedValue === 'undefined') {\n        computedValue = fn.call(this, arg);\n        cache.set(cacheKey, computedValue);\n    }\n    return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n    var args = Array.prototype.slice.call(arguments, 3);\n    var cacheKey = serializer(args);\n    var computedValue = cache.get(cacheKey);\n    if (typeof computedValue === 'undefined') {\n        computedValue = fn.apply(this, args);\n        cache.set(cacheKey, computedValue);\n    }\n    return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n    return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n    var strategy = fn.length === 1 ? monadic : variadic;\n    return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n    return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n    return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n    return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n    this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n    return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n    this.cache[key] = value;\n};\nvar cacheDefault = {\n    create: function create() {\n        // @ts-ignore\n        return new ObjectWithoutPrototypeCache();\n    },\n};\nexport var strategies = {\n    variadic: strategyVariadic,\n    monadic: strategyMonadic,\n};\n","export var ErrorKind;\n(function (ErrorKind) {\n    /** Argument is unclosed (e.g. `{0`) */\n    ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n    /** Argument is empty (e.g. `{}`). */\n    ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n    /** Argument is malformed (e.g. `{foo!}``) */\n    ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n    /** Expect an argument type (e.g. `{foo,}`) */\n    ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n    /** Unsupported argument type (e.g. `{foo,foo}`) */\n    ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n    /** Expect an argument style (e.g. `{foo, number, }`) */\n    ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n    /** The number skeleton is invalid. */\n    ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n    /** The date time skeleton is invalid. */\n    ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n    /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n    ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n    /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n    ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n    /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n    ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n    /** Missing select argument options (e.g. `{foo, select}`) */\n    ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n    /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n    ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n    /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n    ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n    /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n    ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n    /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n    ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n    /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n    ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n    /**\n     * Expecting a message fragment after the `plural` or `selectordinal` selector\n     * (e.g. `{foo, plural, one}`)\n     */\n    ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n    /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n    ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n    /**\n     * Duplicate selectors in `plural` or `selectordinal` argument.\n     * (e.g. {foo, plural, one {#} one {#}})\n     */\n    ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n    /** Duplicate selectors in `select` argument.\n     * (e.g. {foo, select, apple {apple} apple {apple}})\n     */\n    ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n    /** Plural or select argument option must have `other` clause. */\n    ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n    /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n    ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n    /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n    ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n    /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n    ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n    /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n    ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n    /**\n     * Raw text\n     */\n    TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n    /**\n     * Variable w/o any format, e.g `var` in `this is a {var}`\n     */\n    TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n    /**\n     * Variable w/ number format\n     */\n    TYPE[TYPE[\"number\"] = 2] = \"number\";\n    /**\n     * Variable w/ date format\n     */\n    TYPE[TYPE[\"date\"] = 3] = \"date\";\n    /**\n     * Variable w/ time format\n     */\n    TYPE[TYPE[\"time\"] = 4] = \"time\";\n    /**\n     * Variable w/ select format\n     */\n    TYPE[TYPE[\"select\"] = 5] = \"select\";\n    /**\n     * Variable w/ plural format\n     */\n    TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n    /**\n     * Only possible within plural argument.\n     * This is the `#` symbol that will be substituted with the count.\n     */\n    TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n    /**\n     * XML-like tag\n     */\n    TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n    SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n    SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n    return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n    return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n    return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n    return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n    return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n    return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n    return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n    return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n    return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n    return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n    return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n    return {\n        type: TYPE.literal,\n        value: value,\n    };\n}\nexport function createNumberElement(value, style) {\n    return {\n        type: TYPE.number,\n        value: value,\n        style: style,\n    };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n    var result = {};\n    skeleton.replace(DATE_TIME_REGEX, function (match) {\n        var len = match.length;\n        switch (match[0]) {\n            // Era\n            case 'G':\n                result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n                break;\n            // Year\n            case 'y':\n                result.year = len === 2 ? '2-digit' : 'numeric';\n                break;\n            case 'Y':\n            case 'u':\n            case 'U':\n            case 'r':\n                throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n            // Quarter\n            case 'q':\n            case 'Q':\n                throw new RangeError('`q/Q` (quarter) patterns are not supported');\n            // Month\n            case 'M':\n            case 'L':\n                result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n                break;\n            // Week\n            case 'w':\n            case 'W':\n                throw new RangeError('`w/W` (week) patterns are not supported');\n            case 'd':\n                result.day = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'D':\n            case 'F':\n            case 'g':\n                throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n            // Weekday\n            case 'E':\n                result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n                break;\n            case 'e':\n                if (len < 4) {\n                    throw new RangeError('`e..eee` (weekday) patterns are not supported');\n                }\n                result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n                break;\n            case 'c':\n                if (len < 4) {\n                    throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n                }\n                result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n                break;\n            // Period\n            case 'a': // AM, PM\n                result.hour12 = true;\n                break;\n            case 'b': // am, pm, noon, midnight\n            case 'B': // flexible day periods\n                throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n            // Hour\n            case 'h':\n                result.hourCycle = 'h12';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'H':\n                result.hourCycle = 'h23';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'K':\n                result.hourCycle = 'h11';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'k':\n                result.hourCycle = 'h24';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'j':\n            case 'J':\n            case 'C':\n                throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n            // Minute\n            case 'm':\n                result.minute = ['numeric', '2-digit'][len - 1];\n                break;\n            // Second\n            case 's':\n                result.second = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'S':\n            case 'A':\n                throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n            // Zone\n            case 'z': // 1..3, 4: specific non-location format\n                result.timeZoneName = len < 4 ? 'short' : 'long';\n                break;\n            case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n            case 'O': // 1, 4: milliseconds in day short, long\n            case 'v': // 1, 4: generic non-location format\n            case 'V': // 1, 2, 3, 4: time zone ID or city\n            case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n            case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n                throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n        }\n        return '';\n    });\n    return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n    if (skeleton.length === 0) {\n        throw new Error('Number skeleton cannot be empty');\n    }\n    // Parse the skeleton\n    var stringTokens = skeleton\n        .split(WHITE_SPACE_REGEX)\n        .filter(function (x) { return x.length > 0; });\n    var tokens = [];\n    for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n        var stringToken = stringTokens_1[_i];\n        var stemAndOptions = stringToken.split('/');\n        if (stemAndOptions.length === 0) {\n            throw new Error('Invalid number skeleton');\n        }\n        var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n        for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n            var option = options_1[_a];\n            if (option.length === 0) {\n                throw new Error('Invalid number skeleton');\n            }\n        }\n        tokens.push({ stem: stem, options: options });\n    }\n    return tokens;\n}\nfunction icuUnitToEcma(unit) {\n    return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n    var result = {};\n    if (str[str.length - 1] === 'r') {\n        result.roundingPriority = 'morePrecision';\n    }\n    else if (str[str.length - 1] === 's') {\n        result.roundingPriority = 'lessPrecision';\n    }\n    str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n        // @@@ case\n        if (typeof g2 !== 'string') {\n            result.minimumSignificantDigits = g1.length;\n            result.maximumSignificantDigits = g1.length;\n        }\n        // @@@+ case\n        else if (g2 === '+') {\n            result.minimumSignificantDigits = g1.length;\n        }\n        // .### case\n        else if (g1[0] === '#') {\n            result.maximumSignificantDigits = g1.length;\n        }\n        // .@@## or .@@@ case\n        else {\n            result.minimumSignificantDigits = g1.length;\n            result.maximumSignificantDigits =\n                g1.length + (typeof g2 === 'string' ? g2.length : 0);\n        }\n        return '';\n    });\n    return result;\n}\nfunction parseSign(str) {\n    switch (str) {\n        case 'sign-auto':\n            return {\n                signDisplay: 'auto',\n            };\n        case 'sign-accounting':\n        case '()':\n            return {\n                currencySign: 'accounting',\n            };\n        case 'sign-always':\n        case '+!':\n            return {\n                signDisplay: 'always',\n            };\n        case 'sign-accounting-always':\n        case '()!':\n            return {\n                signDisplay: 'always',\n                currencySign: 'accounting',\n            };\n        case 'sign-except-zero':\n        case '+?':\n            return {\n                signDisplay: 'exceptZero',\n            };\n        case 'sign-accounting-except-zero':\n        case '()?':\n            return {\n                signDisplay: 'exceptZero',\n                currencySign: 'accounting',\n            };\n        case 'sign-never':\n        case '+_':\n            return {\n                signDisplay: 'never',\n            };\n    }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n    // Engineering\n    var result;\n    if (stem[0] === 'E' && stem[1] === 'E') {\n        result = {\n            notation: 'engineering',\n        };\n        stem = stem.slice(2);\n    }\n    else if (stem[0] === 'E') {\n        result = {\n            notation: 'scientific',\n        };\n        stem = stem.slice(1);\n    }\n    if (result) {\n        var signDisplay = stem.slice(0, 2);\n        if (signDisplay === '+!') {\n            result.signDisplay = 'always';\n            stem = stem.slice(2);\n        }\n        else if (signDisplay === '+?') {\n            result.signDisplay = 'exceptZero';\n            stem = stem.slice(2);\n        }\n        if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n            throw new Error('Malformed concise eng/scientific notation');\n        }\n        result.minimumIntegerDigits = stem.length;\n    }\n    return result;\n}\nfunction parseNotationOptions(opt) {\n    var result = {};\n    var signOpts = parseSign(opt);\n    if (signOpts) {\n        return signOpts;\n    }\n    return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n    var result = {};\n    for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n        var token = tokens_1[_i];\n        switch (token.stem) {\n            case 'percent':\n            case '%':\n                result.style = 'percent';\n                continue;\n            case '%x100':\n                result.style = 'percent';\n                result.scale = 100;\n                continue;\n            case 'currency':\n                result.style = 'currency';\n                result.currency = token.options[0];\n                continue;\n            case 'group-off':\n            case ',_':\n                result.useGrouping = false;\n                continue;\n            case 'precision-integer':\n            case '.':\n                result.maximumFractionDigits = 0;\n                continue;\n            case 'measure-unit':\n            case 'unit':\n                result.style = 'unit';\n                result.unit = icuUnitToEcma(token.options[0]);\n                continue;\n            case 'compact-short':\n            case 'K':\n                result.notation = 'compact';\n                result.compactDisplay = 'short';\n                continue;\n            case 'compact-long':\n            case 'KK':\n                result.notation = 'compact';\n                result.compactDisplay = 'long';\n                continue;\n            case 'scientific':\n                result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n                continue;\n            case 'engineering':\n                result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n                continue;\n            case 'notation-simple':\n                result.notation = 'standard';\n                continue;\n            // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n            case 'unit-width-narrow':\n                result.currencyDisplay = 'narrowSymbol';\n                result.unitDisplay = 'narrow';\n                continue;\n            case 'unit-width-short':\n                result.currencyDisplay = 'code';\n                result.unitDisplay = 'short';\n                continue;\n            case 'unit-width-full-name':\n                result.currencyDisplay = 'name';\n                result.unitDisplay = 'long';\n                continue;\n            case 'unit-width-iso-code':\n                result.currencyDisplay = 'symbol';\n                continue;\n            case 'scale':\n                result.scale = parseFloat(token.options[0]);\n                continue;\n            // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n            case 'integer-width':\n                if (token.options.length > 1) {\n                    throw new RangeError('integer-width stems only accept a single optional option');\n                }\n                token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n                    if (g1) {\n                        result.minimumIntegerDigits = g2.length;\n                    }\n                    else if (g3 && g4) {\n                        throw new Error('We currently do not support maximum integer digits');\n                    }\n                    else if (g5) {\n                        throw new Error('We currently do not support exact integer digits');\n                    }\n                    return '';\n                });\n                continue;\n        }\n        // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n        if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n            result.minimumIntegerDigits = token.stem.length;\n            continue;\n        }\n        if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n            // Precision\n            // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n            // precision-integer case\n            if (token.options.length > 1) {\n                throw new RangeError('Fraction-precision stems only accept a single optional option');\n            }\n            token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n                // .000* case (before ICU67 it was .000+)\n                if (g2 === '*') {\n                    result.minimumFractionDigits = g1.length;\n                }\n                // .### case\n                else if (g3 && g3[0] === '#') {\n                    result.maximumFractionDigits = g3.length;\n                }\n                // .00## case\n                else if (g4 && g5) {\n                    result.minimumFractionDigits = g4.length;\n                    result.maximumFractionDigits = g4.length + g5.length;\n                }\n                else {\n                    result.minimumFractionDigits = g1.length;\n                    result.maximumFractionDigits = g1.length;\n                }\n                return '';\n            });\n            var opt = token.options[0];\n            // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n            if (opt === 'w') {\n                result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n            }\n            else if (opt) {\n                result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n            }\n            continue;\n        }\n        // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n        if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n            result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n            continue;\n        }\n        var signOpts = parseSign(token.stem);\n        if (signOpts) {\n            result = __assign(__assign({}, result), signOpts);\n        }\n        var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n        if (conciseScientificAndEngineeringOpts) {\n            result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n        }\n    }\n    return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore  \nexport var timeData = {\n    \"001\": [\n        \"H\",\n        \"h\"\n    ],\n    \"AC\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"AD\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AE\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"AF\": [\n        \"H\",\n        \"hb\",\n        \"hB\",\n        \"h\"\n    ],\n    \"AG\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"AI\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"AL\": [\n        \"h\",\n        \"H\",\n        \"hB\"\n    ],\n    \"AM\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AO\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AR\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"AS\": [\n        \"h\",\n        \"H\"\n    ],\n    \"AT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AU\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"AW\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AX\": [\n        \"H\"\n    ],\n    \"AZ\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"BA\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"BB\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"BD\": [\n        \"h\",\n        \"hB\",\n        \"H\"\n    ],\n    \"BE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BG\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"BH\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"BI\": [\n        \"H\",\n        \"h\"\n    ],\n    \"BJ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BL\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"BN\": [\n        \"hb\",\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"BO\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"BQ\": [\n        \"H\"\n    ],\n    \"BR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BS\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"BT\": [\n        \"h\",\n        \"H\"\n    ],\n    \"BW\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"BY\": [\n        \"H\",\n        \"h\"\n    ],\n    \"BZ\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CA\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"CC\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CD\": [\n        \"hB\",\n        \"H\"\n    ],\n    \"CF\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"CG\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CH\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"CI\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CK\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CL\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CM\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"CN\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ],\n    \"CO\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CP\": [\n        \"H\"\n    ],\n    \"CR\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CU\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CV\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CW\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CX\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CY\": [\n        \"h\",\n        \"H\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CZ\": [\n        \"H\"\n    ],\n    \"DE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"DG\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"DJ\": [\n        \"h\",\n        \"H\"\n    ],\n    \"DK\": [\n        \"H\"\n    ],\n    \"DM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"DO\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"DZ\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"EA\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"EC\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"EE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"EG\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"EH\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"ER\": [\n        \"h\",\n        \"H\"\n    ],\n    \"ES\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"ET\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"FI\": [\n        \"H\"\n    ],\n    \"FJ\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"FK\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"FM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"FO\": [\n        \"H\",\n        \"h\"\n    ],\n    \"FR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GA\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GB\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GD\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"GE\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"GF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GG\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GH\": [\n        \"h\",\n        \"H\"\n    ],\n    \"GI\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GL\": [\n        \"H\",\n        \"h\"\n    ],\n    \"GM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"GN\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GP\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GQ\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"GR\": [\n        \"h\",\n        \"H\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GT\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"GU\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"GW\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GY\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"HK\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"HN\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"HR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"HU\": [\n        \"H\",\n        \"h\"\n    ],\n    \"IC\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"ID\": [\n        \"H\"\n    ],\n    \"IE\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"IL\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"IM\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"IN\": [\n        \"h\",\n        \"H\"\n    ],\n    \"IO\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"IQ\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"IR\": [\n        \"hB\",\n        \"H\"\n    ],\n    \"IS\": [\n        \"H\"\n    ],\n    \"IT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"JE\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"JM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"JO\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"JP\": [\n        \"H\",\n        \"K\",\n        \"h\"\n    ],\n    \"KE\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"KG\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KH\": [\n        \"hB\",\n        \"h\",\n        \"H\",\n        \"hb\"\n    ],\n    \"KI\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"KM\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KN\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"KP\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KR\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KW\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"KY\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"KZ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"LA\": [\n        \"H\",\n        \"hb\",\n        \"hB\",\n        \"h\"\n    ],\n    \"LB\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"LC\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"LI\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"LK\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"LR\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"LS\": [\n        \"h\",\n        \"H\"\n    ],\n    \"LT\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"LU\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"LV\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ],\n    \"LY\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"MA\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"MC\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"MD\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"ME\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"MF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"MG\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MH\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"MK\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"ML\": [\n        \"H\"\n    ],\n    \"MM\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"MN\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"MO\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"MP\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"MQ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"MR\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"MS\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"MT\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MU\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MV\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MW\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"MX\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"MY\": [\n        \"hb\",\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"MZ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"NA\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"NC\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"NE\": [\n        \"H\"\n    ],\n    \"NF\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NG\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NI\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"NL\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"NO\": [\n        \"H\",\n        \"h\"\n    ],\n    \"NP\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"NR\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NU\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NZ\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"OM\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"PA\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"PE\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"PF\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"PG\": [\n        \"h\",\n        \"H\"\n    ],\n    \"PH\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"PK\": [\n        \"h\",\n        \"hB\",\n        \"H\"\n    ],\n    \"PL\": [\n        \"H\",\n        \"h\"\n    ],\n    \"PM\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"PN\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"PR\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"PS\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"PT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"PW\": [\n        \"h\",\n        \"H\"\n    ],\n    \"PY\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"QA\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"RE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"RO\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"RS\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"RU\": [\n        \"H\"\n    ],\n    \"RW\": [\n        \"H\",\n        \"h\"\n    ],\n    \"SA\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"SB\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"SC\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"SD\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"SE\": [\n        \"H\"\n    ],\n    \"SG\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"SH\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"SI\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"SJ\": [\n        \"H\"\n    ],\n    \"SK\": [\n        \"H\"\n    ],\n    \"SL\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"SM\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"SN\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"SO\": [\n        \"h\",\n        \"H\"\n    ],\n    \"SR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"SS\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"ST\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"SV\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"SX\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"SY\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"SZ\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TA\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"TC\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TD\": [\n        \"h\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TF\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"TG\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"TH\": [\n        \"H\",\n        \"h\"\n    ],\n    \"TJ\": [\n        \"H\",\n        \"h\"\n    ],\n    \"TL\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ],\n    \"TM\": [\n        \"H\",\n        \"h\"\n    ],\n    \"TN\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"TO\": [\n        \"h\",\n        \"H\"\n    ],\n    \"TR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"TT\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TW\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"TZ\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"UA\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"UG\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"UM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"US\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"UY\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"UZ\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"VA\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"VC\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"VE\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"VG\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"VI\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"VN\": [\n        \"H\",\n        \"h\"\n    ],\n    \"VU\": [\n        \"h\",\n        \"H\"\n    ],\n    \"WF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"WS\": [\n        \"h\",\n        \"H\"\n    ],\n    \"XK\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"YE\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"YT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"ZA\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"ZM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"ZW\": [\n        \"H\",\n        \"h\"\n    ],\n    \"af-ZA\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"ar-001\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"ca-ES\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"en-001\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"es-BO\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-BR\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-EC\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-ES\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-GQ\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-PE\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"fr-CA\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"gl-ES\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"gu-IN\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"hi-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"it-CH\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"it-IT\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"kn-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"ml-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"mr-IN\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"pa-IN\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"ta-IN\": [\n        \"hB\",\n        \"h\",\n        \"hb\",\n        \"H\"\n    ],\n    \"te-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"zu-ZA\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ]\n};\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n    return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n    ? Number.isSafeInteger\n    : function (n) {\n        return (typeof n === 'number' &&\n            isFinite(n) &&\n            Math.floor(n) === n &&\n            Math.abs(n) <= 0x1fffffffffffff);\n    };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n    var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n    /**\n     * legacy Edge or Xbox One browser\n     * Unicode flag support: supported\n     * Pattern_Syntax support: not supported\n     * See https://github.com/formatjs/formatjs/issues/2822\n     */\n    REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n    REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n    ? // Native\n        function startsWith(s, search, position) {\n            return s.startsWith(search, position);\n        }\n    : // For IE11\n        function startsWith(s, search, position) {\n            return s.slice(position, position + search.length) === search;\n        };\nvar fromCodePoint = hasNativeFromCodePoint\n    ? String.fromCodePoint\n    : // IE11\n        function fromCodePoint() {\n            var codePoints = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                codePoints[_i] = arguments[_i];\n            }\n            var elements = '';\n            var length = codePoints.length;\n            var i = 0;\n            var code;\n            while (length > i) {\n                code = codePoints[i++];\n                if (code > 0x10ffff)\n                    throw RangeError(code + ' is not a valid code point');\n                elements +=\n                    code < 0x10000\n                        ? String.fromCharCode(code)\n                        : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n            }\n            return elements;\n        };\nvar fromEntries = \n// native\nhasNativeFromEntries\n    ? Object.fromEntries\n    : // Ponyfill\n        function fromEntries(entries) {\n            var obj = {};\n            for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n                var _a = entries_1[_i], k = _a[0], v = _a[1];\n                obj[k] = v;\n            }\n            return obj;\n        };\nvar codePointAt = hasNativeCodePointAt\n    ? // Native\n        function codePointAt(s, index) {\n            return s.codePointAt(index);\n        }\n    : // IE 11\n        function codePointAt(s, index) {\n            var size = s.length;\n            if (index < 0 || index >= size) {\n                return undefined;\n            }\n            var first = s.charCodeAt(index);\n            var second;\n            return first < 0xd800 ||\n                first > 0xdbff ||\n                index + 1 === size ||\n                (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n                second > 0xdfff\n                ? first\n                : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n        };\nvar trimStart = hasTrimStart\n    ? // Native\n        function trimStart(s) {\n            return s.trimStart();\n        }\n    : // Ponyfill\n        function trimStart(s) {\n            return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n        };\nvar trimEnd = hasTrimEnd\n    ? // Native\n        function trimEnd(s) {\n            return s.trimEnd();\n        }\n    : // Ponyfill\n        function trimEnd(s) {\n            return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n        };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n    return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n    // Native\n    var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n    matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n        var _a;\n        IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n        var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n        return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n    };\n}\nelse {\n    // IE11\n    matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n        var match = [];\n        while (true) {\n            var c = codePointAt(s, index);\n            if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n                break;\n            }\n            match.push(c);\n            index += c >= 0x10000 ? 2 : 1;\n        }\n        return fromCodePoint.apply(void 0, match);\n    };\n}\nvar Parser = /** @class */ (function () {\n    function Parser(message, options) {\n        if (options === void 0) { options = {}; }\n        this.message = message;\n        this.position = { offset: 0, line: 1, column: 1 };\n        this.ignoreTag = !!options.ignoreTag;\n        this.locale = options.locale;\n        this.requiresOtherClause = !!options.requiresOtherClause;\n        this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n    }\n    Parser.prototype.parse = function () {\n        if (this.offset() !== 0) {\n            throw Error('parser can only be used once');\n        }\n        return this.parseMessage(0, '', false);\n    };\n    Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n        var elements = [];\n        while (!this.isEOF()) {\n            var char = this.char();\n            if (char === 123 /* `{` */) {\n                var result = this.parseArgument(nestingLevel, expectingCloseTag);\n                if (result.err) {\n                    return result;\n                }\n                elements.push(result.val);\n            }\n            else if (char === 125 /* `}` */ && nestingLevel > 0) {\n                break;\n            }\n            else if (char === 35 /* `#` */ &&\n                (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n                var position = this.clonePosition();\n                this.bump();\n                elements.push({\n                    type: TYPE.pound,\n                    location: createLocation(position, this.clonePosition()),\n                });\n            }\n            else if (char === 60 /* `<` */ &&\n                !this.ignoreTag &&\n                this.peek() === 47 // char code for '/'\n            ) {\n                if (expectingCloseTag) {\n                    break;\n                }\n                else {\n                    return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n                }\n            }\n            else if (char === 60 /* `<` */ &&\n                !this.ignoreTag &&\n                _isAlpha(this.peek() || 0)) {\n                var result = this.parseTag(nestingLevel, parentArgType);\n                if (result.err) {\n                    return result;\n                }\n                elements.push(result.val);\n            }\n            else {\n                var result = this.parseLiteral(nestingLevel, parentArgType);\n                if (result.err) {\n                    return result;\n                }\n                elements.push(result.val);\n            }\n        }\n        return { val: elements, err: null };\n    };\n    /**\n     * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n     * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n     * are accepted:\n     *\n     * ```\n     * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n     * tagName ::= [a-z] (PENChar)*\n     * PENChar ::=\n     *     \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n     *     [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n     *     [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n     * ```\n     *\n     * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n     * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n     * since other tag-based engines like React allow it\n     */\n    Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n        var startPosition = this.clonePosition();\n        this.bump(); // `<`\n        var tagName = this.parseTagName();\n        this.bumpSpace();\n        if (this.bumpIf('/>')) {\n            // Self closing tag\n            return {\n                val: {\n                    type: TYPE.literal,\n                    value: \"<\".concat(tagName, \"/>\"),\n                    location: createLocation(startPosition, this.clonePosition()),\n                },\n                err: null,\n            };\n        }\n        else if (this.bumpIf('>')) {\n            var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n            if (childrenResult.err) {\n                return childrenResult;\n            }\n            var children = childrenResult.val;\n            // Expecting a close tag\n            var endTagStartPosition = this.clonePosition();\n            if (this.bumpIf('</')) {\n                if (this.isEOF() || !_isAlpha(this.char())) {\n                    return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n                }\n                var closingTagNameStartPosition = this.clonePosition();\n                var closingTagName = this.parseTagName();\n                if (tagName !== closingTagName) {\n                    return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n                }\n                this.bumpSpace();\n                if (!this.bumpIf('>')) {\n                    return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n                }\n                return {\n                    val: {\n                        type: TYPE.tag,\n                        value: tagName,\n                        children: children,\n                        location: createLocation(startPosition, this.clonePosition()),\n                    },\n                    err: null,\n                };\n            }\n            else {\n                return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n            }\n        }\n        else {\n            return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n        }\n    };\n    /**\n     * This method assumes that the caller has peeked ahead for the first tag character.\n     */\n    Parser.prototype.parseTagName = function () {\n        var startOffset = this.offset();\n        this.bump(); // the first tag name character\n        while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n            this.bump();\n        }\n        return this.message.slice(startOffset, this.offset());\n    };\n    Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n        var start = this.clonePosition();\n        var value = '';\n        while (true) {\n            var parseQuoteResult = this.tryParseQuote(parentArgType);\n            if (parseQuoteResult) {\n                value += parseQuoteResult;\n                continue;\n            }\n            var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n            if (parseUnquotedResult) {\n                value += parseUnquotedResult;\n                continue;\n            }\n            var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n            if (parseLeftAngleResult) {\n                value += parseLeftAngleResult;\n                continue;\n            }\n            break;\n        }\n        var location = createLocation(start, this.clonePosition());\n        return {\n            val: { type: TYPE.literal, value: value, location: location },\n            err: null,\n        };\n    };\n    Parser.prototype.tryParseLeftAngleBracket = function () {\n        if (!this.isEOF() &&\n            this.char() === 60 /* `<` */ &&\n            (this.ignoreTag ||\n                // If at the opening tag or closing tag position, bail.\n                !_isAlphaOrSlash(this.peek() || 0))) {\n            this.bump(); // `<`\n            return '<';\n        }\n        return null;\n    };\n    /**\n     * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n     * a character that requires quoting (that is, \"only where needed\"), and works the same in\n     * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n     */\n    Parser.prototype.tryParseQuote = function (parentArgType) {\n        if (this.isEOF() || this.char() !== 39 /* `'` */) {\n            return null;\n        }\n        // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n        // Check if is valid escaped character\n        switch (this.peek()) {\n            case 39 /* `'` */:\n                // double quote, should return as a single quote.\n                this.bump();\n                this.bump();\n                return \"'\";\n            // '{', '<', '>', '}'\n            case 123:\n            case 60:\n            case 62:\n            case 125:\n                break;\n            case 35: // '#'\n                if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n                    break;\n                }\n                return null;\n            default:\n                return null;\n        }\n        this.bump(); // apostrophe\n        var codePoints = [this.char()]; // escaped char\n        this.bump();\n        // read chars until the optional closing apostrophe is found\n        while (!this.isEOF()) {\n            var ch = this.char();\n            if (ch === 39 /* `'` */) {\n                if (this.peek() === 39 /* `'` */) {\n                    codePoints.push(39);\n                    // Bump one more time because we need to skip 2 characters.\n                    this.bump();\n                }\n                else {\n                    // Optional closing apostrophe.\n                    this.bump();\n                    break;\n                }\n            }\n            else {\n                codePoints.push(ch);\n            }\n            this.bump();\n        }\n        return fromCodePoint.apply(void 0, codePoints);\n    };\n    Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n        if (this.isEOF()) {\n            return null;\n        }\n        var ch = this.char();\n        if (ch === 60 /* `<` */ ||\n            ch === 123 /* `{` */ ||\n            (ch === 35 /* `#` */ &&\n                (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n            (ch === 125 /* `}` */ && nestingLevel > 0)) {\n            return null;\n        }\n        else {\n            this.bump();\n            return fromCodePoint(ch);\n        }\n    };\n    Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n        var openingBracePosition = this.clonePosition();\n        this.bump(); // `{`\n        this.bumpSpace();\n        if (this.isEOF()) {\n            return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        if (this.char() === 125 /* `}` */) {\n            this.bump();\n            return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        // argument name\n        var value = this.parseIdentifierIfPossible().value;\n        if (!value) {\n            return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        this.bumpSpace();\n        if (this.isEOF()) {\n            return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        switch (this.char()) {\n            // Simple argument: `{name}`\n            case 125 /* `}` */: {\n                this.bump(); // `}`\n                return {\n                    val: {\n                        type: TYPE.argument,\n                        // value does not include the opening and closing braces.\n                        value: value,\n                        location: createLocation(openingBracePosition, this.clonePosition()),\n                    },\n                    err: null,\n                };\n            }\n            // Argument with options: `{name, format, ...}`\n            case 44 /* `,` */: {\n                this.bump(); // `,`\n                this.bumpSpace();\n                if (this.isEOF()) {\n                    return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n                }\n                return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n            }\n            default:\n                return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n        }\n    };\n    /**\n     * Advance the parser until the end of the identifier, if it is currently on\n     * an identifier character. Return an empty string otherwise.\n     */\n    Parser.prototype.parseIdentifierIfPossible = function () {\n        var startingPosition = this.clonePosition();\n        var startOffset = this.offset();\n        var value = matchIdentifierAtIndex(this.message, startOffset);\n        var endOffset = startOffset + value.length;\n        this.bumpTo(endOffset);\n        var endPosition = this.clonePosition();\n        var location = createLocation(startingPosition, endPosition);\n        return { value: value, location: location };\n    };\n    Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n        var _a;\n        // Parse this range:\n        // {name, type, style}\n        //        ^---^\n        var typeStartPosition = this.clonePosition();\n        var argType = this.parseIdentifierIfPossible().value;\n        var typeEndPosition = this.clonePosition();\n        switch (argType) {\n            case '':\n                // Expecting a style string number, date, time, plural, selectordinal, or select.\n                return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n            case 'number':\n            case 'date':\n            case 'time': {\n                // Parse this range:\n                // {name, number, style}\n                //              ^-------^\n                this.bumpSpace();\n                var styleAndLocation = null;\n                if (this.bumpIf(',')) {\n                    this.bumpSpace();\n                    var styleStartPosition = this.clonePosition();\n                    var result = this.parseSimpleArgStyleIfPossible();\n                    if (result.err) {\n                        return result;\n                    }\n                    var style = trimEnd(result.val);\n                    if (style.length === 0) {\n                        return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n                    }\n                    var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n                    styleAndLocation = { style: style, styleLocation: styleLocation };\n                }\n                var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n                if (argCloseResult.err) {\n                    return argCloseResult;\n                }\n                var location_1 = createLocation(openingBracePosition, this.clonePosition());\n                // Extract style or skeleton\n                if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n                    // Skeleton starts with `::`.\n                    var skeleton = trimStart(styleAndLocation.style.slice(2));\n                    if (argType === 'number') {\n                        var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n                        if (result.err) {\n                            return result;\n                        }\n                        return {\n                            val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n                            err: null,\n                        };\n                    }\n                    else {\n                        if (skeleton.length === 0) {\n                            return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n                        }\n                        var dateTimePattern = skeleton;\n                        // Get \"best match\" pattern only if locale is passed, if not, let it\n                        // pass as-is where `parseDateTimeSkeleton()` will throw an error\n                        // for unsupported patterns.\n                        if (this.locale) {\n                            dateTimePattern = getBestPattern(skeleton, this.locale);\n                        }\n                        var style = {\n                            type: SKELETON_TYPE.dateTime,\n                            pattern: dateTimePattern,\n                            location: styleAndLocation.styleLocation,\n                            parsedOptions: this.shouldParseSkeletons\n                                ? parseDateTimeSkeleton(dateTimePattern)\n                                : {},\n                        };\n                        var type = argType === 'date' ? TYPE.date : TYPE.time;\n                        return {\n                            val: { type: type, value: value, location: location_1, style: style },\n                            err: null,\n                        };\n                    }\n                }\n                // Regular style or no style.\n                return {\n                    val: {\n                        type: argType === 'number'\n                            ? TYPE.number\n                            : argType === 'date'\n                                ? TYPE.date\n                                : TYPE.time,\n                        value: value,\n                        location: location_1,\n                        style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n                    },\n                    err: null,\n                };\n            }\n            case 'plural':\n            case 'selectordinal':\n            case 'select': {\n                // Parse this range:\n                // {name, plural, options}\n                //              ^---------^\n                var typeEndPosition_1 = this.clonePosition();\n                this.bumpSpace();\n                if (!this.bumpIf(',')) {\n                    return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n                }\n                this.bumpSpace();\n                // Parse offset:\n                // {name, plural, offset:1, options}\n                //                ^-----^\n                //\n                // or the first option:\n                //\n                // {name, plural, one {...} other {...}}\n                //                ^--^\n                var identifierAndLocation = this.parseIdentifierIfPossible();\n                var pluralOffset = 0;\n                if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n                    if (!this.bumpIf(':')) {\n                        return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n                    }\n                    this.bumpSpace();\n                    var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n                    if (result.err) {\n                        return result;\n                    }\n                    // Parse another identifier for option parsing\n                    this.bumpSpace();\n                    identifierAndLocation = this.parseIdentifierIfPossible();\n                    pluralOffset = result.val;\n                }\n                var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n                if (optionsResult.err) {\n                    return optionsResult;\n                }\n                var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n                if (argCloseResult.err) {\n                    return argCloseResult;\n                }\n                var location_2 = createLocation(openingBracePosition, this.clonePosition());\n                if (argType === 'select') {\n                    return {\n                        val: {\n                            type: TYPE.select,\n                            value: value,\n                            options: fromEntries(optionsResult.val),\n                            location: location_2,\n                        },\n                        err: null,\n                    };\n                }\n                else {\n                    return {\n                        val: {\n                            type: TYPE.plural,\n                            value: value,\n                            options: fromEntries(optionsResult.val),\n                            offset: pluralOffset,\n                            pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n                            location: location_2,\n                        },\n                        err: null,\n                    };\n                }\n            }\n            default:\n                return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n        }\n    };\n    Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n        // Parse: {value, number, ::currency/GBP }\n        //\n        if (this.isEOF() || this.char() !== 125 /* `}` */) {\n            return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        this.bump(); // `}`\n        return { val: true, err: null };\n    };\n    /**\n     * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n     */\n    Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n        var nestedBraces = 0;\n        var startPosition = this.clonePosition();\n        while (!this.isEOF()) {\n            var ch = this.char();\n            switch (ch) {\n                case 39 /* `'` */: {\n                    // Treat apostrophe as quoting but include it in the style part.\n                    // Find the end of the quoted literal text.\n                    this.bump();\n                    var apostrophePosition = this.clonePosition();\n                    if (!this.bumpUntil(\"'\")) {\n                        return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n                    }\n                    this.bump();\n                    break;\n                }\n                case 123 /* `{` */: {\n                    nestedBraces += 1;\n                    this.bump();\n                    break;\n                }\n                case 125 /* `}` */: {\n                    if (nestedBraces > 0) {\n                        nestedBraces -= 1;\n                    }\n                    else {\n                        return {\n                            val: this.message.slice(startPosition.offset, this.offset()),\n                            err: null,\n                        };\n                    }\n                    break;\n                }\n                default:\n                    this.bump();\n                    break;\n            }\n        }\n        return {\n            val: this.message.slice(startPosition.offset, this.offset()),\n            err: null,\n        };\n    };\n    Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n        var tokens = [];\n        try {\n            tokens = parseNumberSkeletonFromString(skeleton);\n        }\n        catch (e) {\n            return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n        }\n        return {\n            val: {\n                type: SKELETON_TYPE.number,\n                tokens: tokens,\n                location: location,\n                parsedOptions: this.shouldParseSkeletons\n                    ? parseNumberSkeleton(tokens)\n                    : {},\n            },\n            err: null,\n        };\n    };\n    /**\n     * @param nesting_level The current nesting level of messages.\n     *     This can be positive when parsing message fragment in select or plural argument options.\n     * @param parent_arg_type The parent argument's type.\n     * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n     *     the argument. It is a by-product of a previous parsing attempt.\n     * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n     *     between a pair of opening and closing tags. The nested message will not parse beyond\n     *     the closing tag boundary.\n     */\n    Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n        var _a;\n        var hasOtherClause = false;\n        var options = [];\n        var parsedSelectors = new Set();\n        var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n        // Parse:\n        // one {one apple}\n        // ^--^\n        while (true) {\n            if (selector.length === 0) {\n                var startPosition = this.clonePosition();\n                if (parentArgType !== 'select' && this.bumpIf('=')) {\n                    // Try parse `={number}` selector\n                    var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n                    if (result.err) {\n                        return result;\n                    }\n                    selectorLocation = createLocation(startPosition, this.clonePosition());\n                    selector = this.message.slice(startPosition.offset, this.offset());\n                }\n                else {\n                    break;\n                }\n            }\n            // Duplicate selector clauses\n            if (parsedSelectors.has(selector)) {\n                return this.error(parentArgType === 'select'\n                    ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n                    : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n            }\n            if (selector === 'other') {\n                hasOtherClause = true;\n            }\n            // Parse:\n            // one {one apple}\n            //     ^----------^\n            this.bumpSpace();\n            var openingBracePosition = this.clonePosition();\n            if (!this.bumpIf('{')) {\n                return this.error(parentArgType === 'select'\n                    ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n                    : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n            }\n            var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n            if (fragmentResult.err) {\n                return fragmentResult;\n            }\n            var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n            if (argCloseResult.err) {\n                return argCloseResult;\n            }\n            options.push([\n                selector,\n                {\n                    value: fragmentResult.val,\n                    location: createLocation(openingBracePosition, this.clonePosition()),\n                },\n            ]);\n            // Keep track of the existing selectors\n            parsedSelectors.add(selector);\n            // Prep next selector clause.\n            this.bumpSpace();\n            (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n        }\n        if (options.length === 0) {\n            return this.error(parentArgType === 'select'\n                ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n                : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n        }\n        if (this.requiresOtherClause && !hasOtherClause) {\n            return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n        }\n        return { val: options, err: null };\n    };\n    Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n        var sign = 1;\n        var startingPosition = this.clonePosition();\n        if (this.bumpIf('+')) {\n        }\n        else if (this.bumpIf('-')) {\n            sign = -1;\n        }\n        var hasDigits = false;\n        var decimal = 0;\n        while (!this.isEOF()) {\n            var ch = this.char();\n            if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n                hasDigits = true;\n                decimal = decimal * 10 + (ch - 48);\n                this.bump();\n            }\n            else {\n                break;\n            }\n        }\n        var location = createLocation(startingPosition, this.clonePosition());\n        if (!hasDigits) {\n            return this.error(expectNumberError, location);\n        }\n        decimal *= sign;\n        if (!isSafeInteger(decimal)) {\n            return this.error(invalidNumberError, location);\n        }\n        return { val: decimal, err: null };\n    };\n    Parser.prototype.offset = function () {\n        return this.position.offset;\n    };\n    Parser.prototype.isEOF = function () {\n        return this.offset() === this.message.length;\n    };\n    Parser.prototype.clonePosition = function () {\n        // This is much faster than `Object.assign` or spread.\n        return {\n            offset: this.position.offset,\n            line: this.position.line,\n            column: this.position.column,\n        };\n    };\n    /**\n     * Return the code point at the current position of the parser.\n     * Throws if the index is out of bound.\n     */\n    Parser.prototype.char = function () {\n        var offset = this.position.offset;\n        if (offset >= this.message.length) {\n            throw Error('out of bound');\n        }\n        var code = codePointAt(this.message, offset);\n        if (code === undefined) {\n            throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n        }\n        return code;\n    };\n    Parser.prototype.error = function (kind, location) {\n        return {\n            val: null,\n            err: {\n                kind: kind,\n                message: this.message,\n                location: location,\n            },\n        };\n    };\n    /** Bump the parser to the next UTF-16 code unit. */\n    Parser.prototype.bump = function () {\n        if (this.isEOF()) {\n            return;\n        }\n        var code = this.char();\n        if (code === 10 /* '\\n' */) {\n            this.position.line += 1;\n            this.position.column = 1;\n            this.position.offset += 1;\n        }\n        else {\n            this.position.column += 1;\n            // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n            this.position.offset += code < 0x10000 ? 1 : 2;\n        }\n    };\n    /**\n     * If the substring starting at the current position of the parser has\n     * the given prefix, then bump the parser to the character immediately\n     * following the prefix and return true. Otherwise, don't bump the parser\n     * and return false.\n     */\n    Parser.prototype.bumpIf = function (prefix) {\n        if (startsWith(this.message, prefix, this.offset())) {\n            for (var i = 0; i < prefix.length; i++) {\n                this.bump();\n            }\n            return true;\n        }\n        return false;\n    };\n    /**\n     * Bump the parser until the pattern character is found and return `true`.\n     * Otherwise bump to the end of the file and return `false`.\n     */\n    Parser.prototype.bumpUntil = function (pattern) {\n        var currentOffset = this.offset();\n        var index = this.message.indexOf(pattern, currentOffset);\n        if (index >= 0) {\n            this.bumpTo(index);\n            return true;\n        }\n        else {\n            this.bumpTo(this.message.length);\n            return false;\n        }\n    };\n    /**\n     * Bump the parser to the target offset.\n     * If target offset is beyond the end of the input, bump the parser to the end of the input.\n     */\n    Parser.prototype.bumpTo = function (targetOffset) {\n        if (this.offset() > targetOffset) {\n            throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n        }\n        targetOffset = Math.min(targetOffset, this.message.length);\n        while (true) {\n            var offset = this.offset();\n            if (offset === targetOffset) {\n                break;\n            }\n            if (offset > targetOffset) {\n                throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n            }\n            this.bump();\n            if (this.isEOF()) {\n                break;\n            }\n        }\n    };\n    /** advance the parser through all whitespace to the next non-whitespace code unit. */\n    Parser.prototype.bumpSpace = function () {\n        while (!this.isEOF() && _isWhiteSpace(this.char())) {\n            this.bump();\n        }\n    };\n    /**\n     * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n     * If the input has been exhausted, then this returns null.\n     */\n    Parser.prototype.peek = function () {\n        if (this.isEOF()) {\n            return null;\n        }\n        var code = this.char();\n        var offset = this.offset();\n        var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n        return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n    };\n    return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n    return ((codepoint >= 97 && codepoint <= 122) ||\n        (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n    return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n    return (c === 45 /* '-' */ ||\n        c === 46 /* '.' */ ||\n        (c >= 48 && c <= 57) /* 0..9 */ ||\n        c === 95 /* '_' */ ||\n        (c >= 97 && c <= 122) /** a..z */ ||\n        (c >= 65 && c <= 90) /* A..Z */ ||\n        c == 0xb7 ||\n        (c >= 0xc0 && c <= 0xd6) ||\n        (c >= 0xd8 && c <= 0xf6) ||\n        (c >= 0xf8 && c <= 0x37d) ||\n        (c >= 0x37f && c <= 0x1fff) ||\n        (c >= 0x200c && c <= 0x200d) ||\n        (c >= 0x203f && c <= 0x2040) ||\n        (c >= 0x2070 && c <= 0x218f) ||\n        (c >= 0x2c00 && c <= 0x2fef) ||\n        (c >= 0x3001 && c <= 0xd7ff) ||\n        (c >= 0xf900 && c <= 0xfdcf) ||\n        (c >= 0xfdf0 && c <= 0xfffd) ||\n        (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n    return ((c >= 0x0009 && c <= 0x000d) ||\n        c === 0x0020 ||\n        c === 0x0085 ||\n        (c >= 0x200e && c <= 0x200f) ||\n        c === 0x2028 ||\n        c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n    return ((c >= 0x0021 && c <= 0x0023) ||\n        c === 0x0024 ||\n        (c >= 0x0025 && c <= 0x0027) ||\n        c === 0x0028 ||\n        c === 0x0029 ||\n        c === 0x002a ||\n        c === 0x002b ||\n        c === 0x002c ||\n        c === 0x002d ||\n        (c >= 0x002e && c <= 0x002f) ||\n        (c >= 0x003a && c <= 0x003b) ||\n        (c >= 0x003c && c <= 0x003e) ||\n        (c >= 0x003f && c <= 0x0040) ||\n        c === 0x005b ||\n        c === 0x005c ||\n        c === 0x005d ||\n        c === 0x005e ||\n        c === 0x0060 ||\n        c === 0x007b ||\n        c === 0x007c ||\n        c === 0x007d ||\n        c === 0x007e ||\n        c === 0x00a1 ||\n        (c >= 0x00a2 && c <= 0x00a5) ||\n        c === 0x00a6 ||\n        c === 0x00a7 ||\n        c === 0x00a9 ||\n        c === 0x00ab ||\n        c === 0x00ac ||\n        c === 0x00ae ||\n        c === 0x00b0 ||\n        c === 0x00b1 ||\n        c === 0x00b6 ||\n        c === 0x00bb ||\n        c === 0x00bf ||\n        c === 0x00d7 ||\n        c === 0x00f7 ||\n        (c >= 0x2010 && c <= 0x2015) ||\n        (c >= 0x2016 && c <= 0x2017) ||\n        c === 0x2018 ||\n        c === 0x2019 ||\n        c === 0x201a ||\n        (c >= 0x201b && c <= 0x201c) ||\n        c === 0x201d ||\n        c === 0x201e ||\n        c === 0x201f ||\n        (c >= 0x2020 && c <= 0x2027) ||\n        (c >= 0x2030 && c <= 0x2038) ||\n        c === 0x2039 ||\n        c === 0x203a ||\n        (c >= 0x203b && c <= 0x203e) ||\n        (c >= 0x2041 && c <= 0x2043) ||\n        c === 0x2044 ||\n        c === 0x2045 ||\n        c === 0x2046 ||\n        (c >= 0x2047 && c <= 0x2051) ||\n        c === 0x2052 ||\n        c === 0x2053 ||\n        (c >= 0x2055 && c <= 0x205e) ||\n        (c >= 0x2190 && c <= 0x2194) ||\n        (c >= 0x2195 && c <= 0x2199) ||\n        (c >= 0x219a && c <= 0x219b) ||\n        (c >= 0x219c && c <= 0x219f) ||\n        c === 0x21a0 ||\n        (c >= 0x21a1 && c <= 0x21a2) ||\n        c === 0x21a3 ||\n        (c >= 0x21a4 && c <= 0x21a5) ||\n        c === 0x21a6 ||\n        (c >= 0x21a7 && c <= 0x21ad) ||\n        c === 0x21ae ||\n        (c >= 0x21af && c <= 0x21cd) ||\n        (c >= 0x21ce && c <= 0x21cf) ||\n        (c >= 0x21d0 && c <= 0x21d1) ||\n        c === 0x21d2 ||\n        c === 0x21d3 ||\n        c === 0x21d4 ||\n        (c >= 0x21d5 && c <= 0x21f3) ||\n        (c >= 0x21f4 && c <= 0x22ff) ||\n        (c >= 0x2300 && c <= 0x2307) ||\n        c === 0x2308 ||\n        c === 0x2309 ||\n        c === 0x230a ||\n        c === 0x230b ||\n        (c >= 0x230c && c <= 0x231f) ||\n        (c >= 0x2320 && c <= 0x2321) ||\n        (c >= 0x2322 && c <= 0x2328) ||\n        c === 0x2329 ||\n        c === 0x232a ||\n        (c >= 0x232b && c <= 0x237b) ||\n        c === 0x237c ||\n        (c >= 0x237d && c <= 0x239a) ||\n        (c >= 0x239b && c <= 0x23b3) ||\n        (c >= 0x23b4 && c <= 0x23db) ||\n        (c >= 0x23dc && c <= 0x23e1) ||\n        (c >= 0x23e2 && c <= 0x2426) ||\n        (c >= 0x2427 && c <= 0x243f) ||\n        (c >= 0x2440 && c <= 0x244a) ||\n        (c >= 0x244b && c <= 0x245f) ||\n        (c >= 0x2500 && c <= 0x25b6) ||\n        c === 0x25b7 ||\n        (c >= 0x25b8 && c <= 0x25c0) ||\n        c === 0x25c1 ||\n        (c >= 0x25c2 && c <= 0x25f7) ||\n        (c >= 0x25f8 && c <= 0x25ff) ||\n        (c >= 0x2600 && c <= 0x266e) ||\n        c === 0x266f ||\n        (c >= 0x2670 && c <= 0x2767) ||\n        c === 0x2768 ||\n        c === 0x2769 ||\n        c === 0x276a ||\n        c === 0x276b ||\n        c === 0x276c ||\n        c === 0x276d ||\n        c === 0x276e ||\n        c === 0x276f ||\n        c === 0x2770 ||\n        c === 0x2771 ||\n        c === 0x2772 ||\n        c === 0x2773 ||\n        c === 0x2774 ||\n        c === 0x2775 ||\n        (c >= 0x2794 && c <= 0x27bf) ||\n        (c >= 0x27c0 && c <= 0x27c4) ||\n        c === 0x27c5 ||\n        c === 0x27c6 ||\n        (c >= 0x27c7 && c <= 0x27e5) ||\n        c === 0x27e6 ||\n        c === 0x27e7 ||\n        c === 0x27e8 ||\n        c === 0x27e9 ||\n        c === 0x27ea ||\n        c === 0x27eb ||\n        c === 0x27ec ||\n        c === 0x27ed ||\n        c === 0x27ee ||\n        c === 0x27ef ||\n        (c >= 0x27f0 && c <= 0x27ff) ||\n        (c >= 0x2800 && c <= 0x28ff) ||\n        (c >= 0x2900 && c <= 0x2982) ||\n        c === 0x2983 ||\n        c === 0x2984 ||\n        c === 0x2985 ||\n        c === 0x2986 ||\n        c === 0x2987 ||\n        c === 0x2988 ||\n        c === 0x2989 ||\n        c === 0x298a ||\n        c === 0x298b ||\n        c === 0x298c ||\n        c === 0x298d ||\n        c === 0x298e ||\n        c === 0x298f ||\n        c === 0x2990 ||\n        c === 0x2991 ||\n        c === 0x2992 ||\n        c === 0x2993 ||\n        c === 0x2994 ||\n        c === 0x2995 ||\n        c === 0x2996 ||\n        c === 0x2997 ||\n        c === 0x2998 ||\n        (c >= 0x2999 && c <= 0x29d7) ||\n        c === 0x29d8 ||\n        c === 0x29d9 ||\n        c === 0x29da ||\n        c === 0x29db ||\n        (c >= 0x29dc && c <= 0x29fb) ||\n        c === 0x29fc ||\n        c === 0x29fd ||\n        (c >= 0x29fe && c <= 0x2aff) ||\n        (c >= 0x2b00 && c <= 0x2b2f) ||\n        (c >= 0x2b30 && c <= 0x2b44) ||\n        (c >= 0x2b45 && c <= 0x2b46) ||\n        (c >= 0x2b47 && c <= 0x2b4c) ||\n        (c >= 0x2b4d && c <= 0x2b73) ||\n        (c >= 0x2b74 && c <= 0x2b75) ||\n        (c >= 0x2b76 && c <= 0x2b95) ||\n        c === 0x2b96 ||\n        (c >= 0x2b97 && c <= 0x2bff) ||\n        (c >= 0x2e00 && c <= 0x2e01) ||\n        c === 0x2e02 ||\n        c === 0x2e03 ||\n        c === 0x2e04 ||\n        c === 0x2e05 ||\n        (c >= 0x2e06 && c <= 0x2e08) ||\n        c === 0x2e09 ||\n        c === 0x2e0a ||\n        c === 0x2e0b ||\n        c === 0x2e0c ||\n        c === 0x2e0d ||\n        (c >= 0x2e0e && c <= 0x2e16) ||\n        c === 0x2e17 ||\n        (c >= 0x2e18 && c <= 0x2e19) ||\n        c === 0x2e1a ||\n        c === 0x2e1b ||\n        c === 0x2e1c ||\n        c === 0x2e1d ||\n        (c >= 0x2e1e && c <= 0x2e1f) ||\n        c === 0x2e20 ||\n        c === 0x2e21 ||\n        c === 0x2e22 ||\n        c === 0x2e23 ||\n        c === 0x2e24 ||\n        c === 0x2e25 ||\n        c === 0x2e26 ||\n        c === 0x2e27 ||\n        c === 0x2e28 ||\n        c === 0x2e29 ||\n        (c >= 0x2e2a && c <= 0x2e2e) ||\n        c === 0x2e2f ||\n        (c >= 0x2e30 && c <= 0x2e39) ||\n        (c >= 0x2e3a && c <= 0x2e3b) ||\n        (c >= 0x2e3c && c <= 0x2e3f) ||\n        c === 0x2e40 ||\n        c === 0x2e41 ||\n        c === 0x2e42 ||\n        (c >= 0x2e43 && c <= 0x2e4f) ||\n        (c >= 0x2e50 && c <= 0x2e51) ||\n        c === 0x2e52 ||\n        (c >= 0x2e53 && c <= 0x2e7f) ||\n        (c >= 0x3001 && c <= 0x3003) ||\n        c === 0x3008 ||\n        c === 0x3009 ||\n        c === 0x300a ||\n        c === 0x300b ||\n        c === 0x300c ||\n        c === 0x300d ||\n        c === 0x300e ||\n        c === 0x300f ||\n        c === 0x3010 ||\n        c === 0x3011 ||\n        (c >= 0x3012 && c <= 0x3013) ||\n        c === 0x3014 ||\n        c === 0x3015 ||\n        c === 0x3016 ||\n        c === 0x3017 ||\n        c === 0x3018 ||\n        c === 0x3019 ||\n        c === 0x301a ||\n        c === 0x301b ||\n        c === 0x301c ||\n        c === 0x301d ||\n        (c >= 0x301e && c <= 0x301f) ||\n        c === 0x3020 ||\n        c === 0x3030 ||\n        c === 0xfd3e ||\n        c === 0xfd3f ||\n        (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n    var skeletonCopy = '';\n    for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n        var patternChar = skeleton.charAt(patternPos);\n        if (patternChar === 'j') {\n            var extraLength = 0;\n            while (patternPos + 1 < skeleton.length &&\n                skeleton.charAt(patternPos + 1) === patternChar) {\n                extraLength++;\n                patternPos++;\n            }\n            var hourLen = 1 + (extraLength & 1);\n            var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n            var dayPeriodChar = 'a';\n            var hourChar = getDefaultHourSymbolFromLocale(locale);\n            if (hourChar == 'H' || hourChar == 'k') {\n                dayPeriodLen = 0;\n            }\n            while (dayPeriodLen-- > 0) {\n                skeletonCopy += dayPeriodChar;\n            }\n            while (hourLen-- > 0) {\n                skeletonCopy = hourChar + skeletonCopy;\n            }\n        }\n        else if (patternChar === 'J') {\n            skeletonCopy += 'H';\n        }\n        else {\n            skeletonCopy += patternChar;\n        }\n    }\n    return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n    var hourCycle = locale.hourCycle;\n    if (hourCycle === undefined &&\n        // @ts-ignore hourCycle(s) is not identified yet\n        locale.hourCycles &&\n        // @ts-ignore\n        locale.hourCycles.length) {\n        // @ts-ignore\n        hourCycle = locale.hourCycles[0];\n    }\n    if (hourCycle) {\n        switch (hourCycle) {\n            case 'h24':\n                return 'k';\n            case 'h23':\n                return 'H';\n            case 'h12':\n                return 'h';\n            case 'h11':\n                return 'K';\n            default:\n                throw new Error('Invalid hourCycle');\n        }\n    }\n    // TODO: Once hourCycle is fully supported remove the following with data generation\n    var languageTag = locale.language;\n    var regionTag;\n    if (languageTag !== 'root') {\n        regionTag = locale.maximize().region;\n    }\n    var hourCycles = timeData[regionTag || ''] ||\n        timeData[languageTag || ''] ||\n        timeData[\"\".concat(languageTag, \"-001\")] ||\n        timeData['001'];\n    return hourCycles[0];\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n    els.forEach(function (el) {\n        delete el.location;\n        if (isSelectElement(el) || isPluralElement(el)) {\n            for (var k in el.options) {\n                delete el.options[k].location;\n                pruneLocation(el.options[k].value);\n            }\n        }\n        else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n            delete el.style.location;\n        }\n        else if ((isDateElement(el) || isTimeElement(el)) &&\n            isDateTimeSkeleton(el.style)) {\n            delete el.style.location;\n        }\n        else if (isTagElement(el)) {\n            pruneLocation(el.children);\n        }\n    });\n}\nexport function parse(message, opts) {\n    if (opts === void 0) { opts = {}; }\n    opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n    var result = new Parser(message, opts).parse();\n    if (result.err) {\n        var error = SyntaxError(ErrorKind[result.err.kind]);\n        // @ts-expect-error Assign to error object\n        error.location = result.err.location;\n        // @ts-expect-error Assign to error object\n        error.originalMessage = result.err.message;\n        throw error;\n    }\n    if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n        pruneLocation(result.val);\n    }\n    return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldPolyfill = void 0;\nvar intl_localematcher_1 = require(\"@formatjs/intl-localematcher\");\nvar supported_locales_generated_1 = require(\"./supported-locales.generated\");\nfunction supportsDateStyle() {\n    try {\n        return !!new Intl.DateTimeFormat(undefined, {\n            dateStyle: 'short',\n        }).resolvedOptions().dateStyle;\n    }\n    catch (e) {\n        return false;\n    }\n}\n/**\n * https://bugs.chromium.org/p/chromium/issues/detail?id=865351\n */\nfunction hasChromeLt71Bug() {\n    try {\n        return (new Intl.DateTimeFormat('en', {\n            hourCycle: 'h11',\n            hour: 'numeric',\n        }).formatToParts(0)[2].type !== 'dayPeriod');\n    }\n    catch (e) {\n        return false;\n    }\n}\n/**\n * Node 14's version of Intl.DateTimeFormat does not throw\n * when dateStyle/timeStyle is used with other options.\n * This was fixed in newer V8 versions\n */\nfunction hasUnthrownDateTimeStyleBug() {\n    try {\n        return !!new Intl.DateTimeFormat('en', {\n            dateStyle: 'short',\n            hour: 'numeric',\n        }).format(new Date(0));\n    }\n    catch (e) {\n        return false;\n    }\n}\nfunction supportedLocalesOf(locale) {\n    if (!locale) {\n        return true;\n    }\n    var locales = Array.isArray(locale) ? locale : [locale];\n    return (Intl.DateTimeFormat.supportedLocalesOf(locales).length === locales.length);\n}\nfunction shouldPolyfill(locale) {\n    if (locale === void 0) { locale = 'en'; }\n    if (!('DateTimeFormat' in Intl) ||\n        !('formatToParts' in Intl.DateTimeFormat.prototype) ||\n        !('formatRange' in Intl.DateTimeFormat.prototype) ||\n        hasChromeLt71Bug() ||\n        hasUnthrownDateTimeStyleBug() ||\n        !supportsDateStyle() ||\n        !supportedLocalesOf(locale)) {\n        return locale ? (0, intl_localematcher_1.match)([locale], supported_locales_generated_1.supportedLocales, 'en') : undefined;\n    }\n}\nexports.shouldPolyfill = shouldPolyfill;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportedLocales = void 0;\nexports.supportedLocales = [\"af\", \"af-NA\", \"agq\", \"ak\", \"am\", \"ar\", \"ar-AE\", \"ar-BH\", \"ar-DJ\", \"ar-DZ\", \"ar-EG\", \"ar-EH\", \"ar-ER\", \"ar-IL\", \"ar-IQ\", \"ar-JO\", \"ar-KM\", \"ar-KW\", \"ar-LB\", \"ar-LY\", \"ar-MA\", \"ar-MR\", \"ar-OM\", \"ar-PS\", \"ar-QA\", \"ar-SA\", \"ar-SD\", \"ar-SO\", \"ar-SS\", \"ar-SY\", \"ar-TD\", \"ar-TN\", \"ar-YE\", \"as\", \"asa\", \"ast\", \"az\", \"az-Cyrl\", \"az-Latn\", \"bas\", \"be\", \"be-tarask\", \"bem\", \"bez\", \"bg\", \"bm\", \"bn\", \"bn-IN\", \"bo\", \"bo-IN\", \"br\", \"brx\", \"bs\", \"bs-Cyrl\", \"bs-Latn\", \"ca\", \"ca-AD\", \"ca-ES-valencia\", \"ca-FR\", \"ca-IT\", \"ccp\", \"ccp-IN\", \"ce\", \"ceb\", \"cgg\", \"chr\", \"ckb\", \"ckb-IR\", \"cs\", \"cy\", \"da\", \"da-GL\", \"dav\", \"de\", \"de-AT\", \"de-BE\", \"de-CH\", \"de-IT\", \"de-LI\", \"de-LU\", \"dje\", \"doi\", \"dsb\", \"dua\", \"dyo\", \"dz\", \"ebu\", \"ee\", \"ee-TG\", \"el\", \"el-CY\", \"en\", \"en-001\", \"en-150\", \"en-AE\", \"en-AG\", \"en-AI\", \"en-AS\", \"en-AT\", \"en-AU\", \"en-BB\", \"en-BE\", \"en-BI\", \"en-BM\", \"en-BS\", \"en-BW\", \"en-BZ\", \"en-CA\", \"en-CC\", \"en-CH\", \"en-CK\", \"en-CM\", \"en-CX\", \"en-CY\", \"en-DE\", \"en-DG\", \"en-DK\", \"en-DM\", \"en-ER\", \"en-FI\", \"en-FJ\", \"en-FK\", \"en-FM\", \"en-GB\", \"en-GD\", \"en-GG\", \"en-GH\", \"en-GI\", \"en-GM\", \"en-GU\", \"en-GY\", \"en-HK\", \"en-IE\", \"en-IL\", \"en-IM\", \"en-IN\", \"en-IO\", \"en-JE\", \"en-JM\", \"en-KE\", \"en-KI\", \"en-KN\", \"en-KY\", \"en-LC\", \"en-LR\", \"en-LS\", \"en-MG\", \"en-MH\", \"en-MO\", \"en-MP\", \"en-MS\", \"en-MT\", \"en-MU\", \"en-MW\", \"en-MY\", \"en-NA\", \"en-NF\", \"en-NG\", \"en-NL\", \"en-NR\", \"en-NU\", \"en-NZ\", \"en-PG\", \"en-PH\", \"en-PK\", \"en-PN\", \"en-PR\", \"en-PW\", \"en-RW\", \"en-SB\", \"en-SC\", \"en-SD\", \"en-SE\", \"en-SG\", \"en-SH\", \"en-SI\", \"en-SL\", \"en-SS\", \"en-SX\", \"en-SZ\", \"en-TC\", \"en-TK\", \"en-TO\", \"en-TT\", \"en-TV\", \"en-TZ\", \"en-UG\", \"en-UM\", \"en-VC\", \"en-VG\", \"en-VI\", \"en-VU\", \"en-WS\", \"en-ZA\", \"en-ZM\", \"en-ZW\", \"eo\", \"es\", \"es-419\", \"es-AR\", \"es-BO\", \"es-BR\", \"es-BZ\", \"es-CL\", \"es-CO\", \"es-CR\", \"es-CU\", \"es-DO\", \"es-EA\", \"es-EC\", \"es-GQ\", \"es-GT\", \"es-HN\", \"es-IC\", \"es-MX\", \"es-NI\", \"es-PA\", \"es-PE\", \"es-PH\", \"es-PR\", \"es-PY\", \"es-SV\", \"es-US\", \"es-UY\", \"es-VE\", \"et\", \"eu\", \"ewo\", \"fa\", \"fa-AF\", \"ff\", \"ff-Adlm\", \"ff-Adlm-BF\", \"ff-Adlm-CM\", \"ff-Adlm-GH\", \"ff-Adlm-GM\", \"ff-Adlm-GW\", \"ff-Adlm-LR\", \"ff-Adlm-MR\", \"ff-Adlm-NE\", \"ff-Adlm-NG\", \"ff-Adlm-SL\", \"ff-Adlm-SN\", \"ff-Latn\", \"ff-Latn-BF\", \"ff-Latn-CM\", \"ff-Latn-GH\", \"ff-Latn-GM\", \"ff-Latn-GN\", \"ff-Latn-GW\", \"ff-Latn-LR\", \"ff-Latn-MR\", \"ff-Latn-NE\", \"ff-Latn-NG\", \"ff-Latn-SL\", \"fi\", \"fil\", \"fo\", \"fo-DK\", \"fr\", \"fr-BE\", \"fr-BF\", \"fr-BI\", \"fr-BJ\", \"fr-BL\", \"fr-CA\", \"fr-CD\", \"fr-CF\", \"fr-CG\", \"fr-CH\", \"fr-CI\", \"fr-CM\", \"fr-DJ\", \"fr-DZ\", \"fr-GA\", \"fr-GF\", \"fr-GN\", \"fr-GP\", \"fr-GQ\", \"fr-HT\", \"fr-KM\", \"fr-LU\", \"fr-MA\", \"fr-MC\", \"fr-MF\", \"fr-MG\", \"fr-ML\", \"fr-MQ\", \"fr-MR\", \"fr-MU\", \"fr-NC\", \"fr-NE\", \"fr-PF\", \"fr-PM\", \"fr-RE\", \"fr-RW\", \"fr-SC\", \"fr-SN\", \"fr-SY\", \"fr-TD\", \"fr-TG\", \"fr-TN\", \"fr-VU\", \"fr-WF\", \"fr-YT\", \"fur\", \"fy\", \"ga\", \"ga-GB\", \"gd\", \"gl\", \"gsw\", \"gsw-FR\", \"gsw-LI\", \"gu\", \"guz\", \"gv\", \"ha\", \"ha-GH\", \"ha-NE\", \"haw\", \"he\", \"hi\", \"hr\", \"hr-BA\", \"hsb\", \"hu\", \"hy\", \"ia\", \"id\", \"ig\", \"ii\", \"is\", \"it\", \"it-CH\", \"it-SM\", \"it-VA\", \"ja\", \"jgo\", \"jmc\", \"jv\", \"ka\", \"kab\", \"kam\", \"kde\", \"kea\", \"kgp\", \"khq\", \"ki\", \"kk\", \"kkj\", \"kl\", \"kln\", \"km\", \"kn\", \"ko\", \"ko-KP\", \"kok\", \"ks\", \"ks-Arab\", \"ksb\", \"ksf\", \"ksh\", \"ku\", \"kw\", \"ky\", \"lag\", \"lb\", \"lg\", \"lkt\", \"ln\", \"ln-AO\", \"ln-CF\", \"ln-CG\", \"lo\", \"lrc\", \"lrc-IQ\", \"lt\", \"lu\", \"luo\", \"luy\", \"lv\", \"mai\", \"mas\", \"mas-TZ\", \"mer\", \"mfe\", \"mg\", \"mgh\", \"mgo\", \"mi\", \"mk\", \"ml\", \"mn\", \"mni\", \"mni-Beng\", \"mr\", \"ms\", \"ms-BN\", \"ms-ID\", \"ms-SG\", \"mt\", \"mua\", \"my\", \"mzn\", \"naq\", \"nb\", \"nb-SJ\", \"nd\", \"nds\", \"nds-NL\", \"ne\", \"ne-IN\", \"nl\", \"nl-AW\", \"nl-BE\", \"nl-BQ\", \"nl-CW\", \"nl-SR\", \"nl-SX\", \"nmg\", \"nn\", \"nnh\", \"no\", \"nus\", \"nyn\", \"om\", \"om-KE\", \"or\", \"os\", \"os-RU\", \"pa\", \"pa-Arab\", \"pa-Guru\", \"pcm\", \"pl\", \"ps\", \"ps-PK\", \"pt\", \"pt-AO\", \"pt-CH\", \"pt-CV\", \"pt-GQ\", \"pt-GW\", \"pt-LU\", \"pt-MO\", \"pt-MZ\", \"pt-PT\", \"pt-ST\", \"pt-TL\", \"qu\", \"qu-BO\", \"qu-EC\", \"rm\", \"rn\", \"ro\", \"ro-MD\", \"rof\", \"ru\", \"ru-BY\", \"ru-KG\", \"ru-KZ\", \"ru-MD\", \"ru-UA\", \"rw\", \"rwk\", \"sa\", \"sah\", \"saq\", \"sat\", \"sat-Olck\", \"sbp\", \"sc\", \"sd\", \"sd-Arab\", \"sd-Deva\", \"se\", \"se-FI\", \"se-SE\", \"seh\", \"ses\", \"sg\", \"shi\", \"shi-Latn\", \"shi-Tfng\", \"si\", \"sk\", \"sl\", \"smn\", \"sn\", \"so\", \"so-DJ\", \"so-ET\", \"so-KE\", \"sq\", \"sq-MK\", \"sq-XK\", \"sr\", \"sr-Cyrl\", \"sr-Cyrl-BA\", \"sr-Cyrl-ME\", \"sr-Cyrl-XK\", \"sr-Latn\", \"sr-Latn-BA\", \"sr-Latn-ME\", \"sr-Latn-XK\", \"su\", \"su-Latn\", \"sv\", \"sv-AX\", \"sv-FI\", \"sw\", \"sw-CD\", \"sw-KE\", \"sw-UG\", \"ta\", \"ta-LK\", \"ta-MY\", \"ta-SG\", \"te\", \"teo\", \"teo-KE\", \"tg\", \"th\", \"ti\", \"ti-ER\", \"tk\", \"to\", \"tr\", \"tr-CY\", \"tt\", \"twq\", \"tzm\", \"ug\", \"uk\", \"und\", \"ur\", \"ur-IN\", \"uz\", \"uz-Arab\", \"uz-Cyrl\", \"uz-Latn\", \"vai\", \"vai-Latn\", \"vai-Vaii\", \"vi\", \"vun\", \"wae\", \"wo\", \"xh\", \"xog\", \"yav\", \"yi\", \"yo\", \"yo-BJ\", \"yrl\", \"yrl-CO\", \"yrl-VE\", \"yue\", \"yue-Hans\", \"yue-Hant\", \"zgh\", \"zh\", \"zh-Hans\", \"zh-Hans-HK\", \"zh-Hans-MO\", \"zh-Hans-SG\", \"zh-Hant\", \"zh-Hant-HK\", \"zh-Hant-MO\", \"zu\"];\n","/**\n * https://tc39.es/ecma402/#sec-bestavailablelocale\n * @param availableLocales\n * @param locale\n */\nexport function BestAvailableLocale(availableLocales, locale) {\n    var candidate = locale;\n    while (true) {\n        if (availableLocales.has(candidate)) {\n            return candidate;\n        }\n        var pos = candidate.lastIndexOf('-');\n        if (!~pos) {\n            return undefined;\n        }\n        if (pos >= 2 && candidate[pos - 2] === '-') {\n            pos -= 2;\n        }\n        candidate = candidate.slice(0, pos);\n    }\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\nimport { BestAvailableLocale } from './BestAvailableLocale';\n/**\n * https://tc39.es/ecma402/#sec-lookupsupportedlocales\n * @param availableLocales\n * @param requestedLocales\n */\nexport function LookupSupportedLocales(availableLocales, requestedLocales) {\n    var subset = [];\n    for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n        var locale = requestedLocales_1[_i];\n        var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n        var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n        if (availableLocale) {\n            subset.push(availableLocale);\n        }\n    }\n    return subset;\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-unicodeextensionvalue\n * @param extension\n * @param key\n */\nexport function UnicodeExtensionValue(extension, key) {\n    invariant(key.length === 2, 'key must have 2 elements');\n    var size = extension.length;\n    var searchValue = \"-\".concat(key, \"-\");\n    var pos = extension.indexOf(searchValue);\n    if (pos !== -1) {\n        var start = pos + 4;\n        var end = start;\n        var k = start;\n        var done = false;\n        while (!done) {\n            var e = extension.indexOf('-', k);\n            var len = void 0;\n            if (e === -1) {\n                len = size - k;\n            }\n            else {\n                len = e - k;\n            }\n            if (len === 2) {\n                done = true;\n            }\n            else if (e === -1) {\n                end = size;\n                done = true;\n            }\n            else {\n                end = e;\n                k = e + 1;\n            }\n        }\n        return extension.slice(start, end);\n    }\n    searchValue = \"-\".concat(key);\n    pos = extension.indexOf(searchValue);\n    if (pos !== -1 && pos + 3 === size) {\n        return '';\n    }\n    return undefined;\n}\n","import { LookupMatcher } from './LookupMatcher';\nimport { BestFitMatcher } from './BestFitMatcher';\nimport { invariant } from './utils';\nimport { UnicodeExtensionValue } from './UnicodeExtensionValue';\n/**\n * https://tc39.es/ecma402/#sec-resolvelocale\n */\nexport function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {\n    var matcher = options.localeMatcher;\n    var r;\n    if (matcher === 'lookup') {\n        r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);\n    }\n    else {\n        r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);\n    }\n    var foundLocale = r.locale;\n    var result = { locale: '', dataLocale: foundLocale };\n    var supportedExtension = '-u';\n    for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {\n        var key = relevantExtensionKeys_1[_i];\n        invariant(foundLocale in localeData, \"Missing locale data for \".concat(foundLocale));\n        var foundLocaleData = localeData[foundLocale];\n        invariant(typeof foundLocaleData === 'object' && foundLocaleData !== null, \"locale data \".concat(key, \" must be an object\"));\n        var keyLocaleData = foundLocaleData[key];\n        invariant(Array.isArray(keyLocaleData), \"keyLocaleData for \".concat(key, \" must be an array\"));\n        var value = keyLocaleData[0];\n        invariant(typeof value === 'string' || value === null, \"value must be string or null but got \".concat(typeof value, \" in key \").concat(key));\n        var supportedExtensionAddition = '';\n        if (r.extension) {\n            var requestedValue = UnicodeExtensionValue(r.extension, key);\n            if (requestedValue !== undefined) {\n                if (requestedValue !== '') {\n                    if (~keyLocaleData.indexOf(requestedValue)) {\n                        value = requestedValue;\n                        supportedExtensionAddition = \"-\".concat(key, \"-\").concat(value);\n                    }\n                }\n                else if (~requestedValue.indexOf('true')) {\n                    value = 'true';\n                    supportedExtensionAddition = \"-\".concat(key);\n                }\n            }\n        }\n        if (key in options) {\n            var optionsValue = options[key];\n            invariant(typeof optionsValue === 'string' ||\n                typeof optionsValue === 'undefined' ||\n                optionsValue === null, 'optionsValue must be String, Undefined or Null');\n            if (~keyLocaleData.indexOf(optionsValue)) {\n                if (optionsValue !== value) {\n                    value = optionsValue;\n                    supportedExtensionAddition = '';\n                }\n            }\n        }\n        result[key] = value;\n        supportedExtension += supportedExtensionAddition;\n    }\n    if (supportedExtension.length > 2) {\n        var privateIndex = foundLocale.indexOf('-x-');\n        if (privateIndex === -1) {\n            foundLocale = foundLocale + supportedExtension;\n        }\n        else {\n            var preExtension = foundLocale.slice(0, privateIndex);\n            var postExtension = foundLocale.slice(privateIndex, foundLocale.length);\n            foundLocale = preExtension + supportedExtension + postExtension;\n        }\n        foundLocale = Intl.getCanonicalLocales(foundLocale)[0];\n    }\n    result.locale = foundLocale;\n    return result;\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\nimport { BestAvailableLocale } from './BestAvailableLocale';\n/**\n * https://tc39.es/ecma402/#sec-lookupmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n    var result = { locale: '' };\n    for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n        var locale = requestedLocales_1[_i];\n        var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n        var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n        if (availableLocale) {\n            result.locale = availableLocale;\n            if (locale !== noExtensionLocale) {\n                result.extension = locale.slice(noExtensionLocale.length, locale.length);\n            }\n            return result;\n        }\n    }\n    result.locale = getDefaultLocale();\n    return result;\n}\n","import { BestAvailableLocale } from './BestAvailableLocale';\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-bestfitmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n    var minimizedAvailableLocaleMap = {};\n    var availableLocaleMap = {};\n    var canonicalizedLocaleMap = {};\n    var minimizedAvailableLocales = new Set();\n    availableLocales.forEach(function (locale) {\n        var minimizedLocale = new Intl.Locale(locale)\n            .minimize()\n            .toString();\n        var canonicalizedLocale = Intl.getCanonicalLocales(locale)[0] || locale;\n        minimizedAvailableLocaleMap[minimizedLocale] = locale;\n        availableLocaleMap[locale] = locale;\n        canonicalizedLocaleMap[canonicalizedLocale] = locale;\n        minimizedAvailableLocales.add(minimizedLocale);\n        minimizedAvailableLocales.add(locale);\n        minimizedAvailableLocales.add(canonicalizedLocale);\n    });\n    var foundLocale;\n    var extension;\n    for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n        var l = requestedLocales_1[_i];\n        if (foundLocale) {\n            break;\n        }\n        var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n        if (l !== noExtensionLocale) {\n            extension = l.slice(noExtensionLocale.length, l.length);\n        }\n        if (availableLocales.has(noExtensionLocale)) {\n            foundLocale = noExtensionLocale;\n            break;\n        }\n        if (minimizedAvailableLocales.has(noExtensionLocale)) {\n            foundLocale = noExtensionLocale;\n            break;\n        }\n        var locale = new Intl.Locale(noExtensionLocale);\n        var maximizedRequestedLocale = locale.maximize().toString();\n        var minimizedRequestedLocale = locale.minimize().toString();\n        // Check minimized locale\n        if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {\n            foundLocale = minimizedRequestedLocale;\n            break;\n        }\n        // Lookup algo on maximized locale\n        foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);\n    }\n    if (!foundLocale) {\n        return { locale: getDefaultLocale() };\n    }\n    return {\n        locale: availableLocaleMap[foundLocale] ||\n            canonicalizedLocaleMap[foundLocale] ||\n            minimizedAvailableLocaleMap[foundLocale] ||\n            foundLocale,\n        extension: extension,\n    };\n}\n","export var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n    if (Err === void 0) { Err = Error; }\n    if (!condition) {\n        throw new Err(message);\n    }\n}\n","import { CanonicalizeLocaleList } from './abstract/CanonicalizeLocaleList';\nimport { ResolveLocale } from './abstract/ResolveLocale';\nexport function match(requestedLocales, availableLocales, defaultLocale, opts) {\n    var locales = availableLocales.reduce(function (all, l) {\n        all.add(l);\n        return all;\n    }, new Set());\n    return ResolveLocale(locales, CanonicalizeLocaleList(requestedLocales), {\n        localeMatcher: (opts === null || opts === void 0 ? void 0 : opts.algorithm) || 'best fit',\n    }, [], {}, function () { return defaultLocale; }).locale;\n}\nexport { LookupSupportedLocales } from './abstract/LookupSupportedLocales';\nexport { ResolveLocale } from './abstract/ResolveLocale';\n","/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n * @param locales\n */\nexport function CanonicalizeLocaleList(locales) {\n    // TODO\n    return Intl.getCanonicalLocales(locales);\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"adobe-locales\"] = factory();\n\telse\n\t\troot[\"adobe-locales\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 04946e45a7fe193d15c0","/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n*  Copyright 2023 Adobe Systems Incorporated\n*  All Rights Reserved.\n*\n* NOTICE:  All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any.  The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by all applicable intellectual property\n* laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport * as locales from './locales';\nimport regions from './locales/_region';\nimport apps, { umbrellaRegionApp, umbrellaRegions } from './apps';\nimport getAppLocale from './getAppLocale';\n\nconst pattern = /^([a-zA-Z]{2})(?:[_-]+([a-zA-Z]{3})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{4})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{2}|[0-9]{3})(?=$|[_-]+))?(?:-x-([a-zA-Z0-9]{1,8})(?=$))?$/;\n\nconst _match    = locale => locale.match(pattern) || [];\n\n/**\n * given an object, return its value based on passed condition\n * @param {object} obj\n * @param {object} fun\n */\nconst findKey = (obj, fun) => Object.keys(obj).find(x => fun(obj[x]));\n\n/**\n* given an object, return its value based on passed case-insensitive key\n* @param {object} obj\n* @param {string} key\n*/\nconst findValueByKeyIgnoreCase = (obj, key) => key !== undefined ? obj[Object.keys(obj).filter(k => k.toLowerCase() === key.toLowerCase())[0]] : undefined;\n\n/* \n  https://www.w3.org/International/articles/language-tags/#rfc\n\n  pattern: language-extlang-script-region-variant-extension-privateuse\n\n  type      pattern\n  language  2-letter or 3-letter\n  extlang   3-letter\n  script    4-letter\n  region    2-letter or 3-number\n  private   -x-****\n*/\n/**\n * \"language\" sub-tab of a locale\n * @param {string} locale - locale name\n */\nconst lang      = locale => _match(locale)[1] || '';\n\n/**\n * \"extlang\" sub-tab of a locale\n * @param {string} locale - locale name\n */\nconst extlang   = locale => _match(locale)[2] || '';\n\n/**\n * \"script\" sub-tab of a locale\n * @param {string} locale - locale name\n */\nconst script    = locale => _match(locale)[3] || '';\n\n/**\n * \"region\" sub-tab of a locale\n * @param {string} locale - locale name\n */\nconst region    = locale => _match(locale)[4] || '';\n\n/**\n * \"private use\" sub-tab of a locale\n * @param {string} locale - locale name\n */\nconst priuse    = locale => _match(locale)[5] || '';\n\n/**\n * \"language\" + \"script\" sub-tab of a locale\n * @param {string} locale - locale name\n * @param {string} camelizeScriptName - if camelize Script Name\n */\nconst langScript = (locale, camelizeScriptName = false) => {\n  let ls = '';\n  const matches = _match(locale);\n\n  if (matches.length > 0) {\n    if (matches[3] !== undefined) {  // has script\n      if (camelizeScriptName === true) {\n        ls = `${matches[1]}-${matches[3].charAt(0).toUpperCase()}${matches[3].slice(1)}`;\n      } else {\n        ls = `${matches[1]}-${matches[3]}`;\n      }\n    } else if (matches[1].toLowerCase() === 'zh' && matches[4] !== undefined) {\n\n      let region = matches[4].toLowerCase();\n\n      if (['tw', 'hk', 'mo'].includes(region)) {\n        ls = 'zh-Hant';\n      } else {\n        ls = 'zh-Hans';\n      }\n    } else {\n      ls = matches[1];\n    }\n  }\n\n  return ls;\n}\n\n/*\n  Generate all app locale mapping.\n*/\nconst allLocales = {};\n\nObject.keys(locales).forEach(app => {\n  const appLocales = locales[app];\n\n  Object.keys(appLocales).forEach(appLocale => {\n    const mappedLocale = appLocales[appLocale];\n    // const lowerMappedLocale = mappedLocale.toLowerCase();\n\n    allLocales[appLocale] = mappedLocale;\n\n    if (allLocales[mappedLocale] === undefined) {\n      allLocales[mappedLocale] = mappedLocale;\n    }\n\n    // if (allLocales[lowerMappedLocale] === undefined) {\n    //   allLocales[lowerMappedLocale] = mappedLocale;\n    // }\n  });\n});\n\n/**\n * get all app locale mapping\n */\nconst getAllLocales = () => allLocales;\n\n/**\n * get all app locale mapping\n */\nconst getUmbrellaRegions = (region, app) => {\n  return findKey(umbrellaRegions, (v) => {\n    if (Array.isArray(v)) {\n      return v.includes(region.toLowerCase())\n    } \n  \n    return v[['adobedotcom', 'helpx'].includes(app) ? 'adobedotcom' : 'generic'].includes(region.toLowerCase())\n    \n  });\n};\n\n/**\n * check if one of apps that have Umbrella Regions such as \"mena\", \"sea\"\n */\nconst isUmbrellaRegionApp = (app) => umbrellaRegionApp.includes(app);\n\n/**\n * returns BCP-47 form of a locale\n * @param {string} locale - locale name\n * @param {string} app - optional, which can handle app-specific case, like \"uk\" returns \"en-GB\" for app \"adobedotcom\", while it returns \"uk-UA\" in other cases.\n */\nconst normalize = (locale, app) => {\n  let normalizedLocale;\n\n  if (app) {\n    const appLocale = getAppLocale(app, locale);\n\n    normalizedLocale = locales[app][appLocale];\n  } \n  \n  return normalizedLocale || findValueByKeyIgnoreCase(getAllLocales(), locale);\n}\n\n/**\n * helps to construct a locale using the language of an app and the user's IMS country. \n * If the language is not supported by adobe.com for that country, it will change to the \n * default language of that country that adobe.com supports. For example, if en-US is the \n * app language and JP is the IMS code, this will result in \"ja-JP\"\n */\nconst createLocaleFromIMS = (locale, imsCountryCode) => {\n  let match = false;\n  let newLocale = 'en-US';\n  \n  if (typeof locale === 'string' && typeof imsCountryCode === 'string' && imsCountryCode.length === 2) {\n    let language = langScript(locale, true);\n    let imsCountryCodeU = imsCountryCode.toUpperCase();\n    let countryLangs = regions[imsCountryCodeU];\n\n    if (countryLangs !== undefined) {\n      if (countryLangs.includes(language)) {\n        match = true;\n      } else {\n        language = countryLangs[0] || 'en';\n      }\n\n      newLocale = `${language}-${imsCountryCodeU}`;\n    }    \n  }\n\n  return {\n    match,\n    locale: newLocale\n  };\n}\n\n/**\n * helper to strip url protocol and www\n * @param {string} url - url name\n * @returns {string} url w/o protocol and www\n */\nconst stripUrl = (url) => url.replace(/^https?:\\/\\//, '').replace(/^www\\./, '')\n\n/**\n * get app code name from a url\n * @param {string} url - url name\n * @returns {string} app name\n */\nconst getAppNameFromURL = (url, withAppBaseURL = false) => {\n\n  if (typeof url === 'string' && url.length) {\n    const strippedUrl = stripUrl(url.trim().toLowerCase());\n\n    for (const [name, props] of apps) {\n      const productionURLs = props.production ? Array.isArray(props.production) ? props.production : [props.production] : []\n      const stageURLs = props.stage ? Array.isArray(props.stage) ? props.stage : [props.stage] : []\n\n      for (const appURL of [...productionURLs, ...stageURLs]) {\n        const strippedAppUrl = stripUrl(appURL)\n\n        if (strippedUrl.indexOf(strippedAppUrl) === 0) {\n          return withAppBaseURL === true ? {name, appBaseURL: strippedAppUrl.split('/')[0]} : name\n        }\n      }\n    }\n  }\n\n  return undefined\n}\n\n/**\n * \n * @param {string} region - 2 char country code\n * @returns default locale\n */\nconst getRegionDefaultLocale = (region) => {\n  let defaultLocale\n  \n  if (typeof region === 'string' && region.length === 2) {\n    const regionCode = region.toUpperCase()\n\n    if (regions[regionCode] && regions[regionCode][0]) {\n      const lang = regions[regionCode][0]\n\n      defaultLocale = `${lang}-${regionCode}`\n    }\n  }\n\n  return defaultLocale\n}\n\n/**\n * get country supported languages list\n * @param {string} imsCountryCode - country code 2-char\n * @returns {array} languages list. default to ['en']\n */\nconst getCountryLanguages = (imsCountryCode) => {\n  const defaultLangs = ['en'];\n  const langs = (typeof imsCountryCode === 'string') ? (regions[imsCountryCode.toUpperCase()] || []) : defaultLangs;\n\n  return langs.length ? langs : defaultLangs;  \n}\n\nexport { findKey, \n         findValueByKeyIgnoreCase,\n         lang, \n         extlang, \n         script, \n         region, \n         regions,\n         priuse, \n         normalize, \n         langScript,\n         stripUrl, \n         getAllLocales, \n         getUmbrellaRegions, \n         isUmbrellaRegionApp, \n         getAppNameFromURL, \n         createLocaleFromIMS, \n         getCountryLanguages,\n         getRegionDefaultLocale };\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils.js","/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n*  Copyright 2023 Adobe Systems Incorporated\n*  All Rights Reserved.\n*\n* NOTICE:  All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any.  The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by all applicable intellectual property\n* laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport * as locales from './locales';\nimport { findKey, getAllLocales, lang, script, region, getRegionDefaultLocale, getUmbrellaRegions, isUmbrellaRegionApp, findValueByKeyIgnoreCase } from './utils';\n\n/*\n * @param {string} app - app code. For a complete apps code, see https://git.corp.adobe.com/intl/adobe-locales#supported-apps\n * @param {string} locale - locale name, it does not have to be the one destination app uses.\n * @param {string} fallback - fallback locale name, it does not have to be the one destination app uses.\n * @returns {string} destination app locale name. Returns \"\" if passed locale is not supported in the app. \n */\nconst getAppLocale = (app, locale, fallback) => {\n  // must be a valid app\n  if (locales[app] === undefined) {\n    console.warn(`[@intl/adobe-locales] App \"${app}\" is not supported. Please refer to https://git.corp.adobe.com/intl/adobe-locales#supported-apps`);\n    return '';\n  }\n\n  // test locale\n  if (typeof locale === 'string' && locale.substring(0, 2) === 'zz') {\n    const en = getAppLocale(app, 'en-US');\n\n    return en.includes('-') ? \n            'zz-ZZ' : en.includes('_') ? \n            'zz_ZZ' : \n            'zz'\n  }\n  \n  let appLocale;\n\n  // exact locale\n  if (locale && locales[app][locale] !== undefined) {\n    appLocale = locale;\n  } else {\n\n    // otherwise find a match in all locales\n    const adobeLocales = getAllLocales();\n\n    if (locale && !(lang(locale) === '' && adobeLocales[locale] === undefined)) {\n      let normalizedLocale = findValueByKeyIgnoreCase(adobeLocales, locale);\n\n      if (normalizedLocale === undefined) {\n        if (locale.length === 2) { // region code or lang code only\n          normalizedLocale = getRegionDefaultLocale(locale) || locale\n        } else {\n          normalizedLocale = locale.includes('_') ? locale.replace(/_/g, '-') : locale\n        }\n      }\n\n      appLocale = findKey(locales[app], (v) => v === normalizedLocale);\n\n      // try umbrella regions\n      if (appLocale === undefined && isUmbrellaRegionApp(app)) {\n        const umbrellaRegion = getUmbrellaRegions(region(locale), app);\n\n        if (umbrellaRegion) {\n          // try lang and region combination first\n          const regionLocaleX = `${lang(locale)}-x-${umbrellaRegion.toUpperCase()}`;\n          const regionLocale = locale.slice(0, -2) + umbrellaRegion.toUpperCase();\n\n          appLocale = findKey(locales[app], (v) => v === regionLocaleX || v === regionLocale) \n          // try region only\n          if (appLocale === undefined && locales[app][umbrellaRegion] !== undefined) {\n            appLocale = umbrellaRegion;\n          }\n        }\n      }\n\n      // try lang and script combination\n      if (appLocale === undefined && script(normalizedLocale) !== '') {\n        const withScript = normalizedLocale.substr(0, 7).toLowerCase();\n\n        appLocale = findKey(locales[app], (v) => v.substr(0, 7).toLowerCase() === withScript);\n      }\n\n      // try lang only\n      if (appLocale === undefined) {\n        const onlyLang = normalizedLocale.substr(0, 2).toLowerCase();\n\n        appLocale = findKey(locales[app], (v) => v.substr(0, 2).toLowerCase() === onlyLang);\n      }\n\n      // finally try region only\n      if (appLocale === undefined) {\n        const onlyRegion = normalizedLocale.split('-').pop().toLowerCase();\n\n        appLocale = findKey(locales[app], v => v.substr(v.length - onlyRegion.length, onlyRegion.length).toLowerCase() === onlyRegion);\n      }\n    }\n\n    if (appLocale === undefined && fallback !== undefined) {\n      appLocale = findKey(locales[app], (v) => v === fallback || v === adobeLocales[fallback]);\n    }\n  }\n\n  // stock has nothing for en-US locale\n  if (app === 'stock' && appLocale === 'us') {\n    appLocale = '';\n  }\n  \n  return appLocale || '';\n}\n\nexport default getAppLocale;\n\n\n\n// WEBPACK FOOTER //\n// ./src/getAppLocale.js","const apps = new Map(Object.entries({\n  'academic_verification': {\n    'stage'      : 'https://commerce-stg.adobe.com/academic-verification',\n    'production' : 'https://commerce.adobe.com/academic-verification'\n  },\n  'acrobat_plan': {\n    'stage'      : 'https://stage.acrobat.adobe.com/proxy/pricing',\n    'production' : 'https://acrobat.adobe.com/proxy/pricing'\n  },\n  'acrobat_web': {\n    'stage'      : 'https://stage.acrobat.adobe.com',\n    'production' : 'https://acrobat.adobe.com'\n  },\n  'adobeaccount' : {\n    'stage'      : 'https://stage.account.adobe.com',\n    'production' : 'https://account.adobe.com'\n  },\n  'adminconsole' : {\n    'stage'      : 'https://stage.adminconsole.adobe.com',\n    'production' : 'https://adminconsole.adobe.com'\n  },\n  'assets'      : {\n    'stage'      : 'https://assets-stage.adobecc.com',\n    'production' : 'https://assets.adobe.com'\n  },\n  'behance'     : {\n    'stage'      : 'https://net.s2stagehance.com',\n    'production' : 'https://www.behance.net'\n  },\n  'spice'      : {\n    'stage'      : 'https://stage.projectspice.corp.adobe.com',\n    'production' : 'https://projectspice.adobe.com'\n  },\n  'cchome'      : {\n    'stage'      : 'https://stage.creativecloud.adobe.com',\n    'production' : 'https://creativecloud.adobe.com'\n  },\n  'color'       : {\n    'stage'      : 'https://colorweb-stage.adobeku.com',\n    'production' : 'https://color.adobe.com'\n  },\n  'community'   : {\n    'stage'      : 'https://community-stg.adobe.com',\n    'production' : 'https://community.adobe.com'\n  },\n  'creativecloudapp' : {\n    'stage'      : 'https://stage.ccmui.adobe.com',\n    'production' : 'https://creative.adobe.com'\n  },\n  'dcweb'       : {\n    'stage'      : 'https://dc.stage.acrobat.com',\n    'production' : 'https://documentcloud.adobe.com'\n  },\n  'experiencecloud'   : {\n    'stage'      : 'https://experiencecloud-stage.adobe.com',\n    'production' : 'https://experiencecloud.adobe.com'\n  },\n  'frameio'     : {\n    'stage'      : 'https://support.frame.io',\n    'production' : 'https://support.frame.io'\n  },  \n  'fonts'     : {\n    'stage'      : 'https://fonts-relstage.adobe.com',\n    'production' : 'https://fonts.adobe.com'\n  },  \n  'helpx'       : {\n    'stage'      : 'https://helpx.stage.adobe.com',\n    'production' : 'https://helpx.adobe.com'\n  },\n  'ims'         : {\n    'stage'      : 'https://ims-na1-stg1.adobelogin.com',\n    'production' : 'https://adobeid-na1.services.adobe.com'\n  },\n  'lightroom'   : {\n    'stage'      : 'https://stage.adobelr.com',\n    'production' : 'https://lightroom.adobe.com'\n  },\n  'mini_plans'   : {\n    'stage'      : 'https://www.stage.adobe.com/mini-plans',\n    'production' : 'https://www.adobe.com/mini-plans'\n  },  \n  'ngl'   : {\n    'stage'      : 'https://workflow-stage.licenses.adobe.com',\n    'production' : 'https://workflow.licenses.adobe.com'\n  },\n  'psweb'   : {\n    'stage':       'https://stage.photoshop.adobe.com',\n    'production' : 'https://photoshop.adobe.com'\n  },\n  'portfolio'   : {\n    'stage':       'https://portfolio.ccpsx.com',\n    'production' : 'https://portfolio.adobe.com'\n  },\n  'projectx'      : {\n    'stage'      : 'https://stage.projectx.corp.adobe.com',\n    'production' : ['https://preview.projectx.corp.adobe.com', 'https://projectx.corp.adobe.com', 'https://new.express.adobe.com'],\n    'regions': ['AU', 'BR', 'CO', 'DE', 'ES', 'FR', 'ID', 'IN', 'IT', 'JP', 'KR', 'MX', 'TH', 'GB', 'US', 'ZZ']\n  },\n  'redemption_ui' : {\n     'stage':       'https://redeem-stg.adobe.com',\n     'production' : 'https://redeem.adobe.com'\n  },\n  'stock'       : {\n    'stage':       'https://primary.stock.stage.adobe.com',\n    'production' : 'https://stock.adobe.com'\n  },\n  'spark'       : {\n    'stage':       'https://express-stage.adobe.com',\n    'production' : ['https://spark.adobe.com', 'https://express.adobe.com']\n  },\n  's3diweb' : {\n    'stage': ['https://dev.substance3d.adobe.com/assets', \n              'https://dev.substance3d.adobe.com/community-assets', \n              'https://dev.substance3d.adobe.com/tutorials'],\n    'production'  : 'https://substance3d.adobe.com'\n  },\n  's3diwebviewer': {\n    'stage': ['https://rte-web-viewer-develop.dev.substance3d.io',\n              'https://rte-web-viewer-beehive.dev.substance3d.io'],\n    'production': ['https://rte-web-viewer.substance3d.com']\n  },\n  'commerce_ui' : {\n    'stage'      : 'https://commerce-stg.adobe.com',\n    'production' : 'https://commerce.adobe.com'\n  },\n  'unifiedcheckout' : {\n    'stage'      : 'https://commerce-stg.adobe.com',\n    'production' : 'https://commerce.adobe.com'\n  },\n  'xd'          : {\n    'stage'      : 'https://stage.xd.adobe.com',\n    'production' : 'https://xd.adobe.com'\n  },\n  'adobedotcom' : {\n    'stage'      : 'https://www.stage.adobe.com',\n    'production' : 'https://www.adobe.com'\n  }\n}));\n\n// includes all apps that has locale as part of URL path, like \"https://www/adobe.com/us/\", compapred to query param like \"https://cchome.adobe.com/?locale=en\"\nexport const urlApp = ['adobedotcom', 'helpx', 'spark', 'stock', 'accountmanagement', 'creativecloudapp', 'ngl', 'color', 'mini_plans', 'frameio'];\n\n// includes all apps that use \"lang\" as query param instead of \"locale\"\nexport const langParamApp = ['adobeaccount', 'redemption_ui', 'unifiedcheckout', 'academic_verification', 'community', 'psweb', 's3diweb', 's3diwebviewer'];\n\n// includes all apps that use umbrella regions\nexport const umbrellaRegionApp = ['adobedotcom', 'helpx', 'globalnav', 'ims', 'acrobat_plan', 'ngl', 'jarvis', 'mini_plans'];\n\nexport const umbrellaRegions = {\n  africa: ['africa', 'ao', 'bf', 'bi', 'bj', 'bw', 'cd', 'cf', 'cg', 'ci', 'cm', 'cv', 'dj', 'er', 'et', 'ga', 'gh', \n           'gm', 'gn', 'gq', 'gw', 'ke', 'km', 'lr', 'ls', 'mg', 'ml', 'mu', 'mw', 'mz', 'na', 'ne', 'ng',\n           'rw', 'sc', 'sd', 'sl', 'sn', 'so', 'st', 'sz', 'td', 'tg', 'tz', 'ug', 'za', 'zm', 'zw'],\n  cis:    ['cis', 'by', 'kg', 'kz', 'tj', 'uz'],\n  la:     {\n    'generic': ['la', 'ar', 'bl', 'bo', 'br', 'bz', 'cl', 'co', 'cr', 'cu', 'do', 'ec', 'fk', 'gf', 'gt', 'gy', 'hn',\n    'ht', 'mf', 'mq', 'ni', 'pa', 'pe', 'pr', 'py', 'sr', 'sv', 'uy', 've', 'tt'],\n\n    'adobedotcom': ['la', 'bl', 'bo', 'br', 'bz', 'cl', 'cr', 'cu', 'do', 'ec', 'fk', 'gf', 'gt', 'gy', 'hn',\n    'ht', 'mf', 'mq', 'ni', 'pa', 'pr', 'py', 'sr', 'sv', 'uy', 've', 'tt']\n  },\n  mena:   ['mena', 'ae', 'bh', 'dz', 'eg', 'jo', 'kw', 'lb', 'ma', 'om', 'qa', 'sa', 'tn', 'ye', 'iq', 'ly', 'mr'],\n  sea:    {\n    'generic': ['sea', 'id', 'my', 'ph', 'sg', 'th', 'vn', 'lk'],\n    'adobedotcom': ['sea', 'sg', 'lk']\n  },\n  hk:     ['mo'],\n  ie:     ['hr']\n};\n\nexport default apps;\n\n\n\n// WEBPACK FOOTER //\n// ./src/apps.js","export { default as academic_verification } from './ucv2.js';\nexport { default as adminconsole } from './adminconsole.js';\nexport { default as adobeaccount } from './adobeaccount.js';\nexport { default as assets } from './assets.js';\nexport { default as behance } from './behance.js';\nexport { default as spice } from './quick_actions.js';\nexport { default as quick_actions } from './quick_actions.js';\nexport { default as squirrel } from './squirrel.js';\nexport { default as cchome } from './cchome.js';\nexport { default as cchome_learn } from './cchome_learn.js';\nexport { default as cchome_leftnav } from './cchome_leftnav.js';\nexport { default as cclibrary } from './cclibrary.js';\nexport { default as ccsearch } from './ccsearch.js';\nexport { default as comments } from './assets.js';\nexport { default as color } from './color.js';\nexport { default as community } from './community.js';\nexport { default as creativecloudapp } from './creativecloudapp.js';\nexport { default as acrobat_web } from './dcweb.js';\nexport { default as dva_voice } from './dva_voice.js';\nexport { default as dcweb } from './dcweb.js';\nexport { default as editbilling } from './editbilling.js';\nexport { default as experiencecloud } from './experiencecloud.js';\nexport { default as frameio } from './frameio.js';\nexport { default as ims } from './ims.js';\nexport { default as lightroom } from './lightroom.js';\nexport { default as jarvis } from './jarvis.js';\nexport { default as mcs } from './mcs.js';\nexport { default as mt } from './mt.js';\nexport { default as ngl } from './ngl.js';\nexport { default as acrobat_plan } from './acrobat_plan.js';\nexport { default as panel_licensing } from './panellicensing.js';\nexport { default as psweb } from './psweb.js';\nexport { default as portfolio } from './portfolio.js';\nexport { default as projectx } from './projectx.js';\nexport { default as publiclinks } from './publiclinks.js';\nexport { default as react_spectrum } from './react_spectrum.js';\nexport { default as redemption_ui } from './redemptionui.js';\nexport { default as sharesheet } from './assets.js';\nexport { default as spark } from './spark.js';\nexport { default as stock } from './stock.js';\nexport { default as stock_api } from './stock_api.js';\nexport { default as font_picker } from './font_picker.js';\nexport { default as fonts } from './fonts.js';\nexport { default as s3diweb} from './s3diweb.js';\nexport { default as s3diwebviewer } from './s3diweviewer';\nexport { default as commerce_ui } from './ucv2.js';\nexport { default as unifiedcheckout } from './ucv2.js';\nexport { default as unifiedcheckout_v1 } from './ucv1.js';\nexport { default as unifiedpanel } from './unifiedpanel.js';\nexport { default as uss } from './uss.js';\nexport { default as utilitynav } from './utilitynav.js';\nexport { default as ututs } from './ututs.js';\nexport { default as xd } from './xd.js';\nexport { default as mini_plans_photoshop_lightroom_start_trial } from './mini_plans_photoshop_lightroom_start_trial.js';\nexport { default as mini_plans } from './mini_plans.js';\nexport { default as adobedotcom } from './adobedotcom.js';\nexport { default as helpx } from './adobedotcom.js';\nexport { default as globalnav } from './globalnav.js';\nexport { default as switchplan_app } from './adobeaccount.js';\nexport { default as timeline } from './timeline.js';\nexport { default as _supplement } from './_supplement.js';\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/index.js","export default {\n  'cs' : 'cs-CZ',\n  'da' : 'da-DK',\n  'de' : 'de-DE',\n  'en' : 'en-US',\n  'es' : 'es-ES',\n  'fi' : 'fi-FI',\n  'fr' : 'fr-FR',\n  'it' : 'it-IT',\n  'ja' : 'ja-JP',\n  'ko' : 'ko-KR',\n  'nb' : 'nb-NO',\n  'nl' : 'nl-NL',\n  'pl' : 'pl-PL',\n  'pt' : 'pt-BR',\n  'ru' : 'ru-RU',\n  'sv' : 'sv-SE',\n  'tr' : 'tr-TR',\n  'zh-Hans' : 'zh-Hans-CN',\n  'zh-Hant' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/cchome.js","/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n*  Copyright 2023 Adobe Systems Incorporated\n*  All Rights Reserved.\n*\n* NOTICE:  All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any.  The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by all applicable intellectual property\n* laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport getAppLocale from './getAppLocale';\nimport { createLocaleFromIMS, normalize } from './utils';\n\n/*\n * @param {string} app - app code\n * @param {string} locale - locale name\n * @param {string} imsCountryCode - two-character IMS country code\n * @returns {{locale: string, match: boolean}}\n */\nconst getAppLocaleFromIMS = (app, locale, imsCountryCode) => {\n  if (typeof app === 'string') {\n    app = app.replace(/-/g, '_');\n  }\n\n  let { locale: newLocale, match } = createLocaleFromIMS(locale, imsCountryCode);\n  let appLocale = getAppLocale(app, newLocale);\n\n  // we have to support mini_plans a different list (a few less) than adobe.com\n  // https://jira.corp.adobe.com/browse/LS-7436\n  if (app === 'mini_plans' || app === 'mini_plans_photoshop_lightroom_start_trial') {\n    match = match && (newLocale === normalize(appLocale, app));\n  }\n\n  return {\n    match,\n    locale: appLocale\n  };\n}\n\nexport default getAppLocaleFromIMS;\n\n\n\n// WEBPACK FOOTER //\n// ./src/getAppLocaleFromIMS.js","/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n*  Copyright 2023 Adobe Systems Incorporated\n*  All Rights Reserved.\n*\n* NOTICE:  All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any.  The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by all applicable intellectual property\n* laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\nimport { urlApp, langParamApp } from './apps';\nimport { getAllLocales, getAppNameFromURL } from './utils';\nimport getAppLocale from './getAppLocale';\n\n/*\n * @param {string} url - the destination app url\n * @param {string} locale - locale you want to pass, it doesn not have to be the one destination app uses.\n * @returns {string} destination app localized url\n */\nconst getLocalizedURL = (url, locale) => {\n  \n  try {\n    if (typeof url !== 'string' || typeof locale !== 'string') {\n      throw Error('expect \"url\" and \"locale\" to be string.');\n    }\n    \n    url = url.trim()\n\n    if (url.toLowerCase().includes('adobe.com/go/')) {\n      return url;\n    }\n    \n    let localizedUrl = url;\n    const { name: app, appBaseURL } = getAppNameFromURL(url, true);\n    \n    if (app === undefined) {\n      throw Error(`this app is not supported yet: \"${url}\"`);\n    }\n\n    let appLocale = getAppLocale(app, locale);\n\n    if (appLocale) {\n      const allLocales = getAllLocales();\n\n      if (urlApp.includes(app)) {\n        \n        // remove english path as it doesn't work for adobe.com and helpx URL w/paths\n        if (appLocale === 'en' || appLocale === 'us' || appLocale === 'en-US') {\n          appLocale = '';\n        }\n\n        const pattern = `${appBaseURL}\\/(.*?)(?=\\/|$)`;\n        const thisLocale = (url.match(pattern) || [])[1];\n\n        if (thisLocale !== undefined && allLocales[thisLocale] !== undefined) {\n          localizedUrl = url.replace(`${appBaseURL}/${thisLocale}`, appLocale === '' ? appBaseURL : `${appBaseURL}/${appLocale}`);\n        } else {\n          if (appLocale !== '') {\n            localizedUrl = url.replace(appBaseURL, `${appBaseURL}/${appLocale}`);\n          }\n\n          // [ISENG-2617]: support HelpX User Guide URLs\n          if (app === 'helpx' && url.includes('.ug.html')) {\n            localizedUrl = localizedUrl.replace('.html/', `.html/${appLocale}/`);\n          }\n        }\n      } else {\n        const paramName = langParamApp.includes(app) ? (app === 'community' ? 'profile.language' : 'lang') : 'locale';\n\n        const reg = new RegExp(`(${paramName}=)(.*?)(?=&|$)`);\n        const loc = (url.match(reg) || [])[2];\n\n        if (loc !== undefined) {\n          localizedUrl = url.replace(reg, '$1' + appLocale);\n        } else {\n          localizedUrl = url + (url.includes('?') ? '&' : '?') + paramName + '=' + appLocale; \n        }\n      }\n    }\n\n    return localizedUrl;\n  } catch (e) {\n    if (process.env.NODE_ENV === 'development') {\n      console.error(`[getLocalizedURL] Error: ${e.message}`);\n    }\n  }\n\n  return url;\n};\n\nexport default getLocalizedURL;\n\n\n\n// WEBPACK FOOTER //\n// ./src/getLocalizedURL.js","export { default as getAppLocale } from './getAppLocale';\nexport { default as getAppLocales } from './getAppLocales';\nexport { default as getAppRegions } from './getAppRegions';\nexport { default as getAppLocaleFromIMS } from './getAppLocaleFromIMS';\nexport { default as getLocalizedURL } from './getLocalizedURL';\nexport { default as getLocalizedURLFromIMS } from './getLocalizedURLFromIMS';\nexport { default as parseLocaleParam } from './parseLocaleParam';\n\nexport * from './utils';\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","export default {\n  'cs'      : 'cs-CZ',\n  'da'      : 'da-DK',\n  'de'      : 'de-DE',\n  'en'      : 'en-US',\n  'es'      : 'es-ES',\n  'fi'      : 'fi-FI',\n  'fr'      : 'fr-FR',\n  'it'      : 'it-IT',\n  'ja'      : 'ja-JP',\n  'ko'      : 'ko-KR',\n  'nb'      : 'nb-NO',\n  'nl'      : 'nl-NL',\n  'pl'      : 'pl-PL',\n  'pt'      : 'pt-BR',\n  'ru'      : 'ru-RU',\n  'sv'      : 'sv-SE',\n  'tr'      : 'tr-TR',\n  'zh-hant'   : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/ucv2.js","export default {\n  'cs'      : 'cs-CZ',\n  'da'      : 'da-DK',\n  'de'      : 'de-DE',\n  'en'      : 'en-US',\n  'es'      : 'es-ES',\n  'fi'      : 'fi-FI',\n  'fr'      : 'fr-FR',\n  'it'      : 'it-IT',\n  'ja'      : 'ja-JP',\n  'ko'      : 'ko-KR',\n  'nb'      : 'nb-NO',\n  'nl'      : 'nl-NL',\n  'pl'      : 'pl-PL',\n  'pt'      : 'pt-BR',\n  'ru'      : 'ru-RU',\n  'sv'      : 'sv-SE',\n  'tr'      : 'tr-TR',\n  'zh-cn'   : 'zh-Hans-CN',\n  'zh-tw'   : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/adminconsole.js","export default {\n  'ar'      : 'ar-AE',\n  'bg'      : 'bg-BG',\n  'cs'      : 'cs-CZ',\n  'da'      : 'da-DK',\n  'de'      : 'de-DE',\n  'en'      : 'en-US',\n  'es'      : 'es-ES',\n  'et'      : 'et-EE',\n  'fi'      : 'fi-FI',\n  'fr'      : 'fr-FR',\n  'he'      : 'he-IL',\n  'hu'      : 'hu-HU',\n  'it'      : 'it-IT',\n  'ja'      : 'ja-JP',\n  'ko'      : 'ko-KR',\n  'lt'      : 'lt-LT',\n  'lv'      : 'lv-LV',\n  'nb'      : 'nb-NO',\n  'nl'      : 'nl-NL',\n  'pl'      : 'pl-PL',\n  'pt'      : 'pt-BR',\n  'ro'      : 'ro-RO',\n  'ru'      : 'ru-RU',\n  'sk'      : 'sk-SK',\n  'sl'      : 'sl-SI',\n  'sv'      : 'sv-SE',\n  'tr'      : 'tr-TR',\n  'uk'      : 'uk-UA',\n  'zh-Hans' : 'zh-Hans-CN',\n  'zh-Hant' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/adobeaccount.js","export default {\n  'cs'      : 'cs-CZ',\n  'da'      : 'da-DK',\n  'de'      : 'de-DE',\n  'en'      : 'en-US',\n  'es'      : 'es-ES',\n  'fi'      : 'fi-FI',\n  'fr'      : 'fr-FR',\n  'it'      : 'it-IT',\n  'ja'      : 'ja-JP',\n  'ko'      : 'ko-KR',\n  'nb'      : 'nb-NO',\n  'nl'      : 'nl-NL',\n  'pl'      : 'pl-PL',\n  'pt'      : 'pt-BR',\n  'ru'      : 'ru-RU',\n  'sv'      : 'sv-SE',\n  'tr'      : 'tr-TR',\n  'zh-Hans' : 'zh-Hans-CN',\n  'zh-Hant' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/assets.js","export default {\n  'cs-CZ' : 'cs-CZ',\n  'da-DK' : 'da-DK',\n  'de-DE' : 'de-DE',\n  'en-US' : 'en-US',\n  'es-ES' : 'es-ES',\n  'fi-FI' : 'fi-FI',\n  'fr-FR' : 'fr-FR',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'nb-NO' : 'nb-NO',\n  'nl-NL' : 'nl-NL',\n  'pl-PL' : 'pl-PL',\n  'pt-BR' : 'pt-BR',\n  'ru-RU' : 'ru-RU',\n  'sv-SE' : 'sv-SE',\n  'tr-TR' : 'tr-TR',    \n  'zh-CN' : 'zh-Hans-CN',\n  'zh-TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/behance.js","export default {\n  'cs-CZ' : 'cs-CZ',\n  'cy-GB' : 'cy-GB',\n  'da-DK' : 'da-DK',\n  'de-DE' : 'de-DE',\n  'en-GB' : 'en-GB',\n  'en-US' : 'en-US',\n  'es-ES' : 'es-ES',\n  'fi-FI' : 'fi-FI',\n  'fr-FR' : 'fr-FR',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'nb-NO' : 'nb-NO',\n  'nl-NL' : 'nl-NL',\n  'pt-BR' : 'pt-BR',\n  'ru-RU' : 'ru-RU',\n  'sv-SE' : 'sv-SE',\n  'tr-TR' : 'tr-TR',\n  'uk-UA' : 'uk-UA',\n  'zh-Hans-CN' : 'zh-Hans-CN',\n  'zh-Hant-TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/quick_actions.js","export default {\n  'cy-GB' : 'cy-GB',\n  'da-DK' : 'da-DK',\n  'de-DE' : 'de-DE',\n  'en-US' : 'en-US',\n  'es-ES' : 'es-ES',\n  'fi-FI' : 'fi-FI',\n  'fr-FR' : 'fr-FR',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'nb-NO' : 'nb-NO',\n  'nl-NL' : 'nl-NL',\n  'pt-BR' : 'pt-BR',\n  'sv-SE' : 'sv-SE',\n  'zh-Hans-CN' : 'zh-Hans-CN',\n  'zh-Hant-TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/squirrel.js","import cchome from './cchome';\n\nconst cchome_learn = {\n  ...cchome,\n  'hu' : 'hu-HU', \n  'uk' : 'uk-UA'\n}\n\nexport default cchome_learn\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/cchome_learn.js","import cchome from './cchome';\n\nconst cchome_leftnav = {\n  ...cchome,\n  'ms' : 'ms-MY', \n  'id' : 'id-ID', \n  'hu' : 'hu-HU', \n  'th' : 'th-TH', \n  'uk' : 'uk-UA'\n}\n\nexport default cchome_leftnav\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/cchome_leftnav.js","export default {\n  'cs_CZ' : 'cs-CZ',\n  'cy_GB' : 'cy-GB',\n  'da_DK' : 'da-DK',\n  'de_DE' : 'de-DE',\n  'en_US' : 'en-US',\n  'es_ES' : 'es-ES',\n  'es_MX' : 'es-MX',\n  'fi_FI' : 'fi-FI',\n  'fr_FR' : 'fr-FR',\n  'fr_CA' : 'fr-CA',\n  'fr_MA' : 'fr-MA',\n  'hu_HU' : 'hu-HU',\n  'it_IT' : 'it-IT',\n  'ja_JP' : 'ja-JP',\n  'ko_KR' : 'ko-KR',\n  'nb_NO' : 'nb-NO',\n  'nl_NL' : 'nl-NL',\n  'pl_PL' : 'pl-PL',\n  'pt_BR' : 'pt-BR',\n  'ru_RU' : 'ru-RU',\n  'sv_SE' : 'sv-SE',\n  'tr_TR' : 'tr-TR',    \n  'uk_UA' : 'uk-UA',    \n  'zh_CN' : 'zh-Hans-CN',\n  'zh_TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/cclibrary.js","export default {\n  'cs' : 'cs-CZ',\n  'da' : 'da-DK',\n  'de' : 'de-DE',\n  'en' : 'en-US',\n  'es' : 'es-ES',\n  'fi' : 'fi-FI',\n  'fr' : 'fr-FR',\n  'hu' : 'hu-HU',\n  'it' : 'it-IT',\n  'ja' : 'ja-JP',\n  'ko' : 'ko-KR',\n  'nb' : 'nb-NO',\n  'nl' : 'nl-NL',\n  'pl' : 'pl-PL',\n  'pt' : 'pt-BR',\n  'ru' : 'ru-RU',\n  'sv' : 'sv-SE',\n  'tr' : 'tr-TR',\n  'uk' : 'uk-UA',\n  'zh-Hans' : 'zh-Hans-CN',\n  'zh-Hant' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/ccsearch.js","export default {\n  'cs' : 'cs-CZ',\n  'da' : 'da-DK',\n  'de' : 'de-DE',\n  'en' : 'en-US',\n  'es' : 'es-ES',\n  'fi' : 'fi-FI',\n  'fr' : 'fr-FR',\n  'it' : 'it-IT',\n  'ja' : 'ja-JP',\n  'ko' : 'ko-KR',\n  'nb' : 'nb-NO',\n  'nl' : 'nl-NL',\n  'pl' : 'pl-PL',\n  'pt' : 'pt-BR',\n  'ru' : 'ru-RU',\n  'sv' : 'sv-SE',\n  'tr' : 'tr-TR',\n  'zh' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/color.js","export default {\n  'de' : 'de-DE',\n  'en' : 'en-US',\n  'es' : 'es-ES',\n  'fr' : 'fr-FR',\n  'ja' : 'ja-JP',\n  'ko' : 'ko-KR',\n  'pt' : 'pt-BR'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/community.js","export default {\n  'cs'      : 'cs-CZ',\n  'da'      : 'da-DK',\n  'de'      : 'de-DE',\n  'en'      : 'en-US',\n  'es'      : 'es-ES',\n  'fi'      : 'fi-FI',\n  'fr'      : 'fr-FR',\n  'it'      : 'it-IT',\n  'ja'      : 'ja-JP',\n  'ko'      : 'ko-KR',\n  'nb'      : 'nb-NO',\n  'nl'      : 'nl-NL',\n  'pl'      : 'pl-PL',\n  'pt'      : 'pt-BR',\n  'ru'      : 'ru-RU',\n  'sv'      : 'sv-SE',\n  'tr'      : 'tr-TR',\n  'zh-cn'   : 'zh-Hans-CN',\n  'zh-tw'   : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/creativecloudapp.js","export default {\n  'cs-CZ' : 'cs-CZ',\n  'da-DK' : 'da-DK',\n  'de-DE' : 'de-DE',\n  'en-US' : 'en-US',\n  'en-GB' : 'en-GB',\n  'es-ES' : 'es-ES',\n  'fi-FI' : 'fi-FI',\n  'fr-FR' : 'fr-FR',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'nb-NO' : 'nb-NO',\n  'nl-NL' : 'nl-NL',\n  'pl-PL' : 'pl-PL',\n  'pt-BR' : 'pt-BR',\n  'ru-RU' : 'ru-RU',\n  'sv-SE' : 'sv-SE',\n  'tr-TR' : 'tr-TR',\n  'zh-CN' : 'zh-Hans-CN',\n  'zh-TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/dcweb.js","export default {\n  'da-dk' : 'da-DK',\n  'de-de' : 'de-DE',\n  'en-us' : 'en-US',\n  'es-es' : 'es-ES',\n  'fr-fr' : 'fr-FR',\n  'hi-in' : 'hi-IN',\n  'it-it' : 'it-IT',\n  'ja-jp' : 'ja-JP',\n  'ko-kr' : 'ko-KR',\n  'pt-br' : 'pt-BR',\n  'pt-pt' : 'pt-PT',\n  'nb-no' : 'nb-NO',\n  'nl-nl' : 'nl-NL',\n  'sv-se' : 'sv-SE',\n  'ru-ru' : 'ru-RU',\n  'cmn-hans' : 'zh-Hans-CN',\n  'cmn-hant' : 'zh-Hant-TW',\n  'zh-hk' : 'zh-Hant-HK'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/dva_voice.js","export default {\n  'ar'      : 'ar-AE',\n  'bg'      : 'bg-BG',\n  'cs'      : 'cs-CZ',\n  'da'      : 'da-DK',\n  'de'      : 'de-DE',\n  'en'      : 'en-US',\n  'es'      : 'es-ES',\n  'et'      : 'et-EE',\n  'fi'      : 'fi-FI',\n  'fr'      : 'fr-FR',\n  'he'      : 'he-IL',\n  'hu'      : 'hu-HU',\n  'it'      : 'it-IT',\n  'ja'      : 'ja-JP',\n  'ko'      : 'ko-KR',\n  'lt'      : 'lt-LT',\n  'lv'      : 'lv-LV',\n  'nb'      : 'nb-NO',\n  'nl'      : 'nl-NL',\n  'pl'      : 'pl-PL',\n  'pt'      : 'pt-BR',\n  'ro'      : 'ro-RO',\n  'ru'      : 'ru-RU',\n  'sk'      : 'sk-SK',\n  'sl'      : 'sl-SI',\n  'sv'      : 'sv-SE',\n  'tr'      : 'tr-TR',\n  'uk'      : 'uk-UA',\n  'zh-hans' : 'zh-Hans-CN',\n  'zh-hant' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/editbilling.js","export default {\n  'de' : 'de-DE',\n  'en' : 'en-US',\n  'es' : 'es-ES',\n  'fr' : 'fr-FR',\n  'it' : 'it-IT',\n  'ja' : 'ja-JP',\n  'ko-kr' : 'ko-KR',\n  'pt-br' : 'pt-BR',\n  'zh-cn' : 'zh-Hans-CN',\n  'zh-tw' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/experiencecloud.js","export default {\n  'de' : 'de-DE',\n  'en' : 'en-US',\n  'es' : 'es-ES',\n  'fr' : 'fr-FR',\n  'it' : 'it-IT',\n  'ja' : 'ja-JP',\n  'ko' : 'ko-KR',\n  'ru' : 'ru-RU',\n  'pt-BR' : 'pt-BR',\n  'zh-CN' : 'zh-Hans-CN'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/frameio.js","export default {\n  'bg_BG'   : 'bg-BG',\n  'cs_CZ'   : 'cs-CZ',\n  'da_DK'   : 'da-DK',\n  'de_DE'   : 'de-DE',\n  'en_US'   : 'en-US',\n  'en_AE'   : 'en-AE',\n  'en_GB'   : 'en-GB',\n  'en_IL'   : 'en-IL',\n  'en_XM'   : 'en-x-MENA',\n  'es_ES'   : 'es-ES',\n  'es_LA'   : 'es-x-LA',\n  'es_MX'   : 'es-MX',\n  'es_NA'   : 'es-x-NA',\n  'et_EE'   : 'et-EE',\n  'fi_FI'   : 'fi-FI',\n  'fr_FR'   : 'fr-FR',\n  'fr_CA'   : 'fr-CA',\n  'fr_MA'   : 'fr-MA',\n  'fr_XM'   : 'fr-x-MENA',\n  'hr_HR'   : 'hr-HR',\n  'hu_HU'   : 'hu-HU',\n  'it_IT'   : 'it-IT',\n  'ja_JP'   : 'ja-JP',\n  'ko_KR'   : 'ko-KR',\n  'lt_LT'   : 'lt-LT',\n  'lv_LV'   : 'lv-LV',\n  'nb_NO'   : 'nb-NO',\n  'nl_NL'   : 'nl-NL',\n  'pl_PL'   : 'pl-PL',\n  'pt_BR'   : 'pt-BR',\n  'ro_RO'   : 'ro-RO',\n  'ru_RU'   : 'ru-RU',\n  'sk_SK'   : 'sk-SK',\n  'sl_SI'   : 'sl-SI',\n  'sr_RS'   : 'sr-RS',\n  'sr_SP'   : 'sr-RS',\n  'sv_SE'   : 'sv-SE',\n  'tr_TR'   : 'tr-TR',\n  'uk_UA'   : 'uk-UA',\n  'zh_HANS' : 'zh-Hans-CN',\n  'zh_CN'   : 'zh-Hans-CN',\n  'zh_HANT' : 'zh-Hant-TW',\n  'zh_TW'   : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/ims.js","export default {\n  'de-DE' : 'de-DE',\n  'en-US' : 'en-US',\n  'en-GB' : 'en-GB',\n  'es-ES' : 'es-ES',\n  'es-MX' : 'es-MX',\n  'fr-FR' : 'fr-FR',\n  'fr-CA' : 'fr-CA',\n  'hu-HU' : 'hu-HU',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'nl-NL' : 'nl-NL',\n  'pt-BR' : 'pt-BR',\n  'ru-RU' : 'ru-RU',\n  'sv-SE' : 'sv-SE',\n  'th-TH' : 'th-TH',\n  'uk-UA' : 'uk-UA',\n  'zh-CN' : 'zh-Hans-CN',\n  'zh-TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/lightroom.js","export default {\n  'ar_MENA' : 'ar-x-MENA',\n  'bg_BG' : 'bg-BG',\n  'cs_CZ' : 'cs-CZ',\n  'da_DK' : 'da-DK',\n  'de_DE' : 'de-DE',\n  'de_AT' : 'de-AT',\n  'de_CH' : 'de-CH',\n  'de_LU' : 'de-LU',\n  'en_US' : 'en-US',\n  'en_AU' : 'en-AU',\n  'en_BE' : 'en-BE',\n  'en_CA' : 'en-CA',\n  'en_CY' : 'en-CY',\n  'en_GB' : 'en-GB',\n  'en_GR' : 'en-GR',\n  'en_HK' : 'en-HK',\n  'en_IE' : 'en-IE',\n  'en_IL' : 'en-IL',\n  'en_IN' : 'en-IN',\n  'en_LU' : 'en-LU',\n  'en_MENA' : 'en-x-MENA',\n  'en_MT' : 'en-MT',\n  'en_NZ' : 'en-NZ',\n  'en_SEA' : 'en-x-SEA',\n  'en_ZA' : 'en-x-AFRICA',\n  'es_ES' : 'es-ES',\n  'es_LA' : 'es-x-LA',\n  'es_MX' : 'es-MX',\n  'et_EE' : 'et-EE',\n  'fi_FI' : 'fi-FI',\n  'fr_FR' : 'fr-FR',\n  'fr_BE' : 'fr-BE',\n  'fr_CA' : 'fr-CA',\n  'fr_CH' : 'fr-CH',\n  'fr_LU' : 'fr-LU',\n  'he_IL' : 'he-IL',\n  'hu_HU' : 'hu-HU',\n  'it_CH' : 'it-CH',\n  'it_IT' : 'it-IT',\n  'ja_JP' : 'ja-JP',\n  'ko_KR' : 'ko-KR',\n  'lt_LT' : 'lt-LT',\n  'lv_LV' : 'lv-LV',\n  'nb_NO' : 'nb-NO',\n  'nl_BE' : 'nl-BE',\n  'nl_NL' : 'nl-NL',\n  'pl_PL' : 'pl-PL',\n  'pt_BR' : 'pt-BR',\n  'pt_PT' : 'pt-PT',\n  'ro_RO' : 'ro-RO',\n  'ru_RU' : 'ru-RU',\n  'sk_SK' : 'sk-SK',\n  'sl_SI' : 'sl-SI',\n  'sv_SE' : 'sv-SE',\n  'tr_TR' : 'tr-TR',\n  'uk_UA' : 'uk-UA',\n  'zh_CN' : 'zh-Hans-CN',\n  'zh_TW' : 'zh-Hant-TW',\n  'zh_HK' : 'zh-Hant-HK'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/jarvis.js","export default {\n  'ar_AE'   : 'ar-AE',\n  'bg_BG'   : 'bg-BG',\n  'cs_CZ'   : 'cs-CZ',\n  'da_DK'   : 'da-DK',\n  'de_DE'   : 'de-DE',\n  'en_US'   : 'en-US',\n  'en_GB'   : 'en-GB',\n  'en_HK'   : 'en-HK',\n  'en_IL'   : 'en-IL',\n  'es_ES'   : 'es-ES',\n  'es_MX'   : 'es-MX',  \n  'et_EE'   : 'et-EE',\n  'fi_FI'   : 'fi-FI',\n  'fr_FR'   : 'fr-FR',\n  'fr_CA'   : 'fr-CA',\n  'he_IL'   : 'he-IL',\n  'hr_HR'   : 'hr-HR',\n  'hu_HU'   : 'hu-HU',\n  'it_IT'   : 'it-IT',\n  'ja_JP'   : 'ja-JP',\n  'ko_KR'   : 'ko-KR',\n  'lt_LT'   : 'lt-LT',\n  'lv_LV'   : 'lv-LV',\n  'nb_NO'   : 'nb-NO',\n  'nl_NL'   : 'nl-NL',\n  'pl_PL'   : 'pl-PL',\n  'pt_BR'   : 'pt-BR',\n  'ro_RO'   : 'ro-RO',\n  'ru_RU'   : 'ru-RU',\n  'sk_SK'   : 'sk-SK',\n  'sl_SI'   : 'sl-SI',\n  'sr_RS'   : 'sr-Latn-RS',\n  'sv_SE'   : 'sv-SE',\n  'tr_TR'   : 'tr-TR',\n  'uk_UA'   : 'uk-UA',\n  'zh_CN'   : 'zh-Hans-CN',\n  'zh_HK'   : 'zh-Hant-HK',\n  'zh_TW'   : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/mcs.js","export default {\n  'ar_AE' : 'ar-AE',\n  'bg_BG' : 'bg-BG',\n  'ca_ES' : 'ca-ES',\n  'cs_CZ' : 'cs-CZ',\n  'da_DK' : 'da-DK',\n  'de_DE' : 'de-DE',\n  'el_GR' : 'el-GR',\n  'en_US' : 'en-US',\n  'es_ES' : 'es-ES',\n  'et_EE' : 'et-EE',\n  'fa_IR' : 'fa-IR',\n  'fi_FI' : 'fi-FI',\n  'fr_FR' : 'fr-FR',\n  'he_IL' : 'he-IL',\n  'hi_IN' : 'hi-IN',\n  'ht_HT' : 'ht-HT',\n  'hu_HU' : 'hu-HU',\n  'id_ID' : 'id-ID',\n  'it_IT' : 'it-IT',\n  'ja_JP' : 'ja-JP',\n  'ko_KR' : 'ko-KR',\n  'lt_LT' : 'lt-LT',\n  'lv_LV' : 'lv-LV',\n  'ms_MY' : 'ms-MY',\n  'nl_NL' : 'nl-NL',\n  'no_NO' : 'nb-NO',\n  'pl_PL' : 'pl-PL',\n  'pt_BR' : 'pt-BR',\n  'ro_RO' : 'ro-RO',\n  'ru_RU' : 'ru-RU',\n  'sk_SK' : 'sk-SK',\n  'sl_SI' : 'sl-SI',\n  'sv_SE' : 'sv-SE',\n  'th_TH' : 'th-TH',\n  'tr_TR' : 'tr-TR',\n  'uk_UA' : 'uk-UA',\n  'ur_PK' : 'ur-PK',\n  'vi_VN' : 'vi-VN',\n  'zh_CN' : 'zh-Hans-CN',\n  'zh_TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/mt.js","export default {\n  'cs_CZ' : 'cs-CZ',\n  'da_DK' : 'da-DK',\n  'de_DE' : 'de-DE',\n  'en_US' : 'en-US',\n  'en_GB' : 'en-GB',\n  'en_IL' : 'en-IL',\n  'en_AE' : 'en-AE',\n  'en_XM' : 'en-x-MENA',\n  'es_ES' : 'es-ES',\n  'es_MX' : 'es-MX',\n  'es_LA' : 'es-x-LA',\n  'es_NA' : 'es-x-NA',\n  'fi_FI' : 'fi-FI',\n  'fr_FR' : 'fr-FR',\n  'fr_CA' : 'fr-CA',\n  'fr_MA' : 'fr-MA',\n  'fr_XM' : 'fr-x-MENA',\n  'it_IT' : 'it-IT',\n  'ja_JP' : 'ja-JP',\n  'ko_KR' : 'ko-KR',\n  'nb_NO' : 'nb-NO',\n  'nl_NL' : 'nl-NL',\n  'pl_PL' : 'pl-PL',\n  'pt_BR' : 'pt-BR',\n  'ru_RU' : 'ru-RU',\n  'sv_SE' : 'sv-SE',\n  'tr_TR' : 'tr-TR',\n  'hu_HU' : 'hu-HU',   \n  'sk_SK' : 'sk-SK',   \n  'sl_SI' : 'sl-SI',   \n  'uk_UA' : 'uk-UA',    \n  'zh_CN' : 'zh-Hans-CN',\n  'zh_TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/ngl.js","export default {\n  'cs-CZ' : 'cs-CZ',\n  'da-DK' : 'da-DK',\n  'de-DE' : 'de-DE',\n  'en-US' : 'en-US',\n  'en-GB' : 'en-GB',\n  'es-ES' : 'es-ES',\n  'fi-FI' : 'fi-FI',\n  'fr-FR' : 'fr-FR',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'nb-NO' : 'nb-NO',\n  'nl-NL' : 'nl-NL',\n  'pl-PL' : 'pl-PL',\n  'pt-BR' : 'pt-BR',\n  'ru-RU' : 'ru-RU',\n  'sv-SE' : 'sv-SE',\n  'tr-TR' : 'tr-TR',\n  'hu-HU' : 'hu-HU',\n  'sk-SK' : 'sk-SK',\n  'sl-SI' : 'sl-SI',\n  'uk-UA' : 'uk-UA',\n  'hr-HR' : 'hr-HR',\n  'ro-RO' : 'ro-RO',\n  'ca-ES' : 'ca-ES',\n  'eu-ES' : 'eu-ES',\n  'zh-CN' : 'zh-Hans-CN',\n  'zh-TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/acrobat_plan.js","export default {\n  'cs-CZ' : 'cs-CZ',\n  'da-DK' : 'da-DK',\n  'de-DE' : 'de-DE',\n  'en-US' : 'en-US',\n  'es-ES' : 'es-ES',\n  'fi-FI' : 'fi-FI',\n  'fr-FR' : 'fr-FR',\n  'hu-HU' : 'hu-HU',\n  'id-ID' : 'id-ID',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'ms-MY' : 'ms-MY',\n  'nb-NO' : 'nb-NO',\n  'nl-NL' : 'nl-NL',\n  'pl-PL' : 'pl-PL',\n  'pt-BR' : 'pt-BR',\n  'pt-PT' : 'pt-PT',\n  'ru-RU' : 'ru-RU',\n  'sv-SE' : 'sv-SE',\n  'th-TH' : 'th-TH',\n  'tr-TR' : 'tr-TR',\n  'uk-UA' : 'uk-UA',\n  'zh-TW' : 'zh-Hant-TW',\n  'zh-HK' : 'zh-Hant-HK'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/panellicensing.js","export default {\n'en'      : 'en-US', // English (United States)\n'en_GB'   : 'en-GB', // English (United Kingdom)\n'cs'      : 'cs-CZ', // Czech (Czech Republic)\n'da'      : 'da-DK', // Danish (Denmark)\n'de'      : 'de-DE', // German (Germany)\n'es'      : 'es-ES', // Spanish (Spain)\n'fi'      : 'fi-FI', // Finnish (Finland)\n'fr'      : 'fr-FR', // French (France)\n'it'      : 'it-IT', // Italian (Italy)\n'ja'      : 'ja-JP', // Japanese (Japan)\n'ko'      : 'ko-KR', // Korean (Korea)\n'nb'      : 'nb-NO', // Norwegian (Norway)\n'nl'      : 'nl-NL', // Dutch (Netherlands)\n'pl'      : 'pl-PL', // Polish (Poland)\n'pt'      : 'pt-BR', // Portuguese (brazil)\n'ru'      : 'ru-RU', // Russian (Russia)\n'sv'      : 'sv-SE', // Swedish (Sweden)\n'tr'      : 'tr-TR', // Turkish (Turkey)\n'uk'      : 'uk-UA', // Ukranian (Ukraine)\n'zh_Hans' : 'zh-Hans-CN', // Chinese Simplified (China)\n'zh_Hant' : 'zh-Hant-TW' // Chinese Traditional (Taiwan)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/psweb.js","export default {\n  en_us   : 'en-US', // English (United States)\n  en_au   : 'en-AU', // English (Australia)\n  en_be   : 'en-BE', // English (Belgium)\n  en_br   : 'en-BR', // English (Brazil)\n  en_ca   : 'en-CA', // English (Canada)\n  en_cis  : 'en-x-CIS', // English (Commonwealth of Independent States)\n  en_cy   : 'en-CY', // English (Cyprus)\n  en_gb   : 'en-GB', // English (United Kingdom)\n  en_gr   : 'en-GR', // English (Greece)\n  en_il   : 'en-IL', // English (Israel)\n  en_ie   : 'en-IE', // English (Ireland)\n  en_in   : 'en-IN', // English (India)\n  en_hk   : 'en-HK', // English (Hong Kong)\n  en_lu   : 'en-LU', // English (Luxembourg)\n  en_mena : 'en-x-MENA', // English (Middle East and North Africa)\n  en_mt   : 'en-MT', // English (Malta)\n  en_nz   : 'en-NZ', // English (New Zealand)\n  en_sea  : 'en-x-SEA', // English (Southeast Asia)\n  en_za   : 'en-ZA', // English (South Africa)\n  cs_cz   : 'cs-CZ', // Czech (Czech Republic)\n  da_dk   : 'da-DK', // Danish (Denmark)\n  de_de   : 'de-DE', // German (Germany)\n  de_ch   : 'de-CH', // German (Switzerland)\n  de_lu   : 'de-LU', // German (Luxembourg)\n  es_es   : 'es-ES', // Spanish (Spain)\n  es_419  : 'es-x-LA', // Spanish (Latin America)\n  es_mx   : 'es-MX', // Spanish (Mexico)\n  fr_fr   : 'fr-FR', // French (France)\n  fi_fi   : 'fi-FI', // Finnish (Finland)\n  fr_ca   : 'fr-CA', // French (Canada)\n  fr_ch   : 'fr-CH', // French (Switzerland)\n  fr_be   : 'fr-BE', // French (Belgium)\n  fr_mena : 'fr-x-MENA', // French (Middle East and North Africa)\n  fr_lu   : 'fr-LU', // French (Luxembourg)\n  it_it   : 'it-IT', // Italian (Italy)\n  it_ch   : 'it-CH', // Italian (Switzerland)\n  ja_jp   : 'ja-JP', // Japanese (Japan)\n  ko_kr   : 'ko-KR', // Korean (Korea)\n  nb_no   : 'nb-NO', // Norwegian (Norway)\n  nl_nl   : 'nl-NL', // Dutch (Netherlands)\n  pl_pl   : 'pl-PL', // Polish (Poland)\n  pt_pt   : 'pt-PT', // Portuguese (Portugal)\n  pt_br   : 'pt-BR', // Portuguese (Brazil)\n  ru_ru   : 'ru-RU', // Russian (Russia)\n  sv_se   : 'sv-SE', // Swedish (Sweden)\n  tr_tr   : 'tr-TR', // Turkish (Turkey)\n  zh_cn   : 'zh-Hans-CN', // Chinese Simplified (China)\n  zh_tw   : 'zh-Hant-TW' // Chinese Traditional (Taiwan)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/portfolio.js","export default {\n  'cy-GB' : 'cy-GB',\n  'da-DK' : 'da-DK',\n  'de-DE' : 'de-DE',\n  'en-US' : 'en-US',\n  'es-ES' : 'es-ES',\n  'fi-FI' : 'fi-FI',\n  'fr-FR' : 'fr-FR',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'nb-NO' : 'nb-NO',\n  'nl-NL' : 'nl-NL',\n  'pt-BR' : 'pt-BR',\n  'sv-SE' : 'sv-SE',\n  'zh-Hans-CN' : 'zh-Hans-CN',\n  'zh-Hant-TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/projectx.js","export default {\n  'cs'      : 'cs-CZ',\n  'da'      : 'da-DK',\n  'de'      : 'de-DE',\n  'en'      : 'en-US',\n  'es'      : 'es-ES',\n  'fi'      : 'fi-FI',\n  'fr'      : 'fr-FR',\n  'it'      : 'it-IT',\n  'ja'      : 'ja-JP',\n  'ko'      : 'ko-KR',\n  'nb'      : 'nb-NO',\n  'nl'      : 'nl-NL',\n  'pl'      : 'pl-PL',\n  'pt'      : 'pt-BR',\n  'ru'      : 'ru-RU',\n  'sv'      : 'sv-SE',\n  'tr'      : 'tr-TR',\n  'zh-tw'   : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/publiclinks.js","export default {\n  'ar-AE': 'ar-AE',\n  'bg-BG': 'bg-BG',\n  'cs-CZ': 'cs-CZ',\n  'da-DK': 'da-DK',\n  'de-DE': 'de-DE',\n  'en-US': 'en-US',\n  'es-ES': 'es-ES',\n  'et-EE': 'et-EE',\n  'fi-FI': 'fi-FI',\n  'fr-FR': 'fr-FR',\n  'he-IL': 'he-IL',\n  'hr-HR': 'hr-HR',\n  'hu-HU': 'hu-HU',\n  'it-IT': 'it-IT',\n  'ja-JP': 'ja-JP',\n  'ko-KR': 'ko-KR',\n  'lt-LT': 'lt-LT',\n  'lv-LV': 'lv-LV',\n  'nb-NO': 'nb-NO',\n  'nl-NL': 'nl-NL',\n  'pl-PL': 'pl-PL',\n  'pt-BR': 'pt-BR',\n  'ro-RO': 'ro-RO',\n  'ru-RU': 'ru-RU',\n  'sk-SK': 'sk-SK',\n  'sl-SI': 'sl-SI',\n  'sr-SP': 'sr-Latn-RS',\n  'sv-SE': 'sv-SE',\n  'tr-TR': 'tr-TR',\n  'uk-UA': 'uk-UA',\n  'zh-CN': 'zh-Hans-CN',\n  'zh-TW': 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/react_spectrum.js","export default {\n  'cs'      : 'cs-CZ',\n  'da'      : 'da-DK',\n  'de'      : 'de-DE',\n  'en'      : 'en-US',\n  'es'      : 'es-ES',\n  'fi'      : 'fi-FI',\n  'fr'      : 'fr-FR',\n  'it'      : 'it-IT',\n  'ja'      : 'ja-JP',\n  'ko'      : 'ko-KR',\n  'nb'      : 'nb-NO',\n  'nl'      : 'nl-NL',\n  'pl'      : 'pl-PL',\n  'pt'      : 'pt-BR',\n  'ru'      : 'ru-RU',\n  'sv'      : 'sv-SE',\n  'tr'      : 'tr-TR',\n  'zh-hans'   : 'zh-Hans-CN',\n  'zh-hant'   : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/redemptionui.js","export default {\n  'cy-GB' : 'cy-GB',\n  'en-US' : 'en-US',\n  'de-DE' : 'de-DE',\n  'fr-FR' : 'fr-FR',\n  'es-ES' : 'es-ES',\n  'it-IT' : 'it-IT',\n  'pt-BR' : 'pt-BR',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'nb-NO' : 'nb-NO',\n  'da-DK' : 'da-DK',\n  'nl-NL' : 'nl-NL',\n  'sv-SE' : 'sv-SE',\n  'fi-FI' : 'fi-FI',\n  'zh-Hans-CN' : 'zh-Hans-CN',\n  'zh-Hant-TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/spark.js","export default {\n  'bg'         : 'bg-BG',\n  'cz'         : 'cs-CZ',\n  'dk'         : 'da-DK',\n  'de'         : 'de-DE',\n  'at'         : 'de-AT',\n  'ch_de'      : 'de-CH',\n  'lu_de'      : 'de-LU',\n  'gr_en'      : 'el-GR',\n  'cy_en'      : 'el-CY',\n  'us'         : 'en-US',\n  'be_en'      : 'en-BE',\n  'ca'         : 'en-CA',\n  'au'         : 'en-AU',\n  'uk'         : 'en-GB',  \n  'ie'         : 'en-IE',\n  'lu_en'      : 'en-LU',\n  'nz'         : 'en-NZ',\n  'ph'         : 'en-PH',\n  'sg'         : 'en-SG',\n  'es'         : 'es-ES',\n  'ar'         : 'es-AR',\n  'cl'         : 'es-CL',\n  'co'         : 'es-CO',\n  'cr'         : 'es-CR',\n  'ec'         : 'es-EC',\n  'gt'         : 'es-GT',\n  'mx'         : 'es-MX',\n  'pe'         : 'es-PE',\n  've'         : 'es-VE',\n  'ee'         : 'et-EE',\n  'fi'         : 'fi-FI',\n  'fr'         : 'fr-FR',\n  'be_fr'      : 'fr-BE',\n  'ca_fr'      : 'fr-CA',\n  'ch_fr'      : 'fr-CH',\n  'lu_fr'      : 'fr-LU',\n  'il'         : 'he-IL',\n  'in'         : 'hi-IN',\n  'hu'         : 'hu-HU',\n  'it'         : 'it-IT',\n  'ch_it'      : 'it-CH',\n  'jp'         : 'ja-JP',\n  'kr'         : 'ko-KR',\n  'lt'         : 'lt-LT',\n  'lv'         : 'lv-LV',\n  'mt'         : 'mt-MT',\n  'no'         : 'nb-NO',\n  'nl'         : 'nl-NL',\n  'be_nl'      : 'nl-BE',\n  'pl'         : 'pl-PL',\n  'pt'         : 'pt-PT',\n  'br'         : 'pt-BR',\n  'ro'         : 'ro-RO',\n  'ru'         : 'ru-RU',\n  'sk'         : 'sk-SK',\n  'si'         : 'sl-SI',\n  'se'         : 'sv-SE',\n  'th'         : 'th-TH',\n  'tr'         : 'tr-TR',\n  'ua'         : 'uk-UA',\n  'tw'         : 'zh-Hant-TW',\n  'hk'         : 'zh-Hant-HK'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/stock.js","export default {\n  'cs_CZ' : 'cs-CZ',\t// Czech - Czech Republic\n  'da_DK' : 'da-DK',\t// Danish - Danmark\n  'de_AT' : 'de-AT',\t// German - Austria\n  'de_CH' : 'de-CH',\t// German - Switzerland\n  'de_DE' : 'de-DE',\t// German - Germany\n  'de_LU' : 'de-LU',\t// German - Luxembourg\n  'en_US' : 'en-US',\t// English - United States\n  'cy_EN' : 'en-CY',\t// English - Cyprus\n  'be_EN' : 'en-BE',\t// English - Belgium\n  'ca_EN' : 'en-CA',\t// English - Canada\n  'en_AE' : 'en-AE',\t// English - United Arab Emirates\n  'en_AU' : 'en-AU',\t// English - Australia\n  'en_BG' : 'en-BG',\t// English - Bulgaria\n  'en_BH' : 'en-BH',\t// Bahrain - English\n  'en_DZ' : 'en-DZ',\t// English - Algeria\n  'en_EE' : 'en-EE',\t// English - Estonia\n  'en_EG' : 'en-EG',\t// English - Egypt\n  'en_FI' : 'en-FI',\t// English - Finland\n  'en_HR' : 'en-HR',\t// Croatia - English\n  'en_HU' : 'en-HU',\t// English - Hungary\n  'en_ID' : 'en-ID',\t// English - Indonesia\n  'en_IE' : 'en-IE',\t// English - Ireland\n  'en_IL' : 'en-IL',\t// English - Israel\n  'en_JO' : 'en-JO',\t// Jordan - English\n  'en_KE' : 'en-KE',\t// English - Kenya\n  'en_KW' : 'en-KW',\t// Kuwait - English\n  'en_LB' : 'en-LB',\t// Lebanon - English\n  'en_LK' : 'en-LK',\t// English - Sri Lanka\n  'en_LT' : 'en-LT',\t// English - Lithuania\n  'en_LV' : 'en-LV',\t// English - Latvia\n  'en_MA' : 'en-MA',\t// English - Morocco\n  'en_MT' : 'en-MT',\t// English - Malta\n  'en_MY' : 'en-MY',\t// English - Malaysia\n  'en_NG' : 'en-NG',\t// English - Nigeria\n  'en_NZ' : 'en-NZ',\t// English - New Zealand\n  'en_OM' : 'en-OM',\t// Oman - English\n  'en_QA' : 'en-QA',\t// Qatar - English\n  'en_RO' : 'en-RO',\t// English - Romania\n  'en_SA' : 'en-SA',\t// English - Saudi Arabia\n  'en_SI' : 'en-SI',\t// English - Slovenia\n  'en_SK' : 'en-SK',\t// Slovakian - Slovakia\n  'en_TH' : 'en-TH',\t// English - Thailand\n  'en_TR' : 'en-TR',\t// English - Turkey\n  'en_UA' : 'en-UA',\t// English - Ukraine\n  'en_UK' : 'en-UK',\t// English - United Kingdom\n  'en_VN' : 'en-VN',\t// English - Vietnam\n  'gr_EN' : 'en-GR',\t// English - Greece\n  'lu_EN' : 'lu-EN',\t// English - Luxembourg\n  'es_ES' : 'es-ES',\t// Spanish - Spain\n  'es_BO' : 'es-BO',\t// Spanish - Bolivia\n  'es_DO' : 'es-DO',\t// Spanish - Dominican Republic\n  'es_MX' : 'es-MX',\t// Spanish - Mexico\n  'es_PA' : 'es-PA',\t// Panamá - Spanish\n  'es_PY' : 'es-PY',\t// Paraguay - Spanish\n  'es_SV' : 'es-SV',\t// El Salvador - Spanish\n  'fr_FR' : 'fr-FR',\t// French - France\n  'fr_CA' : 'fr-CA',\t// French - Canada\n  'fr_BE' : 'fr-BE',\t// French - Belgium\n  'fr_CH' : 'fr-CH',\t// French - Switzerland\n  'fr_LU' : 'fr-LU',\t// French - Luxembourg\n  'fr_MA' : 'fr-MA',\t// French - Marocco\n  'it_IT' : 'it-IT',\t// Italian - Italia\n  'it_CH' : 'it-CH',\t// Italian - Switzerland\n  'ja_JP' : 'ja-JP',\t// Japanese - Japan\n  'ko_KR' : 'ko-KR',\t// Korean - South Korea\n  'nb_NO' : 'nb-NO',\t// Bokmal Norwegian - Norway\n  'nl_NL' : 'nl-NL',\t// Dutch - Nederlands\n  'nl_BE' : 'nl-BE',\t// Dutch - Belgium\n  'pl_PL' : 'pl-PL',\t// Polish - Poland\n  'pt_BR' : 'pt-BR',\t// Brazilan Portuguese - Brazil\n  'pt_PT' : 'pt-PT',\t// Portuguese - Portugal\n  'ru_RU' : 'ru-RU',\t// Russian - Russia\n  'ru_KZ' : 'ru-KZ',\t// Russian - Kazakhstan\n  'ru_UZ' : 'ru-UZ',\t// Russian - Uzbekistan\n  'sv_SE' : 'sv-SE' \t// Swedish- Sweden\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/stock_api.js","export default {\n  'cs-CZ' : 'cs-CZ',\n  'cy-GB' : 'cy-GB',\n  'da-DK' : 'da-DK',\n  'de-DE' : 'de-DE',\n  'en-US' : 'en-US',\n  'es-ES' : 'es-ES',\n  'fi-FI' : 'fi-FI',\n  'fr-FR' : 'fr-FR',\n  'hu-HU' : 'hu-HU',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'nb-NO' : 'nb-NO',\n  'nl-NL' : 'nl-NL',\n  'pl-PL' : 'pl-PL',\n  'pt-BR' : 'pt-BR',\n  'ru-RU' : 'ru-RU',\n  'sv-SE' : 'sv-SE',\n  'tr-TR' : 'tr-TR',\n  'uk-UA' : 'uk-UA',\n  'zh-CN' : 'zh-Hans-CN',\n  'zh-TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/font_picker.js","export default {\n  'da-DK' : 'da-DK',\n  'de-DE' : 'de-DE',\n  'en-US' : 'en-US',\n  'es-ES' : 'es-ES',\n  'fi-FI' : 'fi-FI',\n  'fr-FR' : 'fr-FR',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'nb-NO' : 'nb-NO',\n  'nl-NL' : 'nl-NL',\n  'pt-BR' : 'pt-BR',\n  'sv-SE' : 'sv-SE',\n  'ru-RU' : 'ru-RU',\n  'zh-CN' : 'zh-Hans-CN',\n  'zh-TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/fonts.js","export default {\n  'de-DE': 'de-DE',\n  'en-US': 'en-US',\n  'fr-FR': 'fr-FR',\n  'ja-JP': 'ja-JP',\n  'zh-Hans': 'zh-Hans-CN'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/s3diweb.js","export default {\n  'cs-CZ': 'cs-CZ',\n  'da-DK': 'da-DK',\n  'de-DE': 'de-DE',\n  'en-US': 'en-US',\n  'es-ES': 'es-ES',\n  'es-MX': 'es-MX',\n  'fi-FI': 'fi-FI',\n  'fr-CA': 'fr-CA',\n  'fr-FR': 'fr-FR',\n  'it-IT': 'it-IT',\n  'ja-JP': 'ja-JP',\n  'ko-KR': 'ko-KR',\n  'nb-NO': 'nb-NO',\n  'nl-NL': 'nl-NL',\n  'pl-PL': 'pl-PL',\n  'pt-BR': 'pt-BR',\n  'ru-RU': 'ru-RU',\n  'sv-SE': 'sv-SE',\n  'tr-TR': 'tr-TR',\n  'zh-Hans': 'zh-Hans-CN',\n  'zh-Hant': 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/s3diweviewer.js","export default {\n  'cs'      : 'cs-CZ',\n  'da'      : 'da-DK',\n  'de'      : 'de-DE',\n  'en'      : 'en-US',\n  'es'      : 'es-ES',\n  'fi'      : 'fi-FI',\n  'fr'      : 'fr-FR',\n  'it'      : 'it-IT',\n  'ja'      : 'ja-JP',\n  'ko'      : 'ko-KR',\n  'nb'      : 'nb-NO',\n  'nl'      : 'nl-NL',\n  'no'      : 'nb-NO',\n  'pl'      : 'pl-PL',\n  'pt'      : 'pt-BR',\n  'ru'      : 'ru-RU',\n  'sv'      : 'sv-SE',\n  'tr'      : 'tr-TR',\n  'zh-tw'   : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/ucv1.js","export default {\n  'cs' : 'cs-CZ',\n  'da' : 'da-DK',\n  'de' : 'de-DE',\n  'en' : 'en-US',\n  'es' : 'es-ES',\n  'fi' : 'fi-FI',\n  'fr' : 'fr-FR',\n  'hu' : 'hu-HU',\n  'it' : 'it-IT',\n  'ja' : 'ja-JP',\n  'ko' : 'ko-KR',\n  'nb' : 'nb-NO',\n  'nl' : 'nl-NL',\n  'pl' : 'pl-PL',\n  'pt' : 'pt-BR',\n  'ru' : 'ru-RU',\n  'sv' : 'sv-SE',\n  'tr' : 'tr-TR',\n  'uk' : 'uk-UA',\n  'zh-Hans' : 'zh-Hans-CN',\n  'zh-Hant' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/unifiedpanel.js","export default {\n  'cs_CZ'   : 'cs-CZ',\n  'da_DK'   : 'da-DK',\n  'de_DE'   : 'de-DE',\n  'de_LU'   : 'de-LU',\n  'el_GR'   : 'el-GR',\n  'en_US'   : 'en-US',\n  'en_GB'   : 'en-GB',\n  'es_ES'   : 'es-ES',\n  'et_EE'   : 'et-EE',\n  'fi_FI'   : 'fi-FI',\n  'fr_FR'   : 'fr-FR',\n  'fr_CA'   : 'fr-CA',\n  'hu_HU'   : 'hu-HU',\n  'it_IT'   : 'it-IT',\n  'ja_JP'   : 'ja-JP',\n  'ko_KR'   : 'ko-KR',\n  'nb_NO'   : 'nb-NO',\n  'nl_NL'   : 'nl-NL',\n  'pl_PL'   : 'pl-PL',\n  'pt_BR'   : 'pt-BR',\n  'pt_PT'   : 'pt-PT',\n  'ro_RO'   : 'ro-RO',\n  'ru_RU'   : 'ru-RU',\n  'sv_SE'   : 'sv-SE',\n  'tr_TR'   : 'tr-TR',\n  'uk_UA'   : 'uk-UA',\n  'zh_CN'   : 'zh-Hans-CN',\n  'zh_TW'   : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/uss.js","export default {\n  'cs_CZ' : 'cs-CZ',\n  'cy_GB' : 'cy-GB',\n  'da_DK' : 'da-DK',\n  'de_DE' : 'de-DE',\n  'en_US' : 'en-US',\n  'es_ES' : 'es-ES',\n  'fi_FI' : 'fi-FI',\n  'fr_FR' : 'fr-FR',\n  'it_IT' : 'it-IT',\n  'ja_JP' : 'ja-JP',\n  'ko_KR' : 'ko-KR',\n  'nb_NO' : 'nb-NO',\n  'nl_NL' : 'nl-NL',\n  'pl_PL' : 'pl-PL',\n  'pt_PT' : 'pt-PT',\n  'pt_BR' : 'pt-BR',\n  'ru_RU' : 'ru-RU',\n  'sv_SE' : 'sv-SE',\n  'tr_TR' : 'tr-TR',    \n  'uk_UA' : 'uk-UA',    \n  'zh_CN' : 'zh-Hans-CN',\n  'zh_TW' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/utilitynav.js","export default {\n  'cs_CZ': 'cs-CZ',\n  'da_DK': 'da-DK',\n  'de_DE': 'de-DE',\n  'en_US': 'en-US',\n  'en_AE': 'en-AE',\n  'en_GB': 'en-GB',\n  'en_IL': 'en-IL',\n  'es_ES': 'es-ES',\n  'es_MX': 'es-MX',\n  'fi_FI': 'fi-FI',\n  'fr_FR': 'fr-FR',\n  'fr_CA': 'fr-CA',\n  'fr_MA': 'fr-MA',\n  'hu_HU': 'hu-HU',\n  'it_IT': 'it-IT',\n  'ja_JP': 'ja-JP',\n  'ko_KR': 'ko-KR',\n  'nb_NO': 'nb-NO',\n  'nl_NL': 'nl-NL',\n  'pl_PL': 'pl-PL',\n  'pt_BR': 'pt-BR',\n  'ru_RU': 'ru-RU',\n  'sv_SE': 'sv-SE',\n  'tr_TR': 'tr-TR',\n  'uk_UA': 'uk-UA',\n  'zh_CN': 'zh-Hans-CN',\n  'zh_TW': 'zh-Hant-TW',\n  'de_AT': 'de-AT',\n  'de_CH': 'de-CH',\n  'de_LU': 'de-LU',\n  'en_ZA': 'en-x-AFRICA',\n  'en_AU': 'en-AU',\n  'en_BE': 'en-BE',\n  'en_CA': 'en-CA',\n  'en_LU': 'en-LU',\n  'en_MENA': 'en-x-MENA',\n  'en_MT': 'en-MT',\n  'en_NZ': 'en-NZ',\n  'en_SA': 'en-SA',\n  'en_SG': 'en-SG',\n  'en_TH': 'en-TH',\n  'en_IN': 'en-IN',\n  'en_IE': 'en-IE',\n  'en_GR': 'en-GR',\n  'en_HK': 'en-HK',\n  'en_CY': 'en-CY',\n  'en_PH': 'en-PH',\n  'en_ID': 'en-ID',\n  'en_MY': 'en-MY',\n  'en_VN': 'en-VN',\n  'es_LA': 'es-x-LA',\n  'es_CL': 'es-CL',\n  'es_AR': 'es-AR',\n  'es_PE': 'es-PE',\n  'es_CO': 'es-CO',\n  'fr_BE': 'fr-BE',\n  'fr_CH': 'fr-CH',\n  'fr_LU': 'fr-LU',\n  'it_CH': 'it-CH',\n  'nl_BE': 'nl-BE',\n  'pt_PT': 'pt-PT',\n  'zh_HK': 'zh-Hant-HK',\n  'bg_BG': 'bg-BG',\n  'et_EE': 'et-EE',\n  'he_IL': 'he-IL',\n  'lt_LT': 'lt-LT',\n  'lv_LV': 'lv-LV',\n  'ar_MENA': 'ar-x-MENA',\n  'ar_AE': 'ar-AE',\n  'ar_SA': 'ar-SA',\n  'ro_RO': 'ro-RO',\n  'sl_SL': 'sl-SL',\n  'sk_SK': 'sk-SK',\n  'th_TH': 'th-TH',\n  'fil_PH': 'fil-PH',\n  'id_ID': 'id-ID',\n  'my_MS': 'ms-MY',\n  'vn_VI': 'vn-VI',\n  'in_HI': 'hi-IN'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/ututs.js","export default {\n  'de-DE' : 'de-DE',\n  'en-US' : 'en-US',\n  'es-ES' : 'es-ES',\n  'fr-FR' : 'fr-FR',\n  'it-IT' : 'it-IT',\n  'ja-JP' : 'ja-JP',\n  'ko-KR' : 'ko-KR',\n  'pt-BR' : 'pt-BR',\n  'ru-RU' : 'ru-RU'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/xd.js","export default {\n  'au'       : 'en-AU',         // English (Australia)\n  'nz'       : 'en-NZ'          // English (New Zealand)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/mini_plans_photoshop_lightroom_start_trial.js","export default {\n  'bg'       : 'bg-BG',         // Bulgarian (Bulgaria)\n  'cz'       : 'cs-CZ',         // Czech (Czech Republic)\n  'dk'       : 'da-DK',         // Danish (Denmark)\n  'de'       : 'de-DE',         // German (Germany)\n  'at'       : 'de-AT',         // German (Austria)\n  'ch_de'    : 'de-CH',         // German (Switzerland)\n  'lu_de'    : 'de-LU',         // German (Luxembourg)\n  'us'       : 'en-US',         // English (United States) - Default Locale\n  'au'       : 'en-AU',         // English (Australia)\n  'be_en'    : 'en-BE',         // English (Belgium)\n  'ca'       : 'en-CA',         // English (Canada)\n  'cy_en'    : 'en-CY',         // English (Cyprus)\n  'uk'       : 'en-GB',         // English (United Kingdom)\n  'gr_en'    : 'en-GR',         // English (Greece)\n  'hk_en'    : 'en-HK',         // English (Hong Kong)\n  'ie'       : 'en-IE',         // English (Ireland) \n  'lu_en'    : 'en-LU',         // English (Luxembourg)\n  'mt'       : 'en-MT',         // English (Malta)\n  'nz'       : 'en-NZ',         // English (New Zealand)\n  'africa'   : 'en-x-AFRICA',   // English (Africa)\n  'ar'       : 'es-AR',         // Spanish (Argentina)\n  'cl'       : 'es-CL',         // Spanish (Chile)\n  'co'       : 'es-CO',         // Spanish (Colombia)\n  'es'       : 'es-ES',         // Spanish (Spain)\n  'mx'       : 'es-MX',         // Spanish (Mexico)\n  'pe'       : 'es-PE',         // Spanish (Peru)\n  'ee'       : 'et-EE',         // Estonian (Estonia)\n  'fi'       : 'fi-FI',         // Finnish (Finland)\n  'fr'       : 'fr-FR',         // French (France)\n  'be_fr'    : 'fr-BE',         // French (Belgium)\n  'ca_fr'    : 'fr-CA',         // French (Canada)\n  'ch_fr'    : 'fr-CH',         // French (Switzerland)\n  'lu_fr'    : 'fr-LU',         // French (Luxembourg)\n  'hu'       : 'hu-HU',         // Hungarian (Hungary)\n  'it'       : 'it-IT',         // Italian (Italy)\n  'ch_it'    : 'it-CH',         // Italian (Switzerland)\n  'jp'       : 'ja-JP',         // Japanese (Japan)\n  'kr'       : 'ko-KR',         // Korean (Korea)\n  'lt'       : 'lt-LT',         // Lithuanian (Lithuania)\n  'lv'       : 'lv-LV',         // Latvian (Latvia)\n  'no'       : 'nb-NO',         // Norwegian (Norway)\n  'nl'       : 'nl-NL',         // Dutch (Netherlands)\n  'be_nl'    : 'nl-BE',         // Dutch (Belgium)\n  'pl'       : 'pl-PL',         // Polish (Poland)\n  'pt'       : 'pt-PT',         // Portuguese (Portugal)\n  'br'       : 'pt-BR',         // Portuguese (Brazil)\n  'ro'       : 'ro-RO',         // Romanian (Romania)\n  'ru'       : 'ru-RU',         // Russian (Russia)\n  'sk'       : 'sk-SK',         // Slovakian (Slovakia)\n  'si'       : 'sl-SI',         // Slovenian (Slovenia)\n  'se'       : 'sv-SE',         // Swedish (Sweden) \n  'hk_zh'    : 'zh-Hant-HK'     // Chinese Traditional (Hong Kong)   \n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/mini_plans.js","export default {\n  'mena_ar'  : 'ar-x-MENA',     // Arabic (Middle East and North Africa)\n  'ae_ar'    : 'ar-AE',         // Arabic (United Arab Emirates)\n  'sa_ar'    : 'ar-SA',         // Arabic (Saudi Arabia)\n  'bg'       : 'bg-BG',         // Bulgarian (Bulgaria)\n  'cz'       : 'cs-CZ',         // Czech (Czech Republic)\n  'dk'       : 'da-DK',         // Danish (Denmark)\n  'de'       : 'de-DE',         // German (Germany)\n  'at'       : 'de-AT',         // German (Austria)\n  'ch_de'    : 'de-CH',         // German (Switzerland)\n  'lu_de'    : 'de-LU',         // German (Luxembourg)\n  'ph_fil'   : 'fil-PH',        // Filipino (Philippines)\n  'us'       : 'en-US',         // English (United States) - Default Locale\n  'ae_en'    : 'en-AE',         // English (United Arab Emirates)\n  'au'       : 'en-AU',         // English (Australia)\n  'be_en'    : 'en-BE',         // English (Belgium)\n  'ca'       : 'en-CA',         // English (Canada)\n  'cy_en'    : 'en-CY',         // English (Cyprus)\n  'uk'       : 'en-GB',         // English (United Kingdom)\n  'gr_en'    : 'en-GR',         // English (Greece)\n  'hk_en'    : 'en-HK',         // English (Hong Kong)\n  'ie'       : 'en-IE',         // English (Ireland)\n  'il_en'    : 'en-IL',         // English (Israel)\n  'in'       : 'en-IN',         // English (India)\n  'lu_en'    : 'en-LU',         // English (Luxembourg)\n  'mt'       : 'en-MT',         // English (Malta)\n  'nz'       : 'en-NZ',         // English (New Zealand)\n  'sa_en'    : 'en-SA',         // English (Saudi Arabia)\n  'sg'       : 'en-SG',         // English (Singapore)\n  'th_en'    : 'en-TH',         // English (Thailand)\n  'ph_en'    : 'en-PH',         // English (Philippines)\n  'id_en'    : 'en-ID',         // English (Indonesia)\n  'my_en'    : 'en-MY',         // English (Malaysia)\n  'vn_en'    : 'en-VN',         // English (Vietnam)\n  'africa'   : 'en-x-AFRICA',   // English (Africa)\n  'cis_en'   : 'en-x-CIS',      // English (Commonwealth of Independent States)\n  'mena_en'  : 'en-x-MENA',     // English (Middle East and North Africa)\n  'sea'      : 'en-x-SEA',      // English (Southeast Asia)\n  'es'       : 'es-ES',         // Spanish (Spain)\n  'mx'       : 'es-MX',         // Spanish (Mexico)\n  'cl'       : 'es-CL',         // Spanish (Chile)\n  'ar'       : 'es-AR',         // Spanish (Argentina)\n  'co'       : 'es-CO',         // Spanish (Colombia)\n  'pe'       : 'es-PE',         // Spanish (Peru)\n  'la'       : 'es-x-LA',       // Spanish (Latin America)\n  'ee'       : 'et-EE',         // Estonian (Estonia)\n  'fi'       : 'fi-FI',         // Finnish (Finland)\n  'fr'       : 'fr-FR',         // French (France)\n  'be_fr'    : 'fr-BE',         // French (Belgium)\n  'ca_fr'    : 'fr-CA',         // French (Canada)\n  'ch_fr'    : 'fr-CH',         // French (Switzerland)\n  'lu_fr'    : 'fr-LU',         // French (Luxembourg)\n  'il_he'    : 'he-IL',         // Hebrew (Israel)\n  'hu'       : 'hu-HU',         // Hungarian (Hungary)\n  'in_hi'    : 'hi-IN',         // Hindi (India)\n  'id_id'    : 'id-ID',         // Indonesian (Indonesia)\n  'it'       : 'it-IT',         // Italian (Italy)\n  'ch_it'    : 'it-CH',         // Italian (Switzerland)\n  'jp'       : 'ja-JP',         // Japanese (Japan)\n  'kr'       : 'ko-KR',         // Korean (Korea)\n  'lt'       : 'lt-LT',         // Lithuanian (Lithuania)\n  'lv'       : 'lv-LV',         // Latvian (Latvia)\n  'my_ms'    : 'ms-MY',         // Malay (Malaysia)\n  'no'       : 'nb-NO',         // Norwegian (Norway)\n  'nl'       : 'nl-NL',         // Dutch (Netherlands)\n  'be_nl'    : 'nl-BE',         // Dutch (Belgium)\n  'pl'       : 'pl-PL',         // Polish (Poland)\n  'pt'       : 'pt-PT',         // Portuguese (Portugal)\n  'br'       : 'pt-BR',         // Portuguese (Brazil)\n  'ro'       : 'ro-RO',         // Romanian (Romania)\n  'ru'       : 'ru-RU',         // Russian (Russia)\n  'cis_ru'   : 'ru-x-CIS',      // Russian (Commonwealth of Independent States)\n  'sk'       : 'sk-SK',         // Slovakian (Slovakia)\n  'si'       : 'sl-SI',         // Slovenian (Slovenia)\n  'se'       : 'sv-SE',         // Swedish (Sweden)\n  'th_th'    : 'th-TH',         // Thai (Thailand)\n  'tr'       : 'tr-TR',         // Turkish (Turkey)\n  'ua'       : 'uk-UA',         // Ukrainian (Ukraine)\n  'vn_vi'    : 'vi-VN',         // Vietnamese (Vietnam)\n  'cn'       : 'zh-Hans-CN',    // Chinese Simplified (China)\n  'tw'       : 'zh-Hant-TW',    // Chinese Traditional (Taiwan) \n  'hk_zh'    : 'zh-Hant-HK'     // Chinese Traditional (Hong Kong)   \n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/adobedotcom.js","export default {\n  'mena_ar'  : 'ar-x-MENA',     // Arabic (Middle East and North Africa)\n  'ae_ar'    : 'ar-AE',         // Arabic (United Arab Emirates)\n  'sa_ar'    : 'ar-SA',         // Arabic (Saudi Arabia)\n  'bg'       : 'bg-BG',         // Bulgarian (Bulgaria)\n  'cz'       : 'cs-CZ',         // Czech (Czech Republic)\n  'dk'       : 'da-DK',         // Danish (Denmark)\n  'de'       : 'de-DE',         // German (Germany)\n  'at'       : 'de-AT',         // German (Austria)\n  'ch_de'    : 'de-CH',         // German (Switzerland)\n  'lu_de'    : 'de-LU',         // German (Luxembourg)\n  'us'       : 'en-US',         // English (United States) - Default Locale\n  'ae_en'    : 'en-AE',         // English (United Arab Emirates)\n  'au'       : 'en-AU',         // English (Australia)\n  'be_en'    : 'en-BE',         // English (Belgium)\n  'ca'       : 'en-CA',         // English (Canada)\n  'cy_en'    : 'en-CY',         // English (Cyprus)\n  'uk'       : 'en-GB',         // English (United Kingdom)\n  'gr_en'    : 'en-GR',         // English (Greece)\n  'hk_en'    : 'en-HK',         // English (Hong Kong)\n  'ie'       : 'en-IE',         // English (Ireland)\n  'il_en'    : 'en-IL',         // English (Israel)\n  'in'       : 'en-IN',         // English (India)\n  'lu_en'    : 'en-LU',         // English (Luxembourg)\n  'mt'       : 'en-MT',         // English (Malta)\n  'nz'       : 'en-NZ',         // English (New Zealand)\n  'sa_en'    : 'en-SA',         // English (Saudi Arabia)\n  'sg'       : 'en-SG',         // English (Singapore)\n  'th_en'    : 'en-TH',         // English (Thailand)\n  'africa'   : 'en-x-AFRICA',   // English (Africa)\n  'cis_en'   : 'en-x-CIS',      // English (Commonwealth of Independent States)\n  'mena_en'  : 'en-x-MENA',     // English (Middle East and North Africa)\n  'sea'      : 'en-x-SEA',      // English (Southeast Asia)\n  'es'       : 'es-ES',         // Spanish (Spain)\n  'mx'       : 'es-MX',         // Spanish (Mexico)\n  'cl'       : 'es-CL',         // Spanish (Chile)\n  'la'       : 'es-x-LA',       // Spanish (Latin America)\n  'ee'       : 'et-EE',         // Estonian (Estonia)\n  'fi'       : 'fi-FI',         // Finnish (Finland)\n  'fr'       : 'fr-FR',         // French (France)\n  'be_fr'    : 'fr-BE',         // French (Belgium)\n  'ca_fr'    : 'fr-CA',         // French (Canada)\n  'ch_fr'    : 'fr-CH',         // French (Switzerland)\n  'lu_fr'    : 'fr-LU',         // French (Luxembourg)\n  'il_he'    : 'he-IL',         // Hebrew (Israel)\n  'hu'       : 'hu-HU',         // Hungarian (Hungary)\n  'it'       : 'it-IT',         // Italian (Italy)\n  'ch_it'    : 'it-CH',         // Italian (Switzerland)\n  'jp'       : 'ja-JP',         // Japanese (Japan)\n  'kr'       : 'ko-KR',         // Korean (Korea)\n  'lt'       : 'lt-LT',         // Lithuanian (Lithuania)\n  'lv'       : 'lv-LV',         // Latvian (Latvia)\n  'no'       : 'nb-NO',         // Norwegian (Norway)\n  'nl'       : 'nl-NL',         // Dutch (Netherlands)\n  'be_nl'    : 'nl-BE',         // Dutch (Belgium)\n  'pl'       : 'pl-PL',         // Polish (Poland)\n  'pt'       : 'pt-PT',         // Portuguese (Portugal)\n  'br'       : 'pt-BR',         // Portuguese (Brazil)\n  'ro'       : 'ro-RO',         // Romanian (Romania)\n  'ru'       : 'ru-RU',         // Russian (Russia)\n  'cis_ru'   : 'ru-x-CIS',      // Russian (Commonwealth of Independent States)\n  'sk'       : 'sk-SK',         // Slovakian (Slovakia)\n  'si'       : 'sl-SI',         // Slovenian (Slovenia)\n  'se'       : 'sv-SE',         // Swedish (Sweden)\n  'th_th'    : 'th-TH',         // Thai (Thailand)\n  'tr'       : 'tr-TR',         // Turkish (Turkey)\n  'ua'       : 'uk-UA',         // Ukrainian (Ukraine)\n  'cn'       : 'zh-Hans-CN',    // Chinese Simplified (China)\n  'tw'       : 'zh-Hant-TW',    // Chinese Traditional (Taiwan) \n  'hk_zh'    : 'zh-Hant-HK'     // Chinese Traditional (Hong Kong)   \n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/globalnav.js","// https://git.corp.adobe.com/CCX/ccx-timeline/tree/develop/src/locale\nexport default {\n  'cs' : 'cs-CZ',\n  'cy' : 'cy-GB',\n  'da' : 'da-DK',\n  'de' : 'de-DE',\n  'en' : 'en-US',\n  'es' : 'es-ES',\n  'fi' : 'fi-FI',\n  'fr' : 'fr-FR',\n  'hu' : 'hu-HU',\n  'it' : 'it-IT',\n  'ja' : 'ja-JP',\n  'ko' : 'ko-KR',\n  'nb' : 'nb-NO',\n  'nl' : 'nl-NL',\n  'pl' : 'pl-PL',\n  'pt' : 'pt-BR',\n  'ru' : 'ru-RU',\n  'sv' : 'sv-SE',\n  'tr' : 'tr-TR',\n  'uk' : 'uk-UA',\n  'zh-Hans' : 'zh-Hans-CN',\n  'zh-Hant' : 'zh-Hant-TW'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/timeline.js","export default {\n  'uk'         : 'uk-UA',\n  'pt'         : 'pt-BR',\n  'ar-mena'    : 'ar-x-MENA',\n  'en-africa'  : 'en-x-AFRICA',\n  'en-cis'     : 'en-x-CIS',\n  'en-mena'    : 'en-x-MENA',\n  'en-sea'     : 'en-x-SEA',\n  'es-la'      : 'es-x-LA',\n  'ru-cis'     : 'ru-x-CIS',\n  'zh'         : 'zh-Hans-CN',\n  'es-419'     : 'es-419',\n  'zh-CN'      : 'zh-Hans-CN',\n  'zh-HK'      : 'zh-Hant-HK',\n  'zh-TW'      : 'zh-Hant-TW'\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/_supplement.js","export default {\n  'AF': [],                 // Afghanistan\n  'AX': [],                 // Aland Islands\n  'AL': [],                 // Albania\n  'DZ': ['en', 'fr', 'ar'], // Algeria\n  'AS': [],                 // American Samoa\n  'AD': ['es', 'fr', 'pt'], // Andorra\n  'AO': ['pt'],             // Angola\n  'AI': [],                 // Anguilla\n  'AQ': ['en'],             // Antarctica\n  'AG': ['en'],             // Antigua And Barbuda\n  'AR': ['es'],             // Argentina\n  'AM': ['en', 'ru'],       // Armenia\n  'AW': [],                 // Aruba\n  'AU': ['en'],             // Australia\n  'AT': ['de'],             // Austria\n  'AZ': ['en', 'ru'],       // Azerbaijan\n  'BS': ['en'],             // Bahamas\n  'BH': ['ar', 'en'],       // Bahrain\n  'BD': [],                 // Bangladesh\n  'BB': ['en'],             // Barbados\n  'BY': ['ru'],             // Belarus\n  'BE': ['nl', 'en', 'fr'], // Belgium\n  'BZ': [],                 // Belize\n  'BJ': [],                 // Benin\n  'BM': ['en'],             // Bermuda\n  'BT': [],                 // Bhutan\n  'BO': ['es'],             // Bolivia\n  'BA': ['en'],             // Bosnia And Herzegovina\n  'BW': ['en'],             // Botswana\n  'BV': [],                 // Bouvet Island\n  'BR': ['pt'],             // Brazil\n  'IO': [],                 // British Indian Ocean Territory\n  'BN': ['en'],             // Brunei Darussalam\n  'BG': ['bg'],             // Bulgaria\n  'BF': [],                 // Burkina Faso\n  'BI': ['en', 'fr'],       // Burundi\n  'KH': [],                 // Cambodia\n  'CM': ['en', 'fr'],       // Cameroon\n  'CA': ['en', 'fr'],       // Canada\n  'CV': [],                 // Cape Verde\n  'KY': ['en'],             // Cayman Islands\n  'CF': [],                 // Central African Republic\n  'TD': [],                 // Chad\n  'CL': ['es'],             // Chile\n  'CN': ['zh-Hans'],        // China\n  'CX': [],                 // Christmas Island\n  'CC': ['en'],             // Cocos (Keeling) Islands\n  'CO': ['es'],             // Colombia\n  'KM': [],                 // Comoros\n  'CG': ['en', 'fr'],       // Congo\n  'CD': ['en', 'fr'],       // Congo, Democratic Republic\n  'CK': [],                 // Cook Islands\n  'CR': ['es'],             // Costa Rica\n  'CI': ['en', 'fr'],       // Cote D'Ivoire\n  'HR': ['hr', 'en'],       // Croatia\n  'CU': [],                 // Cuba\n  'CY': ['en'],             // Cyprus\n  'CZ': ['cs'],             // Czech Republic\n  'DK': ['da'],             // Denmark\n  'DJ': [],                 // Djibouti\n  'DM': ['en'],             // Dominica\n  'DO': ['es'],             // Dominican Republic\n  'EC': ['es'],             // Ecuador\n  'EG': ['ar', 'en'],       // Egypt\n  'SV': ['es'],             // El Salvador\n  'GQ': [],                 // Equatorial Guinea\n  'ER': [],                 // Eritrea\n  'EE': ['et'],             // Estonia\n  'ET': [],                 // Ethiopia\n  'FK': [],                 // Falkland Islands (Malvinas)\n  'FO': ['da'],             // Faroe Islands\n  'FJ': [],                 // Fiji\n  'FI': ['fi'],             // Finland\n  'FR': ['fr'],             // France\n  'GF': ['fr'],             // French Guiana\n  'PF': [],                 // French Polynesia\n  'TF': [],                 // French Southern Territories\n  'GA': [],                 // Gabon\n  'GM': [],                 // Gambia\n  'GE': ['en', 'ru'],       // Georgia\n  'DE': ['de'],             // Germany\n  'GH': ['en'],             // Ghana\n  'GI': [],                 // Gibraltar\n  'GR': ['en'],             // Greece\n  'GL': [],                 // Greenland\n  'GD': [],                 // Grenada\n  'GP': ['en', 'fr'],       // Guadeloupe\n  'GU': [],                 // Guam\n  'GT': ['es'],             // Guatemala\n  'GG': [],                 // Guernsey\n  'GN': [],                 // Guinea\n  'GW': [],                 // Guinea-Bissau\n  'GY': ['en'],             // Guyana\n  'HT': ['en', 'fr'],       // Haiti\n  'HM': [],                 // Heard Island & Mcdonald Islands\n  'VA': [],                 // Holy See (Vatican City State)\n  'HN': ['es'],             // Honduras\n  'HK': ['en', 'zh-Hant'],  // Hong Kong\n  'HU': ['hu'],             // Hungary\n  'IS': [],                 // Iceland\n  'IN': ['en'],             // India\n  'ID': ['en'],             // Indonesia\n  'IR': [],                 // Iran, Islamic Republic Of\n  'IQ': ['ar'],             // Iraq\n  'IE': ['en'],             // Ireland\n  'IM': [],                 // Isle Of Man\n  'IL': ['he', 'en'],       // Israel\n  'IT': ['it'],             // Italy\n  'JM': ['en'],             // Jamaica\n  'JP': ['ja'],             // Japan\n  'JE': [],                 // Jersey\n  'JO': ['ar', 'en'],       // Jordan\n  'KZ': ['ru'],             // Kazakhstan\n  'KE': ['en'],             // Kenya\n  'KI': [],                 // Kiribati\n  'KR': ['ko'],             // Korea\n  'KV': [],                 // Kosovo\n  'KW': ['ar', 'en'],       // Kuwait\n  'KG': ['ru', 'en'],       // Kyrgyzstan\n  'LA': [],                 // Lao People\\'s Democratic Republic\n  'LV': ['lv'],             // Latvia\n  'LB': ['en', 'ar'],       // Lebanon\n  'LS': ['en'],             // Lesotho\n  'LR': ['en'],             // Liberia\n  'LY': ['ar'],             // Libyan Arab Jamahiriya\n  'LI': [],                 // Liechtenstein\n  'LT': ['lt'],             // Lithuania\n  'LU': ['en', 'de', 'fr'], // Luxembourg\n  'MO': ['en', 'zh-Hant'],  // Macao\n  'MK': [],                 // Macedonia\n  'MG': ['en', 'fr'],       // Madagascar\n  'MW': [],                 // Malawi\n  'MY': ['en'],             // Malaysia\n  'MV': [],                 // Maldives\n  'ML': ['en', 'fr'],       // Mali\n  'MT': ['en'],             // Malta\n  'MH': [],                 // Marshall Islands\n  'MQ': ['en', 'fr'],       // Martinique\n  'MR': ['en', 'fr'],       // Mauritania\n  'MU': ['en', 'fr'],       // Mauritius\n  'YT': ['en', 'fr'],       // Mayotte\n  'MX': ['es'],             // Mexico\n  'FM': ['en'],             // Micronesia, Federated States Of\n  'MD': ['en', 'ru'],       // Moldova\n  'MC': [],                 // Monaco\n  'MN': [],                 // Mongolia\n  'ME': [],                 // Montenegro\n  'MS': [],                 // Montserrat\n  'MA': ['en', 'fr', 'ar'], // Morocco\n  'MZ': ['pt'],             // Mozambique\n  'MM': [],                 // Myanmar\n  'NA': ['en'],             // Namibia\n  'NR': [],                 // Nauru\n  'NP': [],                 // Nepal\n  'NL': ['nl'],             // Netherlands\n  'AN': ['nl', 'en'],       // Netherlands Antilles\n  'NC': [],                 // New Caledonia\n  'NZ': ['en'],             // New Zealand\n  'NI': ['es'],             // Nicaragua\n  'NE': ['en', 'fr'],       // Niger\n  'NG': ['en'],             // Nigeria\n  'NU': [],                 // Niue\n  'NF': [],                 // Norfolk Island\n  'MP': ['en'],             // Northern Mariana Islands\n  'NO': ['nb'],             // Norway\n  'OM': ['ar', 'en'],       // Oman\n  'PK': ['en'],             // Pakistan\n  'PW': [],                 // Palau\n  'PS': [],                 // Palestinian Territory, Occupied\n  'PA': ['es'],             // Panama\n  'PG': [],                 // Papua New Guinea\n  'PY': ['es'],             // Paraguay\n  'PE': ['es'],             // Peru\n  'PH': ['en'],             // Philippines\n  'PN': [],                 // Pitcairn\n  'PL': ['pl'],             // Poland\n  'PT': ['pt'],             // Portugal\n  'PR': ['es'],             // Puerto Rico\n  'QA': ['ar', 'en'],       // Qatar\n  'RE': [],                 // Reunion\n  'RO': ['ro'],             // Romania\n  'RU': ['ru'],             // Russian Federation\n  'RW': [],                 // Rwanda\n  'BL': [],                 // Saint Barthelemy\n  'SH': [],                 // Saint Helena\n  'KN': ['en'],             // Saint Kitts And Nevis\n  'LC': ['en'],             // Saint Lucia\n  'MF': [],                 // Saint Martin\n  'PM': [],                 // Saint Pierre And Miquelon\n  'VC': ['pt'],             // Saint Vincent And Grenadines\n  'WS': [],                 // Samoa\n  'SM': [],                 // San Marino\n  'ST': [],                 // Sao Tome And Principe\n  'SA': ['ar', 'en'],       // Saudi Arabia\n  'SN': ['en', 'fr'],       // Senegal\n  'RS': ['rs'],             // Serbia\n  'SC': [],                 // Seychelles\n  'SL': [],                 // Sierra Leone\n  'SG': ['en'],             // Singapore\n  'SK': ['sk'],             // Slovakia\n  'SI': ['sl'],             // Slovenia\n  'SB': [],                 // Solomon Islands\n  'SO': [],                 // Somalia\n  'ZA': ['en'],             // South Africa\n  'GS': [],                 // South Georgia And Sandwich Isl.\n  'ES': ['es', 'ca', 'eu'], // Spain\n  'LK': ['en'],             // Sri Lanka\n  'SD': [],                 // Sudan\n  'SR': ['nl'],             // Suriname\n  'SJ': [],                 // Svalbard And Jan Mayen\n  'SZ': [],                 // Swaziland\n  'SE': ['sv'],             // Sweden\n  'CH': ['de', 'fr', 'it'], // Switzerland\n  'SY': [],                 // Syrian Arab Republic\n  'TW': ['zh-Hant'],        // Taiwan\n  'TJ': ['ru', 'en'],       // Tajikistan\n  'TZ': ['en'],             // Tanzania\n  'TH': ['en'],             // Thailand\n  'TL': [],                 // Timor-Leste\n  'TG': [],                 // Togo\n  'TK': [],                 // Tokelau\n  'TO': [],                 // Tonga\n  'TT': ['en'],             // Trinidad And Tobago\n  'TN': ['en', 'fr', 'ar'], // Tunisia\n  'TR': ['tr'],             // Turkey\n  'TM': ['en', 'ru'],       // Turkmenistan\n  'TC': ['en'],             // Turks And Caicos Islands\n  'TV': [],                 // Tuvalu\n  'UG': ['en'],             // Uganda\n  'UA': ['uk'],             // Ukraine\n  'AE': ['en', 'ar'],       // United Arab Emirates\n  'GB': ['en'],             // United Kingdom\n  'US': ['en'],             // United States\n  'UM': [],                 // United States Outlying Islands\n  'UY': ['es'],             // Uruguay\n  'UZ': ['ru', 'en'],       // Uzbekistan\n  'VU': [],                 // Vanuatu\n  'VE': ['es'],             // Venezuela\n  'VN': ['en'],             // Viet Nam\n  'VG': ['en'],             // Virgin Islands, British\n  'VI': [],                 // Virgin Islands, U.S.\n  'WF': [],                 // Wallis And Futuna\n  'EH': [],                 // Western Sahara\n  'YE': ['en', 'ar'],       // Yemen\n  'ZM': ['en'],             // Zambia\n  'ZW': ['en']              // Zimbabwe\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/locales/_region.js","/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n*  Copyright 2023 Adobe Systems Incorporated\n*  All Rights Reserved.\n*\n* NOTICE:  All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any.  The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by all applicable intellectual property\n* laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport * as locales from './locales';\n\n/*\n * @param {string} app - app code. For a complete apps code, see https://git.corp.adobe.com/intl/adobe-locales#supported-apps\n * @returns {array} app supported locale codes. Returns undefined if passed locale is not supported in the app. \n */\nconst getAppLocales = (app) => {\n  return locales[app] && Object.keys(locales[app]);\n}\n\nexport default getAppLocales;\n\n\n\n// WEBPACK FOOTER //\n// ./src/getAppLocales.js","/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n*  Copyright 2023 Adobe Systems Incorporated\n*  All Rights Reserved.\n*\n* NOTICE:  All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any.  The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by all applicable intellectual property\n* laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport apps from './apps'\n\nconst GLOBAL_REGION_CODE = 'ZZ'\nconst GLOBAL_REGION_NAME = 'Global'\n\n/*\n * @param {string} app - app code. For a complete apps code, see https://git.corp.adobe.com/intl/adobe-locales#supported-apps\n * @returns {array} app supported region code or code/name pair. Returns empty array if passed locale is not supported in the app. \n */\nconst getAppRegions = (app, withName = true, nameLocale = 'en') => {\n  const appSettings = apps.get(app) \n  const regions = (appSettings && appSettings.regions) || []\n\n  if (regions.length > 0 && withName === true) {\n    const regionNames = Intl.DisplayNames && new Intl.DisplayNames([nameLocale], { type: 'region' })\n    \n    return regions.map(region => ({\n      code: region,\n      name: region === GLOBAL_REGION_CODE ? GLOBAL_REGION_NAME : regionNames && regionNames.of(region)\n    }))\n  }\n\n  return regions\n}\n\nexport default getAppRegions;\n\n\n\n// WEBPACK FOOTER //\n// ./src/getAppRegions.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 63\n// module chunks = 0","/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n*  Copyright 2023 Adobe Systems Incorporated\n*  All Rights Reserved.\n*\n* NOTICE:  All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any.  The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by all applicable intellectual property\n* laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n\nimport getLocalizedURL from './getLocalizedURL';\nimport getAppLocaleFromIMS from './getAppLocaleFromIMS';\nimport { getAppNameFromURL } from './utils';\n\n/*\n * @param {string} url - the destination app url\n * @param {string} locale - locale you want to pass, it doesn not have to be the one destination app uses.\n * @param {string} imsCountryCode - two-character IMS country code\n * @returns {{url: string, match: boolean}}\n */\nconst getLocalizedURLFromIMS = (url, locale, imsCountryCode) => {\n  const app = getAppNameFromURL(url);\n\n  let { locale: newLocale, match } = getAppLocaleFromIMS(app, locale, imsCountryCode);\n\n  return {\n    match,\n    url: getLocalizedURL(url, newLocale)\n  };\n}\n\nexport default getLocalizedURLFromIMS;\n\n\n\n// WEBPACK FOOTER //\n// ./src/getLocalizedURLFromIMS.js","/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n*  Copyright 2023 Adobe Systems Incorporated\n*  All Rights Reserved.\n*\n* NOTICE:  All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any.  The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by all applicable intellectual property\n* laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\nimport getAppLocale from './getAppLocale';\nimport { getAppNameFromURL } from './utils';\nimport { langParamApp } from './apps';\n\n/*\n * @param {string} url - app url\n * @returns {string} locale name the app uses. Returns '' if no valid locale found\n */\nconst parseLocaleParam = (url) => {\n  \n  let locale;\n\n  if (typeof url === 'string') {\n    const app = getAppNameFromURL(url);\n\n    if (app) {\n      // Adobe Account uses 'lang=xx' parameter\n      const paramName = langParamApp.includes(app) ? 'lang' : 'locale';\n      const regex = new RegExp(`(${paramName}=)(.*?)(?=&|$)`);\n\n      locale = (url.match(regex) || [])[2] || '';\n      locale = getAppLocale(app, locale, 'en-US');\n    }\n  }\n  \n  return locale;\n}\n\nexport default parseLocaleParam;\n\n\n\n// WEBPACK FOOTER //\n// ./src/parseLocaleParam.js","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M22.179 5.708a12.29 12.29 0 0 1 2.042 24.408s-1.646.176-2.989.176h-9.381a10.407 10.407 0 0 1-.005-20.813 10.769 10.769 0 0 1 1.362.086l.581-.544a12.239 12.239 0 0 1 8.39-3.313zm0-1.308A13.542 13.542 0 0 0 12.9 8.066l-.148.139q-.45-.034-.9-.034a11.715 11.715 0 0 0-.001 23.429h9.381c1.4 0 3.058-.176 3.128-.184A13.6 13.6 0 0 0 22.179 4.4z\" }),\n  React.createElement(\"path\", { d: \"M15.5 10.9a9.579 9.579 0 0 1 1.677.869 7.961 7.961 0 1 1-.677 11.853l-4.652-4.666a.878.878 0 1 0-1.257 1.225l4.675 4.69A9.717 9.717 0 1 0 15.5 10.9zM4.068 19.866a7.854 7.854 0 0 0 7.858 7.854h4.1a11.5 11.5 0 0 1-2.16-1.75h-1.94a6.1 6.1 0 0 1 0-12.209 5.814 5.814 0 0 1 4 1.5l3.535 3.627a.877.877 0 1 0 1.257-1.224l-3.532-3.634a7.6 7.6 0 0 0-5.265-2.025 7.851 7.851 0 0 0-7.853 7.854z\" })\n);","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M20.894 14.565a11.881 11.881 0 0 1 2.078 1.076 9.861 9.861 0 1 1-.836 14.683l-5.762-5.779a1.087 1.087 0 1 0-1.558 1.516l5.791 5.809a12.036 12.036 0 1 0 .287-17.3zM6.74 25.671a9.729 9.729 0 0 0 9.733 9.729h5.084a14.226 14.226 0 0 1-2.675-2.168h-2.409a7.562 7.562 0 0 1 0-15.123 7.2 7.2 0 0 1 4.96 1.855l4.379 4.493a1.087 1.087 0 0 0 1.557-1.517l-4.38-4.5a9.413 9.413 0 0 0-6.522-2.507 9.725 9.725 0 0 0-9.727 9.73z\" }),\n  React.createElement(\"path\", { d: \"M29.11 8.32a15.037 15.037 0 0 1 2.5 29.864s-2.014.216-3.657.216H16.474a12.733 12.733 0 0 1-.007-25.465 13.335 13.335 0 0 1 1.667.1l.711-.665A14.976 14.976 0 0 1 29.11 8.32zm0-1.6a16.57 16.57 0 0 0-11.359 4.486l-.181.169a14.995 14.995 0 0 0-1.1-.041A14.333 14.333 0 0 0 16.474 40h11.477c1.709 0 3.742-.216 3.827-.225A16.636 16.636 0 0 0 29.11 6.72z\" })\n);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'CreativeCloud';\n\nexports.default = WrappedIcon;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = Icon;\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar SIZES = {\n  XXS: 18,\n  XS: 24,\n  S: 18,\n  M: 24,\n  L: 18,\n  XL: 24,\n  XXL: 24\n};\n\nfunction Icon(_ref) {\n  var icon = _ref.icon,\n      _ref$size = _ref.size,\n      size = _ref$size === undefined ? 'M' : _ref$size,\n      className = _ref.className,\n      children = _ref.children,\n      alt = _ref.alt,\n      otherProps = _objectWithoutProperties(_ref, ['icon', 'size', 'className', 'children', 'alt']);\n\n  var sizeKey = SIZES[size];\n  var svg = icon && icon[sizeKey] || icon || children;\n  if (typeof svg === 'string') {\n    throw new Error('String icon names are deprecated. Please import icons from react-spectrum/Icon/IconName and render as <IconName />.');\n  }\n\n  return _react2.default.cloneElement(svg, _extends({\n    focusable: 'false',\n    'aria-label': alt,\n    'aria-hidden': alt ? null : 'true',\n    role: 'img',\n    className: (0, _classnames2.default)(svg.props.className, 'spectrum-Icon', _defineProperty({}, 'spectrum-Icon--size' + size, size), className)\n  }, otherProps));\n}\n\nIcon.displayName = 'Icon';","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require('../Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      'svg',\n      null,\n      _react2.default.createElement('path', { d: 'M9.99 7.01a1 1 0 0 0-1.707-.707L6 8.586V1.01a1 1 0 0 0-2 0v7.576L1.717 6.303A1 1 0 1 0 .303 7.717l3.99 3.98a1 1 0 0 0 1.414 0l3.99-3.98a.997.997 0 0 0 .293-.707z', 'className': 'spectrum-UIIcon--large ' + props.pathClassName }),\n      _react2.default.createElement('path', { d: 'M7.99 6.01a1 1 0 0 0-1.707-.707L5 6.586V1a1 1 0 0 0-2 0v5.586L1.717 5.303A1 1 0 1 0 .303 6.717l2.99 2.98a1 1 0 0 0 1.414 0l2.99-2.98a.997.997 0 0 0 .293-.707z', 'className': 'spectrum-UIIcon--medium ' + props.pathClassName })\n    )\n  );\n};\nWrappedIcon.displayName = 'ArrowDownSmall';\n\nexports.default = WrappedIcon;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require('../Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      'svg',\n      null,\n      _react2.default.createElement('path', { d: 'M9.99 4.99a1 1 0 0 1-1.707.707L6 3.414v7.576a1 1 0 0 1-2 0V3.414L1.717 5.697A1 1 0 1 1 .303 4.283l3.99-3.98a1 1 0 0 1 1.414 0l3.99 3.98a.997.997 0 0 1 .293.707z', 'className': 'spectrum-UIIcon--large ' + props.pathClassName }),\n      _react2.default.createElement('path', { d: 'M7.99 3.99a1 1 0 0 1-1.707.707L5 3.414V9a1 1 0 0 1-2 0V3.414L1.717 4.697A1 1 0 1 1 .303 3.283l2.99-2.98a1 1 0 0 1 1.414 0l2.99 2.98a.997.997 0 0 1 .293.707z', 'className': 'spectrum-UIIcon--medium ' + props.pathClassName })\n    )\n  );\n};\nWrappedIcon.displayName = 'ArrowUpSmall';\n\nexports.default = WrappedIcon;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = {\n  Accordion: _UxpOptions.default.select('Accordion', () => require('./js/Accordion'), () => require('./js/Accordion')),\n  AccordionItem: _UxpOptions.default.select('AccordionItem', () => require('./js/UxpAccordionItem'), () => require('./js/AccordionItem'))\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _FocusManager = _interopRequireDefault(require(\"../../utils/FocusManager\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/accordion/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/accordion/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/accordion/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/accordion/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/accordion/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/accordion/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/accordion/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/accordion/multiStops/darkest.css\");\nconst ACCORDION_ITEM_HEADER_SELECTOR = '.spectrum-Accordion-item:not(.is-disabled) > .spectrum-Accordion-itemHeading > .spectrum-Accordion-itemHeader';\n/**\n * An accordion is a list of expandable and collapsible sections.\n */\n\nlet Accordion = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class Accordion extends _react.Component {\n  constructor(props) {\n    super(props);\n    const {\n      selectedIndex,\n      defaultSelectedIndex\n    } = props;\n    const currentSelectedIndex = selectedIndex !== undefined ? selectedIndex : defaultSelectedIndex;\n    this.state = {\n      selectedIndex: this.normalizeSelectedIndex(currentSelectedIndex)\n    };\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    if ('selectedIndex' in nextProps) {\n      this.setState({\n        selectedIndex: this.normalizeSelectedIndex(nextProps.selectedIndex)\n      });\n    }\n  }\n\n  onClickItem(index) {\n    let selectedIndex = this.state.selectedIndex;\n\n    if (this.props.multiselectable) {\n      selectedIndex = [...selectedIndex];\n      const i = selectedIndex.indexOf(index);\n      const selected = i !== -1;\n\n      if (selected) {\n        selectedIndex.splice(i, 1);\n      } else {\n        selectedIndex.push(index);\n      }\n    } else {\n      selectedIndex = selectedIndex[0] === index ? [] : [index];\n    }\n\n    this.setSelectedKey(selectedIndex);\n  }\n\n  setSelectedKey(selectedIndex) {\n    // If selectedIndex is defined on props then this is a controlled component and we shouldn't\n    // change our own state.\n    if (!('selectedIndex' in this.props)) {\n      this.setState({\n        selectedIndex\n      });\n    }\n\n    let deliverableSelectedIndex = selectedIndex;\n\n    if (!this.props.multiselectable) {\n      deliverableSelectedIndex = selectedIndex.length ? selectedIndex[0] : null;\n    }\n\n    this.props.onChange(deliverableSelectedIndex);\n  }\n\n  getItems() {\n    const selectedIndex = this.state.selectedIndex;\n    const {\n      multiselectable,\n      ariaLevel,\n      children\n    } = this.props;\n    return _react.default.Children.map(children, (child, index) => {\n      if (! /*#__PURE__*/_react.default.isValidElement(child)) {\n        return null;\n      }\n\n      const selected = multiselectable ? selectedIndex.indexOf(index) !== -1 : selectedIndex[0] === index;\n      const props = {\n        selected,\n        ariaLevel: ariaLevel,\n        tabIndex: child.props.tabIndex ? child.props.tabIndex : this.props.tabIndex,\n        onItemClick: this.onClickItem.bind(this, index)\n      };\n      return /*#__PURE__*/_react.default.cloneElement(child, props);\n    });\n  }\n\n  normalizeSelectedIndex(selectedIndex) {\n    if (!Array.isArray(selectedIndex)) {\n      selectedIndex = selectedIndex !== undefined ? [selectedIndex] : [];\n    }\n\n    return selectedIndex.map(index => parseInt(index, 10));\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      className\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"className\"]); // We don't need/want to add onChange to the div because we call it manually when we hear that\n    // an accordion item has been clicked. If we were to add the handler to the div, it would be\n    // called every time any input inside the accordion is changed.\n\n\n    delete otherProps.onChange; // We dont want to have focus on accordion root div.\n\n    delete otherProps.tabIndex;\n    return /*#__PURE__*/_react.default.createElement(_FocusManager.default, {\n      itemSelector: ACCORDION_ITEM_HEADER_SELECTOR,\n      manageTabIndex: false\n    }, /*#__PURE__*/_react.default.createElement(\"div\", _extends({}, (0, _filterDOMProps.default)(otherProps), {\n      className: (0, _classnames.default)('spectrum-Accordion', className),\n      role: \"region\"\n    }), this.getItems()));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * The index of the AccordionItem that should be selected (open). If 'multiselectable'\n   * is true, selectedIndex can be an array of indices. When selectedIndex is specified, the component\n   * is in a controlled state and an AccordionItem can only be selected by changing the selectedIndex\n   * prop value. By default, no AccordionItems will be selected.\n   */\n  selectedIndex: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]))]),\n\n  /**\n   * The same as selectedIndex except that the component is in an uncontrolled\n   * state. AccordionItems can be opened or closed without prop values having changed.\n   */\n  defaultSelectedIndex: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]))]),\n\n  /**\n   * Whether multiple AccordionItems can be selected (open) at the same time.\n   */\n  multiselectable: _propTypes.default.bool,\n\n  /**\n   * A function that will be called when an AccordionItem is selected (opened) or\n   * deselected (closed). It will be passed the updated selected index.\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * The aria heading level of the accordion items\n   */\n  ariaLevel: _propTypes.default.number\n}, _class2.defaultProps = {\n  onChange() {},\n\n  multiselectable: false,\n  ariaLevel: 3\n}, _temp)) || _class;\n\nexports.default = Accordion;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _ChevronRightMedium = _interopRequireDefault(require(\"../../Icon/core/ChevronRightMedium\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _focusRing = _interopRequireDefault(require(\"../../utils/focusRing\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet AccordionItem =\n/**\n * An AccordionItem component represents an item in an accordion\n */\n(0, _convertUnsafeMethod.default)(_class = (0, _focusRing.default)(_class = (_temp = _class2 = class AccordionItem extends _react.Component {\n  constructor(props) {\n    super(props);\n    this.headerId = (0, _createId.default)();\n    this.contentId = (0, _createId.default)();\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className,\n      onItemClick,\n      header,\n      selected,\n      disabled,\n      ariaLevel\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"onItemClick\", \"header\", \"selected\", \"disabled\", \"ariaLevel\"]);\n\n    return /*#__PURE__*/_react.default.createElement(\"div\", _extends({}, (0, _filterDOMProps.default)(otherProps), {\n      className: (0, _classnames.default)('spectrum-Accordion-item', 'react-spectrum-Accordion-item', {\n        'is-open': selected,\n        'is-disabled': disabled\n      }, className),\n      role: \"presentation\"\n    }), /*#__PURE__*/_react.default.createElement(\"h3\", {\n      className: \"spectrum-Accordion-itemHeading\",\n      \"aria-level\": ariaLevel\n    }, /*#__PURE__*/_react.default.createElement(\"button\", {\n      id: this.headerId,\n      className: \"spectrum-Accordion-itemHeader\",\n      \"aria-controls\": this.contentId,\n      \"aria-expanded\": selected,\n      disabled: disabled,\n      type: \"button\"\n      /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n      ,\n      tabIndex: !disabled ? 0 : null,\n      onClick: !disabled ? onItemClick : null\n    }, header), /*#__PURE__*/_react.default.createElement(_ChevronRightMedium.default, {\n      role: \"presentation\",\n      size: null,\n      className: \"spectrum-Accordion-itemIndicator\"\n    })), /*#__PURE__*/_react.default.createElement(\"div\", {\n      id: this.contentId,\n      role: \"region\",\n      \"aria-labelledby\": this.headerId,\n      \"aria-hidden\": !selected,\n      \"aria-expanded\": selected,\n      className: \"spectrum-Accordion-itemContent\"\n    }, selected ? children : null));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * A string or node which will be placed at the top of the accordion item.\n   */\n  header: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),\n\n  /**\n   * Whether or not the accordion item is selected. Causes the item to expand.\n   */\n  selected: _propTypes.default.bool,\n\n  /**\n   * Disables the accordion item, making it grey and uninteractable.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * The aria heading level of the AccordionItem. Defines the elements position\n   * within a hierarchy. Set by ariaLevel prop in the parent Accordion\n   * rather than directly on the component itself.\n   */\n  ariaLevel: _propTypes.default.number,\n\n  /**\n   * The behavior executed upon click on the AccordionItem. Set by the parent Accordion component.\n   */\n  onItemClick: _propTypes.default.func\n}, _class2.defaultProps = {\n  header: '',\n  selected: false,\n  disabled: false,\n\n  onItemClick() {}\n\n}, _temp)) || _class) || _class;\n\nexports.default = AccordionItem;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _AccordionItem = _interopRequireDefault(require(\"./AccordionItem\"));\n\nvar _ChevronDownMedium = _interopRequireDefault(require(\"../../Icon/core/ChevronDownMedium\"));\n\nvar _ChevronRightMedium = _interopRequireDefault(require(\"../../Icon/core/ChevronRightMedium\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _focusRing = _interopRequireDefault(require(\"../../utils/focusRing\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _class;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet UxpAccordionItem =\n/**\n * An AccordionItem component represents an item in an accordion\n */\n(0, _focusRing.default)(_class = class UxpAccordionItem extends _AccordionItem.default {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.handleKeyDown = event => {\n      if (event.key === ' ' || event.key === 'Enter') {\n        this.props.onItemClick();\n      }\n    }, _temp;\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className,\n      onItemClick,\n      header,\n      selected,\n      disabled,\n      ariaLevel,\n      tabIndex\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"onItemClick\", \"header\", \"selected\", \"disabled\", \"ariaLevel\", \"tabIndex\"]);\n\n    return /*#__PURE__*/_react.default.createElement(\"div\", _extends({}, (0, _filterDOMProps.default)(otherProps), {\n      className: (0, _classnames.default)('spectrum-Accordion-item', 'react-spectrum-Accordion-item', {\n        'is-open': selected,\n        'is-disabled': disabled\n      }, className),\n      role: \"presentation\"\n    }), /*#__PURE__*/_react.default.createElement(\"h3\", {\n      className: \"spectrum-Accordion-itemHeading\",\n      \"aria-level\": ariaLevel\n    }, /*#__PURE__*/_react.default.createElement(\"span\", {\n      id: this.headerId,\n      className: \"spectrum-Accordion-itemHeader\",\n      \"aria-controls\": this.contentId,\n      \"aria-expanded\": selected,\n      disabled: disabled,\n      type: \"button\"\n      /* eslint-disable */\n      ,\n      tabIndex: !disabled ? tabIndex ? tabIndex : 0 : null\n      /* eslint-enable */\n      ,\n      onKeyDown: !disabled ? this.handleKeyDown : undefined,\n      onClick: !disabled ? onItemClick : null\n    }, header), selected ? /*#__PURE__*/_react.default.createElement(_ChevronDownMedium.default, {\n      role: \"presentation\",\n      size: null,\n      className: \"spectrum-Accordion-itemIndicator\"\n    }) : /*#__PURE__*/_react.default.createElement(_ChevronRightMedium.default, {\n      role: \"presentation\",\n      size: null,\n      className: \"spectrum-Accordion-itemIndicator\"\n    })), /*#__PURE__*/_react.default.createElement(\"div\", {\n      id: this.contentId,\n      role: \"region\",\n      \"aria-labelledby\": this.headerId,\n      \"aria-hidden\": !selected,\n      \"aria-expanded\": selected,\n      className: \"spectrum-Accordion-itemContent\"\n    }, selected ? children : null));\n  }\n\n}) || _class;\n\nexports.default = UxpAccordionItem;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Button', () => require('./js/UxpButton'), () => require('./js/Button'), () => require('./js/SpUxpButton'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _events = require(\"../../utils/events\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _icon = require(\"../../utils/icon\");\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _CornerTriangle = _interopRequireDefault(require(\"../../Icon/core/CornerTriangle\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _focusRing = _interopRequireWildcard(require(\"../../utils/focusRing\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nrequire(\"../style/index.css\");\n\nvar _class, _class2, _temp2;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/button/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/button/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/button/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/button/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/button/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/button/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/button/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/button/multiStops/darkest.css\");\n// For backward compatibility with coral\nconst VARIANTS = {\n  quiet: {\n    variant: 'primary',\n    quiet: true\n  },\n  minimal: {\n    variant: 'secondary',\n    quiet: true\n  },\n  icon: {\n    variant: 'action',\n    quiet: true\n  }\n};\n/**\n * A **button** represents an action a user can take. Buttons can be clicked or tapped to\n * perform an action or to navigate to another page. Buttons in Spectrum have several variations\n * for different uses and multiple levels of loudness for various attention-getting needs.\n */\n\nlet Button = (0, _convertUnsafeMethod.default)(_class = (0, _focusRing.default)(_class = (_temp2 = _class2 = class Button extends _react.Component {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.onClick = (event, ...rest) => {\n      // This is needed when `element` is an anchor or something similar.\n      // When `element` is a button, we won't even get here if it's disabled and clicked.\n      if (this.props.disabled) {\n        // If the element is an anchor with an href, we need to preventDefault() or the browser\n        // will follow the link.\n        event.preventDefault();\n      } else if (this.props.onClick) {\n        this.props.onClick(event, ...rest);\n      }\n    }, this.onKeyDownSpace = event => {\n      if (event.key === ' ' || event.key === 'Enter') {\n        event.preventDefault();\n        this.buttonRef.click();\n      }\n    }, this.setButtonRef = b => this.buttonRef = b, _temp;\n  }\n\n  componentDidMount() {\n    if (this.props.autoFocus) {\n      // wait a frame to make sure the button in the DOM and focusable\n      requestAnimationFrame(() => this.focus());\n    }\n  }\n  /**\n   * Focus the button\n   */\n\n\n  focus() {\n    if (this.buttonRef && !this.props.disabled && this.buttonRef.focus) {\n      this.buttonRef.focus();\n    }\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      element: Element = 'button',\n      label,\n      children,\n      variant = 'secondary',\n      logic,\n      quiet,\n      icon,\n      selected,\n      block,\n      className,\n      disabled,\n      invalid,\n      onMouseDown,\n      onMouseUp,\n      autoFocus,\n      holdAffordance\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"element\", \"label\", \"children\", \"variant\", \"logic\", \"quiet\", \"icon\", \"selected\", \"block\", \"className\", \"disabled\", \"invalid\", \"onMouseDown\", \"onMouseUp\", \"autoFocus\", \"holdAffordance\"]); // Map variants for backwards compatibility\n\n\n    if (VARIANTS[variant]) {\n      let mappedVariant = VARIANTS[variant];\n      let variantName = (mappedVariant.quiet ? 'quiet ' : '') + `\"${mappedVariant.variant}\"`;\n      console.warn(`The \"${variant}\" variant of Button is deprecated. Please use the ${variantName} variant instead.`);\n      ({\n        variant,\n        quiet\n      } = mappedVariant);\n    }\n\n    let shouldRenderHoldAffordance = false; // Some button variants were broken out into their own components, map them appropriately\n\n    let baseButtonClass = 'spectrum-Button';\n\n    if (variant === 'action' || variant === 'toggle') {\n      baseButtonClass = 'spectrum-ActionButton';\n      shouldRenderHoldAffordance = holdAffordance;\n\n      if (variant === 'toggle') {\n        quiet = true;\n      }\n\n      variant = '';\n    } else if (logic) {\n      baseButtonClass = 'spectrum-LogicButton';\n    } else if (variant === 'clear') {\n      baseButtonClass = 'spectrum-ClearButton';\n      variant = '';\n    } else if (variant === 'field') {\n      baseButtonClass = 'spectrum-FieldButton';\n      variant = '';\n    } else if (variant === 'tool') {\n      baseButtonClass = 'spectrum-Tool'; // hold affordance is really only a part of tool.\n\n      shouldRenderHoldAffordance = holdAffordance;\n      variant = '';\n    }\n\n    if (Element !== 'button') {\n      otherProps.role = 'button';\n      otherProps.tabIndex = disabled ? null : otherProps.tabIndex || 0;\n      otherProps['aria-disabled'] = disabled || null;\n\n      if (Element === 'a' && disabled && otherProps.href) {\n        otherProps.href = null;\n      }\n\n      otherProps.onKeyDown = disabled ? null : this.onKeyDownSpace;\n    }\n\n    let labelContents = label || (typeof children === 'string' ? children : null);\n    let ariaExpanded = null;\n\n    if (otherProps['aria-expanded'] !== undefined) {\n      ariaExpanded = otherProps['aria-expanded'];\n    } else if (otherProps['aria-haspopup']) {\n      ariaExpanded = selected || null;\n    }\n\n    const filteredProps = typeof Element === 'string' ? (0, _filterDOMProps.default)(otherProps) : otherProps;\n    return /*#__PURE__*/_react.default.createElement(Element, _extends({}, filteredProps, {\n      className: (0, _classnames.default)(baseButtonClass, quiet ? `${baseButtonClass}--quiet` : '', variant ? `${baseButtonClass}--${variant}` : '', {\n        'is-selected': selected,\n        'is-disabled': disabled,\n        'is-invalid': invalid,\n        'spectrum-Button--block': block,\n        [_focusRing.FOCUS_RING_CLASSNAME]: autoFocus\n      }, className),\n      disabled: disabled,\n      \"aria-invalid\": invalid || null,\n      \"aria-expanded\": ariaExpanded,\n      onClick: this.onClick,\n      onMouseDown: (0, _events.chain)(this.onMouseDown, _events.focusAfterMouseEvent.bind(this, onMouseDown)),\n      onMouseUp: (0, _events.chain)(this.onMouseUp, _events.focusAfterMouseEvent.bind(this, onMouseUp)),\n      ref: this.setButtonRef\n    }), (0, _icon.cloneIcon)(icon, {\n      size: 'S'\n    }), labelContents && /*#__PURE__*/_react.default.createElement(\"span\", {\n      className: baseButtonClass + '-label'\n    }, labelContents), shouldRenderHoldAffordance && /*#__PURE__*/_react.default.createElement(_CornerTriangle.default, {\n      role: \"presentation\",\n      size: null,\n      className: \"spectrum-Tool-hold\"\n    }), typeof children !== 'string' && children);\n  }\n\n}, _class2.propTypes = {\n  /**\n   * The variant of button to display\n   */\n  variant: _propTypes.default.oneOf(['cta', 'primary', 'secondary', 'warning', 'action', 'toggle', 'and', 'or', 'icon', 'quiet', 'minimal', 'dropdown', 'clear', 'field', 'tool', 'overBackground']),\n\n  /**\n   * Whether the button should render using a quiet variant\n   */\n  quiet: _propTypes.default.bool,\n\n  /**\n   * Whether the button is a logic button variant\n   */\n  logic: _propTypes.default.bool,\n\n  /**\n   * Whether the button is disabled\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * Whether the button represents a selected state\n   */\n  selected: _propTypes.default.bool,\n\n  /**\n   * Whether the button represents an invalid state\n   */\n  invalid: _propTypes.default.bool,\n\n  /**\n   * An icon to render in the button.\n   */\n  icon: _propTypes.default.element,\n\n  /**\n   * The label to display in the button\n   */\n  label: _propTypes.default.string,\n\n  /**\n   * Whether the button is a block element\n   */\n  block: _propTypes.default.bool,\n\n  /**\n   * The DOM element to use to render the button\n   */\n  element: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]),\n\n  /**\n   * Whether the button should be auto focused on mount\n   */\n  autoFocus: _propTypes.default.bool,\n\n  /**\n   * A click handler for the button\n   */\n  onClick: _propTypes.default.func,\n\n  /**\n   * A visual variation that puts a small triangle in the lower right\n   */\n  holdAffordance: _propTypes.default.bool\n}, _class2.defaultProps = {\n  autoFocus: false,\n  block: false,\n  disabled: false,\n  element: 'button',\n  invalid: false,\n  label: '',\n  logic: false,\n  quiet: false,\n  selected: false,\n  variant: 'secondary',\n  holdAffordance: false\n}, _temp2)) || _class) || _class;\n\nexports.default = Button;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _SpEventUtils = require(\"../../utils/SpEventUtils\");\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _Button = _interopRequireDefault(require(\"./Button\"));\n\nvar _icon = require(\"../../utils/icon\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _UxpButton = _interopRequireDefault(require(\"./UxpButton\"));\n\nvar _class, _class2, _temp;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst VARIANTS = {\n  quiet: {\n    variant: 'primary',\n    quiet: true\n  },\n  minimal: {\n    variant: 'secondary',\n    quiet: true\n  },\n  icon: {\n    variant: 'action',\n    quiet: true\n  }\n};\nconst SpVariants = {\n  action: 'sp-action-button',\n  toggle: 'sp-action-button',\n  primary: 'sp-button',\n  secondary: 'sp-button',\n  cta: 'sp-button',\n  warning: 'sp-button',\n  overBackground: 'sp-button'\n};\n\nlet SpUxpButton = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SpUxpButton extends _Button.default {\n  constructor(props) {\n    super(props);\n    this.spButtonRef = /*#__PURE__*/_react.default.createRef();\n  }\n\n  handleEvent(event) {\n    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);\n\n    if (this.props[eventName]) {\n      this.props[eventName].call(event.target, event);\n    }\n  }\n\n  componentDidMount() {\n    (0, _SpEventUtils.attachEventListeners)(this.spButtonRef.current, this.props, this.handleEvent);\n  }\n\n  componentWillUnmount() {\n    (0, _SpEventUtils.removeEventListeners)(this.spButtonRef.current, this.props, this.handleEvent);\n  }\n\n  componentDidUpdate(prevProps) {\n    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spButtonRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);\n  }\n  /**\n   * Focus the button\n   */\n\n\n  focus() {\n    const spbuttonRef = this.spButtonRef.current;\n\n    if (spbuttonRef) {\n      spbuttonRef.focus();\n    }\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      label,\n      children,\n      variant = 'secondary',\n      logic,\n      quiet,\n      icon,\n      selected,\n      block,\n      className,\n      disabled,\n      invalid,\n      uxpUseNative = true,\n      autoFocus,\n      holdAffordance,\n      dropdownButton = false\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"label\", \"children\", \"variant\", \"logic\", \"quiet\", \"icon\", \"selected\", \"block\", \"className\", \"disabled\", \"invalid\", \"uxpUseNative\", \"autoFocus\", \"holdAffordance\", \"dropdownButton\"]); // Map variants for backwards compatibility\n\n\n    if (VARIANTS[variant]) {\n      let mappedVariant = VARIANTS[variant];\n      let variantName = (mappedVariant.quiet ? 'quiet ' : '') + `\"${mappedVariant.variant}\"`;\n      console.warn(`The \"${variant}\" variant of Button is deprecated. Please use the ${variantName} variant instead.`);\n      ({\n        variant,\n        quiet\n      } = mappedVariant);\n    }\n\n    let isSpVariantSupported = false;\n    let SpElement = 'sp-button';\n\n    if (SpVariants[variant] && !logic && !block && !invalid && !dropdownButton) {\n      isSpVariantSupported = true;\n      SpElement = SpVariants[variant];\n    }\n\n    const isIconPresent = icon !== undefined && icon !== null;\n    const isChildrenOfTypeElement = children && typeof children !== 'string';\n    const renderNonNativeButton = !uxpUseNative || isIconPresent || isChildrenOfTypeElement;\n    const shouldRenderSpComponent = isSpVariantSupported && renderNonNativeButton;\n\n    if (!isSpVariantSupported && renderNonNativeButton) {\n      return super.render(); // this will create a non-native button (using span tag)\n    }\n\n    let labelContents = label || (typeof children === 'string' ? children : null);\n\n    if (shouldRenderSpComponent) {\n      return /*#__PURE__*/_react.default.createElement(SpElement, _extends({\n        ref: this.spButtonRef,\n        class: className,\n        disabled: disabled ? true : null,\n        quiet: quiet ? true : null,\n        selected: selected ? true : null,\n        \"hold-affordance\": holdAffordance ? true : null,\n        variant: variant,\n        autofocus: autoFocus ? true : null\n      }, (0, _SpEventUtils.removeEventProps)(otherProps)), icon && /*#__PURE__*/_react.default.createElement(\"div\", {\n        slot: \"icon\"\n      }, \" \", (0, _icon.cloneIcon)(icon, {\n        size: 'S'\n      })), labelContents, typeof children !== 'string' && children);\n    }\n\n    return /*#__PURE__*/_react.default.createElement(_UxpButton.default, this.props);\n  }\n\n}, _class2.defaultProps = {\n  autoFocus: false,\n  block: false,\n  disabled: false,\n  element: 'span',\n  invalid: false,\n  label: '',\n  logic: false,\n  quiet: false,\n  selected: false,\n  variant: 'secondary',\n  holdAffordance: false\n}, _temp)) || _class;\n\nexports.default = SpUxpButton;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _Button = _interopRequireDefault(require(\"./Button\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _icon = require(\"../../utils/icon\");\n\nvar _CornerTriangle = _interopRequireDefault(require(\"../../Icon/core/CornerTriangle\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _focusRing = require(\"../../utils/focusRing\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nrequire(\"../uxp-style/index.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst VARIANTS = {\n  quiet: {\n    variant: 'primary',\n    quiet: true\n  },\n  minimal: {\n    variant: 'secondary',\n    quiet: true\n  },\n  icon: {\n    variant: 'action',\n    quiet: true\n  }\n};\n\nclass UxpButton extends _Button.default {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.onKeyDownSpace = event => {\n      if (this.props.overrideOnKeyDown && this.onUxpKeyDown) {\n        return this.onUxpKeyDown(event);\n      }\n\n      if (event.key === ' ' || event.key === 'Enter') {\n        event.preventDefault();\n        this.buttonRef.click();\n      }\n    }, _temp;\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      element: Element = 'button',\n      label,\n      children,\n      variant = 'secondary',\n      logic,\n      quiet,\n      icon,\n      selected,\n      block,\n      className,\n      disabled,\n      invalid,\n      uxpUseNative = true,\n      onMouseDown,\n      onMouseUp,\n      onPointerDown,\n      onPointerUp,\n      autoFocus,\n      holdAffordance\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"element\", \"label\", \"children\", \"variant\", \"logic\", \"quiet\", \"icon\", \"selected\", \"block\", \"className\", \"disabled\", \"invalid\", \"uxpUseNative\", \"onMouseDown\", \"onMouseUp\", \"onPointerDown\", \"onPointerUp\", \"autoFocus\", \"holdAffordance\"]);\n\n    this.onUxpKeyDown = this.props.onKeyDown;\n\n    if (icon !== undefined && icon !== null) {\n      return super.render();\n    }\n\n    if (children && typeof children !== 'string' || !uxpUseNative) {\n      return super.render(); // this will create a non-native button (using span tag)\n    }\n\n    if (Element === 'span') {\n      Element = 'button';\n    }\n\n    const isButton = Element === 'button'; // Map variants for backwards compatibility\n\n    if (VARIANTS[variant]) {\n      let mappedVariant = VARIANTS[variant];\n      let variantName = (mappedVariant.quiet ? 'quiet ' : '') + `\"${mappedVariant.variant}\"`;\n      console.warn(`The \"${variant}\" variant of Button is deprecated. Please use the ${variantName} variant instead.`);\n      ({\n        variant,\n        quiet\n      } = mappedVariant);\n    }\n\n    let shouldRenderHoldAffordance = false; // Some button variants were broken out into their own components, map them appropriately\n\n    let baseButtonClass = 'spectrum-Button';\n\n    if (variant === 'action' || variant === 'toggle') {\n      baseButtonClass = 'spectrum-ActionButton';\n      shouldRenderHoldAffordance = holdAffordance;\n\n      if (variant === 'toggle') {\n        quiet = true;\n      }\n\n      variant = '';\n    } else if (logic) {\n      baseButtonClass = 'spectrum-LogicButton';\n    } else if (variant === 'clear') {\n      baseButtonClass = 'spectrum-ClearButton';\n      variant = '';\n    } else if (variant === 'field') {\n      baseButtonClass = 'spectrum-FieldButton';\n      variant = '';\n    } else if (variant === 'tool') {\n      baseButtonClass = 'spectrum-Tool'; // hold affordance is really only a part of tool.\n\n      shouldRenderHoldAffordance = holdAffordance;\n      variant = '';\n    }\n\n    if (!isButton) {\n      otherProps.role = 'button';\n      otherProps.tabIndex = disabled ? null : otherProps.tabIndex || 0;\n      otherProps['aria-disabled'] = disabled || null;\n\n      if (Element === 'a' && disabled && otherProps.href) {\n        otherProps.href = null;\n      }\n\n      otherProps.onKeyDown = disabled ? null : this.onKeyDownSpace;\n    }\n\n    let labelContents = label || (typeof children === 'string' ? children : null);\n    let ariaExpanded = null;\n\n    if (otherProps['aria-expanded'] !== undefined) {\n      ariaExpanded = otherProps['aria-expanded'];\n    } else if (otherProps['aria-haspopup']) {\n      ariaExpanded = selected || null;\n    }\n\n    const filteredProps = typeof Element === 'string' ? (0, _filterDOMProps.default)(otherProps) : otherProps;\n    const uxpSelected = selected ? selected : false; // added for quick-actions when the button failed to render when selected was null\n\n    return /*#__PURE__*/_react.default.createElement(Element, _extends({}, filteredProps, {\n      \"uxp-variant\": this.props.variant,\n      \"uxp-quiet\": quiet.toString(),\n      \"uxp-selected\": uxpSelected.toString(),\n      className: (0, _classnames.default)(baseButtonClass, !isButton && quiet ? `${baseButtonClass}--quiet` : '', !isButton && variant ? `${baseButtonClass}--${variant}` : '', {\n        'is-selected': !isButton && selected,\n        'is-disabled': !isButton && disabled,\n        'is-invalid': invalid,\n        'spectrum-Button--block': block,\n        [_focusRing.FOCUS_RING_CLASSNAME]: autoFocus\n      }, className),\n      disabled: disabled,\n      \"aria-invalid\": invalid || null,\n      \"aria-expanded\": ariaExpanded,\n      onClick: this.onClick,\n      onPointerDown: onMouseDown || onPointerDown,\n      onPointerUp: onMouseUp || onPointerUp,\n      ref: this.setButtonRef\n    }), (0, _icon.cloneIcon)(icon, {\n      size: 'S'\n    }), labelContents && /*#__PURE__*/_react.default.createElement(\"span\", {\n      className: baseButtonClass + '-label'\n    }, labelContents), shouldRenderHoldAffordance && /*#__PURE__*/_react.default.createElement(_CornerTriangle.default, {\n      role: \"presentation\",\n      size: null,\n      className: \"spectrum-Tool-hold\"\n    }), typeof children !== 'string' && children);\n  }\n\n}\n\nexports.default = UxpButton;\nUxpButton.defaultProps = {\n  autoFocus: false,\n  block: false,\n  disabled: false,\n  element: 'span',\n  invalid: false,\n  label: '',\n  logic: false,\n  quiet: false,\n  selected: false,\n  variant: 'secondary',\n  holdAffordance: false\n};","\"use strict\";\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = require('./js/ButtonGroup');","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _FocusManager = _interopRequireDefault(require(\"../../utils/FocusManager\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/buttongroup/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/buttongroup/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/buttongroup/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/buttongroup/index.css\");\n}\n\nconst BUTTONGROUP_ITEM_SELECTOR = '.spectrum-ButtonGroup-item:not([disabled]):not([aria-disabled])';\nconst BUTTONGROUP_SELECTED_ITEM_SELECTOR = BUTTONGROUP_ITEM_SELECTOR + '[aria-checked=true].is-selected';\nconst ALLOWED_BUTTON_VARIANTS = {\n  tool: true,\n  action: true,\n  toggle: true\n};\n\nlet ButtonGroup = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class ButtonGroup extends _react.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      value: props.value\n    };\n  }\n\n  UNSAFE_componentWillReceiveProps(props) {\n    if (props.value && props.value !== this.state.value) {\n      this.setState({\n        value: props.value\n      });\n    }\n  }\n\n  addSelection(button) {\n    return [...(this.state.value || []), button.value];\n  }\n\n  removeSelection(button) {\n    let value = this.state.value || [];\n    const index = value.indexOf(button.value);\n    return [...value.slice(0, index), ...value.slice(index + 1, value.length)];\n  }\n\n  handleSelect(button, e) {\n    if (!this.props.readOnly && !button.readOnly) {\n      let nextButtons;\n\n      if (this.props.multiple) {\n        if (this.isSelected(button)) {\n          nextButtons = this.removeSelection(button);\n        } else {\n          nextButtons = this.addSelection(button);\n        }\n      } else {\n        nextButtons = button.value;\n      } // Set state if in uncontrolled mode\n\n\n      if (!('value' in this.props)) {\n        this.setState({\n          value: nextButtons\n        });\n      }\n\n      if (this.props.onChange) {\n        this.props.onChange(nextButtons, e);\n      }\n    } // Support button's onClicks\n\n\n    if (button.onClick) {\n      button.onClick(e);\n    } // Allow's the ButtonGroup's onClick to be called when a button is clicked\n\n\n    if (this.props.onClick) {\n      this.props.onClick(button.value, e);\n    }\n  }\n  /**\n   * @private\n   * Evaluates whether button element is selected.\n   * @param   {Object}  button Button properties object\n   * @returns {Boolean} true if button is selected\n   */\n\n\n  isSelected(button) {\n    if (this.props.readOnly) {\n      return null;\n    }\n\n    return this.props.multiple ? this.state.value && this.state.value.indexOf(button.value) >= 0 : this.state.value === button.value;\n  }\n  /**\n   * @private\n   * The role to be used by buttons within the group. If the button group is readOnly,\n   * button should retain their implicit role of button. With multiple selection, buttons\n   * should have role of checkbox, and with single selection buttons should have role of radio.\n   * @returns {String} role of buttons within group, either null, radio or checkbox.\n   */\n\n\n  getChildRole() {\n    if (this.props.readOnly) {\n      return null;\n    }\n\n    return this.props.multiple ? 'checkbox' : 'radio';\n  }\n\n  getChildProps(button, index) {\n    const invalid = this.props.invalid || button.props.invalid;\n    const required = this.props.required || button.props.required;\n    const disabled = this.props.disabled || button.props.disabled;\n    const selected = this.isSelected(button.props);\n    const role = this.getChildRole();\n    const onClick = !disabled ? this.handleSelect.bind(this, button.props) : null;\n    const allowedVariant = ALLOWED_BUTTON_VARIANTS[button.props.variant];\n    const classes = (0, _classnames.default)('spectrum-ButtonGroup-item', button.props.className);\n    return {\n      /* eslint-disable */\n      tabIndex: !disabled ? this.props.tabIndex ? this.props.tabIndex : undefined : undefined,\n\n      /* eslint-enable */\n      className: classes,\n      selected: selected,\n      disabled: disabled,\n      variant: allowedVariant ? button.props.variant : 'action',\n      quiet: allowedVariant ? button.props.quiet : true,\n      onClick: onClick,\n      onKeyDown: button.props.onKeyDown,\n      role: role,\n      'aria-checked': selected,\n      'aria-invalid': invalid,\n      'aria-required': required\n    };\n  }\n\n  renderButtons() {\n    const {\n      children\n    } = this.props;\n    return _react.default.Children.map(children, (child, index) => child ? /*#__PURE__*/_react.default.cloneElement(child, this.getChildProps(child, index)) : null);\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      children = [],\n      className,\n      multiple,\n      disabled,\n      readOnly,\n      invalid,\n      required,\n      orientation,\n      manageTabIndex,\n      role\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"multiple\", \"disabled\", \"readOnly\", \"invalid\", \"required\", \"orientation\", \"manageTabIndex\", \"role\"]);\n\n    delete otherProps.onChange;\n    delete otherProps.onClick;\n\n    if (!role) {\n      if (!readOnly && !multiple) {\n        // With single-selection, the wrapper element should have role=radiogroup.\n        role = 'radiogroup';\n      } else if (readOnly || children.length > 2) {\n        // With readOnly and more than one button, the wrapper element should have role=toolbar, otherwise with less than two items or multi-selection, use role=group.\n        role = readOnly && children.length > 2 ? 'toolbar' : 'group';\n      }\n    }\n\n    return /*#__PURE__*/_react.default.createElement(_FocusManager.default, {\n      itemSelector: BUTTONGROUP_ITEM_SELECTOR,\n      selectedItemSelector: BUTTONGROUP_SELECTED_ITEM_SELECTOR,\n      orientation: role === 'toolbar' ? orientation : 'both',\n      manageTabIndex: manageTabIndex\n    }, /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n      \"aria-invalid\": invalid || null,\n      \"aria-required\": required || null,\n      \"aria-disabled\": disabled || null,\n      \"aria-orientation\": orientation !== 'both' && role === 'toolbar' ? orientation : null,\n      role: role\n    }, (0, _filterDOMProps.default)(otherProps), {\n      className: (0, _classnames.default)('spectrum-ButtonGroup', {\n        'spectrum-ButtonGroup--vertical': orientation === 'vertical'\n      }, className)\n    }), this.renderButtons(children)));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * All buttons in ButtonGroup are disabled, greyed out and cannot be interacted with.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * Will override all child buttons invalid\n   */\n  invalid: _propTypes.default.bool,\n\n  /**\n   * Whether to use roving tabIndex so that only one element within the group can receive focus with tab key at a time.\n   */\n  manageTabIndex: _propTypes.default.bool,\n\n  /**\n   * Allows multi select\n   */\n  multiple: _propTypes.default.bool,\n\n  /**\n   * Won't allow a permanent selection\n   */\n  readOnly: _propTypes.default.bool,\n\n  /**\n   * Will override all child buttons required\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * Called whenever a button is selected (non-readonly mode)\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * Called whenever a button is clicked (readonly mode)\n   */\n  onClick: _propTypes.default.func,\n\n  /**\n   * Renders the button group as a row or a column\n   */\n  orientation: _propTypes.default.oneOf(['horizontal', 'vertical', 'both']),\n\n  /**\n   * Value to select one or more buttons in the group. Accepts an array of strings if multiple=true,\n   * otherwise accepts a string\n   */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)])\n}, _class2.defaultProps = {\n  disabled: false,\n  invalid: false,\n  manageTabIndex: true,\n  multiple: false,\n  readOnly: false,\n  required: false,\n  orientation: 'both'\n}, _temp)) || _class;\n\nexports.default = ButtonGroup;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Checkbox', () => require('./js/UxpCheckbox'), () => require('./js/Checkbox'), () => require('./js/SpUxpCheckbox'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _CheckmarkSmall = _interopRequireDefault(require(\"../../Icon/core/CheckmarkSmall\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _DashSmall = _interopRequireDefault(require(\"../../Icon/core/DashSmall\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _SwitchBase = _interopRequireDefault(require(\"../../Switch/js/SwitchBase\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/checkbox/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/checkbox/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/checkbox/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/checkbox/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/checkbox/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/checkbox/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/checkbox/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/checkbox/multiStops/darkest.css\");\n\nclass Checkbox extends _react.Component {\n  componentDidMount() {\n    this.setIndeterminate();\n  }\n\n  componentDidUpdate() {\n    this.setIndeterminate();\n  } // There is no way to set indeterminate through markup such that it will be picked up by a CSS\n  // indeterminate pseudo-selector. It can only be done via javascript.\n\n\n  setIndeterminate() {\n    const {\n      indeterminate\n    } = this.props;\n    const input = this.inputRef && this.inputRef.getInput();\n\n    if (indeterminate != null && input) {\n      input.indeterminate = indeterminate;\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      indeterminate,\n      quiet,\n      className\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"indeterminate\", \"quiet\", \"className\"]); // override the aria-checked prop of SwitchBase only if it is indeterminate.\n\n\n    if (indeterminate) {\n      otherProps['aria-checked'] = 'mixed';\n    }\n\n    let markIcon = indeterminate ? /*#__PURE__*/_react.default.createElement(_DashSmall.default, {\n      size: null,\n      className: \"spectrum-Checkbox-partialCheckmark\"\n    }) : /*#__PURE__*/_react.default.createElement(_CheckmarkSmall.default, {\n      size: null,\n      className: \"spectrum-Checkbox-checkmark\"\n    });\n    return /*#__PURE__*/_react.default.createElement(_SwitchBase.default, _extends({\n      ref: el => this.inputRef = el,\n      inputType: \"checkbox\",\n      className: (0, _classnames.default)('spectrum-Checkbox', {\n        'is-indeterminate': indeterminate,\n        'spectrum-Checkbox--quiet': quiet\n      }, className),\n      inputClassName: \"spectrum-Checkbox-input\",\n      markClassName: \"spectrum-Checkbox-box\",\n      markIcon: markIcon,\n      labelClassName: \"spectrum-Checkbox-label\"\n    }, otherProps));\n  }\n\n}\n\nexports.default = Checkbox;\nCheckbox.propTypes = {\n  /**\n   * Label for the checkbox\n   */\n  label: _propTypes.default.string,\n\n  /**\n   * Whether to render the label for the checkbox\n   */\n  renderLabel: _propTypes.default.bool,\n\n  /**\n   * defaultChecked is undefined by default so we can respect\n   * the value that is passed in without erroneously putting\n   * both checked and defaultChecked on the input\n   */\n  defaultChecked: _propTypes.default.bool,\n\n  /**\n   * if the checkbox can't be interacted with, and also greys it out\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * Uses standard HTML required to make a form invalid, also get a highlight if not filled in\n   */\n  required: _propTypes.default.bool,\n\n  /**\n   * If the value is invalid\n   */\n  invalid: _propTypes.default.bool,\n\n  /**\n   * Makes it so the checkbox can't be interacted with\n   */\n  readOnly: _propTypes.default.bool,\n\n  /**\n   * Callback for when the checkbox value changes\n   */\n  onChange: _propTypes.default.func,\n\n  /**\n   * Uses a dash instead of a check to indicate an in between or \"unknown\" state\n   */\n  indeterminate: _propTypes.default.bool,\n\n  /**\n  * Whether the checkbox is a quiet variation\n  */\n  quiet: _propTypes.default.bool\n};\nCheckbox.defaultProps = {\n  renderLabel: true,\n  defaultChecked: undefined,\n  disabled: false,\n  required: false,\n  invalid: false,\n  readOnly: false,\n  onChange: function () {},\n  indeterminate: false,\n  quiet: false\n};\nCheckbox.displayName = 'Checkbox';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _SpEventUtils = require(\"../../utils/SpEventUtils\");\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _Checkbox = _interopRequireDefault(require(\"./Checkbox\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _class;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet SpUxpCheckbox = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = class SpUxpCheckbox extends _Checkbox.default {\n  constructor(props) {\n    super(props);\n    const {\n      checked,\n      defaultChecked\n    } = props;\n    this.state = {\n      checked: checked !== undefined ? checked : defaultChecked || false\n    };\n    this.spCheckboxRef = /*#__PURE__*/_react.default.createRef();\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    if ('checked' in nextProps) {\n      this.setState({\n        checked: nextProps.checked\n      });\n    }\n  }\n\n  setChecked(checked) {\n    if (!('checked' in this.props)) {\n      this.setState({\n        checked\n      });\n    }\n  }\n\n  handleEvent(event) {\n    if (event.type === 'change') {\n      const {\n        checked\n      } = event.target;\n      this.setChecked(checked);\n    }\n\n    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);\n\n    if (this.props[eventName]) {\n      this.props[eventName].call(event.target, event);\n    }\n  }\n\n  componentDidMount() {\n    (0, _SpEventUtils.attachEventListeners)(this.spCheckboxRef.current, this.props, this.handleEvent);\n  }\n\n  componentWillUnmount() {\n    (0, _SpEventUtils.removeEventListeners)(this.spCheckboxRef.current, this.props, this.handleEvent);\n  }\n\n  componentDidUpdate(prevProps) {\n    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spCheckboxRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      indeterminate,\n      label,\n      className,\n      children,\n      invalid,\n      quiet,\n      disabled,\n      renderLabel\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"indeterminate\", \"label\", \"className\", \"children\", \"invalid\", \"quiet\", \"disabled\", \"renderLabel\"]);\n\n    let labelContents = label || (typeof children === 'string' ? children : null);\n    delete otherProps.checked;\n    return /*#__PURE__*/_react.default.createElement(\"sp-checkbox\", _extends({\n      ref: this.spCheckboxRef,\n      class: className,\n      checked: this.state.checked ? true : null,\n      emphasized: !quiet ? true : null,\n      invalid: invalid ? true : null,\n      indeterminate: indeterminate ? true : null,\n      disabled: disabled ? true : null\n    }, (0, _SpEventUtils.removeEventProps)(otherProps)), renderLabel && labelContents, typeof children !== 'string' && children);\n  }\n\n}) || _class) || _class;\n\nexports.default = SpUxpCheckbox;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _Checkbox = _interopRequireDefault(require(\"./Checkbox\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nrequire(\"../uxp-style/index.css\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _class, _class2, _temp, _initialiseProps;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n// pulled from react-spectrum-uxp, should come from spectrum-dna\nconst CheckboxMetrics = {\n  labelGap: '8px',\n  marginTop: '3px',\n  height: '18px',\n  width: '18px'\n};\nconst labelStyle = {\n  display: 'flex',\n  flexDirection: 'row',\n  alignItems: 'center',\n  marginTop: CheckboxMetrics.marginTop,\n  marginBottom: CheckboxMetrics.marginTop,\n  height: CheckboxMetrics.height\n};\nconst spanStyle = {\n  marginLeft: CheckboxMetrics.labelGap\n};\nconst inputStyle = {\n  width: CheckboxMetrics.width\n};\n\nlet UxpCheckbox = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class UxpCheckbox extends _Checkbox.default {\n  constructor(props) {\n    super(props);\n\n    _initialiseProps.call(this);\n\n    const {\n      checked,\n      defaultChecked\n    } = props;\n    this.state = {\n      checked: checked !== undefined ? checked : defaultChecked || false\n    };\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    if ('checked' in nextProps) {\n      this.setState({\n        checked: nextProps.checked\n      });\n    }\n  }\n\n  setChecked(checked) {\n    if (!('checked' in this.props)) {\n      this.setState({\n        checked\n      });\n    }\n  }\n\n  setIndeterminate() {\n    const {\n      indeterminate\n    } = this.props;\n    const input = this.inputRef;\n\n    if (indeterminate != null && input) {\n      input.indeterminate = indeterminate;\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      label,\n      className,\n      labelClassName,\n      children,\n      style\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"label\", \"className\", \"labelClassName\", \"children\", \"style\"]); // Removing the unsupported attributes for input element to avoid warnings.\n\n\n    delete otherProps.renderLabel;\n    delete otherProps.indeterminate;\n    delete otherProps.invalid;\n    delete otherProps.quiet;\n    let labelContents = label || (typeof children === 'string' ? children : null);\n    const {\n      checked\n    } = this.state;\n    return /*#__PURE__*/_react.default.createElement(\"label\", {\n      style: Object.assign({}, labelStyle, style)\n    }, /*#__PURE__*/_react.default.createElement(\"input\", _extends({\n      style: inputStyle,\n      ref: el => this.inputRef = el\n    }, otherProps, {\n      type: \"checkbox\",\n      checked: checked,\n      onChange: this.handleChange,\n      className: className\n    })), labelContents && labelContents.length > 0 && /*#__PURE__*/_react.default.createElement(\"span\", {\n      style: spanStyle,\n      className: (0, _classnames.default)({\n        'spectrum-Checkbox-span-disabled': this.props.disabled\n      }, labelClassName)\n    }, labelContents));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * For providing custom styling on label/span for the checkbox\n   */\n  labelClassName: _propTypes.default.string\n}, _initialiseProps = function () {\n  this.handleChange = e => {\n    const {\n      onChange\n    } = this.props;\n    const {\n      checked\n    } = e.target;\n    this.setChecked(checked);\n\n    if (onChange) {\n      onChange(checked, e);\n    }\n  };\n}, _temp)) || _class;\n\nexports.default = UxpCheckbox;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Dialog', () => require('./js/UxpDialog'), () => require('./js/Dialog'), () => require('./js/SpUxpDialog'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _DialogButtons = _interopRequireDefault(require(\"./DialogButtons\"));\n\nvar _DialogHeader = _interopRequireDefault(require(\"./DialogHeader\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _FocusManager = require(\"../../utils/FocusManager\");\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/dialog/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/darkest.css\");\n\nlet Dialog = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Dialog extends _react.Component {\n  constructor(props) {\n    super(props);\n    this.dialogId = (0, _createId.default)();\n  }\n  /*\n   * Calls the props.onConfirm() or props.onCancel() asynchronously if present,\n   * then props.onClose() on any response except false\n   */\n\n\n  _onAction(action, ...args) {\n    var _this = this;\n\n    return _asyncToGenerator(function* () {\n      let shouldClose = true;\n\n      if (action) {\n        shouldClose = yield action(...args);\n      }\n\n      if (shouldClose !== false) {\n        _this.props.onClose();\n      }\n    })();\n  }\n\n  onConfirm(...args) {\n    this._onAction(this.props.onConfirm, ...args);\n  }\n\n  onCancel() {\n    this._onAction(this.props.onCancel);\n  }\n\n  onFocus(e) {\n    if (this.props.onFocus) {\n      this.props.onFocus(e);\n    }\n  }\n\n  onKeyDown(e) {\n    const {\n      confirmDisabled,\n      keyboardConfirm,\n      onKeyDown,\n      disableEscKey\n    } = this.props;\n\n    if (onKeyDown) {\n      onKeyDown(e); // Do nothing if stopPropagation has been called on event after onKeyDown prop executes.\n\n      if (e.isPropagationStopped && e.isPropagationStopped()) {\n        return;\n      }\n    }\n\n    switch (e.key) {\n      case 'Enter':\n        if (!confirmDisabled && keyboardConfirm) {\n          this.onConfirm();\n        }\n\n        break;\n\n      case 'Esc':\n      case 'Escape':\n        if (!disableEscKey) {\n          this.onCancel();\n        }\n\n        break;\n\n      default:\n        if (this.props.trapFocus) {\n          (0, _FocusManager.trapFocus)(this, e);\n        }\n\n        break;\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className = '',\n      cancelLabel,\n      confirmLabel,\n      secondaryLabel,\n      open,\n      title,\n      variant,\n      mode,\n      role,\n      tabIndex,\n      trapFocus,\n      isDismissible,\n      id = this.dialogId,\n      'aria-label': ariaLabel,\n      'aria-labelledby': ariaLabelledby,\n      'aria-describedby': ariaDescribedby,\n      'aria-modal': ariaModal\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"cancelLabel\", \"confirmLabel\", \"secondaryLabel\", \"open\", \"title\", \"variant\", \"mode\", \"role\", \"tabIndex\", \"trapFocus\", \"isDismissible\", \"id\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-modal\"]);\n\n    const fullscreen = mode === 'fullscreen' || mode === 'fullscreenTakeover';\n    const derivedVariant = variant || (cancelLabel && confirmLabel ? 'confirmation' : 'information');\n    delete otherProps.modalContent;\n    delete otherProps.disableEscKey;\n    return (\n      /*#__PURE__*/\n      // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n      _react.default.createElement(\"div\", {\n        className: (0, _classnames.default)('spectrum-Dialog', 'react-spectrum-Dialog', {\n          [`spectrum-Dialog--${mode}`]: mode,\n          'spectrum-Dialog--error': variant === 'error',\n          'is-open': open,\n          'spectrum-Dialog--dismissible': isDismissible\n        }, className),\n        role: role\n        /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n        ,\n        tabIndex: tabIndex === undefined || trapFocus ? 1 : tabIndex,\n        onFocus: this.onFocus,\n        onKeyDown: this.onKeyDown,\n        id: id,\n        \"aria-label\": ariaLabel,\n        \"aria-labelledby\": ariaLabelledby || (title && !ariaLabel ? `${id}-heading` : null),\n        \"aria-describedby\": ariaDescribedby || (title && children ? `${id}-content` : null),\n        \"aria-modal\": ariaModal || trapFocus\n      }, title && /*#__PURE__*/_react.default.createElement(_DialogHeader.default, _extends({\n        variant: derivedVariant,\n        title: title,\n        fullscreen: fullscreen,\n        confirmLabel: confirmLabel,\n        secondaryLabel: secondaryLabel,\n        cancelLabel: cancelLabel,\n        isDismissible: isDismissible,\n        id: `${id}-heading`\n      }, otherProps, {\n        onConfirm: this.onConfirm,\n        onCancel: this.onCancel\n      })), title ? /*#__PURE__*/_react.default.createElement(\"div\", {\n        className: \"spectrum-Dialog-content\",\n        id: `${id}-content`\n      }, children) : children, !isDismissible && !fullscreen && confirmLabel && /*#__PURE__*/_react.default.createElement(_DialogButtons.default, _extends({}, this.props, {\n        variant: derivedVariant,\n        className: \"spectrum-Dialog-footer\",\n        onConfirm: this.onConfirm,\n        onCancel: this.onCancel\n      })))\n    );\n  }\n\n}, _class2.propTypes = {\n  /**\n   * Can dismiss by clicking on the backdrop\n   */\n  backdropClickable: _propTypes.default.bool,\n\n  /**\n   * Label of the cancel button\n   */\n  cancelLabel: _propTypes.default.string,\n\n  /**\n   * String of custom class names to add to the top level dom element of Dialog\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Confirm button is disabled\n   */\n  confirmDisabled: _propTypes.default.bool,\n\n  /**\n   * Label of the confirm button\n   */\n  confirmLabel: _propTypes.default.string,\n\n  /**\n   * Label for an additional button\n   */\n  secondaryLabel: _propTypes.default.string,\n\n  /**\n   * Callback when dialog closes\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback when cancel button clicked\n   */\n  onCancel: _propTypes.default.func,\n\n  /**\n   * Callback when confim button clicked. Has a paramater specifying which\n   * confirm button is clicked, \"primary\" or \"secondary\".\n   */\n  onConfirm: _propTypes.default.func,\n\n  /**\n   * Have dialog opened when mounted to DOM\n   */\n  open: _propTypes.default.bool,\n\n  /**\n   * Title of the dialog\n   */\n  title: _propTypes.default.node,\n\n  /**\n   * Affects the style used by the dialog, establishing its type\n   */\n  variant: _propTypes.default.oneOf(['confirmation', 'information', 'destructive', 'error']),\n\n  /**\n   *  Affects the display size of the dialog\n   */\n  mode: _propTypes.default.oneOf(['alert', 'fullscreen', 'fullscreenTakeover']),\n\n  /**\n   * For ARIA telling what type of dialog this is\n   */\n  role: _propTypes.default.oneOf(['document', 'dialog', 'alertdialog']),\n\n  /**\n   * Which button should be autoFocused after mounted to DOM\n   */\n  autoFocusButton: _propTypes.default.oneOf(['cancel', 'confirm', 'secondary', null]),\n\n  /**\n   * When true, allows user to press enter key and trigger confirm event and close dialog.\n   * When false, the user can still use keyboard navigation to close via the comfirm button.\n   */\n  keyboardConfirm: _propTypes.default.bool,\n\n  /**\n   * Keeps focus from escaping dialog\n   */\n  trapFocus: _propTypes.default.bool,\n\n  /**\n   * When true, the Esc key will not close the Dialog or trigger an onCancel event.\n   * Use for rare cases when a Dialog requires confirmation before being dismissed.\n   */\n  disableEscKey: _propTypes.default.bool,\n\n  /**\n   * Whether it is a dismissible dialogs. Dismissible dialogs should not have buttons.\n   */\n  isDismissible: _propTypes.default.bool\n}, _class2.defaultProps = {\n  backdropClickable: false,\n  confirmDisabled: false,\n  keyboardConfirm: false,\n  open: true,\n  role: 'dialog',\n  autoFocusButton: null,\n  onClose: function () {},\n  trapFocus: true,\n  disableEscKey: false,\n  isDismissible: false\n}, _temp)) || _class;\n\nexports.default = Dialog;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = DialogButtons;\n\nvar _Button = _interopRequireDefault(require(\"../../Button\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nrequire(\"../style/index.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nconst BUTTON_VARIANTS = {\n  confirmation: 'cta',\n  information: 'primary',\n  error: 'primary',\n  destructive: 'warning'\n};\n\nfunction DialogButtons({\n  autoFocusButton,\n  confirmLabel,\n  secondaryLabel,\n  cancelLabel,\n  confirmDisabled,\n  onConfirm,\n  onCancel,\n  className,\n  variant\n}) {\n  const confirmVariant = BUTTON_VARIANTS[variant] || 'primary';\n\n  let onKeyDown = event => {\n    if (event.key === ' ' || event.key === 'Enter') {\n      event.stopPropagation();\n    }\n  };\n\n  return /*#__PURE__*/_react.default.createElement(\"div\", {\n    className: (0, _classnames.default)('react-spectrum-Dialog-buttons', className)\n  }, cancelLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {\n    variant: \"secondary\",\n    label: cancelLabel,\n    onClick: onCancel,\n    autoFocus: autoFocusButton === 'cancel',\n    onKeyDown: onKeyDown,\n    uxpUseNative: false\n  }), secondaryLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {\n    variant: \"secondary\",\n    label: secondaryLabel,\n    onClick: onConfirm ? onConfirm.bind(null, 'secondary') : null,\n    autoFocus: autoFocusButton === 'secondary',\n    disabled: confirmDisabled || null,\n    onKeyDown: onKeyDown,\n    uxpUseNative: false\n  }), confirmLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {\n    variant: confirmVariant,\n    label: confirmLabel,\n    onClick: onConfirm ? onConfirm.bind(null, 'primary') : null,\n    autoFocus: autoFocusButton === 'confirm',\n    disabled: confirmDisabled || null,\n    onKeyDown: onKeyDown,\n    uxpUseNative: false\n  }));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = DialogHeader;\n\nvar _AlertMedium = _interopRequireDefault(require(\"../../Icon/core/AlertMedium\"));\n\nvar _Button = _interopRequireDefault(require(\"../../Button\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _CrossLarge = _interopRequireDefault(require(\"../../Icon/core/CrossLarge\"));\n\nvar _DialogButtons = _interopRequireDefault(require(\"./DialogButtons\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _Heading = _interopRequireDefault(require(\"../../Heading\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst VARIANT_ICONS = {\n  error: _AlertMedium.default\n};\n\nfunction DialogHeader(_ref) {\n  let {\n    title,\n    variant,\n    fullscreen,\n    confirmDisabled,\n    confirmLabel,\n    secondaryLabel,\n    cancelLabel,\n    onConfirm,\n    onCancel,\n    onClose,\n    className,\n    autoFocusButton,\n    id,\n    isDismissible\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"title\", \"variant\", \"fullscreen\", \"confirmDisabled\", \"confirmLabel\", \"secondaryLabel\", \"cancelLabel\", \"onConfirm\", \"onCancel\", \"onClose\", \"className\", \"autoFocusButton\", \"id\", \"isDismissible\"]);\n\n  let Icon = VARIANT_ICONS[variant];\n  return /*#__PURE__*/_react.default.createElement(\"div\", _extends({}, (0, _filterDOMProps.default)(otherProps), {\n    className: (0, _classnames.default)('spectrum-Dialog-header', `spectrum-Dialog-header--${variant}`, className)\n  }), /*#__PURE__*/_react.default.createElement(_Heading.default, {\n    size: 3,\n    className: \"spectrum-Dialog-title\",\n    id: id\n  }, title), Icon && /*#__PURE__*/_react.default.createElement(Icon, {\n    size: null,\n    className: \"spectrum-Dialog-typeIcon\"\n  }), isDismissible && !fullscreen && /*#__PURE__*/_react.default.createElement(_Button.default, {\n    className: \"spectrum-Dialog-closeButton\",\n    variant: \"action\",\n    onClick: onClose,\n    quiet: true,\n    icon: /*#__PURE__*/_react.default.createElement(_CrossLarge.default, {\n      size: \"L\"\n    })\n  }), fullscreen && confirmLabel && /*#__PURE__*/_react.default.createElement(_DialogButtons.default, {\n    autoFocusButton: autoFocusButton,\n    variant: variant,\n    cancelLabel: cancelLabel,\n    secondaryLabel: secondaryLabel,\n    confirmLabel: confirmLabel,\n    confirmDisabled: confirmDisabled,\n    onConfirm: onConfirm,\n    onCancel: onCancel\n  }));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _SpUxpNativeDialog = _interopRequireDefault(require(\"./SpUxpNativeDialog\"));\n\nvar _UxpNonNativeDialog = _interopRequireDefault(require(\"./UxpNonNativeDialog\"));\n\nvar _UxpOptions = _interopRequireDefault(require(\"../../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n// if isNative props is supplied as true AND platform has compositing (z-index) issues \n// use the native modal dialogs provided by the platform\n// else use the default spectrum dialog\nconst SpUxpDialog = /*#__PURE__*/_react.default.forwardRef((props, ref) => {\n  if (_UxpOptions.default.productNeedsOverlayFix && props && props.isNative === true) {\n    return /*#__PURE__*/_react.default.createElement(_SpUxpNativeDialog.default, _extends({}, props, {\n      ref: ref\n    }));\n  } else {\n    return /*#__PURE__*/_react.default.createElement(_UxpNonNativeDialog.default, _extends({}, props, {\n      ref: ref\n    }));\n  }\n});\n\nvar _default = SpUxpDialog;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _AlertMedium = _interopRequireDefault(require(\"../../Icon/core/AlertMedium\"));\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Dialog = _interopRequireDefault(require(\"./Dialog\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _UxpDialogButtons = _interopRequireDefault(require(\"./UxpDialogButtons\"));\n\nvar _UxpNativeDialog = _interopRequireDefault(require(\"./UxpNativeDialog\"));\n\nrequire(\"../sp-uxp-style/index.css\");\n\nvar _SpEventUtils = require(\"../../utils/SpEventUtils\");\n\nvar _class, _class2, _temp;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst VARIANT_ICONS = {\n  error: _AlertMedium.default\n};\nlet shouldUseSpDialog = null;\nlet spDialogHeight = null;\nlet spDialogWidth = null;\nlet derivedVariant = null;\nlet fullscreen = null;\n\nlet SpUxpNativeDialog = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SpUxpNativeDialog extends _Dialog.default {\n  constructor(props) {\n    super(props);\n    fullscreen = this.props.mode === 'fullscreen' || this.props.mode === 'fullscreenTakeover';\n    shouldUseSpDialog = !(fullscreen || this.props.isDismissible);\n  }\n\n  handleEvent(event) {\n    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);\n\n    if (this.props[eventName]) {\n      this.props[eventName].call(event.target, event);\n    }\n  }\n\n  componentDidMount() {\n    const {\n      size\n    } = this.props;\n\n    if (this.spdialogElementRef && shouldUseSpDialog) {\n      (0, _SpEventUtils.addEventListeners)(this.spdialogElementRef, this.props, this.handleEvent);\n\n      if (size && size.width && size.height) {\n        spDialogHeight = size.height;\n        spDialogWidth = size.width;\n      }\n\n      this.spdialogElementRef.addEventListener('close', this.onDialogCloseEvent);\n      this.spdialogElementRef.addEventListener('cancel', this.onDialogCancelEvent);\n      this.spdialogElementRef.addEventListener('load', this.onDialogLoadEvent);\n    }\n  }\n\n  componentWillUnmount() {\n    if (this.spdialogElementRef && shouldUseSpDialog) {\n      spDialogHeight = null;\n      spDialogWidth = null;\n      (0, _SpEventUtils.removeEventListeners)(this.spdialogElementRef, this.props, this.handleEvent);\n      this.spdialogElementRef.removeEventListener('close', this.onDialogCloseEvent);\n      this.spdialogElementRef.removeEventListener('cancel', this.onDialogCancelEvent);\n      this.spdialogElementRef.removeEventListener('load', this.onDialogLoadEvent);\n    }\n  }\n\n  onDialogCloseEvent() {\n    this.spdialogElementRef = null;\n  }\n\n  onDialogCancelEvent() {\n    this.spdialogElementRef = null;\n  }\n\n  onDialogLoadEvent() {\n    if (this.props.onLoad) {\n      this.props.onLoad();\n    }\n  }\n\n  onConfirm(...args) {\n    this._onAction(this.props.onConfirm, ...args);\n\n    this.closeDialog();\n  }\n\n  onCancel() {\n    this._onAction(this.props.onCancel);\n\n    this.closeDialog();\n  }\n\n  closeDialog() {\n    if (this.spdialogElementRef && shouldUseSpDialog) {\n      this.spdialogElementRef.open = null;\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className = '',\n      confirmLabel,\n      title,\n      id = this.dialogId\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"confirmLabel\", \"title\", \"id\"]);\n\n    delete otherProps.onLoad;\n    derivedVariant = this.props.variant || (this.props.cancelLabel && this.props.confirmLabel ? 'confirmation' : 'information');\n    let Icon = VARIANT_ICONS[derivedVariant];\n\n    if (shouldUseSpDialog) {\n      return /*#__PURE__*/_react.default.createElement(\"sp-dialog\", _extends({\n        id: id,\n        ref: el => this.spdialogElementRef = el,\n        defaultpreventedkeys: ['Escape'],\n        \"size-height\": spDialogHeight,\n        \"size-width\": spDialogWidth,\n        open: this.props.open ? true : null,\n        onConfirm: this.onConfirm,\n        onCancel: this.onCancel,\n        class: className\n      }, this.otherProps), title && /*#__PURE__*/_react.default.createElement(\"div\", {\n        slot: \"title\"\n      }, title), Icon && /*#__PURE__*/_react.default.createElement(\"div\", {\n        slot: \"icon\"\n      }, /*#__PURE__*/_react.default.createElement(Icon, {\n        className: (0, _classnames.default)('spectrum-error-icon'),\n        size: null\n      })), /*#__PURE__*/_react.default.createElement(\"div\", {\n        slot: \"description\",\n        id: `${id}-content`\n      }, children), /*#__PURE__*/_react.default.createElement(\"div\", {\n        slot: \"buttongroup\"\n      }, confirmLabel && /*#__PURE__*/_react.default.createElement(_UxpDialogButtons.default, _extends({}, this.props, {\n        variant: derivedVariant,\n        onConfirm: this.onConfirm,\n        onCancel: this.onCancel\n      }))));\n    }\n\n    return /*#__PURE__*/_react.default.createElement(_UxpNativeDialog.default, this.props);\n  }\n\n}, _class2.propTypes = _objectSpread(_objectSpread({}, _Dialog.default.propTypes), {}, {\n  /**\n   * When custom size for modal is required to render long-content\n   */\n  size: _propTypes.default.objectOf({\n    width: _propTypes.default.number,\n    height: _propTypes.default.number\n  })\n}), _temp)) || _class;\n\nexports.default = SpUxpNativeDialog;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _UxpNativeDialog = _interopRequireDefault(require(\"./UxpNativeDialog\"));\n\nvar _UxpNonNativeDialog = _interopRequireDefault(require(\"./UxpNonNativeDialog\"));\n\nvar _UxpOptions = _interopRequireDefault(require(\"../../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n// if isNative props is supplied as true AND platform has compositing (z-index) issues \n// use the native modal dialogs provided by the platform\n// else use the default spectrum dialog\nconst UxpDialog = /*#__PURE__*/_react.default.forwardRef((props, ref) => {\n  if (_UxpOptions.default.productNeedsOverlayFix && props && props.isNative === true) {\n    return /*#__PURE__*/_react.default.createElement(_UxpNativeDialog.default, _extends({}, props, {\n      ref: ref\n    }));\n  } else {\n    return /*#__PURE__*/_react.default.createElement(_UxpNonNativeDialog.default, _extends({}, props, {\n      ref: ref\n    }));\n  }\n});\n\nvar _default = UxpDialog;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = UxpDialogButtons;\n\nvar _Button = _interopRequireDefault(require(\"../../Button\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nrequire(\"../style/index.css\");\n\nrequire(\"../uxp-style/index.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst BUTTON_VARIANTS = {\n  confirmation: 'cta',\n  information: 'primary',\n  error: 'primary',\n  destructive: 'warning'\n};\n\nfunction UxpDialogButtons({\n  autoFocusButton,\n  confirmLabel,\n  secondaryLabel,\n  cancelLabel,\n  confirmDisabled,\n  onConfirm,\n  onCancel,\n  className,\n  variant\n}) {\n  const confirmVariant = BUTTON_VARIANTS[variant] || 'primary';\n\n  let onKeyDown = event => {\n    if (event.key === ' ' || event.key === 'Enter') {\n      event.stopPropagation();\n      event.target.click();\n    }\n  };\n\n  return /*#__PURE__*/_react.default.createElement(\"div\", {\n    className: (0, _classnames.default)('react-spectrum-Dialog-buttons', className)\n  }, cancelLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {\n    className: \"dialog-buttons-Override\",\n    variant: \"secondary\",\n    label: cancelLabel,\n    onClick: onCancel,\n    autoFocus: autoFocusButton === 'cancel',\n    onKeyDown: onKeyDown,\n    overrideOnKeyDown: true,\n    uxpUseNative: false\n  }), secondaryLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {\n    className: \"dialog-buttons-Override\",\n    variant: \"secondary\",\n    label: secondaryLabel,\n    onClick: onConfirm ? onConfirm.bind(null, 'secondary') : null,\n    autoFocus: autoFocusButton === 'secondary',\n    disabled: confirmDisabled || null,\n    onKeyDown: onKeyDown,\n    overrideOnKeyDown: true,\n    uxpUseNative: false\n  }), confirmLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {\n    className: \"dialog-buttons-Override\",\n    variant: confirmVariant,\n    label: confirmLabel,\n    onClick: onConfirm ? onConfirm.bind(null, 'primary') : null,\n    autoFocus: autoFocusButton === 'confirm',\n    disabled: confirmDisabled || null,\n    onKeyDown: onKeyDown,\n    uxpUseNative: false\n  }));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = UxpDialogHeader;\n\nvar _AlertMedium = _interopRequireDefault(require(\"../../Icon/core/AlertMedium\"));\n\nvar _Button = _interopRequireDefault(require(\"../../Button\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _CrossLarge = _interopRequireDefault(require(\"../../Icon/core/CrossLarge\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _Heading = _interopRequireDefault(require(\"../../Heading\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _UxpDialogButtons = _interopRequireDefault(require(\"./UxpDialogButtons\"));\n\nrequire(\"../uxp-style/index.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst VARIANT_ICONS = {\n  error: _AlertMedium.default\n};\n\nfunction UxpDialogHeader(_ref) {\n  let {\n    children = [],\n    title,\n    variant,\n    fullscreen,\n    confirmDisabled,\n    confirmLabel,\n    secondaryLabel,\n    cancelLabel,\n    onConfirm,\n    onCancel,\n    onClose,\n    className,\n    autoFocusButton,\n    id,\n    isDismissible\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"children\", \"title\", \"variant\", \"fullscreen\", \"confirmDisabled\", \"confirmLabel\", \"secondaryLabel\", \"cancelLabel\", \"onConfirm\", \"onCancel\", \"onClose\", \"className\", \"autoFocusButton\", \"id\", \"isDismissible\"]);\n\n  let Icon = VARIANT_ICONS[variant];\n  return /*#__PURE__*/_react.default.createElement(\"div\", _extends({}, (0, _filterDOMProps.default)(otherProps), {\n    className: (0, _classnames.default)('spectrum-Dialog-header', `spectrum-Dialog-header--${variant}`, 'spectrum-Dialog-header-Override', className)\n  }), /*#__PURE__*/_react.default.createElement(_Heading.default, {\n    size: 3,\n    className: \"spectrum-Dialog-title\",\n    id: id\n  }, title), Icon && /*#__PURE__*/_react.default.createElement(Icon, {\n    size: null,\n    className: \"spectrum-Dialog-typeIcon\"\n  }), isDismissible && !fullscreen && /*#__PURE__*/_react.default.createElement(_Button.default, {\n    className: \"spectrum-Dialog-closeButton\",\n    variant: \"action\",\n    onClick: onClose,\n    quiet: true,\n    icon: /*#__PURE__*/_react.default.createElement(_CrossLarge.default, {\n      size: \"L\"\n    })\n  }), fullscreen && confirmLabel && /*#__PURE__*/_react.default.createElement(_UxpDialogButtons.default, {\n    autoFocusButton: autoFocusButton,\n    variant: variant,\n    cancelLabel: cancelLabel,\n    confirmLabel: confirmLabel,\n    confirmDisabled: confirmDisabled,\n    onConfirm: onConfirm,\n    onCancel: onCancel\n  }), children);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Dialog = _interopRequireDefault(require(\"./Dialog\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _UxpDialogButtons = _interopRequireDefault(require(\"./UxpDialogButtons\"));\n\nvar _UxpDialogHeader = _interopRequireDefault(require(\"./UxpDialogHeader\"));\n\nrequire(\"../uxp-style/index.css\");\n\nvar _class, _class2, _temp;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/dialog/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/darkest.css\");\nconst DefaultSize = {\n  width: 'auto',\n  height: 'auto'\n};\nconst DefaultOptions = {\n  resize: 'none',\n  titleVisibility: 'hide',\n  size: DefaultSize,\n  maxSize: DefaultSize,\n  minSize: DefaultSize\n};\n\nlet UxpNativeDialog = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class UxpNativeDialog extends _Dialog.default {\n  componentDidMount() {\n    let overrideOptions = null;\n    const {\n      size\n    } = this.props;\n\n    if (this.dialogElementRef) {\n      if (size && size.width && size.height) {\n        overrideOptions = {\n          resize: 'none',\n          titleVisibility: 'hide',\n          size: size,\n          maxSize: DefaultSize,\n          minSize: DefaultSize\n        };\n      }\n\n      this.dialogElementRef.showModal(overrideOptions ? overrideOptions : DefaultOptions).then(() => {}, () => {});\n      this.dialogElementRef.addEventListener('close', this.onDialogCloseEvent);\n      this.dialogElementRef.addEventListener('cancel', this.onDialogCancelEvent);\n      this.dialogElementRef.addEventListener('load', this.onDialogLoadEvent);\n    }\n  }\n\n  componentWillUnmount() {\n    if (this.dialogElementRef) {\n      this.dialogElementRef.removeEventListener('close', this.onDialogCloseEvent);\n      this.dialogElementRef.removeEventListener('cancel', this.onDialogCancelEvent);\n      this.dialogElementRef.removeEventListener('load', this.onDialogLoadEvent);\n    }\n  }\n\n  onDialogCloseEvent() {\n    this.dialogElementRef = null;\n  }\n\n  onDialogCancelEvent() {\n    this.dialogElementRef = null;\n  }\n\n  onDialogLoadEvent() {\n    if (this.props.onLoad) {\n      this.props.onLoad();\n    }\n  }\n\n  onConfirm(...args) {\n    this._onAction(this.props.onConfirm, ...args);\n\n    this.closeDialog();\n  }\n\n  onCancel() {\n    this._onAction(this.props.onCancel);\n\n    this.closeDialog();\n  }\n\n  closeDialog() {\n    this.dialogElementRef.close();\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className = '',\n      cancelLabel,\n      confirmLabel,\n      secondaryLabel,\n      open,\n      title,\n      variant,\n      mode,\n      tabIndex,\n      trapFocus,\n      isDismissible,\n      id = this.dialogId,\n      'aria-label': ariaLabel,\n      'aria-labelledby': ariaLabelledby,\n      'aria-describedby': ariaDescribedby,\n      'aria-modal': ariaModal\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"cancelLabel\", \"confirmLabel\", \"secondaryLabel\", \"open\", \"title\", \"variant\", \"mode\", \"tabIndex\", \"trapFocus\", \"isDismissible\", \"id\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-modal\"]);\n\n    const fullscreen = mode === 'fullscreen' || mode === 'fullscreenTakeover';\n    const derivedVariant = variant || (cancelLabel && confirmLabel ? 'confirmation' : 'information');\n    delete otherProps.modalContent;\n    delete otherProps.disableEscKey;\n    delete otherProps.onLoad;\n    return (\n      /*#__PURE__*/\n\n      /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n      _react.default.createElement(\"dialog\", {\n        id: id,\n        ref: el => this.dialogElementRef = el,\n        defaultpreventedkeys: ['Escape'],\n        onConfirm: this.onConfirm,\n        onCancel: this.onCancel\n      }, /*#__PURE__*/_react.default.createElement(\"div\", {\n        onFocus: this.onFocus,\n        onKeyDown: this.onKeyDown,\n        className: (0, _classnames.default)('uxp-Native-Dialog', 'spectrum-Dialog', 'react-spectrum-Dialog', {\n          [`spectrum-Dialog--${mode}`]: mode,\n          'spectrum-Dialog--error': variant === 'error',\n          'is-open': open,\n          'spectrum-Dialog--dismissible': isDismissible\n        }, 'spectrum-Dialog-Override', className)\n        /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n        ,\n        tabIndex: tabIndex === undefined || trapFocus ? 1 : tabIndex,\n        \"aria-label\": ariaLabel,\n        \"aria-labelledby\": ariaLabelledby || (title && !ariaLabel ? `${id}-heading` : null),\n        \"aria-describedby\": ariaDescribedby || (title && children ? `${id}-content` : null),\n        \"aria-modal\": ariaModal || trapFocus\n      }, title && /*#__PURE__*/_react.default.createElement(_UxpDialogHeader.default, _extends({\n        variant: derivedVariant,\n        title: title,\n        fullscreen: fullscreen,\n        confirmLabel: confirmLabel,\n        secondaryLabel: secondaryLabel,\n        cancelLabel: cancelLabel,\n        isDismissible: isDismissible,\n        id: `${id}-heading`\n      }, otherProps), /*#__PURE__*/_react.default.createElement(\"div\", {\n        className: \"dialogSeparator\"\n      })), title ? /*#__PURE__*/_react.default.createElement(\"div\", {\n        className: \"spectrum-Dialog-content\",\n        id: `${id}-content`\n      }, children) : children, !isDismissible && !fullscreen && confirmLabel && /*#__PURE__*/_react.default.createElement(_UxpDialogButtons.default, _extends({}, this.props, {\n        variant: derivedVariant,\n        className: \"spectrum-Dialog-footer\",\n        onConfirm: this.onConfirm,\n        onCancel: this.onCancel\n      }))))\n    );\n  }\n\n}, _class2.propTypes = _objectSpread(_objectSpread({}, _Dialog.default.propTypes), {}, {\n  /**\n   * When custom size for modal is required to render long-content\n   */\n  size: _propTypes.default.objectOf({\n    width: _propTypes.default.number,\n    height: _propTypes.default.number\n  })\n}), _temp)) || _class;\n\nexports.default = UxpNativeDialog;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Dialog = _interopRequireDefault(require(\"./Dialog\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _ScrollManager = _interopRequireDefault(require(\"../../ScrollManager\"));\n\nvar _UxpDialogButtons = _interopRequireDefault(require(\"./UxpDialogButtons\"));\n\nvar _UxpDialogHeader = _interopRequireDefault(require(\"./UxpDialogHeader\"));\n\nrequire(\"../uxp-style/index.css\");\n\nvar _class;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/dialog/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/darkest.css\");\n\nlet UxpNonNativeDialog = (0, _autobindDecorator.default)(_class = class UxpNonNativeDialog extends _Dialog.default {\n  componentDidMount() {\n    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(true, false, this.UxpNonNativeDialogRef);\n  }\n\n  componentWillUnmount() {\n    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(false, false, this.UxpNonNativeDialogRef);\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className = '',\n      cancelLabel,\n      confirmLabel,\n      secondaryLabel,\n      open,\n      title,\n      variant,\n      mode,\n      role,\n      tabIndex,\n      trapFocus,\n      isDismissible,\n      id = this.dialogId,\n      'aria-label': ariaLabel,\n      'aria-labelledby': ariaLabelledby,\n      'aria-describedby': ariaDescribedby,\n      'aria-modal': ariaModal\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"cancelLabel\", \"confirmLabel\", \"secondaryLabel\", \"open\", \"title\", \"variant\", \"mode\", \"role\", \"tabIndex\", \"trapFocus\", \"isDismissible\", \"id\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-modal\"]);\n\n    const fullscreen = mode === 'fullscreen' || mode === 'fullscreenTakeover';\n    const derivedVariant = variant || (cancelLabel && confirmLabel ? 'confirmation' : 'information');\n    delete otherProps.modalContent;\n    delete otherProps.disableEscKey;\n    return (\n      /*#__PURE__*/\n      // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n      _react.default.createElement(\"div\", {\n        className: (0, _classnames.default)('spectrum-Dialog', {\n          [`spectrum-Dialog--${mode}`]: mode,\n          'spectrum-Dialog--error': variant === 'error',\n          'is-open': open,\n          'spectrum-Dialog--dismissible': isDismissible\n        }, 'spectrum-Dialog-Override', className),\n        role: role,\n        ref: s => this.UxpNonNativeDialogRef = s,\n        defaultpreventedkeys: ['Escape']\n        /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n        ,\n        tabIndex: tabIndex === undefined || trapFocus ? 1 : tabIndex,\n        onFocus: this.onFocus,\n        onKeyDown: this.onKeyDown,\n        id: id,\n        \"aria-label\": ariaLabel,\n        \"aria-labelledby\": ariaLabelledby || (title && !ariaLabel ? `${id}-heading` : null),\n        \"aria-describedby\": ariaDescribedby || (title && children ? `${id}-content` : null),\n        \"aria-modal\": ariaModal || trapFocus\n      }, title && /*#__PURE__*/_react.default.createElement(_UxpDialogHeader.default, _extends({\n        variant: derivedVariant,\n        title: title,\n        fullscreen: fullscreen,\n        confirmLabel: confirmLabel,\n        secondaryLabel: secondaryLabel,\n        cancelLabel: cancelLabel,\n        isDismissible: isDismissible,\n        id: `${id}-heading`\n      }, otherProps, {\n        onConfirm: this.onConfirm,\n        onCancel: this.onCancel\n      }), /*#__PURE__*/_react.default.createElement(\"div\", {\n        className: \"dialogSeparator\"\n      })), title ? /*#__PURE__*/_react.default.createElement(\"div\", {\n        className: \"spectrum-Dialog-content\",\n        id: `${id}-content`\n      }, children) : children, !isDismissible && !fullscreen && confirmLabel && /*#__PURE__*/_react.default.createElement(_UxpDialogButtons.default, _extends({}, this.props, {\n        variant: derivedVariant,\n        className: \"spectrum-Dialog-footer\",\n        onConfirm: this.onConfirm,\n        onCancel: this.onCancel\n      })))\n    );\n  }\n\n}) || _class;\n\nexports.default = UxpNonNativeDialog;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Dropdown', () => require('./js/UxpDropdown'), () => require('./js/Dropdown'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _events = require(\"../../utils/events\");\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _Menu = require(\"../../Menu\");\n\nvar _OverlayTrigger = _interopRequireDefault(require(\"../../OverlayTrigger\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _class, _class2, _temp;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet Dropdown = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Dropdown extends _react.default.Component {\n  constructor(props) {\n    super(props);\n    this.dropdownId = (0, _createId.default)();\n    this.state = {\n      open: false\n    };\n  }\n\n  onOpen(e) {\n    this.setState({\n      open: true\n    });\n\n    if (this.props.onOpen) {\n      this.props.onOpen(e);\n    }\n  }\n\n  onClose(e) {\n    this.setState({\n      open: false\n    });\n\n    if (e && (e.type === 'keyup' || e.type === 'keydown')) {\n      this.restoreFocusOnClose();\n    }\n\n    if (this.props.onClose) {\n      this.props.onClose(e);\n    }\n  }\n\n  onMenuClose() {\n    this.overlayTrigger.hide();\n    this.restoreFocusOnClose();\n  }\n\n  onSelect(...args) {\n    if (this.props.closeOnSelect) {\n      this.onMenuClose();\n    }\n\n    if (this.props.onSelect) {\n      this.props.onSelect(...args);\n    }\n  }\n\n  onClick(e) {\n    if (this.props.onClick) {\n      this.props.onClick(e);\n    }\n  }\n\n  onKeyDownTrigger(e) {\n    if (typeof e.isDefaultPrevented === 'function' && e.isDefaultPrevented() || e.defaultPrevented) {\n      return;\n    }\n\n    if (this.triggerRef) {\n      switch (e.key) {\n        case 'Enter':\n        case 'ArrowDown':\n        case ' ':\n          e.preventDefault();\n          e.stopPropagation();\n          this.triggerRef.onClick();\n          break;\n      }\n    }\n  }\n\n  restoreFocusOnClose() {\n    const node = _reactDom.default.findDOMNode(this.triggerRef);\n\n    if (node && node.focus) {\n      node.focus();\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      alignRight,\n      closeOnSelect,\n      flip,\n      trigger,\n      boundariesElement,\n      onLongClick\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"alignRight\", \"closeOnSelect\", \"flip\", \"trigger\", \"boundariesElement\", \"onLongClick\"]);\n\n    const children = _react.default.Children.toArray(this.props.children);\n\n    const triggerChild = children.find(c => c.props.dropdownTrigger) || children[0];\n    const triggerId = triggerChild.props.id || this.dropdownId + '-trigger';\n    const menu = children.find(c => c.props.dropdownMenu || c.type === _Menu.Menu) || children[1];\n    const menuId = menu.props.id || this.dropdownId + '-menu';\n    delete otherProps.onOpen;\n    delete otherProps.onClose;\n    delete otherProps.onClick;\n    return /*#__PURE__*/_react.default.createElement(\"div\", (0, _filterDOMProps.default)(otherProps), children.map((child, index) => {\n      if (child === triggerChild) {\n        return /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, {\n          boundariesElement: boundariesElement,\n          target: this,\n          trigger: trigger,\n          placement: alignRight ? 'bottom right' : 'bottom left',\n          ref: t => this.overlayTrigger = t,\n          onLongClick: onLongClick,\n          onClick: this.onClick,\n          onShow: this.onOpen,\n          closeOnSelect: closeOnSelect,\n          key: index,\n          onHide: this.onClose,\n          flip: flip,\n          delayHide: 0\n        }, /*#__PURE__*/_react.default.cloneElement(triggerChild, {\n          id: triggerId,\n          'aria-haspopup': triggerChild.props['aria-haspopup'] || 'true',\n          'aria-expanded': this.state.open || null,\n          'aria-controls': this.state.open ? menuId : null,\n          onKeyDown: (0, _events.chain)(triggerChild.props.onKeyDown, this.onKeyDownTrigger),\n          ref: node => {\n            this.triggerRef = node;\n            const {\n              ref\n            } = triggerChild;\n\n            if (typeof ref === 'function') {\n              ref(node);\n            }\n          }\n        }), /*#__PURE__*/_react.default.cloneElement(menu, {\n          id: menuId,\n          'aria-labelledby': menu.props['aria-labelledby'] || triggerId,\n          onClose: this.onMenuClose,\n          onSelect: this.onSelect,\n          autoFocus: true,\n          closeOnSelect\n        }));\n      } else if (child !== menu) {\n        return child;\n      }\n    }));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * If true, dropdown will close on selection of an item\n   */\n  closeOnSelect: _propTypes.default.bool,\n\n  /**\n   * Determines what kind of action opens the menu\n   */\n  trigger: _propTypes.default.oneOf(['click', 'longClick', 'hover', 'focus']),\n\n  /**\n   * Callback for when the dropdown is opened\n   */\n  onOpen: _propTypes.default.func,\n\n  /**\n   * Callback for when the dropdown is closed\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback for when an item is selected from the dropdown\n   */\n  onSelect: _propTypes.default.func,\n\n  /**\n   * Aligns the dropdown to the right or left of the button opening the dropdown\n   */\n  alignRight: _propTypes.default.bool,\n\n  /**\n   * Sets whether the overlay is flippable\n   */\n  flip: _propTypes.default.bool\n}, _class2.defaultProps = {\n  closeOnSelect: true,\n  trigger: 'click'\n}, _temp)) || _class;\n\nexports.default = Dropdown;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _Dropdown = _interopRequireDefault(require(\"./Dropdown\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _UxpProvider = require(\"../../Provider/js/UxpProvider\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar _default = props => /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({\n  boundariesElement\n}) => /*#__PURE__*/_react.default.createElement(_Dropdown.default, _extends({}, props, {\n  boundariesElement: props.boundariesElement ? props.boundariesElement : boundariesElement\n})));\n\nexports.default = _default;","\"use strict\";\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = require('./js/DropdownButton');","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = DropdownButton;\n\nvar _Button = _interopRequireDefault(require(\"../../Button\"));\n\nvar _Dropdown = _interopRequireDefault(require(\"../../Dropdown\"));\n\nvar _Menu = require(\"../../Menu\");\n\nvar _More = _interopRequireDefault(require(\"../../Icon/More\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction DropdownButton(_ref) {\n  let {\n    alignRight,\n    onClose,\n    onOpen,\n    onSelect,\n    children,\n    closeOnSelect,\n    menuClassName,\n    holdAffordance,\n    onClick,\n    boundariesElement\n  } = _ref,\n      props = _objectWithoutProperties(_ref, [\"alignRight\", \"onClose\", \"onOpen\", \"onSelect\", \"children\", \"closeOnSelect\", \"menuClassName\", \"holdAffordance\", \"onClick\", \"boundariesElement\"]);\n\n  let trigger = holdAffordance ? 'longClick' : undefined;\n  return /*#__PURE__*/_react.default.createElement(_Dropdown.default, {\n    style: {\n      display: 'inline-block'\n    },\n    onClose: onClose,\n    onOpen: onOpen,\n    onClick: onClick,\n    onSelect: onSelect,\n    alignRight: alignRight,\n    closeOnSelect: closeOnSelect,\n    trigger: trigger,\n    boundariesElement: boundariesElement\n  }, /*#__PURE__*/_react.default.createElement(_Button.default, _extends({\n    variant: \"action\",\n    dropdownButton: true,\n    quiet: true,\n    holdAffordance: holdAffordance,\n    icon: /*#__PURE__*/_react.default.createElement(_More.default, {\n      alt: \"\\u2026\"\n    })\n  }, props)), /*#__PURE__*/_react.default.createElement(_Menu.Menu, {\n    className: menuClassName,\n    dropdownMenu: true\n  }, children));\n}\n\nDropdownButton.propTypes = {\n  /**\n   * If true, dropdown will close on selection of an item\n   */\n  closeOnSelect: _propTypes.default.bool,\n\n  /**\n   * Callback for when the dropdown is opened\n   */\n  onOpen: _propTypes.default.func,\n\n  /**\n   * Callback for when the dropdown is closed\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback for when an item is selected from the dropdown\n   */\n  onSelect: _propTypes.default.func,\n\n  /**\n   * Aligns the dropdown to the right or left of the button opening the dropdown\n   */\n  alignRight: _propTypes.default.bool,\n\n  /**\n   * Custom classname to apply to the Menu\n   */\n  menuClassName: _propTypes.default.string,\n\n  /**\n   * Whether to activate using a long click\n   */\n  holdAffordance: _propTypes.default.bool\n};","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('FieldLabel', () => require('./js/UxpFieldLabel'), () => require('./js/FieldLabel'), () => require('./js/SpUxpFieldLabel'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = FieldLabel;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _LabelBase = _interopRequireDefault(require(\"./LabelBase\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/fieldlabel/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/fieldlabel/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/fieldlabel/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/fieldlabel/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/fieldlabel/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/fieldlabel/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/fieldlabel/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/fieldlabel/multiStops/darkest.css\");\n\nfunction FieldLabel(_ref) {\n  let {\n    label,\n    position,\n    children,\n    className,\n    labelFor,\n    necessity,\n    necessityIndicator\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"label\", \"position\", \"children\", \"className\", \"labelFor\", \"necessity\", \"necessityIndicator\"]);\n\n  return /*#__PURE__*/_react.default.createElement(_LabelBase.default, _extends({\n    label: label,\n    className: className,\n    necessity: necessity,\n    necessityIndicator: necessityIndicator,\n    componentName: \"FieldLabel\",\n    labelClassName: (0, _classnames.default)('spectrum-FieldLabel', {\n      'spectrum-FieldLabel--left': position === 'left',\n      'spectrum-FieldLabel--right': position === 'right'\n    }),\n    labelFor: labelFor\n  }, otherProps), children);\n}\n\nFieldLabel.displayName = 'FieldLabel';\nFieldLabel.propTypes = {\n  /**\n   * String to display\n   */\n  label: _propTypes.default.string.isRequired,\n\n  /**\n   * Justification of the label text within its container. Setting this property\n   * will situate the label container to the left of the form field, regardless\n   * of the property value.\n   */\n  position: _propTypes.default.oneOf(['left', 'right']),\n\n  /**\n   * Custom classname to apply to the label\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Like in a form, with what input should the label be associated\n   */\n  labelFor: _propTypes.default.string,\n\n  /**\n   * Style for communicating whether the associated input is required or optional.\n   */\n  necessity: _propTypes.default.oneOf(['required', 'optional']),\n\n  /**\n   * 'icon' adds an asterix to the field label if necessity is required.\n   * 'label' adds a '(required)' or '(optional)' string to the label depending on the necessity.\n   */\n  necessityIndicator: _propTypes.default.oneOf(['icon', 'label'])\n};\nFieldLabel.defaultProps = {\n  necessityIndicator: 'icon'\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = LabelBase;\n\nvar _Asterisk = _interopRequireDefault(require(\"../../Icon/Asterisk\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _intl = require(\"../../utils/intl\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst intlMessages = {\n  \"cs-CZ\": _interopRequireDefault(require(\"./../intl/cs-CZ.json\")).default,\n  \"da-DK\": _interopRequireDefault(require(\"./../intl/da-DK.json\")).default,\n  \"de-DE\": _interopRequireDefault(require(\"./../intl/de-DE.json\")).default,\n  \"en-US\": _interopRequireDefault(require(\"./../intl/en-US.json\")).default,\n  \"es-ES\": _interopRequireDefault(require(\"./../intl/es-ES.json\")).default,\n  \"fi-FI\": _interopRequireDefault(require(\"./../intl/fi-FI.json\")).default,\n  \"fr-FR\": _interopRequireDefault(require(\"./../intl/fr-FR.json\")).default,\n  \"hu-HU\": _interopRequireDefault(require(\"./../intl/hu-HU.json\")).default,\n  \"it-IT\": _interopRequireDefault(require(\"./../intl/it-IT.json\")).default,\n  \"ja-JP\": _interopRequireDefault(require(\"./../intl/ja-JP.json\")).default,\n  \"ko-KR\": _interopRequireDefault(require(\"./../intl/ko-KR.json\")).default,\n  \"nb-NO\": _interopRequireDefault(require(\"./../intl/nb-NO.json\")).default,\n  \"nl-NL\": _interopRequireDefault(require(\"./../intl/nl-NL.json\")).default,\n  \"pl-PL\": _interopRequireDefault(require(\"./../intl/pl-PL.json\")).default,\n  \"pt-BR\": _interopRequireDefault(require(\"./../intl/pt-BR.json\")).default,\n  \"ru-RU\": _interopRequireDefault(require(\"./../intl/ru-RU.json\")).default,\n  \"sv-SE\": _interopRequireDefault(require(\"./../intl/sv-SE.json\")).default,\n  \"tr-TR\": _interopRequireDefault(require(\"./../intl/tr-TR.json\")).default,\n  \"uk-UA\": _interopRequireDefault(require(\"./../intl/uk-UA.json\")).default,\n  \"zh-CN\": _interopRequireDefault(require(\"./../intl/zh-CN.json\")).default,\n  \"zh-TW\": _interopRequireDefault(require(\"./../intl/zh-TW.json\")).default\n};\nlet formatMessage = (0, _intl.messageFormatter)(intlMessages);\n\nfunction LabelBase(_ref) {\n  let {\n    label,\n    children,\n    className,\n    labelClassName,\n    wrapperClassName,\n    labelFor,\n    componentName,\n    necessity,\n    necessityIndicator\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"label\", \"children\", \"className\", \"labelClassName\", \"wrapperClassName\", \"labelFor\", \"componentName\", \"necessity\", \"necessityIndicator\"]);\n\n  let necessityMap = {\n    required: `${label} ${formatMessage('(required)')}`,\n    optional: `${label} ${formatMessage('(optional)')}`\n  };\n  let icon = null;\n\n  if (necessityIndicator === 'icon' && necessity === 'required') {\n    icon = /*#__PURE__*/_react.default.createElement(_Asterisk.default, {\n      role: \"presentation\",\n      className: \"spectrum-UIIcon-Asterisk spectrum-fieldLabel-requiredIcon\",\n      size: \"S\",\n      alt: formatMessage('(required)')\n    });\n  } // There are 3 cases:\n  // 1. No children - only render the <label>, no wrapping div. `labelFor` required.\n  // 2. 1 child - render wrapping <div>. Automatically generate child `id` and label `for` attributes.\n  // 3. > 1 children - render wrapping <div>. `labelFor` required, along with `id` on child.\n\n\n  let childArray = _react.default.Children.toArray(children);\n\n  let id;\n  let labelId = otherProps.id || (0, _createId.default)();\n  delete otherProps.id;\n\n  if (childArray.length === 1) {\n    // Use the existing id prop, or generate one.\n    id = childArray[0].props.id || (0, _createId.default)();\n    let ariaLabelledby = childArray[0].props['aria-labelledby'] || (label ? labelId : null);\n    childArray[0] = /*#__PURE__*/_react.default.cloneElement(childArray[0], {\n      id,\n      'aria-labelledby': ariaLabelledby\n    });\n  }\n\n  if (id && !labelFor) {\n    labelFor = id;\n  }\n\n  if (!labelFor) {\n    console.warn(`Missing labelFor attribute on ${componentName} with label \"${label}\"`);\n  }\n\n  let fieldLabelClassName = (0, _classnames.default)(labelClassName, childArray.length === 0 ? className : null);\n  let fieldLabel = label ? /*#__PURE__*/_react.default.createElement(\"label\", _extends({\n    className: fieldLabelClassName,\n    id: labelId,\n    htmlFor: labelFor\n  }, (0, _filterDOMProps.default)(otherProps)), necessity && necessityIndicator === 'label' ? necessityMap[necessity] : label, icon && ' ', icon && icon) : /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n    className: fieldLabelClassName\n  }, (0, _filterDOMProps.default)(otherProps)));\n\n  if (childArray.length > 0) {\n    if (wrapperClassName) {\n      childArray = /*#__PURE__*/_react.default.createElement(\"div\", {\n        \"data-testid\": \"wrapperId\",\n        className: wrapperClassName\n      }, childArray);\n    }\n\n    return /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: className\n    }, fieldLabel, childArray);\n  }\n\n  return fieldLabel;\n}\n\nLabelBase.defaultProps = {\n  necessityIndicator: 'icon'\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = SpUxpFieldLabel;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _UxpFieldLabel = _interopRequireDefault(require(\"./UxpFieldLabel\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst labelStyle = {\n  display: 'flex'\n};\n\nfunction getlabelStyle(position, style) {\n  if (!position) {\n    // For default/top position, React Spectrum field label has the display set to flex.\n    return Object.assign({}, labelStyle, style);\n  }\n\n  return style;\n}\n\nfunction SpUxpFieldLabel(_ref) {\n  let {\n    label,\n    position,\n    children,\n    className,\n    labelFor,\n    necessity,\n    necessityIndicator,\n    style\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"label\", \"position\", \"children\", \"className\", \"labelFor\", \"necessity\", \"necessityIndicator\", \"style\"]);\n\n  if (!(children || position === 'right')) {\n    return /*#__PURE__*/_react.default.createElement(\"sp-label\", _extends({\n      style: getlabelStyle(position, style),\n      htmlFor: labelFor,\n      class: className,\n      variant: position === 'left' ? 'side' : 'default',\n      necessityindicator: necessityIndicator,\n      isrequired: necessity === 'required' ? true : null\n    }, otherProps), label);\n  }\n\n  const labelProps = _objectSpread({\n    label,\n    position,\n    children,\n    className,\n    labelFor,\n    necessity,\n    necessityIndicator,\n    style\n  }, otherProps);\n\n  return /*#__PURE__*/_react.default.createElement(_UxpFieldLabel.default, labelProps);\n}\n\nSpUxpFieldLabel.displayName = 'FieldLabel';\nSpUxpFieldLabel.propTypes = {\n  /**\n   * String to display\n   */\n  label: _propTypes.default.string.isRequired,\n\n  /**\n   * Justification of the label text within its container. Setting this property\n   * will situate the label container to the left of the form field, regardless\n   * of the property value.\n   */\n  position: _propTypes.default.oneOf(['left', 'right']),\n\n  /**\n   * Custom classname to apply to the label\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Like in a form, with what input should the label be associated\n   */\n  labelFor: _propTypes.default.string,\n\n  /**\n   * Style for communicating whether the associated input is required or optional.\n   */\n  necessity: _propTypes.default.oneOf(['required', 'optional']),\n\n  /**\n   * 'icon' adds an asterix to the field label if necessity is required.\n   * 'label' adds a '(required)' or '(optional)' string to the label depending on the necessity.\n   */\n  necessityIndicator: _propTypes.default.oneOf(['icon', 'label'])\n};\nSpUxpFieldLabel.defaultProps = {\n  necessityIndicator: 'icon'\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = UxpFieldLabel;\n\nvar _Asterisk = _interopRequireDefault(require(\"../../Icon/Asterisk\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _intl = require(\"../../utils/intl\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _UxpLabelBase = _interopRequireDefault(require(\"./UxpLabelBase\"));\n\nrequire(\"../uxp-style/index.css\");\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst intlMessages = {\n  \"cs-CZ\": _interopRequireDefault(require(\"./../intl/cs-CZ.json\")).default,\n  \"da-DK\": _interopRequireDefault(require(\"./../intl/da-DK.json\")).default,\n  \"de-DE\": _interopRequireDefault(require(\"./../intl/de-DE.json\")).default,\n  \"en-US\": _interopRequireDefault(require(\"./../intl/en-US.json\")).default,\n  \"es-ES\": _interopRequireDefault(require(\"./../intl/es-ES.json\")).default,\n  \"fi-FI\": _interopRequireDefault(require(\"./../intl/fi-FI.json\")).default,\n  \"fr-FR\": _interopRequireDefault(require(\"./../intl/fr-FR.json\")).default,\n  \"hu-HU\": _interopRequireDefault(require(\"./../intl/hu-HU.json\")).default,\n  \"it-IT\": _interopRequireDefault(require(\"./../intl/it-IT.json\")).default,\n  \"ja-JP\": _interopRequireDefault(require(\"./../intl/ja-JP.json\")).default,\n  \"ko-KR\": _interopRequireDefault(require(\"./../intl/ko-KR.json\")).default,\n  \"nb-NO\": _interopRequireDefault(require(\"./../intl/nb-NO.json\")).default,\n  \"nl-NL\": _interopRequireDefault(require(\"./../intl/nl-NL.json\")).default,\n  \"pl-PL\": _interopRequireDefault(require(\"./../intl/pl-PL.json\")).default,\n  \"pt-BR\": _interopRequireDefault(require(\"./../intl/pt-BR.json\")).default,\n  \"ru-RU\": _interopRequireDefault(require(\"./../intl/ru-RU.json\")).default,\n  \"sv-SE\": _interopRequireDefault(require(\"./../intl/sv-SE.json\")).default,\n  \"tr-TR\": _interopRequireDefault(require(\"./../intl/tr-TR.json\")).default,\n  \"uk-UA\": _interopRequireDefault(require(\"./../intl/uk-UA.json\")).default,\n  \"zh-CN\": _interopRequireDefault(require(\"./../intl/zh-CN.json\")).default,\n  \"zh-TW\": _interopRequireDefault(require(\"./../intl/zh-TW.json\")).default\n};\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/fieldlabel/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/fieldlabel/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/fieldlabel/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/fieldlabel/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/fieldlabel/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/fieldlabel/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/fieldlabel/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/fieldlabel/multiStops/darkest.css\");\nlet formatMessage = (0, _intl.messageFormatter)(intlMessages);\n\nfunction UxpFieldLabel(_ref) {\n  let {\n    label,\n    position,\n    children,\n    className,\n    labelFor,\n    necessity,\n    necessityIndicator\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"label\", \"position\", \"children\", \"className\", \"labelFor\", \"necessity\", \"necessityIndicator\"]);\n\n  let necessityMap = {\n    required: `${label} ${formatMessage('(required)')}`,\n    optional: `${label} ${formatMessage('(optional)')}`\n  };\n  let icon = null;\n\n  if (necessityIndicator === 'icon' && necessity === 'required') {\n    icon = /*#__PURE__*/_react.default.createElement(_Asterisk.default, {\n      className: \"spectrum-UIIcon-Asterisk spectrum-fieldLabel-requiredIcon\",\n      size: \"S\",\n      alt: formatMessage('(required)')\n    });\n  }\n\n  return /*#__PURE__*/_react.default.createElement(_UxpLabelBase.default, _extends({\n    label: necessity && necessityIndicator === 'label' ? necessityMap[necessity] : label,\n    className: className,\n    componentName: \"FieldLabel\",\n    labelClassName: (0, _classnames.default)('spectrum-FieldLabel', 'spectrum-FieldLabel-Override', {\n      'spectrum-FieldLabel--left': position === 'left',\n      'spectrum-FieldLabel--right': position === 'right'\n    }),\n    labelFor: labelFor,\n    icon: icon,\n    position: position\n  }, otherProps), children);\n}\n\nUxpFieldLabel.displayName = 'FieldLabel';\nUxpFieldLabel.propTypes = {\n  /**\n   * String to display\n   */\n  label: _propTypes.default.string.isRequired,\n\n  /**\n   * Justification of the label text within its container. Setting this property\n   * will situate the label container to the left of the form field, regardless\n   * of the property value.\n   */\n  position: _propTypes.default.oneOf(['left', 'right']),\n\n  /**\n   * Custom classname to apply to the label\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Like in a form, with what input should the label be associated\n   */\n  labelFor: _propTypes.default.string,\n\n  /**\n   * Style for communicating whether the associated input is required or optional.\n   */\n  necessity: _propTypes.default.oneOf(['required', 'optional']),\n\n  /**\n   * 'icon' adds an asterix to the field label if necessity is required.\n   * 'label' adds a '(required)' or '(optional)' string to the label depending on the necessity.\n   */\n  necessityIndicator: _propTypes.default.oneOf(['icon', 'label'])\n};\nUxpFieldLabel.defaultProps = {\n  necessityIndicator: 'icon'\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = UxpLabelBase;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nrequire(\"../uxp-style/index.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction UxpLabelBase(_ref) {\n  let {\n    label,\n    children,\n    className,\n    labelClassName,\n    wrapperClassName,\n    labelFor,\n    componentName,\n    icon,\n    position\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"label\", \"children\", \"className\", \"labelClassName\", \"wrapperClassName\", \"labelFor\", \"componentName\", \"icon\", \"position\"]);\n\n  // There are 3 cases:\n  // 1. No children - only render the <label>, no wrapping div. `labelFor` required.\n  // 2. 1 child - render wrapping <div>. Automatically generate child `id` and label `for` attributes.\n  // 3. > 1 children - render wrapping <div>. `labelFor` required, along with `id` on child.\n  let childArray = _react.default.Children.toArray(children);\n\n  let id;\n  let labelId = otherProps.id || (0, _createId.default)();\n  delete otherProps.id;\n\n  if (childArray.length === 1) {\n    // Use the existing id prop, or generate one.\n    id = childArray[0].props.id || (0, _createId.default)();\n    let ariaLabelledby = childArray[0].props['aria-labelledby'] || (label ? labelId : null);\n    childArray[0] = /*#__PURE__*/_react.default.cloneElement(childArray[0], {\n      id,\n      labelId,\n      'aria-labelledby': ariaLabelledby\n    });\n  }\n\n  if (id && !labelFor) {\n    labelFor = id;\n  }\n\n  if (!labelFor) {\n    console.warn(`Missing labelFor attribute on ${componentName} with label \"${label}\"`);\n  }\n\n  let fieldLabelClassName = (0, _classnames.default)(labelClassName, childArray.length === 0 ? className : null);\n  let fieldLabel = label ? /*#__PURE__*/_react.default.createElement(\"label\", _extends({\n    className: fieldLabelClassName,\n    id: labelId,\n    htmlFor: labelFor\n  }, (0, _filterDOMProps.default)(otherProps)), label, icon && ' ', icon && icon) : /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n    className: fieldLabelClassName\n  }, (0, _filterDOMProps.default)(otherProps)));\n\n  if (childArray.length > 0) {\n    if (wrapperClassName) {\n      childArray = /*#__PURE__*/_react.default.createElement(\"div\", {\n        className: wrapperClassName\n      }, childArray);\n    }\n\n    return /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: (0, _classnames.default)(className, 'fieldLabelBase-Override', {\n        'fieldLabelBase-Override--row': position === 'left' || position === 'right',\n        'fieldLabelBase-Override--column': position !== 'left' && position !== 'right'\n      })\n    }, fieldLabel, childArray);\n  }\n\n  return fieldLabel;\n}","\"use strict\";\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = require('./js/Heading');","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Heading;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst VARIANTS = {\n  1: 'display',\n  2: 'pageTitle',\n  3: 'subtitle1',\n  4: 'subtitle2',\n  5: 'subtitle3',\n  6: 'subtitle3'\n};\nconst ELEMENTS = {\n  'display': 'h1',\n  'pageTitle': 'h2',\n  'subtitle1': 'h2',\n  'subtitle2': 'h3',\n  'subtitle3': 'h4'\n};\n\nfunction Heading(_ref) {\n  let {\n    variant,\n    size = 1,\n    // back-compat\n    children,\n    className\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"variant\", \"size\", \"children\", \"className\"]);\n\n  variant = variant || VARIANTS[size] || 'display';\n  const Element = ELEMENTS[variant];\n  return /*#__PURE__*/_react.default.createElement(Element, _extends({\n    className: (0, _classnames.default)('spectrum-Heading', `spectrum-Heading--${variant}`, className)\n  }, (0, _filterDOMProps.default)(otherProps)), children);\n}\n\nHeading.displayName = 'Heading';\nHeading.propTypes = {\n  /**\n   * Variant of the heading to display. This maps to different heading HTML elements:\n   * - display: h1\n   * - pageTitle: h2\n   * - subtitle1: h2\n   * - subtitle2: h3\n   * - subtitle3: h4\n   */\n  variant: _propTypes.default.oneOf(['display', 'pageTitle', 'subtitle1', 'subtitle2', 'subtitle3']),\n\n  /**\n   * Custom classname to apply to the heading.\n   */\n  className: _propTypes.default.string\n};","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M29 16h-9V7a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v9H7a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9v9a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-9h9a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M37 20H26V9a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v11H9a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h11v11a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V26h11a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Add';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M16 2a16 16 0 1 0 16 16A16 16 0 0 0 16 2zm10 17a1 1 0 0 1-1 1h-7v7a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-7H7a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h7V9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v7h7a1 1 0 0 1 1 1z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M24 4.1A19.9 19.9 0 1 0 43.9 24 19.9 19.9 0 0 0 24 4.1zM36 25a1 1 0 0 1-1 1h-9v9a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-9h-9a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h9v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9h9a1 1 0 0 1 1 1z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'AddCircle';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M17.127 2.579L.4 32.512A1 1 0 0 0 1.272 34h33.456a1 1 0 0 0 .873-1.488L18.873 2.579a1 1 0 0 0-1.746 0zM20 29.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5zm0-6a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-12a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M44.37 39.036L25.752 5.186a2 2 0 0 0-3.5 0L3.63 39.036A2 2 0 0 0 5.383 42h37.234a2 2 0 0 0 1.753-2.964zM24 39a3 3 0 1 1 3-3 3 3 0 0 1-3 3zm-2.4-10V15a1 1 0 0 1 1-1h2.8a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-2.8a1 1 0 0 1-1-1z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Alert';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M24 20V3a1 1 0 0 0-1-1H13a1 1 0 0 0-1 1v17H5.007a.5.5 0 0 0-.354.854L18 34.2l13.346-13.346a.5.5 0 0 0-.353-.854z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M32 26V4a2 2 0 0 0-2-2H18a2 2 0 0 0-2 2v22H7.48a1 1 0 0 0-.707 1.707L24 44.933l17.226-17.226A1 1 0 0 0 40.519 26z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'ArrowDown';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M24 16v17a1 1 0 0 1-1 1H13a1 1 0 0 1-1-1V16H5.007a.5.5 0 0 1-.354-.854L18 1.8l13.346 13.346a.5.5 0 0 1-.354.854z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M32 22v22a2 2 0 0 1-2 2H18a2 2 0 0 1-2-2V22H7.481a1 1 0 0 1-.707-1.707L24 3.067l17.226 17.226A1 1 0 0 1 40.519 22z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'ArrowUp';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M29.585 29.5c.249.25.417.583 0 .917l-5.168 3.333c-.417.25-.583.083-.75-.334l-6.416-11.168L8.833 31.5c-.083.167-.334.333-.583 0l-4-4.167c-.417-.25-.334-.5 0-.75l9.5-7.917L2.917 14.58c-.168 0-.417-.333-.251-.75L5.5 8.164A.439.439 0 0 1 6.25 8l9.5 6.167L16.335 2a.438.438 0 0 1 .5-.5l6.917.916c.417 0 .5.167.417.583l-3.25 11.917 11-3.333c.249-.167.5-.167.666.333l1.084 6.167c.083.417 0 .583-.334.583l-11.5.917z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M37.9 37.8c.3.3.5.7 0 1.1l-6.2 4c-.5.3-.7.1-.9-.4l-7.7-13.4L13 40.2c-.1.2-.4.4-.7 0l-4.8-5c-.5-.3-.4-.6 0-.9l11.4-9.5-13-4.9c-.2 0-.5-.4-.3-.9L9 12.2a.526.526 0 0 1 .9-.2l11.4 7.4.7-14.6a.526.526 0 0 1 .6-.6l8.3 1.1c.5 0 .6.2.5.7l-3.9 14.3 13.2-4c.3-.2.6-.2.8.4l1.3 7.4c.1.5 0 .7-.4.7l-13.8 1.1z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Asterisk';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M16 2a16 16 0 1 0 16 16A16 16 0 0 0 16 2zm10.666 9.08L14.018 27.341a1.208 1.208 0 0 1-.875.461h-.072a1.2 1.2 0 0 1-.85-.352l-7.785-7.793a1.2 1.2 0 0 1 0-1.7l1.326-1.325a1.2 1.2 0 0 1 1.7 0l5.338 5.349L23.315 8.473A1.2 1.2 0 0 1 25 8.263L26.455 9.4a1.2 1.2 0 0 1 .211 1.68z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M24 4.1A19.9 19.9 0 1 0 43.9 24 19.9 19.9 0 0 0 24 4.1zm12.563 12.587L22.018 35.341a1.208 1.208 0 0 1-.875.461h-.072a1.2 1.2 0 0 1-.85-.352l-7.785-7.795a1.2 1.2 0 0 1 0-1.7l1.326-1.325a1.2 1.2 0 0 1 1.7 0l5.338 5.351 12.408-15.9a1.2 1.2 0 0 1 1.686-.21L36.352 15a1.2 1.2 0 0 1 .211 1.687z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'CheckmarkCircle';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M8 14.02a2 2 0 0 1 3.411-1.411l6.578 6.572 6.578-6.572a2 2 0 0 1 2.874 2.773l-.049.049-7.992 7.984a2 2 0 0 1-2.825 0l-7.989-7.983A1.989 1.989 0 0 1 8 14.02z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M22.585 31.7L11.94 21.05a2 2 0 0 1 0-2.828l.282-.282a2.006 2.006 0 0 1 2.828 0L24 26.888l8.949-8.948a2.006 2.006 0 0 1 2.828 0l.282.282a2 2 0 0 1 0 2.828L25.414 31.7a2 2 0 0 1-2.829 0z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'ChevronDown';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M12 18a1.988 1.988 0 0 0 .585 1.409l7.983 7.98a2 2 0 1 0 2.871-2.772l-.049-.049L16.819 18l6.572-6.57a2 2 0 0 0-2.773-2.87l-.049.049-7.983 7.98A1.988 1.988 0 0 0 12 18z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M16.3 22.585L26.949 11.94a2 2 0 0 1 2.828 0l.282.282a2.006 2.006 0 0 1 0 2.828L21.112 24l8.948 8.949a2.006 2.006 0 0 1 0 2.828l-.282.282a2 2 0 0 1-2.828 0L16.3 25.414a2 2 0 0 1 0-2.829z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'ChevronLeft';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M24 18a1.988 1.988 0 0 1-.585 1.409l-7.983 7.98a2 2 0 1 1-2.871-2.772l.049-.049L19.181 18l-6.572-6.57a2 2 0 0 1 2.773-2.87l.049.049 7.983 7.98A1.988 1.988 0 0 1 24 18z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M31.7 25.414L21.05 36.059a2 2 0 0 1-2.828 0l-.282-.282a2.006 2.006 0 0 1 0-2.828L26.888 24l-8.948-8.949a2.006 2.006 0 0 1 0-2.828l.282-.282a2 2 0 0 1 2.828 0L31.7 22.585a2 2 0 0 1 0 2.829z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'ChevronRight';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"circle\", { cx: \"18\", cy: \"18\", r: \"16\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"circle\", { cx: \"24\", cy: \"24\", r: \"19.9\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Circle';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"rect\", { height: \"14\", rx: \"1\", ry: \"1\", width: \"14\", x: \"2\", y: \"2\" }),\n  React.createElement(\"rect\", { height: \"14\", rx: \"1\", ry: \"1\", width: \"14\", x: \"20\", y: \"2\" }),\n  React.createElement(\"rect\", { height: \"14\", rx: \"1\", ry: \"1\", width: \"14\", x: \"2\", y: \"20\" }),\n  React.createElement(\"rect\", { height: \"14\", rx: \"1\", ry: \"1\", width: \"14\", x: \"20\", y: \"20\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"rect\", { height: \"18\", rx: \"2\", ry: \"2\", width: \"18\", x: \"4\", y: \"4\" }),\n  React.createElement(\"rect\", { height: \"18\", rx: \"2\", ry: \"2\", width: \"18\", x: \"26\", y: \"4\" }),\n  React.createElement(\"rect\", { height: \"18\", rx: \"2\", ry: \"2\", width: \"18\", x: \"4\", y: \"26\" }),\n  React.createElement(\"rect\", { height: \"18\", rx: \"2\", ry: \"2\", width: \"18\", x: \"26\", y: \"26\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'ClassicGridView';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M18 2a16 16 0 1 0 16 16A16 16 0 0 0 18 2zm0 30a14 14 0 1 1 14-14 14 14 0 0 1-14 14z\" }),\n  React.createElement(\"path\", { d: \"M20 16.086V7a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v10.586a1 1 0 0 0 .293.707L21.9 23.9a1 1 0 0 0 1.414 0l1.336-1.336a1 1 0 0 0 0-1.414l-4.357-4.357a1 1 0 0 1-.293-.707z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M26 22.086V11a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v12.586a1 1 0 0 0 .293.707l6.3 6.3a1 1 0 0 0 1.414 0l1.336-1.336a1 1 0 0 0 0-1.414l-5.054-5.054a1 1 0 0 1-.289-.703z\" }),\n  React.createElement(\"path\", { d: \"M24 7.8A16.2 16.2 0 1 1 7.8 24 16.219 16.219 0 0 1 24 7.8zM24 4a20 20 0 1 0 20 20A20 20 0 0 0 24 4z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Clock';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M26.485 6.686L18 15.172 9.515 6.686a1 1 0 0 0-1.414 0L6.686 8.1a1 1 0 0 0 0 1.414L15.172 18l-8.486 8.485a1 1 0 0 0 0 1.414L8.1 29.314a1 1 0 0 0 1.414 0L18 20.828l8.485 8.485a1 1 0 0 0 1.414 0l1.415-1.413a1 1 0 0 0 0-1.414L20.828 18l8.485-8.485a1 1 0 0 0 0-1.414L27.9 6.686a1 1 0 0 0-1.415 0z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M35.314 8.444L24 19.757 12.686 8.444a1 1 0 0 0-1.414 0l-2.828 2.828a1 1 0 0 0 0 1.414L19.757 24 8.444 35.314a1 1 0 0 0 0 1.414l2.828 2.828a1 1 0 0 0 1.414 0L24 28.243l11.314 11.313a1 1 0 0 0 1.414 0l2.828-2.828a1 1 0 0 0 0-1.414L28.243 24l11.313-11.314a1 1 0 0 0 0-1.414l-2.828-2.828a1 1 0 0 0-1.414 0z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Close';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M27.314 6.686a16 16 0 1 0 0 22.627 16 16 0 0 0 0-22.627zm-2.687 18.527l-1.414 1.414a1.2 1.2 0 0 1-1.7 0L16 21.111l-5.516 5.516a1.2 1.2 0 0 1-1.7 0l-1.409-1.415a1.2 1.2 0 0 1 0-1.7L12.889 18l-5.514-5.516a1.2 1.2 0 0 1 0-1.7l1.414-1.411a1.2 1.2 0 0 1 1.7 0L16 14.888l5.516-5.515a1.2 1.2 0 0 1 1.7 0l1.414 1.414a1.2 1.2 0 0 1 0 1.7L19.112 18l5.516 5.516a1.2 1.2 0 0 1 0 1.7z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M38.071 9.928a19.9 19.9 0 1 0 0 28.143 19.9 19.9 0 0 0 0-28.143zm-6.294 23.547a1 1 0 0 1-1.414 0L24 27.111l-6.364 6.364a1 1 0 0 1-1.414 0l-1.7-1.7a1 1 0 0 1 0-1.414L20.888 24l-6.363-6.363a1 1 0 0 1 0-1.414l1.7-1.7a1 1 0 0 1 1.414 0L24 20.888l6.365-6.363a1 1 0 0 1 1.414 0l1.7 1.7a1 1 0 0 1 0 1.414L27.112 24l6.363 6.364a1 1 0 0 1 0 1.414z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'CloseCircle';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M28.286 28a5.714 5.714 0 1 0 0-11.429 5.777 5.777 0 0 0-.645.037 7.239 7.239 0 1 0-14.153-2.876 6.1 6.1 0 0 0-7.473 7.461A3.429 3.429 0 1 0 5.43 28z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M38.143 36a7.857 7.857 0 0 0 0-15.714 7.94 7.94 0 0 0-.887.05 9.954 9.954 0 1 0-19.46-3.954A8.386 8.386 0 0 0 7.522 26.64 4.715 4.715 0 1 0 6.714 36z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Cloud';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M32 22h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2zm-4 0h2v2h-2zm-4 0h2v2h-2zm-4 0h2v2h-2zm-4 0h2v2h-2zm-4 0h2v2h-2zm0 4h2v2h-2zm0 4h2v2h-2zm0 4h2v2h-2zm0 4h2v2h-2zm0 4h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\" }),\n  React.createElement(\"path\", { d: \"M10 12H3a1 1 0 0 0-1 1v20a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1v-7H10z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M14 30V14H4a2 2 0 0 0-2 2v26a2 2 0 0 0 2 2h26a2 2 0 0 0 2-2V32H16a2 2 0 0 1-2-2z\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"18\", y: \"24\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"26\", y: \"24\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"34\", y: \"24\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"42\", y: \"24\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"42\", y: \"16\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"42\", y: \"8\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"42\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"34\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"26\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"18\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"18\", y: \"8\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"4\", x: \"18\", y: \"16\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Copy';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M31.5 4H24V2a2 2 0 0 0-2-2H12a2 2 0 0 0-2 2v2H2.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h2l2.413 25.1a1 1 0 0 0 1 .9h18.179a1 1 0 0 0 1-.9L29.5 8h2a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5zM12 2h10v2H12zm-.458 26.944l-1 .06a.5.5 0 0 1-.529-.469L8.87 11.49a.5.5 0 0 1 .469-.529l1-.06a.5.5 0 0 1 .529.469l1.145 17.045a.5.5 0 0 1-.471.529zM18 28.48a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V11.4a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5zm5.985.056a.5.5 0 0 1-.529.469l-1-.06a.5.5 0 0 1-.469-.529l1.147-17.046a.5.5 0 0 1 .529-.469l1 .06a.5.5 0 0 1 .469.529z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M41 8h-9V6a4 4 0 0 0-4-4H18a4 4 0 0 0-4 4v2H5a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1.2l2 28a2 2 0 0 0 2 2h25.6a2 2 0 0 0 2-2l2-28H41a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1zM15.982 39.353a1.013 1.013 0 0 1-.7.331l-.4.021h-.023a1.011 1.011 0 0 1-1.027-.951l-1.23-21.362a1 1 0 0 1 .951-1.052l.447-.023a1 1 0 0 1 1 .953l1.227 21.361a.992.992 0 0 1-.245.722zM24.2 38.7a1 1 0 0 1-1 1h-.4a1 1 0 0 1-1-1V17.3a1 1 0 0 1 1-1h.4a1 1 0 0 1 1 1zM28 8H18V6h10zm4.2 30.76a.992.992 0 0 1-.33.7 1.025 1.025 0 0 1-.682.258h-.033l-.4-.02a1 1 0 0 1-.693-.327.987.987 0 0 1-.258-.717l1.152-21.377a1 1 0 0 1 1-.95l.447.021a1 1 0 0 1 .693.327.977.977 0 0 1 .26.717z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Delete';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M27.491 8l-2.308 24H8.817L6.509 8zM22 2H12a2 2 0 0 0-2 2v2H2.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h2l2.413 25.1a1 1 0 0 0 1 .9h18.179a1 1 0 0 0 1-.9L29.5 8h2a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H24V4a2 2 0 0 0-2-2zM12 6V4h10v2z\" }),\n  React.createElement(\"rect\", { height: \"18.08\", rx: \".5\", ry: \".5\", width: \"2\", x: \"16\", y: \"10.9\" }),\n  React.createElement(\"path\", { d: \"M13.542 28.944l-1 .06a.5.5 0 0 1-.529-.469L10.87 11.49a.5.5 0 0 1 .469-.529l1-.06a.5.5 0 0 1 .529.469l1.145 17.045a.5.5 0 0 1-.471.529zm6.916 0l1 .06a.5.5 0 0 0 .529-.469L23.13 11.49a.5.5 0 0 0-.469-.529l-1-.06a.5.5 0 0 0-.529.469l-1.143 17.045a.5.5 0 0 0 .469.529z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M17.7 35.976a1.029 1.029 0 0 1-1.067-.928l-1.258-17.956a1 1 0 0 1 2-.14l1.256 17.956a1.029 1.029 0 0 1-.931 1.068zM23 36a1.029 1.029 0 0 1-1-1V17a1 1 0 0 1 2 0v18a1.029 1.029 0 0 1-1 1zm5.3-.024a1.029 1.029 0 0 1-.928-1.067l1.258-17.957a1 1 0 0 1 2 .14l-1.26 17.956a1.029 1.029 0 0 1-1.07.928z\" }),\n  React.createElement(\"path\", { d: \"M42 8H32V6a4 4 0 0 0-4-4H18a4 4 0 0 0-4 4v2H4a2 2 0 0 0 0 4h2.2l2 30a2 2 0 0 0 2 2h25.6a2 2 0 0 0 2-2l2-30H42a2 2 0 0 0 0-4zM18 6h10v2H18zm16 34H12l-2-28h26z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'DeleteOutline';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M35 2H1a1 1 0 0 0-1 1v24a1 1 0 0 0 1 1h13v5a1 1 0 0 1-1 1h-2a.979.979 0 0 0-1 1v1h16v-1a1 1 0 0 0-1-1h-2a1 1 0 0 1-1-1v-5h13a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1zm-3 22H4V6h28z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M44 4H4a2 2 0 0 0-2 2v26a2 2 0 0 0 2 2h14v4a2.006 2.006 0 0 1-2 2h-3a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-3a2.006 2.006 0 0 1-2-2v-4h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm-2 26H6V8h36z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'DeviceDesktop';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M35.561 30.684L32 20V3a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v17L.439 30.684A1 1 0 0 0 1.387 32h33.226a1 1 0 0 0 .948-1.316zM8 6h20v12H8zm4.155 23.379l.75-3A.5.5 0 0 1 13.39 26h9.22a.5.5 0 0 1 .485.379l.75 3a.5.5 0 0 1-.485.621H12.64a.5.5 0 0 1-.485-.621z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M46.805 39.212L42 28V8a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v20L1.195 39.212A2 2 0 0 0 3.033 42h41.934a2 2 0 0 0 1.838-2.788zM29.719 38H18.281a1 1 0 0 1-.97-1.243l.5-2a1 1 0 0 1 .97-.757h10.438a1 1 0 0 1 .97.757l.5 2a1 1 0 0 1-.97 1.243zM38 26H10V10h28z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'DeviceLaptop';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M17.757 2H7a1 1 0 0 0-1 1v30a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V14.243a3 3 0 0 0-.879-2.121l-9.242-9.243A3 3 0 0 0 17.757 2zM28 14H18V4h.172L28 13.828zm0 18H8V4h8v11a1 1 0 0 0 1 1h11z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M25.343 4H8a2 2 0 0 0-2 2v36a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V18.657a4 4 0 0 0-1.172-2.828L28.172 5.172A4 4 0 0 0 25.343 4zM34.5 17H27V9.5zM36 40H10V8h13v11a2 2 0 0 0 2 2h11z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'DocumentOutline';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M24.793 20H20V2.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V20h-4.793a.5.5 0 0 0-.354.854L18 28l7.146-7.146a.5.5 0 0 0-.353-.854z\" }),\n  React.createElement(\"path\", { d: \"M30 26.5V30H6v-3.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V33a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1v-6.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M32.586 24H26V5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v19h-6.586a1 1 0 0 0-.707 1.707L23 36l10.293-10.293A1 1 0 0 0 32.586 24z\" }),\n  React.createElement(\"path\", { d: \"M40 33v7H6v-7a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v9a2 2 0 0 0 2 2h38a2 2 0 0 0 2-2v-9a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Download';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M16 24v6.057l-3.134-.046a.5.5 0 0 0-.349.862L18 35.976l5.483-5.1a.5.5 0 0 0-.349-.862L20 30.057V24zm13.153-13.408a6.146 6.146 0 0 0 .12-1.155A7.71 7.71 0 0 0 21.2 1.7a8.529 8.529 0 0 0-8.013 6.317 8.446 8.446 0 0 0-2.214-.3 6.483 6.483 0 0 0-6.752 6.156 4.861 4.861 0 0 0 .28 1.61c-.094-.006-.184-.023-.28-.023C1.791 15.466.04 18.045.04 19.8S1.767 24 3.9 24h1.283L16 23.96V14.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9.46l9.611.04 1.286-.192a5.871 5.871 0 0 0 5.02-6.232c-.001-3.796-3.772-6.532-6.764-6.984z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M37 16.941a8.657 8.657 0 0 0 .14-1.483c0-5.253-3.624-9.936-9.422-9.936-4.906 0-8.2 3.993-9.348 8.113a9.015 9.015 0 0 0-2.583-.379 7.91 7.91 0 0 0-7.876 7.906 6.815 6.815 0 0 0 .327 2.068c-.11-.008-.215-.03-.327-.03-2.83 0-5.357 2.057-5.357 4.689 0 2.842 2.5 4.111 4.984 4.111H22V21a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v11h11.535l1.5-.086c3.423-.63 6.386-1.385 6.386-5.914 0-4.875-4.93-8.478-8.421-9.059zM31.586 38H26v-6h-4v6h-5.586a1 1 0 0 0-.707 1.707L24 48l8.293-8.293A1 1 0 0 0 31.586 38z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'DownloadFromCloud';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M9 8h17V3a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h5V9a1 1 0 0 1 1-1z\" }),\n  React.createElement(\"path\", { d: \"M10 11v22a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V11a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1zm19.5 13H24v5.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V24h-5.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5H20v-5.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V20h5.5a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M8 10a2 2 0 0 1 2-2h26V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v28a2 2 0 0 0 2 2h2z\" }),\n  React.createElement(\"path\", { d: \"M42 12H14a2 2 0 0 0-2 2v28a2 2 0 0 0 2 2h28a2 2 0 0 0 2-2V14a2 2 0 0 0-2-2zm-5 18h-7v7a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-7h-7a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h7v-7a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v7h7a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Duplicate';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M28 11.207V16H14.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H28v4.793a.5.5 0 0 0 .854.354L35.913 18l-7.06-7.146a.5.5 0 0 0-.853.353z\" }),\n  React.createElement(\"path\", { d: \"M1 4h22a1 1 0 0 1 1 1v7h-2V6H2v24h20v-6h2v7a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M40 16.564a.5.5 0 0 1 .858-.349l6.989 7.431a.5.5 0 0 1 0 .708l-6.989 7.457a.5.5 0 0 1-.858-.349V26H25a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h15z\" }),\n  React.createElement(\"path\", { d: \"M4 6h30a2 2 0 0 1 2 2v10h-4v-8H6v28h26v-8h4v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Export';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M28.583 5.854a19.006 19.006 0 0 0-4.113.454 1.093 1.093 0 0 1-1.3-1.085V3.609a1.086 1.086 0 0 0-.814-1.061A19.5 19.5 0 0 0 17.75 2 19.154 19.154 0 0 0 8 4.648v15.165a19.1 19.1 0 0 1 9.76-2.646 1.1 1.1 0 0 1 1.073 1.1v3.739a.99.99 0 0 0 1.406.907 19.291 19.291 0 0 1 12.515-1.435A1.006 1.006 0 0 0 34 20.511V7.4a1 1 0 0 0-.751-.98 19.489 19.489 0 0 0-4.666-.566z\" }),\n  React.createElement(\"rect\", { height: \"34\", rx: \".5\", ry: \".5\", width: \"4\", x: \"2\", y: \"2\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M36.917 9.289a24.851 24.851 0 0 0-5.379.593 1.429 1.429 0 0 1-1.7-1.418V6.809a1.978 1.978 0 0 0-1.509-1.945 25.515 25.515 0 0 0-5.579-.614A25.048 25.048 0 0 0 10 7.712v19.832a24.98 24.98 0 0 1 12.765-3.461 1.44 1.44 0 0 1 1.4 1.439v3.807a2.01 2.01 0 0 0 2.843 1.812 25.245 25.245 0 0 1 14.637-1.569A1.982 1.982 0 0 0 44 27.619V11.848A1.978 1.978 0 0 0 42.491 9.9a25.515 25.515 0 0 0-5.574-.611z\" }),\n  React.createElement(\"rect\", { height: \"42\", rx: \"1\", ry: \"1\", width: \"4\", x: \"2\", y: \"4\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Flag';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M33 32H3a1 1 0 0 1-1-1V10h31a1 1 0 0 1 1 1v20a1 1 0 0 1-1 1zM13.01 4.61A2 2 0 0 0 11.57 4H4a2 2 0 0 0-2 2v2h14.266z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M4 14v26a2 2 0 0 0 2 2h36a2 2 0 0 0 2-2V16a2 2 0 0 0-2-2zm14.01-9.39A2 2 0 0 0 16.57 4H8a4 4 0 0 0-4 4v2h19.266z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Folder';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M14.7 27A12.293 12.293 0 0 1 34 16.893V11a1 1 0 0 0-1-1H2v21a1 1 0 0 0 1 1h12.769a12.24 12.24 0 0 1-1.069-5z\" }),\n  React.createElement(\"path\", { d: \"M27 18.1a8.9 8.9 0 1 0 8.9 8.9 8.9 8.9 0 0 0-8.9-8.9zm5 9.4a.5.5 0 0 1-.5.5H28v3.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V28h-3.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5H26v-3.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5V26h3.5a.5.5 0 0 1 .5.5zM16 8H2V5.5A1.5 1.5 0 0 1 3.5 4h7.672a2 2 0 0 1 1.414.586z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M18.1 4.8a2 2 0 0 0-1.6-.8H6a2 2 0 0 0-2 2v4h18zm2 31.2A15.879 15.879 0 0 1 44 22.275V16a2 2 0 0 0-2-2H4v26a2 2 0 0 0 2 2h15.28a15.843 15.843 0 0 1-1.18-6z\" }),\n  React.createElement(\"path\", { d: \"M36 24.1A11.9 11.9 0 1 0 47.9 36 11.9 11.9 0 0 0 36 24.1zm8 13.4a.5.5 0 0 1-.5.5H38v5.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V38h-5.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5H34v-5.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V34h5.5a.5.5 0 0 1 .5.5z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'FolderAdd';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M7.146 13.769C6.1 9.982 8.8 8.352 8.534 5.116A16.073 16.073 0 0 0 2 18c0 9.112 7.943 14.542 13.554 15.732a6.9 6.9 0 0 0 1.046.168c2-5.1-1.773-10.789-4.263-14.494-2.075-3.088-3.959-1.18-5.191-5.637z\" }),\n  React.createElement(\"path\", { d: \"M32.781 19.031c-1.61-.613-2.991 1.475-3.114-4.164a5.764 5.764 0 0 1 1.667-4 3.08 3.08 0 0 1 .729-.349c-.191-.349-.4-.684-.62-1.018-.037.019-.071.044-.109.062-1.25.583-1.423.755-2 0a1.576 1.576 0 0 1 .346-2.326 15.985 15.985 0 0 0-11.654-5.221c2.028.028 4.447 1.53 3.213 3.929.185-.381-4.027-1.29-4.6-1.29-.772 0 1.576-2.889 1.36-2.639a16.08 16.08 0 0 0-6.615 1.423c1.093.706 2.311.459 3.543.764a3.006 3.006 0 0 1 1.1.452 3.7 3.7 0 0 0-1.1-.452c-1.818-.211.88 4.777.778 4.114.5-2.292 3.612-3.176 4.566-.147a3.741 3.741 0 0 1-.838 2.265c-1.41 1.854-1.7 5.154-2.4 4.31-6.59-2.7-5.865.871-3.7 3.258 3.463 3.82 1.706.392 6.242 2.392 3.648 1.608 8.038 1.989 6.967 3.2-3.241 3.67-2.56 6.1-8.293 10.4.478-.013 2-.165 2.311-.216a16.274 16.274 0 0 0 13.375-14.4 2.4 2.4 0 0 1-1.154-.347z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M9.527 18.358c-1.4-5.049 2.207-7.223 1.852-11.537A21.43 21.43 0 0 0 2.667 24c0 12.149 10.591 19.39 18.072 20.976a9.2 9.2 0 0 0 1.393.221c2.668-6.8-2.364-14.385-5.684-19.326-2.765-4.113-5.278-1.571-6.921-7.513z\" }),\n  React.createElement(\"path\", { d: \"M19.9 5.6s-.485.029-.619.163c-1.014 1.01 1.776 6.1 1.656 5.322.664-3.056 4.816-4.235 6.088-.2a4.989 4.989 0 0 1-1.117 3.02c-1.88 2.472-2.262 6.872-3.2 5.746-8.787-3.6-7.82 1.161-4.936 4.343 4.618 5.094 2.275.522 8.323 3.189 4.864 2.145 10.718 2.652 9.289 4.27-4.322 4.894-3.413 8.137-11.057 13.872.637-.017 2.665-.22 3.082-.288a21.7 21.7 0 0 0 17.833-19.2 3.2 3.2 0 0 1-1.539-.469c-2.147-.817-3.989 1.967-4.152-5.552a7.686 7.686 0 0 1 2.222-5.333 4.107 4.107 0 0 1 .972-.465 22.301 22.301 0 0 0-.826-1.357c-.05.026-.094.059-.145.083-1.667.778-1.9 1.007-2.667 0a2.1 2.1 0 0 1 .461-3.1 21.313 21.313 0 0 0-15.533-6.957c2.7.037 5.929 2.039 4.284 5.239.247-.508-5.369-1.72-6.133-1.72-1.029 0 1.853-3.519 1.814-3.519a21.439 21.439 0 0 0-8.82 1.9C16.637 5.526 19.9 5.6 19.9 5.6z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Globe';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M14 11.207V16H.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H14v4.793a.5.5 0 0 0 .854.354L22 18l-7.146-7.146a.5.5 0 0 0-.854.353z\" }),\n  React.createElement(\"path\", { d: \"M33 4H9a1 1 0 0 0-1 1v7h2V6h22v24H10v-6H8v7a1 1 0 0 0 1 1h24a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M18 16.564a.5.5 0 0 1 .858-.349l6.989 7.431a.5.5 0 0 1 0 .708l-6.989 7.457a.5.5 0 0 1-.858-.349V26H3a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h15z\" }),\n  React.createElement(\"path\", { d: \"M42 6H12a2 2 0 0 0-2 2v10h4v-8h26v28H14v-8h-4v10a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Import';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"circle\", { cx: \"18\", cy: \"12\", r: \"2.15\" }),\n  React.createElement(\"path\", { d: \"M20.333 24H20v-7.6a.4.4 0 0 0-.4-.4h-3.933s-1.167.032-1.167 1 1.167 1 1.167 1H16v6h-.333s-1.167.032-1.167 1 1.167 1 1.167 1h4.667s1.167-.033 1.167-1-1.168-1-1.168-1z\" }),\n  React.createElement(\"path\", { d: \"M18 2.1A15.9 15.9 0 1 0 33.9 18 15.9 15.9 0 0 0 18 2.1zm0 29.812A13.912 13.912 0 1 1 31.913 18 13.912 13.912 0 0 1 18 31.913z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M24 7.9A16.1 16.1 0 1 1 7.9 24 16.118 16.118 0 0 1 24 7.9zm0-3.8A19.9 19.9 0 1 0 43.9 24 19.9 19.9 0 0 0 24 4.1z\" }),\n  React.createElement(\"path\", { d: \"M21.56 14.747a2.24 2.24 0 0 1 4.48 0 2.084 2.084 0 0 1-2.24 2.24 2.116 2.116 0 0 1-2.24-2.24zM27.5 32H26V21a1 1 0 0 0-1-1h-4.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5H22v10h-1.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'InfoOutline';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"circle\", { cx: \"18\", cy: \"18\", r: \"4.1\" }),\n  React.createElement(\"circle\", { cx: \"30\", cy: \"18\", r: \"4.1\" }),\n  React.createElement(\"circle\", { cx: \"6\", cy: \"18\", r: \"4.1\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"circle\", { cx: \"24\", cy: \"24\", r: \"6\" }),\n  React.createElement(\"circle\", { cx: \"42\", cy: \"24\", r: \"6\" }),\n  React.createElement(\"circle\", { cx: \"6\", cy: \"24\", r: \"6\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'More';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M30.854 12.854a.5.5 0 0 0-.854.354V16H20V6h2.793a.5.5 0 0 0 .354-.854L18 0l-5.146 5.146a.5.5 0 0 0 .353.854H16v10H6v-2.793a.5.5 0 0 0-.854-.354L0 18l5.146 5.146A.5.5 0 0 0 6 22.793V20h10v10h-2.793a.5.5 0 0 0-.354.854L18 36l5.146-5.146a.5.5 0 0 0-.353-.854H20V20h10v2.793a.5.5 0 0 0 .854.354L36 18z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M46 24l-6.293-6.293a1 1 0 0 0-1.707.707V22H26V10h3.586a1 1 0 0 0 .707-1.707L24 2l-6.293 6.293A1 1 0 0 0 18.414 10H22v12H10v-3.586a1 1 0 0 0-1.707-.707L2 24l6.293 6.293A1 1 0 0 0 10 29.586V26h12v12h-3.586a1 1 0 0 0-.707 1.707L24 46l6.293-6.293A1 1 0 0 0 29.586 38H26V26h12v3.586a1 1 0 0 0 1.707.707z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Move';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M21.879 20.344a1 1 0 0 1-1.414 0l-4.809-4.809a1 1 0 0 1 0-1.414L23.777 6H3a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h26a1 1 0 0 0 1-1V12.223z\" }),\n  React.createElement(\"path\", { d: \"M23.707 2a.5.5 0 0 0-.354.854l3.482 3.482-8.135 8.139a.5.5 0 0 0 0 .707l2.118 2.118a.5.5 0 0 0 .707 0l8.139-8.139 3.482 3.482a.5.5 0 0 0 .854-.35V2z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M38.057 19.843l-8.812 8.915a2 2 0 0 1-2.834.011l-7.137-7.108a2 2 0 0 1 0-2.831l8.886-8.886L26.213 8H4a2 2 0 0 0-2 2v32a2 2 0 0 0 2 2h34a2 2 0 0 0 2-2V21.786z\" }),\n  React.createElement(\"path\", { d: \"M30.241 4a1.008 1.008 0 0 0-.655 1.716l4.228 4.228-9.842 9.842a.5.5 0 0 0 0 .707l3.536 3.535a.5.5 0 0 0 .707 0l9.842-9.842 4.217 4.214a1 1 0 0 0 1.706-.655V4z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'MoveTo';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M6 16.5V6h24v24H19.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H33a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v13.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5z\" }),\n  React.createElement(\"path\", { d: \"M5.54 20.853l3.389 3.389-7.546 7.547a.5.5 0 0 0 0 .707L3.5 34.617a.5.5 0 0 0 .707 0l7.546-7.546 3.389 3.389a.5.5 0 0 0 .858-.353V20H5.893a.5.5 0 0 0-.353.853z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M8 21.5V8h32v32H26.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H43a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v16.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5z\" }),\n  React.createElement(\"path\", { d: \"M10.241 24a1.008 1.008 0 0 0-.655 1.716l4.228 4.228-9.842 9.842a.5.5 0 0 0 0 .707l3.536 3.535a.5.5 0 0 0 .707 0l9.842-9.842 4.217 4.214a1 1 0 0 0 1.706-.655V24z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'OpenIn';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M33.5 6H15.9a5 5 0 0 0-9.8 0H2.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h3.6a5 5 0 0 0 9.8 0h17.6a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zM11 10a3 3 0 1 1 3-3 3 3 0 0 1-3 3zm22.5 16H19.9a5 5 0 0 0-9.8 0H2.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h7.6a5 5 0 0 0 9.8 0h13.6a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zM15 30a3 3 0 1 1 3-3 3 3 0 0 1-3 3zM2 16.5v1a.5.5 0 0 0 .5.5h17.6a5 5 0 0 0 9.8 0h3.6a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-3.6a5 5 0 0 0-9.8 0H2.5a.5.5 0 0 0-.5.5zm20 .5a3 3 0 1 1 3 3 3 3 0 0 1-3-3z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M43 8H21.675a6.955 6.955 0 0 0-13.35 0H5a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h3.325a6.955 6.955 0 0 0 13.35 0H43a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1zm-28 5.3a3.3 3.3 0 1 1 3.3-3.3 3.3 3.3 0 0 1-3.3 3.3zM5 26h21.325a6.955 6.955 0 0 0 13.35 0H43a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-3.325a6.955 6.955 0 0 0-13.35 0H5a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1zm24.7-2a3.3 3.3 0 1 1 3.3 3.3 3.3 3.3 0 0 1-3.3-3.3z\" }),\n  React.createElement(\"path\", { d: \"M43 36H27.675a6.955 6.955 0 0 0-13.35 0H5a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9.325a6.955 6.955 0 0 0 13.35 0H43a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1zm-22 5.3a3.3 3.3 0 1 1 3.3-3.3 3.3 3.3 0 0 1-3.3 3.3z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Properties';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"24\", x: \"6\", y: \"16\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"rect\", { height: \"6\", rx: \"1\", ry: \"1\", width: \"30\", x: \"8\", y: \"20\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Remove';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M31 0h2v36h-2zm-5.412 31.7L15.633 4.21c-.041-.169-.083-.21-.252-.21h-4.152a.2.2 0 0 0-.21.21 4.559 4.559 0 0 1-.3 1.738L1.485 31.662c-.041.21.045.338.255.338h2.88a.3.3 0 0 0 .338-.255L8.09 23H18.7l3.161 8.79a.378.378 0 0 0 .339.21h3.218c.214 0 .256-.128.17-.3zM13.347 6.88h.041c.759 2.707 3.355 9.972 4.44 13.12h-8.87c1.59-4.584 3.704-10.546 4.389-13.12z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"rect\", { height: \"44\", rx: \".5\", ry: \".5\", width: \"2\", x: \"38\", y: \"2\" }),\n  React.createElement(\"path\", { d: \"M12.823 31.3L9.117 41.69a.36.36 0 0 1-.41.31h-3.5c-.255 0-.36-.155-.31-.41l11.218-31.224a5.534 5.534 0 0 0 .36-2.111.242.242 0 0 1 .256-.255h5.043c.205 0 .255.05.306.255L34.167 41.64c.1.205.054.36-.205.36h-3.908a.459.459 0 0 1-.41-.255L25.886 31.3zm11.882-3.958C23.57 24 20.333 14.994 19.353 11.5H19.3c-.875 3.292-3.342 10.186-5.3 15.844z\" }),\n  React.createElement(\"path\", { d: \"M12.823 31.3L9.117 41.69a.36.36 0 0 1-.41.31h-3.5c-.255 0-.36-.155-.31-.41l11.218-31.224a5.534 5.534 0 0 0 .36-2.111.242.242 0 0 1 .256-.255h5.043c.205 0 .255.05.306.255L34.167 41.64c.1.205.054.36-.205.36h-3.908a.459.459 0 0 1-.41-.255L25.886 31.3zm11.882-3.958C23.57 24 20.333 14.994 19.353 11.5H19.3c-.875 3.292-3.342 10.186-5.3 15.844z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Rename';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M29.2 8H12.8A4.8 4.8 0 0 0 8 12.8v16.4a4.8 4.8 0 0 0 4.8 4.8h16.4a4.8 4.8 0 0 0 4.8-4.8V12.8A4.8 4.8 0 0 0 29.2 8zm1.223 9.049L18.988 28.573a.8.8 0 0 1-1.131 0l-6.28-6.278a.8.8 0 0 1 0-1.131l2.491-2.491a.8.8 0 0 1 1.131 0l3.224 3.227 8.378-8.47a.8.8 0 0 1 1.131 0l2.491 2.491a.8.8 0 0 1 0 1.128z\" }),\n  React.createElement(\"path\", { d: \"M26 2H6.8A4.8 4.8 0 0 0 2 6.8V26a4 4 0 0 0 4 4V6h24a4 4 0 0 0-4-4z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M39.5 14h-21a4.5 4.5 0 0 0-4.5 4.5v21a4.5 4.5 0 0 0 4.5 4.5h21a4.5 4.5 0 0 0 4.5-4.5v-21a4.5 4.5 0 0 0-4.5-4.5zm1.542 10.82l-14.82 14.819a1 1 0 0 1-1.414 0l-7.85-7.848a1 1 0 0 1 0-1.414l3.113-3.113a1 1 0 0 1 1.414 0l4.03 4.036 11-11a1 1 0 0 1 1.414 0l3.113 3.113a1 1 0 0 1 0 1.407z\" }),\n  React.createElement(\"path\", { d: \"M10 10h26V8.8A4.8 4.8 0 0 0 31.2 4H8.8A4.8 4.8 0 0 0 4 8.8v22.4A4.8 4.8 0 0 0 8.8 36H10z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'SelectBoxAll';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M24.476 7.165L18 0l-6.46 7.165a.5.5 0 0 0 .371.835H16v11.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5V8h4.1a.5.5 0 0 0 .376-.835z\" }),\n  React.createElement(\"path\", { d: \"M33 8h-6.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H30v16H6V12h3.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H3a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M45 12h-6.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H42v22H6V16h3.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H3a1 1 0 0 0-1 1v28a1 1 0 0 0 1 1h42a1 1 0 0 0 1-1V13a1 1 0 0 0-1-1z\" }),\n  React.createElement(\"path\", { d: \"M33.722 10.331L24 0l-9.708 10.331A1 1 0 0 0 15.035 12H20v13.5a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5V12h4.979a1 1 0 0 0 .743-1.669z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Share';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M32 9.044v15h2.565a.431.431 0 0 1 .262.724l-3.971 3.955a.5.5 0 0 1-.706 0l-3.963-3.954a.431.431 0 0 1 .262-.724h2.565l.006-15a1 1 0 0 1 1-1h.993a.988.988 0 0 1 .987.999z\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"12\", x: \"2\", y: \"24\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"16\", x: \"2\", y: \"16\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"20\", x: \"2\", y: \"8\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M38 13v19l-3.405.011a.5.5 0 0 0-.349.862L40 38.615l5.766-5.742a.5.5 0 0 0-.349-.862L42 32V13a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1z\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"28\", x: \"4\", y: \"12\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"24\", x: \"4\", y: \"22\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"20\", x: \"4\", y: \"32\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'SortOrderDown';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M32 26.956v-15h2.565a.431.431 0 0 0 .262-.724l-3.971-3.956a.5.5 0 0 0-.706 0l-3.963 3.954a.431.431 0 0 0 .262.724h2.565l.006 15a1 1 0 0 0 1 1h.993a.988.988 0 0 0 .987-.998z\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"12\", x: \"2\", y: \"8\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"16\", x: \"2\", y: \"16\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"20\", x: \"2\", y: \"24\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M38 35V16l-3.405-.011a.5.5 0 0 1-.349-.862L40 9.385l5.766 5.742a.5.5 0 0 1-.349.862L42 16v19a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1z\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"28\", x: \"4\", y: \"32\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"24\", x: \"4\", y: \"22\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \"1\", ry: \"1\", width: \"20\", x: \"4\", y: \"12\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'SortOrderUp';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M18.477.593L22.8 12.029l12.212.578a.51.51 0 0 1 .295.907l-9.54 7.646 3.224 11.793a.51.51 0 0 1-.772.561L18 26.8 7.78 33.515a.51.51 0 0 1-.772-.561l3.224-11.793-9.54-7.646a.51.51 0 0 1 .295-.907l12.213-.579L17.523.593a.51.51 0 0 1 .954 0z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M24.827 2.741l5.5 14.559 15.547.736a1.031 1.031 0 0 1 .6 1.834L34.33 29.6l4.1 15.014a1.031 1.031 0 0 1-1.56 1.133l-13.007-8.538-13.011 8.543a1.031 1.031 0 0 1-1.56-1.133L13.4 29.6 1.251 19.87a1.031 1.031 0 0 1 .6-1.834l15.543-.736L22.9 2.741a1.031 1.031 0 0 1 1.927 0z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Star';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M18.059 5.082l3.554 9.505 10.219.481-7.975 6.405 2.672 9.827-8.534-5.568-8.558 5.615 2.7-9.873-7.974-6.4 10.2-.49zm.023-4.259a.738.738 0 0 0-.7.478l-4.412 11.35-12.2.585a.75.75 0 0 0-.434 1.334l9.523 7.642-3.23 11.8a.752.752 0 0 0 .725.951.742.742 0 0 0 .41-.125L18 28.122l10.187 6.648a.742.742 0 0 0 .408.125.752.752 0 0 0 .725-.949l-3.189-11.733 9.528-7.653a.75.75 0 0 0-.434-1.334l-12.2-.575-4.241-11.34a.738.738 0 0 0-.702-.488z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M46.967 17.635L30.7 16.868l-5.654-15.12a1 1 0 0 0-1.869-.012l-5.883 15.132-16.262.781a1 1 0 0 0-.578 1.779l12.7 10.189-4.308 15.727a1 1 0 0 0 1.513 1.1L24 37.5l13.582 8.86a1 1 0 0 0 1.511-1.1l-4.252-15.643 12.7-10.2a1 1 0 0 0-.574-1.782zM14.492 39.176l3-10.968L8.618 21.1l11.358-.538L24 9.922l4.022 10.636 11.358.538-8.88 7.112 3 10.968-9.5-6.241z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'StarOutline';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M30.664 12.542A10.4 10.4 0 0 0 23.672 10H10V4.5a.5.5 0 0 0-.856-.351l-7.4 7.5a.5.5 0 0 0 0 .7l7.4 7.5A.5.5 0 0 0 10 19.5V14h13.878a6.139 6.139 0 0 1 6.222 5.8A5.889 5.889 0 0 1 24 26h-5a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h4.527a10.336 10.336 0 0 0 10.426-9.013 9.949 9.949 0 0 0-3.289-8.445z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M32.455 12H16V4.5a.5.5 0 0 0-.84-.366L4 15l11.16 10.865A.5.5 0 0 0 16 25.5V18h16.6a7.267 7.267 0 0 1 7.386 6.623A7 7 0 0 1 33 32h-8a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h8a13 13 0 0 0 12.994-13.4C45.781 17.485 39.573 12 32.455 12z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'Undo';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M20 26h-4v9.485a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5zm9.144-14.758a7.415 7.415 0 0 0 .12-1.271c0-4.5-3.106-8.515-8.075-8.515-4.2 0-7.024 3.422-8.011 6.953a7.723 7.723 0 0 0-2.213-.325 6.779 6.779 0 0 0-6.75 6.776 5.841 5.841 0 0 0 .28 1.772c-.094-.006-.184-.026-.28-.026C1.79 16.607.04 19.445.04 21.374S1.766 26 3.9 26H16v-6h-4.331a.5.5 0 0 1-.352-.855L18 12.51l6.683 6.635a.5.5 0 0 1-.352.855H20v6h9.6l1.285-.211C33.821 25.248 36 22.755 36 18.874c0-4.174-3.864-7.134-6.856-7.632z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M37 16.941a8.657 8.657 0 0 0 .14-1.483c0-5.253-3.624-9.936-9.422-9.936-4.906 0-8.2 3.993-9.348 8.113a9.015 9.015 0 0 0-2.583-.379 7.91 7.91 0 0 0-7.876 7.906 6.815 6.815 0 0 0 .327 2.068c-.11-.008-.215-.03-.327-.03a5.773 5.773 0 0 0-5.386 5.431A5.487 5.487 0 0 0 7.539 34H22v-8h-5.586a1 1 0 0 1-.707-1.707L24 16l8.293 8.293A1 1 0 0 1 31.586 26H26v8h11.535l1.5-.086A7.68 7.68 0 0 0 45.421 26c0-4.875-4.93-8.478-8.421-9.059zM26 34h-4v9a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'UploadToCloud';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M22.325 21.547v-2.224a1.539 1.539 0 0 1 .392-.993A11.746 11.746 0 0 0 25.388 11c0-5.547-2.942-8.647-7.387-8.647s-7.47 3.222-7.47 8.647a11.873 11.873 0 0 0 2.8 7.329 1.54 1.54 0 0 1 .392.993v2.214a1.528 1.528 0 0 1-1.333 1.542c-8.931.777-10.326 6.886-10.326 9.3 0 .268.032 1.321.051 1.585h31.857S34 32.642 34 32.374c0-2.309-1.577-8.4-10.346-9.286a1.535 1.535 0 0 1-1.329-1.541z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M29.026 27.832v-2.806a2.038 2.038 0 0 1 .455-1.253 17.506 17.506 0 0 0 3.1-9.86c0-7-3.419-10.3-8.585-10.3s-8.683 3.456-8.683 10.3a17.634 17.634 0 0 0 3.253 9.86 2.038 2.038 0 0 1 .455 1.253v2.794a1.888 1.888 0 0 1-1.549 1.946C6.182 30.881 4 38.96 4 42c0 .338.037 1.667.059 2h39.882c.023-.333.059-1.662.059-2 0-2.914-2.091-11.028-13.431-12.223a1.891 1.891 0 0 1-1.543-1.945z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'User';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"path\", { d: \"M19.011 20.333v-2.084a1.442 1.442 0 0 1 .367-.93 11 11 0 0 0 2.5-6.866c0-5.2-2.756-8.1-6.919-8.1s-7 3.018-7 8.1a11.121 11.121 0 0 0 2.622 6.865 1.442 1.442 0 0 1 .367.93v2.074A1.431 1.431 0 0 1 9.7 21.768C1.338 22.5.031 28.218.031 30.474c0 .251.03 3.237.048 3.484h29.842s.026-3.234.026-3.484c0-2.163-1.478-7.864-9.691-8.7a1.437 1.437 0 0 1-1.245-1.441z\" }),\n  React.createElement(\"path\", { d: \"M27.374 19.534a1.342 1.342 0 0 1-1.16-1.346v-1.013a1.531 1.531 0 0 1 .342-.867 12.144 12.144 0 0 0 1.869-6.4c0-4.354-2.57-7.552-6.452-7.552-.232 0-.445.042-.668.062a10.931 10.931 0 0 1 2.974 8.037 13.46 13.46 0 0 1-2.869 8.171v.874c8.622 1.281 10.936 7.667 10.936 10.972 0 .108 0 .768-.01 1.484h3.586s.024-3.15.024-3.384a9.564 9.564 0 0 0-8.572-9.038z\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"path\", { d: \"M24.025 28.479v-2.694a1.958 1.958 0 0 1 .438-1.2 16.805 16.805 0 0 0 2.98-9.465c0-6.72-3.283-9.89-8.242-9.89s-8.336 3.317-8.336 9.89a16.925 16.925 0 0 0 3.126 9.469 1.948 1.948 0 0 1 .434 1.2v2.683a1.947 1.947 0 0 1-1.67 1.887C2.071 31.494 0 38.7 0 41.6V44h38v-2.4c0-2.782-1.59-10.024-12.319-11.235a1.949 1.949 0 0 1-1.656-1.886z\" }),\n  React.createElement(\"path\", { d: \"M36.559 27.851a1.755 1.755 0 0 1-1.5-1.7v-2.422a1.762 1.762 0 0 1 .394-1.083 15.125 15.125 0 0 0 2.682-8.519c0-6.048-2.954-8.9-7.418-8.9a8.337 8.337 0 0 0-2.289.338c1.729 2.17 2.851 5.273 2.851 9.552a20.732 20.732 0 0 1-3.417 11.32v.369C37.706 28.6 41.816 35.42 42 40h6v-2.4c0-2.5-1.787-8.664-11.441-9.749z\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'UserGroup';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 36 36\" },\n  React.createElement(\"rect\", { height: \"8\", rx: \"1\", ry: \"1\", width: \"8\", x: \"2\", y: \"2\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \".5\", ry: \".5\", width: \"22\", x: \"12\", y: \"4\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \".5\", ry: \".5\", width: \"22\", x: \"12\", y: \"16\" }),\n  React.createElement(\"rect\", { height: \"4\", rx: \".5\", ry: \".5\", width: \"22\", x: \"12\", y: \"28\" }),\n  React.createElement(\"rect\", { height: \"8\", rx: \"1\", ry: \"1\", width: \"8\", x: \"2\", y: \"14\" }),\n  React.createElement(\"rect\", { height: \"8\", rx: \"1\", ry: \"1\", width: \"8\", x: \"2\", y: \"26\" })\n);\n\n","\"use strict\";\n\nvar React = require(\"react\");\nmodule.exports = React.createElement(\n  \"svg\",\n  { viewBox: \"0 0 48 48\" },\n  React.createElement(\"rect\", { height: \"10\", rx: \"2\", ry: \"2\", width: \"10\", x: \"4\", y: \"6\" }),\n  React.createElement(\"rect\", { height: \"10\", rx: \"2\", ry: \"2\", width: \"10\", x: \"4\", y: \"20\" }),\n  React.createElement(\"rect\", { height: \"10\", rx: \"2\", ry: \"2\", width: \"10\", x: \"4\", y: \"34\" }),\n  React.createElement(\"rect\", { height: \"6\", rx: \"1\", ry: \"1\", width: \"24\", x: \"18\", y: \"8\" }),\n  React.createElement(\"rect\", { height: \"6\", rx: \"1\", ry: \"1\", width: \"24\", x: \"18\", y: \"22\" }),\n  React.createElement(\"rect\", { height: \"6\", rx: \"1\", ry: \"1\", width: \"24\", x: \"18\", y: \"36\" })\n);\n\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _Icon = require('../js/Icon');\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(_Icon2.default, _extends({}, props, { icon: { 18: require('./18'), 24: require('./24') } }));\n};\nWrappedIcon.displayName = 'ViewList';\n\nexports.default = WrappedIcon;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-AlertMedium\" },\n      _react2.default.createElement(\"path\", { d: \"M8.564 1.289L.2 16.256A.5.5 0 0 0 .636 17h16.728a.5.5 0 0 0 .5-.5.494.494 0 0 0-.064-.244L9.436 1.289a.5.5 0 0 0-.872 0zM10 14.75a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M10.563 2.206l-9.249 16.55a.5.5 0 0 0 .436.744h18.5a.5.5 0 0 0 .5-.5.494.494 0 0 0-.064-.244l-9.251-16.55a.5.5 0 0 0-.872 0zM12 17.25a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'AlertMedium';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-CheckmarkMedium\" },\n      _react2.default.createElement(\"path\", { d: \"M4.5 10a1.023 1.023 0 0 1-.8-.384l-2.488-3a1 1 0 0 1 1.577-1.233L4.5 7.376l4.712-5.991a1 1 0 1 1 1.576 1.23l-5.511 7A.977.977 0 0 1 4.5 10z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M6 14a1 1 0 0 1-.788-.385l-4-5a1 1 0 1 1 1.576-1.23L6 11.376l7.213-8.991a1 1 0 1 1 1.576 1.231l-8 10A1 1 0 0 1 6 14z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'CheckmarkMedium';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-CheckmarkSmall\" },\n      _react2.default.createElement(\"path\", { d: \"M3.788 9A1 1 0 0 1 3 8.615l-2.288-3a1 1 0 1 1 1.576-1.23l1.5 1.991 3.924-4.991a1 1 0 1 1 1.576 1.23l-4.712 6A1 1 0 0 1 3.788 9z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M4.5 11a1 1 0 0 1-.788-.385l-3-4A.991.991 0 0 1 .5 6a1 1 0 0 1 1.788-.616L4.5 8.376l5.212-6.991a1 1 0 1 1 1.576 1.231l-6 8A1 1 0 0 1 4.5 11z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'CheckmarkSmall';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-ChevronDownMedium\" },\n      _react2.default.createElement(\"path\", { d: \"M9.99 1.01A1 1 0 0 0 8.283.3L5 3.586 1.717.3A1 1 0 1 0 .3 1.717L4.293 5.7a1 1 0 0 0 1.414 0L9.7 1.717a1 1 0 0 0 .29-.707z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M11.99 1.51A1 1 0 0 0 10.283.8L6 5.086 1.717.8A1 1 0 1 0 .3 2.217l4.99 4.99a1 1 0 0 0 1.414 0l4.99-4.99a1 1 0 0 0 .296-.707z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'ChevronDownMedium';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-ChevronRightMedium\" },\n      _react2.default.createElement(\"path\", { d: \"M5.99 5a1 1 0 0 0-.29-.707L1.717.3A1 1 0 1 0 .3 1.717L3.586 5 .3 8.283A1 1 0 1 0 1.717 9.7L5.7 5.707A1 1 0 0 0 5.99 5z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M7.5 6a1 1 0 0 0-.293-.707L2.217.3A1 1 0 1 0 .8 1.717L5.086 6 .8 10.283A1 1 0 1 0 2.217 11.7l4.99-4.99A1 1 0 0 0 7.5 6z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'ChevronRightMedium';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-CornerTriangle\" },\n      _react2.default.createElement(\"path\", { d: \"M4.74.01a.25.25 0 0 0-.177.073l-4.48 4.48a.25.25 0 0 0 .177.427h4.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M5.74.01a.25.25 0 0 0-.177.073l-5.48 5.48a.25.25 0 0 0 .177.427h5.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'CornerTriangle';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-CrossLarge\" },\n      _react2.default.createElement(\"path\", { d: \"M11.7 10.283L7.414 6 11.7 1.717A1 1 0 1 0 10.283.3L6 4.586 1.717.3A1 1 0 1 0 .3 1.717L4.586 6 .3 10.283A1 1 0 1 0 1.717 11.7L6 7.414l4.283 4.286a1 1 0 1 0 1.417-1.417z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M15.7 14.283L9.414 8 15.7 1.717A1 1 0 1 0 14.283.3L8 6.586 1.717.3A1 1 0 1 0 .3 1.717L6.586 8 .3 14.283A1 1 0 1 0 1.717 15.7L8 9.414l6.283 6.286a1 1 0 1 0 1.417-1.417z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'CrossLarge';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-CrossMedium\" },\n      _react2.default.createElement(\"path\", { d: \"M7.77 6.709L5.061 4 7.77 1.291A.75.75 0 1 0 6.709.23L4 2.939 1.291.23A.75.75 0 1 0 .23 1.291L2.939 4 .23 6.709A.75.75 0 1 0 1.291 7.77L4 5.061 6.709 7.77A.75.75 0 1 0 7.77 6.709z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M9.77 8.709L6.061 5 9.77 1.291A.75.75 0 1 0 8.709.23L5 3.939 1.291.23A.75.75 0 1 0 .23 1.291L3.939 5 .23 8.709A.75.75 0 1 0 1.291 9.77L5 6.061 8.709 9.77A.75.75 0 1 0 9.77 8.709z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'CrossMedium';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-DashSmall\" },\n      _react2.default.createElement(\"path\", { d: \"M8 4H2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M10.99 5H1.01a1 1 0 0 0 0 2h9.98a1 1 0 1 0 0-2z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'DashSmall';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-InfoMedium\" },\n      _react2.default.createElement(\"path\", { d: \"M9 1a8 8 0 1 0 8 8 8 8 0 0 0-8-8zm-.15 2.15a1.359 1.359 0 0 1 1.431 1.283v.129a1.332 1.332 0 0 1-1.223 1.432 1.444 1.444 0 0 1-.208 0 1.353 1.353 0 0 1-1.432-1.269 1.5 1.5 0 0 1 0-.164 1.359 1.359 0 0 1 1.3-1.412c.047-.002.089-.001.132.001zM11 13.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5H8V9h-.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 .5.5V12h.5a.5.5 0 0 1 .5.5z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M11 2a9 9 0 1 0 9 9 9 9 0 0 0-9-9zm-.15 2.65a1.359 1.359 0 0 1 1.431 1.283v.129a1.332 1.332 0 0 1-1.224 1.432 1.444 1.444 0 0 1-.208 0 1.353 1.353 0 0 1-1.431-1.269 1.5 1.5 0 0 1 0-.164 1.359 1.359 0 0 1 1.3-1.412c.047-.002.089-.001.132.001zM13.5 16a.5.5 0 0 1-.5.5H9a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h1v-4H9a.5.5 0 0 1-.5-.5V9a.5.5 0 0 1 .5-.5h2.5a.5.5 0 0 1 .5.5v5.5h1a.5.5 0 0 1 .5.5z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'InfoMedium';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Icon = require(\"../js/Icon\");\n\nvar _Icon2 = _interopRequireDefault(_Icon);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar WrappedIcon = function WrappedIcon(props) {\n  return _react2.default.createElement(\n    _Icon2.default,\n    props,\n    _react2.default.createElement(\n      \"svg\",\n      { className: \"spectrum-UIIcon-SuccessMedium\" },\n      _react2.default.createElement(\"path\", { d: \"M9 1a8 8 0 1 0 8 8 8 8 0 0 0-8-8zm5.333 4.54l-6.324 8.13a.6.6 0 0 1-.437.23h-.037a.6.6 0 0 1-.425-.176l-3.893-3.9a.6.6 0 0 1 0-.849l.663-.663a.6.6 0 0 1 .848 0L7.4 10.991l5.256-6.754a.6.6 0 0 1 .843-.1l.728.566a.6.6 0 0 1 .106.837z\", className: \"spectrum-UIIcon--medium\" }),\n      _react2.default.createElement(\"path\", { d: \"M11 2a9 9 0 1 0 9 9 9 9 0 0 0-9-9zm5.638 5.609L10.1 15.652a.5.5 0 0 1-.7.073.44.44 0 0 1-.039-.035L5.086 11.5a.5.5 0 0 1 0-.707l.707-.707a.5.5 0 0 1 .707 0L9.6 13.1l5.486-6.751a.5.5 0 0 1 .7-.073l.776.631a.5.5 0 0 1 .076.702z\", className: \"spectrum-UIIcon--large\" })\n    )\n  );\n};\n\nWrappedIcon.displayName = 'SuccessMedium';\nexports.default = WrappedIcon;\n\n","\"use strict\";\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = require('./js/Icon');","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Icon;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/icon/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/icon/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/icon/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/icon/index.css\");\n}\n\nconst SIZES = {\n  XXS: 18,\n  XS: 24,\n  S: 18,\n  M: 24,\n  L: 18,\n  XL: 24,\n  XXL: 24\n};\n\nfunction Icon(_ref) {\n  let {\n    icon,\n    // add, bell, heart, star\n    size = 'M',\n    // XS, S, M, L\n    className,\n    children,\n    'aria-label': ariaLabel,\n    'aria-hidden': ariaHidden,\n    role = 'img',\n    alt\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"icon\", \"size\", \"className\", \"children\", \"aria-label\", \"aria-hidden\", \"role\", \"alt\"]);\n\n  const sizeKey = SIZES[size];\n  let svg = icon && icon[sizeKey] || icon || children;\n\n  if (typeof svg === 'string') {\n    throw new Error('String icon names are deprecated. Please import icons from react-spectrum/Icon/IconName and render as <IconName />.');\n  }\n\n  if (!ariaHidden || ariaHidden === 'false') {\n    ariaHidden = undefined;\n  }\n\n  return /*#__PURE__*/_react.default.cloneElement(svg, _objectSpread({\n    focusable: 'false',\n    'aria-label': ariaLabel || alt,\n    'aria-hidden': ariaLabel || alt ? ariaHidden : true,\n    role,\n    className: (0, _classnames.default)(svg.props.className, 'spectrum-Icon', {\n      [`spectrum-Icon--size${size}`]: size\n    }, className)\n  }, otherProps));\n}\n\nIcon.displayName = 'Icon';\nIcon.propTypes = {\n  /**\n   * Size of icon, XXS to XXL\n   */\n  size: _propTypes.default.string\n};","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\nmodule.exports = _UxpOptions.default.select('Link', () => require('./js/Link'), () => require('./js/Link'), () => require('./js/SpUxpLink'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Link;\n\nvar _events = require(\"../../utils/events\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/link/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/link/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/link/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/link/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/link/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/link/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/link/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/link/multiStops/darkest.css\");\n\nfunction preventDefault(e) {\n  if (!e.defaultPrevented) {\n    e.preventDefault();\n  }\n}\n\nfunction Link(_ref) {\n  let {\n    subtle,\n    // deprecated, use variant instead\n    variant,\n    children,\n    className,\n    href,\n    onClick\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"subtle\", \"variant\", \"children\", \"className\", \"href\", \"onClick\"]);\n\n  if (subtle) {\n    console.warn('The \"subtle\" prop of Link is deprecated. Please use variant=\"quiet\" instead.');\n    variant = 'quiet';\n  }\n\n  if (variant === 'subtle') {\n    console.warn('The \"subtle\" variant of Link is deprecated. Please use variant=\"quiet\" instead.');\n    variant = 'quiet';\n  }\n\n  if (!href && typeof onClick === 'function') {\n    href = '#';\n    onClick = (0, _events.chain)(onClick, preventDefault);\n  }\n\n  return /*#__PURE__*/_react.default.createElement(\"a\", _extends({\n    className: (0, _classnames.default)('spectrum-Link', {\n      [`spectrum-Link--${variant}`]: variant\n    }, className),\n    href: href,\n    onClick: onClick\n  }, (0, _filterDOMProps.default)(otherProps)), children);\n}\n\nLink.propTypes = {\n  /** Class to add to the Link */\n  className: _propTypes.default.string,\n\n  /** Link variant */\n  variant: _propTypes.default.oneOf(['quiet', 'subtle', 'overBackground'])\n};\nLink.displayName = 'Link';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _SpEventUtils = require(\"../../utils/SpEventUtils\");\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _events = require(\"../../utils/events\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst SPUXP_VARIANT = {\n  default: 'primary',\n  quiet: 'secondary',\n  subtle: 'secondary',\n  // deprecated\n  overBackground: 'overBackground'\n};\n\nfunction preventDefault(e) {\n  if (!e.defaultPrevented) {\n    e.preventDefault();\n  }\n}\n\nlet SpUxpLink = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SpUxpLink extends _react.Component {\n  constructor(props) {\n    super(props);\n    this.spLinkRef = /*#__PURE__*/_react.default.createRef();\n  }\n\n  handleEvent(event) {\n    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);\n\n    if (this.props[eventName] && eventName !== 'onClick') {\n      this.props[eventName].call(event.target, event);\n    }\n  }\n\n  componentDidMount() {\n    (0, _SpEventUtils.attachEventListeners)(this.spLinkRef.current, this.props, this.handleEvent);\n  }\n\n  componentWillUnmount() {\n    (0, _SpEventUtils.removeEventListeners)(this.spLinkRef.current, this.props, this.handleEvent);\n  }\n\n  componentDidUpdate(prevProps) {\n    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spLinkRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      subtle,\n      // deprecated\n      variant,\n      children,\n      className,\n      href,\n      onClick,\n      disabled\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"subtle\", \"variant\", \"children\", \"className\", \"href\", \"onClick\", \"disabled\"]);\n\n    if (subtle) {\n      console.warn('The \"subtle\" prop of Link is deprecated.');\n      variant = 'quiet';\n    }\n\n    if (!href && typeof onClick === 'function') {\n      href = '#';\n      onClick = (0, _events.chain)(onClick, preventDefault);\n    }\n\n    return /*#__PURE__*/_react.default.createElement(\"sp-link\", _extends({\n      ref: this.spLinkRef,\n      class: className,\n      variant: variant === undefined ? 'primary' : SPUXP_VARIANT[variant],\n      quiet: variant === undefined || variant === 'default' ? true : null,\n      disabled: disabled ? true : null,\n      href: href,\n      onClick: onClick\n    }, (0, _SpEventUtils.removeEventProps)(otherProps)), children);\n  }\n\n}, _class2.propTypes = {\n  /** Class to add to the Link */\n  className: _propTypes.default.string,\n\n  /** Link variant */\n  variant: _propTypes.default.oneOf(['quiet', 'subtle', 'overBackground'])\n}, _temp)) || _class;\n\nexports.default = SpUxpLink;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"List\", {\n  enumerable: true,\n  get: function () {\n    return _List.default;\n  }\n});\nexports.ListItem = void 0;\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nvar _List = _interopRequireDefault(require(\"./js/List\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2020 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nconst ListItem = _UxpOptions.default.select('ListItem', () => require('./js/UxpListItem'), () => require('./js/ListItem'));\n\nexports.ListItem = ListItem;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _FocusManager = _interopRequireDefault(require(\"../../utils/FocusManager\"));\n\nvar _focusRing = _interopRequireDefault(require(\"../../utils/focusRing\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"../../spectrum-css-overrides/menu/index.css\");\n\n  require(\"../../spectrum-css-overrides/menu/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"../../spectrum-css-overrides/menu/index-lg.css\");\n} else {\n  require(\"../../spectrum-css-overrides/menu/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"../../spectrum-css-overrides/menu/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"../../spectrum-css-overrides/menu/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"../../spectrum-css-overrides/menu/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"../../spectrum-css-overrides/menu/multiStops/darkest.css\");\nconst LIST_ITEM_SELECTOR = '.spectrum-Menu-item';\nconst NOT_DISABLED_SELECTOR = ':not(.is-disabled)';\nconst SELECTED_LIST_ITEM_SELECTOR = LIST_ITEM_SELECTOR + NOT_DISABLED_SELECTOR + '.is-selected';\n\nlet List = (0, _convertUnsafeMethod.default)(_class = (0, _focusRing.default)(_class = (_temp = _class2 = class List extends _react.Component {\n  constructor(props) {\n    super(props);\n    this.listId = (0, _createId.default)();\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      className,\n      children,\n      role = 'listbox',\n      autoFocus,\n      selectable = false,\n      id = this.listId,\n      typeToSelect = true\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"className\", \"children\", \"role\", \"autoFocus\", \"selectable\", \"id\", \"typeToSelect\"]);\n\n    return /*#__PURE__*/_react.default.createElement(_FocusManager.default, {\n      itemSelector: LIST_ITEM_SELECTOR + NOT_DISABLED_SELECTOR,\n      selectedItemSelector: SELECTED_LIST_ITEM_SELECTOR,\n      typeToSelect: typeToSelect,\n      autoFocus: autoFocus\n    }, /*#__PURE__*/_react.default.createElement(\"ul\", _extends({\n      id: id,\n      className: (0, _classnames.default)('spectrum-Menu', {\n        'is-selectable': selectable\n      }, className),\n      role: role\n    }, (0, _filterDOMProps.default)(otherProps)), children));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * Focus should immediately be given to the list upon render, specifically\n   * the currently selected item\n   */\n  autoFocus: _propTypes.default.bool,\n\n  /**\n   * Class added to this component\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The WAI-ARIA role for the list. Defaults to \"listbox\", but could be \"menu\" depending on context.\n   */\n  role: _propTypes.default.oneOf(['listbox', 'menu']),\n\n  /**\n   * Whether or not the list supports selection.\n   */\n  selectable: _propTypes.default.bool,\n\n  /**\n   * Whether to include alphanumeric typing as a way to move focus to items in a list.\n   */\n  typeToSelect: _propTypes.default.bool\n}, _class2.defaultProps = {\n  role: 'listbox'\n}, _temp)) || _class) || _class;\n\nexports.default = List;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _CheckmarkMedium = _interopRequireDefault(require(\"../../Icon/core/CheckmarkMedium\"));\n\nvar _ChevronRightMedium = _interopRequireDefault(require(\"../../Icon/core/ChevronRightMedium\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _icon = require(\"../../utils/icon\");\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _events = require(\"../../utils/events\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet ListItem =\n/**\n * An item in a list\n */\n(0, _autobindDecorator.default)(_class = (_temp = _class2 = class ListItem extends _react.Component {\n  handleMouseEnter(e) {\n    if (this.props.onMouseEnter) {\n      this.props.onMouseEnter(e);\n    } else {\n      e.currentTarget.focus();\n    }\n  }\n\n  handleFocus(e) {\n    if (this.props.onFocus) {\n      this.props.onFocus(e);\n    }\n  }\n\n  handleBlur(e) {\n    if (this.props.onBlur) {\n      this.props.onBlur(e);\n    }\n  }\n\n  onSelectFocused(e) {\n    e.preventDefault();\n\n    if (this.props.onClick) {\n      this.props.onClick(e);\n    }\n\n    if (this.props.onSelect && !e.isPropagationStopped()) {\n      this.props.onSelect(this.props.value, e);\n    }\n  }\n\n  onKeyDown(e) {\n    const {\n      onKeyDown,\n      disabled\n    } = this.props;\n\n    if (onKeyDown) {\n      onKeyDown(e);\n    }\n\n    if (!disabled) {\n      _events.interpretKeyboardEvent.call(this, e);\n    }\n  }\n\n  onTab(e) {\n    if (this.props.onTab) {\n      this.props.onTab(e);\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      icon,\n      label,\n      className,\n      children,\n      selected,\n      disabled,\n      focused,\n      hasNestedMenu,\n      tabIndex = 0,\n      role = 'option'\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"icon\", \"label\", \"className\", \"children\", \"selected\", \"disabled\", \"focused\", \"hasNestedMenu\", \"tabIndex\", \"role\"]);\n\n    delete otherProps.value;\n    return (\n      /*#__PURE__*/\n\n      /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n      _react.default.createElement(\"li\", _extends({}, (0, _filterDOMProps.default)(otherProps), {\n        className: (0, _classnames.default)('spectrum-Menu-item', {\n          'is-selected': selected,\n          'is-disabled': disabled,\n          'is-focused': focused\n        }, className),\n        onKeyDown: this.onKeyDown,\n        onMouseEnter: disabled ? null : this.handleMouseEnter,\n        onFocus: disabled ? null : this.handleFocus,\n        onClick: disabled ? null : this.onSelectFocused,\n        onBlur: this.handleBlur\n        /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n        ,\n        tabIndex: !disabled ? tabIndex : null,\n        role: role,\n        \"aria-checked\": role === 'menuitemcheckbox' || role === 'menuitemradio' ? !!selected : null,\n        \"aria-selected\": role === 'option' ? !!selected || !!focused : null,\n        \"aria-disabled\": disabled || null\n      }), (0, _icon.cloneIcon)(icon, {\n        size: 'S'\n      }), /*#__PURE__*/_react.default.createElement(\"span\", {\n        className: \"spectrum-Menu-itemLabel\"\n      }, label || children), selected && /*#__PURE__*/_react.default.createElement(_CheckmarkMedium.default, {\n        size: null,\n        className: \"spectrum-Menu-checkmark\"\n      }), hasNestedMenu && /*#__PURE__*/_react.default.createElement(_ChevronRightMedium.default, {\n        className: \"spectrum-Menu-chevron\"\n      }))\n    );\n  }\n\n}, _class2.propTypes = {\n  /**\n   * Whether or not the list item is selected\n   */\n  selected: _propTypes.default.bool,\n\n  /**\n   * Whether or not  the list item is disabled\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * Callback for when the list item is clicked\n   */\n  onClick: _propTypes.default.func,\n\n  /**\n   * Callback for when the list item is selected\n   */\n  onSelect: _propTypes.default.func,\n\n  /**\n   * The WAI-ARIA role for the list item. Defaults to \"option\", but could be \"menuitem\", \"menuitemcheckbox\", or \"menuitemradio\" depending on context.\n   */\n  role: _propTypes.default.oneOf(['option', 'menuitem', 'menuitemcheckbox', 'menuitemradio'])\n}, _class2.defaultProps = {\n  selected: false,\n  disabled: false,\n  onSelect: function () {},\n  role: 'option'\n}, _temp)) || _class;\n\nexports.default = ListItem;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _ListItem = _interopRequireDefault(require(\"./ListItem\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2021 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nclass SpUxpListItem extends _ListItem.default {\n  render() {\n    const {\n      icon,\n      label,\n      className,\n      children,\n      selected,\n      value,\n      disabled\n    } = this.props;\n    return /*#__PURE__*/_react.default.createElement(\"sp-menu-item\", {\n      disabled: disabled ? true : null,\n      selected: selected ? true : null,\n      value: value,\n      class: className\n    }, icon && /*#__PURE__*/_react.default.createElement(\"div\", {\n      slot: \"icon\"\n    }, \" \", icon), /*#__PURE__*/_react.default.createElement(\"span\", null, label || children));\n  }\n\n}\n\nexports.default = SpUxpListItem;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _CheckmarkMedium = _interopRequireDefault(require(\"../../Icon/core/CheckmarkMedium\"));\n\nvar _ChevronRightMedium = _interopRequireDefault(require(\"../../Icon/core/ChevronRightMedium\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _icon = require(\"../../utils/icon\");\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _ListItem = _interopRequireDefault(require(\"./ListItem\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _class;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet UxpListItem = (0, _autobindDecorator.default)(_class = class UxpListItem extends _ListItem.default {\n  /*\n  This is a workaround done for https://jira.corp.adobe.com/browse/ID-4221363\n  The actual fix is to support event.preventDefault in a generic way in UXP.\n  MouseDown on ListItem triggers a blur event on search box in UXP, even though event is default prevented. \n  */\n  onUxpSelectFocused(e) {\n    e.preventDefault();\n\n    if (this.props.onUxpSelect && !e.isPropagationStopped()) {\n      this.props.onUxpSelect(this.props.value, e);\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      icon,\n      label,\n      className,\n      children,\n      selected,\n      disabled,\n      focused,\n      hasNestedMenu,\n      tabIndex = 0,\n      role = 'option'\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"icon\", \"label\", \"className\", \"children\", \"selected\", \"disabled\", \"focused\", \"hasNestedMenu\", \"tabIndex\", \"role\"]);\n\n    delete otherProps.value;\n    delete otherProps.onMouseDown;\n    return (\n      /*#__PURE__*/\n\n      /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n      _react.default.createElement(\"li\", _extends({}, (0, _filterDOMProps.default)(otherProps), {\n        className: (0, _classnames.default)('spectrum-Menu-item', {\n          'is-selected': selected,\n          'is-disabled': disabled,\n          'is-focused': focused\n        }, className),\n        onKeyDown: this.onKeyDown,\n        onMouseEnter: disabled ? null : this.handleMouseEnter,\n        onFocus: disabled ? null : this.handleFocus,\n        onMouseDown: disabled ? null : this.onUxpSelectFocused,\n        onClick: disabled ? null : this.onSelectFocused,\n        onBlur: this.handleBlur\n        /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n        ,\n        tabIndex: !disabled ? tabIndex : null,\n        role: role,\n        \"aria-checked\": role === 'menuitemcheckbox' || role === 'menuitemradio' ? !!selected : null,\n        \"aria-selected\": role === 'option' ? !!selected || !!focused : null,\n        \"aria-disabled\": disabled || null\n      }), (0, _icon.cloneIcon)(icon, {\n        size: 'S'\n      }), /*#__PURE__*/_react.default.createElement(\"span\", {\n        className: \"spectrum-Menu-itemLabel\"\n      }, label || children), selected && /*#__PURE__*/_react.default.createElement(_CheckmarkMedium.default, {\n        size: null,\n        className: \"spectrum-Menu-checkmark\"\n      }), hasNestedMenu && /*#__PURE__*/_react.default.createElement(_ChevronRightMedium.default, {\n        className: \"spectrum-Menu-chevron\"\n      }))\n    );\n  }\n\n}) || _class;\n\nexports.default = UxpListItem;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"MenuItem\", {\n  enumerable: true,\n  get: function () {\n    return _MenuItem.default;\n  }\n});\nObject.defineProperty(exports, \"MenuDivider\", {\n  enumerable: true,\n  get: function () {\n    return _MenuDivider.default;\n  }\n});\nObject.defineProperty(exports, \"MenuHeading\", {\n  enumerable: true,\n  get: function () {\n    return _MenuHeading.default;\n  }\n});\nexports.SubMenu = exports.Menu = void 0;\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nvar _MenuItem = _interopRequireDefault(require(\"./js/MenuItem\"));\n\nvar _MenuDivider = _interopRequireDefault(require(\"./js/MenuDivider\"));\n\nvar _MenuHeading = _interopRequireDefault(require(\"./js/MenuHeading\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nconst Menu = _UxpOptions.default.select('Menu', () => require('./js/UxpMenu'), () => require('./js/Menu'));\n\nexports.Menu = Menu;\n\nconst SubMenu = _UxpOptions.default.select('SubMenu', () => require('./js/UxpSubMenu'), () => require('./js/SubMenu'));\n\nexports.SubMenu = SubMenu;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _List = require(\"../../List\");\n\nvar _Popover = _interopRequireDefault(require(\"../../Popover\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet Menu = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Menu extends _react.default.Component {\n  getListRef() {\n    return this.listRef;\n  }\n\n  onClick(e) {\n    e.preventDefault();\n\n    if (this.props.onClick) {\n      this.props.onClick(e);\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className,\n      closeOnSelect,\n      open,\n      onClose,\n      onSelect,\n      placement,\n      role = 'menu',\n      style,\n      trapFocus\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"closeOnSelect\", \"open\", \"onClose\", \"onSelect\", \"placement\", \"role\", \"style\", \"trapFocus\"]);\n\n    delete otherProps.target;\n    delete otherProps.onClick;\n    return /*#__PURE__*/_react.default.createElement(_Popover.default, {\n      isDialog: false,\n      placement: placement,\n      open: open,\n      onClose: onClose,\n      style: _objectSpread(_objectSpread({}, style), {}, {\n        overflowY: 'auto'\n      }),\n      trapFocus: trapFocus\n    }, /*#__PURE__*/_react.default.createElement(_List.List, _extends({\n      ref: l => this.listRef = l,\n      role: role,\n      className: className,\n      onClick: this.onClick\n    }, otherProps), _react.default.Children.map(children, child => /*#__PURE__*/_react.default.cloneElement(child, {\n      onSelect,\n      closeOnSelect\n    }))));\n  }\n\n}, _class2.displayName = 'Menu', _class2.propTypes = {\n  /**\n   * Location of the menu in relation to the element triggering it. If used\n   * with overlay trigger and there isn't enough room for the menu in that\n   * position, it will make a limited attempt to find a new position.\n   */\n  placement: _propTypes.default.oneOf(['bottom', 'bottom left', 'bottom right', 'top', 'top left', 'top right', 'left', 'left top', 'left bottom', 'right', 'right top', 'right bottom']),\n\n  /**\n   * Whether the menu is opened.\n   */\n  open: _propTypes.default.bool,\n\n  /**\n   * Callback when menu closes.\n   */\n  onClose: _propTypes.default.func,\n\n  /**\n   * Callback when menu item is selected.\n   */\n  onSelect: _propTypes.default.func,\n\n  /**\n   * String for extra class names to add to the menu\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * True by default, this keeps focus within children of this component.\n   * When disabled, focus may leave this component.\n   */\n  trapFocus: _propTypes.default.bool,\n\n  /**\n   * The WAI-ARIA role for the menu. Defaults to \"menu\", but could be \"listbox\" depending on context.\n   */\n  role: _propTypes.default.oneOf(['menu', 'listbox'])\n}, _class2.defaultProps = {\n  trapFocus: true\n}, _temp)) || _class;\n\nexports.default = Menu;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nclass MenuDivider extends _react.Component {\n  render() {\n    return /*#__PURE__*/_react.default.createElement(\"li\", {\n      className: \"spectrum-Menu-divider\",\n      role: \"separator\"\n    });\n  }\n\n}\n\nexports.default = MenuDivider;\nMenuDivider.displayName = 'MenuDivider';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nclass MenuHeading extends _react.Component {\n  render() {\n    const _this$props = this.props,\n          {\n      label,\n      children,\n      role = 'presentation',\n      'aria-level': ariaLevel\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"label\", \"children\", \"role\", \"aria-level\"]);\n\n    return /*#__PURE__*/_react.default.createElement(\"li\", _extends({\n      role: role,\n      className: \"spectrum-Menu-sectionHeading\"\n    }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement(\"span\", {\n      role: \"heading\",\n      \"aria-level\": ariaLevel || 3\n    }, label || children));\n  }\n\n}\n\nexports.default = MenuHeading;\nMenuHeading.displayName = 'MenuHeading';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _List = require(\"../../List\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * An item in a Menu\n */\nclass MenuItem extends _react.Component {\n  render() {\n    const _this$props = this.props,\n          {\n      role = 'menuitem'\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"role\"]);\n\n    return /*#__PURE__*/_react.default.createElement(_List.ListItem, _extends({\n      role: role\n    }, otherProps));\n  }\n\n}\n\nexports.default = MenuItem;\nMenuItem.displayName = 'MenuItem';\nMenuItem.propTypes = _objectSpread(_objectSpread({}, _List.ListItem.propTypes), {}, {\n  /**\n   * The WAI-ARIA role for the list item.\n   * Defaults to \"menuitem\", but could be \"menuitemcheckbox\", \"menuitemradio\" or \"option\" depending on context.\n   */\n  role: _propTypes.default.oneOf(['menuitem', 'menuitemcheckbox', 'menuitemradio', 'option'])\n});\nMenuItem.defaultProps = {\n  role: 'menuitem'\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _Menu = _interopRequireDefault(require(\"./Menu\"));\n\nvar _MenuItem = _interopRequireDefault(require(\"./MenuItem\"));\n\nvar _OverlayTrigger = _interopRequireDefault(require(\"../../OverlayTrigger\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _class, _class2, _temp2;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nlet SubMenu =\n/**\n * A menu item that has a sub menu under it that is opened on hover.\n */\n(0, _autobindDecorator.default)(_class = (_temp2 = _class2 = class SubMenu extends _react.Component {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.state = {\n      opened: false,\n      trapFocus: true\n    }, this.menuId = (0, _createId.default)(), this.subMenuId = (0, _createId.default)(), _temp;\n  }\n\n  handleKeyDown(event) {\n    const {\n      onKeyDown\n    } = this.props;\n\n    switch (event.key) {\n      case 'ArrowLeft':\n      case 'Left':\n        event.preventDefault();\n        event.stopPropagation();\n        this.setState({\n          opened: false\n        });\n        break;\n\n      case 'Enter':\n      case ' ':\n      case 'ArrowRight':\n      case 'Right':\n        event.preventDefault();\n        event.stopPropagation();\n        this.setState({\n          opened: true\n        });\n        break;\n    }\n\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  }\n\n  handleSubMenuKeyDown(event) {\n    switch (event.key) {\n      case 'ArrowLeft':\n      case 'Left':\n        event.preventDefault();\n        this.setState({\n          opened: false\n        });\n        break;\n    }\n  }\n\n  hide() {\n    this.hideAnimationFrame = requestAnimationFrame(() => this.setState({\n      opened: false\n    }));\n  }\n\n  show() {\n    if (this.hideAnimationFrame) {\n      cancelAnimationFrame(this.hideAnimationFrame);\n    }\n\n    requestAnimationFrame(() => this.setState({\n      opened: true\n    }));\n\n    if (this.props._onNestedSubmenuOpen) {\n      this.props._onNestedSubmenuOpen();\n    }\n  }\n\n  cloneItem(item) {\n    const props = _objectSpread(_objectSpread({}, item.props), {}, {\n      onKeyDown: this.handleSubMenuKeyDown\n    });\n\n    if (item.type === SubMenu) {\n      props._onNestedSubmenuOpen = this.show;\n    }\n\n    return /*#__PURE__*/(0, _react.cloneElement)(item, props);\n  }\n\n  onHide() {\n    this.hide();\n  }\n\n  onMenuClose() {\n    this.overlayTrigger.hide();\n  }\n\n  onSelect(...args) {\n    if (this.props.closeOnSelect) {\n      this.onMenuClose();\n    }\n\n    if (this.props.onSelect) {\n      this.props.onSelect(...args);\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className,\n      closeOnSelect,\n      label,\n      trapFocus\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"closeOnSelect\", \"label\", \"trapFocus\"]);\n\n    delete otherProps.onSelect;\n    const {\n      opened\n    } = this.state;\n    return /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, {\n      placement: \"right top\",\n      offset: -10,\n      crossOffset: -4,\n      selected: false,\n      show: this.state.opened,\n      onHide: this.onHide,\n      closeOnSelect: closeOnSelect,\n      ref: t => this.overlayTrigger = t\n    }, /*#__PURE__*/_react.default.createElement(_MenuItem.default, _extends({\n      id: this.menuId,\n      className: (0, _classnames.default)({\n        'is-open': opened\n      }, className),\n      ref: r => this.menuItem = r,\n      \"aria-haspopup\": \"menu\",\n      \"aria-expanded\": opened,\n      \"aria-owns\": opened ? this.subMenuId : null\n    }, otherProps, {\n      onKeyDown: otherProps.disabled ? undefined : this.handleKeyDown,\n      onClick: this.show,\n      onMouseEnter: this.show,\n      onMouseLeave: this.hide,\n      hasNestedMenu: true\n    }), label), /*#__PURE__*/_react.default.createElement(_Menu.default, {\n      id: this.subMenuId,\n      onSelect: this.onSelect,\n      autoFocus: true,\n      \"aria-labelledby\": this.menuId,\n      onMouseEnter: this.show,\n      onMouseLeave: this.hide,\n      trapFocus: trapFocus\n    }, _react.default.Children.toArray(children).map(this.cloneItem)));\n  }\n\n}, _class2.displayName = 'SubMenu', _class2.propTypes = _objectSpread(_objectSpread({}, _MenuItem.default.propTypes), {}, {\n  /**\n   * A custom classname to be applied to the menu item\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The displayed label of the submenu within its parent\n   */\n  label: _propTypes.default.string,\n\n  /**\n   * A select handler for the submenu, triggered whenever an item is selected.\n   */\n  onSelect: _propTypes.default.func,\n\n  /**\n   * True by default, this keeps focus within the expanded submenu of this component.\n   * When disabled, focus may leave the expanded submenu component.\n   */\n  trapFocus: _propTypes.default.bool\n}), _temp2)) || _class;\n\nexports.default = SubMenu;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _List = require(\"../../List\");\n\nvar _Menu = _interopRequireDefault(require(\"./Menu\"));\n\nvar _Popover = _interopRequireDefault(require(\"../../Popover\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nclass UxpMenu extends _Menu.default {\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className,\n      closeOnSelect,\n      open,\n      onClose,\n      onSelect,\n      onUxpSelect,\n      placement,\n      role = 'menu',\n      style,\n      trapFocus\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"children\", \"className\", \"closeOnSelect\", \"open\", \"onClose\", \"onSelect\", \"onUxpSelect\", \"placement\", \"role\", \"style\", \"trapFocus\"]);\n\n    delete otherProps.target;\n    delete otherProps.onClick;\n    delete otherProps.autoComplete;\n    delete otherProps.boundariesElement;\n    return /*#__PURE__*/_react.default.createElement(_Popover.default, {\n      isDialog: false,\n      ref: l => this.popoverRef = l,\n      placement: placement,\n      open: open,\n      onClose: onClose,\n      style: _objectSpread(_objectSpread({}, style), {}, {\n        overflowY: 'auto'\n      }),\n      trapFocus: trapFocus\n    }, /*#__PURE__*/_react.default.createElement(_List.List, _extends({\n      defaultpreventedkeys: ['Escape'],\n      ref: l => this.listRef = l,\n      role: role,\n      className: className,\n      onClick: this.onClick\n    }, otherProps), _react.default.Children.map(children, child => /*#__PURE__*/_react.default.cloneElement(child, {\n      onTab: e => e.stopPropagation(),\n      defaultpreventedkeys: ['Tab'],\n      onSelect,\n      onUxpSelect,\n      closeOnSelect\n    }))));\n  }\n\n}\n\nexports.default = UxpMenu;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _SubMenu = _interopRequireDefault(require(\"./SubMenu\"));\n\nvar _class;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nlet UxpSubMenu = (0, _autobindDecorator.default)(_class = class UxpSubMenu extends _SubMenu.default {\n  constructor(props) {\n    super(props);\n  }\n\n  componentDidUpdate() {\n    this.hideScrollBarOnParent(this.state.opened);\n  } // Workaround for PS as scrollbar of Menu appears on top of SubMenu\n\n\n  hideScrollBarOnParent(opened) {\n    let parentNodes = this.getScrollParents(_reactDom.default.findDOMNode(this));\n\n    for (const node of parentNodes) {\n      // set on all scrollable parent nodes that show a scrollbar since SubMenu position can vary\n      node.setAttribute('uxpscrollbarhidden', opened);\n    }\n  }\n  /**\n   * Find all of the scrollable parents of a DOM node\n   */\n\n\n  getScrollParents(node) {\n    let nodes = [];\n\n    while (node.parentNode) {\n      var style = window.getComputedStyle(node); // Look for scrollable nodes, both real and fake.\n\n      if (/auto|scroll/.test(style.overflow + style.overflowY) || node.hasAttribute('data-scrollable')) {\n        nodes.push(node);\n      }\n\n      node = node.parentNode;\n    }\n\n    return nodes;\n  }\n\n}) || _class;\n\nexports.default = UxpSubMenu;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.modalManager = exports.Modal = exports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _Modal = _interopRequireDefault(require(\"react-overlays/lib/Modal\"));\n\nvar _events = require(\"../../utils/events\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _closest = _interopRequireDefault(require(\"dom-helpers/query/closest\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _ModalManager = _interopRequireDefault(require(\"./ModalManager\"));\n\nvar _OpenTransition = _interopRequireDefault(require(\"../../utils/OpenTransition\"));\n\nvar _PortalContainer = _interopRequireDefault(require(\"../../PortalContainer\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _class;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/underlay/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/underlay/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/underlay/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/underlay/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/underlay/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/underlay/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/underlay/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/underlay/multiStops/darkest.css\");\nconst MODAL_LIFECYCLE_METHODS = ['onBackdropClick', 'onEnter', 'onEntering', 'onEntered', 'onEscapeKeyDown', 'onExit', 'onExiting', 'onExited', 'onHide', 'onShow'];\nconst MANAGER_SINGLETON = new _ModalManager.default({\n  handleContainerOverflow: false\n});\nexports.modalManager = MANAGER_SINGLETON;\nlet MODAL_KEY = 1;\n\nclass ModalContainer {\n  static show(content, context, container) {\n    let key = MODAL_KEY++; // If container is not specified, look for the provider of context\n\n    if (!container && context) {\n      container = () => (0, _closest.default)(_reactDom.default.findDOMNode(context), '.react-spectrum-provider');\n    } else if (!container) {\n      container = () => document.querySelector('.react-spectrum-provider') || document.body;\n    }\n\n    let _content$props = content.props,\n        {\n      disableEscKey,\n      role,\n      onClose,\n      onHide,\n      onExited\n    } = _content$props,\n        modalProps = _objectWithoutProperties(_content$props, [\"disableEscKey\", \"role\", \"onClose\", \"onHide\", \"onExited\"]);\n\n    role = role && role.indexOf('dialog') !== -1 ? 'presentation' : 'dialog'; // filter out content.props that are not modal lifecycle methods\n\n    modalProps = MODAL_LIFECYCLE_METHODS.reduce((obj, key) => _objectSpread(_objectSpread({}, obj), {}, {\n      [key]: modalProps[key]\n    }), {});\n\n    let modal = /*#__PURE__*/_react.default.createElement(Modal, _extends({}, modalProps, {\n      container: container,\n      key: key,\n      keyboard: !disableEscKey,\n      role: role,\n      onClose: onClose,\n      onHide: (0, _events.chain)(this.hide.bind(this, key), onHide, onExited),\n      \"aria-modal\": role === 'dialog' || null\n    }), content);\n\n    _PortalContainer.default.add(modal, context);\n\n    return key;\n  }\n\n  static hide(key) {\n    _PortalContainer.default.remove({\n      key\n    });\n  }\n\n}\n\nexports.default = ModalContainer;\n\nlet Modal = (0, _autobindDecorator.default)(_class = class Modal extends _react.default.Component {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.state = {\n      show: true\n    }, _temp;\n  }\n\n  onClose() {\n    this.setState({\n      show: false\n    });\n\n    if (this.props.onClose) {\n      this.props.onClose();\n    }\n  }\n\n  onEntering(e) {\n    if (this.props.onEntering) {\n      this.props.onEntering(e);\n    } // Make sure that autoFocus actually moves focus to the Modal.\n\n\n    if (this.baseModal.lastFocus === document.activeElement) {\n      this.baseModal.autoFocus();\n    }\n  }\n\n  backdropMode() {\n    /*\n     * backdropClickable (bc)\n     *     bc | !bc\n     *     ---|------\n     *      t |static\n     * if fullscreenTakeover, then always false\n     */\n    const {\n      backdropClickable,\n      mode\n    } = this.props.children.props;\n    let backdrop = 'static';\n\n    if (backdropClickable) {\n      backdrop = true;\n    }\n\n    if (mode === 'fullscreenTakeover') {\n      backdrop = false;\n    }\n\n    return backdrop;\n  }\n\n  render() {\n    const backdrop = this.backdropMode();\n\n    const _this$props = this.props,\n          {\n      children,\n      onHide\n    } = _this$props,\n          modalProps = _objectWithoutProperties(_this$props, [\"children\", \"onHide\"]); // The z-index here should match the one in Overlay\n\n\n    return /*#__PURE__*/_react.default.createElement(_Modal.default, _extends({}, modalProps, {\n      style: {\n        zIndex: 100000,\n        position: 'relative'\n      },\n      show: this.state.show,\n      ref: baseModal => this.baseModal = baseModal,\n      onEntering: this.onEntering,\n      onExited: onHide,\n      onHide: this.onClose,\n      backdrop: backdrop,\n      manager: MANAGER_SINGLETON,\n      renderBackdrop: props => /*#__PURE__*/_react.default.createElement(Underlay, props),\n      transition: _OpenTransition.default,\n      backdropTransition: _OpenTransition.default\n    }), /*#__PURE__*/(0, _react.cloneElement)(children, {\n      onClose: this.onClose\n    }));\n  }\n\n}) || _class;\n\nexports.Modal = Modal;\n\nclass Underlay extends _react.default.Component {\n  render() {\n    let _this$props2 = this.props,\n        {\n      open\n    } = _this$props2,\n        props = _objectWithoutProperties(_this$props2, [\"open\"]);\n\n    return /*#__PURE__*/_react.default.createElement(\"div\", _extends({}, (0, _filterDOMProps.default)(props), {\n      className: (0, _classnames.default)('spectrum-Underlay', {\n        'is-open': open\n      })\n    }));\n  }\n\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _ModalManager = _interopRequireDefault(require(\"react-overlays/lib/ModalManager\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\n// needed for the modal manager class\nclass SpectrumModalManager extends _ModalManager.default {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.overflowMap = new Map(), this.superAdd = this.add, this.superRemove = this.remove, this.add = (modal, container, className, isOverlay) => {\n      this.superAdd(modal, container, className);\n      this.hideBodyOverflow(modal, isOverlay);\n    }, this.hideBodyOverflow = (modal, isOverlay) => {\n      let currentBodyOverflow = getComputedStyle(document.body).overflow; // if it's not an overlay, it's a modal and scrolling should be disabled (i know, it's weird to think about)\n\n      if (!isOverlay && currentBodyOverflow !== 'hidden') {\n        this.overflowMap.set(modal, currentBodyOverflow);\n        document.body.style.overflow = 'hidden';\n      }\n    }, this.remove = (modal, container, className) => {\n      this.superRemove(modal, container, className);\n      this.resetBodyOverflow(modal);\n    }, this.resetBodyOverflow = modal => {\n      if (this.overflowMap.has(modal)) {\n        document.body.style.overflow = this.overflowMap.get(modal);\n        this.overflowMap.delete(modal);\n      }\n    }, _temp;\n  }\n\n  addToModal(child, isOverlay = false) {\n    const hideSiblingNodes = this.hideSiblingNodes;\n    this.hideSiblingNodes = false;\n    this.add(child, document.body, null, isOverlay);\n    this.hideSiblingNodes = hideSiblingNodes;\n  }\n\n  removeFromModal(child) {\n    const hideSiblingNodes = this.hideSiblingNodes;\n    this.hideSiblingNodes = false;\n    this.remove(child);\n    this.hideSiblingNodes = hideSiblingNodes;\n  }\n\n}\n\nexports.default = SpectrumModalManager;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('OverlayTrigger', () => require('./js/UxpOverlayTrigger'), () => require('./js/OverlayTrigger'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _closest = _interopRequireDefault(require(\"dom-helpers/query/closest\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _OpenTransition = _interopRequireDefault(require(\"../../utils/OpenTransition\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"react-overlays/lib/utils/ownerDocument\"));\n\nvar _Portal = _interopRequireDefault(require(\"react-overlays/lib/Portal\"));\n\nvar _Position = _interopRequireDefault(require(\"./Position\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _RootCloseWrapper = _interopRequireDefault(require(\"react-overlays/lib/RootCloseWrapper\"));\n\nvar _class, _class2, _temp;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nconst VISIBLE_OVERLAYS = new Map();\nconst DEFAULT_BUCKET_KEY = 'all';\nconst TOOLTIP_BUCKET_KEY = 'tooltip';\n\nlet Overlay = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Overlay extends _react.default.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      exited: !this.props.show\n    };\n  }\n\n  get overlayBucketKey() {\n    const {\n      children\n    } = this.props;\n\n    if (children && children.props) {\n      return children.props.role === 'tooltip' ? TOOLTIP_BUCKET_KEY : DEFAULT_BUCKET_KEY;\n    }\n\n    return DEFAULT_BUCKET_KEY;\n  }\n\n  componentDidMount() {\n    this.setState({\n      targetNode: _reactDom.default.findDOMNode(this.props.target)\n    });\n    this.mounted = true;\n    this.addOverlay();\n  }\n\n  componentWillUnmount() {\n    this.mounted = false;\n    this.removeOverlay();\n  }\n\n  addOverlay(props = this.props) {\n    const {\n      overlayBucketKey\n    } = this;\n    let visibleOverlays = VISIBLE_OVERLAYS.get(overlayBucketKey);\n\n    if (!visibleOverlays) {\n      VISIBLE_OVERLAYS.set(overlayBucketKey, []);\n      visibleOverlays = VISIBLE_OVERLAYS.get(overlayBucketKey);\n    }\n\n    if (props.show && this.mounted && !visibleOverlays.includes(this)) {\n      visibleOverlays.map(overlay => {\n        // https://jira.corp.adobe.com/browse/UXP-19295\n        if (overlayBucketKey === TOOLTIP_BUCKET_KEY) {\n          overlay.hide();\n        }\n      });\n      visibleOverlays.push(this);\n    }\n  }\n\n  removeOverlay() {\n    // Remove overlay from the stack of visible overlays\n    const visibleOverlays = VISIBLE_OVERLAYS.get(this.overlayBucketKey);\n    let index = visibleOverlays.indexOf(this);\n\n    if (index >= 0) {\n      visibleOverlays.splice(index, 1);\n    }\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    if (nextProps.target && nextProps.target !== this.props.target) {\n      this.setState(_objectSpread(_objectSpread({}, this.state), {}, {\n        targetNode: _reactDom.default.findDOMNode(nextProps.target)\n      }));\n    }\n  }\n\n  onEntered(...args) {\n    this.setState(_objectSpread(_objectSpread({}, this.state), {}, {\n      exited: false\n    }));\n    this.addOverlay();\n\n    if (this.props.onEntered) {\n      this.props.onEntered(...args);\n    }\n  }\n\n  onExited(...args) {\n    this.setState(_objectSpread(_objectSpread({}, this.state), {}, {\n      exited: true\n    }));\n    this.removeOverlay();\n\n    if (this.props.onExited) {\n      this.props.onExited(...args);\n    }\n  }\n\n  getOverlayContainer(target) {\n    let immediateAvailableContainer = (0, _closest.default)(this.state.targetNode, '.react-spectrum-provider');\n    return this.props.container || immediateAvailableContainer;\n  }\n\n  hide(e) {\n    const visibleOverlays = VISIBLE_OVERLAYS.get(this.overlayBucketKey); // Only hide if this is the top overlay\n\n    if (visibleOverlays[visibleOverlays.length - 1] === this && this.props.onHide) {\n      this.props.onHide(e);\n    }\n  }\n\n  render() {\n    let {\n      containerPadding,\n      target,\n      container = this.getOverlayContainer(target),\n      placement,\n      offset,\n      crossOffset,\n      flip,\n      boundariesElement = () => (0, _ownerDocument.default)(this).body,\n      shouldUpdatePosition,\n      rootClose,\n      children,\n      show,\n      onExit,\n      onExiting,\n      onEnter,\n      onEntering\n    } = this.props; // Don't un-render the overlay while it's transitioning out.\n\n    const mountOverlay = show || !this.state.exited;\n\n    if (!mountOverlay) {\n      // Don't bother showing anything if we don't have to.\n      return null;\n    }\n\n    let child = children; // Position is be inner-most because it adds inline styles into the child,\n    // which the other wrappers don't forward correctly.\n\n    child = /*#__PURE__*/_react.default.createElement(_Position.default, {\n      container,\n      containerPadding,\n      target,\n      placement,\n      shouldUpdatePosition,\n      offset,\n      crossOffset,\n      flip,\n      boundariesElement,\n      autoComplete: true\n    }, child); // This animates the child node by injecting props, so it must precede\n    // anything that adds a wrapping div.\n\n    child = /*#__PURE__*/_react.default.createElement(_OpenTransition.default, {\n      in: show,\n      appear: true,\n      onExit: onExit,\n      onExiting: onExiting,\n      onExited: this.onExited,\n      onEnter: onEnter,\n      onEntering: onEntering,\n      onEntered: this.onEntered\n    }, child); // This goes after everything else because it adds a wrapping div.\n\n    if (rootClose) {\n      child = /*#__PURE__*/_react.default.createElement(_RootCloseWrapper.default, {\n        onRootClose: this.hide\n      }, child);\n    }\n\n    return /*#__PURE__*/_react.default.createElement(_Portal.default, {\n      container: container\n    }, child);\n  }\n\n}, _class2.defaultProps = {\n  placement: 'left'\n}, _temp)) || _class) || _class;\n\nexports.default = Overlay;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _events = require(\"../../utils/events\");\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _ScrollManager = require(\"../../ScrollManager\");\n\nvar _ModalContainer = require(\"../../ModalContainer/js/ModalContainer.js\");\n\nvar _Overlay = _interopRequireDefault(require(\"./Overlay\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"react-overlays/lib/utils/ownerDocument\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst triggerType = _propTypes.default.oneOf(['click', 'longClick', 'hover', 'focus']);\n\nconst MOUSE_BUTTONS = {\n  left: 0\n};\n/**\n * Check if value one is inside or equal to the of value\n *\n * @param {string} one\n * @param {string|array} of\n * @returns {boolean}\n */\n\nfunction isOneOf(one, of) {\n  if (Array.isArray(of)) {\n    return of.indexOf(one) >= 0;\n  }\n\n  return one === of;\n}\n/*\n * Class based on React-bootstrap\n * https://github.com/react-bootstrap/react-bootstrap/blob/master/src/OverlayTrigger.js\n */\n\n\nlet OverlayTrigger = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class OverlayTrigger extends _react.Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.onMouseDown = e => {\n      if (!this.props.disabled && e.button === MOUSE_BUTTONS.left) {\n        const target = e.currentTarget;\n        this.longPressTimeout = setTimeout(() => {\n          this.longPressTimeout = null; // In Safari, buttons are force blurred after the mouse down event since we don't call e.preventDefault()\n          // Changing Button to prevent default would be a breaking change. So, assume that we want to restore\n          // focus to the trigger element when the overlay closes.\n\n          this._lastFocus = target;\n          this.show(e);\n        }, 250);\n      }\n    };\n\n    this.onMouseUp = e => {\n      // Prevent focus from being forced back to the button on long click.\n      // It will already be inside the popover/menu.\n      if (!this.longPressTimeout) {\n        e.preventDefault();\n      }\n\n      if (!this.props.disabled && this.longPressTimeout && e.button === MOUSE_BUTTONS.left) {\n        if (this.props.onClick) {\n          this.props.onClick(e);\n        }\n\n        this.hide(e);\n        clearTimeout(this.longPressTimeout);\n        this.longPressTimeout = null;\n      }\n    };\n\n    this.windowMouseUp = e => {\n      if (e.button === MOUSE_BUTTONS.left && !_reactDom.default.findDOMNode(this).contains(e.target) && this.longPressTimeout) {\n        clearTimeout(this.longPressTimeout);\n        this.longPressTimeout = null;\n      }\n    };\n\n    this.overlayId = (0, _createId.default)();\n    this._mountNode = null;\n    this.longPressTimeout = null;\n    this._lastFocus = props.lastFocus;\n    this.boundariesElement = props.boundariesElement ? props.boundariesElement : () => (0, _ownerDocument.default)(this).body;\n    this._scrollParents = null;\n    this.state = {\n      show: props.show === undefined ? props.defaultShow : props.show\n    };\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    if ('lastFocus' in nextProps && nextProps.lastFocus !== this.props.lastFocus) {\n      this._lastFocus = nextProps.lastFocus;\n    }\n\n    if (nextProps.show !== this.props.show) {\n      nextProps.show ? this.handleDelayedShow() : this.handleDelayedHide();\n    }\n  }\n\n  componentDidMount() {\n    this._mountNode = document.createElement('div');\n    this.renderOverlay();\n    document.body.addEventListener('mouseUp', this.windowMouseUp);\n  }\n\n  componentDidUpdate(prevProps) {\n    const isDisabled = prevProps.disabled;\n    const shouldDisable = this.props.disabled;\n\n    if (!isDisabled && shouldDisable) {\n      this.hide();\n    }\n\n    this.renderOverlay();\n  }\n\n  componentWillUnmount() {\n    _ModalContainer.modalManager.removeFromModal(this._overlay);\n\n    _reactDom.default.unmountComponentAtNode(this._mountNode);\n\n    this._mountNode = null;\n    clearTimeout(this._hoverShowDelay);\n    clearTimeout(this._hoverHideDelay);\n    this.removeListenersFromScrollParents();\n    document.body.removeEventListener('mouseUp', this.windowMouseUp);\n  }\n\n  handleToggle(e) {\n    if (this.state.show) {\n      this.hide(e);\n    } else {\n      this.show(e);\n    }\n  }\n\n  handleDelayedShow(e) {\n    if (this._hoverHideDelay != null) {\n      clearTimeout(this._hoverHideDelay);\n      this._hoverHideDelay = null;\n      return;\n    }\n\n    if (this.state.show || this._hoverShowDelay != null) {\n      return;\n    }\n\n    const delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay;\n\n    if (!delay) {\n      this.show(e);\n      return;\n    }\n\n    this._hoverShowDelay = setTimeout(() => {\n      this._hoverShowDelay = null;\n      this.show(e);\n    }, delay);\n  }\n\n  handleDelayedHide(e) {\n    if (this._hoverShowDelay != null) {\n      clearTimeout(this._hoverShowDelay);\n      this._hoverShowDelay = null;\n      return;\n    }\n\n    if (!this.state.show || this._hoverHideDelay != null) {\n      return;\n    }\n\n    let delay = (!this.props.delayHide || this.props.delayHide === OverlayTrigger.defaultProps.delayHide) && this.props.delay != null ? this.props.delay : this.props.delayHide;\n\n    if (!delay) {\n      this.hide(e);\n      return;\n    }\n\n    this._hoverHideDelay = setTimeout(() => {\n      this._hoverHideDelay = null;\n      this.hide(e);\n    }, delay);\n  } // Simple implementation of mouseEnter and mouseLeave.\n  // React's built version is broken: https://github.com/facebook/react/issues/4251\n  // for cases when the trigger is disabled and mouseOut/Over can cause flicker\n  // moving from one child element to another.\n\n\n  handleMouseOverOut(handler, e) {\n    const target = e.currentTarget;\n    const related = e.relatedTarget || e.nativeEvent.toElement;\n\n    if (!related || related !== target && !target.contains(related)) {\n      handler(e);\n    }\n  }\n\n  show(e) {\n    if (!this.state.show && !this.props.disabled) {\n      this._lastFocus = this.rememberedFocus();\n      this.listenToScrollParents();\n      this.setState({\n        show: true\n      });\n\n      if (this.props.onShow) {\n        this.props.onShow(e);\n      }\n    }\n  } // if we're already listening, remove listeners and reapply\n\n\n  listenToScrollParents() {\n    if (this._scrollParents) {\n      this.removeListenersFromScrollParents();\n    }\n\n    this._scrollParents = (0, _ScrollManager.getScrollParents)(_reactDom.default.findDOMNode(this));\n\n    for (let node of this._scrollParents) {\n      node.addEventListener('scroll', this.hide, false);\n    }\n  } // if we have any listeners on parents, remove them\n\n\n  removeListenersFromScrollParents() {\n    if (this._scrollParents) {\n      for (let node of this._scrollParents) {\n        node.removeEventListener('scroll', this.hide, false);\n      }\n\n      this._scrollParents = null;\n    }\n  }\n\n  hide(e) {\n    this.removeListenersFromScrollParents();\n\n    if (this.state.show) {\n      this.setState({\n        show: false\n      });\n\n      if (this.props.onHide) {\n        this.props.onHide(e);\n      }\n    }\n  }\n\n  onKeyDown(e) {\n    if (e.key === 'ArrowDown' || e.key === 'Down') {\n      if (e.altKey || e.target === _reactDom.default.findDOMNode(this.dropdownRef.triggerRef)) {\n        e.preventDefault();\n        this.show(e);\n      }\n    }\n  }\n\n  onHide(e) {\n    // if we are in longClick mode and the onHide comes from the mouse up on the trigger, then ignore it\n    // it's actually an onHide coming from rootClose\n    if (isOneOf('longClick', this.props.trigger) && _reactDom.default.findDOMNode(this).contains(e.target)) {\n      return;\n    }\n\n    if (this.props.show === undefined) {\n      this.hide(e);\n    } else if (this.props.onHide) {\n      this.props.onHide(e);\n    }\n  }\n\n  onExited(e) {\n    this.restoreFocus(e);\n\n    if (this.props.onExited) {\n      this.props.onExited(e);\n    }\n  }\n\n  rememberedFocus() {\n    if (!this._lastFocus && document && document.activeElement !== document.body) {\n      this._lastFocus = document.activeElement;\n    }\n\n    return this._lastFocus;\n  }\n\n  restoreFocus(overlay) {\n    if (this._lastFocus && typeof this._lastFocus.focus === 'function') {\n      if (document) {\n        let node;\n\n        if (overlay) {\n          node = _reactDom.default.findDOMNode(overlay);\n        }\n\n        if (node && !node.contains(this._lastFocus) && (node === document.activeElement || node.contains(document.activeElement)) || document.activeElement === document.body) {\n          this._lastFocus.focus();\n        }\n      }\n\n      if (!this.props.lastFocus) {\n        this._lastFocus = null;\n      }\n    }\n  }\n\n  makeOverlay(overlay, props) {\n    let {\n      target = this\n    } = this.props;\n\n    let {\n      rootClose = true\n    } = props,\n        overlayProps = _objectWithoutProperties(props, [\"rootClose\"]);\n\n    delete overlayProps.crossOffset;\n    delete overlayProps.defaultShow;\n    delete overlayProps.flip;\n    delete overlayProps.boundariesElement;\n\n    let topOverlayProps = _objectSpread({\n      id: overlay.props.id || overlayProps.id\n    }, props);\n\n    if (!overlay.props.id) {\n      overlayProps.id = this.overlayId;\n    }\n\n    return /*#__PURE__*/_react.default.createElement(_Overlay.default, _extends({}, topOverlayProps, {\n      show: this.state.show,\n      onHide: this.onHide,\n      onExited: this.onExited,\n      target: target,\n      rootClose: rootClose\n    }), /*#__PURE__*/(0, _react.cloneElement)(overlay, overlayProps));\n  }\n\n  renderOverlay() {\n    // Only add overlay to modalManager when it is shown.\n    if (this._overlay.props.show) {\n      _ModalContainer.modalManager.addToModal(this._overlay, true);\n    }\n\n    _reactDom.default.unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode);\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      trigger,\n      show,\n      selected = this.state.show\n    } = _this$props,\n          props = _objectWithoutProperties(_this$props, [\"trigger\", \"show\", \"selected\"]);\n\n    delete props.delay;\n    delete props.delayShow;\n    delete props.delayHide;\n    delete props.defaultShow;\n    delete props.onShow;\n    delete props.onHide;\n\n    const [triggerChild, overlayChild] = _react.default.Children.toArray(this.props.children);\n\n    const triggerProps = {};\n    delete props.children; // When Tooltip is shown,\n\n    if (this.state.show && overlayChild.type && overlayChild.props.role === 'tooltip') {\n      // Tooltip element id should match trigger element's aria-describedby value,\n      if (!props.id) {\n        props.id = overlayChild.props.id || this.overlayId;\n      } // Tooltip should add aria-describedby attribute to trigger element.\n\n\n      triggerProps['aria-describedby'] = props.id;\n    } // Attach trigger events in case on un-controlled overlay\n\n\n    if (show === undefined) {\n      if (isOneOf('click', trigger) && !isOneOf('longClick', trigger)) {\n        triggerProps.onClick = (0, _events.chain)(this.props.onClick, this.handleToggle);\n      }\n\n      if (isOneOf('longClick', trigger)) {\n        delete props.onClick;\n        triggerProps.onMouseDown = this.onMouseDown;\n        triggerProps.onMouseUp = this.onMouseUp;\n        triggerProps.onKeyDown = this.onKeyDown;\n      }\n\n      if (isOneOf('hover', trigger)) {\n        triggerProps.onMouseOver = this.handleMouseOverOut.bind(this, this.handleDelayedShow);\n        triggerProps.onMouseOut = this.handleMouseOverOut.bind(this, this.handleDelayedHide);\n        props.onMouseOver = this.handleMouseOverOut.bind(this, this.handleDelayedShow);\n        props.onMouseOut = this.handleMouseOverOut.bind(this, this.handleDelayedHide); // overlay should not trap focus when trigger is 'hover'\n\n        props.trapFocus = false;\n      }\n\n      if (isOneOf('focus', trigger)) {\n        triggerProps.onFocus = (0, _events.chain)(triggerChild.props.onFocus, this.handleDelayedShow);\n        triggerProps.onBlur = (0, _events.chain)(triggerChild.props.onBlur, this.handleDelayedHide);\n        props.onFocus = this.handleDelayedShow;\n        props.onBlur = this.handleDelayedHide; // overlay should not trap focus when trigger is 'focus'\n\n        props.trapFocus = false;\n      }\n    }\n\n    triggerProps.selected = selected; // Remove previous overlay from modalManager\n\n    if (this._overlay) {\n      _ModalContainer.modalManager.removeFromModal(this._overlay);\n    }\n\n    this._overlay = this.makeOverlay(overlayChild, props);\n    return /*#__PURE__*/(0, _react.cloneElement)(triggerChild, triggerProps);\n  }\n\n}, _class2.propTypes = _objectSpread(_objectSpread({}, _Overlay.default.propTypes), {}, {\n  /**\n   * Specify which action or actions trigger Overlay visibility\n   */\n  trigger: _propTypes.default.oneOfType([triggerType, _propTypes.default.arrayOf(triggerType)]),\n\n  /**\n   * A millisecond delay amount to show and hide the Overlay once triggered\n   */\n  delay: _propTypes.default.number,\n\n  /**\n   * A millisecond delay amount before showing the Overlay once triggered.\n   */\n  delayShow: _propTypes.default.number,\n\n  /**\n   * A millisecond delay amount before hiding the Overlay once triggered.\n   */\n  delayHide: _propTypes.default.number,\n\n  /**\n   * The initial visibility state of the Overlay. For more nuanced visibility\n   * control, consider using the Overlay component directly.\n   */\n  defaultShow: _propTypes.default.bool,\n\n  /**\n   * Specify the position of the overlay relative to the trigger element.\n   */\n  placement: _propTypes.default.string,\n\n  /**\n   * An element or text to overlay next to the target.\n   */\n\n  /**\n   * Callback when the overlay trigger is blurred.\n   */\n  onBlur: _propTypes.default.func,\n\n  /**\n   * Callback when the overlay trigger is clicked.\n   */\n  onClick: _propTypes.default.func,\n\n  /**\n   * Callback when the overlay trigger receives focus.\n   */\n  onFocus: _propTypes.default.func,\n\n  /**\n   * Callback when the mouse leaves the overlay trigger.\n   */\n  onMouseOut: _propTypes.default.func,\n\n  /**\n   * Callback when the mouse is over the overlay trigger.\n   */\n  onMouseOver: _propTypes.default.func,\n\n  /**\n   * Callback when the overlay show is invoked, determined by the 'trigger' prop.\n   */\n  onShow: _propTypes.default.func,\n\n  /**\n   * Callback when the overlay is hidden.\n   */\n  onHide: _propTypes.default.func,\n\n  /**\n   * Will cause the overlay to show in a controlled state.\n   */\n  show: _propTypes.default.bool,\n\n  /**\n   * Overlay will be shifted by specified units in the placement's axis direction.\n   */\n  offset: _propTypes.default.number,\n\n  /**\n   * Overlay will be shifted by specified units in the placement's cross-axis direction.\n   */\n  crossOffset: _propTypes.default.number,\n\n  /**\n   * Whether overlay should be allowed to flip if it hits the boundary\n   */\n  flip: _propTypes.default.bool,\n\n  /**\n   * Grey's out the trigger and removes interaction.\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * By default, the body of the owning document. The overlay will do a hit test to see if it\n   * extends outside the boundaries and move it to a new position if it collides.\n   */\n  boundariesElement: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string]),\n\n  /**\n   * The last component or element to have focus before the overlay opened.\n   * If undefined, overlay will use the document.activeElement before it opened as the lastFocus.\n   * Set the lastFocus prop to override this default behavior.\n   */\n  lastFocus: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.object])\n}), _class2.defaultProps = {\n  defaultShow: false,\n  trigger: ['hover', 'focus'],\n  placement: 'left',\n  offset: 0,\n  crossOffset: 0,\n  flip: true,\n  disabled: false,\n  delayHide: 100\n}, _temp)) || _class) || _class;\n\nexports.default = OverlayTrigger;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _calculatePosition = _interopRequireDefault(require(\"./calculatePosition\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _getContainer = _interopRequireDefault(require(\"react-overlays/lib/utils/getContainer\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"react-overlays/lib/utils/ownerDocument\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet Position =\n/**\n * The Position component calculates the coordinates for its child, to position\n * it relative to a `target` component or node. Useful for creating callouts\n * and tooltips, the Position component injects a `style` props with `left` and\n * `top` values for positioning your component.\n *\n * It also injects \"arrow\" `left`, and `top` values for styling callout arrows\n * for giving your components a sense of directionality.\n */\n(0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Position extends _react.default.Component {\n  constructor(props, context) {\n    super(props, context);\n    this.state = {\n      positionLeft: 0,\n      positionTop: 0,\n      arrowOffsetLeft: null,\n      arrowOffsetTop: null,\n      placement: this.props.placement\n    };\n    this._needsFlush = false;\n    this._lastTarget = null;\n  }\n\n  componentDidMount() {\n    this.updatePosition(this.getTarget());\n    window.addEventListener('resize', this.maybeUpdatePosition, false);\n  }\n\n  UNSAFE_componentWillReceiveProps() {\n    this._needsFlush = true;\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this._needsFlush) {\n      this._needsFlush = false;\n      this.maybeUpdatePosition(this.props.placement !== prevProps.placement);\n    }\n  }\n\n  componentWillUnmount() {\n    window.removeEventListener('resize', this.maybeUpdatePosition, false);\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className\n    } = _this$props,\n          props = _objectWithoutProperties(_this$props, [\"children\", \"className\"]);\n\n    const {\n      positionLeft,\n      positionTop,\n      maxHeight,\n      arrowOffsetLeft,\n      arrowOffsetTop,\n      placement\n    } = this.state;\n    delete props.target;\n\n    const child = _react.default.Children.only(children);\n\n    return /*#__PURE__*/(0, _react.cloneElement)(child, _objectSpread(_objectSpread({}, (0, _filterDOMProps.default)(props)), {}, {\n      placement,\n      className: (0, _classnames.default)(className, child.props.className),\n      arrowStyle: {\n        left: arrowOffsetLeft,\n        top: arrowOffsetTop\n      },\n      style: _objectSpread(_objectSpread({}, child.props.style), {}, {\n        position: 'absolute',\n        zIndex: 100000,\n        // should match the z-index in ModalTrigger\n        left: positionLeft,\n        top: positionTop,\n        maxHeight: maxHeight\n      })\n    }));\n  }\n\n  getTarget() {\n    const target = this.props.target;\n    const targetElement = typeof target === 'function' ? target() : target;\n    return targetElement && _reactDom.default.findDOMNode(targetElement) || null;\n  }\n\n  maybeUpdatePosition(placementChanged) {\n    const target = this.getTarget();\n\n    if (!this.props.shouldUpdatePosition && target === this._lastTarget && !placementChanged) {\n      return;\n    }\n\n    this.updatePosition(target);\n  }\n\n  updatePosition(target) {\n    const {\n      placement,\n      containerPadding,\n      offset,\n      crossOffset,\n      flip,\n      boundariesElement\n    } = this.props;\n    this._lastTarget = target;\n\n    if (!target) {\n      this.setState({\n        positionLeft: 0,\n        positionTop: 0,\n        arrowOffsetLeft: null,\n        arrowOffsetTop: null\n      });\n      return;\n    }\n\n    const overlay = _reactDom.default.findDOMNode(this);\n\n    const container = (0, _getContainer.default)(this.props.container, (0, _ownerDocument.default)(this).body);\n    this.setState((0, _calculatePosition.default)(placement, overlay, target, container, containerPadding, flip, boundariesElement, offset, crossOffset));\n  }\n\n}, _class2.defaultProps = {\n  containerPadding: 10,\n  offset: 0,\n  crossOffset: 0\n}, _temp)) || _class) || _class;\n\nexports.default = Position;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _OpenTransition = _interopRequireDefault(require(\"../../utils/OpenTransition\"));\n\nvar _UxpOverlay = _interopRequireDefault(require(\"./UxpOverlay\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _RootCloseWrapper = _interopRequireDefault(require(\"react-overlays/lib/RootCloseWrapper\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n// The component is overriden to have a native platform flyout implementation for overlay\n// In Photoshop and Illustrator, the input widget comes at the top of non-native overlays, thus the requirement.\nclass UxpFlyoutOverlay extends _UxpOverlay.default {\n  render() {\n    // Fix unused vars\n    let _this$props = this.props,\n        {\n      rootClose,\n      children\n    } = _this$props,\n        props = _objectWithoutProperties(_this$props, [\"rootClose\", \"children\"]); // Don't un-render the overlay while it's transitioning out.\n\n\n    const mountOverlay = props.show || !this.state.exited;\n\n    if (!mountOverlay) {\n      // Don't bother showing anything if we don't have to.\n      return null;\n    }\n\n    let child = children; // This animates the child node by injecting props, so it must precede\n    // anything that adds a wrapping div.\n\n    let {\n      onExit,\n      onExiting,\n      onEnter,\n      onEntering\n    } = props;\n    child = /*#__PURE__*/_react.default.createElement(_OpenTransition.default, {\n      in: props.show,\n      appear: true,\n      onExit: onExit,\n      onExiting: onExiting,\n      onExited: this.onExited,\n      onEnter: onEnter,\n      onEntering: onEntering,\n      onEntered: this.onEntered\n    }, child); // This goes after everything else because it adds a wrapping div.\n\n    if (rootClose) {\n      child = /*#__PURE__*/_react.default.createElement(_RootCloseWrapper.default, {\n        onRootClose: this.hide\n      }, child);\n    }\n\n    return child;\n  }\n\n}\n\nexports.default = UxpFlyoutOverlay;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _OpenTransition = _interopRequireDefault(require(\"../../utils/OpenTransition\"));\n\nvar _Overlay = _interopRequireDefault(require(\"./Overlay\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"react-overlays/lib/utils/ownerDocument\"));\n\nvar _Portal = _interopRequireDefault(require(\"react-overlays/lib/Portal\"));\n\nvar _UxpPosition = _interopRequireDefault(require(\"./UxpPosition\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _RootCloseWrapper = _interopRequireDefault(require(\"react-overlays/lib/RootCloseWrapper\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nclass UxpOverlay extends _Overlay.default {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.keydown = e => {\n      // https://jira.corp.adobe.com/browse/UXP-10984\n      // This is a workaround for Ps not sending keyup events to UXP\n      // The hide callback in rootclose wrapper on keyup doesn't work because of the above limitation\n      // Escape Key\n      if (e.keyCode === 27) {\n        /**\n        * For stopPropagation on escape keydown, \n        * Workaround fix for UXP-19343\n        */\n        if (this.props.children.props.stopPropagationEsc) {\n          e.stopPropagation();\n        }\n\n        this.hide(e);\n      }\n    }, _temp;\n  }\n\n  render() {\n    let {\n      containerPadding,\n      target,\n      container = this.getOverlayContainer(target),\n      placement,\n      offset,\n      crossOffset,\n      flip,\n      boundariesElement = () => (0, _ownerDocument.default)(this).body,\n      shouldUpdatePosition,\n      rootClose,\n      children,\n      show,\n      onExit,\n      onExiting,\n      onEnter,\n      onEntering,\n      autoComplete\n    } = this.props; // Don't un-render the overlay while it's transitioning out.\n\n    const mountOverlay = show || !this.state.exited;\n\n    if (!mountOverlay) {\n      // Don't bother showing anything if we don't have to.\n      return null;\n    }\n\n    let child = children; // Position is be inner-most because it adds inline styles into the child,\n    // which the other wrappers don't forward correctly.\n\n    child = /*#__PURE__*/_react.default.createElement(_UxpPosition.default, {\n      container,\n      containerPadding,\n      target,\n      placement,\n      shouldUpdatePosition,\n      offset,\n      crossOffset,\n      flip,\n      boundariesElement,\n      autoComplete: autoComplete\n    }, child); // This animates the child node by injecting props, so it must precede\n    // anything that adds a wrapping div.\n\n    child = /*#__PURE__*/_react.default.createElement(_OpenTransition.default, {\n      in: show,\n      appear: true,\n      onExit: onExit,\n      onExiting: onExiting,\n      onExited: this.onExited,\n      onEnter: onEnter,\n      onEntering: onEntering,\n      onEntered: this.onEntered\n    }, child); // This goes after everything else because it adds a wrapping div.\n\n    if (rootClose) {\n      child = /*#__PURE__*/_react.default.createElement(_RootCloseWrapper.default, {\n        onRootClose: this.hide\n      }, child);\n    } // Fix: Add role here\n\n\n    child = /*#__PURE__*/_react.default.createElement(\"div\", {\n      onKeyDown: this.keydown\n    }, child);\n    return /*#__PURE__*/_react.default.createElement(_Portal.default, {\n      container: container\n    }, child);\n  }\n\n}\n\nexports.default = UxpOverlay;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _closest = _interopRequireDefault(require(\"dom-helpers/query/closest\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _UxpFlyoutOverlay = _interopRequireDefault(require(\"./UxpFlyoutOverlay\"));\n\nvar _ModalContainer = require(\"../../ModalContainer/js/ModalContainer.js\");\n\nvar _UxpOverlay = _interopRequireDefault(require(\"./UxpOverlay\"));\n\nvar _OverlayTrigger = _interopRequireDefault(require(\"./OverlayTrigger\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nrequire(\"../uxp-style/index.css\");\n\nvar _ScrollManager = require(\"../../ScrollManager\");\n\nvar _class;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet UxpOverlayTrigger = (0, _autobindDecorator.default)(_class = class UxpOverlayTrigger extends _OverlayTrigger.default {\n  constructor(props, context) {\n    super(props, context);\n    this.overlayId = (0, _createId.default)();\n    this._mountNode = null;\n    this.popup = null;\n    this.state = {\n      show: props.show === undefined ? props.defaultShow : props.show\n    };\n    this._scrollParents = new Map();\n    this.overlayChild = _react.default.Children.toArray(this.props.children)[1];\n    this.isFlyout = this.overlayChild ? this.overlayChild.props.flyoutMenu : false;\n  }\n\n  getFlyoutOverlayContainer() {\n    if (this._immediateFlyoutContainer) {\n      return this._immediateFlyoutContainer;\n    } else {\n      const closestContainer = (0, _closest.default)(_reactDom.default.findDOMNode(this), '.react-spectrum-provider');\n      return closestContainer || document.querySelector('.react-spectrum-provider') || document.body;\n    }\n  }\n\n  componentDidMount() {\n    this._mountNode = document.createElement('div');\n\n    if (this.isFlyout) {\n      this.popup = document.createElement('popup');\n      this.popup.className = 'uxp-flyout';\n    }\n\n    this.renderOverlay();\n    document.body.addEventListener('mouseUp', this.windowMouseUp);\n  }\n\n  show(e) {\n    this._immediateFlyoutContainer = this.getFlyoutOverlayContainer();\n\n    if (!this.state.show && !this.props.disabled) {\n      this._lastFocus = this.rememberedFocus();\n      this.listenToScrollParents();\n      this.setState({\n        show: true\n      });\n\n      if (this.isFlyout) {\n        this._immediateFlyoutContainer.appendChild(this.popup);\n\n        this.popup.addEventListener('close', this.hide);\n        this.popup.showFlyout(_reactDom.default.findDOMNode(this), {\n          placement: this.props.placement\n        });\n      }\n\n      if (this.props.onShow) {\n        this.props.onShow(e);\n      }\n    }\n  }\n\n  listenToScrollParents() {\n    this.removeListenersFromScrollParents();\n    var scrollParents = (0, _ScrollManager.getScrollParents)(_reactDom.default.findDOMNode(this));\n\n    for (let node of scrollParents) {\n      this._scrollParents.set(node, {\n        left: node.scrollLeft,\n        top: node.scrollTop\n      });\n\n      node.addEventListener('scroll', this.hide, false);\n    }\n  } // if we have any listeners on parents, remove them\n\n\n  removeListenersFromScrollParents() {\n    if (this._scrollParents.size !== 0) {\n      for (let node of this._scrollParents) {\n        node[0].removeEventListener('scroll', this.hide, false);\n      }\n    }\n  }\n\n  hide(e) {\n    if (e && e.type === 'scroll' && e.target) {\n      var scrollInfo = this._scrollParents.get(e.target); // https://jira.corp.adobe.com/browse/UXP-19352\n\n\n      if (e.target.scrollLeft === scrollInfo.left && e.target.scrollTop === scrollInfo.top) {\n        return;\n      }\n    }\n\n    this.removeListenersFromScrollParents();\n\n    if (this.state.show) {\n      this.setState({\n        show: false\n      });\n\n      if (this.isFlyout) {\n        this.popup.close();\n        this.popup.removeEventListener('close', this.hide);\n\n        this._immediateFlyoutContainer.removeChild(this.popup);\n      }\n\n      if (this.props.onHide) {\n        this.props.onHide(e);\n      }\n    }\n  }\n\n  componentWillUnmount() {\n    _ModalContainer.modalManager.removeFromModal(this._overlay);\n\n    _reactDom.default.unmountComponentAtNode(this._mountNode);\n\n    this._mountNode = null;\n    this._immediateFlyoutContainer = null;\n    clearTimeout(this._hoverShowDelay);\n    clearTimeout(this._hoverHideDelay);\n    this.removeListenersFromScrollParents();\n\n    this._scrollParents.clear();\n\n    document.body.removeEventListener('mouseUp', this.windowMouseUp);\n  }\n\n  renderOverlay() {\n    if (this._overlay.props.show) {\n      _ModalContainer.modalManager.addToModal(this._overlay, true);\n    }\n\n    if (this.isFlyout) {\n      // show native flyout when select component overlay is being shown\n      _reactDom.default.render(this._overlay, this.popup);\n    } else {\n      _reactDom.default.unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode);\n    }\n  }\n\n  makeOverlay(overlay, props) {\n    let {\n      target = this\n    } = this.props;\n\n    let {\n      rootClose = true\n    } = props,\n        overlayProps = _objectWithoutProperties(props, [\"rootClose\"]);\n\n    delete overlayProps.crossOffset;\n    delete overlayProps.defaultShow;\n    delete overlayProps.flip;\n\n    let topOverlayProps = _objectSpread({\n      id: overlay.props.id || overlayProps.id\n    }, props);\n\n    if (!overlay.props.id) {\n      overlayProps.id = this.overlayId;\n    }\n\n    return this.isFlyout ? /*#__PURE__*/_react.default.createElement(_UxpFlyoutOverlay.default, _extends({}, topOverlayProps, {\n      show: this.state.show,\n      onHide: this.hide,\n      rootClose: rootClose\n    }), /*#__PURE__*/(0, _react.cloneElement)(overlay, overlayProps)) : /*#__PURE__*/_react.default.createElement(_UxpOverlay.default, _extends({}, topOverlayProps, {\n      show: this.state.show,\n      onExited: this.onExited,\n      onHide: this.onHide,\n      target: target,\n      rootClose: rootClose\n    }), /*#__PURE__*/(0, _react.cloneElement)(overlay, overlayProps));\n  }\n\n}) || _class;\n\nexports.default = UxpOverlayTrigger;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _calculatePosition = _interopRequireDefault(require(\"./calculatePosition\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _getContainer = _interopRequireDefault(require(\"react-overlays/lib/utils/getContainer\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"react-overlays/lib/utils/ownerDocument\"));\n\nvar _Position = _interopRequireDefault(require(\"./Position\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _setOverlayOnProvider = _interopRequireDefault(require(\"../../utils/setOverlayOnProvider\"));\n\nvar _class;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet UxpPosition = (0, _autobindDecorator.default)(_class = class UxpPosition extends _Position.default {\n  /* https://jira.corp.adobe.com/browse/UXP-8669\n  Dropdown flickering occurs because UXP calculates client offset and size after the initial render, \n  unlike the browsers which do so before the initial render happens.\n  To avoid the flicker, we need to hide the dropdown button till the layout is rendered again.\n  This can be directly merged to react-spectrum if they agree to do that, because this will not impact them much. */\n  componentDidMount() {\n    if (this.props.autoComplete) {\n      this.updatePosition(this.getTarget(), 'visible');\n    } else {\n      this.updatePosition(this.getTarget(), 'hidden');\n    }\n\n    window.addEventListener('resize', this.maybeUpdatePosition, false);\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this._needsFlush) {\n      this._needsFlush = false;\n      this.maybeUpdatePosition(this.props.placement !== prevProps.placement, 'visible');\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      children,\n      className\n    } = _this$props,\n          props = _objectWithoutProperties(_this$props, [\"children\", \"className\"]);\n\n    const {\n      positionLeft,\n      positionTop,\n      // maxHeight, \n      arrowOffsetLeft,\n      arrowOffsetTop,\n      placement\n    } = this.state;\n    delete props.boundariesElement;\n    delete props.target;\n\n    const child = _react.default.Children.only(children);\n\n    return /*#__PURE__*/(0, _react.cloneElement)(child, _objectSpread(_objectSpread({}, (0, _filterDOMProps.default)(props)), {}, {\n      placement,\n      className: (0, _classnames.default)(className, child.props.className),\n      arrowStyle: {\n        left: arrowOffsetLeft,\n        top: arrowOffsetTop\n      },\n      ref: overlay => this.overlay = overlay,\n      style: _objectSpread(_objectSpread({}, child.props.style), {}, {\n        position: 'absolute',\n        zIndex: 100000,\n        // should match the z-index in ModalTrigger\n        left: positionLeft,\n        top: positionTop\n        /* maxHeight: maxHeight\n        JIRA BUG: https://jira.corp.adobe.com/browse/UXP-9371\n        The issue persists in UXP because UXP doesn't know the size of overlay and hence the endEdgeOffset, and so cannot flip the dropdown unless the layout is drawn once on the bottom \n        The workaround is to remove the incorrect maxHeight of the popover which is being calculated due to this.*/\n\n      })\n    }));\n  } // https://jira.corp.adobe.com/browse/UXP-10711\n  // resize event is not triggered when there is no change in size of the overlay\n  // hence, update the bounding rect manually since the clone element has the same reference as the tooltip component and set it on provider\n\n\n  updateOverlayBoundingRect() {\n    if (this.overlay) {\n      if (this.overlay.tooltipRef) {\n        const tooltipNode = _reactDom.default.findDOMNode(this.overlay.tooltipRef);\n\n        if (tooltipNode) {\n          let boundingRect = tooltipNode.getBoundingClientRect();\n          boundingRect.x = this.state.positionLeft;\n          boundingRect.y = this.state.positionTop;\n          (0, _setOverlayOnProvider.default)(this.overlay.tooltipRef, true, this.overlay.hide, boundingRect);\n        } else {\n          (0, _setOverlayOnProvider.default)(this.overlay.tooltipRef, true, this.overlay.hide);\n        }\n      }\n\n      if (this.overlay.popoverRef) {\n        // https://jira.corp.adobe.com/browse/CCPROJ-6320\n        // Adding similar fix for popover as tooltip.\n        const popoverNode = _reactDom.default.findDOMNode(this.overlay.popoverRef);\n\n        if (popoverNode) {\n          let boundingRect = popoverNode.getBoundingClientRect();\n          boundingRect.x = this.state.positionLeft;\n          boundingRect.y = this.state.positionTop;\n          (0, _setOverlayOnProvider.default)(popoverNode, true, this.overlay.hide, boundingRect);\n        }\n      }\n    }\n  }\n\n  maybeUpdatePosition(placementChanged, visibility) {\n    const target = this.getTarget();\n\n    if (!this.props.shouldUpdatePosition && target === this._lastTarget && !placementChanged) {\n      return;\n    }\n\n    this.updatePosition(target, visibility);\n  }\n\n  updatePosition(target, visibility) {\n    const {\n      placement,\n      containerPadding,\n      offset,\n      crossOffset,\n      flip,\n      boundariesElement\n    } = this.props;\n    this._lastTarget = target;\n\n    if (!target) {\n      this.setState({\n        positionLeft: 0,\n        positionTop: 0,\n        arrowOffsetLeft: null,\n        arrowOffsetTop: null\n      });\n      return;\n    }\n\n    const overlay = _reactDom.default.findDOMNode(this);\n    /* \n      JIRA BUG: https://jira.corp.adobe.com/browse/UXP-18863\n    */\n\n\n    if (!overlay) {\n      return;\n    }\n\n    overlay.style.visibility = visibility;\n    const container = (0, _getContainer.default)(this.props.container, (0, _ownerDocument.default)(this).body);\n    this.setState((0, _calculatePosition.default)(placement, overlay, target, container, containerPadding, flip, boundariesElement, offset, crossOffset));\n    /*\n    Related issue : maxHeight not set before initial rendering JIRA BUG: https://jira.corp.adobe.com/browse/UXP-9371\n    This adds and removes scrollbar to dropdown on overflow or on small window after first render\n    */\n\n    const overlayHeight = overlay.getBoundingClientRect().height;\n    const scrollHeight = overlay.scrollHeight;\n\n    if (overlayHeight && (this.state.maxHeight < overlayHeight || scrollHeight > overlayHeight && scrollHeight < this.state.maxHeight)) {\n      overlay.style.maxHeight = this.state.maxHeight;\n    }\n\n    if (this.overlay) {\n      this.updateOverlayBoundingRect();\n    }\n  }\n\n}) || _class;\n\nexports.default = UxpPosition;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.calculatePositionInternal = calculatePositionInternal;\nexports.default = calculatePosition;\n\nvar _style = _interopRequireDefault(require(\"dom-helpers/style\"));\n\nvar _offset = _interopRequireDefault(require(\"dom-helpers/query/offset\"));\n\nvar _position = _interopRequireDefault(require(\"dom-helpers/query/position\"));\n\nvar _scrollLeft = _interopRequireDefault(require(\"dom-helpers/query/scrollLeft\"));\n\nvar _scrollTop = _interopRequireDefault(require(\"dom-helpers/query/scrollTop\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"dom-helpers/ownerDocument\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nconst AXIS = {\n  top: 'top',\n  bottom: 'top',\n  left: 'left',\n  right: 'left',\n  center: 'left'\n};\nconst FLIPPED_DIRECTION = {\n  top: 'bottom',\n  bottom: 'top',\n  left: 'right',\n  right: 'left'\n};\nconst CROSS_AXIS = {\n  top: 'left',\n  left: 'top'\n};\nconst AXIS_SIZE = {\n  top: 'height',\n  left: 'width'\n};\nconst PARSED_PLACEMENT_CACHE = {};\n\nfunction getContainerDimensions(containerNode) {\n  let width,\n      height,\n      top = 0,\n      left = 0;\n  let scroll = {};\n\n  const containerDOMNode = _reactDom.default.findDOMNode(containerNode);\n\n  if (containerDOMNode.tagName === 'BODY') {\n    width = window.innerWidth || containerNode.clientWidth;\n    height = window.innerHeight || containerNode.clientHeight;\n    scroll.top = (0, _scrollTop.default)((0, _ownerDocument.default)(containerDOMNode).documentElement) || (0, _scrollTop.default)(containerDOMNode);\n    scroll.left = (0, _scrollLeft.default)((0, _ownerDocument.default)(containerDOMNode).documentElement) || (0, _scrollLeft.default)(containerDOMNode);\n  } else {\n    ({\n      width,\n      height,\n      top,\n      left\n    } = (0, _offset.default)(containerDOMNode));\n    scroll.top = (0, _scrollTop.default)(containerDOMNode);\n    scroll.left = (0, _scrollLeft.default)(containerDOMNode);\n  }\n\n  return {\n    width,\n    height,\n    scroll,\n    top,\n    left\n  };\n}\n\nfunction getDelta(axis, offset, size, containerDimensions, padding) {\n  const containerScroll = containerDimensions.scroll[axis];\n  const containerHeight = containerDimensions[AXIS_SIZE[axis]];\n  const startEdgeOffset = offset - padding - containerScroll;\n  const endEdgeOffset = offset + padding - containerScroll + size;\n\n  if (startEdgeOffset < 0) {\n    return -startEdgeOffset;\n  } else if (endEdgeOffset > containerHeight) {\n    return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);\n  } else {\n    return 0;\n  }\n}\n\nfunction shouldFlip(axis, offset, size, padding, placement, flipContainerDimensions, containerOffsetWithBoundary) {\n  const containerScroll = flipContainerDimensions.scroll[axis];\n  const containerHeight = flipContainerDimensions[AXIS_SIZE[axis]];\n  const startEdgeOffset = containerOffsetWithBoundary[axis] + offset - padding - containerScroll;\n  const endEdgeOffset = containerOffsetWithBoundary[axis] + offset + padding - containerScroll + size;\n\n  if (startEdgeOffset < 0 && (placement === 'top' || placement === 'left')) {\n    return true;\n  } else if (endEdgeOffset > containerHeight && (placement === 'bottom' || placement === 'right')) {\n    return true;\n  } else {\n    return false;\n  }\n}\n\nfunction getMargins(node) {\n  const style = window.getComputedStyle(node);\n  return {\n    top: parseInt(style.marginTop, 10) || 0,\n    bottom: parseInt(style.marginBottom, 10) || 0,\n    left: parseInt(style.marginLeft, 10) || 0,\n    right: parseInt(style.marginRight, 10) || 0\n  };\n}\n\nfunction parsePlacement(input) {\n  if (PARSED_PLACEMENT_CACHE[input]) {\n    return PARSED_PLACEMENT_CACHE[input];\n  }\n\n  let [placement, crossPlacement] = input.split(' ');\n  let axis = AXIS[placement] || 'right';\n  let crossAxis = CROSS_AXIS[axis];\n\n  if (!AXIS[crossPlacement]) {\n    crossPlacement = 'center';\n  }\n\n  let size = AXIS_SIZE[axis];\n  let crossSize = AXIS_SIZE[crossAxis];\n  PARSED_PLACEMENT_CACHE[input] = {\n    placement,\n    crossPlacement,\n    axis,\n    crossAxis,\n    size,\n    crossSize\n  };\n  return PARSED_PLACEMENT_CACHE[input];\n}\n\nfunction computePosition(childOffset, containerDimensions, overlaySize, placementInfo, offset, crossOffset) {\n  const {\n    placement,\n    crossPlacement,\n    axis,\n    crossAxis,\n    size,\n    crossSize\n  } = placementInfo;\n  let position = {};\n  position[crossAxis] = childOffset[crossAxis] + crossOffset;\n\n  if (crossPlacement === 'center') {\n    position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;\n  } else if (crossPlacement !== crossAxis) {\n    position[crossAxis] += childOffset[crossSize] - overlaySize[crossSize];\n  } // Ensure overlay sticks to target(ignore for overlays smaller than target)\n\n\n  if (childOffset[crossSize] < overlaySize[crossSize]) {\n    const positionForPositiveSideOverflow = Math.min(position[crossAxis], childOffset[crossAxis]);\n    position[crossAxis] = Math.max(positionForPositiveSideOverflow, childOffset[crossAxis] - overlaySize[crossSize] + childOffset[crossSize]);\n  }\n\n  if (placement === axis) {\n    position[axis] = childOffset[axis] - overlaySize[size] + offset;\n  } else {\n    position[axis] = childOffset[axis] + childOffset[size] + offset;\n  }\n\n  return position;\n}\n\nfunction calculatePositionInternal(placementInput, containerDimensions, childOffset, overlaySize, margins, padding, flip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset) {\n  let placementInfo = parsePlacement(placementInput);\n  const {\n    axis,\n    size,\n    crossAxis,\n    crossSize,\n    placement,\n    crossPlacement\n  } = placementInfo;\n  let position = computePosition(childOffset, containerDimensions, overlaySize, placementInfo, offset, crossOffset);\n  let normalizedOffset = offset; // First check if placement should be flipped\n\n  if (flip && shouldFlip(axis, position[axis], overlaySize[size], padding, placement, boundaryDimensions, containerOffsetWithBoundary)) {\n    const flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}`);\n    const {\n      axis,\n      size\n    } = flippedPlacementInfo;\n    const flippedPosition = computePosition(childOffset, containerDimensions, overlaySize, flippedPlacementInfo, -1 * offset, crossOffset); // Check if flipped placement has enough space otherwise flip is not possible\n\n    if (!shouldFlip(axis, flippedPosition[axis], overlaySize[size], padding, FLIPPED_DIRECTION[placement], boundaryDimensions, containerOffsetWithBoundary)) {\n      placementInfo = flippedPlacementInfo;\n      position = flippedPosition;\n      normalizedOffset = -1 * offset;\n    }\n  }\n\n  let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n  position[crossAxis] += delta;\n  let maxHeight = Math.max(0, boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top - containerOffsetWithBoundary.top - position.top - margins.top - margins.bottom - padding);\n  overlaySize.height = Math.min(overlaySize.height, maxHeight);\n  position = computePosition(childOffset, containerDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset);\n  delta = delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n  position[crossAxis] += delta;\n  const arrowPosition = {};\n  arrowPosition[crossAxis] = childOffset[crossSize] > overlaySize[crossSize] ? null : childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2;\n  return {\n    positionLeft: position.left,\n    positionTop: position.top,\n    maxHeight: maxHeight,\n    arrowOffsetLeft: arrowPosition.left,\n    arrowOffsetTop: arrowPosition.top,\n    placement: placementInfo.placement\n  };\n}\n\nfunction calculatePosition(placementInput, overlayNode, target, container, padding, flip, boundariesElement, offset, crossOffset) {\n  const isBodyContainer = container.tagName === 'BODY';\n  const childOffset = isBodyContainer ? (0, _offset.default)(target) : (0, _position.default)(target, container);\n\n  if (!isBodyContainer) {\n    childOffset.top += parseInt((0, _style.default)(target, 'marginTop'), 10) || 0;\n    childOffset.left += parseInt((0, _style.default)(target, 'marginLeft'), 10) || 0;\n  }\n\n  const overlaySize = (0, _offset.default)(overlayNode);\n  const margins = getMargins(overlayNode);\n  overlaySize.width += margins.left + margins.right;\n  overlaySize.height += margins.top + margins.bottom;\n  const containerDimensions = getContainerDimensions(container);\n  const boundaryContainer = boundariesElement === 'container' ? container : boundariesElement();\n  const boundaryDimensions = getContainerDimensions(boundaryContainer);\n  const containerOffsetWithBoundary = boundaryContainer.tagName === 'BODY' ? (0, _offset.default)(container) : (0, _position.default)(container, boundaryContainer);\n  return calculatePositionInternal(placementInput, containerDimensions, childOffset, overlaySize, margins, padding, flip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset);\n}","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Popover', () => require('./js/UxpPopover'), () => require('./js/Popover'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _DialogHeader = _interopRequireDefault(require(\"../../Dialog/js/DialogHeader\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _FocusManager = require(\"../../utils/FocusManager\");\n\nrequire(\"../style/index.css\");\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/popover/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/popover/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/popover/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/popover/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/popover/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/popover/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/popover/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/popover/multiStops/darkest.css\");\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/dialog/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/dialog/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/dialog/multiStops/darkest.css\");\n\nlet Popover = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Popover extends _react.Component {\n  constructor(props, context) {\n    super(props, context);\n    this.defaultId = (0, _createId.default)();\n  }\n\n  componentDidMount() {\n    if (this.props.trapFocus) {\n      this._trapFocusTimeout = requestAnimationFrame(() => {\n        if (this.popoverRef && !this.popoverRef.contains(document.activeElement)) {\n          this.popoverRef.focus();\n        }\n      });\n    }\n  }\n\n  componentWillUnmount() {\n    if (this._trapFocusTimeout) {\n      cancelAnimationFrame(this._trapFocusTimeout);\n    }\n  }\n\n  onFocus(e) {\n    if (this.props.onFocus) {\n      this.props.onFocus(e);\n    }\n\n    if (this.props.trapFocus && e.target === this.popoverRef && !this.popoverRef.contains(e.relatedTarget)) {\n      (0, _FocusManager.trapFocus)(this, e);\n    }\n  }\n\n  onKeyDown(e) {\n    if (this.props.onKeyDown) {\n      this.props.onKeyDown(e); // Do nothing if stopPropagation has been called on event after onKeyDown prop executes.\n\n      if (e.isPropagationStopped && e.isPropagationStopped()) {\n        return;\n      }\n    }\n\n    if (this.props.trapFocus) {\n      (0, _FocusManager.trapFocus)(this, e);\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      variant,\n      placement,\n      open,\n      title,\n      children,\n      className,\n      isDialog = true,\n      // private. for use only by Menu.\n      trapFocus,\n      tabIndex = null,\n      id = this.defaultId,\n      'aria-label': ariaLabel,\n      'aria-labelledby': ariaLabelledby,\n      'aria-describedby': ariaDescribedby\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"variant\", \"placement\", \"open\", \"title\", \"children\", \"className\", \"isDialog\", \"trapFocus\", \"tabIndex\", \"id\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\"]);\n\n    delete otherProps.target;\n    let content = isDialog ? /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-Dialog-content\",\n      role: \"presentation\",\n      id: `${id}-content`\n    }, children) : children;\n    return (\n      /*#__PURE__*/\n      // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n      _react.default.createElement(\"div\", _extends({\n        ref: p => this.popoverRef = p,\n        className: (0, _classnames.default)('spectrum-Popover', // 'react-spectrum-Popover', //animations not yet supported in UXP, causing the drop down to move\n        `spectrum-Popover--${placement.split(' ')[0]}`, {\n          'spectrum-Popover--withTip': isDialog,\n          'spectrum-Popover--dialog': isDialog,\n          [`spectrum-Dialog--${variant}`]: isDialog,\n          'is-open': open\n        }, className),\n        role: isDialog ? 'dialog' : 'presentation',\n        id: id,\n        \"aria-label\": ariaLabel,\n        \"aria-labelledby\": ariaLabelledby || (isDialog && title && !ariaLabel ? `${id}-heading` : null),\n        \"aria-describedby\": ariaDescribedby || (isDialog && title && children ? `${id}-content` : null),\n        \"data-testid\": \"popover\"\n      }, (0, _filterDOMProps.default)(otherProps), {\n        onFocus: this.onFocus,\n        onKeyDown: this.onKeyDown,\n        tabIndex: trapFocus && tabIndex === null ? 1 : tabIndex\n      }), isDialog && title && /*#__PURE__*/_react.default.createElement(_DialogHeader.default, {\n        id: `${id}-heading`,\n        title: title,\n        variant: variant\n      }), content, isDialog && this.renderTip())\n    );\n  }\n\n  renderTip() {\n    return /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-Popover-tip\",\n      style: this.props.arrowStyle,\n      \"aria-hidden\": \"true\",\n      \"data-testid\": \"tip\"\n    });\n  }\n\n}, _class2.propTypes = {\n  /**\n   * The variant will affect color and add an icon.\n   */\n  variant: _propTypes.default.oneOf(['default', 'error']),\n\n  /**\n   * The position of the popover. If used with overlay trigger and there isn't enough room\n   * for the tooltip in that position, it will make a limited attempt to find a new position.\n   */\n  placement: _propTypes.default.oneOf(['bottom', 'bottom left', 'bottom right', 'top', 'top left', 'top right', 'left', 'left top', 'left bottom', 'right', 'right top', 'right bottom']),\n\n  /**\n   * Whether the popover is opened.\n   */\n  open: _propTypes.default.bool,\n\n  /**\n   * The title of the popover.\n   */\n  title: _propTypes.default.node,\n\n  /**\n   * The css class name of the popover.\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Whether the focus should be trapped.\n   */\n  trapFocus: _propTypes.default.bool\n}, _class2.defaultProps = {\n  variant: 'default',\n  placement: 'bottom',\n  open: true,\n  trapFocus: true\n}, _temp)) || _class;\n\nexports.default = Popover;\nPopover.displayName = 'Popover';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _dna = _interopRequireDefault(require(\"../../utils/dna\"));\n\nvar _Popover = _interopRequireDefault(require(\"./Popover\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _setOverlayOnProvider = _interopRequireDefault(require(\"../../utils/setOverlayOnProvider\"));\n\nvar _UxpProvider = require(\"../../Provider/js/UxpProvider\");\n\nvar _class;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction getSizePathStyle(placement) {\n  const size = 10;\n  const width = size * 2;\n  const height = width;\n\n  if (placement.split(' ')[0] === 'right') {\n    return [width, height, `M ${size * 2} 0 l ${-size} ${size} l ${size} ${size}`, {\n      left: -width\n    }];\n  }\n\n  if (placement.split(' ')[0] === 'left') {\n    return [width, height, `M 0 0 l ${size} ${size} l ${-size} ${size}`, {\n      right: -width\n    }];\n  }\n\n  if (placement.split(' ')[0] === 'top') {\n    return [width, height, `M 0 0 l ${size} ${size} l ${size} ${-size}`, {\n      bottom: -height + 0.5\n    }];\n  }\n\n  if (placement.split(' ')[0] === 'bottom') {\n    return [width, height, `M 0 ${size * 2} l ${size} ${-size} l ${size} ${size}`, {\n      top: -height\n    }];\n  }\n}\n\nlet UxpPopover = (0, _autobindDecorator.default)(_class = class UxpPopover extends _Popover.default {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.setOverlayVisible = () => {\n      if (!this.props.flyoutMenu) {\n        (0, _setOverlayOnProvider.default)(this.popoverRef, true, this.hide);\n      }\n    }, this.setOverlayHidden = () => {\n      if (!this.props.flyoutMenu) {\n        (0, _setOverlayOnProvider.default)(this.popoverRef, false);\n      }\n    }, this.hide = () => {\n      if (this.popoverRef) {\n        this.popoverRef.style.display = 'none';\n      }\n    }, _temp;\n  }\n\n  componentDidMount() {\n    if (this.popoverRef) {\n      this.popoverRef.addEventListener('resize', this.setOverlayVisible);\n    }\n  }\n\n  componentWillUnmount() {\n    if (this.popoverRef) {\n      this.popoverRef.removeEventListener('resize', this.setOverlayVisible);\n    }\n\n    this.setOverlayHidden();\n  }\n\n  renderTip() {\n    const {\n      placement\n    } = this.props;\n    let [pathMetrics] = Array.of(getSizePathStyle(placement)); // Array.of used to remove error for uniterable return value\n\n    let [width, height, pathData, style] = pathMetrics;\n    return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({\n      scale,\n      theme\n    } = {}) => /*#__PURE__*/_react.default.createElement(\"svg\", {\n      className: \"spectrum-Popover-tip\",\n      style: _objectSpread({\n        width,\n        height,\n        border: 'none',\n        background: 'none',\n        fill: _dna.default.elements[theme][scale].popover.default.states.default['background-color'],\n        stroke: _dna.default.elements[theme][scale].popover.default.states.default['border-color']\n      }, style)\n    }, /*#__PURE__*/_react.default.createElement(\"path\", {\n      d: pathData\n    })));\n  }\n\n}) || _class;\n\nexports.default = UxpPopover;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('PortalContainer', () => require('./js/UxpPortalContainer'), () => require('./js/PortalContainer'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nlet children = {};\n/*\n * A global portal that lives in the document body which can be used to add\n * overlays like modals outside the normal React component tree.\n */\n\nclass PortalContainer {\n  /**\n   * Renders the child\n   * @param child component to be render\n   * @param context Parent with the context\n   */\n  static add(child, context) {\n    let node = children[child.key] || document.createElement('div');\n\n    if (!context) {\n      _reactDom.default.render(child, node);\n    } else {\n      _reactDom.default.unstable_renderSubtreeIntoContainer(context, child, node);\n    }\n\n    children[child.key] = node;\n  }\n  /**\n   * Remove child from the dom\n   * @param child\n   */\n\n\n  static remove(child) {\n    _reactDom.default.unmountComponentAtNode(children[child.key]);\n\n    delete children[child.key];\n  }\n  /**\n   * Remove all portals from the dom\n   */\n\n\n  static removeAll() {\n    for (let child in children) {\n      // skip loop if the property is from prototype\n      if (!children.hasOwnProperty(child)) {\n        continue;\n      }\n\n      _reactDom.default.unmountComponentAtNode(children[child]);\n\n      delete children[child];\n    }\n  }\n\n}\n\nexports.default = PortalContainer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _closest = _interopRequireDefault(require(\"dom-helpers/query/closest\"));\n\nvar _Provider = _interopRequireDefault(require(\"../../Provider\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2021 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nlet children = {};\n/*\n * A global portal that lives in the document body which can be used to add\n * overlays like modals outside the normal React component tree.\n */\n\nclass UxpPortalContainer {\n  /**\n   * Renders the child\n   * @param child component to be render\n   * @param context Parent with the context\n   */\n  static add(child, context) {\n    let node = children[child.key] || document.createElement('div');\n    children[child.key] = node;\n\n    if (!context) {\n      _reactDom.default.render(child, node);\n    } else {\n      // unstable_renderSubtreeIntoContainer api has an issue of passing provider\n      // This is a temporary fix to pass theme and scale\n      // Actual fix requires to use createPortal (UXP-17937)\n      let providerClass = (0, _closest.default)(_reactDom.default.findDOMNode(context), '.react-spectrum-provider').className;\n      let theme = 'light';\n      let scale = 'medium';\n      var provideArray = providerClass.split(' ');\n      provideArray.forEach(string => {\n        switch (string) {\n          case 'spectrum--light':\n            theme = 'light';\n            break;\n\n          case 'spectrum--lightest':\n            theme = 'lightest';\n            break;\n\n          case 'spectrum--dark':\n            theme = 'dark';\n            break;\n\n          case 'spectrum--darkest':\n            theme = 'darkest';\n            break;\n\n          case 'spectrum--medium':\n            scale = 'medium';\n            break;\n\n          case 'spectrum--large':\n            scale = 'large';\n            break;\n        }\n      });\n      child = /*#__PURE__*/_react.default.createElement(_Provider.default, {\n        theme: theme,\n        scale: scale\n      }, child);\n\n      _reactDom.default.unstable_renderSubtreeIntoContainer(context, child, node);\n    }\n  }\n  /**\n   * Remove child from the dom\n   * @param child\n   */\n\n\n  static remove(child) {\n    _reactDom.default.unmountComponentAtNode(children[child.key]);\n\n    delete children[child.key];\n  }\n  /**\n   * Remove all portals from the dom\n   */\n\n\n  static removeAll() {\n    for (let child in children) {\n      // skip loop if the property is from prototype\n      if (!children.hasOwnProperty(child)) {\n        continue;\n      }\n\n      _reactDom.default.unmountComponentAtNode(children[child]);\n\n      delete children[child];\n    }\n  }\n\n}\n\nexports.default = UxpPortalContainer;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Progress', () => require('./js/UxpProgress'), () => require('./js/Progress'), () => require('./js/SpUxpProgress'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Progress;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/barloader/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/barloader/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/barloader/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/barloader/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/barloader/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/barloader/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/barloader/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/barloader/multiStops/darkest.css\");\nconst SIZES = {\n  S: 'small',\n  M: 'medium'\n};\n\nfunction Progress(_ref) {\n  let {\n    value = 0,\n    // number between 0 - 100\n    size = 'M',\n    // 'S', 'M'\n    showPercent = false,\n    // Whether the label should be shown or not\n    variant,\n    // Either undef or 'overBackground', 'positive', 'warning', 'critical'\n    labelPosition = 'left',\n    // 'left', 'top', 'bottom'\n    isIndeterminate = false,\n    label,\n    className,\n    id = (0, _createId.default)(),\n    min = 0,\n    max = 100,\n    valueLabel\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"value\", \"size\", \"showPercent\", \"variant\", \"labelPosition\", \"isIndeterminate\", \"label\", \"className\", \"id\", \"min\", \"max\", \"valueLabel\"]);\n\n  let fillProps = {};\n  let ariaValueProps = {};\n  const sizeClassPart = SIZES[size];\n  value = Math.min(Math.max(+value, min), max);\n  let percentage = 100 * value / (max - min);\n  let labelId;\n  let ariaLabelledby = [];\n\n  if (otherProps['aria-labelledby']) {\n    ariaLabelledby.push(otherProps['aria-labelledby']);\n    delete otherProps['aria-labelledby'];\n  }\n\n  if (label) {\n    labelId = (0, _createId.default)() + '-label';\n    ariaLabelledby.push(labelId);\n  }\n\n  if (otherProps['aria-label']) {\n    ariaLabelledby.length > 0 && ariaLabelledby.push(id);\n  }\n\n  ariaLabelledby = ariaLabelledby.length ? ariaLabelledby.join(' ') : null; // only add width to bar fill if determinate\n\n  if (!isIndeterminate) {\n    fillProps = {\n      style: {\n        width: `${percentage}%`\n      }\n    };\n    ariaValueProps = {\n      'aria-valuemin': min,\n      'aria-valuemax': max,\n      'aria-valuenow': value,\n      'aria-valuetext': valueLabel ? valueLabel : `${Math.round(percentage * 10) / 10}%`\n    };\n  }\n\n  return /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n    className: (0, _classnames.default)('spectrum-BarLoader', `spectrum-BarLoader--${sizeClassPart}`, {\n      'spectrum-BarLoader--indeterminate': isIndeterminate,\n      'spectrum-BarLoader--sideLabel': labelPosition === 'left',\n      'spectrum-BarLoader--overBackground': variant === 'overBackground',\n      'is-positive': variant === 'positive',\n      'is-warning': variant === 'warning',\n      'is-critical': variant === 'critical'\n    }, className),\n    role: \"progressbar\"\n  }, ariaValueProps, {\n    \"aria-labelledby\": ariaLabelledby,\n    id: id\n  }, (0, _filterDOMProps.default)(otherProps)), label && /*#__PURE__*/_react.default.createElement(\"div\", {\n    className: \"spectrum-BarLoader-label\",\n    id: labelId\n  }, label), (showPercent || valueLabel) && /*#__PURE__*/_react.default.createElement(\"div\", {\n    className: \"spectrum-BarLoader-percentage\"\n  }, valueLabel ? valueLabel : `${Math.round(percentage)}%`), /*#__PURE__*/_react.default.createElement(\"div\", {\n    className: \"spectrum-BarLoader-track\"\n  }, /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n    className: \"spectrum-BarLoader-fill\"\n  }, fillProps))));\n}\n\nProgress.propTypes = {\n  /**\n  * Value between the min and max that specifies the progression of the progress bar.\n  * Calculated percentage is automatically clamped to 0-100.\n  */\n  value: _propTypes.default.number,\n\n  /**\n  * Minimum value for the progress bar. Defaults to 0.\n  */\n  min: _propTypes.default.number,\n\n  /**\n  * Maximum value for the progress bar. Defaults to 100.\n  */\n  max: _propTypes.default.number,\n\n  /**\n  * Size of the Progress component. Limited to small (S) or medium (M).\n  */\n  size: _propTypes.default.oneOf(['S', 'M']),\n\n  /**\n  * Whether to show a percentage for the progress bar's current value\n  */\n  showPercent: _propTypes.default.bool,\n\n  /**\n   * This is for custom value labels. Useful for more decimal places or currency, etc. It will display in place of the percent from 'showPercent'\n   */\n  valueLabel: _propTypes.default.string,\n\n  /**\n   * Boolean to determine if the Progress component should endlessly scroll (indeterminate)\n   */\n  isIndeterminate: _propTypes.default.bool,\n\n  /**\n  * What type of progress bar to show: 'positive' (green), 'warning' (orange), 'critical' (red)\n  */\n  variant: _propTypes.default.oneOf(['positive', 'warning', 'critical', 'overBackground']),\n\n  /**\n  * Determines the positioning of the provided label.\n  * Limited to 'left', 'top', or 'bottom'\n  */\n  labelPosition: _propTypes.default.oneOf(['left', 'top', 'bottom']),\n\n  /**\n  * Determines the label for the Progress component.\n  */\n  label: _propTypes.default.string\n};\nProgress.displayName = 'Progress';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _UxpProgress = _interopRequireDefault(require(\"./UxpProgress\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst SPUXP_SIZES = {\n  S: 'small',\n  M: 'large'\n};\nconst SPUXP_VARIANTS = {\n  overBackground: 'overBackground',\n  positive: 'positive',\n  warning: 'notice',\n  critical: 'negative'\n};\n\nclass SpUxpProgress extends _react.Component {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.renderSpElement = (progress, props) => {\n      const {\n        children\n      } = props;\n      let SpElement = progress ? 'sp-progressbar' : 'sp-meter';\n      return /*#__PURE__*/_react.default.createElement(SpElement, props, children);\n    }, _temp;\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      size = 'M',\n      // 'S', 'M'\n      showPercent = false,\n      // Whether the label should be shown or not\n      variant,\n      // Either undef or 'overBackground', 'positive', 'warning', 'critical'\n      labelPosition = 'left',\n      // 'left', 'top', 'bottom'\n      isIndeterminate = false,\n      label,\n      className,\n      id = (0, _createId.default)(),\n      min = 0,\n      max = 100,\n      valueLabel\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"size\", \"showPercent\", \"variant\", \"labelPosition\", \"isIndeterminate\", \"label\", \"className\", \"id\", \"min\", \"max\", \"valueLabel\"]); // Spectrum UXP progressbar and meter don't support indeterminate variant.\n    // Use existing RS2 progress when indeterminate\n\n\n    if (isIndeterminate) {\n      return /*#__PURE__*/_react.default.createElement(_UxpProgress.default, this.props);\n    }\n\n    let {\n      value = 0\n    } = this.props; // number between 0 - 100\n\n    value = Math.min(Math.max(+value, min), max);\n    let percentage = 100 * value / (max - min);\n    let spUxpVariant = variant === undefined ? 'default' : SPUXP_VARIANTS[variant]; // Use progressbar for default and overbackground, meter for others\n\n    let useSpProgress = spUxpVariant === 'default' || spUxpVariant === 'overBackground';\n\n    let spElementProps = _objectSpread({\n      'id': id,\n      'size': SPUXP_SIZES[size],\n      'value': value,\n      'min': min,\n      // Only for sp-meter, ignored for sp-progressbar\n      'max': max,\n      'variant': spUxpVariant,\n      // Explicitly set to false by default because sp-progressbar and sp-meter use true as default.\n      'show-value': 'false'\n    }, otherProps);\n\n    if (labelPosition === 'top' && (showPercent || valueLabel)) {\n      spElementProps['show-value'] = 'true';\n\n      if (valueLabel) {\n        spElementProps['value-label'] = valueLabel;\n      }\n    } // If labelPosition is left and any label is present, compose using sp-label (side variant) and sp-progressbar/meter.\n    // Composition is done because sp-progressbar/meter don't support side variant out of the box.\n\n\n    if (labelPosition === 'left' && (label || showPercent || valueLabel)) {\n      let spLabelVariant = spUxpVariant !== 'overBackground' ? 'side' : 'side-overBackground';\n      return /*#__PURE__*/_react.default.createElement(\"div\", {\n        style: {\n          display: 'inline-flex',\n          alignItems: 'center'\n        },\n        className: className\n      }, label && /*#__PURE__*/_react.default.createElement(\"sp-label\", {\n        variant: spLabelVariant\n      }, label), this.renderSpElement(useSpProgress, spElementProps), (showPercent || valueLabel) && /*#__PURE__*/_react.default.createElement(\"sp-label\", {\n        variant: spLabelVariant,\n        \"value-label\": true\n      }, valueLabel ? valueLabel : `${Math.round(percentage)}%`));\n    } else {\n      // For no labels or top labelPosition, use sp-progressbar/meter out of the box\n      spElementProps['class'] = className;\n\n      if (label) {\n        spElementProps.children = /*#__PURE__*/_react.default.createElement(\"sp-label\", {\n          slot: \"label\"\n        }, label);\n      }\n\n      return this.renderSpElement(useSpProgress, spElementProps);\n    }\n  }\n\n}\n\nexports.default = SpUxpProgress;\nSpUxpProgress.propTypes = {\n  /**\n   * Value between the min and max that specifies the progression of the progress bar.\n   * Calculated percentage is automatically clamped to 0-100.\n   */\n  value: _propTypes.default.number,\n\n  /**\n   * Minimum value for the progress bar. Defaults to 0.\n   */\n  min: _propTypes.default.number,\n\n  /**\n   * Maximum value for the progress bar. Defaults to 100.\n   */\n  max: _propTypes.default.number,\n\n  /**\n   * Size of the Progress component. Limited to small (S) or medium (M).\n   */\n  size: _propTypes.default.oneOf(['S', 'M']),\n\n  /**\n   * Whether to show a percentage for the progress bar's current value\n   */\n  showPercent: _propTypes.default.bool,\n\n  /**\n   * This is for custom value labels. Useful for more decimal places or currency, etc. It will display in place of the percent from 'showPercent'\n   */\n  valueLabel: _propTypes.default.string,\n\n  /**\n   * Boolean to determine if the Progress component should endlessly scroll (indeterminate)\n   */\n  isIndeterminate: _propTypes.default.bool,\n\n  /**\n   * What type of progress bar to show: 'positive' (green), 'warning' (orange), 'critical' (red)\n   */\n  variant: _propTypes.default.oneOf(['positive', 'warning', 'critical', 'overBackground']),\n\n  /**\n   * Determines the positioning of the provided label.\n   * Limited to 'left', 'top', or 'bottom'\n   */\n  labelPosition: _propTypes.default.oneOf(['left', 'top', 'bottom']),\n\n  /**\n   * Determines the label for the Progress component.\n   */\n  label: _propTypes.default.string\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/barloader/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/barloader/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/barloader/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/barloader/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/barloader/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/barloader/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/barloader/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/barloader/multiStops/darkest.css\");\nconst SIZES = {\n  S: 'small',\n  M: 'medium'\n};\n\nlet UxpProgress = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class UxpProgress extends _react.Component {\n  constructor(props) {\n    super(props);\n\n    this.initProperties = () => {\n      this.trackRef = /*#__PURE__*/(0, _react.createRef)();\n      this.fillRef = /*#__PURE__*/(0, _react.createRef)();\n      this.fillElement = null;\n      this.trackWidth = null;\n      this.fillWidth = null;\n      this.newPosition = null;\n      this.animId = null;\n      this.progress = null;\n      this.timeElapsed = null;\n      this.startTime = null;\n    };\n\n    this.removeAnimation = () => {\n      if (this.animId) {\n        this.fillElement = this.fillRef.current;\n        cancelAnimationFrame(this.animId);\n        this.fillElement.style.transform = 'none';\n        this.animId = null;\n      }\n    };\n\n    this.animate = () => {\n      this.animId = requestAnimationFrame(this.rAFCallback);\n    };\n\n    this.rAFCallback = timestamp => {\n      if (this.props.isIndeterminate) {\n        this.fillElement = this.fillRef.current;\n        this.trackWidth = this.trackRef.current.clientWidth;\n        this.fillWidth = this.fillElement.clientWidth;\n        this.startTime = this.startTime || timestamp;\n        this.timeElapsed = timestamp - this.startTime;\n        this.progress = this.timeElapsed / 1000; // ms to s\n\n        this.newPosition = this.progress * 120; // 120 fps\n        // reset position and startTime to repeat the movement\n\n        if (this.newPosition >= this.trackWidth + this.fillWidth) {\n          this.newPosition = 0;\n          this.startTime = null;\n        }\n\n        this.fillElement.style.transform = 'translateX(' + this.newPosition + 'px)';\n        this.animId = requestAnimationFrame(this.rAFCallback);\n      }\n    };\n\n    this.initProperties();\n  }\n\n  componentDidMount() {\n    // call loop animation if indeterminate is true\n    if (this.props.isIndeterminate) {\n      this.animate();\n    }\n  }\n\n  componentDidUpdate() {\n    // cancelAnimationFrame and remove transform if props change & indeterminate is not true \n    if (!this.props.isIndeterminate) {\n      this.removeAnimation();\n    } // if props change and indeterminate is true\n\n\n    if (this.props.isIndeterminate && !this.animId) {\n      this.animate();\n    }\n  }\n\n  componentWillUnmount() {\n    // clear animation and related properties on unmount\n    this.removeAnimation();\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      size = 'M',\n      // 'S', 'M'\n      showPercent = false,\n      // Whether the label should be shown or not\n      variant,\n      // Either undef or 'overBackground', 'positive', 'warning', 'critical'\n      labelPosition = 'left',\n      // 'left', 'top', 'bottom'\n      isIndeterminate = false,\n      label,\n      className,\n      id = (0, _createId.default)(),\n      min = 0,\n      max = 100,\n      valueLabel\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"size\", \"showPercent\", \"variant\", \"labelPosition\", \"isIndeterminate\", \"label\", \"className\", \"id\", \"min\", \"max\", \"valueLabel\"]);\n\n    let {\n      value = 0\n    } = this.props; // number between 0 - 100\n\n    let fillProps = {};\n    let ariaValueProps = {};\n    const sizeClassPart = SIZES[size];\n    value = Math.min(Math.max(+value, min), max);\n    let percentage = 100 * value / (max - min);\n    let labelId;\n    let ariaLabelledby = [];\n\n    if (otherProps['aria-labelledby']) {\n      ariaLabelledby.push(otherProps['aria-labelledby']);\n      delete otherProps['aria-labelledby'];\n    }\n\n    if (label) {\n      labelId = (0, _createId.default)() + '-label';\n      ariaLabelledby.push(labelId);\n    }\n\n    if (otherProps['aria-label']) {\n      ariaLabelledby.length > 0 && ariaLabelledby.push(id);\n    }\n\n    ariaLabelledby = ariaLabelledby.length ? ariaLabelledby.join(' ') : null; // only add width to bar fill if determinate\n\n    if (!isIndeterminate) {\n      fillProps = {\n        style: {\n          width: `${percentage}%`\n        }\n      };\n      ariaValueProps = {\n        'aria-valuemin': min,\n        'aria-valuemax': max,\n        'aria-valuenow': value,\n        'aria-valuetext': valueLabel ? valueLabel : `${Math.round(percentage * 10) / 10}%`\n      };\n    }\n\n    return /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n      className: (0, _classnames.default)('spectrum-BarLoader', `spectrum-BarLoader--${sizeClassPart}`, {\n        'spectrum-BarLoader--indeterminate': isIndeterminate,\n        'spectrum-BarLoader--sideLabel': labelPosition === 'left',\n        'spectrum-BarLoader--overBackground': variant === 'overBackground',\n        'is-positive': variant === 'positive',\n        'is-warning': variant === 'warning',\n        'is-critical': variant === 'critical'\n      }, className),\n      role: \"progressbar\"\n    }, ariaValueProps, {\n      \"aria-labelledby\": ariaLabelledby,\n      id: id\n    }, (0, _filterDOMProps.default)(otherProps)), label && /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-BarLoader-label\",\n      id: labelId\n    }, label), (showPercent || valueLabel) && /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-BarLoader-percentage\"\n    }, valueLabel ? valueLabel : `${Math.round(percentage)}%`), /*#__PURE__*/_react.default.createElement(\"div\", {\n      ref: this.trackRef,\n      className: \"spectrum-BarLoader-track\"\n    }, /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n      ref: this.fillRef,\n      className: \"spectrum-BarLoader-fill\"\n    }, fillProps))));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * Value between the min and max that specifies the progression of the progress bar.\n   * Calculated percentage is automatically clamped to 0-100.\n   */\n  value: _propTypes.default.number,\n\n  /**\n   * Minimum value for the progress bar. Defaults to 0.\n   */\n  min: _propTypes.default.number,\n\n  /**\n   * Maximum value for the progress bar. Defaults to 100.\n   */\n  max: _propTypes.default.number,\n\n  /**\n   * Size of the Progress component. Limited to small (S) or medium (M).\n   */\n  size: _propTypes.default.oneOf(['S', 'M']),\n\n  /**\n   * Whether to show a percentage for the progress bar's current value\n   */\n  showPercent: _propTypes.default.bool,\n\n  /**\n   * This is for custom value labels. Useful for more decimal places or currency, etc. It will display in place of the percent from 'showPercent'\n   */\n  valueLabel: _propTypes.default.string,\n\n  /**\n   * Boolean to determine if the Progress component should endlessly scroll (indeterminate)\n   */\n  isIndeterminate: _propTypes.default.bool,\n\n  /**\n   * What type of progress bar to show: 'positive' (green), 'warning' (orange), 'critical' (red)\n   */\n  variant: _propTypes.default.oneOf(['positive', 'warning', 'critical', 'overBackground']),\n\n  /**\n   * Determines the positioning of the provided label.\n   * Limited to 'left', 'top', or 'bottom'\n   */\n  labelPosition: _propTypes.default.oneOf(['left', 'top', 'bottom']),\n\n  /**\n   * Determines the label for the Progress component.\n   */\n  label: _propTypes.default.string\n}, _temp)) || _class;\n\nexports.default = UxpProgress;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Provider', () => require('./js/UxpProvider'), () => require('./js/Provider'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _configureTypekit = _interopRequireDefault(require(\"../../utils/configureTypekit\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _intl = require(\"../../utils/intl\");\n\nvar _state = require(\"../../Toast/js/state\");\n\nrequire(\"../../focus-ring-polyfill\");\n\nrequire(\"../style/index.css\");\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/page/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/page/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/page/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/page/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/page/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/page/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/page/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/page/multiStops/darkest.css\");\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"../../spectrum-css-overrides/typography/index.css\");\n\n  require(\"../../spectrum-css-overrides/typography/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"../../spectrum-css-overrides/typography/index-lg.css\");\n} else {\n  require(\"../../spectrum-css-overrides/typography/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"../../spectrum-css-overrides/typography/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"../../spectrum-css-overrides/typography/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"../../spectrum-css-overrides/typography/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"../../spectrum-css-overrides/typography/multiStops/darkest.css\");\n\nlet Provider = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class Provider extends _react.Component {\n  // Expose the current theme etc. on the context for children to read if needed.\n  constructor(props) {\n    super(props);\n\n    if (props.locale) {\n      (0, _intl.setLocale)(props.locale);\n    }\n\n    this.configureTypekit();\n  }\n\n  configureTypekit() {\n    if (process.browser) {\n      (0, _configureTypekit.default)(this.props.typekitId);\n    }\n\n    if (this.props.toastPlacement) {\n      (0, _state.setToastPlacement)(this.props.toastPlacement);\n    }\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    if ('locale' in nextProps) {\n      (0, _intl.setLocale)(nextProps.locale);\n    }\n\n    if (nextProps.toastPlacement) {\n      (0, _state.setToastPlacement)(nextProps.toastPlacement);\n    }\n  }\n\n  getChildContext() {\n    return {\n      theme: this.props.theme,\n      scale: this.props.scale,\n      locale: this.props.locale\n    };\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      theme,\n      className,\n      children,\n      scale\n    } = _this$props,\n        props = _objectWithoutProperties(_this$props, [\"theme\", \"className\", \"children\", \"scale\"]);\n\n    return /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n      className: (0, _classnames.default)(className, 'react-spectrum-provider', 'spectrum', `spectrum--${theme}`, `spectrum--${scale}`)\n    }, (0, _filterDOMProps.default)(props)), children);\n  }\n\n}, _class2.propTypes = {\n  /**\n   * Theme.\n   */\n  theme: _propTypes.default.oneOf(['light', 'lightest', 'dark', 'darkest']),\n\n  /**\n   * Scale.\n   */\n  scale: _propTypes.default.oneOf(['medium', 'large']),\n\n  /**\n   * The placement of the toasts. By default position is top- shorthand for \"top center\".\n   */\n  toastPlacement: _propTypes.default.oneOf(['top', 'top left', 'top center', 'top right', 'bottom', 'bottom left', 'bottom center', 'bottom right']),\n\n  /**\n   * Type kit ID. This is required and products must get their own id's.\n   * https://typekit.com/account/kits\n   * There is a default provided, but it's only intended for prototyping work.\n   */\n  typekitId: _propTypes.default.string,\n\n  /**\n   * Locale, takes format primary-region ex. en-US, cs-CZ\n   */\n  locale: _propTypes.default.string,\n\n  /**\n   * CSS class name.\n   */\n  className: _propTypes.default.string\n}, _class2.defaultProps = {\n  theme: 'light',\n  scale: 'medium',\n  typekitId: 'ruf7eed'\n}, _class2.childContextTypes = {\n  theme: _propTypes.default.oneOf(['light', 'lightest', 'dark', 'darkest']),\n  scale: _propTypes.default.oneOf(['medium', 'large']),\n  locale: _propTypes.default.string\n}, _temp)) || _class;\n\nexports.default = Provider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.SpectrumContext = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _hostStyleConfig = _interopRequireDefault(require(\"../../utils/hostStyleConfig\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"react-overlays/lib/utils/ownerDocument\"));\n\nvar _Provider = _interopRequireDefault(require(\"./Provider\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"../../spectrum-css-overrides/typography/index.css\");\n\n  require(\"../../spectrum-css-overrides/typography/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"../../spectrum-css-overrides/typography/index-lg.css\");\n} else {\n  require(\"../../spectrum-css-overrides/typography/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"../../spectrum-css-overrides/typography/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"../../spectrum-css-overrides/typography/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"../../spectrum-css-overrides/typography/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"../../spectrum-css-overrides/typography/multiStops/darkest.css\");\n\nconst SpectrumContext = /*#__PURE__*/_react.default.createContext({\n  theme: 'light',\n  scale: 'medium',\n  productId: 'default',\n  boundariesElement: () => (0, _ownerDocument.default)(void 0).body,\n  disableNativeControls: false,\n  overlay: null\n});\n\nexports.SpectrumContext = SpectrumContext;\n\nclass UxpProvider extends _Provider.default {\n  constructor(props) {\n    super(props);\n    this.state = {\n      overlay: {\n        overlayRef: null,\n        data: {\n          visible: false,\n          callback: undefined,\n          boundingRect: null\n        }\n      }\n    };\n  }\n\n  setOverlay(overlayRef, data) {\n    this.setState({\n      overlay: {\n        overlayRef,\n        data\n      }\n    });\n  }\n\n  configureTypekit() {// Do nothing for Uxp - skip loading typekit for UXP\n  }\n\n  componentDidMount() {\n    // use this prop to use any host specified theme in your extension, by default no host styling is applied\n    if (this.props.useHostThemes) {\n      (0, _hostStyleConfig.default)();\n    }\n\n    this.providerRef.setAttribute('setOverlay', this.setOverlay.bind(this));\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      theme = 'light',\n      scale = 'medium',\n      productId = '',\n      disableNativeControls,\n      boundariesElement,\n      className,\n      style: otherStyles = {},\n      children,\n      locale\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"theme\", \"scale\", \"productId\", \"disableNativeControls\", \"boundariesElement\", \"className\", \"style\", \"children\", \"locale\"]);\n\n    const {\n      overlay\n    } = this.state;\n    return /*#__PURE__*/_react.default.createElement(SpectrumContext.Provider, {\n      value: {\n        theme,\n        scale,\n        productId,\n        boundariesElement,\n        disableNativeControls,\n        overlay\n      }\n    }, /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n      // Truncate locales like zh-CN, zh-TW to zh to match with the CSS selector.\n      lang: locale == null ? 'en' : locale.substring(0, 2),\n      ref: r => this.providerRef = r\n    }, (0, _filterDOMProps.default)(otherProps), {\n      style: Object.assign({}, otherStyles),\n      className: (0, _classnames.default)('react-spectrum-provider', `spectrum--${theme}`, className, `spectrum--${scale}`, 'spectrum', 'spectrum--override')\n    }), typeof children !== 'string' && children));\n  }\n\n}\n\nexports.default = UxpProvider;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Radio', () => require('./js/Radio'), () => require('./js/Radio'), () => require('./js/SpUxpRadio'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Radio;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _MaybeUxpSwitchBase = _interopRequireDefault(require(\"../../Switch/js/MaybeUxpSwitchBase\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/radio/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/radio/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/radio/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/radio/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/radio/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/radio/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/radio/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/radio/multiStops/darkest.css\");\n\nfunction Radio(_ref) {\n  let {\n    className,\n    labelBelow,\n    quiet\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"className\", \"labelBelow\", \"quiet\"]);\n\n  return /*#__PURE__*/_react.default.createElement(_MaybeUxpSwitchBase.default, _extends({\n    inputType: \"radio\",\n    className: (0, _classnames.default)('spectrum-Radio', {\n      'spectrum-Radio--labelBelow': labelBelow,\n      'spectrum-Radio--quiet': quiet\n    }, className),\n    inputClassName: \"spectrum-Radio-input\",\n    markClassName: \"spectrum-Radio-button\",\n    labelClassName: \"spectrum-Radio-label\"\n  }, otherProps));\n}\n\nRadio.displayName = 'Radio';\nRadio.propTypes = {\n  /**\n   * Whether the radio should start off checked (controlled state)\n   */\n  checked: _propTypes.default.bool,\n\n  /**\n   * Class given to radio\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Whether the radio should be checked on mount\n   */\n  defaultChecked: _propTypes.default.bool,\n\n  /**\n   * Displays the invalid state of this component\n   */\n  invalid: _propTypes.default.bool,\n\n  /**\n   * Label for radio\n   */\n  label: _propTypes.default.string,\n\n  /**\n   * Whether label is below radio\n   */\n  labelBelow: _propTypes.default.bool,\n\n  /**\n   * Whether radio is a quiet variation\n   */\n  quiet: _propTypes.default.bool,\n\n  /**\n   * Whether label is rendered\n   */\n  renderLabel: _propTypes.default.bool\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _SpEventUtils = require(\"../../utils/SpEventUtils\");\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Radio = _interopRequireDefault(require(\"./Radio\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet SpUxpRadio = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SpUxpRadio extends _react.Component {\n  constructor(props) {\n    super(props);\n    const {\n      checked,\n      defaultChecked\n    } = props;\n    this.state = {\n      checked: checked !== undefined ? checked : defaultChecked || false\n    };\n    this.spRadioRef = /*#__PURE__*/_react.default.createRef();\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    if ('checked' in nextProps) {\n      this.setState({\n        checked: nextProps.checked\n      });\n    }\n  }\n\n  componentDidMount() {\n    (0, _SpEventUtils.attachEventListeners)(this.spRadioRef.current, this.props, this.handleEvent);\n  }\n\n  componentWillUnmount() {\n    (0, _SpEventUtils.removeEventListeners)(this.spRadioRef.current, this.props, this.handleEvent);\n  }\n\n  componentDidUpdate(prevProps) {\n    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spRadioRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);\n  }\n\n  setChecked(checked) {\n    if (!('checked' in this.props)) {\n      this.setState({\n        checked\n      });\n    }\n  }\n\n  handleEvent(event) {\n    if (event.type === 'change') {\n      const {\n        checked\n      } = event.target;\n      this.setChecked({\n        checked\n      });\n    }\n\n    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);\n\n    if (this.props[eventName]) {\n      this.props[eventName].call(event.target, event);\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      className,\n      invalid,\n      label,\n      labelBelow,\n      quiet,\n      renderLabel\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"className\", \"invalid\", \"label\", \"labelBelow\", \"quiet\", \"renderLabel\"]); // sp-radio supports only side label\n\n\n    if (labelBelow) {\n      return /*#__PURE__*/_react.default.createElement(_Radio.default, this.props);\n    }\n\n    delete otherProps.checked; // Show label when label is defined and renderLabel is not false.\n\n    const showLabel = !!label && (renderLabel === undefined || renderLabel);\n    return /*#__PURE__*/_react.default.createElement(\"sp-radio\", _extends({\n      ref: this.spRadioRef,\n      class: className,\n      checked: this.state.checked ? true : null,\n      emphasized: !quiet ? true : null,\n      invalid: invalid ? true : null\n    }, (0, _SpEventUtils.removeEventProps)(otherProps)), showLabel && label);\n  }\n\n}, _class2.propTypes = {\n  /**\n   * Whether the radio should start off checked (controlled state)\n   */\n  checked: _propTypes.default.bool,\n\n  /**\n   * Class given to radio\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Whether the radio should be checked on mount\n   */\n  defaultChecked: _propTypes.default.bool,\n\n  /**\n   * Displays the invalid state of this component\n   */\n  invalid: _propTypes.default.bool,\n\n  /**\n   * Label for radio\n   */\n  label: _propTypes.default.string,\n\n  /**\n   * Whether label is below radio\n   */\n  labelBelow: _propTypes.default.bool,\n\n  /**\n   * Whether radio is a quiet variation\n   */\n  quiet: _propTypes.default.bool,\n\n  /**\n   * Whether label is rendered\n   */\n  renderLabel: _propTypes.default.bool\n}, _temp)) || _class) || _class;\n\nexports.default = SpUxpRadio;\nSpUxpRadio.displayName = 'Radio';","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('RadioGroup', () => require('./js/RadioGroup'), () => require('./js/RadioGroup'), () => require('./js/SpUxpRadioGroup'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/fieldgroup/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/fieldgroup/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/fieldgroup/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/fieldgroup/index.css\");\n}\n\nlet RadioGroup = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class RadioGroup extends _react.Component {\n  constructor(props) {\n    super(props);\n\n    this.handleClickItem = value => {\n      this.setSelectedValue(value);\n    };\n\n    const {\n      selectedValue,\n      defaultSelectedValue,\n      children\n    } = props;\n    let firstSelectedValue;\n\n    _react.default.Children.forEach(children, child => {\n      if (child.props.checked) {\n        firstSelectedValue = child.props.value;\n      }\n    });\n\n    const defaultSelected = firstSelectedValue || defaultSelectedValue;\n    this.state = {\n      selectedValue: selectedValue != null ? selectedValue : defaultSelected\n    };\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    if ('selectedValue' in nextProps) {\n      this.setState({\n        selectedValue: nextProps.selectedValue\n      });\n    }\n  }\n\n  setSelectedValue(value) {\n    if (!('selectedValue' in this.props)) {\n      this.setState({\n        selectedValue: value\n      });\n    }\n\n    this.props.onChange(value);\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      name,\n      vertical,\n      labelsBelow,\n      className,\n      children\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"name\", \"vertical\", \"labelsBelow\", \"className\", \"children\"]);\n\n    const {\n      selectedValue\n    } = this.state;\n    return /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n      className: (0, _classnames.default)('spectrum-FieldGroup', {\n        'spectrum-FieldGroup--vertical': vertical\n      }, className),\n      role: \"radiogroup\"\n    }, (0, _filterDOMProps.default)(otherProps)), _react.default.Children.map(children, child => {\n      const {\n        value,\n        onChange\n      } = child.props;\n\n      if (value == null) {\n        throw new Error('Each Radio Button must have a value property');\n      }\n\n      const radioGroupOnClick = this.handleClickItem.bind(this, value);\n      return /*#__PURE__*/_react.default.cloneElement(child, {\n        checked: selectedValue === value,\n        labelBelow: labelsBelow,\n        name,\n        tabIndex: this.props.tabIndex ? this.props.tabIndex : 0,\n        onChange: (checked, e) => {\n          if (onChange) {\n            onChange(value);\n          }\n\n          radioGroupOnClick(); // Let the RadioGroup change event propagate.\n\n          e.stopPropagation();\n        }\n      });\n    }));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * Value of the starting selected radio within the group\n   */\n  defaultSelectedValue: _propTypes.default.string,\n\n  /**\n   * Controlled: Value of the selected radio within the group\n   */\n  selectedValue: _propTypes.default.string,\n\n  /**\n   * Whether the label is rendered below the radio\n   */\n  labelBelow: _propTypes.default.bool,\n\n  /**\n   * Render the radio group vertically instead of default horizontal\n   */\n  vertical: _propTypes.default.bool\n}, _class2.defaultProps = {\n  vertical: false,\n  labelsBelow: false,\n  onChange: function () {}\n}, _temp)) || _class;\n\nexports.default = RadioGroup;\nRadioGroup.displayName = 'RadioGroup';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _SpEventUtils = require(\"../../utils/SpEventUtils\");\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _RadioGroup = _interopRequireDefault(require(\"./RadioGroup\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _class;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet SpUxpRadioGroup = (0, _autobindDecorator.default)(_class = class SpUxpRadioGroup extends _RadioGroup.default {\n  constructor(props) {\n    super(props);\n    this.spRadioGroupRef = /*#__PURE__*/_react.default.createRef();\n  } // Selected value for sp-radio-group cannot be set in the JSX element, needs to be done via JS after setState call.\n\n\n  componentDidUpdate(prevProps) {\n    this.updateRadioGroupSelected();\n    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spRadioGroupRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);\n  }\n\n  componentDidMount() {\n    // Selected value for sp-radio-group cannot be set in the JSX element, needs to be done via JS after setState call.\n    this.updateRadioGroupSelected();\n    (0, _SpEventUtils.attachEventListeners)(this.spRadioGroupRef.current, this.props, this.handleEvent);\n  }\n\n  componentWillUnmount() {\n    (0, _SpEventUtils.removeEventListeners)(this.spRadioGroupRef.current, this.props, this.handleEvent);\n  }\n\n  handleEvent(event) {\n    if (event.type === 'change') {\n      const {\n        selected\n      } = event.target;\n      this.setSelected(selected);\n    }\n\n    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);\n\n    if (this.props[eventName]) {\n      this.props[eventName].call(event.target, event);\n    }\n  }\n\n  setSelected(selectedValue) {\n    if (!('selectedValue' in this.props)) {\n      this.setState({\n        selectedValue\n      });\n    }\n  }\n\n  updateRadioGroupSelected() {\n    const {\n      selectedValue\n    } = this.state;\n    const radioGroupRef = this.spRadioGroupRef.current;\n\n    if (selectedValue && radioGroupRef) {\n      radioGroupRef.selected = selectedValue;\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      vertical,\n      labelsBelow,\n      className,\n      children\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"vertical\", \"labelsBelow\", \"className\", \"children\"]); // Below label is not present in sp-radio-group, need to pass to RadioGroup.\n\n\n    if (labelsBelow) {\n      return super.render();\n    }\n\n    return /*#__PURE__*/_react.default.createElement(\"sp-radio-group\", _extends({\n      ref: this.spRadioGroupRef,\n      class: className,\n      column: vertical ? true : null\n    }, (0, _SpEventUtils.removeEventProps)(otherProps)), children);\n  }\n\n}) || _class;\n\nexports.default = SpUxpRadioGroup;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Rule', () => require('./js/Rule'), () => require('./js/Rule'), () => require('./js/SpUxpRule'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Rule;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/rule/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/rule/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/rule/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/rule/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/rule/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/rule/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/rule/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/rule/multiStops/darkest.css\");\n\nfunction Rule(_ref) {\n  let {\n    className,\n    variant = 'large'\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"className\", \"variant\"]);\n\n  return /*#__PURE__*/_react.default.createElement(\"hr\", _extends({}, (0, _filterDOMProps.default)(otherProps), {\n    className: (0, _classnames.default)('spectrum-Rule', `spectrum-Rule--${variant}`, className)\n  }));\n}\n\nRule.propTypes = {\n  /** Which Rule variant to render. */\n  variant: _propTypes.default.oneOf(['large', 'medium', 'small'])\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst SPUXP_SIZE = {\n  small: 's',\n  medium: 'm',\n  large: 'l'\n};\n\nclass UxpRule extends _react.Component {\n  render() {\n    let _this$props = this.props,\n        {\n      variant,\n      className\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"variant\", \"className\"]);\n\n    return /*#__PURE__*/_react.default.createElement(\"sp-divider\", _extends({\n      size: variant === undefined ? 'l' : SPUXP_SIZE[variant] // large is the default variant. \n      ,\n      class: className\n    }, otherProps), \" // eslint-disable-line no-eval\");\n  }\n\n}\n\nexports.default = UxpRule;\nUxpRule.propTypes = {\n  /** Class to add to the Rule */\n  className: _propTypes.default.string,\n\n  /** Rule variant */\n  variant: _propTypes.default.oneOf(['large', 'medium', 'small'])\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isNodeFullyVisible = isNodeFullyVisible;\nexports.getScrollParent = getScrollParent;\nexports.getScrollParents = getScrollParents;\nexports.default = void 0;\n\nvar _boundingRectOverlapping = _interopRequireDefault(require(\"../utils/boundingRectOverlapping\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2021 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nclass ScrollManager {\n  constructor() {\n    this.currentScrollViewNodesMap = new Map();\n  }\n\n  static getInstance() {\n    if (!ScrollManager.instance) {\n      ScrollManager.instance = new ScrollManager();\n    }\n\n    return ScrollManager.instance;\n  }\n\n  toggleScrollBarsVisibility(overlayVisible, hideOverlappingScrollBar, overlayRef, overlayRect = null, coachmarkTourInProgress = false) {\n    let scrollViewNodes = document.querySelectorAll('.ReactScrollViewNode');\n\n    for (const scrollView of scrollViewNodes) {\n      var hideScrollbar = (overlayVisible && hideOverlappingScrollBar ? (0, _boundingRectOverlapping.default)(overlayRect, scrollView.getBoundingClientRect()) : overlayVisible) && overlayRef !== scrollView;\n      this.handleScrollBarVisibility(hideScrollbar, scrollView, overlayRef, coachmarkTourInProgress);\n    }\n  }\n\n  toggleScrollBarsVisibilityForScrollView(hide, ScrollView, overlayRef) {\n    if (!ScrollView || !overlayRef) {\n      return;\n    }\n\n    this.handleScrollBarVisibility(hide, ScrollView, overlayRef);\n  }\n\n  handleScrollBarVisibility(hideScrollbar, ScrollView, overlayRef, coachmarkTourInProgress = false) {\n    var overlayset = this.currentScrollViewNodesMap.get(ScrollView) ? this.currentScrollViewNodesMap.get(ScrollView) : new Set();\n\n    if (hideScrollbar) {\n      ScrollView.setAttribute('uxpscrollbarhidden', true);\n      overlayset.add(overlayRef);\n      this.currentScrollViewNodesMap.set(ScrollView, overlayset);\n    } else {\n      overlayset.delete(overlayRef);\n\n      if (overlayset.size === 0 && !coachmarkTourInProgress) {\n        ScrollView.removeAttribute('uxpscrollbarhidden');\n      }\n    }\n  }\n\n}\n\nexports.default = ScrollManager;\n\nfunction isNodeFullyVisible(node) {\n  if (!node) {\n    return false;\n  }\n\n  var boundingRect = node.getBoundingClientRect();\n\n  if (boundingRect.height === 0 && boundingRect.width === 0 && boundingRect.left === 0 && boundingRect.top === 0) {\n    return false;\n  }\n\n  var parentNode = getScrollParent(node);\n\n  if (!parentNode) {\n    return true;\n  }\n\n  var parentBoundingRect = parentNode.getBoundingClientRect();\n  return parentBoundingRect._y <= boundingRect._y && parentBoundingRect._y + parentBoundingRect.height >= boundingRect._y + boundingRect.height && parentBoundingRect._x <= boundingRect._x && parentBoundingRect._x + parentBoundingRect.width >= boundingRect._x + boundingRect.width;\n}\n\nfunction getScrollParent(node) {\n  if (!node) {\n    return;\n  }\n\n  while (node.parentNode) {\n    var style = window.getComputedStyle(node);\n\n    if (/auto|scroll/.test(style.overflow + style.overflowY) || node.hasAttribute('data-scrollable')) {\n      return node;\n    }\n\n    node = node.parentNode;\n  }\n\n  return null;\n}\n\nfunction getScrollParents(node) {\n  if (!node) {\n    return;\n  }\n\n  let nodes = [];\n\n  while (node.parentNode) {\n    var style = window.getComputedStyle(node);\n\n    if (/auto|scroll/.test(style.overflow + style.overflowY) || node.hasAttribute('data-scrollable')) {\n      nodes.push(node);\n    }\n\n    node = node.parentNode;\n  }\n\n  return nodes;\n}","\"use strict\";\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2021 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = require('./ScrollManager');","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Select', () => require('./js/UxpSelect'), () => require('./js/Select'), () => require('./js/SpUxpSelect'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.SelectMenu = SelectMenu;\nexports.default = void 0;\n\nvar _Alert = _interopRequireDefault(require(\"../../Icon/Alert\"));\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _Button = _interopRequireDefault(require(\"../../Button\"));\n\nvar _ChevronDownMedium = _interopRequireDefault(require(\"../../Icon/core/ChevronDownMedium\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _Dropdown = _interopRequireDefault(require(\"../../Dropdown\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _Popover = _interopRequireDefault(require(\"../../Popover\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _SelectList = _interopRequireDefault(require(\"../../SelectList\"));\n\nvar _class, _class2, _temp;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/dropdown/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/dropdown/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/dropdown/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/dropdown/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/dropdown/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/dropdown/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/dropdown/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/dropdown/multiStops/darkest.css\");\n\nrequire('../style/index.css');\n\nlet POPOVER_MAX_WIDTH = null;\nlet QUIET_MARGIN = 24;\n\nlet Select = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Select extends _react.default.Component {\n  constructor(props) {\n    super(props);\n    let value = null;\n\n    if ('value' in props) {\n      value = props.value;\n    } else if ('defaultValue' in props) {\n      value = props.defaultValue;\n    } else if (props.multiple) {\n      value = [];\n    } else {\n      const opt = props.options && props.options[0];\n      value = opt && !props.placeholder ? opt.value : null;\n    }\n\n    this.state = {\n      value\n    };\n    this.selectId = (0, _createId.default)();\n  }\n\n  UNSAFE_componentWillReceiveProps(props) {\n    if ('value' in props && props.value !== this.state.value) {\n      this.setState({\n        value: props.value\n      });\n    }\n  }\n\n  componentDidMount() {\n    if (POPOVER_MAX_WIDTH == null) {\n      // Render a fake popover we can measure the styles of, place it inside ourselves\n      // so it gets styles dictated by the current scale\n      let dummyPopover = document.createElement('div');\n      dummyPopover.className = 'spectrum-Dropdown-popover';\n      document.body.appendChild(dummyPopover);\n      POPOVER_MAX_WIDTH = parseInt(window.getComputedStyle(dummyPopover).maxWidth, 10);\n      document.body.removeChild(dummyPopover);\n    }\n\n    window.addEventListener('resize', this.updateSize);\n    this.updateSize();\n  }\n\n  componentWillUnmount() {\n    window.removeEventListener('resize', this.updateSize);\n  }\n\n  componentDidUpdate() {\n    this.updateSize();\n  }\n\n  updateSize() {\n    if (this.button) {\n      let width = _reactDom.default.findDOMNode(this.button).offsetWidth;\n\n      if (width !== this.state.width) {\n        this.setState({\n          width\n        });\n      }\n    }\n  }\n\n  onSelect(value) {\n    if (!('value' in this.props)) {\n      this.setState({\n        value\n      });\n    }\n\n    if (this.props.onChange) {\n      this.props.onChange(value);\n    }\n  }\n\n  onOpen(e) {\n    this.updateSize();\n\n    if (typeof this.props.onOpen === 'function') {\n      this.props.onOpen(e);\n    }\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      options = [],\n      quiet,\n      onClose,\n      closeOnSelect,\n      menuClassName,\n      disabled = false,\n      invalid = false,\n      multiple = false,\n      required = false,\n      flexible = false,\n      placeholder = 'Select an option',\n      className,\n      flip = true,\n      alignRight,\n      labelId,\n      id = this.selectId,\n      icon,\n      renderItem,\n      'aria-label': ariaLabel,\n      'aria-labelledby': ariaLabelledby\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"options\", \"quiet\", \"onClose\", \"closeOnSelect\", \"menuClassName\", \"disabled\", \"invalid\", \"multiple\", \"required\", \"flexible\", \"placeholder\", \"className\", \"flip\", \"alignRight\", \"labelId\", \"id\", \"icon\", \"renderItem\", \"aria-label\", \"aria-labelledby\"]);\n\n    let {\n      value\n    } = this.state;\n    const valueId = `${id}-value`;\n\n    if (ariaLabelledby) {\n      ariaLabelledby += ` ${valueId}`;\n    } else if (ariaLabel) {\n      ariaLabelledby = id + ' ' + valueId;\n    } else if (labelId) {\n      ariaLabelledby = labelId + ' ' + valueId;\n    } else {\n      ariaLabelledby = valueId;\n    }\n\n    let label = placeholder;\n\n    if (!multiple) {\n      const selectedOption = options.find(o => o.value === value);\n      label = selectedOption ? selectedOption.label : placeholder;\n      icon = selectedOption && selectedOption.icon;\n    }\n\n    closeOnSelect = typeof closeOnSelect === 'boolean' ? closeOnSelect : !multiple; // Pass ARIA props to the button, and others to the Dropdown.\n\n    let domProps = Object.entries((0, _filterDOMProps.default)(otherProps));\n    let buttonProps = domProps.filter(x => /^aria-.*$/.test(x[0])).reduce((o, i) => (o[i[0]] = i[1], o), {});\n    let dropdownProps = domProps.filter(x => !/^aria-.*$/.test(x[0])).reduce((o, i) => (o[i[0]] = i[1], o), {});\n    let minWidth = this.state.width;\n\n    if (quiet) {\n      minWidth = this.state.width + QUIET_MARGIN;\n    }\n\n    if (quiet && flexible) {\n      minWidth = null;\n    }\n\n    return /*#__PURE__*/_react.default.createElement(_Dropdown.default, _extends({\n      className: (0, _classnames.default)('spectrum-Dropdown', {\n        'spectrum-Dropdown--quiet': quiet,\n        'react-spectrum-Dropdown-fixed': quiet && !flexible,\n        'react-spectrum-Dropdown-flexible': flexible,\n        'is-disabled': disabled,\n        'is-invalid': invalid\n      }, className),\n      closeOnSelect: closeOnSelect,\n      onSelect: this.onSelect,\n      onOpen: this.onOpen,\n      onClose: onClose,\n      \"aria-required\": required,\n      \"aria-multiselectable\": multiple,\n      \"aria-disabled\": disabled,\n      \"aria-invalid\": invalid,\n      alignRight: alignRight,\n      flip: flip\n    }, dropdownProps), /*#__PURE__*/_react.default.createElement(_Button.default, _extends({\n      className: \"spectrum-Dropdown-trigger\",\n      type: \"button\",\n      variant: \"field\",\n      \"aria-haspopup\": \"listbox\",\n      quiet: quiet,\n      disabled: disabled,\n      invalid: invalid,\n      ref: b => this.button = b,\n      \"aria-label\": ariaLabel,\n      \"aria-labelledby\": ariaLabelledby,\n      id: id,\n      icon: icon\n    }, buttonProps), /*#__PURE__*/_react.default.createElement(\"span\", {\n      id: valueId,\n      className: (0, _classnames.default)('spectrum-Dropdown-label', {\n        'is-placeholder': label === placeholder\n      })\n    }, label), invalid && /*#__PURE__*/_react.default.createElement(_Alert.default, {\n      size: \"S\"\n    }), /*#__PURE__*/_react.default.createElement(_ChevronDownMedium.default, {\n      size: null,\n      className: \"spectrum-Dropdown-icon\"\n    })), /*#__PURE__*/_react.default.createElement(SelectMenu, {\n      dropdownMenu: true,\n      className: menuClassName,\n      options: options,\n      value: value,\n      multiple: multiple,\n      disabled: disabled,\n      invalid: invalid,\n      required: required,\n      quiet: quiet,\n      style: {\n        overflowY: 'auto',\n        minWidth: minWidth,\n        maxWidth: this.state.width > POPOVER_MAX_WIDTH ? this.state.width : null,\n        marginRight: quiet && alignRight ? -1 * (QUIET_MARGIN / 2) : null\n      },\n      autoFocus: true,\n      renderItem: renderItem\n    }));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * If true, the select list will close on selection of an item\n   */\n  closeOnSelect: _propTypes.default.bool,\n\n  /**\n   * String for extra class names to add to the select list\n   */\n  menuClassName: _propTypes.default.string,\n\n  /**\n   * A function that returns a wrapper component to render a list item label.\n   * Useful in providing custom html to the rendered label.\n   */\n  renderItem: _propTypes.default.func,\n\n  /** Sets the selected item (controlled) for the component. */\n  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.arrayOf(_propTypes.default.number)]),\n\n  /** Sets the initial selected item (uncontrolled) for the component. */\n  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.arrayOf(_propTypes.default.number)]),\n\n  /** Whether to allow multiple item selection. */\n  multiple: _propTypes.default.bool,\n\n  /** Array of strings of options in list */\n  options: _propTypes.default.arrayOf(_propTypes.default.object),\n\n  /** Function to call when the selected value changes. */\n  onChange: _propTypes.default.func,\n\n  /** Function to call when the dropdown menu is opened. */\n  onOpen: _propTypes.default.func,\n\n  /** Function to call when the dropdown menu is closed. */\n  onClose: _propTypes.default.func,\n\n  /** Whether to render the quiet variant of the component. */\n  quiet: _propTypes.default.bool,\n\n  /** Whether to render the invalid appearance of the component. */\n  invalid: _propTypes.default.bool,\n\n  /** Whether to enforce that at least one option from the list is selected by the user. */\n  required: _propTypes.default.bool,\n\n  /** Whether the component width should adjust to match the width of the selected value's text. */\n  flexible: _propTypes.default.bool,\n\n  /** Placeholder text to display if no items have been selected. */\n  placeholder: _propTypes.default.string,\n\n  /** Sets whether the overlay is flippable. Shift the overlay to the opposite position if out of view. */\n  flip: _propTypes.default.bool,\n\n  /** Sets the positioning of the dropdown to align to the right. */\n  alignRight: _propTypes.default.bool,\n\n  /** Sets the icon displayed in the select bar if multiple items are selectable. */\n  icon: _propTypes.default.node\n}, _temp)) || _class) || _class;\n\nexports.default = Select;\n\nfunction SelectMenu(_ref) {\n  let {\n    onClose,\n    onOpen,\n    onSelect,\n    className,\n    open,\n    placement,\n    style,\n    closeOnSelect,\n    quiet\n  } = _ref,\n      props = _objectWithoutProperties(_ref, [\"onClose\", \"onOpen\", \"onSelect\", \"className\", \"open\", \"placement\", \"style\", \"closeOnSelect\", \"quiet\"]);\n\n  return /*#__PURE__*/_react.default.createElement(_Popover.default, {\n    isDialog: false,\n    placement: placement,\n    open: open,\n    onClose: onClose,\n    onOpen: onOpen,\n    style: style,\n    className: (0, _classnames.default)('spectrum-Dropdown-popover', {\n      'spectrum-Dropdown-popover--quiet': quiet\n    }),\n    closeOnSelect: closeOnSelect\n  }, /*#__PURE__*/_react.default.createElement(_SelectList.default, _extends({}, props, {\n    className: className,\n    onClose: onClose,\n    onChange: onSelect,\n    onTab: e => e.preventDefault()\n  })));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.UxpSelectMenu = UxpSelectMenu;\nexports.default = void 0;\n\nvar _SpEventUtils = require(\"../../utils/SpEventUtils\");\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Select = _interopRequireDefault(require(\"./Select\"));\n\nvar _SpUxpSelectList = _interopRequireDefault(require(\"../../SelectList/js/SpUxpSelectList\"));\n\nvar _UxpSelect = _interopRequireDefault(require(\"./UxpSelect\"));\n\nvar _class;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet SpUxpSelect = (0, _autobindDecorator.default)(_class = class SpUxpSelect extends _Select.default {\n  constructor(props) {\n    super(props);\n    this.spSelectRef = /*#__PURE__*/_react.default.createRef();\n  }\n\n  handleEvent(event) {\n    if (event.type === 'change') {\n      this.onSelect(this.spSelectRef.current.value);\n    } else if (event.type === 'load') {\n      this.onOpen(event);\n    }\n\n    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);\n\n    if (this.props[eventName]) {\n      this.props[eventName].call(event.target, event);\n    }\n  }\n\n  componentDidMount() {\n    (0, _SpEventUtils.attachEventListeners)(this.spSelectRef.current, this.props, this.handleEvent);\n  }\n\n  componentWillUnmount() {\n    (0, _SpEventUtils.removeEventListeners)(this.spSelectRef.current, this.props, this.handleEvent);\n  }\n\n  componentDidUpdate(prevProps) {\n    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spSelectRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      options = [],\n      quiet,\n      closeOnSelect,\n      menuClassName,\n      disabled = false,\n      invalid = false,\n      multiple = false,\n      flexible = false,\n      placeholder = 'Select an option',\n      className,\n      renderItem,\n      alignRight,\n      open\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"options\", \"quiet\", \"closeOnSelect\", \"menuClassName\", \"disabled\", \"invalid\", \"multiple\", \"flexible\", \"placeholder\", \"className\", \"renderItem\", \"alignRight\", \"open\"]);\n\n    let {\n      value\n    } = this.state;\n    closeOnSelect = typeof closeOnSelect === 'boolean' ? closeOnSelect : !multiple;\n    let renderUxpSelect = multiple || !closeOnSelect || flexible || alignRight;\n\n    if (renderUxpSelect) {\n      return /*#__PURE__*/_react.default.createElement(_UxpSelect.default, this.props);\n    }\n\n    return /*#__PURE__*/_react.default.createElement(\"sp-dropdown\", _extends({\n      ref: this.spSelectRef,\n      class: className,\n      open: open ? true : null,\n      placeholder: placeholder,\n      disabled: disabled ? true : null,\n      quiet: quiet ? true : null,\n      invalid: invalid ? true : null\n    }, (0, _SpEventUtils.removeEventProps)(otherProps)), /*#__PURE__*/_react.default.createElement(UxpSelectMenu, {\n      className: menuClassName,\n      options: options,\n      value: value,\n      renderItem: renderItem\n    }));\n  }\n\n}) || _class;\n\nexports.default = SpUxpSelect;\n\nfunction UxpSelectMenu(props) {\n  return /*#__PURE__*/_react.default.createElement(_SpUxpSelectList.default, props);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.UxpSelectMenu = UxpSelectMenu;\nexports.default = void 0;\n\nvar _Alert = _interopRequireDefault(require(\"../../Icon/Alert\"));\n\nvar _Button = _interopRequireDefault(require(\"../../Button\"));\n\nvar _ChevronDownMedium = _interopRequireDefault(require(\"../../Icon/core/ChevronDownMedium\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _Dropdown = _interopRequireDefault(require(\"../../Dropdown\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _Popover = _interopRequireDefault(require(\"../../Popover\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Select = _interopRequireDefault(require(\"./Select\"));\n\nvar _SelectList = _interopRequireDefault(require(\"../../SelectList\"));\n\nvar _UxpOptions = _interopRequireDefault(require(\"../../utils/UxpOptions\"));\n\nrequire(\"../uxp-style/index.css\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet POPOVER_MAX_WIDTH = null;\nlet QUIET_MARGIN = 11;\n\nclass UxpSelect extends _Select.default {\n  componentDidMount() {\n    if (POPOVER_MAX_WIDTH == null) {\n      // Render a fake popover we can measure the styles of, place it inside ourselves\n      // so it gets styles dictated by the current scale\n      let dummyPopover = document.createElement('div');\n      dummyPopover.className = 'spectrum-Dropdown-popover';\n      document.body.appendChild(dummyPopover);\n      POPOVER_MAX_WIDTH = parseInt(window.getComputedStyle(dummyPopover).maxWidth, 10);\n      document.body.removeChild(dummyPopover);\n    }\n\n    window.addEventListener('resize', this.updateSize);\n    this.updateSize();\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      options = [],\n      quiet,\n      onClose,\n      closeOnSelect,\n      menuClassName,\n      disabled = false,\n      invalid = false,\n      multiple = false,\n      required = false,\n      flexible = false,\n      placeholder = 'Select an option',\n      className,\n      renderItem,\n      flip = true,\n      alignRight,\n      labelId,\n      stopPropagationEsc = false,\n      tabIndex,\n      id = this.selectId,\n      icon,\n      'aria-label': ariaLabel,\n      'aria-labelledby': ariaLabelledby\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"options\", \"quiet\", \"onClose\", \"closeOnSelect\", \"menuClassName\", \"disabled\", \"invalid\", \"multiple\", \"required\", \"flexible\", \"placeholder\", \"className\", \"renderItem\", \"flip\", \"alignRight\", \"labelId\", \"stopPropagationEsc\", \"tabIndex\", \"id\", \"icon\", \"aria-label\", \"aria-labelledby\"]);\n\n    let {\n      value\n    } = this.state;\n    const valueId = `${id}-value`;\n\n    if (ariaLabelledby) {\n      ariaLabelledby += ` ${valueId}`;\n    } else if (ariaLabel) {\n      ariaLabelledby = id + ' ' + valueId;\n    } else if (labelId) {\n      ariaLabelledby = labelId + ' ' + valueId;\n    } else {\n      ariaLabelledby = valueId;\n    }\n\n    let label = placeholder;\n\n    if (!multiple) {\n      const selectedOption = options.find(o => o.value === value);\n      label = selectedOption ? selectedOption.label : placeholder;\n      icon = selectedOption && selectedOption.icon;\n    }\n\n    closeOnSelect = typeof closeOnSelect === 'boolean' ? closeOnSelect : !multiple; // Pass ARIA props to the button, and others to the Dropdown.\n\n    let domProps = Object.entries((0, _filterDOMProps.default)(otherProps));\n    let buttonProps = domProps.filter(x => /^aria-.*$/.test(x[0])).reduce((o, i) => (o[i[0]] = i[1], o), {});\n    let dropdownProps = domProps.filter(x => !/^aria-.*$/.test(x[0])).reduce((o, i) => (o[i[0]] = i[1], o), {});\n    let minWidth = this.state.width;\n\n    if (quiet) {\n      minWidth = this.state.width + QUIET_MARGIN;\n    }\n\n    if (quiet && flexible) {\n      /**\n       * vivek-- specify min-width to max-content in case of flexible variant, UXP doesn't compute size based on content itself\n       * Once the flyout dialog size is calculated based on content in UXP, we can remove this\n       */\n      minWidth = 'max-content';\n    }\n\n    return /*#__PURE__*/_react.default.createElement(_Dropdown.default, _extends({\n      className: (0, _classnames.default)('spectrum-Dropdown', {\n        'spectrum-Dropdown--quiet': quiet,\n        'react-spectrum-Dropdown-fixed': quiet && !flexible,\n        'react-spectrum-Dropdown-flexible': flexible,\n        'is-disabled': disabled,\n        'is-invalid': invalid\n      }, className),\n      isFlyout: _UxpOptions.default.productNeedsOverlayFix,\n      closeOnSelect: closeOnSelect,\n      onSelect: this.onSelect,\n      onOpen: this.onOpen,\n      onClose: onClose,\n      \"aria-required\": required,\n      \"aria-multiselectable\": multiple,\n      \"aria-disabled\": disabled,\n      \"aria-invalid\": invalid,\n      alignRight: alignRight,\n      flip: flip\n    }, dropdownProps), /*#__PURE__*/_react.default.createElement(_Button.default, _extends({\n      className: (0, _classnames.default)('spectrum-Dropdown-trigger', {\n        'spectrum-Dropdown-trigger--quiet': quiet\n      }),\n      type: \"button\",\n      variant: \"field\",\n      \"aria-haspopup\": \"listbox\",\n      quiet: quiet,\n      tabIndex: tabIndex,\n      disabled: disabled,\n      invalid: invalid,\n      ref: b => this.button = b,\n      overrideOnKeyDown: true,\n      \"aria-label\": ariaLabel,\n      \"aria-labelledby\": ariaLabelledby,\n      id: id,\n      icon: icon\n    }, buttonProps), /*#__PURE__*/_react.default.createElement(\"span\", {\n      id: valueId,\n      className: (0, _classnames.default)('spectrum-Dropdown-label', {\n        'is-placeholder': label === placeholder\n      })\n    }, label), invalid && /*#__PURE__*/_react.default.createElement(_Alert.default, {\n      size: \"S\"\n    }), /*#__PURE__*/_react.default.createElement(_ChevronDownMedium.default, {\n      size: null,\n      className: \"spectrum-Dropdown-icon\"\n    })), /*#__PURE__*/_react.default.createElement(UxpSelectMenu, {\n      dropdownMenu: true,\n      flyoutMenu: _UxpOptions.default.productNeedsOverlayFix,\n      className: menuClassName,\n      options: options,\n      value: value,\n      stopPropagationEsc: stopPropagationEsc,\n      multiple: multiple,\n      disabled: disabled,\n      invalid: invalid,\n      required: required,\n      quiet: quiet,\n      style: {\n        minWidth: minWidth,\n        maxWidth: this.state.width > POPOVER_MAX_WIDTH ? this.state.width : null,\n        overflowY: 'auto',\n        marginRight: quiet && alignRight ? -1 * (QUIET_MARGIN / 2) : null\n      },\n      autoFocus: true,\n      renderItem: renderItem\n    }));\n  }\n\n}\n\nexports.default = UxpSelect;\nUxpSelect.propTypes = {\n  /**\n   * For stopPropagation on escape keydown, \n   * Workaround fix for UXP-19343\n   */\n  stopPropagationEsc: _propTypes.default.bool\n};\n\nfunction UxpSelectMenu(_ref) {\n  let {\n    onClose,\n    onOpen,\n    onSelect,\n    className,\n    open,\n    placement,\n    style,\n    closeOnSelect,\n    flyoutMenu,\n    quiet\n  } = _ref,\n      props = _objectWithoutProperties(_ref, [\"onClose\", \"onOpen\", \"onSelect\", \"className\", \"open\", \"placement\", \"style\", \"closeOnSelect\", \"flyoutMenu\", \"quiet\"]);\n\n  return /*#__PURE__*/_react.default.createElement(_Popover.default, {\n    flyoutMenu: flyoutMenu,\n    isDialog: false,\n    placement: placement,\n    open: open,\n    onClose: onClose,\n    onOpen: onOpen,\n    style: style,\n    className: (0, _classnames.default)('spectrum-Dropdown-popover', {\n      'spectrum-Dropdown-popover--quiet': quiet\n    }),\n    closeOnSelect: closeOnSelect\n  }, /*#__PURE__*/_react.default.createElement(_SelectList.default, _extends({}, props, {\n    className: className,\n    onChange: onSelect,\n    onClose: onClose,\n    onTab: e => e.preventDefault(),\n    defaultpreventedkeys: ['Tab']\n  })));\n}","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('SelectList', () => require('./js/UxpSelectList'), () => require('./js/SelectList'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _List = require(\"../../List\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet SelectList = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class SelectList extends _react.Component {\n  constructor(props) {\n    super(props);\n\n    this.renderListOfOptions = options => options.map((option, index) => /*#__PURE__*/_react.default.createElement(_List.ListItem, {\n      key: index,\n      icon: option.icon,\n      selected: this.isSelected(option),\n      disabled: this.props.disabled || option.disabled,\n      onSelect: this.handleSelect.bind(this, option),\n      onTab: this.props.onTab,\n      defaultpreventedkeys: ['Escape'],\n      onKeyDown: this.handleKeyDown.bind(this)\n    }, this.props.renderItem ? this.props.renderItem(option) : option.label));\n\n    this.state = {\n      value: props.value\n    };\n  }\n\n  UNSAFE_componentWillReceiveProps(props) {\n    if (props.value && props.value !== this.state.value) {\n      this.setState({\n        value: props.value\n      });\n    }\n  }\n\n  addSelection(option) {\n    return [...(this.state.value || []), option.value];\n  }\n\n  removeSelection(option) {\n    let value = this.state.value || [];\n    const index = value.indexOf(option.value);\n    return [...value.slice(0, index), ...value.slice(index + 1, value.length)];\n  }\n\n  handleKeyDown(e) {\n    switch (e.key) {\n      case 'Escape':\n        if (this.props.onClose) {\n          this.props.onClose();\n        }\n\n        break;\n    }\n  }\n\n  handleSelect(option) {\n    let nextOptions;\n\n    if (this.props.multiple) {\n      if (this.isSelected(option)) {\n        nextOptions = this.removeSelection(option);\n      } else {\n        nextOptions = this.addSelection(option);\n      }\n    } else {\n      nextOptions = option.value;\n    } // Set state if in uncontrolled mode\n\n\n    if (!('value' in this.props)) {\n      this.setState({\n        value: nextOptions\n      });\n    }\n\n    if (this.props.onChange) {\n      this.props.onChange(nextOptions);\n    }\n  }\n\n  isSelected(option) {\n    return this.props.multiple ? this.state.value && this.state.value.indexOf(option.value) >= 0 : this.state.value === option.value;\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      options = [],\n      multiple = false,\n      disabled = false,\n      invalid = false,\n      required = false,\n      className\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"options\", \"multiple\", \"disabled\", \"invalid\", \"required\", \"className\"]);\n\n    delete otherProps.onTab;\n    delete otherProps.renderItem;\n    return /*#__PURE__*/_react.default.createElement(_List.List, _extends({\n      className: className,\n      \"aria-multiselectable\": multiple,\n      \"aria-disabled\": disabled,\n      \"aria-invalid\": invalid,\n      \"aria-required\": required,\n      selectable: true\n    }, otherProps), this.renderListOfOptions(options));\n  }\n\n}, _class2.propTypes = {\n  /** Whether the SelectList is disabled */\n  disabled: _propTypes.default.bool,\n\n  /** Whether to show the invalid icon and styling */\n  invalid: _propTypes.default.bool,\n\n  /** Whether multiple options are able to be selected */\n  multiple: _propTypes.default.bool,\n\n  /** Function called when the selected options are changed */\n  onChange: _propTypes.default.func,\n\n  /** Array of strings of options in list */\n  options: _propTypes.default.arrayOf(_propTypes.default.object),\n\n  /** Whether an input is required */\n  required: _propTypes.default.bool,\n\n  /** Array of pre-selected values*/\n  value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.arrayOf(_propTypes.default.number), _propTypes.default.string, _propTypes.default.number]),\n\n  /**\n   * A function that returns a wrapper component to render a list item label.\n   * Useful in providing custom html to the rendered label.\n   */\n  renderItem: _propTypes.default.func\n}, _class2.defaultProps = {\n  options: [],\n  multiple: false,\n  disabled: false,\n  invalid: false,\n  required: false\n}, _temp)) || _class;\n\nexports.default = SelectList;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _SelectList = _interopRequireDefault(require(\"./SelectList\"));\n\nvar _SpUxpListItem = _interopRequireDefault(require(\"../../List/js/SpUxpListItem\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nclass SpUxpSelectList extends _SelectList.default {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.renderListOfOptions = options => options.map((option, index) => /*#__PURE__*/_react.default.createElement(_SpUxpListItem.default, {\n      icon: option.icon,\n      value: option.value,\n      selected: this.isSelected(option) ? true : null,\n      disabled: option.disabled\n    }, this.props.renderItem ? this.props.renderItem(option) : option.label)), _temp;\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      options = [],\n      className\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"options\", \"className\"]);\n\n    return /*#__PURE__*/_react.default.createElement(\"sp-menu\", _extends({\n      class: className,\n      slot: \"options\"\n    }, otherProps), this.renderListOfOptions(options));\n  }\n\n}\n\nexports.default = SpUxpSelectList;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _SelectList = _interopRequireDefault(require(\"./SelectList\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar _default = props => {\n  // eslint-disable-next-line no-unused-vars\n  const {\n    boundariesElement\n  } = props,\n        otherProps = _objectWithoutProperties(props, [\"boundariesElement\"]);\n\n  return /*#__PURE__*/_react.default.createElement(_SelectList.default, otherProps);\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"SideNav\", {\n  enumerable: true,\n  get: function () {\n    return _SideNav.default;\n  }\n});\nObject.defineProperty(exports, \"SideNavItem\", {\n  enumerable: true,\n  get: function () {\n    return _SideNavItem.default;\n  }\n});\nObject.defineProperty(exports, \"SideNavHeading\", {\n  enumerable: true,\n  get: function () {\n    return _SideNavHeading.default;\n  }\n});\n\nvar _SideNav = _interopRequireDefault(require(\"./js/SideNav\"));\n\nvar _SideNavItem = _interopRequireDefault(require(\"./js/SideNavItem\"));\n\nvar _SideNavHeading = _interopRequireDefault(require(\"./js/SideNavHeading\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _events = require(\"../../utils/events\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _FocusManager = _interopRequireDefault(require(\"../../utils/FocusManager\"));\n\nvar _focusRing = _interopRequireDefault(require(\"../../utils/focusRing\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nrequire(\"../style/index.css\");\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/sidenav/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/sidenav/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/sidenav/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/sidenav/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/sidenav/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/sidenav/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/sidenav/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/sidenav/multiStops/darkest.css\");\nconst SIDENAV_ITEM_SELECTOR = '.spectrum-SideNav-itemLink:not(.is-hidden):not(.is-disabled)';\nconst SELECTED_SIDENAV_ITEM_SELECTOR = SIDENAV_ITEM_SELECTOR + '.is-selected';\n\nconst isNestedSelected = (props, value) => props.children && props.children.filter(c => {\n  const {\n    children\n  } = c.props;\n\n  if (children && typeof children !== 'string') {\n    return isNestedSelected(c.props, value);\n  }\n\n  return c.props.value === value;\n}).length !== 0;\n\nlet SideNav = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (0, _focusRing.default)(_class = (_temp = _class2 = class SideNav extends _react.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      value: this.props.defaultValue || this.props.value\n    };\n    this.id = (0, _createId.default)();\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    const {\n      value\n    } = nextProps;\n\n    if (value !== this.props.value) {\n      this.setState({\n        value\n      });\n    }\n  }\n\n  isSelected(child) {\n    return child.props.value === this.state.value;\n  }\n\n  isDefaultSelected(child) {\n    return child.props.value === this.props.defaultValue;\n  }\n\n  onSelect(value, e) {\n    if (this.props.value === undefined) {\n      this.setState({\n        value\n      });\n    }\n\n    this.props.onSelect(value, e);\n  }\n\n  isDefaultExpanded(child) {\n    if (child.props.defaultExpanded !== undefined) {\n      return child.props.defaultExpanded;\n    } // Expand nested sidenav if any item is selected\n\n\n    return Array.isArray(child.props.children) && isNestedSelected(child.props, this.state.value);\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      className,\n      children,\n      hidden,\n      variant,\n      id = this.id,\n      manageTabIndex,\n      typeToSelect,\n      ariaLevel = 1,\n      autoFocus,\n      isNested,\n      'aria-label': ariaLabel,\n      'aria-labelledby': ariaLabelledby\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"className\", \"children\", \"hidden\", \"variant\", \"id\", \"manageTabIndex\", \"typeToSelect\", \"ariaLevel\", \"autoFocus\", \"isNested\", \"aria-label\", \"aria-labelledby\"]);\n\n    const isMultiLevel = variant === 'multiLevel';\n    const Element = isNested ? 'div' : 'nav';\n    delete otherProps.value;\n\n    let ul = /*#__PURE__*/_react.default.createElement(\"ul\", _extends({\n      className: (0, _classnames.default)('spectrum-SideNav', {\n        'spectrum-SideNav--multiLevel': isMultiLevel\n      }),\n      id: id + '-list',\n      \"aria-label\": isNested ? ariaLabel : undefined,\n      \"aria-labelledby\": isNested ? ariaLabelledby : undefined\n    }, (0, _filterDOMProps.default)(otherProps)), _react.Children.map(children, child => /*#__PURE__*/(0, _react.cloneElement)(child, {\n      hidden,\n      manageTabIndex,\n      isMultiLevel,\n      ariaLevel: isMultiLevel ? ariaLevel : undefined,\n      _nestedNavValue: this.state.value,\n      _isSelected: this.isSelected(child),\n      onSelect: (0, _events.chain)(child.props.onSelect, this.onSelect),\n      defaultExpanded: this.isDefaultExpanded(child)\n    }))); // If this is the root sidenav and we are managing focus, wrap the list in a toolbar\n\n\n    if (!isNested) {\n      ul = /*#__PURE__*/_react.default.createElement(\"div\", {\n        role: \"toolbar\",\n        \"aria-orientation\": \"vertical\"\n      }, ul);\n    }\n\n    return /*#__PURE__*/_react.default.createElement(Element, {\n      id: id,\n      hidden: hidden,\n      \"aria-hidden\": hidden,\n      role: isNested ? 'presentation' : undefined,\n      \"aria-label\": !isNested ? ariaLabel : undefined,\n      \"aria-labelledby\": !isNested ? ariaLabelledby : undefined,\n      className: (0, _classnames.default)(className, 'react-spectrum-SideNav')\n    }, isNested ? ul : /*#__PURE__*/_react.default.createElement(_FocusManager.default, {\n      itemSelector: SIDENAV_ITEM_SELECTOR,\n      selectedItemSelector: SELECTED_SIDENAV_ITEM_SELECTOR,\n      manageTabIndex: isMultiLevel || manageTabIndex,\n      typeToSelect: isMultiLevel || typeToSelect,\n      autoFocus: autoFocus\n    }, ul));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * The variant of sidenav to display\n   */\n  variant: _propTypes.default.oneOf(['default', 'multiLevel']),\n\n  /**\n   * Whether SideNav should use roving tabIndex so that only one item can receive focus at a time. With multiLevel, this defaults to true.\n   */\n  manageTabIndex: _propTypes.default.bool,\n\n  /**\n   * Whether SideNav should use alphanumeric search to locate next item to focus. With multiLevel, this defaults to true.\n   */\n  typeToSelect: _propTypes.default.bool,\n\n  /**\n   * Custom className of sidenav to apply\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Value of selected Sidenav Item (use for controlled selection)\n   */\n  value: _propTypes.default.string,\n\n  /**\n   * Value of selected Sidenav Item at initialization\n   */\n  defaultValue: _propTypes.default.string,\n\n  /**\n   * Whether to automatically set focus to the seleted item when the component mounts.\n   */\n  autoFocus: _propTypes.default.bool,\n\n  /**\n   * Whether the sidenav is a child of a sidenav item\n   */\n  isNested: _propTypes.default.bool,\n\n  /**\n   * A select handler for the sidenav\n   */\n  onSelect: _propTypes.default.func\n}, _class2.defaultProps = {\n  variant: 'default',\n  manageTabIndex: false,\n  typeToSelect: false,\n  autoFocus: false,\n  isNested: false,\n  onSelect: () => {}\n}, _temp)) || _class) || _class) || _class;\n\nexports.default = SideNav;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = SideNavHeading;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _SideNavItem = _interopRequireDefault(require(\"./SideNavItem\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction SideNavHeading(_ref) {\n  let {\n    label\n  } = _ref,\n      props = _objectWithoutProperties(_ref, [\"label\"]);\n\n  return /*#__PURE__*/_react.default.createElement(_SideNavItem.default, _extends({\n    header: label\n  }, props, {\n    defaultExpanded: true\n  }));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _events = require(\"../../utils/events\");\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _icon = require(\"../../utils/icon\");\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _focusRing = _interopRequireDefault(require(\"../../utils/focusRing\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _SideNav = _interopRequireDefault(require(\"./SideNav\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nconst NOOP = () => {};\n\nconst FOCUSABLE_SIDENAV_ITEMLINK_SELECTOR = '.spectrum-SideNav-itemLink[tabIndex]';\n/**\n * An item in a sidenav\n */\n\nlet SideNavItem = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (0, _focusRing.default)(_class = (_temp = _class2 = class SideNavItem extends _react.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      expanded: this.props.defaultExpanded || this.props.expanded,\n      focused: false\n    };\n\n    this.setSideNavItemRef = s => this.sideNavItemRef = s;\n\n    this.id = (0, _createId.default)();\n  }\n\n  get hasNestedNav() {\n    const {\n      children\n    } = this.props;\n    return children && typeof children !== 'string';\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    const {\n      expanded\n    } = nextProps;\n\n    if (expanded !== this.props.expanded) {\n      this.setState(prevState => _objectSpread(_objectSpread({}, prevState), {}, {\n        expanded\n      }));\n    }\n  }\n\n  handleClick(e) {\n    this.props.onClick(e);\n    this.onSelectFocused(e);\n  }\n\n  onSelectFocused(e) {\n    const {\n      onSelect,\n      value,\n      expanded,\n      href = e.target ? e.target.href : undefined\n    } = this.props;\n    let isKeyDown = e.type === 'keydown';\n\n    if (!href || isKeyDown) {\n      // When there is no href or if triggered from a keyboard event,\n      // preventDefault and stopPropagation.\n      e.preventDefault();\n      e.stopPropagation(); // If Enter of Space key pressed, trigger click event on event target\n\n      if (isKeyDown && (e.key === 'Enter' || e.key === ' ')) {\n        e.target.click();\n        return;\n      }\n    }\n\n    if (expanded === undefined) {\n      this.setState(prevState => _objectSpread(_objectSpread({}, prevState), {}, {\n        expanded: !prevState.expanded\n      }));\n    }\n\n    onSelect(value, e);\n  }\n  /**\n   * Keyboard event handler to interperet ArrowLeft/ArrowRight to collapse/expand section in multiLevel variant.\n   * @param {KeyboardEvent} e Keyboard event\n   */\n\n\n  onKeyDown(e) {\n    const {\n      isMultiLevel\n    } = this.props;\n    const {\n      expanded\n    } = this.state;\n    const isExpandableItem = isMultiLevel && this.hasNestedNav;\n\n    switch (e.key) {\n      case 'ArrowLeft':\n      case 'Left':\n        if (isExpandableItem) {\n          if (expanded) {\n            if (this.sideNavItemRef && this.sideNavItemRef.querySelector(FOCUSABLE_SIDENAV_ITEMLINK_SELECTOR) === document.activeElement) {\n              this.onSelectFocused(e);\n            } else {\n              e.preventDefault();\n              e.stopPropagation();\n            }\n\n            this.focus();\n          }\n        }\n\n        break;\n\n      case 'ArrowRight':\n      case 'Right':\n        if (isExpandableItem) {\n          if (!expanded) {\n            this.onSelectFocused(e);\n          } else if (this.sideNavItemRef) {\n            const links = Array.from(this.sideNavItemRef.querySelectorAll(FOCUSABLE_SIDENAV_ITEMLINK_SELECTOR));\n\n            if (links.indexOf(e.target) === 0) {\n              links[1].focus();\n            }\n          }\n        }\n\n        break;\n    }\n  }\n\n  onFocus() {\n    this.setState({\n      focused: true\n    });\n  }\n\n  onBlur() {\n    this.setState({\n      focused: false\n    });\n  }\n\n  focus() {\n    if (this.sideNavItemRef) {\n      const link = this.sideNavItemRef.querySelector(FOCUSABLE_SIDENAV_ITEMLINK_SELECTOR);\n      link.focus();\n    }\n  }\n\n  getDescendantId(postfix) {\n    const {\n      id = this.id\n    } = this.props;\n    return postfix ? `${id}-${postfix}` : id;\n  }\n\n  sideNavStyle() {\n    return {};\n  }\n\n  renderLink(label, tabIndex) {\n    let {\n      hidden,\n      id = this.id,\n      icon,\n      disabled,\n      href,\n      renderLink,\n      isMultiLevel,\n      target,\n      _isSelected,\n      'aria-current': ariaCurrent\n    } = this.props;\n    const {\n      expanded,\n      focused\n    } = this.state;\n    const isMultiLevelHeading = this.hasNestedNav && isMultiLevel;\n    let role = disabled || !href ? 'link' : undefined;\n    const props = {\n      href: disabled ? undefined : href,\n      onClick: disabled ? undefined : this.handleClick,\n      onFocus: disabled ? undefined : this.onFocus,\n      onBlur: disabled ? undefined : this.onBlur,\n      tabIndex: disabled ? undefined : tabIndex,\n      className: (0, _classnames.default)('spectrum-SideNav-itemLink', {\n        'is-selected': _isSelected,\n        'is-disabled': disabled,\n        'is-focused': focused,\n        'is-hidden': hidden\n      }),\n      id,\n      role,\n      'aria-disabled': disabled || undefined,\n      'aria-expanded': isMultiLevelHeading ? expanded : undefined,\n      'aria-controls': isMultiLevelHeading && expanded ? this.getDescendantId('child-list') : undefined,\n      'aria-current': _isSelected && !isMultiLevelHeading ? ariaCurrent : undefined,\n      target: disabled || !href ? undefined : target\n    };\n\n    if (renderLink) {\n      return renderLink(props);\n    }\n\n    return /*#__PURE__*/_react.default.createElement(\"a\", props, (0, _icon.cloneIcon)(icon, {\n      className: 'spectrum-SideNav-itemIcon',\n      size: 'S'\n    }), label);\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      header,\n      className,\n      children,\n      disabled,\n      isMultiLevel,\n      renderLink,\n      id = this.id,\n      value,\n      _isSelected,\n      _nestedNavValue,\n      manageTabIndex,\n      onSelect,\n      ariaLevel,\n      hidden\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"header\", \"className\", \"children\", \"disabled\", \"isMultiLevel\", \"renderLink\", \"id\", \"value\", \"_isSelected\", \"_nestedNavValue\", \"manageTabIndex\", \"onSelect\", \"ariaLevel\", \"hidden\"]);\n\n    const {\n      expanded,\n      focused\n    } = this.state;\n    let {\n      label,\n      tabIndex = 0\n    } = this.props;\n\n    if (!label && !header) {\n      label = children;\n    }\n\n    let isCurrent = !!_nestedNavValue && value === _nestedNavValue;\n\n    if (isMultiLevel || manageTabIndex) {\n      tabIndex = isCurrent ? tabIndex : -1;\n    }\n\n    delete otherProps.label;\n    delete otherProps.target;\n    delete otherProps['aria-current'];\n    return /*#__PURE__*/_react.default.createElement(\"li\", _extends({\n      className: (0, _classnames.default)('spectrum-SideNav-item', {\n        'is-selected': _isSelected,\n        'is-disabled': disabled,\n        'is-focused': focused\n      }, className),\n      onKeyDown: disabled ? undefined : (0, _events.chain)(this.onKeyDown, _events.interpretKeyboardEvent.bind(this)),\n      ref: this.setSideNavItemRef\n    }, (0, _filterDOMProps.default)(otherProps)), (label || renderLink) && this.renderLink(label, tabIndex, isMultiLevel), header && /*#__PURE__*/_react.default.createElement(\"h2\", {\n      className: \"spectrum-SideNav-heading\",\n      id: this.getDescendantId('header')\n    }, header), this.hasNestedNav && /*#__PURE__*/_react.default.createElement(_SideNav.default, {\n      isNested: true,\n      variant: isMultiLevel ? 'multiLevel' : undefined,\n      id: this.getDescendantId('child'),\n      \"aria-labelledby\": header ? this.getDescendantId('header') : id,\n      ariaLevel: ariaLevel + 1,\n      hidden: hidden || (isMultiLevel ? !expanded : undefined),\n      value: _nestedNavValue,\n      onSelect: onSelect\n    }, children));\n  }\n\n}, _class2.propTypes = {\n  /**\n   * Custom className of sidenav to apply\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * Whether the item is disabled\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * The label to display in the item\n   */\n  label: _propTypes.default.string,\n\n  /**\n   * The value of item\n   */\n  value: _propTypes.default.string,\n\n  /**\n   * The href of item\n   */\n  href: _propTypes.default.string,\n\n  /**\n   * The target type for item link\n   */\n  target: _propTypes.default.string,\n\n  /**\n   * Icon for item\n   */\n  icon: _propTypes.default.node,\n\n  /**\n   * Whether item should represent the current page within a set of pages or current location within an environment or context when selected.\n   * See <a href=\"https://www.w3.org/TR/wai-aria-1.1/#aria-current\" class=\"spectrum-Link\">WAI-ARIA 1.1 definition of `aria-current (state)`</a>\n   * attribute.\n   */\n  'aria-current': _propTypes.default.oneOf(['page', 'location']),\n\n  /**\n   * Whether the item is expanded in case of multi-level sidenav item\n   */\n  expanded: _propTypes.default.bool,\n\n  /**\n   * Whether the item is expanded at initialization in case of multi-level sidenav item\n   */\n  defaultExpanded: _propTypes.default.bool,\n\n  /**\n   * A function that returns a href wrapper component.\n   * Useful in providing custom href component(eg. Link from react-router-dom).\n   *\n   * ```js\n   *  <SideNavItem renderLink={(props) => <Link {...props} to=\"/\">Foo</Link>}>\n   *  </SideNavItem>\n   * ```\n   */\n  renderLink: _propTypes.default.func,\n\n  /**\n   * A click handler for the item\n   */\n  onClick: _propTypes.default.func,\n\n  /**\n   * A select handler for the item\n   */\n  onSelect: _propTypes.default.func\n}, _class2.defaultProps = {\n  'aria-current': 'page',\n  disabled: false,\n  target: '_self',\n  onSelect: NOOP,\n  onClick: NOOP\n}, _temp)) || _class) || _class) || _class;\n\nexports.default = SideNavItem;","\"use strict\";\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = require('./js/Switch');","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//  so, we are defining this module which forks behavior here so that\n//  SwitchBase can import the appropriate Switch instance either Uxp or normal.\nmodule.exports = _UxpOptions.default.select('SwitchBase', () => require('./UxpSwitchBase'), () => require('./SwitchBase'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Switch;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _MaybeUxpSwitchBase = _interopRequireDefault(require(\"./MaybeUxpSwitchBase\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/toggle/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/toggle/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/toggle/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/toggle/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/toggle/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/toggle/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/toggle/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/toggle/multiStops/darkest.css\");\n\nfunction Switch(_ref) {\n  let {\n    variant,\n    // 'ab'\n    quiet,\n    className\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"variant\", \"quiet\", \"className\"]);\n\n  return /*#__PURE__*/_react.default.createElement(_MaybeUxpSwitchBase.default, _extends({\n    inputType: \"checkbox\",\n    className: (0, _classnames.default)('spectrum-ToggleSwitch', {\n      [`spectrum-ToggleSwitch--${variant}`]: variant,\n      'spectrum-ToggleSwitch--quiet': quiet\n    }, className),\n    inputClassName: \"spectrum-ToggleSwitch-input\",\n    markClassName: \"spectrum-ToggleSwitch-switch\",\n    labelClassName: \"spectrum-ToggleSwitch-label\",\n    role: \"switch\"\n  }, otherProps));\n}\n\nSwitch.displayName = 'Switch';\nSwitch.propTypes = {\n  /**\n  * Class given to switch\n  */\n  className: _propTypes.default.string,\n\n  /**\n  * Whether the switch is checked or not (controlled state)\n  */\n  checked: _propTypes.default.bool,\n\n  /**\n  * Whether the switch should be checked (uncontrolled state)\n  */\n  defaultChecked: _propTypes.default.bool,\n\n  /** Text to add to switch. Can be Text of HTML */\n  label: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n\n  /**\n  * Function called when switch is changed\n  */\n  onChange: _propTypes.default.func,\n\n  /**\n  * Whether switch is a quiet variation\n  */\n  quiet: _propTypes.default.bool,\n\n  /**\n  * Change switch to A/B variant rather an on/off\n  */\n  variant: _propTypes.default.oneOf(['ab'])\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _convertUnsafeMethod = _interopRequireDefault(require(\"../../utils/convertUnsafeMethod\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _events = require(\"../../utils/events\");\n\nvar _focusRing = _interopRequireDefault(require(\"../../utils/focusRing\"));\n\nvar _string = require(\"../../utils/string\");\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet SwitchBase = (0, _convertUnsafeMethod.default)(_class = (0, _focusRing.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SwitchBase extends _react.Component {\n  constructor(props) {\n    super(props);\n    const {\n      checked,\n      defaultChecked\n    } = props;\n    this.state = {\n      checked: checked !== undefined ? checked : defaultChecked || false\n    };\n  }\n\n  UNSAFE_componentWillReceiveProps(nextProps) {\n    if ('checked' in nextProps) {\n      this.setState({\n        checked: nextProps.checked\n      });\n    }\n  }\n\n  focus() {\n    if (this.inputRef && !this.disabled) {\n      this.inputRef.focus();\n    }\n  }\n\n  setChecked(checked) {\n    if (!('checked' in this.props)) {\n      this.setState({\n        checked\n      });\n    }\n  }\n\n  getInput() {\n    return this.inputRef;\n  }\n\n  handleChange(e) {\n    const {\n      onChange\n    } = this.props;\n    const {\n      checked\n    } = e.target;\n    this.setChecked(checked);\n    onChange(checked, e);\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      label,\n      value,\n      name,\n      disabled,\n      required,\n      invalid,\n      readOnly,\n      className,\n      style,\n      children,\n      inputType,\n      renderLabel,\n      inputClassName,\n      markClassName,\n      markIcon,\n      labelClassName,\n      onMouseDown,\n      onMouseUp\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"label\", \"value\", \"name\", \"disabled\", \"required\", \"invalid\", \"readOnly\", \"className\", \"style\", \"children\", \"inputType\", \"renderLabel\", \"inputClassName\", \"markClassName\", \"markIcon\", \"labelClassName\", \"onMouseDown\", \"onMouseUp\"]);\n\n    const {\n      checked\n    } = this.state;\n    const shouldRenderLabel = renderLabel && (label || children);\n    const Element = shouldRenderLabel ? 'label' : 'div'; // Don't let native browser change events bubble up to the root div.\n    // Otherwise we double dispatch.\n\n    delete otherProps.onChange; // Add aria-label that concatenates label and children\n    // when renderLabel is false and no other aria-label is provided.\n\n    let ariaLabel = null;\n\n    if (otherProps['aria-label']) {\n      ariaLabel = otherProps['aria-label'];\n      delete otherProps['aria-label'];\n    } else if (!renderLabel && (label || children)) {\n      let labels = [];\n\n      if (label) {\n        labels.push(label);\n      }\n\n      if (children) {\n        let str = (0, _string.getTextFromReact)(children);\n\n        if (str !== label) {\n          labels.push(str);\n        }\n      }\n\n      ariaLabel = labels.join(' ');\n    } // Fix for ESLint error: The attribute aria-checked is not supported by the role textbox. This role is implicit on the element input  jsx-a11y/role-supports-aria-props\n\n\n    if (inputType && !otherProps['aria-checked']) {\n      otherProps['aria-checked'] = checked;\n    }\n\n    return /*#__PURE__*/_react.default.createElement(Element, {\n      className: (0, _classnames.default)(className, {\n        'is-invalid': invalid,\n        'is-disabled': disabled\n      }),\n      style: style\n    }, /*#__PURE__*/_react.default.createElement(\"input\", _extends({\n      ref: el => this.inputRef = el,\n      type: inputType,\n      className: inputClassName,\n      checked: checked,\n      disabled: disabled,\n      name: name,\n      value: value,\n      required: required ? true : null,\n      readOnly: readOnly,\n      onChange: this.handleChange,\n      onMouseDown: _events.focusAfterMouseEvent.bind(this, onMouseDown),\n      onMouseUp: _events.focusAfterMouseEvent.bind(this, onMouseUp),\n      \"aria-invalid\": invalid || null,\n      \"aria-label\": ariaLabel\n    }, (0, _filterDOMProps.default)(otherProps))), /*#__PURE__*/_react.default.createElement(\"span\", {\n      className: markClassName\n    }, markIcon), shouldRenderLabel && /*#__PURE__*/_react.default.createElement(\"span\", {\n      className: labelClassName\n    }, label,\n    /* When both label and children are present,\n     include a space character so that the text\n     doesn't get smushed together. */\n    label && children && ' ', children));\n  }\n\n}, _class2.defaultProps = {\n  renderLabel: true,\n  // defaultChecked is undefined by default so we can repect\n  // the value that is passed in without erroneously putting\n  // both checked and defaultChecked on the input\n  defaultChecked: undefined,\n  disabled: false,\n  required: false,\n  invalid: false,\n  readOnly: false,\n  onChange: function () {}\n}, _temp)) || _class) || _class) || _class;\n\nexports.default = SwitchBase;\nSwitchBase.displayName = 'SwitchBase';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _events = require(\"../../utils/events\");\n\nvar _string = require(\"../../utils/string\");\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _SwitchBase = _interopRequireDefault(require(\"./SwitchBase\"));\n\nrequire(\"../uxp-style/index.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nclass UxpSwitchBase extends _SwitchBase.default {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.onClickSpan = evt => {\n      evt.stopPropagation();\n    }, _temp;\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      label,\n      value,\n      name,\n      disabled,\n      required,\n      invalid,\n      readOnly,\n      className,\n      style,\n      children,\n      inputType,\n      renderLabel,\n      inputClassName,\n      markClassName,\n      markIcon,\n      labelClassName,\n      onMouseDown,\n      onMouseUp\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"label\", \"value\", \"name\", \"disabled\", \"required\", \"invalid\", \"readOnly\", \"className\", \"style\", \"children\", \"inputType\", \"renderLabel\", \"inputClassName\", \"markClassName\", \"markIcon\", \"labelClassName\", \"onMouseDown\", \"onMouseUp\"]);\n\n    const {\n      checked\n    } = this.state;\n    const shouldRenderLabel = renderLabel && (label || children);\n    const Element = 'label'; // Fix for ESLint error: The attribute aria-checked is not supported by the role textbox. This role is implicit on the element input  jsx-a11y/role-supports-aria-props\n\n    if (inputType && !otherProps['aria-checked']) {\n      otherProps['aria-checked'] = checked;\n    } // Don't let native browser change events bubble up to the root div.\n    // Otherwise we double dispatch.\n\n\n    delete otherProps.onChange; // Add aria-label that concatenates label and children\n    // when renderLabel is false and no other aria-label is provided.\n\n    let ariaLabel = null;\n\n    if (otherProps['aria-label']) {\n      ariaLabel = otherProps['aria-label'];\n      delete otherProps['aria-label'];\n    } else if (!renderLabel && (label || children)) {\n      let labels = [];\n\n      if (label) {\n        labels.push(label);\n      }\n\n      if (children) {\n        let str = (0, _string.getTextFromReact)(children);\n\n        if (str !== label) {\n          labels.push(str);\n        }\n      }\n\n      ariaLabel = labels.join(' ');\n    }\n\n    return /*#__PURE__*/_react.default.createElement(Element, {\n      className: (0, _classnames.default)(className, {\n        'is-invalid': invalid,\n        'is-disabled': disabled\n      }),\n      style: style\n    }, /*#__PURE__*/_react.default.createElement(\"input\", _extends({\n      ref: el => this.inputRef = el,\n      type: inputType,\n      className: (0, _classnames.default)(inputClassName, 'uxp-switchBase'),\n      checked: checked,\n      disabled: disabled,\n      name: name,\n      value: value,\n      required: required ? true : null,\n      readOnly: readOnly,\n      onChange: this.handleChange,\n      onMouseDown: _events.focusAfterMouseEvent.bind(this, onMouseDown),\n      onMouseUp: _events.focusAfterMouseEvent.bind(this, onMouseUp),\n      \"aria-invalid\": invalid || null,\n      \"aria-label\": ariaLabel\n    }, (0, _filterDOMProps.default)(otherProps))), /*#__PURE__*/_react.default.createElement(\"span\", {\n      onClick: this.onClickSpan,\n      className: markClassName\n    }, markIcon), shouldRenderLabel && /*#__PURE__*/_react.default.createElement(\"span\", {\n      onClick: this.onClickSpan,\n      className: labelClassName\n    }, label,\n    /* When both label and children are present,\n     include a space character so that the text\n     doesn't get smushed together. */\n    label && children && ' ', children));\n  }\n\n}\n\nexports.default = UxpSwitchBase;\nUxpSwitchBase.displayName = 'UxpSwitchBase';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"Table\", {\n  enumerable: true,\n  get: function () {\n    return _Table.default;\n  }\n});\nObject.defineProperty(exports, \"THead\", {\n  enumerable: true,\n  get: function () {\n    return _THead.default;\n  }\n});\nObject.defineProperty(exports, \"TBody\", {\n  enumerable: true,\n  get: function () {\n    return _TBody.default;\n  }\n});\nObject.defineProperty(exports, \"TR\", {\n  enumerable: true,\n  get: function () {\n    return _MaybeUxpTR.default;\n  }\n});\nObject.defineProperty(exports, \"TD\", {\n  enumerable: true,\n  get: function () {\n    return _TD.default;\n  }\n});\nObject.defineProperty(exports, \"TH\", {\n  enumerable: true,\n  get: function () {\n    return _TH.default;\n  }\n});\n\nvar _Table = _interopRequireDefault(require(\"./js/Table\"));\n\nvar _THead = _interopRequireDefault(require(\"./js/THead\"));\n\nvar _TBody = _interopRequireDefault(require(\"./js/TBody\"));\n\nvar _MaybeUxpTR = _interopRequireDefault(require(\"./js/MaybeUxpTR\"));\n\nvar _TD = _interopRequireDefault(require(\"./js/TD\"));\n\nvar _TH = _interopRequireDefault(require(\"./js/TH\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//  so, we are defining this module which forks behavior here so that\n//  Table can import the appropriate TR instance either Uxp or normal.\nmodule.exports = _UxpOptions.default.select('TR', () => require('./UxpTR'), () => require('./TR'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = TBody;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * A table body\n */\nfunction TBody(_ref) {\n  let {\n    className,\n    children\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"className\", \"children\"]);\n\n  return /*#__PURE__*/_react.default.createElement(\"tbody\", _extends({\n    className: (0, _classnames.default)('spectrum-Table-body', className)\n  }, (0, _filterDOMProps.default)(otherProps)), children);\n}\n\nTBody.displayName = 'TBody';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = TD;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * A table cell\n */\nfunction TD(_ref) {\n  let {\n    className,\n    children,\n    divider\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"className\", \"children\", \"divider\"]);\n\n  return /*#__PURE__*/_react.default.createElement(\"td\", _extends({\n    className: (0, _classnames.default)('spectrum-Table-cell', {\n      'spectrum-Table-cell--divider': divider\n    }, className)\n  }, (0, _filterDOMProps.default)(otherProps)), children);\n}\n\nTD.displayName = 'TD';\nTD.propTypes = {\n  /** Whether or not to display a vertical dividing line to the right of the cell. */\n  isDivider: _propTypes.default.bool\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = TH;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * A table column header\n */\nfunction TH(_ref) {\n  let {\n    className,\n    children\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"className\", \"children\"]);\n\n  return /*#__PURE__*/_react.default.createElement(\"th\", _extends({\n    className: (0, _classnames.default)('spectrum-Table-headCell', className)\n  }, (0, _filterDOMProps.default)(otherProps)), children);\n}\n\nTH.displayName = 'TH';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = THead;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * A table header row\n */\nfunction THead(_ref) {\n  let {\n    className,\n    children\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"className\", \"children\"]);\n\n  return /*#__PURE__*/_react.default.createElement(\"thead\", _extends({\n    className: (0, _classnames.default)('spectrum-Table-head', className)\n  }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement(\"tr\", null, children));\n}\n\nTHead.displayName = 'THead';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = TR;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * A table row\n */\nfunction TR(_ref) {\n  let {\n    className,\n    children\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"className\", \"children\"]);\n\n  return /*#__PURE__*/_react.default.createElement(\"tr\", _extends({\n    className: (0, _classnames.default)('spectrum-Table-row', className)\n  }, (0, _filterDOMProps.default)(otherProps)), children);\n}\n\nTR.displayName = 'TR';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Table;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/table/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/table/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/table/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/table/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/table/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/table/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/table/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/table/multiStops/darkest.css\");\n\n/**\n * A table\n */\nfunction Table(_ref) {\n  let {\n    quiet,\n    className,\n    children\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"quiet\", \"className\", \"children\"]);\n\n  return /*#__PURE__*/_react.default.createElement(\"table\", _extends({\n    className: (0, _classnames.default)('spectrum-Table', {\n      'spectrum-Table--quiet': quiet\n    }, className)\n  }, (0, _filterDOMProps.default)(otherProps)), children);\n}\n\nTable.displayName = 'Table';\nTable.propTypes = {\n  /** Items to display in the Table. Use Tbody, TD, TH, THead, TR, or other elements permitted in a table. */\n  children: _propTypes.default.node,\n\n  /** Whether or not the table should be rendered using a quiet variant. */\n  quiet: _propTypes.default.bool\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nrequire(\"../uxp-style/index.css\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nclass UxpTR extends _react.Component {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      className,\n      children\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"className\", \"children\"]);\n\n    return /*#__PURE__*/_react.default.createElement(\"tr\", _extends({\n      className: (0, _classnames.default)('spectrum-Table-row', 'spectrum-Table-row-Override', className)\n    }, (0, _filterDOMProps.default)(otherProps)), children);\n  }\n\n}\n\nexports.default = UxpTR;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _Textfield = _interopRequireDefault(require(\"../Textfield\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nlet Textarea = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Textarea extends _react.Component {\n  handleHeightChange(value, e) {\n    const {\n      quiet,\n      onChange\n    } = this.props;\n\n    if (typeof onChange === 'function') {\n      onChange(value, e);\n    }\n\n    if (quiet) {\n      e.target.style.height = 'auto';\n      e.target.style.height = `${e.target.scrollHeight}px`;\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      quiet\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"quiet\"]);\n\n    return /*#__PURE__*/_react.default.createElement(_Textfield.default, _extends({}, otherProps, {\n      multiLine: true,\n      quiet: quiet,\n      onChange: this.handleHeightChange\n    }));\n  }\n\n}, _class2.propTypes = {\n  /** Custom CSS class to add to the textarea */\n  className: _propTypes.default.string,\n\n  /** Whether to disable the textarea */\n  disabled: _propTypes.default.bool,\n\n  /** Whether to show the warning icon and red border */\n  invalid: _propTypes.default.bool,\n\n  /** Function called when focus is taken away from the textarea */\n  onBlur: _propTypes.default.func,\n\n  /** Function called when the textarea value is changed */\n  onChange: _propTypes.default.func,\n\n  /** Function called when focus is put on the textarea */\n  onFocus: _propTypes.default.func,\n\n  /** String to show in the textarea when nothing has been input */\n  placeholder: _propTypes.default.string,\n\n  /** Whether the textarea should render using a quiet variant */\n  quiet: _propTypes.default.bool,\n\n  /** Whether the textarea can only be read */\n  readOnly: _propTypes.default.bool,\n\n  /** Whether the textarea requires user input (shows warning if empty) */\n  required: _propTypes.default.bool\n}, _class2.defaultProps = {\n  disabled: false,\n  invalid: false,\n  quiet: false,\n  readOnly: false,\n  required: false\n}, _temp)) || _class;\n\nexports.default = Textarea;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Textfield', () => require('./js/UxpTextfield'), () => require('./js/Textfield'), () => require('./js/SpUxpTextfield'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _boundingRectOverlapping = _interopRequireDefault(require(\"../../utils/boundingRectOverlapping\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _dna = _interopRequireDefault(require(\"../../utils/dna\"));\n\nvar _validationStateSvg = require(\"./validationStateSvg\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _UxpProvider = require(\"../../Provider/js/UxpProvider\");\n\nvar _Textfield = _interopRequireDefault(require(\"./Textfield\"));\n\nvar _UxpOptions = _interopRequireDefault(require(\"../../utils/UxpOptions\"));\n\nrequire(\"../../utils/style/input.css\");\n\nrequire(\"../uxp-style/index.css\");\n\nvar _icon = require(\"../../utils/icon\");\n\nvar _SpEventUtils = require(\"../../utils/SpEventUtils\");\n\nvar _class, _class2, _temp;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst uxp = window.require && window.require('uxp');\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/textfield/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/textfield/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/textfield/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/textfield/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/darkest.css\");\n\nlet SpUxpTextfield = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SpUxpTextfield extends _Textfield.default {\n  constructor(props) {\n    super(props);\n\n    this.getFontStyle = () => {\n      if (this.inputContainer) {\n        this.fontFamily = window.getComputedStyle(this.inputContainer).getPropertyValue('font-family');\n        this.fontSize = window.getComputedStyle(this.inputContainer).getPropertyValue('font-size');\n        this.fontVariant = window.getComputedStyle(this.inputContainer).getPropertyValue('font-variant');\n        this.inputContainer.removeEventListener('resize', this.getFontStyle);\n      }\n    };\n\n    this.focusInput = () => {\n      this.inputContainer.focus();\n      this.inputContainer.removeEventListener('resize', this.focusInput);\n    };\n\n    this.resize = () => {\n      if (this.inputContainer) {\n        this.inputContainer.focus();\n        this.inFocus = true;\n        this.inputContainer.removeEventListener('resize', this.resize);\n      }\n    };\n\n    this.state = {\n      inputText: '',\n      showFocus: false,\n      overlayPresent: false\n    };\n    this.overlaysMap = new Map();\n    this.inputActive = true; // This event array will be used to avoid calling clients method directly as we want our method to be called instead.\n    // We have called clients method inside our method\n    // onChange is not required since we are calling onChange on onInput event\n\n    this.eventArray = ['onFocus', 'onBlur', 'onInput', 'onChange'];\n  }\n\n  handleEvent(event) {\n    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);\n\n    if (this.props[eventName]) {\n      this.props[eventName].call(event.target, event);\n    }\n  }\n\n  hasPlaceholderText() {\n    if (this.props.placeholder && !this.props.value && !this.state.inputText) {\n      return true;\n    }\n\n    return false;\n  }\n\n  updateSpanStyle() {\n    //  https://git.corp.adobe.com/torq/torq-native/pull/3818\n    //  Using the font styles provided by the host application if any\n    this.inputContainer.style.fontFamily = this.fontFamily;\n    this.inputContainer.style.fontSize = this.fontSize;\n    this.inputContainer.style.fontVariant = this.fontVariant;\n\n    if (uxp.host && uxp.host.name === 'Photoshop') {\n      if (this.hasPlaceholderText()) {\n        this.inputContainer.style.fontStyle = 'italic';\n        this.inputContainer.style.paddingBottom = '1px';\n      }\n    }\n  }\n\n  addSptextfieldEvent() {\n    if (this.inputContainer) {\n      this.inputContainer.addEventListener('input', this.onInput);\n      const eventProps = Object.entries(this.props).filter(([k, v]) => k.startsWith('on') && !this.eventArray.includes(k));\n      eventProps.forEach(([k, v]) => this.inputContainer.addEventListener(k.substr(2).toLowerCase(), this.handleEvent));\n\n      if (!this.props.disabled) {\n        this.inputContainer.addEventListener('focus', this.handleFocus);\n        this.inputContainer.addEventListener('blur', this.handleBlur);\n      }\n    }\n  }\n\n  componentDidMount() {\n    this.addSptextfieldEvent();\n\n    if (this.inputContainer) {\n      this.inputContainer.addEventListener('resize', this.getFontStyle);\n\n      if (!this.props.disabled) {\n        if (this.props.autoFocus) {\n          // wait till the native node is created.\n          this.inputContainer.addEventListener('resize', this.resize);\n        }\n      }\n    }\n  }\n\n  componentDidUpdate() {\n    // After overlay comes all events are removed so need to bbe applied again.\n    this.addSptextfieldEvent();\n\n    if (this.inputContainer && this.inputContainer.nodeName === 'SPAN') {\n      this.updateSpanStyle();\n    }\n\n    if (this.inFocus === true) {\n      const ov = this.isAnyOverlayVisible();\n\n      if (ov) {\n        this.inputActive = false;\n        this.inputContainer.addEventListener('resize', this.focusInput);\n      }\n\n      if (!this.inputActive && !ov) {\n        this.inputContainer.addEventListener('resize', this.focusInput);\n        this.inputActive = true;\n      }\n    } // This is required to get update call in C++ side with value property.\n\n\n    if (this.inputContainer && this.props.value !== undefined) {\n      this.inputContainer.setAttribute('value', this.props.value);\n    }\n  }\n\n  componentWillUnmount() {\n    if (this.inputContainer) {\n      this.inputContainer.removeEventListener('input', this.onInput);\n      const eventProps = Object.entries(this.props).filter(([k, v]) => k.startsWith('on') && !this.eventArray.includes(k));\n      eventProps.forEach(([k, v]) => this.inputContainer.removeEventListener(k.substr(2).toLowerCase(), this.handleEvent));\n\n      if (!this.props.disabled) {\n        this.inputContainer.removeEventListener('focus', this.handleFocus);\n        this.inputContainer.removeEventListener('blur', this.handleBlur);\n\n        if (this.props.autoFocus) {\n          this.inputContainer.removeEventListener('resize', this.resize);\n        }\n      }\n    }\n  }\n\n  focus() {\n    if (!this.props.disabled && this.inputContainer) {\n      this.inputContainer.focus();\n    }\n  }\n\n  isAnyOverlayVisible() {\n    var values = this.overlaysMap.values();\n\n    for (var obj of values) {\n      if (obj.visible) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  onInput(e) {\n    // As setState is async call, saving the target value and passing that to onInput\n    let newValue = e.target.value;\n    this.setState({\n      inputText: e.target.value\n    });\n\n    if (this.props.onChange) {\n      this.props.onChange(newValue, e);\n    }\n  }\n\n  handleClick(e) {\n    this.inputContainer.focus();\n    this.inFocus = true;\n\n    if (this.props.onClick) {\n      this.props.onClick(e);\n    }\n  }\n\n  handleFocus(e) {\n    this.setState({\n      showFocus: true\n    });\n\n    if (this.props.onFocus) {\n      this.props.onFocus(e);\n    }\n\n    this.inFocus = true;\n  }\n\n  handleBlur(e) {\n    this.setState({\n      showFocus: false\n    });\n\n    if (this.props.onBlur) {\n      this.props.onBlur(e);\n    }\n\n    this.inFocus = false;\n  }\n\n  executeOverlayCallbacks() {\n    var values = this.overlaysMap.values();\n\n    for (var obj of values) {\n      if (obj.callback) {\n        obj.callback();\n      }\n    }\n  }\n\n  handleSpanKeyUp(e) {\n    if (this.props.onKeyUp) {\n      this.props.onKeyUp(e);\n    }\n\n    this.executeOverlayCallbacks();\n    e.target.value = e.target.innerHTML;\n\n    if (e.key.length === 1) {\n      e.target.value += e.key;\n    }\n\n    switch (e.keyCode) {\n      case 8:\n        // Backspace\n        if (e.target.value && e.target.value.length > 0) {\n          let orgStr = e.target.value;\n          e.target.value = orgStr.substring(0, orgStr.length - 1);\n        }\n\n        break;\n    }\n\n    this.onInput(e);\n  }\n\n  removeOverlay(overlay) {\n    if (overlay && this.overlaysMap) {\n      this.overlaysMap.delete(overlay.overlayRef);\n    }\n  }\n\n  showInput(overlay) {\n    this.updateOverlayMap(overlay);\n    return this.overlaysMap.size === 0;\n  }\n\n  updateOverlayMap(overlay) {\n    if (!this.searchContainer) {\n      return;\n    }\n\n    const searchContainerBoundingRect = this.searchContainer.getBoundingClientRect();\n\n    if (searchContainerBoundingRect.height === 0 || searchContainerBoundingRect.width === 0) {\n      return;\n    }\n\n    if (overlay) {\n      if (overlay.data.visible && (0, _boundingRectOverlapping.default)(searchContainerBoundingRect, overlay.data.boundingRect)) {\n        this.overlaysMap.set(overlay.overlayRef, overlay.data);\n      } else {\n        this.removeOverlay(overlay);\n      }\n\n      const overlayPresentInMap = this.overlaysMap.has(overlay.overlayRef);\n      const {\n        overlayPresent\n      } = this.state;\n\n      if (overlayPresentInMap !== overlayPresent) {\n        this.setState({\n          overlayPresent: overlayPresentInMap\n        });\n      }\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      className,\n      icon,\n      quiet,\n      style,\n      disabled,\n      required,\n      invalid,\n      readOnly,\n      multiLine,\n      validationState,\n      disableOnOverlay,\n      alwaysNative,\n      hideValidationIcon\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"className\", \"icon\", \"quiet\", \"style\", \"disabled\", \"required\", \"invalid\", \"readOnly\", \"multiLine\", \"validationState\", \"disableOnOverlay\", \"alwaysNative\", \"hideValidationIcon\"]);\n\n    var showFocus = this.state.showFocus;\n    var Tag = multiLine ? 'sp-textarea' : 'sp-textfield';\n    const isInvalid = invalid || validationState === 'invalid' || required && !this.state.inputText;\n    const isValid = validationState === 'valid';\n    delete otherProps.autocompleteInput;\n    delete otherProps.onFocus;\n    delete otherProps.onBlur;\n\n    if (invalid) {\n      console.warn('The \"invalid\" prop of Textfield is deprecated. Please use validationState=\"invalid\" instead.');\n    }\n\n    let displayValidationIcon = required && !this.state.inputText || isInvalid || isValid;\n    let validationIcon = _validationStateSvg.invalidSvg;\n\n    if (isValid) {\n      validationIcon = _validationStateSvg.validSvg;\n    }\n\n    let isDisabled = disabled ? 'disabled' : 'default';\n    let bgStyle = {};\n    return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({\n      scale,\n      theme,\n      productId,\n      disableNativeControls,\n      overlay\n    } = {}) => {\n      if (alwaysNative || !_UxpOptions.default.productNeedsOverlayFix || !(!this.showInput(overlay) || disableOnOverlay && disableNativeControls)) {\n        return /*#__PURE__*/_react.default.createElement(Tag, _extends({\n          ref: s => this.inputContainer = s,\n          class: className,\n          disabled: disabled ? true : null,\n          quiet: quiet ? true : null,\n          invalid: isInvalid ? true : null,\n          valid: isValid ? true : null,\n          readOnly: readOnly ? true : null,\n          \"show-icon\": hideValidationIcon ? false : null,\n          \"background-color\": otherProps.backgroundColor,\n          value: this.state.inputText\n        }, (0, _SpEventUtils.removeEventProps)(otherProps)), icon && /*#__PURE__*/_react.default.createElement(\"div\", {\n          slot: \"icon\"\n        }, \" \", (0, _icon.cloneIcon)(icon, {\n          size: 'S'\n        })));\n      } else {\n        if (showFocus && !isInvalid) {\n          bgStyle['borderColor'] = _dna.default.elements[theme][scale].textfield['default'].states['mouse-focus']['border-color'];\n        }\n\n        let bgColor = _dna.default.elements[theme][scale].textfield['default'].states[isDisabled]['background-color'];\n        bgStyle['backgroundColor'] = bgColor;\n        return (\n          /*#__PURE__*/\n          // Fix lint : Visible, non-interactive elements with click handlers must have at least one keyboard listener.\n          //  This is a workaround to handle the input and overlay overlap issues in Ps and Ai\n          //  https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays\n          //  https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues// Fix lint: Static HTML elements with event handlers require a role, `tabIndex` should only be declared on interactive elements, Avoid positive integer values for tabIndex\n          _react.default.createElement(\"div\", {\n            className: (0, _classnames.default)('spectrum-Textfield', `spectrum--${theme}`, {\n              'spectrum-Textfield--multiline': multiLine,\n              'is-invalid': isInvalid,\n              'is-disabled': disabled,\n              'is-valid': isValid,\n              'spectrum-Textfield--quiet': quiet\n            }, className),\n            style: Object.assign({}, bgStyle, style),\n            ref: s => this.searchContainer = s,\n            disabled: disabled,\n            onClick: !disabled ? this.handleClick : undefined\n          }, /*#__PURE__*/_react.default.createElement(\"span\", {\n            className: \"inputSpan\",\n            target: this.props.value || this.state.inputText ? 'value' : 'placeholder'\n            /* eslint-disable-next-line */\n            ,\n            tabIndex: 0,\n            ref: s => this.inputContainer = s,\n            onKeyUp: this.handleSpanKeyUp,\n            onFocus: !disabled ? this.handleFocus : undefined,\n            onBlur: !disabled ? this.handleBlur : undefined\n          }, this.props.value || this.state.inputText || this.props.placeholder), displayValidationIcon && /*#__PURE__*/_react.default.cloneElement(validationIcon))\n        );\n      }\n    });\n  }\n\n}, _class2.propTypes = _objectSpread(_objectSpread({}, _Textfield.default.propTypes), {}, {\n  alwaysNative: _propTypes.default.bool,\n\n  /** Hide validation icon , by default it will be visible */\n  hideValidationIcon: _propTypes.default.bool,\n\n  /** Sets backround color of input.For quiet state the background color of parent should be passed \n   * since PS doesn't have transparent support */\n  backgroundColor: _propTypes.default.string\n}), _class2.defaultProps = _objectSpread(_objectSpread({}, _Textfield.default.defaultProps), {}, {\n  alwaysNative: false\n}), _temp)) || _class;\n\nexports.default = SpUxpTextfield;\nSpUxpTextfield.displayName = 'SpUxpTextfield';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _class, _class2, _temp;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/textfield/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/textfield/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/textfield/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/textfield/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/darkest.css\");\n\nlet Textfield = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Textfield extends _react.Component {\n  componentDidMount() {\n    if (this.props.autoFocus) {\n      // wait a frame to make sure the textfield in the DOM and focusable\n      requestAnimationFrame(() => this.focus());\n    }\n  }\n\n  focus() {\n    if (!this.props.disabled) {\n      _reactDom.default.findDOMNode(this).focus();\n    }\n  }\n\n  onChange(e) {\n    if (this.props.onChange) {\n      this.props.onChange(e.target.value, e);\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      className,\n      quiet,\n      disabled,\n      required,\n      invalid,\n      readOnly,\n      multiLine,\n      validationState\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"className\", \"quiet\", \"disabled\", \"required\", \"invalid\", \"readOnly\", \"multiLine\", \"validationState\"]);\n\n    var Tag = multiLine ? 'textarea' : 'input';\n    const isInvalid = invalid || validationState === 'invalid';\n    delete otherProps.autoFocus;\n    delete otherProps.autocompleteInput;\n\n    if (invalid) {\n      console.warn('The \"invalid\" prop of Textfield is deprecated. Please use validationState=\"invalid\" instead.');\n    }\n\n    return /*#__PURE__*/_react.default.createElement(Tag, _extends({\n      type: \"text\",\n      className: (0, _classnames.default)('spectrum-Textfield', {\n        'spectrum-Textfield--multiline': multiLine,\n        'is-invalid': isInvalid,\n        'is-valid': validationState === 'valid',\n        'spectrum-Textfield--quiet': quiet\n      }, className),\n      disabled: disabled,\n      required: required,\n      readOnly: readOnly,\n      \"aria-invalid\": isInvalid || null,\n      defaultValue: otherProps.defaultValue\n    }, (0, _filterDOMProps.default)(otherProps), {\n      onChange: this.onChange,\n      rows: multiLine && !quiet ? otherProps.rows : 1\n    }));\n  }\n\n}, _class2.propTypes = {\n  /** Whether to automatically focus this text field */\n  autoFocus: _propTypes.default.bool,\n\n  /** Custom CSS class to add to the text field */\n  className: _propTypes.default.string,\n\n  /** Whether to disable the text field */\n  disabled: _propTypes.default.bool,\n\n  /** Whether to show the warning icon and red border. DEPRECATED: use validationState instead */\n  invalid: _propTypes.default.bool,\n\n  /** Whether to render a textfield that accepts multiple lines of text */\n  multiLine: _propTypes.default.bool,\n\n  /** Function called when focus is taken away from the text field */\n  onBlur: _propTypes.default.func,\n\n  /** Function called when the text field value is changed */\n  onChange: _propTypes.default.func,\n\n  /** Function called when focus is put on the text field */\n  onFocus: _propTypes.default.func,\n\n  /** String to show in the text field when nothing has been input */\n  placeholder: _propTypes.default.string,\n\n  /** Whether the text field should render using a quiet variant */\n  quiet: _propTypes.default.bool,\n\n  /** Whether the text field can only be read */\n  readOnly: _propTypes.default.bool,\n\n  /** Whether the text field requires user input (shows warning if empty) */\n  required: _propTypes.default.bool,\n\n  /** Show either checkmark or warning icons */\n  validationState: _propTypes.default.oneOf(['valid', 'invalid'])\n}, _class2.defaultProps = {\n  autoFocus: false,\n  disabled: false,\n  quiet: false,\n  required: false,\n  invalid: false,\n  readOnly: false\n}, _temp)) || _class;\n\nexports.default = Textfield;\nTextfield.displayName = 'Textfield';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _boundingRectOverlapping = _interopRequireDefault(require(\"../../utils/boundingRectOverlapping\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _dna = _interopRequireDefault(require(\"../../utils/dna\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _validationStateSvg = require(\"./validationStateSvg\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _UxpProvider = require(\"../../Provider/js/UxpProvider\");\n\nvar _Textfield = _interopRequireDefault(require(\"./Textfield\"));\n\nvar _UxpOptions = _interopRequireDefault(require(\"../../utils/UxpOptions\"));\n\nrequire(\"../../utils/style/input.css\");\n\nrequire(\"../uxp-style/index.css\");\n\nvar _class, _class2, _temp;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nconst uxp = window.require && window.require('uxp');\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/textfield/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/textfield/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/textfield/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/textfield/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/textfield/multiStops/darkest.css\");\n\nlet UxpTextfield = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class UxpTextfield extends _Textfield.default {\n  constructor(props) {\n    var _this;\n\n    super(props);\n    _this = this;\n    this.updateThemeFromHost = /*#__PURE__*/_asyncToGenerator(function* () {\n      if (uxp.host.getTheme && typeof uxp.host.getTheme === 'function') {\n        const hostTheme = yield uxp.host.getTheme();\n\n        _this.setState({\n          hostTheme\n        });\n      }\n    });\n\n    this.getFontStyle = () => {\n      if (this.inputContainer) {\n        this.fontFamily = window.getComputedStyle(this.inputContainer).getPropertyValue('font-family');\n        this.fontSize = window.getComputedStyle(this.inputContainer).getPropertyValue('font-size');\n        this.fontVariant = window.getComputedStyle(this.inputContainer).getPropertyValue('font-variant');\n        this.inputContainer.removeEventListener('resize', this.getFontStyle);\n      }\n    };\n\n    this.focusInput = () => {\n      this.inputContainer.focus();\n      this.inputContainer.removeEventListener('resize', this.focusInput);\n    };\n\n    this.resize = () => {\n      if (this.inputContainer) {\n        this.inputContainer.focus();\n        this.inputContainer.select();\n        this.inFocus = true;\n        this.inputContainer.removeEventListener('resize', this.resize);\n      }\n    };\n\n    this.state = {\n      inputText: '',\n      showFocus: false,\n      overlayPresent: false,\n      hostTheme: 'light'\n    };\n    this.overlaysMap = new Map();\n    this.inputActive = true;\n  }\n\n  componentDidMount() {\n    if (this.inputContainer) {\n      this.inputContainer.addEventListener('resize', this.getFontStyle);\n\n      if (this.props.autoFocus && !this.props.disabled) {\n        // wait till the native node is created.\n        this.inputContainer.addEventListener('resize', this.resize);\n      }\n    } // Update theme from host initially, and listen to theme-change events\n\n\n    if (uxp.host && uxp.host.addEventListener && typeof uxp.host.addEventListener === 'function') {\n      this.updateThemeFromHost();\n      uxp.host.addEventListener('themechanged', this.updateThemeFromHost);\n    }\n  }\n\n  hasPlaceholderText() {\n    if (this.props.placeholder && !this.props.value && !this.state.inputText) {\n      return true;\n    }\n\n    return false;\n  }\n\n  updateSpanStyle() {\n    //  https://git.corp.adobe.com/torq/torq-native/pull/3818\n    //  Using the font styles provided by the host application if any\n    this.inputContainer.style.fontFamily = this.fontFamily;\n    this.inputContainer.style.fontSize = this.fontSize;\n    this.inputContainer.style.fontVariant = this.fontVariant;\n\n    if (uxp.host && uxp.host.name === 'Photoshop') {\n      if (this.hasPlaceholderText()) {\n        this.inputContainer.style.fontStyle = 'italic';\n        this.inputContainer.style.paddingBottom = '1px';\n      }\n    } else if (uxp.host && (uxp.host.isDrover || uxp.host.name === 'Illustrator')) {\n      if (this.hasPlaceholderText()) {\n        // https://jira.corp.adobe.com/browse/UXP-15305\n        if (uxp.host.name === 'InDesign') {\n          this.inputContainer.style.fontFamily = 'AdobeCleanUX-It';\n          this.inputContainer.style.paddingBottom = '3px';\n        } else if (uxp.host.name === 'Illustrator') {\n          this.inputContainer.style.fontStyle = 'italic';\n        } else {\n          this.inputContainer.style.fontStyle = 'italic';\n          this.inputContainer.style.fontSize = '11px';\n        }\n      }\n\n      if (uxp.host.name === 'Illustrator') {\n        this.inputContainer.style.paddingBottom = '4px';\n      }\n\n      this.inputContainer.style.paddingLeft = '4px';\n\n      if (!this.props.quiet && uxp.host.name !== 'Illustrator') {\n        this.inputContainer.style.paddingBottom = '1px';\n      }\n    }\n  }\n\n  componentDidUpdate() {\n    if (this.inputContainer && this.inputContainer.nodeName === 'SPAN') {\n      this.updateSpanStyle();\n    }\n\n    if (this.inFocus === true) {\n      const ov = this.isAnyOverlayVisible();\n\n      if (ov) {\n        this.inputActive = false;\n        this.inputContainer.addEventListener('resize', this.focusInput);\n      }\n\n      if (!this.inputActive && !ov) {\n        this.inputContainer.addEventListener('resize', this.focusInput);\n        this.inputActive = true;\n      }\n    }\n  }\n\n  focus() {\n    if (!this.props.disabled && this.inputContainer) {\n      this.inputContainer.focus();\n    }\n  }\n\n  isAnyOverlayVisible() {\n    var values = this.overlaysMap.values();\n\n    for (var obj of values) {\n      if (obj.visible) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  componentWillUnmount() {\n    if (uxp.host && uxp.host.removeEventListener && typeof uxp.host.removeEventListener === 'function') {\n      uxp.host.removeEventListener('themechanged', this.updateThemeFromHost);\n    }\n\n    if (this.props.autoFocus && !this.props.disabled && this.inputContainer) {\n      this.inputContainer.removeEventListener('resize', this.resize);\n    }\n  }\n\n  onChange(e) {\n    this.setState({\n      inputText: e.target.value\n    });\n\n    if (this.props.onChange) {\n      this.props.onChange(e.target.value, e);\n    }\n  }\n\n  handleClick(e) {\n    this.inputContainer.focus();\n    this.inFocus = true;\n\n    if (this.props.onClick) {\n      this.props.onClick(e);\n    }\n  }\n\n  handleFocus(e) {\n    this.setState({\n      showFocus: true\n    });\n\n    if (this.props.onFocus) {\n      this.props.onFocus(e);\n    }\n\n    this.inFocus = true;\n  }\n\n  handleBlur(e) {\n    this.setState({\n      showFocus: false\n    });\n\n    if (this.props.onBlur) {\n      this.props.onBlur(e);\n    }\n\n    this.inFocus = false;\n  }\n\n  executeOverlayCallbacks() {\n    var values = this.overlaysMap.values();\n\n    for (var obj of values) {\n      if (obj.callback) {\n        obj.callback();\n      }\n    }\n  }\n\n  handleSpanKeyUp(e) {\n    if (this.props.onKeyUp) {\n      this.props.onKeyUp(e);\n    }\n\n    this.executeOverlayCallbacks();\n    e.target.value = e.target.innerHTML;\n\n    if (e.key.length === 1) {\n      e.target.value += e.key;\n    }\n\n    switch (e.keyCode) {\n      case 8:\n        // Backspace\n        if (e.target.value && e.target.value.length > 0) {\n          let orgStr = e.target.value;\n          e.target.value = orgStr.substring(0, orgStr.length - 1);\n        }\n\n        break;\n    }\n\n    this.onChange(e);\n  }\n\n  removeOverlay(overlay) {\n    if (overlay && this.overlaysMap) {\n      this.overlaysMap.delete(overlay.overlayRef);\n    }\n  }\n\n  showInput(overlay) {\n    this.updateOverlayMap(overlay);\n    return this.overlaysMap.size === 0;\n  }\n\n  updateOverlayMap(overlay) {\n    if (!this.searchContainer) {\n      return;\n    }\n\n    const searchContainerBoundingRect = this.searchContainer.getBoundingClientRect();\n\n    if (searchContainerBoundingRect.height === 0 || searchContainerBoundingRect.width === 0) {\n      return;\n    }\n\n    if (overlay) {\n      if (overlay.data.visible && (0, _boundingRectOverlapping.default)(searchContainerBoundingRect, overlay.data.boundingRect)) {\n        this.overlaysMap.set(overlay.overlayRef, overlay.data);\n      } else {\n        this.removeOverlay(overlay);\n      }\n\n      const overlayPresentInMap = this.overlaysMap.has(overlay.overlayRef);\n      const {\n        overlayPresent\n      } = this.state;\n\n      if (overlayPresentInMap !== overlayPresent) {\n        this.setState({\n          overlayPresent: overlayPresentInMap\n        });\n      }\n    }\n  }\n\n  handlePassword(props) {\n    let characters = '';\n    let text = '';\n\n    if (props.value) {\n      characters = props.value.length;\n    }\n\n    if (props.inputText && props.inputText.length > characters) {\n      characters = props.inputText.length;\n    }\n    /* [UXP-19308]: Password textfield should have a custom password character support */\n\n\n    for (let i = 0; i < characters; i++) {\n      text += '●';\n    }\n\n    return text ? text : props.placeholder;\n  }\n\n  displayValidationIcon(props) {\n    if (props.required && !this.state.inputText && !props.value || props.invalid || props.validationState) {\n      return true;\n    }\n\n    return false;\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      className,\n      style,\n      quiet,\n      disabled,\n      required,\n      invalid,\n      readOnly,\n      multiLine,\n      validationState,\n      disableOnOverlay,\n      alwaysNative\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"className\", \"style\", \"quiet\", \"disabled\", \"required\", \"invalid\", \"readOnly\", \"multiLine\", \"validationState\", \"disableOnOverlay\", \"alwaysNative\"]);\n\n    var showFocus = this.state.showFocus;\n    var Tag = multiLine ? 'textarea' : 'input';\n    const isInvalid = invalid || validationState === 'invalid' || required && !this.state.inputText;\n    const isValid = validationState === 'valid';\n    delete otherProps.autoFocus;\n    delete otherProps.autocompleteInput;\n    delete otherProps.onFocus;\n    delete otherProps.onBlur;\n\n    if (invalid) {\n      console.warn('The \"invalid\" prop of Textfield is deprecated. Please use validationState=\"invalid\" instead.');\n    }\n\n    let validationIcon = _validationStateSvg.invalidSvg;\n\n    if (isValid) {\n      validationIcon = _validationStateSvg.validSvg;\n    }\n\n    let isDisabled = disabled ? 'disabled' : 'default';\n    let bgStyle = {};\n    return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({\n      scale,\n      theme: providerTheme,\n      productId,\n      disableNativeControls,\n      overlay\n    } = {}) => {\n      const {\n        hostTheme\n      } = this.state;\n      let theme = providerTheme; // In case SpectrumContext is lost for the textfield, providerTheme defaults to light\n      // Check if host theme is dark-ish and use dark theme for that case \n\n      if (theme === 'light' && ['dark', 'darkest'].includes(hostTheme)) {\n        theme = 'dark';\n      }\n\n      if (showFocus && !isInvalid) {\n        bgStyle['borderColor'] = _dna.default.elements[theme][scale].textfield['default'].states['mouse-focus']['border-color'];\n      }\n\n      let bgColor = _dna.default.elements[theme][scale].textfield['default'].states[isDisabled]['background-color'];\n      bgStyle['backgroundColor'] = bgColor;\n      return (\n        /*#__PURE__*/\n        // Fix lint : Visible, non-interactive elements with click handlers must have at least one keyboard listener.\n        _react.default.createElement(\"div\", {\n          className: (0, _classnames.default)('spectrum-Textfield', `spectrum--${theme}`, {\n            'spectrum-Textfield--multiline': multiLine,\n            'is-invalid': isInvalid,\n            'is-disabled': disabled,\n            'is-valid': isValid,\n            'spectrum-Textfield--quiet': quiet\n          }, className),\n          style: Object.assign({}, bgStyle, style),\n          ref: s => this.searchContainer = s,\n          disabled: disabled,\n          onClick: !disabled ? this.handleClick : undefined\n        }, alwaysNative || !_UxpOptions.default.productNeedsOverlayFix || !(!this.showInput(overlay) || disableOnOverlay && disableNativeControls) ? /*#__PURE__*/_react.default.createElement(Tag, _extends({\n          type: \"text\",\n          className: \"inputText\",\n          ref: s => this.inputContainer = s,\n          style: {\n            appearance: 'none',\n            backgroundColor: 'inherit'\n          },\n          onFocus: !disabled ? this.handleFocus : undefined,\n          onBlur: !disabled ? this.handleBlur : undefined,\n          value: this.state.inputText,\n          disabled: disabled,\n          required: required,\n          readOnly: readOnly,\n          \"aria-invalid\": isInvalid || null,\n          defaultValue: otherProps.defaultValue\n        }, (0, _filterDOMProps.default)(otherProps), {\n          onChange: this.onChange,\n          rows: multiLine && !quiet ? otherProps.rows : 1\n        })) :\n        /*#__PURE__*/\n        //  This is a workaround to handle the input and overlay overlap issues in Ps and Ai\n        //  https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays\n        //  https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues// Fix lint: Static HTML elements with event handlers require a role, `tabIndex` should only be declared on interactive elements, Avoid positive integer values for tabIndex\n        _react.default.createElement(\"span\", {\n          className: \"inputSpan\",\n          target: this.props.value || this.state.inputText ? 'value' : 'placeholder'\n          /* eslint-disable-next-line */\n          ,\n          tabIndex: 0,\n          ref: s => this.inputContainer = s,\n          onKeyUp: this.handleSpanKeyUp,\n          onFocus: !disabled ? this.handleFocus : undefined,\n          onBlur: !disabled ? this.handleBlur : undefined\n        }, this.props.type !== 'password' ? this.props.value || this.state.inputText || this.props.placeholder : this.handlePassword(this.props)), this.displayValidationIcon(this.props) && /*#__PURE__*/_react.default.cloneElement(validationIcon))\n      );\n    });\n  }\n\n}, _class2.propTypes = _objectSpread(_objectSpread({}, _Textfield.default.propTypes), {}, {\n  alwaysNative: _propTypes.default.bool\n}), _class2.defaultProps = _objectSpread(_objectSpread({}, _Textfield.default.defaultProps), {}, {\n  alwaysNative: false\n}), _temp)) || _class;\n\nexports.default = UxpTextfield;\nUxpTextfield.displayName = 'UxpTextfield';","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.invalidSvg = exports.validSvg = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst validSvg = /*#__PURE__*/_react.default.createElement(\"svg\", {\n  id: \"valid_svg\",\n  height: \"12\",\n  viewBox: \"0 0 12 12\",\n  width: \"36\"\n}, /*#__PURE__*/_react.default.createElement(\"path\", {\n  style: {\n    fill: 'rgb(18, 128, 92)'\n  },\n  d: \"M4.5 10a1.023 1.023 0 0 1-.8-.384l-2.488-3a1 1 0 0 1 1.577-1.233L4.5 7.376l4.712-5.991a1 1 0 1 1 1.576 1.23l-5.511 7A.977.977 0 0 1 4.5 10z\"\n}));\n\nexports.validSvg = validSvg;\n\nconst invalidSvg = /*#__PURE__*/_react.default.createElement(\"svg\", {\n  id: \"invalid_svg\",\n  height: \"18\",\n  viewBox: \"0 0 18 18\",\n  width: \"42\"\n}, /*#__PURE__*/_react.default.createElement(\"path\", {\n  style: {\n    fill: 'rgb(227, 72, 80)'\n  },\n  d: \"M8.564 1.289L.2 16.256A.5.5 0 0 0 .636 17h16.728a.5.5 0 0 0 .5-.5.494.494 0 0 0-.064-.244L9.436 1.289a.5.5 0 0 0-.872 0zM10 14.75a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z\"\n}));\n\nexports.invalidSvg = invalidSvg;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nObject.defineProperty(exports, \"default\", {\n  enumerable: true,\n  get: function () {\n    return _MaybeUxpToast.default;\n  }\n});\nObject.defineProperty(exports, \"Toast\", {\n  enumerable: true,\n  get: function () {\n    return _MaybeUxpToast.default;\n  }\n});\n\nvar _MaybeUxpToast = _interopRequireDefault(require(\"./js/MaybeUxpToast\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//  so, we are defining this module which forks behavior here so that\n//  ToastContainer can import the appropriate Toast instance either Uxp or normal.\nmodule.exports = _UxpOptions.default.select('Toast', () => require('./UxpToast'), () => require('./Toast'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Toast;\nexports.DEFAULT_ROLE = exports.ICONS = exports.formatMessage = void 0;\n\nvar _AlertMedium = _interopRequireDefault(require(\"../../Icon/core/AlertMedium\"));\n\nvar _Button = _interopRequireDefault(require(\"../../Button\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _CrossMedium = _interopRequireDefault(require(\"../../Icon/core/CrossMedium\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _InfoMedium = _interopRequireDefault(require(\"../../Icon/core/InfoMedium\"));\n\nvar _intl = require(\"../../utils/intl\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _SuccessMedium = _interopRequireDefault(require(\"../../Icon/core/SuccessMedium\"));\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst intlMessages = {\n  \"cs-CZ\": _interopRequireDefault(require(\"./../intl/cs-CZ.json\")).default,\n  \"da-DK\": _interopRequireDefault(require(\"./../intl/da-DK.json\")).default,\n  \"de-DE\": _interopRequireDefault(require(\"./../intl/de-DE.json\")).default,\n  \"en-US\": _interopRequireDefault(require(\"./../intl/en-US.json\")).default,\n  \"es-ES\": _interopRequireDefault(require(\"./../intl/es-ES.json\")).default,\n  \"fi-FI\": _interopRequireDefault(require(\"./../intl/fi-FI.json\")).default,\n  \"fr-FR\": _interopRequireDefault(require(\"./../intl/fr-FR.json\")).default,\n  \"hu-HU\": _interopRequireDefault(require(\"./../intl/hu-HU.json\")).default,\n  \"it-IT\": _interopRequireDefault(require(\"./../intl/it-IT.json\")).default,\n  \"ja-JP\": _interopRequireDefault(require(\"./../intl/ja-JP.json\")).default,\n  \"ko-KR\": _interopRequireDefault(require(\"./../intl/ko-KR.json\")).default,\n  \"nb-NO\": _interopRequireDefault(require(\"./../intl/nb-NO.json\")).default,\n  \"nl-NL\": _interopRequireDefault(require(\"./../intl/nl-NL.json\")).default,\n  \"pl-PL\": _interopRequireDefault(require(\"./../intl/pl-PL.json\")).default,\n  \"pt-BR\": _interopRequireDefault(require(\"./../intl/pt-BR.json\")).default,\n  \"ru-RU\": _interopRequireDefault(require(\"./../intl/ru-RU.json\")).default,\n  \"sv-SE\": _interopRequireDefault(require(\"./../intl/sv-SE.json\")).default,\n  \"tr-TR\": _interopRequireDefault(require(\"./../intl/tr-TR.json\")).default,\n  \"uk-UA\": _interopRequireDefault(require(\"./../intl/uk-UA.json\")).default,\n  \"zh-CN\": _interopRequireDefault(require(\"./../intl/zh-CN.json\")).default,\n  \"zh-TW\": _interopRequireDefault(require(\"./../intl/zh-TW.json\")).default\n};\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/toast/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/toast/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/toast/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/toast/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/toast/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/toast/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/toast/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/toast/multiStops/darkest.css\");\nconst formatMessage = (0, _intl.messageFormatter)(intlMessages);\nexports.formatMessage = formatMessage;\nconst ICONS = {\n  error: _AlertMedium.default,\n  warning: _AlertMedium.default,\n  info: _InfoMedium.default,\n  success: _SuccessMedium.default\n};\nexports.ICONS = ICONS;\nconst DEFAULT_ROLE = 'alert';\nexports.DEFAULT_ROLE = DEFAULT_ROLE;\n\nfunction Toast(_ref) {\n  let {\n    variant,\n    children,\n    closable,\n    onClose,\n    onAction,\n    className,\n    timeout,\n    actionLabel,\n    closeOnAction\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"variant\", \"children\", \"closable\", \"onClose\", \"onAction\", \"className\", \"timeout\", \"actionLabel\", \"closeOnAction\"]);\n\n  let Icon = ICONS[variant];\n  let role = otherProps.role || DEFAULT_ROLE;\n\n  const handleAction = (...args) => {\n    if (onAction) {\n      onAction(...args);\n    }\n\n    if (closeOnAction && onClose) {\n      onClose(...args);\n    }\n  };\n\n  return /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n    role: role,\n    className: (0, _classnames.default)('spectrum-Toast', {\n      ['spectrum-Toast--' + variant]: variant\n    }, className)\n  }, (0, _filterDOMProps.default)(otherProps)), Icon && /*#__PURE__*/_react.default.createElement(Icon, {\n    size: null,\n    className: \"spectrum-Toast-typeIcon\",\n    alt: formatMessage(variant)\n  }), /*#__PURE__*/_react.default.createElement(\"div\", {\n    className: \"spectrum-Toast-body\"\n  }, /*#__PURE__*/_react.default.createElement(\"div\", {\n    className: \"spectrum-Toast-content\"\n  }, children), actionLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {\n    label: actionLabel,\n    quiet: true,\n    variant: \"overBackground\",\n    onClick: handleAction\n  })), closable && /*#__PURE__*/_react.default.createElement(\"div\", {\n    className: \"spectrum-Toast-buttons\"\n  }, /*#__PURE__*/_react.default.createElement(\"button\", {\n    \"aria-label\": formatMessage('close'),\n    className: \"spectrum-ClearButton spectrum-ClearButton--medium spectrum-ClearButton--overBackground\",\n    onClick: onClose\n  }, /*#__PURE__*/_react.default.createElement(_CrossMedium.default, {\n    size: null\n  }))));\n}\n\nToast.propTypes = {\n  /** Contents to be displayed in the Toast. */\n  children: _propTypes.default.node,\n\n  /** Variant of toast to use. */\n  variant: _propTypes.default.oneOf(['error', 'warning', 'info', 'success']),\n\n  /** Whether to show close button on toast. */\n  closable: _propTypes.default.bool,\n\n  /** Label for action button. */\n  actionLabel: _propTypes.default.string,\n\n  /** Should the action button close the toast? */\n  closeOnAction: _propTypes.default.bool,\n\n  /** Function called when toast is closed. */\n  onClose: _propTypes.default.func,\n\n  /** Function called when action button is clicked. */\n  onAction: _propTypes.default.func,\n\n  /**\n   * Set the amount of time in milliseconds that the toast should persist.\n   * If set to 0, the toast will remain until closed manually.\n  */\n  timeout: _propTypes.default.number\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.Response = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _CrossMedium = _interopRequireDefault(require(\"../../Icon/core/CrossMedium\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _setOverlayOnProvider = _interopRequireDefault(require(\"../../utils/setOverlayOnProvider\"));\n\nvar _timer = _interopRequireDefault(require(\"../../utils/timer\"));\n\nvar _Toast = _interopRequireWildcard(require(\"./Toast\"));\n\nrequire(\"../uxp-style/index.css\");\n\nvar _class;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst TOAST_TIMEOUT = 5000;\nconst Response = {\n  Timeout: 'Timeout',\n  User: 'User'\n};\nexports.Response = Response;\n\nlet UxpToast = (0, _autobindDecorator.default)(_class = class UxpToast extends _react.Component {\n  constructor(props) {\n    super(props);\n\n    this.toastHandler = () => {\n      (0, _setOverlayOnProvider.default)(this.toastRef, true);\n    };\n  }\n\n  componentDidMount() {\n    if (this.toastRef) {\n      window.addEventListener('resize', this.toastHandler);\n      let timeout = this.props.timeout;\n\n      if (timeout) {\n        if (timeout < 0) {\n          timeout = TOAST_TIMEOUT;\n        }\n\n        this.toastTimerInfo = timeout === 0 ? null : new _timer.default(this.onRemoveToast.bind(), timeout);\n      }\n    }\n  }\n\n  componentWillUnmount() {\n    (0, _setOverlayOnProvider.default)(this.toastRef, false);\n    window.removeEventListener('resize', this.toastHandler);\n    this.toastTimerInfo = null;\n  }\n\n  handleKeyDown(event) {\n    // keyDown is fired by Space key (Space keycode is equivalent to 32)\n    if (event.keyCode === 32) {\n      document.getElementById('closeButton').className = (0, _classnames.default)(' spectrum-ClearButton spectrum-ClearButton--medium spectrum-ClearButton--overBackground spectrum-ClearButton-Override spectrum-ClearButton--overBackground-active spectrum-ClearButton--overBackground-active-Override');\n    }\n  }\n\n  handleKeyUp(event) {\n    // keyUp is fired by Space key\n    if (event.keyCode === 32) {\n      document.getElementById('closeButton').className = (0, _classnames.default)(' spectrum-ClearButton spectrum-ClearButton--medium spectrum-ClearButton--overBackground spectrum-ClearButton-Override spectrum-ClearButton--overBackground-focus-ring spectrum-ClearButton--overBackground-focus-ring-Override');\n      this.handleOnClose();\n    }\n  }\n\n  handleOnBlur(event) {\n    document.getElementById('closeButton').className = (0, _classnames.default)(' spectrum-ClearButton spectrum-ClearButton--medium spectrum-ClearButton--overBackground spectrum-ClearButton-Override');\n  }\n\n  onRemoveToast() {\n    if (this.toastTimerInfo && this.props.onClose) {\n      this.props.onClose(Response.Timeout);\n    }\n  }\n\n  handleOnClose() {\n    if (this.props.onClose) {\n      this.props.onClose(Response.User);\n    }\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      variant,\n      children,\n      closable,\n      onClose,\n      onAction,\n      className,\n      actionLabel,\n      closeOnAction,\n      icon\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"variant\", \"children\", \"closable\", \"onClose\", \"onAction\", \"className\", \"actionLabel\", \"closeOnAction\", \"icon\"]);\n\n    let Icon = icon || _Toast.ICONS[variant];\n    let role = otherProps.role || _Toast.DEFAULT_ROLE;\n\n    const handleAction = (...args) => {\n      if (onAction) {\n        onAction(...args);\n      }\n\n      if (closeOnAction && onClose) {\n        onClose(...args);\n      }\n    };\n\n    return /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n      ref: r => this.toastRef = r,\n      role: role,\n      className: (0, _classnames.default)('spectrum-Toast', {\n        ['spectrum-Toast--' + variant]: variant\n      }, className)\n    }, (0, _filterDOMProps.default)(otherProps)), Icon && /*#__PURE__*/_react.default.createElement(Icon, {\n      size: null,\n      className: \"spectrum-Toast-typeIcon\",\n      alt: (0, _Toast.formatMessage)(variant)\n    }), /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-Toast-body\"\n    }, /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-Toast-content\"\n    }, children), actionLabel && /*#__PURE__*/_react.default.createElement(\"div\", {\n      tabIndex: \"0\",\n      role: \"button\",\n      className: (0, _classnames.default)('spectrum-Button spectrum-Button--quiet spectrum-Button--overBackground', 'uxp-labelStyle'),\n      onClick: handleAction\n    }, actionLabel)), closable && /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-Toast-buttons\"\n    }, /*#__PURE__*/_react.default.createElement(\"div\", {\n      id: \"closeButton\",\n      tabIndex: \"0\",\n      role: \"button\",\n      onBlur: this.handleOnBlur,\n      onKeyDown: this.handleKeyDown,\n      onKeyUp: this.handleKeyUp,\n      className: (0, _classnames.default)('spectrum-ClearButton spectrum-ClearButton--medium spectrum-ClearButton--overBackground', 'spectrum-ClearButton-Override'),\n      onClick: this.handleOnClose\n    }, /*#__PURE__*/_react.default.createElement(_CrossMedium.default, {\n      size: null\n    }))));\n  }\n\n}) || _class;\n\nexports.default = UxpToast;\nUxpToast.propTypes = _Toast.default.propTypes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.setToastPlacement = setToastPlacement;\nexports.TOAST_PLACEMENT = exports.TOAST_CONTAINERS = void 0;\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nconst TOAST_CONTAINERS = new Map();\nexports.TOAST_CONTAINERS = TOAST_CONTAINERS;\nlet TOAST_PLACEMENT = 'top center';\nexports.TOAST_PLACEMENT = TOAST_PLACEMENT;\n\nfunction setToastPlacement(placement) {\n  exports.TOAST_PLACEMENT = TOAST_PLACEMENT = placement;\n\n  for (let container of TOAST_CONTAINERS.values()) {\n    container.setState({\n      placement\n    });\n  }\n}","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Tooltip', () => require('./js/UxpTooltip'), () => require('./js/Tooltip'), () => require('./js/SpUxpTooltip'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Tooltip = _interopRequireDefault(require(\"./Tooltip\"));\n\nrequire(\"../sp-uxp-style/index.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n// maps from our variant names to Spectrum UXP variant names\nconst SpUxpVariantMap = {\n  inspect: 'neutral',\n  info: 'info',\n  error: 'negative',\n  success: 'positive'\n};\n\nclass SpUxpTooltip extends _Tooltip.default {\n  render() {\n    const _this$props = this.props,\n          {\n      variant,\n      children,\n      className,\n      placement = 'right',\n      open,\n      id = this.tooltipId\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"variant\", \"children\", \"className\", \"placement\", \"open\", \"id\"]); // Unlike Spectrum UXP, Spectrum CSS tooltip has a spacing b/w anchor element and tooltip.\n    // `sp-tooltip-translate-${placement}` classes simulate existing RS tooltip by adding the same transform on top of Spectrum UXP tooltip.\n\n\n    return /*#__PURE__*/_react.default.createElement(\"sp-tooltip\", _extends({\n      ref: r => this.tooltipRef = r,\n      class: (0, _classnames.default)(`sp-tooltip-translate-${placement}`, className),\n      id: id,\n      variant: SpUxpVariantMap[variant],\n      placement: placement,\n      open: open\n    }, otherProps), children);\n  }\n\n}\n\nexports.default = SpUxpTooltip;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _createId = _interopRequireDefault(require(\"../../utils/createId\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/tooltip/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/tooltip/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/tooltip/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/tooltip/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/tooltip/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/tooltip/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/tooltip/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/tooltip/multiStops/darkest.css\");\n\nclass Tooltip extends _react.Component {\n  constructor(props) {\n    super(props);\n    this.tooltipId = (0, _createId.default)();\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      variant,\n      children,\n      className,\n      placement,\n      open,\n      id = this.tooltipId\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"variant\", \"children\", \"className\", \"placement\", \"open\", \"id\"]);\n\n    return /*#__PURE__*/_react.default.createElement(\"span\", _extends({\n      className: (0, _classnames.default)('spectrum-Tooltip', `spectrum-Tooltip--${variant}`, `spectrum-Tooltip--${placement.split(' ')[0]}`, {\n        'is-open': open\n      }, className),\n      id: id\n    }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement(\"span\", {\n      className: \"spectrum-Tooltip-label\"\n    }, children), this.renderTip());\n  }\n\n  renderTip() {\n    return /*#__PURE__*/_react.default.createElement(\"span\", {\n      className: \"spectrum-Tooltip-tip\",\n      style: this.props.arrowStyle\n    });\n  }\n\n}\n\nexports.default = Tooltip;\nTooltip.propTypes = {\n  /**\n   * The placement of the tooltip.\n   */\n  placement: _propTypes.default.oneOf(['bottom', 'top', 'left', 'right']),\n\n  /**\n   * The variant will affect color.\n   */\n  variant: _propTypes.default.oneOf(['inspect', 'info', 'success', 'error']),\n\n  /**\n   * The class name of the tooltip.\n   */\n  className: _propTypes.default.string,\n\n  /**\n   * The ID of the tooltip.\n   */\n  id: _propTypes.default.string,\n\n  /**\n   * The WAI-ARIA role for the tooltip\n   */\n  role: _propTypes.default.oneOf(['tooltip']),\n\n  /**\n   * Control if the tooltip should be opened or not.\n   */\n  open: _propTypes.default.bool\n};\nTooltip.defaultProps = {\n  variant: 'inspect',\n  placement: 'right',\n  open: true,\n  role: 'tooltip'\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _dna = _interopRequireDefault(require(\"../../utils/dna\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _setOverlayOnProvider = _interopRequireDefault(require(\"../../utils/setOverlayOnProvider\"));\n\nvar _UxpProvider = require(\"../../Provider/js/UxpProvider\");\n\nvar _Tooltip = _interopRequireDefault(require(\"./Tooltip\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction getPathData(size, placement) {\n  if (placement === 'right') {\n    return `M ${size * 2} 0 l ${-size} ${size} l ${size} ${size} z`;\n  }\n\n  if (placement === 'left') {\n    return `M 0 0 l ${size} ${size} l ${-size} ${size} z`;\n  }\n\n  if (placement === 'top') {\n    return `M 0 0 l ${size} ${size} l ${size} ${-size} z`;\n  }\n\n  if (placement === 'bottom') {\n    return `M 0 ${size * 2} l ${size} ${-size} l ${size} ${size} z`;\n  }\n} // maps from our variant names to spectrum-dna variant names\n\n\nconst variantMap = {\n  inspect: 'default',\n  info: 'info',\n  error: 'negative',\n  success: 'positive'\n};\n\nclass UxpTooltip extends _Tooltip.default {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.setOverlayVisible = () => {\n      (0, _setOverlayOnProvider.default)(this.tooltipRef, true, this.hide);\n    }, this.setOverlayHidden = () => {\n      (0, _setOverlayOnProvider.default)(this.tooltipRef, false);\n    }, this.hide = () => {\n      if (this.tooltipRef) {\n        this.tooltipRef.style.display = 'none';\n      }\n    }, _temp;\n  }\n\n  componentDidMount() {\n    if (this.tooltipRef) {\n      this.tooltipRef.addEventListener('resize', this.setOverlayVisible);\n    }\n  }\n\n  componentWillUnmount() {\n    if (this.tooltipRef) {\n      this.tooltipRef.removeEventListener('resize', this.setOverlayVisible);\n    }\n\n    this.setOverlayHidden();\n  }\n\n  renderTip() {\n    const {\n      variant,\n      placement,\n      arrowStyle\n    } = this.props;\n    const s = 4; // size\n\n    return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({\n      scale,\n      theme\n    } = {}) =>\n    /*#__PURE__*/\n    // console.log(\"=========== \" + JSON.stringify({variant, placement, scale, theme}));\n    _react.default.createElement(\"svg\", {\n      className: \"spectrum-Tooltip-tip\",\n      style: {\n        width: s * 2,\n        height: s * 2,\n        border: 'none',\n        fill: _dna.default.elements[theme][scale].tooltip[variantMap[variant]].states.default['tip-color'],\n        left: arrowStyle ? arrowStyle.left : null,\n        top: arrowStyle ? arrowStyle.top : null\n      }\n    }, /*#__PURE__*/_react.default.createElement(\"path\", {\n      d: getPathData(s, placement)\n    })));\n  }\n\n  render() {\n    const _this$props = this.props,\n          {\n      variant,\n      children,\n      className,\n      placement,\n      open,\n      id = this.tooltipId\n    } = _this$props,\n          otherProps = _objectWithoutProperties(_this$props, [\"variant\", \"children\", \"className\", \"placement\", \"open\", \"id\"]);\n\n    return /*#__PURE__*/_react.default.createElement(\"span\", _extends({\n      ref: r => this.tooltipRef = r,\n      className: (0, _classnames.default)('spectrum-Tooltip', `spectrum-Tooltip--${variant}`, `spectrum-Tooltip--${placement.split(' ')[0]}`, {\n        'is-open': open\n      }, className),\n      id: id\n    }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement(\"span\", {\n      className: \"spectrum-Tooltip-label\"\n    }, children), this.renderTip());\n  }\n\n}\n\nexports.default = UxpTooltip;","\"use strict\";\n\nvar _UxpOptions = _interopRequireDefault(require(\"../utils/UxpOptions\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = _UxpOptions.default.select('Wait', () => require('./js/UxpWait'), () => require('./js/Wait'));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _Wait = require(\"./Wait\");\n\nvar _dna = _interopRequireDefault(require(\"../../utils/dna\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _UxpProvider = require(\"../../Provider/js/UxpProvider\");\n\nrequire(\"../uxp-style/index.css\");\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* sigmoidFactory\n *\n * Generate an ease-in-out function with desired steepness.\n * Accompanying article: https://medium.com/analytic-animations/ease-in-out-the-sigmoid-factory-c5116d8abce9\n *\n * Required:\n *   k: (float != 0), sharpness of ease\n *\n * Return: f(t), t in 0..1\n */\nfunction sigmoidFactory(k) {\n  function base(t) {\n    return 1 / (1 + Math.exp(-k * t)) - 0.5;\n  }\n\n  var correction = 0.5 / base(1);\n  return function (t) {\n    t = clamp(t, 0, 1);\n    return correction * base(2 * t - 1) + 0.5;\n  };\n}\n\nfunction getViewBoxAttribute(height, width) {\n  return '0 0 ' + height.replace(/px/gi, '') + ' ' + width.replace(/px/gi, '');\n}\n\nfunction clamp(val, lower, upper) {\n  return Math.max(Math.min(val, upper), lower);\n}\n\nfunction getSvgArc(radius, startAngleDegrees, finishAngleDegrees) {\n  if (finishAngleDegrees < startAngleDegrees) {\n    finishAngleDegrees += 360;\n  }\n\n  let arcLengthDegrees = finishAngleDegrees - startAngleDegrees;\n\n  if (arcLengthDegrees >= 360) {\n    // draw a complete circle with two arcs\n    return `M ${radius * 2} ${radius} A ${radius} ${radius} 0 0 1 0 ${radius} A ${radius} ${radius} 0 0 1 ${radius * 2} ${radius}`;\n  }\n\n  let startAngle = 2 * Math.PI * (startAngleDegrees / 360);\n  let finishAngle = 2 * Math.PI * (finishAngleDegrees / 360);\n  let zeroAngle = -Math.PI / 2.2;\n  let x0 = radius + radius * Math.cos(startAngle + zeroAngle);\n  let y0 = radius + radius * Math.sin(startAngle + zeroAngle);\n  let x1 = radius + radius * Math.cos(finishAngle + zeroAngle);\n  let y1 = radius + radius * Math.sin(finishAngle + zeroAngle);\n  return `M ${x0} ${y0} A ${radius} ${radius} 0 ${arcLengthDegrees >= 180 ? 1 : 0} 1 ${x1} ${y1}`;\n}\n\nfunction getArcAngles(alpha\n/* 0 to 1 */\n) {\n  // most easing functions start and stop at zero which doesn't look good here.\n  // we want the animation sections to slow down but never completely stop.\n  // we are using the sigmoidFactory functions because it allows us to control the starting and stopping speeds\n  // and allow allow the slope of the function to remain positive at alpha = 0 and alpha = 1\n  let start = sigmoidFactory(4)(alpha) * 360;\n  let finish = sigmoidFactory(5.5)((alpha + 0.4) % 1) * 360;\n\n  if (start < 0) {\n    start += 1;\n  }\n\n  if (finish < start) {\n    finish += 1;\n  }\n\n  return [start, finish];\n}\n\nconst sizeToDnaVariantMap = {\n  L: {\n    determinate: 'large',\n    indeterminate: 'large',\n    overBackground: 'large-over-background'\n  },\n  M: {\n    determinate: 'medium',\n    indeterminate: 'medium',\n    overBackground: 'medium-over-background'\n  },\n  S: {\n    determinate: 'small',\n    indeterminate: 'small',\n    overBackground: 'small-over-background'\n  }\n};\n\nclass UxpWait extends _react.Component {\n  constructor(props) {\n    super(props);\n\n    this.tick = () => {\n      this.animId = requestAnimationFrame(() => {\n        let value = (this.getValue() + 1.8) % 100;\n        this.setState({\n          value\n        });\n        this.tick();\n      });\n    };\n\n    this.removeAnimation = () => {\n      if (this.animId) {\n        cancelAnimationFrame(this.animId);\n        this.animId = null;\n      }\n    };\n\n    this.animId = null;\n  }\n\n  getValue() {\n    if (this.props && this.props.value) {\n      return this.props.value;\n    }\n\n    if (this.state && this.state.value) {\n      return this.state.value;\n    }\n\n    return 0;\n  }\n\n  componentDidMount() {\n    this.tick();\n  }\n\n  componentWillUnmount() {\n    this.removeAnimation();\n  }\n\n  render() {\n    let _this$props = this.props,\n        {\n      size = 'M',\n      className,\n\n      /* eslint-disable-next-line */\n      indeterminate = true,\n      centered = false,\n      variant = indeterminate ? _Wait.INDETERMINATE : _Wait.DETERMINATE\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"size\", \"className\", \"indeterminate\", \"centered\", \"variant\"]);\n\n    let startAngle, finishAngle;\n    let value = this.getValue(); // Using workaround for now as rgba is not working with stroke attribute.\n\n    let strokeOpacity = variant === 'overBackground' ? '0.2' : '1.0';\n\n    if (indeterminate && variant !== _Wait.DETERMINATE) {\n      //  we don't know how long it will take so we\n      //  do a continual looping animation\n      [startAngle, finishAngle] = getArcAngles(value / 100);\n    } else {\n      //  we know how long it will take based on value being set so we\n      //  use the value to display from 0 to full 360\n      startAngle = 0;\n      finishAngle = this.props.value / 100 * 360;\n    }\n\n    return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({\n      scale,\n      theme\n    } = {}) => {\n      const genome = _dna.default.elements[theme][scale].circleloader[sizeToDnaVariantMap[size][variant]];\n      const spectrumTrackColor = genome.states.default['track-color'];\n      const spectrumFillColor = genome.states.default['track-fill-color'];\n      let strokeWidth = parseInt(genome.dimensions['border-size'].slice(0, -2), 10); // remove trailing px\n\n      let width = parseInt(genome.dimensions.width.slice(0, -2), 10); // remove trailing px\n\n      let radius = width / 2 - strokeWidth;\n      let translateBy = Math.floor(strokeWidth / 2 + 1);\n      let variantClass = `circleLoader--${sizeToDnaVariantMap[size]['indeterminate']}`;\n      return /*#__PURE__*/_react.default.createElement(\"div\", {\n        className: `spectrum-CircleLoader ${variantClass} ${className} ${centered ? 'react-spectrum-Wait--centered' : ''}`\n      }, /*#__PURE__*/_react.default.createElement(\"svg\", _extends({\n        viewBox: getViewBoxAttribute(genome.dimensions.height, genome.dimensions.width),\n        className: variantClass\n        /* we need variantClass on both the container and the svg elements */\n\n      }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement(\"path\", {\n        d: getSvgArc(radius, 0, 360),\n        stroke: spectrumTrackColor,\n        strokeOpacity: strokeOpacity,\n        fill: \"transparent\",\n        strokeWidth: strokeWidth,\n        transform: `translate(${translateBy}, ${translateBy})`\n      }), /*#__PURE__*/_react.default.createElement(\"path\", {\n        d: getSvgArc(radius, startAngle, finishAngle),\n        stroke: spectrumFillColor,\n        fill: \"transparent\",\n        strokeWidth: strokeWidth + 1,\n        transform: `translate(${translateBy}, ${translateBy})`\n      })));\n    });\n  }\n\n}\n\nexports.default = UxpWait;\nUxpWait.propTypes = {\n  /** Whether to center the Wait compnent in the parent container. */\n  centered: _propTypes.default.bool,\n\n  /** Custom CSS class to add to the Wait component */\n  className: _propTypes.default.string,\n\n  /**\n   * Boolean to determine if the Wait component should endlessly spin (indeterminate) or\n   * if it should be controlled manually.\n   */\n  indeterminate: _propTypes.default.bool,\n\n  /** Size of the Wait component */\n  size: _propTypes.default.string,\n\n  /** Adjust the filled portion of the Wait component to a determined value */\n  value: _propTypes.default.number,\n\n  /**\n  * The variant of Wait to display.\n  */\n  variant: _propTypes.default.string\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.INDETERMINATE = exports.DETERMINATE = void 0;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nrequire(\"../style/index.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/circleloader/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/circleloader/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/circleloader/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/circleloader/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/circleloader/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/circleloader/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/circleloader/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/circleloader/multiStops/darkest.css\");\nconst DETERMINATE = 'determinate';\nexports.DETERMINATE = DETERMINATE;\nconst INDETERMINATE = 'indeterminate';\nexports.INDETERMINATE = INDETERMINATE;\n\nclass Wait extends _react.default.Component {\n  render() {\n    let _this$props = this.props,\n        {\n      value = 0,\n      size = 'M',\n      indeterminate = true,\n      centered = false,\n      className,\n      variant\n    } = _this$props,\n        otherProps = _objectWithoutProperties(_this$props, [\"value\", \"size\", \"indeterminate\", \"centered\", \"className\", \"variant\"]); // Determinate version has two high level masks, 1) right half, 2) left half\n    // within each of those is a submask which rotates into view within that mask\n    // but starts off on the opposite side so it's hidden\n    // for first 50%, submask1 moves from -180 to 0 as it covers the first half\n    // for the second 50%, submask1 stays in one place and submask2 rotates in\n    // from -180 to 0\n\n\n    let angle;\n    let fillSubmask1Style = {};\n    let fillSubmask2Style = {};\n    let ariaValue = undefined;\n\n    if (variant === DETERMINATE || variant === INDETERMINATE) {\n      console.warn(`The \"${variant}\" variant of Wait is deprecated. Please use the \"indeterminate\" prop instead.`);\n    }\n\n    if (variant === DETERMINATE || !indeterminate) {\n      value = Math.min(Math.max(+value, 0), 100);\n      ariaValue = value;\n\n      if (value > 0 && value <= 50) {\n        angle = -180 + value / 50 * 180;\n        fillSubmask1Style.transform = 'rotate(' + angle + 'deg)';\n        fillSubmask2Style.transform = 'rotate(-180deg)';\n      } else if (value > 50) {\n        angle = -180 + (value - 50) / 50 * 180;\n        fillSubmask1Style.transform = 'rotate(0deg)';\n        fillSubmask2Style.transform = 'rotate(' + angle + 'deg)';\n      }\n    }\n\n    return /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n      className: (0, _classnames.default)('spectrum-CircleLoader', {\n        'spectrum-CircleLoader--indeterminate': variant === INDETERMINATE || indeterminate && variant !== DETERMINATE,\n        'spectrum-CircleLoader--small': size === 'S',\n        'spectrum-CircleLoader--large': size === 'L',\n        'spectrum-CircleLoader--overBackground': variant === 'overBackground',\n        'react-spectrum-Wait--centered': centered\n      }, className),\n      role: \"progressbar\",\n      \"aria-valuenow\": ariaValue,\n      \"aria-valuemin\": 0,\n      \"aria-valuemax\": 100\n    }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-CircleLoader-track\"\n    }), /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-CircleLoader-fills\"\n    }, /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-CircleLoader-fillMask1\"\n    }, /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-CircleLoader-fillSubMask1\",\n      style: fillSubmask1Style\n    }, /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-CircleLoader-fill\"\n    }))), /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-CircleLoader-fillMask2\"\n    }, /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-CircleLoader-fillSubMask2\",\n      style: fillSubmask2Style\n    }, /*#__PURE__*/_react.default.createElement(\"div\", {\n      className: \"spectrum-CircleLoader-fill\"\n    })))));\n  }\n\n}\n\nexports.default = Wait;\nWait.propTypes = {\n  /** Whether to center the Wait compnent in the parent container. */\n  centered: _propTypes.default.bool,\n\n  /** Custom CSS class to add to the Wait component */\n  className: _propTypes.default.string,\n\n  /**\n   * Boolean to determine if the Wait component should endlessly spin (indeterminate) or\n   * if it should be controlled manually.\n   */\n  indeterminate: _propTypes.default.bool,\n\n  /** Size of the Wait component */\n  size: _propTypes.default.string,\n\n  /** Adjust the filled portion of the Wait component to a determined value */\n  value: _propTypes.default.number,\n\n  /**\n  * The variant of Wait to display.\n  */\n  variant: _propTypes.default.oneOf(['overBackground'])\n};","\"use strict\";\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nmodule.exports = require('./js/Well');","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Well;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _filterDOMProps = _interopRequireDefault(require(\"../../utils/filterDOMProps\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nif (process.env.SCALE_MEDIUM && process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/well/index.css\");\n\n  require(\"@adobe/spectrum-css/dist/components/well/index-diff.css\");\n} else if (process.env.SCALE_LARGE) {\n  require(\"@adobe/spectrum-css/dist/components/well/index-lg.css\");\n} else {\n  require(\"@adobe/spectrum-css/dist/components/well/index.css\");\n}\n\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHT) require(\"@adobe/spectrum-css/dist/components/well/multiStops/light.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARK) require(\"@adobe/spectrum-css/dist/components/well/multiStops/dark.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_LIGHTEST) require(\"@adobe/spectrum-css/dist/components/well/multiStops/lightest.css\");\nif (!process.env.THEME_LIGHT && !process.env.THEME_DARK && !process.env.THEME_LIGHTEST && !process.env.THEME_DARKEST || process.env.THEME_DARKEST) require(\"@adobe/spectrum-css/dist/components/well/multiStops/darkest.css\");\n\nfunction Well(_ref) {\n  let {\n    children,\n    className\n  } = _ref,\n      otherProps = _objectWithoutProperties(_ref, [\"children\", \"className\"]);\n\n  return /*#__PURE__*/_react.default.createElement(\"div\", _extends({\n    className: (0, _classnames.default)('spectrum-Well', className)\n  }, (0, _filterDOMProps.default)(otherProps)), children);\n}\n\nWell.displayName = 'Well';\nWell.propTypes = {\n  /** Custom CSS class to add to the Well component */\n  className: _propTypes.default.string,\n\n  /** Limited WAI-ARIA landmark roles for Well component */\n  role: _propTypes.default.oneOf(['form', 'group', 'navigation', 'region', 'search'])\n};","/**\n *  Copyright 2018 Adobe. All rights reserved.\n *  This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License. You may obtain a copy\n *  of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software distributed under\n *  the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n *  OF ANY KIND, either express or implied. See the License for the specific language\n *  governing permissions and limitations under the License.\n */\n\n// Provides explicit indication of elements receiving focus through keyboard interaction rather than mouse or touch.\n(function(doc) {\n  // In case file is imported in SSR context, don't polyfill anything\n  if (!doc) {\n    return;\n  }\n\n  var NAVIGATION_KEYS = [\n    'Tab',\n    'ArrowUp',\n    'ArrowRight',\n    'ArrowDown',\n    'ArrowLeft',\n    'Home',\n    'End',\n    'PageUp',\n    'PageDown',\n    'Enter',\n    ' ',\n    'Escape',\n\n    /* IE9 and Firefox < 37 */\n    'Up',\n    'Right',\n    'Down',\n    'Left',\n    'Esc'\n  ];\n  var TEXT_INPUT_TYPES = [\n    'text',\n    'date',\n    'datetime-local',\n    'email',\n    'month',\n    'number',\n    'password',\n    'search',\n    'tel',\n    'time',\n    'url',\n    'week'\n  ];\n  var keyboardFocus = false;\n  var elements = doc.getElementsByClassName('focus-ring');\n\n  function onKeydownHandler(event) {\n    if (event.ctrlKey || event.altKey || event.metaKey || NAVIGATION_KEYS.indexOf(event.key) === -1) {\n      return;\n    }\n    keyboardFocus = true;\n\n    if (doc.activeElement &&\n        doc.activeElement !== doc.body &&\n        doc.activeElement.tagName !== 'TEXTAREA' &&\n        !(doc.activeElement.tagName === 'INPUT' &&\n          TEXT_INPUT_TYPES.indexOf(doc.activeElement.type) !== -1)) {\n      doc.activeElement.classList.add('focus-ring');\n    }\n  }\n\n  function onMousedownHandler() {\n    keyboardFocus = false;\n\n    for (var i = 0; i < elements.length; i++) {\n      elements[i].classList.remove('focus-ring');\n    }\n\n  }\n\n  function onFocusHandler(event) {\n    var classList = event.target.classList;\n    if (classList && keyboardFocus) {\n      classList.add('focus-ring');\n    }\n  }\n\n  function onBlurHandler(event) {\n    var classList = event.target.classList;\n    classList && classList.remove('focus-ring');\n  }\n\n  doc.addEventListener('keydown', onKeydownHandler, true);\n  doc.addEventListener('mousedown', onMousedownHandler, true);\n  doc.addEventListener('focus', onFocusHandler, true);\n  doc.addEventListener('blur', onBlurHandler, true);\n})(typeof window === \"undefined\" ? undefined : document);\n","/**\n * @copyright 2015, Andrey Popp <8mayday@gmail.com>\n *\n * The decorator may be used on classes or methods\n * ```\n * @autobind\n * class FullBound {}\n *\n * class PartBound {\n *   @autobind\n *   method () {}\n * }\n * ```\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\nexports['default'] = autobind;\n\nfunction autobind() {\n  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  if (args.length === 1) {\n    return boundClass.apply(undefined, args);\n  } else {\n    return boundMethod.apply(undefined, args);\n  }\n}\n\n/**\n * Use boundMethod to bind all methods on the target.prototype\n */\nfunction boundClass(target) {\n  // (Using reflect to get all keys including symbols)\n  var keys = undefined;\n  // Use Reflect if exists\n  if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {\n    keys = Reflect.ownKeys(target.prototype);\n  } else {\n    keys = Object.getOwnPropertyNames(target.prototype);\n    // use symbols if support is provided\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      keys = keys.concat(Object.getOwnPropertySymbols(target.prototype));\n    }\n  }\n\n  keys.forEach(function (key) {\n    // Ignore special case target method\n    if (key === 'constructor') {\n      return;\n    }\n\n    var descriptor = Object.getOwnPropertyDescriptor(target.prototype, key);\n\n    // Only methods need binding\n    if (typeof descriptor.value === 'function') {\n      Object.defineProperty(target.prototype, key, boundMethod(target, key, descriptor));\n    }\n  });\n  return target;\n}\n\n/**\n * Return a descriptor removing the value and returning a getter\n * The getter will return a .bind version of the function\n * and memoize the result against a symbol on the instance\n */\nfunction boundMethod(target, key, descriptor) {\n  var fn = descriptor.value;\n\n  if (typeof fn !== 'function') {\n    throw new Error('@autobind decorator can only be applied to methods not: ' + typeof fn);\n  }\n\n  // In IE11 calling Object.defineProperty has a side-effect of evaluating the\n  // getter for the property which is being replaced. This causes infinite\n  // recursion and an \"Out of stack space\" error.\n  var definingProperty = false;\n\n  return {\n    configurable: true,\n    get: function get() {\n      if (definingProperty || this === target.prototype || this.hasOwnProperty(key)) {\n        return fn;\n      }\n\n      var boundFn = fn.bind(this);\n      definingProperty = true;\n      Object.defineProperty(this, key, {\n        value: boundFn,\n        configurable: true,\n        writable: true\n      });\n      definingProperty = false;\n      return boundFn;\n    }\n  };\n}\nmodule.exports = exports['default'];\n","/* jshint node:true */\n\n'use strict';\n\nvar IntlMessageFormat = require('./lib/main')['default'];\n\n// Add all locale data to `IntlMessageFormat`. This module will be ignored when\n// bundling for the browser with Browserify/Webpack.\nrequire('./lib/locales');\n\n// Re-export `IntlMessageFormat` as the CommonJS default exports with all the\n// locale data registered, and with English set as the default locale. Define\n// the `default` prop for use with other compiled ES6 Modules.\nexports = module.exports = IntlMessageFormat;\nexports['default'] = exports;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport default Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n    this.locales  = locales;\n    this.formats  = formats;\n    this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n    this.pluralStack        = [];\n    this.currentPlural      = null;\n    this.pluralNumberFormat = null;\n\n    return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n    if (!(ast && ast.type === 'messageFormatPattern')) {\n        throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n    }\n\n    var elements = ast.elements,\n        pattern  = [];\n\n    var i, len, element;\n\n    for (i = 0, len = elements.length; i < len; i += 1) {\n        element = elements[i];\n\n        switch (element.type) {\n            case 'messageTextElement':\n                pattern.push(this.compileMessageText(element));\n                break;\n\n            case 'argumentElement':\n                pattern.push(this.compileArgument(element));\n                break;\n\n            default:\n                throw new Error('Message element does not have a valid type');\n        }\n    }\n\n    return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n    // When this `element` is part of plural sub-pattern and its value contains\n    // an unescaped '#', use a `PluralOffsetString` helper to properly output\n    // the number with the correct offset in the string.\n    if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n        // Create a cache a NumberFormat instance that can be reused for any\n        // PluralOffsetString instance in this message.\n        if (!this.pluralNumberFormat) {\n            this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n        }\n\n        return new PluralOffsetString(\n                this.currentPlural.id,\n                this.currentPlural.format.offset,\n                this.pluralNumberFormat,\n                element.value);\n    }\n\n    // Unescape the escaped '#'s in the message text.\n    return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n    var format = element.format;\n\n    if (!format) {\n        return new StringFormat(element.id);\n    }\n\n    var formats  = this.formats,\n        locales  = this.locales,\n        pluralFn = this.pluralFn,\n        options;\n\n    switch (format.type) {\n        case 'numberFormat':\n            options = formats.number[format.style];\n            return {\n                id    : element.id,\n                format: new Intl.NumberFormat(locales, options).format\n            };\n\n        case 'dateFormat':\n            options = formats.date[format.style];\n            return {\n                id    : element.id,\n                format: new Intl.DateTimeFormat(locales, options).format\n            };\n\n        case 'timeFormat':\n            options = formats.time[format.style];\n            return {\n                id    : element.id,\n                format: new Intl.DateTimeFormat(locales, options).format\n            };\n\n        case 'pluralFormat':\n            options = this.compileOptions(element);\n            return new PluralFormat(\n                element.id, format.ordinal, format.offset, options, pluralFn\n            );\n\n        case 'selectFormat':\n            options = this.compileOptions(element);\n            return new SelectFormat(element.id, options);\n\n        default:\n            throw new Error('Message element does not have a valid format type');\n    }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n    var format      = element.format,\n        options     = format.options,\n        optionsHash = {};\n\n    // Save the current plural element, if any, then set it to a new value when\n    // compiling the options sub-patterns. This conforms the spec's algorithm\n    // for handling `\"#\"` syntax in message text.\n    this.pluralStack.push(this.currentPlural);\n    this.currentPlural = format.type === 'pluralFormat' ? element : null;\n\n    var i, len, option;\n\n    for (i = 0, len = options.length; i < len; i += 1) {\n        option = options[i];\n\n        // Compile the sub-pattern and save it under the options's selector.\n        optionsHash[option.selector] = this.compileMessage(option.value);\n    }\n\n    // Pop the plural stack to put back the original current plural value.\n    this.currentPlural = this.pluralStack.pop();\n\n    return optionsHash;\n};\n\n// -- Compiler Helper Classes --------------------------------------------------\n\nfunction StringFormat(id) {\n    this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n    if (!value && typeof value !== 'number') {\n        return '';\n    }\n\n    return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n    this.id         = id;\n    this.useOrdinal = useOrdinal;\n    this.offset     = offset;\n    this.options    = options;\n    this.pluralFn   = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n    var options = this.options;\n\n    var option = options['=' + value] ||\n            options[this.pluralFn(value - this.offset, this.useOrdinal)];\n\n    return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n    this.id           = id;\n    this.offset       = offset;\n    this.numberFormat = numberFormat;\n    this.string       = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n    var number = this.numberFormat.format(value - this.offset);\n\n    return this.string\n            .replace(/(^|[^\\\\])#/g, '$1' + number)\n            .replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n    this.id      = id;\n    this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n    var options = this.options;\n    return options[value] || options.other;\n};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {extend, hop} from './utils';\nimport {defineProperty, objCreate} from './es5';\nimport Compiler from './compiler';\nimport parser from 'intl-messageformat-parser';\n\nexport default MessageFormat;\n\n// -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n    // Parse string messages into an AST.\n    var ast = typeof message === 'string' ?\n            MessageFormat.__parse(message) : message;\n\n    if (!(ast && ast.type === 'messageFormatPattern')) {\n        throw new TypeError('A message must be provided as a String or AST.');\n    }\n\n    // Creates a new object with the specified `formats` merged with the default\n    // formats.\n    formats = this._mergeFormats(MessageFormat.formats, formats);\n\n    // Defined first because it's used to build the format pattern.\n    defineProperty(this, '_locale',  {value: this._resolveLocale(locales)});\n\n    // Compile the `ast` to a pattern that is highly optimized for repeated\n    // `format()` invocations. **Note:** This passes the `locales` set provided\n    // to the constructor instead of just the resolved locale.\n    var pluralFn = this._findPluralRuleFunction(this._locale);\n    var pattern  = this._compilePattern(ast, locales, formats, pluralFn);\n\n    // \"Bind\" `format()` method to `this` so it can be passed by reference like\n    // the other `Intl` APIs.\n    var messageFormat = this;\n    this.format = function (values) {\n      try {\n        return messageFormat._format(pattern, values);\n      } catch (e) {\n        if (e.variableId) {\n          throw new Error(\n            'The intl string context variable \\'' + e.variableId + '\\'' +\n            ' was not provided to the string \\'' + message + '\\''\n          );\n        } else {\n          throw e;\n        }\n      }\n    };\n}\n\n// Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\ndefineProperty(MessageFormat, 'formats', {\n    enumerable: true,\n\n    value: {\n        number: {\n            'currency': {\n                style: 'currency'\n            },\n\n            'percent': {\n                style: 'percent'\n            }\n        },\n\n        date: {\n            'short': {\n                month: 'numeric',\n                day  : 'numeric',\n                year : '2-digit'\n            },\n\n            'medium': {\n                month: 'short',\n                day  : 'numeric',\n                year : 'numeric'\n            },\n\n            'long': {\n                month: 'long',\n                day  : 'numeric',\n                year : 'numeric'\n            },\n\n            'full': {\n                weekday: 'long',\n                month  : 'long',\n                day    : 'numeric',\n                year   : 'numeric'\n            }\n        },\n\n        time: {\n            'short': {\n                hour  : 'numeric',\n                minute: 'numeric'\n            },\n\n            'medium':  {\n                hour  : 'numeric',\n                minute: 'numeric',\n                second: 'numeric'\n            },\n\n            'long': {\n                hour        : 'numeric',\n                minute      : 'numeric',\n                second      : 'numeric',\n                timeZoneName: 'short'\n            },\n\n            'full': {\n                hour        : 'numeric',\n                minute      : 'numeric',\n                second      : 'numeric',\n                timeZoneName: 'short'\n            }\n        }\n    }\n});\n\n// Define internal private properties for dealing with locale data.\ndefineProperty(MessageFormat, '__localeData__', {value: objCreate(null)});\ndefineProperty(MessageFormat, '__addLocaleData', {value: function (data) {\n    if (!(data && data.locale)) {\n        throw new Error(\n            'Locale data provided to IntlMessageFormat is missing a ' +\n            '`locale` property'\n        );\n    }\n\n    MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n}});\n\n// Defines `__parse()` static method as an exposed private.\ndefineProperty(MessageFormat, '__parse', {value: parser.parse});\n\n// Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\ndefineProperty(MessageFormat, 'defaultLocale', {\n    enumerable: true,\n    writable  : true,\n    value     : undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n    // TODO: Provide anything else?\n    return {\n        locale: this._locale\n    };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n    var compiler = new Compiler(locales, formats, pluralFn);\n    return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n    var localeData = MessageFormat.__localeData__;\n    var data       = localeData[locale.toLowerCase()];\n\n    // The locale data is de-duplicated, so we have to traverse the locale's\n    // hierarchy until we find a `pluralRuleFunction` to return.\n    while (data) {\n        if (data.pluralRuleFunction) {\n            return data.pluralRuleFunction;\n        }\n\n        data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n    }\n\n    throw new Error(\n        'Locale data added to IntlMessageFormat is missing a ' +\n        '`pluralRuleFunction` for :' + locale\n    );\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n    var result = '',\n        i, len, part, id, value, err;\n\n    for (i = 0, len = pattern.length; i < len; i += 1) {\n        part = pattern[i];\n\n        // Exist early for string parts.\n        if (typeof part === 'string') {\n            result += part;\n            continue;\n        }\n\n        id = part.id;\n\n        // Enforce that all required values are provided by the caller.\n        if (!(values && hop.call(values, id))) {\n          err = new Error('A value must be provided for: ' + id);\n          err.variableId = id;\n          throw err;\n        }\n\n        value = values[id];\n\n        // Recursively format plural and select parts' option — which can be a\n        // nested pattern structure. The choosing of the option to use is\n        // abstracted-by and delegated-to the part helper object.\n        if (part.options) {\n            result += this._format(part.getOption(value), values);\n        } else {\n            result += part.format(value);\n        }\n    }\n\n    return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n    var mergedFormats = {},\n        type, mergedType;\n\n    for (type in defaults) {\n        if (!hop.call(defaults, type)) { continue; }\n\n        mergedFormats[type] = mergedType = objCreate(defaults[type]);\n\n        if (formats && hop.call(formats, type)) {\n            extend(mergedType, formats[type]);\n        }\n    }\n\n    return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n    if (typeof locales === 'string') {\n        locales = [locales];\n    }\n\n    // Create a copy of the array so we can push on the default locale.\n    locales = (locales || []).concat(MessageFormat.defaultLocale);\n\n    var localeData = MessageFormat.__localeData__;\n    var i, len, localeParts, data;\n\n    // Using the set of locales + the default locale, we look for the first one\n    // which that has been registered. When data does not exist for a locale, we\n    // traverse its ancestors to find something that's been registered within\n    // its hierarchy of locales. Since we lack the proper `parentLocale` data\n    // here, we must take a naive approach to traversal.\n    for (i = 0, len = locales.length; i < len; i += 1) {\n        localeParts = locales[i].toLowerCase().split('-');\n\n        while (localeParts.length) {\n            data = localeData[localeParts.join('-')];\n            if (data) {\n                // Return the normalized locale string; e.g., we return \"en-US\",\n                // instead of \"en-us\".\n                return data.locale;\n            }\n\n            localeParts.pop();\n        }\n    }\n\n    var defaultLocale = locales.pop();\n    throw new Error(\n        'No locale data has been added to IntlMessageFormat for: ' +\n        locales.join(', ') + ', or the default locale: ' + defaultLocale\n    );\n};\n","// GENERATED FILE\nexport default {\"locale\":\"en\",\"pluralRuleFunction\":function (n,ord){var s=String(n).split(\".\"),v0=!s[1],t0=Number(s[0])==n,n10=t0&&s[0].slice(-1),n100=t0&&s[0].slice(-2);if(ord)return n10==1&&n100!=11?\"one\":n10==2&&n100!=12?\"two\":n10==3&&n100!=13?\"few\":\"other\";return n==1&&v0?\"one\":\"other\"}};\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nimport {hop} from './utils';\n\n// Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\nvar realDefineProp = (function () {\n    try { return !!Object.defineProperty({}, 'a', {}); }\n    catch (e) { return false; }\n})();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\n\nvar defineProperty = realDefineProp ? Object.defineProperty :\n        function (obj, name, desc) {\n\n    if ('get' in desc && obj.__defineGetter__) {\n        obj.__defineGetter__(name, desc.get);\n    } else if (!hop.call(obj, name) || 'value' in desc) {\n        obj[name] = desc.value;\n    }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n    var obj, k;\n\n    function F() {}\n    F.prototype = proto;\n    obj = new F();\n\n    for (k in props) {\n        if (hop.call(props, k)) {\n            defineProperty(obj, k, props[k]);\n        }\n    }\n\n    return obj;\n};\n\nexport {defineProperty, objCreate};\n","/* jslint esnext: true */\n\nimport IntlMessageFormat from './core';\nimport defaultLocale from './en';\n\nIntlMessageFormat.__addLocaleData(defaultLocale);\nIntlMessageFormat.defaultLocale = 'en';\n\nexport default IntlMessageFormat;\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\nexport var hop = Object.prototype.hasOwnProperty;\n\nexport function extend(obj) {\n    var sources = Array.prototype.slice.call(arguments, 1),\n        i, len, source, key;\n\n    for (i = 0, len = sources.length; i < len; i += 1) {\n        source = sources[i];\n        if (!source) { continue; }\n\n        for (key in source) {\n            if (hop.call(source, key)) {\n                obj[key] = source[key];\n            }\n        }\n    }\n\n    return obj;\n}\n","'use strict';\n\nexports.__esModule = true;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * The `<Portal/>` component renders its children into a new \"subtree\" outside of current component hierarchy.\n * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.\n * The children of `<Portal/>` component will be appended to the `container` specified.\n */\nvar Portal = function (_React$Component) {\n  _inherits(Portal, _React$Component);\n\n  function Portal() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Portal);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this._mountOverlayTarget = function () {\n      if (!_this._overlayTarget) {\n        _this._overlayTarget = document.createElement('div');\n        _this._portalContainerNode = (0, _getContainer2.default)(_this.props.container, (0, _ownerDocument2.default)(_this).body);\n        _this._portalContainerNode.appendChild(_this._overlayTarget);\n      }\n    }, _this._unmountOverlayTarget = function () {\n      if (_this._overlayTarget) {\n        _this._portalContainerNode.removeChild(_this._overlayTarget);\n        _this._overlayTarget = null;\n      }\n      _this._portalContainerNode = null;\n    }, _this._renderOverlay = function () {\n      var overlay = !_this.props.children ? null : _react2.default.Children.only(_this.props.children);\n\n      // Save reference for future access.\n      if (overlay !== null) {\n        _this._mountOverlayTarget();\n\n        var initialRender = !_this._overlayInstance;\n\n        _this._overlayInstance = _reactDom2.default.unstable_renderSubtreeIntoContainer(_this, overlay, _this._overlayTarget, function () {\n          if (initialRender && _this.props.onRendered) {\n            _this.props.onRendered();\n          }\n        });\n      } else {\n        // Unrender if the component is null for transitions to null\n        _this._unrenderOverlay();\n        _this._unmountOverlayTarget();\n      }\n    }, _this._unrenderOverlay = function () {\n      if (_this._overlayTarget) {\n        _reactDom2.default.unmountComponentAtNode(_this._overlayTarget);\n        _this._overlayInstance = null;\n      }\n    }, _this.getMountNode = function () {\n      return _this._overlayTarget;\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Portal.prototype.componentDidMount = function componentDidMount() {\n    this._isMounted = true;\n    this._renderOverlay();\n  };\n\n  Portal.prototype.componentDidUpdate = function componentDidUpdate() {\n    this._renderOverlay();\n  };\n\n  Portal.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n    if (this._overlayTarget && nextProps.container !== this.props.container) {\n      this._portalContainerNode.removeChild(this._overlayTarget);\n      this._portalContainerNode = (0, _getContainer2.default)(nextProps.container, (0, _ownerDocument2.default)(this).body);\n      this._portalContainerNode.appendChild(this._overlayTarget);\n    }\n  };\n\n  Portal.prototype.componentWillUnmount = function componentWillUnmount() {\n    this._isMounted = false;\n    this._unrenderOverlay();\n    this._unmountOverlayTarget();\n  };\n\n  Portal.prototype.render = function render() {\n    return null;\n  };\n\n  return Portal;\n}(_react2.default.Component);\n\nPortal.displayName = 'Portal';\nPortal.propTypes = {\n  /**\n   * A Node, Component instance, or function that returns either. The `container` will have the Portal children\n   * appended to it.\n   */\n  container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n  onRendered: _propTypes2.default.func\n};\nexports.default = Portal;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _activeElement = require('dom-helpers/activeElement');\n\nvar _activeElement2 = _interopRequireDefault(_activeElement);\n\nvar _contains = require('dom-helpers/query/contains');\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _inDOM = require('dom-helpers/util/inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _deprecated = require('prop-types-extra/lib/deprecated');\n\nvar _deprecated2 = _interopRequireDefault(_deprecated);\n\nvar _elementType = require('prop-types-extra/lib/elementType');\n\nvar _elementType2 = _interopRequireDefault(_elementType);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _ModalManager = require('./ModalManager');\n\nvar _ModalManager2 = _interopRequireDefault(_ModalManager);\n\nvar _Portal = require('./Portal');\n\nvar _Portal2 = _interopRequireDefault(_Portal);\n\nvar _RefHolder = require('./RefHolder');\n\nvar _RefHolder2 = _interopRequireDefault(_RefHolder);\n\nvar _addEventListener = require('./utils/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _addFocusListener = require('./utils/addFocusListener');\n\nvar _addFocusListener2 = _interopRequireDefault(_addFocusListener);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable react/prop-types */\n\nvar modalManager = new _ModalManager2.default();\n\n/**\n * Love them or hate them, `<Modal/>` provides a solid foundation for creating dialogs, lightboxes, or whatever else.\n * The Modal component renders its `children` node in front of a backdrop component.\n *\n * The Modal offers a few helpful features over using just a `<Portal/>` component and some styles:\n *\n * - Manages dialog stacking when one-at-a-time just isn't enough.\n * - Creates a backdrop, for disabling interaction below the modal.\n * - It properly manages focus; moving to the modal content, and keeping it there until the modal is closed.\n * - It disables scrolling of the page content while open.\n * - Adds the appropriate ARIA roles are automatically.\n * - Easily pluggable animations via a `<Transition/>` component.\n *\n * Note that, in the same way the backdrop element prevents users from clicking or interacting\n * with the page content underneath the Modal, Screen readers also need to be signaled to not to\n * interact with page content while the Modal is open. To do this, we use a common technique of applying\n * the `aria-hidden='true'` attribute to the non-Modal elements in the Modal `container`. This means that for\n * a Modal to be truly modal, it should have a `container` that is _outside_ your app's\n * React hierarchy (such as the default: document.body).\n */\n\nvar Modal = function (_React$Component) {\n  _inherits(Modal, _React$Component);\n\n  function Modal() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Modal);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _initialiseProps.call(_this), _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Modal.prototype.omitProps = function omitProps(props, propTypes) {\n\n    var keys = Object.keys(props);\n    var newProps = {};\n    keys.map(function (prop) {\n      if (!Object.prototype.hasOwnProperty.call(propTypes, prop)) {\n        newProps[prop] = props[prop];\n      }\n    });\n\n    return newProps;\n  };\n\n  Modal.prototype.render = function render() {\n    var _props = this.props,\n        show = _props.show,\n        container = _props.container,\n        children = _props.children,\n        Transition = _props.transition,\n        backdrop = _props.backdrop,\n        className = _props.className,\n        style = _props.style,\n        onExit = _props.onExit,\n        onExiting = _props.onExiting,\n        onEnter = _props.onEnter,\n        onEntering = _props.onEntering,\n        onEntered = _props.onEntered;\n\n\n    var dialog = _react2.default.Children.only(children);\n    var filteredProps = this.omitProps(this.props, Modal.propTypes);\n\n    var mountModal = show || Transition && !this.state.exited;\n    if (!mountModal) {\n      return null;\n    }\n\n    var _dialog$props = dialog.props,\n        role = _dialog$props.role,\n        tabIndex = _dialog$props.tabIndex;\n\n\n    if (role === undefined || tabIndex === undefined) {\n      dialog = (0, _react.cloneElement)(dialog, {\n        role: role === undefined ? 'document' : role,\n        tabIndex: tabIndex == null ? '-1' : tabIndex\n      });\n    }\n\n    if (Transition) {\n      dialog = _react2.default.createElement(\n        Transition,\n        {\n          appear: true,\n          unmountOnExit: true,\n          'in': show,\n          onExit: onExit,\n          onExiting: onExiting,\n          onExited: this.handleHidden,\n          onEnter: onEnter,\n          onEntering: onEntering,\n          onEntered: onEntered\n        },\n        dialog\n      );\n    }\n\n    return _react2.default.createElement(\n      _Portal2.default,\n      {\n        ref: this.setMountNode,\n        container: container,\n        onRendered: this.onPortalRendered\n      },\n      _react2.default.createElement(\n        'div',\n        _extends({\n          ref: this.setModalNodeRef,\n          role: role || 'dialog'\n        }, filteredProps, {\n          style: style,\n          className: className\n        }),\n        backdrop && this.renderBackdrop(),\n        _react2.default.createElement(\n          _RefHolder2.default,\n          { ref: this.setDialogRef },\n          dialog\n        )\n      )\n    );\n  };\n\n  Modal.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n    if (nextProps.show) {\n      this.setState({ exited: false });\n    } else if (!nextProps.transition) {\n      // Otherwise let handleHidden take care of marking exited.\n      this.setState({ exited: true });\n    }\n  };\n\n  Modal.prototype.UNSAFE_componentWillUpdate = function UNSAFE_componentWillUpdate(nextProps) {\n    if (!this.props.show && nextProps.show) {\n      this.checkForFocus();\n    }\n  };\n\n  Modal.prototype.componentDidMount = function componentDidMount() {\n    this._isMounted = true;\n    if (this.props.show) {\n      this.onShow();\n    }\n  };\n\n  Modal.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var transition = this.props.transition;\n\n\n    if (prevProps.show && !this.props.show && !transition) {\n      // Otherwise handleHidden will call this.\n      this.onHide();\n    } else if (!prevProps.show && this.props.show) {\n      this.onShow();\n    }\n  };\n\n  Modal.prototype.componentWillUnmount = function componentWillUnmount() {\n    var _props2 = this.props,\n        show = _props2.show,\n        transition = _props2.transition;\n\n\n    this._isMounted = false;\n\n    if (show || transition && !this.state.exited) {\n      this.onHide();\n    }\n  };\n\n  Modal.prototype.autoFocus = function autoFocus() {\n    if (!this.props.autoFocus) {\n      return;\n    }\n\n    var dialogElement = this.getDialogElement();\n    var currentActiveElement = (0, _activeElement2.default)((0, _ownerDocument2.default)(this));\n\n    if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) {\n      this.lastFocus = currentActiveElement;\n\n      if (!dialogElement.hasAttribute('tabIndex')) {\n        (0, _warning2.default)(false, 'The modal content node does not accept focus. For the benefit of ' + 'assistive technologies, the tabIndex of the node is being set ' + 'to \"-1\".');\n\n        dialogElement.setAttribute('tabIndex', -1);\n      }\n\n      dialogElement.focus();\n    }\n  };\n\n  Modal.prototype.restoreLastFocus = function restoreLastFocus() {\n    // Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917)\n    if (this.lastFocus && this.lastFocus.focus) {\n      this.lastFocus.focus();\n      this.lastFocus = null;\n    }\n  };\n\n  Modal.prototype.getDialogElement = function getDialogElement() {\n    return _reactDom2.default.findDOMNode(this.dialog);\n  };\n\n  Modal.prototype.isTopModal = function isTopModal() {\n    return this.props.manager.isTopModal(this);\n  };\n\n  return Modal;\n}(_react2.default.Component);\n\nModal.propTypes = _extends({}, _Portal2.default.propTypes, {\n\n  /**\n   * Set the visibility of the Modal\n   */\n  show: _propTypes2.default.bool,\n\n  /**\n   * A Node, Component instance, or function that returns either. The Modal is appended to it's container element.\n   *\n   * For the sake of assistive technologies, the container should usually be the document body, so that the rest of the\n   * page content can be placed behind a virtual backdrop as well as a visual one.\n   */\n  container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n  /**\n   * A callback fired when the Modal is opening.\n   */\n  onShow: _propTypes2.default.func,\n\n  /**\n   * A callback fired when either the backdrop is clicked, or the escape key is pressed.\n   *\n   * The `onHide` callback only signals intent from the Modal,\n   * you must actually set the `show` prop to `false` for the Modal to close.\n   */\n  onHide: _propTypes2.default.func,\n\n  /**\n   * Include a backdrop component.\n   */\n  backdrop: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.oneOf(['static'])]),\n\n  /**\n   * A function that returns a backdrop component. Useful for custom\n   * backdrop rendering.\n   *\n   * ```js\n   *  renderBackdrop={props => <MyBackdrop {...props} />}\n   * ```\n   */\n  renderBackdrop: _propTypes2.default.func,\n\n  /**\n   * A callback fired when the escape key, if specified in `keyboard`, is pressed.\n   */\n  onEscapeKeyDown: _propTypes2.default.func,\n\n  /**\n   * Support for this function will be deprecated. Please use `onEscapeKeyDown` instead\n   * A callback fired when the escape key, if specified in `keyboard`, is pressed.\n   * @deprecated\n   */\n  onEscapeKeyUp: (0, _deprecated2.default)(_propTypes2.default.func, 'Please use onEscapeKeyDown instead for consistency'),\n\n  /**\n   * A callback fired when the backdrop, if specified, is clicked.\n   */\n  onBackdropClick: _propTypes2.default.func,\n\n  /**\n   * A style object for the backdrop component.\n   */\n  backdropStyle: _propTypes2.default.object,\n\n  /**\n   * A css class or classes for the backdrop component.\n   */\n  backdropClassName: _propTypes2.default.string,\n\n  /**\n   * A css class or set of classes applied to the modal container when the modal is open,\n   * and removed when it is closed.\n   */\n  containerClassName: _propTypes2.default.string,\n\n  /**\n   * Close the modal when escape key is pressed\n   */\n  keyboard: _propTypes2.default.bool,\n\n  /**\n   * A `react-transition-group@2.0.0` `<Transition/>` component used\n   * to control animations for the dialog component.\n   */\n  transition: _elementType2.default,\n\n  /**\n   * A `react-transition-group@2.0.0` `<Transition/>` component used\n   * to control animations for the backdrop components.\n   */\n  backdropTransition: _elementType2.default,\n\n  /**\n   * When `true` The modal will automatically shift focus to itself when it opens, and\n   * replace it to the last focused element when it closes. This also\n   * works correctly with any Modal children that have the `autoFocus` prop.\n   *\n   * Generally this should never be set to `false` as it makes the Modal less\n   * accessible to assistive technologies, like screen readers.\n   */\n  autoFocus: _propTypes2.default.bool,\n\n  /**\n   * When `true` The modal will prevent focus from leaving the Modal while open.\n   *\n   * Generally this should never be set to `false` as it makes the Modal less\n   * accessible to assistive technologies, like screen readers.\n   */\n  enforceFocus: _propTypes2.default.bool,\n\n  /**\n   * When `true` The modal will restore focus to previously focused element once\n   * modal is hidden\n   */\n  restoreFocus: _propTypes2.default.bool,\n\n  /**\n   * Callback fired before the Modal transitions in\n   */\n  onEnter: _propTypes2.default.func,\n\n  /**\n   * Callback fired as the Modal begins to transition in\n   */\n  onEntering: _propTypes2.default.func,\n\n  /**\n   * Callback fired after the Modal finishes transitioning in\n   */\n  onEntered: _propTypes2.default.func,\n\n  /**\n   * Callback fired right before the Modal transitions out\n   */\n  onExit: _propTypes2.default.func,\n\n  /**\n   * Callback fired as the Modal begins to transition out\n   */\n  onExiting: _propTypes2.default.func,\n\n  /**\n   * Callback fired after the Modal finishes transitioning out\n   */\n  onExited: _propTypes2.default.func,\n\n  /**\n   * A ModalManager instance used to track and manage the state of open\n   * Modals. Useful when customizing how modals interact within a container\n   */\n  manager: _propTypes2.default.object.isRequired\n});\nModal.defaultProps = {\n  show: false,\n  backdrop: true,\n  keyboard: true,\n  autoFocus: true,\n  enforceFocus: true,\n  restoreFocus: true,\n  onHide: function onHide() {},\n  manager: modalManager,\n  renderBackdrop: function renderBackdrop(props) {\n    return _react2.default.createElement('div', props);\n  }\n};\n\nvar _initialiseProps = function _initialiseProps() {\n  var _this2 = this;\n\n  this.state = { exited: !this.props.show };\n\n  this.renderBackdrop = function () {\n    var _props3 = _this2.props,\n        backdropStyle = _props3.backdropStyle,\n        backdropClassName = _props3.backdropClassName,\n        renderBackdrop = _props3.renderBackdrop,\n        Transition = _props3.backdropTransition;\n\n\n    var backdropRef = function backdropRef(ref) {\n      return _this2.backdrop = ref;\n    };\n\n    var backdrop = renderBackdrop({\n      ref: backdropRef,\n      style: backdropStyle,\n      className: backdropClassName,\n      onClick: _this2.handleBackdropClick\n    });\n\n    if (Transition) {\n      backdrop = _react2.default.createElement(\n        Transition,\n        {\n          appear: true,\n          'in': _this2.props.show\n        },\n        backdrop\n      );\n    }\n\n    return backdrop;\n  };\n\n  this.onPortalRendered = function () {\n    _this2.autoFocus();\n\n    if (_this2.props.onShow) {\n      _this2.props.onShow();\n    }\n  };\n\n  this.onShow = function () {\n    var doc = (0, _ownerDocument2.default)(_this2);\n    var container = (0, _getContainer2.default)(_this2.props.container, doc.body);\n\n    _this2.props.manager.add(_this2, container, _this2.props.containerClassName);\n\n    _this2._onDocumentKeydownListener = (0, _addEventListener2.default)(doc, 'keydown', _this2.handleDocumentKeyDown);\n\n    _this2._onDocumentKeyupListener = (0, _addEventListener2.default)(doc, 'keyup', _this2.handleDocumentKeyUp);\n\n    _this2._onFocusinListener = (0, _addFocusListener2.default)(_this2.enforceFocus);\n  };\n\n  this.onHide = function () {\n    _this2.props.manager.remove(_this2);\n\n    _this2._onDocumentKeydownListener.remove();\n\n    _this2._onDocumentKeyupListener.remove();\n\n    _this2._onFocusinListener.remove();\n\n    if (_this2.props.restoreFocus) {\n      _this2.restoreLastFocus();\n    }\n  };\n\n  this.setMountNode = function (ref) {\n    _this2.mountNode = ref ? ref.getMountNode() : ref;\n  };\n\n  this.setModalNodeRef = function (ref) {\n    _this2.modalNode = ref;\n  };\n\n  this.setDialogRef = function (ref) {\n    _this2.dialog = ref;\n  };\n\n  this.handleHidden = function () {\n    _this2.setState({ exited: true });\n    _this2.onHide();\n\n    if (_this2.props.onExited) {\n      var _props4;\n\n      (_props4 = _this2.props).onExited.apply(_props4, arguments);\n    }\n  };\n\n  this.handleBackdropClick = function (e) {\n    if (e.target !== e.currentTarget) {\n      return;\n    }\n\n    if (_this2.props.onBackdropClick) {\n      _this2.props.onBackdropClick(e);\n    }\n\n    if (_this2.props.backdrop === true) {\n      _this2.props.onHide();\n    }\n  };\n\n  this.handleDocumentKeyDown = function (e) {\n    if (_this2.props.keyboard && e.keyCode === 27 && _this2.isTopModal()) {\n      if (_this2.props.onEscapeKeyDown) {\n        _this2.props.onEscapeKeyDown(e);\n      }\n\n      _this2.props.onHide();\n    }\n  };\n\n  this.handleDocumentKeyUp = function (e) {\n    if (_this2.props.keyboard && e.keyCode === 27 && _this2.isTopModal()) {\n      if (_this2.props.onEscapeKeyUp) {\n        _this2.props.onEscapeKeyUp(e);\n      }\n    }\n  };\n\n  this.checkForFocus = function () {\n    if (_inDOM2.default) {\n      _this2.lastFocus = (0, _activeElement2.default)();\n    }\n  };\n\n  this.enforceFocus = function () {\n    if (!_this2.props.enforceFocus || !_this2._isMounted || !_this2.isTopModal()) {\n      return;\n    }\n\n    var dialogElement = _this2.getDialogElement();\n    var currentActiveElement = (0, _activeElement2.default)((0, _ownerDocument2.default)(_this2));\n\n    if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) {\n      dialogElement.focus();\n    }\n  };\n};\n\nModal.Manager = _ModalManager2.default;\n\nexports.default = Modal;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _class = require('dom-helpers/class');\n\nvar _class2 = _interopRequireDefault(_class);\n\nvar _style = require('dom-helpers/style');\n\nvar _style2 = _interopRequireDefault(_style);\n\nvar _scrollbarSize = require('dom-helpers/util/scrollbarSize');\n\nvar _scrollbarSize2 = _interopRequireDefault(_scrollbarSize);\n\nvar _isOverflowing = require('./utils/isOverflowing');\n\nvar _isOverflowing2 = _interopRequireDefault(_isOverflowing);\n\nvar _manageAriaHidden = require('./utils/manageAriaHidden');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction findIndexOf(arr, cb) {\n  var idx = -1;\n  arr.some(function (d, i) {\n    if (cb(d, i)) {\n      idx = i;\n      return true;\n    }\n  });\n  return idx;\n}\n\nfunction findContainer(data, modal) {\n  return findIndexOf(data, function (d) {\n    return d.modals.indexOf(modal) !== -1;\n  });\n}\n\nfunction setContainerStyle(state, container) {\n  var style = { overflow: 'hidden' };\n\n  // we are only interested in the actual `style` here\n  // becasue we will override it\n  state.style = {\n    overflow: container.style.overflow,\n    paddingRight: container.style.paddingRight\n  };\n\n  if (state.overflowing) {\n    // use computed style, here to get the real padding\n    // to add our scrollbar width\n    style.paddingRight = parseInt((0, _style2.default)(container, 'paddingRight') || 0, 10) + (0, _scrollbarSize2.default)() + 'px';\n  }\n\n  (0, _style2.default)(container, style);\n}\n\nfunction removeContainerStyle(_ref, container) {\n  var style = _ref.style;\n\n\n  Object.keys(style).forEach(function (key) {\n    return container.style[key] = style[key];\n  });\n}\n/**\n * Proper state managment for containers and the modals in those containers.\n *\n * @internal Used by the Modal to ensure proper styling of containers.\n */\n\nvar ModalManager = function ModalManager() {\n  var _this = this;\n\n  var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n      _ref2$hideSiblingNode = _ref2.hideSiblingNodes,\n      hideSiblingNodes = _ref2$hideSiblingNode === undefined ? true : _ref2$hideSiblingNode,\n      _ref2$handleContainer = _ref2.handleContainerOverflow,\n      handleContainerOverflow = _ref2$handleContainer === undefined ? true : _ref2$handleContainer;\n\n  _classCallCheck(this, ModalManager);\n\n  this.add = function (modal, container, className) {\n    var modalIdx = _this.modals.indexOf(modal);\n    var containerIdx = _this.containers.indexOf(container);\n\n    if (modalIdx !== -1) {\n      return modalIdx;\n    }\n\n    modalIdx = _this.modals.length;\n    _this.modals.push(modal);\n\n    if (_this.hideSiblingNodes) {\n      (0, _manageAriaHidden.hideSiblings)(container, modal.modalNode);\n    }\n\n    if (containerIdx !== -1) {\n      _this.data[containerIdx].modals.push(modal);\n      return modalIdx;\n    }\n\n    var data = {\n      modals: [modal],\n      //right now only the first modal of a container will have its classes applied\n      classes: className ? className.split(/\\s+/) : [],\n\n      overflowing: (0, _isOverflowing2.default)(container)\n    };\n\n    if (_this.handleContainerOverflow) {\n      setContainerStyle(data, container);\n    }\n\n    data.classes.forEach(_class2.default.addClass.bind(null, container));\n\n    _this.containers.push(container);\n    _this.data.push(data);\n\n    return modalIdx;\n  };\n\n  this.remove = function (modal) {\n    var modalIdx = _this.modals.indexOf(modal);\n\n    if (modalIdx === -1) {\n      return;\n    }\n\n    var containerIdx = findContainer(_this.data, modal);\n    var data = _this.data[containerIdx];\n    var container = _this.containers[containerIdx];\n\n    data.modals.splice(data.modals.indexOf(modal), 1);\n\n    _this.modals.splice(modalIdx, 1);\n\n    // if that was the last modal in a container,\n    // clean up the container\n    if (data.modals.length === 0) {\n      data.classes.forEach(_class2.default.removeClass.bind(null, container));\n\n      if (_this.handleContainerOverflow) {\n        removeContainerStyle(data, container);\n      }\n\n      if (_this.hideSiblingNodes) {\n        (0, _manageAriaHidden.showSiblings)(container, modal.modalNode);\n      }\n      _this.containers.splice(containerIdx, 1);\n      _this.data.splice(containerIdx, 1);\n    } else if (_this.hideSiblingNodes) {\n      //otherwise make sure the next top modal is visible to a SR\n      (0, _manageAriaHidden.ariaHidden)(false, data.modals[data.modals.length - 1].modalNode);\n    }\n  };\n\n  this.isTopModal = function (modal) {\n    return !!_this.modals.length && _this.modals[_this.modals.length - 1] === modal;\n  };\n\n  this.hideSiblingNodes = hideSiblingNodes;\n  this.handleContainerOverflow = handleContainerOverflow;\n  this.modals = [];\n  this.containers = [];\n  this.data = [];\n};\n\nexports.default = ModalManager;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _inDOM = require('dom-helpers/util/inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nvar _LegacyPortal = require('./LegacyPortal');\n\nvar _LegacyPortal2 = _interopRequireDefault(_LegacyPortal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * The `<Portal/>` component renders its children into a new \"subtree\" outside of current component hierarchy.\n * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.\n * The children of `<Portal/>` component will be appended to the `container` specified.\n */\nvar Portal = function (_React$Component) {\n  _inherits(Portal, _React$Component);\n\n  function Portal() {\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Portal);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.getMountNode = function () {\n      return _this._portalContainerNode;\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  Portal.prototype.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n    if (!_inDOM2.default) {\n      return;\n    }\n\n    var container = this.props.container;\n\n    if (typeof container === 'function') {\n      container = container();\n    }\n\n    if (container && !_reactDom2.default.findDOMNode(container)) {\n      // The container is a React component that has not yet been rendered.\n      // Don't set the container node yet.\n      return;\n    }\n\n    this.setContainer(container);\n  };\n\n  Portal.prototype.componentDidMount = function componentDidMount() {\n    if (!this._portalContainerNode) {\n      this.setContainer(this.props.container);\n      this.forceUpdate(this.props.onRendered);\n    } else if (this.props.onRendered) {\n      this.props.onRendered();\n    }\n  };\n\n  Portal.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n    if (nextProps.container !== this.props.container) {\n      this.setContainer(nextProps.container);\n    }\n  };\n\n  Portal.prototype.componentWillUnmount = function componentWillUnmount() {\n    this._portalContainerNode = null;\n  };\n\n  Portal.prototype.setContainer = function setContainer(container) {\n    this._portalContainerNode = (0, _getContainer2.default)(container, (0, _ownerDocument2.default)(this).body);\n  };\n\n  Portal.prototype.render = function render() {\n    return this.props.children && this._portalContainerNode ? _reactDom2.default.createPortal(this.props.children, this._portalContainerNode) : null;\n  };\n\n  return Portal;\n}(_react2.default.Component);\n\nPortal.displayName = 'Portal';\nPortal.propTypes = {\n  /**\n   * A Node, Component instance, or function that returns either. The `container` will have the Portal children\n   * appended to it.\n   */\n  container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n  onRendered: _propTypes2.default.func\n};\nexports.default = _reactDom2.default.createPortal ? Portal : _LegacyPortal2.default;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = {\n  children: _propTypes2.default.node\n};\n\n/**\n * Internal helper component to allow attaching a non-conflicting ref to a\n * child element that may not accept refs.\n */\n\nvar RefHolder = function (_React$Component) {\n  _inherits(RefHolder, _React$Component);\n\n  function RefHolder() {\n    _classCallCheck(this, RefHolder);\n\n    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n  }\n\n  RefHolder.prototype.render = function render() {\n    return this.props.children;\n  };\n\n  return RefHolder;\n}(_react2.default.Component);\n\nRefHolder.propTypes = propTypes;\n\nexports.default = RefHolder;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _contains = require('dom-helpers/query/contains');\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _addEventListener = require('./utils/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar escapeKeyCode = 27;\n\nfunction isLeftClickEvent(event) {\n  return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\n/**\n * The `<RootCloseWrapper/>` component registers your callback on the document\n * when rendered. Powers the `<Overlay/>` component. This is used achieve modal\n * style behavior where your callback is triggered when the user tries to\n * interact with the rest of the document or hits the `esc` key.\n */\n\nvar RootCloseWrapper = function (_React$Component) {\n  _inherits(RootCloseWrapper, _React$Component);\n\n  function RootCloseWrapper(props, context) {\n    _classCallCheck(this, RootCloseWrapper);\n\n    var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n    _this.addEventListeners = function () {\n      // Store the current event to avoid triggering handlers immediately\n      // https://github.com/facebook/react/issues/20074\n      _this.currentEvent = window.event;\n\n      var event = _this.props.event;\n\n      var doc = (0, _ownerDocument2.default)(_this);\n\n      // Use capture for this listener so it fires before React's listener, to\n      // avoid false positives in the contains() check below if the target DOM\n      // element is removed in the React mouse callback.\n      _this.documentMouseCaptureListener = (0, _addEventListener2.default)(doc, event, _this.handleMouseCapture, true);\n\n      _this.documentMouseListener = (0, _addEventListener2.default)(doc, event, _this.handleMouse);\n\n      _this.documentKeyupListener = (0, _addEventListener2.default)(doc, 'keyup', _this.handleKeyUp);\n    };\n\n    _this.removeEventListeners = function () {\n      if (_this.documentMouseCaptureListener) {\n        _this.documentMouseCaptureListener.remove();\n      }\n\n      if (_this.documentMouseListener) {\n        _this.documentMouseListener.remove();\n      }\n\n      if (_this.documentKeyupListener) {\n        _this.documentKeyupListener.remove();\n      }\n    };\n\n    _this.handleMouseCapture = function (e) {\n      _this.preventMouseRootClose = isModifiedEvent(e) || !isLeftClickEvent(e) || (0, _contains2.default)(_reactDom2.default.findDOMNode(_this), e.target);\n    };\n\n    _this.handleMouse = function (e) {\n      // skip if this event is the same as the one running when we added the handlers\n      if (e === _this.currentEvent) {\n        _this.currentEvent = undefined;\n        return;\n      }\n\n      if (!_this.preventMouseRootClose && _this.props.onRootClose) {\n        _this.props.onRootClose(e);\n      }\n    };\n\n    _this.handleKeyUp = function (e) {\n      // skip if this event is the same as the one running when we added the handlers\n      if (e === _this.currentEvent) {\n        _this.currentEvent = undefined;\n        return;\n      }\n\n      if (e.keyCode === escapeKeyCode && _this.props.onRootClose) {\n        _this.props.onRootClose(e);\n      }\n    };\n\n    _this.preventMouseRootClose = false;\n    return _this;\n  }\n\n  RootCloseWrapper.prototype.componentDidMount = function componentDidMount() {\n    if (!this.props.disabled) {\n      this.addEventListeners();\n    }\n  };\n\n  RootCloseWrapper.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n    if (!this.props.disabled && prevProps.disabled) {\n      this.addEventListeners();\n    } else if (this.props.disabled && !prevProps.disabled) {\n      this.removeEventListeners();\n    }\n  };\n\n  RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() {\n    if (!this.props.disabled) {\n      this.removeEventListeners();\n    }\n  };\n\n  RootCloseWrapper.prototype.render = function render() {\n    return this.props.children;\n  };\n\n  return RootCloseWrapper;\n}(_react2.default.Component);\n\nRootCloseWrapper.displayName = 'RootCloseWrapper';\n\nRootCloseWrapper.propTypes = {\n  /**\n   * Callback fired after click or mousedown. Also triggers when user hits `esc`.\n   */\n  onRootClose: _propTypes2.default.func,\n  /**\n   * Children to render.\n   */\n  children: _propTypes2.default.element,\n  /**\n   * Disable the the RootCloseWrapper, preventing it from triggering `onRootClose`.\n   */\n  disabled: _propTypes2.default.bool,\n  /**\n   * Choose which document mouse event to bind to.\n   */\n  event: _propTypes2.default.oneOf(['click', 'mousedown'])\n};\n\nRootCloseWrapper.defaultProps = {\n  event: 'click'\n};\n\nexports.default = RootCloseWrapper;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function (node, event, handler, capture) {\n  (0, _on2.default)(node, event, handler, capture);\n\n  return {\n    remove: function remove() {\n      (0, _off2.default)(node, event, handler, capture);\n    }\n  };\n};\n\nvar _on = require('dom-helpers/events/on');\n\nvar _on2 = _interopRequireDefault(_on);\n\nvar _off = require('dom-helpers/events/off');\n\nvar _off2 = _interopRequireDefault(_off);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = addFocusListener;\n/**\n * Firefox doesn't have a focusin event so using capture is easiest way to get bubbling\n * IE8 can't do addEventListener, but does have onfocusin, so we use that in ie8\n *\n * We only allow one Listener at a time to avoid stack overflows\n */\nfunction addFocusListener(handler) {\n  var useFocusin = !document.addEventListener;\n  var remove = void 0;\n\n  if (useFocusin) {\n    document.attachEvent('onfocusin', handler);\n    remove = function remove() {\n      return document.detachEvent('onfocusin', handler);\n    };\n  } else {\n    document.addEventListener('focus', handler, true);\n    remove = function remove() {\n      return document.removeEventListener('focus', handler, true);\n    };\n  }\n\n  return { remove: remove };\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = getContainer;\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getContainer(container, defaultContainer) {\n  container = typeof container === 'function' ? container() : container;\n  return _reactDom2.default.findDOMNode(container) || defaultContainer;\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = isOverflowing;\n\nvar _isWindow = require('dom-helpers/query/isWindow');\n\nvar _isWindow2 = _interopRequireDefault(_isWindow);\n\nvar _ownerDocument = require('dom-helpers/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isBody(node) {\n  return node && node.tagName.toLowerCase() === 'body';\n}\n\nfunction bodyIsOverflowing(node) {\n  var doc = (0, _ownerDocument2.default)(node);\n  var win = (0, _isWindow2.default)(doc);\n  var fullWidth = win.innerWidth;\n\n  // Support: ie8, no innerWidth\n  if (!fullWidth) {\n    var documentElementRect = doc.documentElement.getBoundingClientRect();\n    fullWidth = documentElementRect.right - Math.abs(documentElementRect.left);\n  }\n\n  return doc.body.clientWidth < fullWidth;\n}\n\nfunction isOverflowing(container) {\n  var win = (0, _isWindow2.default)(container);\n\n  return win || isBody(container) ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight;\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.ariaHidden = ariaHidden;\nexports.hideSiblings = hideSiblings;\nexports.showSiblings = showSiblings;\n\nvar BLACKLIST = ['template', 'script', 'style'];\n\nvar isHidable = function isHidable(_ref) {\n  var nodeType = _ref.nodeType,\n      tagName = _ref.tagName;\n  return nodeType === 1 && BLACKLIST.indexOf(tagName.toLowerCase()) === -1;\n};\n\nvar siblings = function siblings(container, mount, cb) {\n  mount = [].concat(mount);\n\n  [].forEach.call(container.children, function (node) {\n    if (mount.indexOf(node) === -1 && isHidable(node)) {\n      cb(node);\n    }\n  });\n};\n\nfunction ariaHidden(show, node) {\n  if (!node) {\n    return;\n  }\n  if (show) {\n    node.setAttribute('aria-hidden', 'true');\n  } else {\n    node.removeAttribute('aria-hidden');\n  }\n}\n\nfunction hideSiblings(container, mountNode) {\n  siblings(container, mountNode, function (node) {\n    return ariaHidden(true, node);\n  });\n}\n\nfunction showSiblings(container, mountNode) {\n  siblings(container, mountNode, function (node) {\n    return ariaHidden(false, node);\n  });\n}","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function (componentOrElement) {\n  return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(componentOrElement));\n};\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _ownerDocument = require('dom-helpers/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.trapFocus = trapFocus;\nexports.TABBABLE_ELEMENT_SELECTOR = exports.FOCUSABLE_ELEMENT_SELECTOR = exports.default = void 0;\n\nvar _autobindDecorator = _interopRequireDefault(require(\"autobind-decorator\"));\n\nvar _events = require(\"./events\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _string = require(\"./string\");\n\nvar _scrollToDOMNode = _interopRequireDefault(require(\"./scrollToDOMNode\"));\n\nvar _class, _class2, _temp2;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst WHITESPACE_REGEXP = /[\\n\\r]+|[\\s]{1,}/g;\nconst DELAY_BEFORE_AUTOFOCUS = 175;\n\nlet FocusManager = (0, _autobindDecorator.default)(_class = (_temp2 = _class2 = class FocusManager extends _react.default.Component {\n  constructor(...args) {\n    var _temp;\n\n    return _temp = super(...args), this.keysSoFar = '', this.keyClearTimeout = null, _temp;\n  }\n\n  getItems(selected = false) {\n    const {\n      itemSelector,\n      selectedItemSelector,\n      includeSelf\n    } = this.props;\n    const selector = selected && selectedItemSelector ? selectedItemSelector : itemSelector;\n\n    const node = _reactDom.default.findDOMNode(this);\n\n    const array = [];\n\n    if (includeSelf && node.matches(selector)) {\n      array.push(node);\n    }\n\n    let items = array.concat(Array.from(node.querySelectorAll(selector)));\n    /* When items have data-order defined, we use the attribute to sort the items.\n     * The sort order based on data-order attribute defines the next focus element.\n     */\n\n    if (items.length > 0 && items[0].getAttribute('data-order') !== undefined) {\n      items.sort(function (a, b) {\n        let p1 = a.getAttribute('data-order');\n        let p2 = b.getAttribute('data-order');\n        return parseInt(p1, 10) - parseInt(p2, 10);\n      });\n    }\n\n    return items;\n  }\n\n  onFocusFirst(e) {\n    const items = this.getItems();\n\n    if (items.length && (!e || items.indexOf(e.target) !== -1)) {\n      if (e) {\n        e.preventDefault();\n      }\n\n      items[0].focus();\n    }\n  }\n\n  onFocusLast(e) {\n    const items = this.getItems();\n\n    if (items.length && (!e || items.indexOf(e.target) !== -1)) {\n      if (e) {\n        e.preventDefault();\n      }\n\n      items[items.length - 1].focus();\n    }\n  }\n\n  onFocusPrevious(e, offset = 1) {\n    const items = this.getItems();\n\n    if (items.length && e && items.indexOf(e.target) !== -1) {\n      e.preventDefault();\n      let index = items.indexOf(e.target) - offset;\n\n      if (index < 0) {\n        if (this.props.disableCyclicFocus) {\n          return;\n        }\n\n        index = items.length - 1;\n      }\n\n      items[index].focus();\n    }\n  }\n\n  onFocusNext(e, offset = 1) {\n    const items = this.getItems();\n\n    if (items.length && e && items.indexOf(e.target) !== -1) {\n      e.preventDefault();\n      let index = items.indexOf(e.target) + offset;\n\n      if (index >= items.length) {\n        if (this.props.disableCyclicFocus) {\n          return;\n        }\n\n        index = 0;\n      }\n\n      items[index].focus();\n    }\n  }\n\n  onPageUp(e) {\n    if (this.props.ignorePageUpPageDown) {\n      return;\n    }\n\n    const items = this.getItems();\n\n    if (items.length && e && items.indexOf(e.target) !== -1) {\n      e.preventDefault();\n\n      const listNode = _reactDom.default.findDOMNode(this);\n\n      const nextPage = Math.max(e.target.offsetTop + e.target.offsetHeight - listNode.clientHeight, 0);\n      const index = items.indexOf(e.target);\n      const item = items.slice(0, index).reverse().find(item => item.offsetTop < nextPage);\n\n      if (item) {\n        item.focus();\n        (0, _scrollToDOMNode.default)(item, listNode, true);\n      } else {\n        this.onFocusFirst(e);\n      }\n    }\n  }\n\n  onPageDown(e) {\n    if (this.props.ignorePageUpPageDown) {\n      return;\n    }\n\n    const items = this.getItems();\n\n    if (items.length && e && items.indexOf(e.target) !== -1) {\n      e.preventDefault();\n\n      const listNode = _reactDom.default.findDOMNode(this);\n\n      const nextPage = Math.min(e.target.offsetTop + listNode.clientHeight, listNode.scrollHeight + listNode.clientHeight);\n      const index = items.indexOf(e.target) + 1;\n      const item = items.slice(index).find(item => item.offsetTop + item.offsetHeight > nextPage);\n\n      if (item) {\n        item.focus();\n        (0, _scrollToDOMNode.default)(item, listNode, true);\n      } else {\n        this.onFocusLast(e);\n      }\n    }\n  }\n\n  findItemToFocus(e) {\n    const {\n      target,\n      shiftKey,\n      charCode\n    } = e;\n    const character = (0, _string.removeDiacritics)(String.fromCharCode(charCode)).toUpperCase();\n    let items = this.getItems();\n\n    if (this.keysSoFar === '' || character === this.keysSoFar || shiftKey) {\n      // reverse order if shiftKey is pressed\n      if (shiftKey) {\n        items = items.reverse();\n      }\n\n      this.searchIndex = items.indexOf(target);\n    }\n\n    if (character !== this.keysSoFar) {\n      this.keysSoFar += character;\n    }\n\n    this.clearKeysSoFarAfterDelay();\n    let item = this.findMatchInRange(items, this.searchIndex + 1, items.length);\n\n    if (!item) {\n      item = this.findMatchInRange(items, 0, this.searchIndex);\n    }\n\n    if (item) {\n      item.focus();\n    }\n  }\n\n  clearKeysSoFarAfterDelay() {\n    if (this.keyClearTimeout) {\n      clearTimeout(this.keyClearTimeout);\n    }\n\n    this.keyClearTimeout = setTimeout(() => this.keysSoFar = '', 500);\n  }\n\n  findMatchInRange(items, startIndex, endIndex) {\n    // Find the first item starting with the keysSoFar substring, searching in the specified range of items\n    for (let i = startIndex; i < endIndex; i++) {\n      const label = items[i].innerText || items[i].textContent;\n\n      if (label && (0, _string.removeDiacritics)(label).replace(WHITESPACE_REGEXP, '').toUpperCase().indexOf(this.keysSoFar) === 0) {\n        return items[i];\n      }\n    }\n\n    return null;\n  }\n  /**\n   * Handle keydown event\n   * @param {Event} e Event object\n   */\n\n\n  onKeyDown(e) {\n    if (e.isPropagationStopped()) {\n      return;\n    }\n\n    _events.interpretKeyboardEvent.call(this, e, this.props.orientation);\n  }\n  /**\n   * Handle keypress event\n   * @param {Event} e Event object\n   */\n\n\n  onKeyPress(e) {\n    if (e.isPropagationStopped()) {\n      return;\n    }\n\n    this.findItemToFocus(e);\n  }\n  /**\n   * When an item receives focus, it should have tabIndex === 0 and all other items should have tabIndex === -1\n   * @param {Event} e Event object\n   */\n\n\n  onFocus(e) {\n    if (e.isPropagationStopped()) {\n      return;\n    }\n\n    this.getItems().forEach(item => item.tabIndex = item === e.target ? 0 : -1);\n  }\n  /**\n   * When an item loses focus, set the appropriate tabIndex on each item based on its selected state.\n   * If the item losing focus is selected,\n   * it should be the only item to receive focus on shift+tab or tab back to the control,\n   * However, if the item losing focus is not selected,\n   * any of the selected items should receive focus on shift+tab or tab.\n   * @param {Event} e Event object\n   */\n\n\n  onBlur(e) {\n    if (e.isPropagationStopped()) {\n      return;\n    }\n\n    const selectedItems = this.getItems(true); // If there are selected items,\n\n    if (selectedItems.length) {\n      // store whether item losing focus is selected.\n      const targetSelected = selectedItems.indexOf(e.target) !== -1;\n      this.getItems().forEach(item => {\n        // store whether the current item is selected.\n        const selected = selectedItems.indexOf(item) !== -1; // If the current item is the item losing focus and it is selected,\n        // or the current item is selected and the item losing focus is not selected,\n        // set tabIndex === 0, otherwise set tabIndex === -1.\n\n        item.tabIndex = item === e.target && targetSelected || !targetSelected && selected ? 0 : -1;\n      });\n    }\n  }\n\n  componentDidMount() {\n    const {\n      autoFocus,\n      selectedItemSelector\n    } = this.props;\n\n    if (autoFocus) {\n      const selectedItem = selectedItemSelector ? _reactDom.default.findDOMNode(this).querySelector(selectedItemSelector) : null; // wait a frame before trying to shift focus\n\n      this.focusTimer = setTimeout(() => {\n        if (selectedItem) {\n          selectedItem.focus();\n        } else {\n          this.onFocusFirst();\n        }\n      }, DELAY_BEFORE_AUTOFOCUS);\n    }\n  }\n\n  componentWillUnmount() {\n    clearTimeout(this.focusTimer);\n  }\n\n  render() {\n    const {\n      children,\n      disabled,\n      manageTabIndex,\n      typeToSelect\n    } = this.props;\n\n    const child = _react.default.Children.only(children);\n\n    const {\n      onKeyDown,\n      onKeyPress,\n      onFocus,\n      onBlur\n    } = child.props;\n    return /*#__PURE__*/_react.default.cloneElement(child, {\n      onKeyDown: !disabled ? (0, _events.chain)(onKeyDown, this.onKeyDown) : onKeyDown,\n      onKeyPress: typeToSelect && !disabled ? (0, _events.chain)(onKeyPress, this.onKeyPress) : onKeyPress,\n      onFocus: manageTabIndex && !disabled ? (0, _events.chain)(onFocus, this.onFocus) : onFocus,\n      onBlur: manageTabIndex && !disabled ? (0, _events.chain)(onBlur, this.onBlur) : onBlur\n    });\n  }\n\n}, _class2.propTypes = {\n  /**\n   * A selector of focusable elements to manage focus between\n   */\n  itemSelector: _propTypes.default.string.isRequired,\n\n  /**\n   * Whether to use roving tabIndex so that only one element within the group can receive focus with tab key at a time.\n   */\n  manageTabIndex: _propTypes.default.bool,\n\n  /**\n   * Orientation of items; \"horizontal\" orientation ignores up/down arrow keys, \"vertical\" orientation ignores left/right arrow keys, \"both\" handles up/left and down/right.\n   */\n  orientation: _propTypes.default.oneOf(['horizontal', 'vertical', 'both']),\n\n  /**\n   * A selector of selected elements\n   */\n  selectedItemSelector: _propTypes.default.string,\n\n  /**\n   * Whether to disable focus management\n   */\n  disabled: _propTypes.default.bool,\n\n  /**\n   * Whether to include alphanumeric typing as a way to move focus to items in a list.\n   */\n  typeToSelect: _propTypes.default.bool,\n\n  /**\n   * Whether to include the child wrapper element in the group of elements that can receive focus.\n   */\n  includeSelf: _propTypes.default.bool,\n\n  /**\n   * Whether to ignore PageUp and PageDown events to move focus between items.\n   */\n  ignorePageUpPageDown: _propTypes.default.bool,\n\n  /**\n   * Whether to autoFocus first selected item or first item.\n   */\n  autoFocus: _propTypes.default.bool\n}, _class2.defaultProps = {\n  manageTabIndex: true,\n  orientation: 'vertical',\n  typeToSelect: false,\n  includeSelf: false,\n  ignorePageUpPageDown: false\n}, _temp2)) || _class;\n\nexports.default = FocusManager;\nconst focusableElements = ['input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'a[href]', 'area[href]', 'summary', 'iframe', 'object', 'embed', 'audio[controls]', 'video[controls]', '[contenteditable]'];\nconst spFocusableElements = ['sp-action-button:not([disabled])', 'sp-button:not([disabled])', 'sp-checkbox:not([disabled])', 'sp-link:not([disabled])', 'sp-radio:not([disabled])', 'sp-radio-group:not([disabled])', 'sp-slider:not([disabled])'];\nfocusableElements.push(spFocusableElements);\nconst FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(',') + ',[tabindex]';\nexports.FOCUSABLE_ELEMENT_SELECTOR = FOCUSABLE_ELEMENT_SELECTOR;\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"])');\nconst TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([tabindex=\"-1\"]),');\nexports.TABBABLE_ELEMENT_SELECTOR = TABBABLE_ELEMENT_SELECTOR;\n\nfunction trapFocus(componentOrElement, event) {\n  const {\n    type,\n    key,\n    shiftKey,\n    target\n  } = event;\n  let node;\n  let tabbables;\n  let tabbable;\n  let first;\n  let last;\n\n  if (type === 'keydown' || type === 'focus') {\n    node = _reactDom.default.findDOMNode(componentOrElement);\n\n    if (node) {\n      // find tabbable elements within container element\n      tabbables = Array.from(node.querySelectorAll(TABBABLE_ELEMENT_SELECTOR)).filter(el => el !== node);\n      first = tabbables[0] || node;\n      last = tabbables[tabbables.length - 1] || node;\n    }\n  } // If navigating using the tab key,\n\n\n  if (type === 'keydown' && key === 'Tab') {\n    if (node) {\n      if (shiftKey) {\n        // with focus on first tabbable element, navigating backwards,\n        if (target === first || target === node) {\n          // focus the last tabbable element\n          tabbable = last;\n        } // otherwise, with focus on last tabbable element, navigating forwards,\n\n      } else if (target === last || target === node) {\n        // focus the first tabbable element.\n        tabbable = first;\n      }\n    }\n  } else if (type === 'focus' && target === node) {\n    tabbable = first;\n  }\n\n  if (tabbable) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    if (tabbable !== document.activeElement) {\n      tabbable.focus();\n    }\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = OpenTransition;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"react-transition-group/Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nconst OPEN_STATES = {\n  entering: false,\n  entered: true\n};\n/**\n * timeout issues adding css animations to enter may be related to\n * https://github.com/reactjs/react-transition-group/issues/189 or\n * https://github.com/reactjs/react-transition-group/issues/22\n * my VM isn't good enough to debug accurately and get a better answer\n *\n * as a result, use enter 0 so that is-open is applied once entered\n * it doesn't matter if we know when the css-animation is done on entering\n * for exiting though, give time for the css-animation to play\n * before removing from the DOM\n * **note** hitting esc bypasses exit animation for anyone testing\n */\n\nfunction OpenTransition(props) {\n  return /*#__PURE__*/_react.default.createElement(_Transition.default, _extends({\n    timeout: {\n      enter: 0,\n      exit: 125\n    }\n  }, props), state => /*#__PURE__*/_react.default.cloneElement(props.children, {\n    open: !!OPEN_STATES[state]\n  }));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.removeEventProps = removeEventProps;\nexports.attachEventListeners = attachEventListeners;\nexports.removeEventListeners = removeEventListeners;\nexports.updateEventListeners = updateEventListeners;\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2021 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\n\n/**\n* Remove the event props\n*/\nfunction removeEventProps(props) {\n  const filteredProps = {}; // Remove all event related props to avoid duplicate handling of events.\n\n  for (const prop in props) {\n    if (!prop.startsWith('on')) {\n      filteredProps[prop] = props[prop];\n    }\n  }\n\n  return filteredProps;\n}\n/**\n* Add event listeners for the all the event props for a given component\n*/\n\n\nfunction attachEventListeners(component, props, handleEvent) {\n  if (component) {\n    const eventProps = Object.keys(props).filter(propName => propName.startsWith('on'));\n    eventProps.forEach(eventName => component.addEventListener(eventName.substr(2).toLowerCase(), handleEvent));\n  }\n}\n/**\n * Remove event listeners for all the event props for a given component\n */\n\n\nfunction removeEventListeners(component, props, handleEvent) {\n  if (component) {\n    const eventProps = Object.keys(props).filter(propName => propName.startsWith('on'));\n    eventProps.forEach(([eventName]) => component.removeEventListener(eventName.substr(2).toLowerCase(), handleEvent));\n  }\n}\n/**\n * Update the event listeners by adding event listeners for any newly added props.\n * returns true if it has updated otherwise false.\n */\n\n\nfunction updateEventListeners(component, prevProps, props, handleEvent, updateAllEventListeners) {\n  if (component && updateAllEventListeners) {\n    attachEventListeners(component, props, handleEvent);\n    return true;\n  } else if (component) {\n    const eventProps = Object.keys(props).filter(propName => !prevProps[propName] && propName.startsWith('on'));\n    eventProps.forEach(eventName => component.addEventListener(eventName.substr(2).toLowerCase(), handleEvent));\n    return true;\n  } else {\n    return false;\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _needsNative = _interopRequireDefault(require(\"./needsNative\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst isUxp = window.location.protocol === 'plugin:';\nconst defaultOptions = Object.freeze({\n  enabled: isUxp,\n  enableSpectrumUXP: false,\n  default: isUxp,\n  productNeedsOverlayFix: isUxp && (0, _needsNative.default)() || false,\n  AccordionItem: undefined,\n  Autocomplete: undefined,\n  Breadcrumbs: undefined,\n  Button: undefined,\n  Checkbox: undefined,\n  CoachMark: undefined,\n  CoachMarkIndicator: undefined,\n  CoachMarkPopover: undefined,\n  Dialog: undefined,\n  Dropdown: undefined,\n  FieldLabel: undefined,\n  FocusRingPolyfill: undefined,\n  Form: undefined,\n  Label: undefined,\n  Link: undefined,\n  ListItem: undefined,\n  Menu: undefined,\n  SubMenu: undefined,\n  ModalTrigger: undefined,\n  OverlayTrigger: undefined,\n  Popover: undefined,\n  Progress: undefined,\n  Provider: undefined,\n  Radio: undefined,\n  RadioGroup: undefined,\n  Rule: undefined,\n  Search: undefined,\n  Select: undefined,\n  SelectList: undefined,\n  Slider: undefined,\n  SwitchBase: undefined,\n  Tab: undefined,\n  TR: undefined,\n  TabList: undefined,\n  Tag: undefined,\n  Textfield: undefined,\n  Toast: undefined,\n  Tooltip: undefined,\n  Video: undefined,\n  Wait: undefined,\n  PortalContainer: undefined,\n  ScrollManager: undefined\n}); //  this is necessary because we are using require(\"Component\") and the Component is exporting default usually\n\nfunction getDefaultExport(moduleExports) {\n  return moduleExports.default || moduleExports;\n}\n\nclass UxpOptions {\n  constructor() {\n    this.reset();\n  }\n\n  reset() {\n    Object.assign(this, defaultOptions);\n  }\n\n  select(name, UxpComponentFn, WebComponentFn, SpComponentFn) {\n    if (Array.isArray(this['enableSpectrumUXP']) && this['enableSpectrumUXP'].includes(name) && SpComponentFn) {\n      return getDefaultExport(SpComponentFn());\n    }\n\n    if (this[name]) {\n      return getDefaultExport(UxpComponentFn());\n    }\n\n    return getDefaultExport(WebComponentFn());\n  }\n\n} //  we use a proxy in order to provide logic for each option on get\n\n\nvar _default = new Proxy(new UxpOptions(), {\n  get(options, p) {\n    let value = options[p];\n\n    if (defaultOptions.hasOwnProperty(p)) {\n      if (options.enabled) {\n        return value != null ? value : options.default;\n      }\n\n      return false;\n    }\n\n    return value;\n  }\n\n});\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = boundingRectOverlapping;\n\nfunction boundingRectOverlapping(br1, br2) {\n  if (isBoundingClientRectZero(br1) || isBoundingClientRectZero(br2)) {\n    return false;\n  }\n\n  return !(br2.left >= br1.right || br2.right <= br1.left || br2.top >= br1.bottom || br2.bottom <= br1.top);\n}\n\nfunction isBoundingClientRectZero(br) {\n  if (br.left === 0 && br.right === 0 && br.top === 0 && br.bottom === 0) {\n    return true;\n  }\n\n  return false;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = configureTypekit;\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nfunction configureTypekit(typeKitId) {\n  const config = {\n    kitId: typeKitId,\n    scriptTimeout: 3000\n  };\n\n  if (!window.Typekit) {\n    // we load the typescript only once\n    const h = document.getElementsByTagName('html')[0];\n    h.className += ' wf-loading';\n    const t = setTimeout(() => {\n      h.className = h.className.replace(/(\\s|^)wf-loading(\\s|$)/g, ' ');\n      h.className += ' wf-inactive';\n    }, config.scriptTimeout);\n    const tk = document.createElement('script');\n    let d = false;\n    tk.src = `https://use.typekit.net/${config.kitId}.js`;\n    tk.type = 'text/javascript';\n    tk.async = 'true';\n\n    tk.onload = tk.onreadystatechange = function onload() {\n      const a = this.readyState;\n\n      if (d || a && a !== 'complete' && a !== 'loaded') {\n        return;\n      }\n\n      d = true;\n      clearTimeout(t);\n\n      try {\n        window.Typekit.load(config);\n      } catch (b) {\n        /* empty */\n      }\n    };\n\n    const s = document.getElementsByTagName('script')[0];\n    s.parentNode.insertBefore(tk, s);\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = convertUnsafeMethod;\n\nvar _semverCompare = _interopRequireDefault(require(\"semver-compare\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\n\n/**\n * This is a decorator that converts UNSAFE React lifecycle methods to their pre-React 16.3.0 variant\n*/\nfunction convertUnsafeMethod(WrappedComponent) {\n  const proto = WrappedComponent.prototype;\n  const UNSAFE_componentWillUpdate = proto.UNSAFE_componentWillUpdate;\n  const UNSAFE_componentWillMount = proto.UNSAFE_componentWillMount;\n  const UNSAFE_componentWillReceiveProps = proto.UNSAFE_componentWillReceiveProps;\n\n  if ((0, _semverCompare.default)(_react.default.version, '16.3.0') === -1) {\n    if (UNSAFE_componentWillUpdate) {\n      proto.componentWillUpdate = function (props, state) {\n        UNSAFE_componentWillUpdate.apply(this, arguments);\n      };\n    }\n\n    if (UNSAFE_componentWillMount) {\n      proto.componentWillMount = function () {\n        UNSAFE_componentWillMount.apply(this, arguments);\n      };\n    }\n\n    if (UNSAFE_componentWillReceiveProps) {\n      proto.componentWillReceiveProps = function (props) {\n        UNSAFE_componentWillReceiveProps.apply(this, arguments);\n      };\n    }\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nconst PREFIX = 'react-spectrum-';\nlet incrementor = 0;\n\nvar _default = () => PREFIX + ++incrementor;\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n// ////////////////////////////////////////////////////////////////////\n//  DO NOT modify this file by hand.\n//  contents generated by extract-dna.js\n// ////////////////////////////////////////////////////////////////////\nvar _default = {\n  'elements': {\n    'lightest': {\n      'medium': {\n        'circleloader': {\n          'large': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(80, 80, 80)',\n                'track-color': 'rgb(234, 234, 234)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '64px',\n              'width': '64px',\n              'border-size': '4px'\n            }\n          },\n          'large-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '64px',\n              'width': '64px',\n              'border-size': '4px'\n            }\n          },\n          'medium': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(80, 80, 80)',\n                'track-color': 'rgb(234, 234, 234)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '32px',\n              'width': '32px',\n              'border-size': '3px'\n            }\n          },\n          'medium-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '32px',\n              'width': '32px',\n              'border-size': '3px'\n            }\n          },\n          'small': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(80, 80, 80)',\n                'track-color': 'rgb(234, 234, 234)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '16px',\n              'width': '16px',\n              'border-size': '2px'\n            }\n          },\n          'small-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '16px',\n              'width': '16px',\n              'border-size': '2px'\n            }\n          }\n        },\n        'coachmark': {\n          'default': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '16px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(55, 142, 240)'\n              }\n            }\n          },\n          'quiet': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '8px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(55, 142, 240)'\n              }\n            }\n          }\n        },\n        'popover': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(211, 211, 211)'\n              }\n            }\n          }\n        },\n        'sidenav': {\n          'default': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(55, 142, 240)'\n              }\n            }\n          },\n          'multilevel': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(55, 142, 240)'\n              }\n            }\n          }\n        },\n        'textfield': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(234, 234, 234)'\n              },\n              'disabled': {\n                'background-color': 'rgb(244, 244, 244)',\n                'border-color': 'transparent'\n              },\n              'mouse-focus': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'quiet': {\n            'states': {\n              'default': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(234, 234, 234)'\n              },\n              'disabled': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(234, 234, 234)'\n              },\n              'mouse-focus': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'tooltip': {\n          'default': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(116, 116, 116)'\n              }\n            }\n          },\n          'info': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(13, 102, 208)'\n              }\n            }\n          },\n          'negative': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(201, 37, 45)'\n              }\n            }\n          },\n          'positive': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(18, 128, 92)'\n              }\n            }\n          }\n        }\n      },\n      'large': {\n        'circleloader': {\n          'large': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(80, 80, 80)',\n                'track-color': 'rgb(234, 234, 234)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '80px',\n              'width': '80px',\n              'border-size': '5px'\n            }\n          },\n          'large-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '80px',\n              'width': '80px',\n              'border-size': '5px'\n            }\n          },\n          'medium': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(80, 80, 80)',\n                'track-color': 'rgb(234, 234, 234)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '40px',\n              'width': '40px',\n              'border-size': '4px'\n            }\n          },\n          'medium-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '40px',\n              'width': '40px',\n              'border-size': '4px'\n            }\n          },\n          'small': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(80, 80, 80)',\n                'track-color': 'rgb(234, 234, 234)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '20px',\n              'width': '20px',\n              'border-size': '3px'\n            }\n          },\n          'small-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '20px',\n              'width': '20px',\n              'border-size': '3px'\n            }\n          }\n        },\n        'coachmark': {\n          'default': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '20px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(55, 142, 240)'\n              }\n            }\n          },\n          'quiet': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '10px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(55, 142, 240)'\n              }\n            }\n          }\n        },\n        'popover': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(211, 211, 211)'\n              }\n            }\n          }\n        },\n        'sidenav': {\n          'default': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(55, 142, 240)'\n              }\n            }\n          },\n          'multilevel': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(55, 142, 240)'\n              }\n            }\n          }\n        },\n        'textfield': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(234, 234, 234)'\n              },\n              'disabled': {\n                'background-color': 'rgb(244, 244, 244)',\n                'border-color': 'transparent'\n              },\n              'mouse-focus': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'quiet': {\n            'states': {\n              'default': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(234, 234, 234)'\n              },\n              'disabled': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(234, 234, 234)'\n              },\n              'mouse-focus': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'tooltip': {\n          'default': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(116, 116, 116)'\n              }\n            }\n          },\n          'info': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(13, 102, 208)'\n              }\n            }\n          },\n          'negative': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(201, 37, 45)'\n              }\n            }\n          },\n          'positive': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(18, 128, 92)'\n              }\n            }\n          }\n        }\n      }\n    },\n    'light': {\n      'medium': {\n        'circleloader': {\n          'large': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(75, 75, 75)',\n                'track-color': 'rgb(225, 225, 225)',\n                'track-fill-color': 'rgb(20, 115, 230)'\n              }\n            },\n            'dimensions': {\n              'height': '64px',\n              'width': '64px',\n              'border-size': '4px'\n            }\n          },\n          'large-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '64px',\n              'width': '64px',\n              'border-size': '4px'\n            }\n          },\n          'medium': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(75, 75, 75)',\n                'track-color': 'rgb(225, 225, 225)',\n                'track-fill-color': 'rgb(20, 115, 230)'\n              }\n            },\n            'dimensions': {\n              'height': '32px',\n              'width': '32px',\n              'border-size': '3px'\n            }\n          },\n          'medium-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '32px',\n              'width': '32px',\n              'border-size': '3px'\n            }\n          },\n          'small': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(75, 75, 75)',\n                'track-color': 'rgb(225, 225, 225)',\n                'track-fill-color': 'rgb(20, 115, 230)'\n              }\n            },\n            'dimensions': {\n              'height': '16px',\n              'width': '16px',\n              'border-size': '2px'\n            }\n          },\n          'small-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '16px',\n              'width': '16px',\n              'border-size': '2px'\n            }\n          }\n        },\n        'coachmark': {\n          'default': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '16px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'quiet': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '8px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'popover': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(202, 202, 202)'\n              }\n            }\n          }\n        },\n        'sidenav': {\n          'default': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'multilevel': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'textfield': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(225, 225, 225)'\n              },\n              'disabled': {\n                'background-color': 'rgb(234, 234, 234)',\n                'border-color': 'transparent'\n              },\n              'mouse-focus': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(20, 115, 230)'\n              }\n            }\n          },\n          'quiet': {\n            'states': {\n              'default': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(225, 225, 225)'\n              },\n              'disabled': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(225, 225, 225)'\n              },\n              'mouse-focus': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(20, 115, 230)'\n              }\n            }\n          }\n        },\n        'tooltip': {\n          'default': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(116, 116, 116)'\n              }\n            }\n          },\n          'info': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(13, 102, 208)'\n              }\n            }\n          },\n          'negative': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(201, 37, 45)'\n              }\n            }\n          },\n          'positive': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(18, 128, 92)'\n              }\n            }\n          }\n        }\n      },\n      'large': {\n        'circleloader': {\n          'large': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(75, 75, 75)',\n                'track-color': 'rgb(225, 225, 225)',\n                'track-fill-color': 'rgb(20, 115, 230)'\n              }\n            },\n            'dimensions': {\n              'height': '80px',\n              'width': '80px',\n              'border-size': '5px'\n            }\n          },\n          'large-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '80px',\n              'width': '80px',\n              'border-size': '5px'\n            }\n          },\n          'medium': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(75, 75, 75)',\n                'track-color': 'rgb(225, 225, 225)',\n                'track-fill-color': 'rgb(20, 115, 230)'\n              }\n            },\n            'dimensions': {\n              'height': '40px',\n              'width': '40px',\n              'border-size': '4px'\n            }\n          },\n          'medium-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '40px',\n              'width': '40px',\n              'border-size': '4px'\n            }\n          },\n          'small': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(75, 75, 75)',\n                'track-color': 'rgb(225, 225, 225)',\n                'track-fill-color': 'rgb(20, 115, 230)'\n              }\n            },\n            'dimensions': {\n              'height': '20px',\n              'width': '20px',\n              'border-size': '3px'\n            }\n          },\n          'small-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '20px',\n              'width': '20px',\n              'border-size': '3px'\n            }\n          }\n        },\n        'coachmark': {\n          'default': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '20px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'quiet': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '10px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'popover': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(202, 202, 202)'\n              }\n            }\n          }\n        },\n        'sidenav': {\n          'default': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'multilevel': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'textfield': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(225, 225, 225)'\n              },\n              'disabled': {\n                'background-color': 'rgb(234, 234, 234)',\n                'border-color': 'transparent'\n              },\n              'mouse-focus': {\n                'background-color': 'rgb(255, 255, 255)',\n                'border-color': 'rgb(20, 115, 230)'\n              }\n            }\n          },\n          'quiet': {\n            'states': {\n              'default': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(225, 225, 225)'\n              },\n              'disabled': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(225, 225, 225)'\n              },\n              'mouse-focus': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(20, 115, 230)'\n              }\n            }\n          }\n        },\n        'tooltip': {\n          'default': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(116, 116, 116)'\n              }\n            }\n          },\n          'info': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(13, 102, 208)'\n              }\n            }\n          },\n          'negative': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(201, 37, 45)'\n              }\n            }\n          },\n          'positive': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(18, 128, 92)'\n              }\n            }\n          }\n        }\n      }\n    },\n    'dark': {\n      'medium': {\n        'circleloader': {\n          'large': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(227, 227, 227)',\n                'track-color': 'rgb(74, 74, 74)',\n                'track-fill-color': 'rgb(55, 142, 240)'\n              }\n            },\n            'dimensions': {\n              'height': '64px',\n              'width': '64px',\n              'border-size': '4px'\n            }\n          },\n          'large-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '64px',\n              'width': '64px',\n              'border-size': '4px'\n            }\n          },\n          'medium': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(227, 227, 227)',\n                'track-color': 'rgb(74, 74, 74)',\n                'track-fill-color': 'rgb(55, 142, 240)'\n              }\n            },\n            'dimensions': {\n              'height': '32px',\n              'width': '32px',\n              'border-size': '3px'\n            }\n          },\n          'medium-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '32px',\n              'width': '32px',\n              'border-size': '3px'\n            }\n          },\n          'small': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(227, 227, 227)',\n                'track-color': 'rgb(74, 74, 74)',\n                'track-fill-color': 'rgb(55, 142, 240)'\n              }\n            },\n            'dimensions': {\n              'height': '16px',\n              'width': '16px',\n              'border-size': '2px'\n            }\n          },\n          'small-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '16px',\n              'width': '16px',\n              'border-size': '2px'\n            }\n          }\n        },\n        'coachmark': {\n          'default': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '16px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'quiet': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '8px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'popover': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(37, 37, 37)',\n                'border-color': 'rgb(90, 90, 90)'\n              }\n            }\n          }\n        },\n        'sidenav': {\n          'default': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'multilevel': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'textfield': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(37, 37, 37)',\n                'border-color': 'rgb(74, 74, 74)'\n              },\n              'disabled': {\n                'background-color': 'rgb(62, 62, 62)',\n                'border-color': 'transparent'\n              },\n              'mouse-focus': {\n                'background-color': 'rgb(37, 37, 37)',\n                'border-color': 'rgb(55, 142, 240)'\n              }\n            }\n          },\n          'quiet': {\n            'states': {\n              'default': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(74, 74, 74)'\n              },\n              'disabled': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(74, 74, 74)'\n              },\n              'mouse-focus': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(55, 142, 240)'\n              }\n            }\n          }\n        },\n        'tooltip': {\n          'default': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(116, 116, 116)'\n              }\n            }\n          },\n          'info': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(13, 102, 208)'\n              }\n            }\n          },\n          'negative': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(201, 37, 45)'\n              }\n            }\n          },\n          'positive': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(18, 128, 92)'\n              }\n            }\n          }\n        }\n      },\n      'large': {\n        'circleloader': {\n          'large': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(227, 227, 227)',\n                'track-color': 'rgb(74, 74, 74)',\n                'track-fill-color': 'rgb(55, 142, 240)'\n              }\n            },\n            'dimensions': {\n              'height': '80px',\n              'width': '80px',\n              'border-size': '5px'\n            }\n          },\n          'large-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '80px',\n              'width': '80px',\n              'border-size': '5px'\n            }\n          },\n          'medium': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(227, 227, 227)',\n                'track-color': 'rgb(74, 74, 74)',\n                'track-fill-color': 'rgb(55, 142, 240)'\n              }\n            },\n            'dimensions': {\n              'height': '40px',\n              'width': '40px',\n              'border-size': '4px'\n            }\n          },\n          'medium-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '40px',\n              'width': '40px',\n              'border-size': '4px'\n            }\n          },\n          'small': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(227, 227, 227)',\n                'track-color': 'rgb(74, 74, 74)',\n                'track-fill-color': 'rgb(55, 142, 240)'\n              }\n            },\n            'dimensions': {\n              'height': '20px',\n              'width': '20px',\n              'border-size': '3px'\n            }\n          },\n          'small-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '20px',\n              'width': '20px',\n              'border-size': '3px'\n            }\n          }\n        },\n        'coachmark': {\n          'default': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '20px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'quiet': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '10px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'popover': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(37, 37, 37)',\n                'border-color': 'rgb(90, 90, 90)'\n              }\n            }\n          }\n        },\n        'sidenav': {\n          'default': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'multilevel': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'textfield': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(37, 37, 37)',\n                'border-color': 'rgb(74, 74, 74)'\n              },\n              'disabled': {\n                'background-color': 'rgb(62, 62, 62)',\n                'border-color': 'transparent'\n              },\n              'mouse-focus': {\n                'background-color': 'rgb(37, 37, 37)',\n                'border-color': 'rgb(55, 142, 240)'\n              }\n            }\n          },\n          'quiet': {\n            'states': {\n              'default': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(74, 74, 74)'\n              },\n              'disabled': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(74, 74, 74)'\n              },\n              'mouse-focus': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(55, 142, 240)'\n              }\n            }\n          }\n        },\n        'tooltip': {\n          'default': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(116, 116, 116)'\n              }\n            }\n          },\n          'info': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(13, 102, 208)'\n              }\n            }\n          },\n          'negative': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(201, 37, 45)'\n              }\n            }\n          },\n          'positive': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(18, 128, 92)'\n              }\n            }\n          }\n        }\n      }\n    },\n    'darkest': {\n      'medium': {\n        'circleloader': {\n          'large': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(200, 200, 200)',\n                'track-color': 'rgb(57, 57, 57)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '64px',\n              'width': '64px',\n              'border-size': '4px'\n            }\n          },\n          'large-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '64px',\n              'width': '64px',\n              'border-size': '4px'\n            }\n          },\n          'medium': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(200, 200, 200)',\n                'track-color': 'rgb(57, 57, 57)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '32px',\n              'width': '32px',\n              'border-size': '3px'\n            }\n          },\n          'medium-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '32px',\n              'width': '32px',\n              'border-size': '3px'\n            }\n          },\n          'small': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(200, 200, 200)',\n                'track-color': 'rgb(57, 57, 57)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '16px',\n              'width': '16px',\n              'border-size': '2px'\n            }\n          },\n          'small-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '16px',\n              'width': '16px',\n              'border-size': '2px'\n            }\n          }\n        },\n        'coachmark': {\n          'default': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '16px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(20, 115, 230)'\n              }\n            }\n          },\n          'quiet': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '8px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(20, 115, 230)'\n              }\n            }\n          }\n        },\n        'popover': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(8, 8, 8)',\n                'border-color': 'rgb(73, 73, 73)'\n              }\n            }\n          }\n        },\n        'sidenav': {\n          'default': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(20, 115, 230)'\n              }\n            }\n          },\n          'multilevel': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(20, 115, 230)'\n              }\n            }\n          }\n        },\n        'textfield': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(8, 8, 8)',\n                'border-color': 'rgb(57, 57, 57)'\n              },\n              'disabled': {\n                'background-color': 'rgb(44, 44, 44)',\n                'border-color': 'transparent'\n              },\n              'mouse-focus': {\n                'background-color': 'rgb(8, 8, 8)',\n                'border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'quiet': {\n            'states': {\n              'default': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(57, 57, 57)'\n              },\n              'disabled': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(57, 57, 57)'\n              },\n              'mouse-focus': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'tooltip': {\n          'default': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(116, 116, 116)'\n              }\n            }\n          },\n          'info': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(13, 102, 208)'\n              }\n            }\n          },\n          'negative': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(201, 37, 45)'\n              }\n            }\n          },\n          'positive': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(18, 128, 92)'\n              }\n            }\n          }\n        }\n      },\n      'large': {\n        'circleloader': {\n          'large': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(200, 200, 200)',\n                'track-color': 'rgb(57, 57, 57)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '80px',\n              'width': '80px',\n              'border-size': '5px'\n            }\n          },\n          'large-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '80px',\n              'width': '80px',\n              'border-size': '5px'\n            }\n          },\n          'medium': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(200, 200, 200)',\n                'track-color': 'rgb(57, 57, 57)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '40px',\n              'width': '40px',\n              'border-size': '4px'\n            }\n          },\n          'medium-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '40px',\n              'width': '40px',\n              'border-size': '4px'\n            }\n          },\n          'small': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(200, 200, 200)',\n                'track-color': 'rgb(57, 57, 57)',\n                'track-fill-color': 'rgb(38, 128, 235)'\n              }\n            },\n            'dimensions': {\n              'height': '20px',\n              'width': '20px',\n              'border-size': '3px'\n            }\n          },\n          'small-over-background': {\n            'states': {\n              'default': {\n                'text-color': 'rgb(255, 255, 255)',\n                'track-color': 'rgba(255,255,255,0.2)',\n                'track-fill-color': 'rgb(255, 255, 255)'\n              }\n            },\n            'dimensions': {\n              'height': '20px',\n              'width': '20px',\n              'border-size': '3px'\n            }\n          }\n        },\n        'coachmark': {\n          'default': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '20px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(20, 115, 230)'\n              }\n            }\n          },\n          'quiet': {\n            'dimensions': {\n              'indicator-ring-border-size': '2px',\n              'animation-indicator-ring-duration': '3000ms',\n              'animation-indicator-keyframe-50-opacity': '0.6',\n              'indicator-ring-diameter': '10px'\n            },\n            'states': {\n              'default': {\n                'indicator-ring-default-color': 'rgb(20, 115, 230)'\n              }\n            }\n          }\n        },\n        'popover': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(8, 8, 8)',\n                'border-color': 'rgb(73, 73, 73)'\n              }\n            }\n          }\n        },\n        'sidenav': {\n          'default': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(20, 115, 230)'\n              }\n            }\n          },\n          'multilevel': {\n            'states': {\n              'key-focus': {\n                'item-border-color': 'rgb(20, 115, 230)'\n              }\n            }\n          }\n        },\n        'textfield': {\n          'default': {\n            'states': {\n              'default': {\n                'background-color': 'rgb(8, 8, 8)',\n                'border-color': 'rgb(57, 57, 57)'\n              },\n              'disabled': {\n                'background-color': 'rgb(44, 44, 44)',\n                'border-color': 'transparent'\n              },\n              'mouse-focus': {\n                'background-color': 'rgb(8, 8, 8)',\n                'border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          },\n          'quiet': {\n            'states': {\n              'default': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(57, 57, 57)'\n              },\n              'disabled': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(57, 57, 57)'\n              },\n              'mouse-focus': {\n                'background-color': 'transparent',\n                'border-color': 'rgb(38, 128, 235)'\n              }\n            }\n          }\n        },\n        'tooltip': {\n          'default': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(116, 116, 116)'\n              }\n            }\n          },\n          'info': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(13, 102, 208)'\n              }\n            }\n          },\n          'negative': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(201, 37, 45)'\n              }\n            }\n          },\n          'positive': {\n            'states': {\n              'default': {\n                'tip-color': 'rgb(18, 128, 92)'\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.interpretKeyboardEvent = interpretKeyboardEvent;\nexports.chain = chain;\nexports.focusAfterMouseEvent = focusAfterMouseEvent;\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nfunction interpretKeyboardEvent(event, orientation = 'vertical') {\n  switch (event.key) {\n    case 'Enter':\n    case ' ':\n      if (this.onSelectFocused) {\n        this.onSelectFocused(event);\n      }\n\n      break;\n\n    case 'Tab':\n      if (this.onTab) {\n        this.onTab(event);\n      }\n\n      break;\n\n    case 'PageUp':\n      if (this.onPageUp) {\n        this.onPageUp(event);\n      } else if (this.onFocusFirst) {\n        this.onFocusFirst(event);\n      }\n\n      break;\n\n    case 'PageDown':\n      if (this.onPageDown) {\n        this.onPageDown(event);\n      } else if (this.onFocusLast) {\n        this.onFocusLast(event);\n      }\n\n      break;\n\n    case 'Home':\n      if (this.onFocusFirst) {\n        this.onFocusFirst(event);\n      }\n\n      break;\n\n    case 'End':\n      if (this.onFocusLast) {\n        this.onFocusLast(event);\n      }\n\n      break;\n\n    case 'ArrowUp':\n    case 'Up':\n      if (event.altKey && this.onAltArrowUp) {\n        this.onAltArrowUp(event);\n      } else if (this.onFocusPrevious) {\n        switch (orientation) {\n          case 'vertical':\n            this.onFocusPrevious(event);\n            break;\n\n          case 'horizontal':\n            break;\n\n          default:\n            this.props.nextFocusOffset ? this.onFocusPrevious(event, this.props.nextFocusOffset()) : this.onFocusPrevious(event);\n            break;\n        }\n      }\n\n      break;\n\n    case 'ArrowDown':\n    case 'Down':\n      if (event.altKey && this.onAltArrowDown) {\n        this.onAltArrowDown(event);\n      } else if (this.onFocusNext) {\n        switch (orientation) {\n          case 'vertical':\n            this.onFocusNext(event);\n            break;\n\n          case 'horizontal':\n            break;\n\n          default:\n            this.props.nextFocusOffset ? this.onFocusNext(event, this.props.nextFocusOffset()) : this.onFocusNext(event);\n            break;\n        }\n      }\n\n      break;\n\n    case 'ArrowLeft':\n    case 'Left':\n      if (orientation !== 'vertical' && this.onFocusPrevious) {\n        this.onFocusPrevious(event);\n      }\n\n      break;\n\n    case 'ArrowRight':\n    case 'Right':\n      if (orientation !== 'vertical' && this.onFocusNext) {\n        this.onFocusNext(event);\n      }\n\n      break;\n\n    case 'Escape':\n    case 'Esc':\n      if (this.onEscape) {\n        this.onEscape(event);\n      }\n\n      break;\n\n    default: // do nothing\n\n  }\n}\n\nfunction chain(...callbacks) {\n  return (...args) => {\n    for (let callback of callbacks) {\n      if (typeof callback === 'function') {\n        callback(...args);\n      }\n    }\n  };\n}\n\nlet mouseDownPrevented = false;\n\nfunction focusAfterMouseEvent(handler, event) {\n  // If server side rendering, just call handler method.\n  if (!document) {\n    handler && handler.call(this, event);\n    return;\n  } // execute the handler\n\n\n  if (handler) {\n    handler.call(this, event);\n\n    if (event.isDefaultPrevented()) {\n      mouseDownPrevented = event.type === 'mousedown';\n      return;\n    }\n  } // make sure that the element has focus by calling this.focus();\n\n\n  if (!mouseDownPrevented && typeof this.focus === 'function') {\n    this.focus();\n  }\n\n  if (event.type === 'mouseup') {\n    mouseDownPrevented = false;\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = filterReactDomProps;\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nconst DOMProps = {\n  'abbr': 1,\n  'accept': 1,\n  'acceptCharset': 1,\n  'accessKey': 1,\n  'action': 1,\n  'allowFullScreen': 1,\n  'allowTransparency': 1,\n  'alt': 1,\n  'async': 1,\n  'autoComplete': 1,\n  'autoFocus': 1,\n  'autoPlay': 1,\n  'boundariesElement': 1,\n  'cellPadding': 1,\n  'cellSpacing': 1,\n  'challenge': 1,\n  'charset': 1,\n  'checked': 1,\n  'cite': 1,\n  'class': 1,\n  'className': 1,\n  'cols': 1,\n  'colSpan': 1,\n  'command': 1,\n  'content': 1,\n  'contentEditable': 1,\n  'contextMenu': 1,\n  'controls': 1,\n  'coords': 1,\n  'crossOrigin': 1,\n  'data': 1,\n  'dateTime': 1,\n  'default': 1,\n  'defaultPreventedKeys': 1,\n  'defaultpreventedkeys': 1,\n  'defaultPreventedEvents': 1,\n  'defaultpreventedevents': 1,\n  'defer': 1,\n  'dir': 1,\n  'disabled': 1,\n  'download': 1,\n  'draggable': 1,\n  'dropzone': 1,\n  'encType': 1,\n  'for': 1,\n  'form': 1,\n  'formAction': 1,\n  'formEncType': 1,\n  'formMethod': 1,\n  'formNoValidate': 1,\n  'formTarget': 1,\n  'frameBorder': 1,\n  'headers': 1,\n  'height': 1,\n  'hidden': 1,\n  'high': 1,\n  'href': 1,\n  'hrefLang': 1,\n  'htmlFor': 1,\n  'httpEquiv': 1,\n  'icon': 1,\n  'id': 1,\n  'inputMode': 1,\n  'isMap': 1,\n  'itemId': 1,\n  'itemProp': 1,\n  'itemRef': 1,\n  'itemScope': 1,\n  'itemType': 1,\n  'kind': 1,\n  'label': 1,\n  'lang': 1,\n  'list': 1,\n  'loop': 1,\n  'manifest': 1,\n  'max': 1,\n  'maxLength': 1,\n  'media': 1,\n  'mediaGroup': 1,\n  'method': 1,\n  'min': 1,\n  'minLength': 1,\n  'multiple': 1,\n  'muted': 1,\n  'name': 1,\n  'noValidate': 1,\n  'open': 1,\n  'optimum': 1,\n  'pattern': 1,\n  'ping': 1,\n  'placeholder': 1,\n  'poster': 1,\n  'preload': 1,\n  'radioGroup': 1,\n  'readOnly': 1,\n  'rel': 1,\n  'required': 1,\n  'role': 1,\n  'rows': 1,\n  'rowSpan': 1,\n  'sandbox': 1,\n  'scope': 1,\n  'scoped': 1,\n  'scrolling': 1,\n  'seamless': 1,\n  'selected': 1,\n  'shape': 1,\n  'size': 1,\n  'sizes': 1,\n  'sortable': 1,\n  'span': 1,\n  'spellCheck': 1,\n  'src': 1,\n  'srcDoc': 1,\n  'srcSet': 1,\n  'start': 1,\n  'step': 1,\n  'style': 1,\n  'tabIndex': 1,\n  'target': 1,\n  'title': 1,\n  'translate': 1,\n  'type': 1,\n  'typeMustMatch': 1,\n  'useMap': 1,\n  'value': 1,\n  'width': 1,\n  'wmode': 1,\n  'wrap': 1,\n  'onCopy': 1,\n  'onCut': 1,\n  'onPaste': 1,\n  'onLoad': 1,\n  'onError': 1,\n  'onWheel': 1,\n  'onScroll': 1,\n  'onCompositionEnd': 1,\n  'onCompositionStart': 1,\n  'onCompositionUpdate': 1,\n  'onKeyDown': 1,\n  'onKeyPress': 1,\n  'onKeyUp': 1,\n  'onFocus': 1,\n  'onBlur': 1,\n  'onChange': 1,\n  'onInput': 1,\n  'onSubmit': 1,\n  'onClick': 1,\n  'onContextMenu': 1,\n  'onDoubleClick': 1,\n  'onDrag': 1,\n  'onDragEnd': 1,\n  'onDragEnter': 1,\n  'onDragExit': 1,\n  'onDragLeave': 1,\n  'onDragOver': 1,\n  'onDragStart': 1,\n  'onDrop': 1,\n  'onMouseDown': 1,\n  'onMouseEnter': 1,\n  'onMouseLeave': 1,\n  'onMouseMove': 1,\n  'onMouseOut': 1,\n  'onMouseOver': 1,\n  'onMouseUp': 1,\n  'onSelect': 1,\n  'onTouchCancel': 1,\n  'onTouchEnd': 1,\n  'onTouchMove': 1,\n  'onTouchStart': 1,\n  'onAnimationStart': 1,\n  'onAnimationEnd': 1,\n  'onAnimationIteration': 1,\n  'onTransitionEnd': 1\n};\n/**\n * Checking for aria-* and data-* props\n */\n\nconst propRe = /^((data|aria)-.*)$/;\n\nfunction filterReactDomProps(props) {\n  const filterProps = {};\n\n  for (const prop in props) {\n    if (props.hasOwnProperty(prop) && (DOMProps[prop] || propRe.test(prop))) {\n      filterProps[prop] = props[prop];\n    }\n  }\n\n  return filterProps;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = focusRing;\nexports.FOCUS_RING_CLASSNAME = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nconst FOCUS_RING_CLASSNAME = 'focus-ring';\n/**\n * This is a decorator that ensures a focus-ring className set by the focus-ring-polyfill\n * is retained when a focused component is rendered following a state change.\n*/\n\nexports.FOCUS_RING_CLASSNAME = FOCUS_RING_CLASSNAME;\n\nfunction focusRing(WrappedComponent) {\n  const proto = WrappedComponent.prototype;\n  const UNSAFE_componentWillUpdate = proto.UNSAFE_componentWillUpdate;\n  const componentDidUpdate = proto.componentDidUpdate;\n  let elementWithFocusRing = null;\n\n  proto.UNSAFE_componentWillUpdate = function (props, state) {\n    // call original method\n    if (UNSAFE_componentWillUpdate) {\n      UNSAFE_componentWillUpdate.apply(this, arguments);\n    }\n\n    if (elementWithFocusRing == null || elementWithFocusRing !== document.activeElement) {\n      try {\n        const node = _reactDom.default.findDOMNode(this);\n\n        elementWithFocusRing = node.parentNode.querySelector('.' + FOCUS_RING_CLASSNAME);\n      } catch (error) {// do nothing if component is not mounted\n      }\n    }\n  };\n\n  proto.componentDidUpdate = function (props, state) {\n    // call original method\n    if (componentDidUpdate) {\n      componentDidUpdate.apply(this, arguments);\n    }\n\n    try {\n      const node = _reactDom.default.findDOMNode(this);\n\n      if (elementWithFocusRing && (document.activeElement === elementWithFocusRing || node.contains(document.activeElement)) && !elementWithFocusRing.classList.contains(FOCUS_RING_CLASSNAME)) {\n        document.activeElement.classList.add(FOCUS_RING_CLASSNAME);\n        elementWithFocusRing = null;\n      }\n    } catch (error) {// do nothing if component is not mounted\n    }\n  };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = hostStyleConfig;\n\nfunction hostStyleConfig() {\n  const uxp = window.require && window.require('uxp');\n\n  const product = uxp && uxp.host ? uxp.host.name : 'Browser';\n\n  switch (product) {\n    case 'Illustrator':\n      addIllustratorStyles();\n\n      if (window.navigator.platform === 'darwin') {\n        addIllustratorMacOverride();\n      }\n\n      break;\n\n    case 'Photoshop':\n      addPhotoshopStyles();\n      break;\n\n    default:\n      return null;\n  }\n}\n\nfunction addIllustratorMacOverride() {\n  let css = `.react-spectrum-provider:lang(zh-Hant) .spectrum-Menu-item {\n        font-size: 13px;\n    }\n    \n    .react-spectrum-provider:lang(zh-Hant) .spectrum-Textfield {\n        font-size: 13px;\n    } \n    \n    .react-spectrum-provider:lang(zh-Hans) .spectrum-Menu-item {\n        font-size: 13px;\n    }\n    \n    .react-spectrum-provider:lang(zh-Hans) .spectrum-Textfield {\n        font-size: 13px;\n    }\n    `;\n  let head = document.head || document.getElementsByTagName('head')[0];\n  let style = document.createElement('style');\n  head.appendChild(style);\n  style.type = 'text/css';\n  style.appendChild(document.createTextNode(css));\n}\n\nfunction addIllustratorStyles() {\n  let css = `:root {\n        --host-background-color-darkest: #323232;\n        --host-background-color-dark: #535353;\n        --host-background-color-light: #B8B8B8;\n        --host-background-color-lightest: #F0F0F0;\n    }\n    \n    .react-spectrum-provider {\n        font-family: Lucida Grande, Tahoma, sans-serif !important;\n    }\n    \n    .react-spectrum-provider:lang(ja) {\n        font-family: HiraKakuProN-W3, Meiryo, sans-serif !important;\n    }\n    \n    .react-spectrum-provider:lang(zh-Hant) {\n        font-family: LiHeiPro, Tahoma, sans-serif !important;\n    }\n    \n    .react-spectrum-provider:lang(zh-Hans) {\n        font-family: STXihei, SimSun, sans-serif !important;\n    }\n    \n    .react-spectrum-provider:lang(ko) {\n        font-family: AppleGothic, Malgun Gothic, sans-serif !important;\n    }\n    \n    .react-spectrum-provider.spectrum--darkest {\n        background-color: #323232;\n    }\n    \n    .react-spectrum-provider.spectrum--dark {\n        background-color: #535353;\n    }\n    \n    .react-spectrum-provider.spectrum--light {\n        background-color: #B8B8B8;\n    }\n    \n    .react-spectrum-provider.spectrum--lightest {\n        background-color: #F0F0F0;\n    }\n    \n    .react-spectrum-provider .spectrum-Menu-item {\n        font-size: 10px;\n    }\n    \n    .react-spectrum-provider .spectrum-Textfield {\n        font-size: 10px;\n    } \n    \n    .react-spectrum-provider:lang(ja) .spectrum-Menu-item {\n        font-size: 12px;\n    }\n    \n    .react-spectrum-provider:lang(ja) .spectrum-Textfield {\n        font-size: 12px;\n    } \n    \n    .react-spectrum-provider:lang(zh-Hant) .spectrum-Menu-item {\n        font-size: 12px;\n    }\n    \n    .react-spectrum-provider:lang(zh-Hant) .spectrum-Textfield {\n        font-size: 12px;\n    } \n    \n    .react-spectrum-provider:lang(zh-Hans) .spectrum-Menu-item {\n        font-size: 12px;\n    }\n    \n    .react-spectrum-provider:lang(zh-Hans) .spectrum-Textfield {\n        font-size: 12px;\n    }\n    \n    .react-spectrum-provider.spectrum--lightest .spectrum-Menu, .react-spectrum-provider.spectrum--lightest .spectrum-Menu-item, .react-spectrum-provider.spectrum--lightest .spectrum-Popover {\n        background-color: rgb(240, 240, 240);\n    }\n    \n    .react-spectrum-provider.spectrum--light .spectrum-Menu, .react-spectrum-provider.spectrum--light .spectrum-Menu-item, .react-spectrum-provider.spectrum--light .spectrum-Popover {\n        background-color: rgb(184, 184, 184);\n    }\n    \n    .react-spectrum-provider.spectrum--dark .spectrum-Menu, .react-spectrum-provider.spectrum--dark .spectrum-Menu-item, .react-spectrum-provider.spectrum--dark .spectrum-Popover {\n        background-color: rgb(83, 83, 83);\n    }\n    \n    .react-spectrum-provider.spectrum--darkest .spectrum-Menu, .react-spectrum-provider.spectrum--darkest .spectrum-Menu-item, .react-spectrum-provider.spectrum--darkest .spectrum-Popover {\n        background-color: rgb(50, 50, 50);\n    }\n    \n    .react-spectrum-provider.spectrum--lightest .spectrum-Menu-item:hover {\n        background-color: rgb(220, 220, 220);\n        color: rgb(72, 72, 72);\n    }\n    \n    .react-spectrum-provider.spectrum--light .spectrum-Menu-item:hover {\n        background-color: rgb(167, 167, 167);\n        color: rgb(34, 34, 34);\n    }\n    \n    .react-spectrum-provider.spectrum--dark .spectrum-Menu-item:hover {\n        background-color: rgb(95, 95, 95);\n        color: rgb(255, 255, 255);\n    }\n    \n    .react-spectrum-provider.spectrum--darkest .spectrum-Menu-item:hover {\n        background-color: rgb(62, 62, 62);\n        color: rgb(205, 205, 205);\n    }\n    \n    .react-spectrum-provider.spectrum--lightest .spectrum-Textfield, .react-spectrum-provider.spectrum--lightest .spectrum-Textfield .inputText {\n        background-color: rgb(255, 255, 255) !important;\n        color: rgb(72, 72, 72);\n    }\n    \n    .react-spectrum-provider.spectrum--light .spectrum-Textfield, .react-spectrum-provider.spectrum--light .spectrum-Textfield .inputText {\n        background-color: rgb(226, 226, 226) !important;\n        color: rgb(34, 34, 34);\n    }\n    \n    .react-spectrum-provider.spectrum--dark .spectrum-Textfield, .react-spectrum-provider.spectrum--dark .spectrum-Textfield .inputText {\n        background-color: rgb(255, 255, 255) !important;\n        color: rgb(75, 75, 75);\n    }\n    \n    .react-spectrum-provider.spectrum--darkest .spectrum-Textfield, .react-spectrum-provider.spectrum--darkest .spectrum-Textfield .inputText {\n        background-color: rgb(252, 252, 252) !important;\n        color: rgb(42, 42, 42);\n    }\n    `;\n  let head = document.head || document.getElementsByTagName('head')[0];\n  let style = document.createElement('style');\n  head.appendChild(style);\n  style.type = 'text/css';\n  style.appendChild(document.createTextNode(css));\n}\n\nfunction addPhotoshopStyles() {\n  let css = `\n    \n    .react-spectrum-provider {\n        background-color: var(--uxp-host-background-color);\n    }\n    \n    .react-spectrum-provider .spectrum-Menu-item, .react-spectrum-provider .spectrum-Textfield {\n        font-size: 10px;\n        color: var(--uxp-host-text-color);\n    }\n    \n    .react-spectrum-provider .spectrum-Menu, .react-spectrum-provider .spectrum-Menu-item, .react-spectrum-provider .spectrum-Popover {\n        background-color: var(--uxp-host-background-color);\n    }\n    \n    .react-spectrum-provider .spectrum-Menu-item:hover {\n        background-color: var(--uxp-host-link-text-color);\n        color: #FFFFFF;\n    }\n\n    .react-spectrum-provider .spectrum-Textfield, .react-spectrum-provider .spectrum-Textfield .inputText {\n        background-color: var(--uxp-host-background-color) !important;\n    }\n    \n    `;\n  let head = document.head || document.getElementsByTagName('head')[0];\n  let style = document.createElement('style');\n  head.appendChild(style);\n  style.type = 'text/css';\n  style.appendChild(document.createTextNode(css));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.cloneIcon = cloneIcon;\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nfunction cloneIcon(icon, opts = {}) {\n  if (!icon) {\n    return null;\n  }\n\n  if (typeof icon === 'string') {\n    throw new Error('String icon names are deprecated. Pass icons by importing them from react-spectrum/Icon/IconName and render as <IconName />.');\n  }\n\n  const {\n    className,\n    size,\n    'aria-label': ariaLabel,\n    'aria-hidden': ariaHidden,\n    alt = ariaLabel || icon.props['aria-label'] || icon.props.alt\n  } = opts;\n  return /*#__PURE__*/_react.default.cloneElement(icon, {\n    className: (0, _classnames.default)(className, icon.props.className),\n    size: icon.props.size || size,\n    'aria-label': ariaLabel || alt,\n    alt,\n    'aria-hidden': ariaHidden || (alt ? icon.props['aria-hidden'] : true)\n  });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.setLocale = setLocale;\nexports.getLocale = getLocale;\nexports.messageFormatter = messageFormatter;\nexports.defaultLocale = void 0;\n\nvar _intlMessageformat = _interopRequireDefault(require(\"intl-messageformat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nconst defaultLocale = typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage) || 'en-US';\nexports.defaultLocale = defaultLocale;\nlet currentLocale = defaultLocale;\n\nfunction setLocale(locale) {\n  currentLocale = locale;\n}\n\nfunction getLocale() {\n  return currentLocale;\n}\n\nfunction messageFormatter(strings) {\n  let cache = {};\n  return function formatMessage(key, variables, formats) {\n    let message = cache[key + '.' + currentLocale];\n\n    if (!message) {\n      let localeStrings = strings[currentLocale] || strings['en-US'];\n      let msg = localeStrings[key];\n\n      if (!msg) {\n        throw new Error(`Could not find intl message ${key} in ${currentLocale} locale`);\n      }\n\n      message = new _intlMessageformat.default(msg, currentLocale, formats);\n      cache[key] = message;\n    }\n\n    return message.format(variables);\n  };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = needsNative;\n\nfunction needsNative() {\n  const uxp = window.require && window.require('uxp');\n\n  return uxp && uxp.host ? uxp.host.isDrover || uxp.host.name === 'Photoshop' || uxp.host.name === 'Illustrator' : false;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nvar _default = (node, parentNode, alignToStart) => {\n  if (parentNode && parentNode.contains(node)) {\n    const {\n      clientHeight,\n      clientWidth,\n      scrollTop,\n      scrollLeft\n    } = parentNode;\n    const {\n      offsetHeight,\n      offsetWidth,\n      offsetTop,\n      offsetLeft\n    } = node;\n    const parentPosition = window.getComputedStyle(parentNode).position;\n    let parentOffsetTop = parentNode.offsetTop;\n    let parentOffsetLeft = parentNode.offsetLeft;\n\n    if (parentPosition !== 'static') {\n      parentOffsetTop = parentOffsetLeft = 0;\n    }\n\n    if (offsetTop < scrollTop) {\n      parentNode.scrollTop = offsetTop;\n    } else {\n      const offsetBottom = offsetTop + offsetHeight;\n      const scrollBottom = scrollTop + clientHeight;\n\n      if (offsetBottom > scrollBottom) {\n        parentNode.scrollTop = alignToStart ? offsetTop - parentOffsetTop : offsetBottom - clientHeight - parentOffsetTop;\n      }\n    }\n\n    if (offsetLeft < scrollLeft) {\n      parentNode.scrollLeft = offsetLeft;\n    } else {\n      const offsetRight = offsetLeft + offsetWidth;\n      const scrollRight = scrollLeft + clientWidth;\n\n      if (offsetRight > scrollRight) {\n        parentNode.scrollLeft = alignToStart ? offsetLeft - parentOffsetLeft : offsetRight - clientWidth - parentOffsetLeft;\n      }\n    }\n  }\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = setOverlayOnProvider;\n\nvar _closest = _interopRequireDefault(require(\"dom-helpers/query/closest\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _ScrollManager = _interopRequireDefault(require(\"../ScrollManager\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction setOverlayOnProvider(overlayRef, overlayVisibility = false, overlayCallback = undefined, boundingRect = null, hideScollbars = true) {\n  if (!overlayRef) {\n    return;\n  }\n\n  if (boundingRect == null && overlayVisibility) {\n    boundingRect = overlayRef.getBoundingClientRect();\n  }\n\n  if (hideScollbars) {\n    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(overlayVisibility, true, overlayRef, boundingRect);\n  }\n\n  const closestContainer = (0, _closest.default)(_reactDom.default.findDOMNode(overlayRef), '.react-spectrum-provider');\n  const provider = closestContainer || document.querySelector('.react-spectrum-provider');\n\n  if (provider) {\n    let setOverlay = provider.getAttribute('setOverlay');\n    let data = {\n      visible: overlayVisibility,\n      callback: overlayCallback,\n      boundingRect: boundingRect\n    };\n\n    if (setOverlay) {\n      setOverlay(overlayRef, data);\n    }\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isUrl = isUrl;\nexports.normalize = normalize;\nexports.removeDiacritics = removeDiacritics;\nexports.getTextFromReact = getTextFromReact;\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nfunction isUrl(string) {\n  return string && !!string.match(/\\/|:|\\./g);\n}\n\nfunction normalize(string = '', normalizationForm = 'NFC') {\n  if ('normalize' in String.prototype) {\n    string = string.normalize(normalizationForm);\n  }\n\n  return string;\n}\n\nfunction removeDiacritics(string = '', normalizationForm = 'NFD') {\n  return normalize(string, normalizationForm.replace('C', 'D')).replace(/[\\u0300-\\u036f]/g, '');\n}\n/** adapted from https://github.com/rwu823/react-addons-text-content */\n\n\nfunction getTextFromReact(reactChild) {\n  let result = '';\n\n  const addChildTextToResult = child => {\n    if (typeof child === 'string' || typeof child === 'number') {\n      result = `${result} ${child}`;\n    } else if (Array.isArray(child)) {\n      child.forEach(c => addChildTextToResult(c));\n    } else if (child && child.props) {\n      const {\n        children\n      } = child.props;\n\n      if (Array.isArray(children)) {\n        children.forEach(c => addChildTextToResult(c));\n      } else {\n        addChildTextToResult(children);\n      }\n    }\n  };\n\n  addChildTextToResult(reactChild); // clean up adjacent whitespace in result\n\n  const adjacentWhitespaceRegex = /(\\s)(?:\\s+)/g;\n  return result.trim().replace(adjacentWhitespaceRegex, '$1');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/*************************************************************************\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2019 Adobe\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe and its suppliers, if any. The intellectual\n* and technical concepts contained herein are proprietary to Adobe\n* and its suppliers and are protected by all applicable intellectual\n* property laws, including trade secret and copyright laws.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe.\n**************************************************************************/\nclass Timer {\n  constructor(callback, delay) {\n    this.callback = callback;\n    this.remaining = delay;\n    this.resume();\n  }\n\n  pause() {\n    window.clearTimeout(this.timerId);\n    this.remaining -= new Date() - this.start;\n  }\n\n  resume() {\n    this.start = new Date();\n\n    if (this.timerId) {\n      window.clearTimeout(this.timerId);\n    }\n\n    this.timerId = window.setTimeout(this.callback, this.remaining);\n  }\n\n}\n\nexports.default = Timer;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = activeElement;\n\nvar _ownerDocument = _interopRequireDefault(require(\"./ownerDocument\"));\n\nfunction activeElement(doc) {\n  if (doc === void 0) {\n    doc = (0, _ownerDocument.default)();\n  }\n\n  try {\n    return doc.activeElement;\n  } catch (e) {\n    /* ie throws if no active element */\n  }\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n  if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n  if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _addClass = _interopRequireDefault(require(\"./addClass\"));\n\nexports.addClass = _addClass.default;\n\nvar _removeClass = _interopRequireDefault(require(\"./removeClass\"));\n\nexports.removeClass = _removeClass.default;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nexports.hasClass = _hasClass.default;\nvar _default = {\n  addClass: _addClass.default,\n  removeClass: _removeClass.default,\n  hasClass: _hasClass.default\n};\nexports.default = _default;","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n  return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n  if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar off = function off() {};\n\nif (_inDOM.default) {\n  off = function () {\n    if (document.addEventListener) return function (node, eventName, handler, capture) {\n      return node.removeEventListener(eventName, handler, capture || false);\n    };else if (document.attachEvent) return function (node, eventName, handler) {\n      return node.detachEvent('on' + eventName, handler);\n    };\n  }();\n}\n\nvar _default = off;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar on = function on() {};\n\nif (_inDOM.default) {\n  on = function () {\n    if (document.addEventListener) return function (node, eventName, handler, capture) {\n      return node.addEventListener(eventName, handler, capture || false);\n    };else if (document.attachEvent) return function (node, eventName, handler) {\n      return node.attachEvent('on' + eventName, function (e) {\n        e = e || window.event;\n        e.target = e.target || e.srcElement;\n        e.currentTarget = node;\n        handler.call(node, e);\n      });\n    };\n  }();\n}\n\nvar _default = on;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = ownerDocument;\n\nfunction ownerDocument(node) {\n  return node && node.ownerDocument || document;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = closest;\n\nvar _matches = _interopRequireDefault(require(\"./matches\"));\n\nvar isDoc = function isDoc(obj) {\n  return obj != null && obj.nodeType === obj.DOCUMENT_NODE;\n};\n\nfunction closest(node, selector, context) {\n  while (node && (isDoc(node) || !(0, _matches.default)(node, selector))) {\n    node = node !== context && !isDoc(node) ? node.parentNode : undefined;\n  }\n\n  return node;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar _default = function () {\n  // HTML DOM and SVG DOM may have different support levels,\n  // so we need to check on context instead of a document root element.\n  return _inDOM.default ? function (context, node) {\n    if (context.contains) {\n      return context.contains(node);\n    } else if (context.compareDocumentPosition) {\n      return context === node || !!(context.compareDocumentPosition(node) & 16);\n    } else {\n      return fallback(context, node);\n    }\n  } : fallback;\n}();\n\nexports.default = _default;\n\nfunction fallback(context, node) {\n  if (node) do {\n    if (node === context) return true;\n  } while (node = node.parentNode);\n  return false;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getWindow;\n\nfunction getWindow(node) {\n  return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = matches;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar _querySelectorAll = _interopRequireDefault(require(\"./querySelectorAll\"));\n\nvar matchesCache;\n\nfunction matches(node, selector) {\n  if (!matchesCache && _inDOM.default) {\n    var body = document.body;\n    var nativeMatch = body.matches || body.matchesSelector || body.webkitMatchesSelector || body.mozMatchesSelector || body.msMatchesSelector;\n    matchesCache = nativeMatch ? function (node, selector) {\n      return nativeMatch.call(node, selector);\n    } : ie8MatchesSelector;\n  }\n\n  return matchesCache ? matchesCache(node, selector) : null;\n}\n\nfunction ie8MatchesSelector(node, selector) {\n  var matches = (0, _querySelectorAll.default)(node.document || node.ownerDocument, selector),\n      i = 0;\n\n  while (matches[i] && matches[i] !== node) {\n    i++;\n  }\n\n  return !!matches[i];\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = offset;\n\nvar _contains = _interopRequireDefault(require(\"./contains\"));\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../ownerDocument\"));\n\nfunction offset(node) {\n  var doc = (0, _ownerDocument.default)(node),\n      win = (0, _isWindow.default)(doc),\n      docElem = doc && doc.documentElement,\n      box = {\n    top: 0,\n    left: 0,\n    height: 0,\n    width: 0\n  };\n  if (!doc) return; // Make sure it's not a disconnected DOM node\n\n  if (!(0, _contains.default)(docElem, node)) return box;\n  if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect(); // IE8 getBoundingClientRect doesn't support width & height\n\n  box = {\n    top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\n    left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0),\n    width: (box.width == null ? node.offsetWidth : box.width) || 0,\n    height: (box.height == null ? node.offsetHeight : box.height) || 0\n  };\n  return box;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = offsetParent;\n\nvar _ownerDocument = _interopRequireDefault(require(\"../ownerDocument\"));\n\nvar _style = _interopRequireDefault(require(\"../style\"));\n\nfunction nodeName(node) {\n  return node.nodeName && node.nodeName.toLowerCase();\n}\n\nfunction offsetParent(node) {\n  var doc = (0, _ownerDocument.default)(node),\n      offsetParent = node && node.offsetParent;\n\n  while (offsetParent && nodeName(node) !== 'html' && (0, _style.default)(offsetParent, 'position') === 'static') {\n    offsetParent = offsetParent.offsetParent;\n  }\n\n  return offsetParent || doc.documentElement;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = position;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _offset = _interopRequireDefault(require(\"./offset\"));\n\nvar _offsetParent = _interopRequireDefault(require(\"./offsetParent\"));\n\nvar _scrollTop = _interopRequireDefault(require(\"./scrollTop\"));\n\nvar _scrollLeft = _interopRequireDefault(require(\"./scrollLeft\"));\n\nvar _style = _interopRequireDefault(require(\"../style\"));\n\nfunction nodeName(node) {\n  return node.nodeName && node.nodeName.toLowerCase();\n}\n\nfunction position(node, offsetParent) {\n  var parentOffset = {\n    top: 0,\n    left: 0\n  },\n      offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n  // because it is its only offset parent\n\n  if ((0, _style.default)(node, 'position') === 'fixed') {\n    offset = node.getBoundingClientRect();\n  } else {\n    offsetParent = offsetParent || (0, _offsetParent.default)(node);\n    offset = (0, _offset.default)(node);\n    if (nodeName(offsetParent) !== 'html') parentOffset = (0, _offset.default)(offsetParent);\n    parentOffset.top += parseInt((0, _style.default)(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop.default)(offsetParent) || 0;\n    parentOffset.left += parseInt((0, _style.default)(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft.default)(offsetParent) || 0;\n  } // Subtract parent offsets and node margins\n\n\n  return (0, _extends2.default)({}, offset, {\n    top: offset.top - parentOffset.top - (parseInt((0, _style.default)(node, 'marginTop'), 10) || 0),\n    left: offset.left - parentOffset.left - (parseInt((0, _style.default)(node, 'marginLeft'), 10) || 0)\n  });\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = qsa;\n// Zepto.js\n// (c) 2010-2015 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\nvar simpleSelectorRE = /^[\\w-]*$/;\nvar toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n\nfunction qsa(element, selector) {\n  var maybeID = selector[0] === '#',\n      maybeClass = selector[0] === '.',\n      nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,\n      isSimple = simpleSelectorRE.test(nameOnly),\n      found;\n\n  if (isSimple) {\n    if (maybeID) {\n      element = element.getElementById ? element : document;\n      return (found = element.getElementById(nameOnly)) ? [found] : [];\n    }\n\n    if (element.getElementsByClassName && maybeClass) return toArray(element.getElementsByClassName(nameOnly));\n    return toArray(element.getElementsByTagName(selector));\n  }\n\n  return toArray(element.querySelectorAll(selector));\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n  var win = (0, _isWindow.default)(node);\n  if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;\n  if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n  var win = (0, _isWindow.default)(node);\n  if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;\n  if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = _getComputedStyle;\n\nvar _camelizeStyle = _interopRequireDefault(require(\"../util/camelizeStyle\"));\n\nvar rposition = /^(top|right|bottom|left)$/;\nvar rnumnonpx = /^([+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|))(?!px)[a-z%]+$/i;\n\nfunction _getComputedStyle(node) {\n  if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');\n  var doc = node.ownerDocument;\n  return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {\n    //ie 8 \"magic\" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72\n    getPropertyValue: function getPropertyValue(prop) {\n      var style = node.style;\n      prop = (0, _camelizeStyle.default)(prop);\n      if (prop == 'float') prop = 'styleFloat';\n      var current = node.currentStyle[prop] || null;\n      if (current == null && style && style[prop]) current = style[prop];\n\n      if (rnumnonpx.test(current) && !rposition.test(prop)) {\n        // Remember the original values\n        var left = style.left;\n        var runStyle = node.runtimeStyle;\n        var rsLeft = runStyle && runStyle.left; // Put in the new values to get a computed value out\n\n        if (rsLeft) runStyle.left = node.currentStyle.left;\n        style.left = prop === 'fontSize' ? '1em' : current;\n        current = style.pixelLeft + 'px'; // Revert the changed values\n\n        style.left = left;\n        if (rsLeft) runStyle.left = rsLeft;\n      }\n\n      return current;\n    }\n  };\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = style;\n\nvar _camelizeStyle = _interopRequireDefault(require(\"../util/camelizeStyle\"));\n\nvar _hyphenateStyle = _interopRequireDefault(require(\"../util/hyphenateStyle\"));\n\nvar _getComputedStyle2 = _interopRequireDefault(require(\"./getComputedStyle\"));\n\nvar _removeStyle = _interopRequireDefault(require(\"./removeStyle\"));\n\nvar _properties = require(\"../transition/properties\");\n\nvar _isTransform = _interopRequireDefault(require(\"../transition/isTransform\"));\n\nfunction style(node, property, value) {\n  var css = '';\n  var transforms = '';\n  var props = property;\n\n  if (typeof property === 'string') {\n    if (value === undefined) {\n      return node.style[(0, _camelizeStyle.default)(property)] || (0, _getComputedStyle2.default)(node).getPropertyValue((0, _hyphenateStyle.default)(property));\n    } else {\n      (props = {})[property] = value;\n    }\n  }\n\n  Object.keys(props).forEach(function (key) {\n    var value = props[key];\n\n    if (!value && value !== 0) {\n      (0, _removeStyle.default)(node, (0, _hyphenateStyle.default)(key));\n    } else if ((0, _isTransform.default)(key)) {\n      transforms += key + \"(\" + value + \") \";\n    } else {\n      css += (0, _hyphenateStyle.default)(key) + \": \" + value + \";\";\n    }\n  });\n\n  if (transforms) {\n    css += _properties.transform + \": \" + transforms + \";\";\n  }\n\n  node.style.cssText += ';' + css;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = removeStyle;\n\nfunction removeStyle(node, key) {\n  return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = isTransform;\nvar supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\n\nfunction isTransform(property) {\n  return !!(property && supportedTransforms.test(property));\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar transform = 'transform';\nexports.transform = transform;\nvar prefix, transitionEnd, animationEnd;\nexports.animationEnd = animationEnd;\nexports.transitionEnd = transitionEnd;\nvar transitionProperty, transitionDuration, transitionTiming, transitionDelay;\nexports.transitionDelay = transitionDelay;\nexports.transitionTiming = transitionTiming;\nexports.transitionDuration = transitionDuration;\nexports.transitionProperty = transitionProperty;\nvar animationName, animationDuration, animationTiming, animationDelay;\nexports.animationDelay = animationDelay;\nexports.animationTiming = animationTiming;\nexports.animationDuration = animationDuration;\nexports.animationName = animationName;\n\nif (_inDOM.default) {\n  var _getTransitionPropert = getTransitionProperties();\n\n  prefix = _getTransitionPropert.prefix;\n  exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;\n  exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;\n  exports.transform = transform = prefix + \"-\" + transform;\n  exports.transitionProperty = transitionProperty = prefix + \"-transition-property\";\n  exports.transitionDuration = transitionDuration = prefix + \"-transition-duration\";\n  exports.transitionDelay = transitionDelay = prefix + \"-transition-delay\";\n  exports.transitionTiming = transitionTiming = prefix + \"-transition-timing-function\";\n  exports.animationName = animationName = prefix + \"-animation-name\";\n  exports.animationDuration = animationDuration = prefix + \"-animation-duration\";\n  exports.animationTiming = animationTiming = prefix + \"-animation-delay\";\n  exports.animationDelay = animationDelay = prefix + \"-animation-timing-function\";\n}\n\nvar _default = {\n  transform: transform,\n  end: transitionEnd,\n  property: transitionProperty,\n  timing: transitionTiming,\n  delay: transitionDelay,\n  duration: transitionDuration\n};\nexports.default = _default;\n\nfunction getTransitionProperties() {\n  var style = document.createElement('div').style;\n  var vendorMap = {\n    O: function O(e) {\n      return \"o\" + e.toLowerCase();\n    },\n    Moz: function Moz(e) {\n      return e.toLowerCase();\n    },\n    Webkit: function Webkit(e) {\n      return \"webkit\" + e;\n    },\n    ms: function ms(e) {\n      return \"MS\" + e;\n    }\n  };\n  var vendors = Object.keys(vendorMap);\n  var transitionEnd, animationEnd;\n  var prefix = '';\n\n  for (var i = 0; i < vendors.length; i++) {\n    var vendor = vendors[i];\n\n    if (vendor + \"TransitionProperty\" in style) {\n      prefix = \"-\" + vendor.toLowerCase();\n      transitionEnd = vendorMap[vendor]('TransitionEnd');\n      animationEnd = vendorMap[vendor]('AnimationEnd');\n      break;\n    }\n  }\n\n  if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';\n  if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';\n  style = null;\n  return {\n    animationEnd: animationEnd,\n    transitionEnd: transitionEnd,\n    prefix: prefix\n  };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = camelize;\nvar rHyphen = /-(.)/g;\n\nfunction camelize(string) {\n  return string.replace(rHyphen, function (_, chr) {\n    return chr.toUpperCase();\n  });\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = camelizeStyleName;\n\nvar _camelize = _interopRequireDefault(require(\"./camelize\"));\n\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js\n */\nvar msPattern = /^-ms-/;\n\nfunction camelizeStyleName(string) {\n  return (0, _camelize.default)(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hyphenate;\nvar rUpper = /([A-Z])/g;\n\nfunction hyphenate(string) {\n  return string.replace(rUpper, '-$1').toLowerCase();\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = hyphenateStyleName;\n\nvar _hyphenate = _interopRequireDefault(require(\"./hyphenate\"));\n\n/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nvar msPattern = /^ms-/;\n\nfunction hyphenateStyleName(string) {\n  return (0, _hyphenate.default)(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollbarSize;\n\nvar _inDOM = _interopRequireDefault(require(\"./inDOM\"));\n\nvar size;\n\nfunction scrollbarSize(recalc) {\n  if (!size && size !== 0 || recalc) {\n    if (_inDOM.default) {\n      var scrollDiv = document.createElement('div');\n      scrollDiv.style.position = 'absolute';\n      scrollDiv.style.top = '-9999px';\n      scrollDiv.style.width = '50px';\n      scrollDiv.style.height = '50px';\n      scrollDiv.style.overflow = 'scroll';\n      document.body.appendChild(scrollDiv);\n      size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n    }\n  }\n\n  return size;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nexports = module.exports = require('./lib/parser')['default'];\nexports['default'] = exports;\n","export default (function() {\n  \"use strict\";\n\n  /*\n   * Generated by PEG.js 0.9.0.\n   *\n   * http://pegjs.org/\n   */\n\n  function peg$subclass(child, parent) {\n    function ctor() { this.constructor = child; }\n    ctor.prototype = parent.prototype;\n    child.prototype = new ctor();\n  }\n\n  function peg$SyntaxError(message, expected, found, location) {\n    this.message  = message;\n    this.expected = expected;\n    this.found    = found;\n    this.location = location;\n    this.name     = \"SyntaxError\";\n\n    if (typeof Error.captureStackTrace === \"function\") {\n      Error.captureStackTrace(this, peg$SyntaxError);\n    }\n  }\n\n  peg$subclass(peg$SyntaxError, Error);\n\n  function peg$parse(input) {\n    var options = arguments.length > 1 ? arguments[1] : {},\n        parser  = this,\n\n        peg$FAILED = {},\n\n        peg$startRuleFunctions = { start: peg$parsestart },\n        peg$startRuleFunction  = peg$parsestart,\n\n        peg$c0 = function(elements) {\n                return {\n                    type    : 'messageFormatPattern',\n                    elements: elements,\n                    location: location()\n                };\n            },\n        peg$c1 = function(text) {\n                var string = '',\n                    i, j, outerLen, inner, innerLen;\n\n                for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n                    inner = text[i];\n\n                    for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n                        string += inner[j];\n                    }\n                }\n\n                return string;\n            },\n        peg$c2 = function(messageText) {\n                return {\n                    type : 'messageTextElement',\n                    value: messageText,\n                    location: location()\n                };\n            },\n        peg$c3 = /^[^ \\t\\n\\r,.+={}#]/,\n        peg$c4 = { type: \"class\", value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\", description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\" },\n        peg$c5 = \"{\",\n        peg$c6 = { type: \"literal\", value: \"{\", description: \"\\\"{\\\"\" },\n        peg$c7 = \",\",\n        peg$c8 = { type: \"literal\", value: \",\", description: \"\\\",\\\"\" },\n        peg$c9 = \"}\",\n        peg$c10 = { type: \"literal\", value: \"}\", description: \"\\\"}\\\"\" },\n        peg$c11 = function(id, format) {\n                return {\n                    type  : 'argumentElement',\n                    id    : id,\n                    format: format && format[2],\n                    location: location()\n                };\n            },\n        peg$c12 = \"number\",\n        peg$c13 = { type: \"literal\", value: \"number\", description: \"\\\"number\\\"\" },\n        peg$c14 = \"date\",\n        peg$c15 = { type: \"literal\", value: \"date\", description: \"\\\"date\\\"\" },\n        peg$c16 = \"time\",\n        peg$c17 = { type: \"literal\", value: \"time\", description: \"\\\"time\\\"\" },\n        peg$c18 = function(type, style) {\n                return {\n                    type : type + 'Format',\n                    style: style && style[2],\n                    location: location()\n                };\n            },\n        peg$c19 = \"plural\",\n        peg$c20 = { type: \"literal\", value: \"plural\", description: \"\\\"plural\\\"\" },\n        peg$c21 = function(pluralStyle) {\n                return {\n                    type   : pluralStyle.type,\n                    ordinal: false,\n                    offset : pluralStyle.offset || 0,\n                    options: pluralStyle.options,\n                    location: location()\n                };\n            },\n        peg$c22 = \"selectordinal\",\n        peg$c23 = { type: \"literal\", value: \"selectordinal\", description: \"\\\"selectordinal\\\"\" },\n        peg$c24 = function(pluralStyle) {\n                return {\n                    type   : pluralStyle.type,\n                    ordinal: true,\n                    offset : pluralStyle.offset || 0,\n                    options: pluralStyle.options,\n                    location: location()\n                }\n            },\n        peg$c25 = \"select\",\n        peg$c26 = { type: \"literal\", value: \"select\", description: \"\\\"select\\\"\" },\n        peg$c27 = function(options) {\n                return {\n                    type   : 'selectFormat',\n                    options: options,\n                    location: location()\n                };\n            },\n        peg$c28 = \"=\",\n        peg$c29 = { type: \"literal\", value: \"=\", description: \"\\\"=\\\"\" },\n        peg$c30 = function(selector, pattern) {\n                return {\n                    type    : 'optionalFormatPattern',\n                    selector: selector,\n                    value   : pattern,\n                    location: location()\n                };\n            },\n        peg$c31 = \"offset:\",\n        peg$c32 = { type: \"literal\", value: \"offset:\", description: \"\\\"offset:\\\"\" },\n        peg$c33 = function(number) {\n                return number;\n            },\n        peg$c34 = function(offset, options) {\n                return {\n                    type   : 'pluralFormat',\n                    offset : offset,\n                    options: options,\n                    location: location()\n                };\n            },\n        peg$c35 = { type: \"other\", description: \"whitespace\" },\n        peg$c36 = /^[ \\t\\n\\r]/,\n        peg$c37 = { type: \"class\", value: \"[ \\\\t\\\\n\\\\r]\", description: \"[ \\\\t\\\\n\\\\r]\" },\n        peg$c38 = { type: \"other\", description: \"optionalWhitespace\" },\n        peg$c39 = /^[0-9]/,\n        peg$c40 = { type: \"class\", value: \"[0-9]\", description: \"[0-9]\" },\n        peg$c41 = /^[0-9a-f]/i,\n        peg$c42 = { type: \"class\", value: \"[0-9a-f]i\", description: \"[0-9a-f]i\" },\n        peg$c43 = \"0\",\n        peg$c44 = { type: \"literal\", value: \"0\", description: \"\\\"0\\\"\" },\n        peg$c45 = /^[1-9]/,\n        peg$c46 = { type: \"class\", value: \"[1-9]\", description: \"[1-9]\" },\n        peg$c47 = function(digits) {\n            return parseInt(digits, 10);\n        },\n        peg$c48 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n        peg$c49 = { type: \"class\", value: \"[^{}\\\\\\\\\\\\0-\\\\x1F\\\\x7f \\\\t\\\\n\\\\r]\", description: \"[^{}\\\\\\\\\\\\0-\\\\x1F\\\\x7f \\\\t\\\\n\\\\r]\" },\n        peg$c50 = \"\\\\\\\\\",\n        peg$c51 = { type: \"literal\", value: \"\\\\\\\\\", description: \"\\\"\\\\\\\\\\\\\\\\\\\"\" },\n        peg$c52 = function() { return '\\\\'; },\n        peg$c53 = \"\\\\#\",\n        peg$c54 = { type: \"literal\", value: \"\\\\#\", description: \"\\\"\\\\\\\\#\\\"\" },\n        peg$c55 = function() { return '\\\\#'; },\n        peg$c56 = \"\\\\{\",\n        peg$c57 = { type: \"literal\", value: \"\\\\{\", description: \"\\\"\\\\\\\\{\\\"\" },\n        peg$c58 = function() { return '\\u007B'; },\n        peg$c59 = \"\\\\}\",\n        peg$c60 = { type: \"literal\", value: \"\\\\}\", description: \"\\\"\\\\\\\\}\\\"\" },\n        peg$c61 = function() { return '\\u007D'; },\n        peg$c62 = \"\\\\u\",\n        peg$c63 = { type: \"literal\", value: \"\\\\u\", description: \"\\\"\\\\\\\\u\\\"\" },\n        peg$c64 = function(digits) {\n                return String.fromCharCode(parseInt(digits, 16));\n            },\n        peg$c65 = function(chars) { return chars.join(''); },\n\n        peg$currPos          = 0,\n        peg$savedPos         = 0,\n        peg$posDetailsCache  = [{ line: 1, column: 1, seenCR: false }],\n        peg$maxFailPos       = 0,\n        peg$maxFailExpected  = [],\n        peg$silentFails      = 0,\n\n        peg$result;\n\n    if (\"startRule\" in options) {\n      if (!(options.startRule in peg$startRuleFunctions)) {\n        throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n      }\n\n      peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n    }\n\n    function text() {\n      return input.substring(peg$savedPos, peg$currPos);\n    }\n\n    function location() {\n      return peg$computeLocation(peg$savedPos, peg$currPos);\n    }\n\n    function expected(description) {\n      throw peg$buildException(\n        null,\n        [{ type: \"other\", description: description }],\n        input.substring(peg$savedPos, peg$currPos),\n        peg$computeLocation(peg$savedPos, peg$currPos)\n      );\n    }\n\n    function error(message) {\n      throw peg$buildException(\n        message,\n        null,\n        input.substring(peg$savedPos, peg$currPos),\n        peg$computeLocation(peg$savedPos, peg$currPos)\n      );\n    }\n\n    function peg$computePosDetails(pos) {\n      var details = peg$posDetailsCache[pos],\n          p, ch;\n\n      if (details) {\n        return details;\n      } else {\n        p = pos - 1;\n        while (!peg$posDetailsCache[p]) {\n          p--;\n        }\n\n        details = peg$posDetailsCache[p];\n        details = {\n          line:   details.line,\n          column: details.column,\n          seenCR: details.seenCR\n        };\n\n        while (p < pos) {\n          ch = input.charAt(p);\n          if (ch === \"\\n\") {\n            if (!details.seenCR) { details.line++; }\n            details.column = 1;\n            details.seenCR = false;\n          } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n            details.line++;\n            details.column = 1;\n            details.seenCR = true;\n          } else {\n            details.column++;\n            details.seenCR = false;\n          }\n\n          p++;\n        }\n\n        peg$posDetailsCache[pos] = details;\n        return details;\n      }\n    }\n\n    function peg$computeLocation(startPos, endPos) {\n      var startPosDetails = peg$computePosDetails(startPos),\n          endPosDetails   = peg$computePosDetails(endPos);\n\n      return {\n        start: {\n          offset: startPos,\n          line:   startPosDetails.line,\n          column: startPosDetails.column\n        },\n        end: {\n          offset: endPos,\n          line:   endPosDetails.line,\n          column: endPosDetails.column\n        }\n      };\n    }\n\n    function peg$fail(expected) {\n      if (peg$currPos < peg$maxFailPos) { return; }\n\n      if (peg$currPos > peg$maxFailPos) {\n        peg$maxFailPos = peg$currPos;\n        peg$maxFailExpected = [];\n      }\n\n      peg$maxFailExpected.push(expected);\n    }\n\n    function peg$buildException(message, expected, found, location) {\n      function cleanupExpected(expected) {\n        var i = 1;\n\n        expected.sort(function(a, b) {\n          if (a.description < b.description) {\n            return -1;\n          } else if (a.description > b.description) {\n            return 1;\n          } else {\n            return 0;\n          }\n        });\n\n        while (i < expected.length) {\n          if (expected[i - 1] === expected[i]) {\n            expected.splice(i, 1);\n          } else {\n            i++;\n          }\n        }\n      }\n\n      function buildMessage(expected, found) {\n        function stringEscape(s) {\n          function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }\n\n          return s\n            .replace(/\\\\/g,   '\\\\\\\\')\n            .replace(/\"/g,    '\\\\\"')\n            .replace(/\\x08/g, '\\\\b')\n            .replace(/\\t/g,   '\\\\t')\n            .replace(/\\n/g,   '\\\\n')\n            .replace(/\\f/g,   '\\\\f')\n            .replace(/\\r/g,   '\\\\r')\n            .replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(ch) { return '\\\\x0' + hex(ch); })\n            .replace(/[\\x10-\\x1F\\x80-\\xFF]/g,    function(ch) { return '\\\\x'  + hex(ch); })\n            .replace(/[\\u0100-\\u0FFF]/g,         function(ch) { return '\\\\u0' + hex(ch); })\n            .replace(/[\\u1000-\\uFFFF]/g,         function(ch) { return '\\\\u'  + hex(ch); });\n        }\n\n        var expectedDescs = new Array(expected.length),\n            expectedDesc, foundDesc, i;\n\n        for (i = 0; i < expected.length; i++) {\n          expectedDescs[i] = expected[i].description;\n        }\n\n        expectedDesc = expected.length > 1\n          ? expectedDescs.slice(0, -1).join(\", \")\n              + \" or \"\n              + expectedDescs[expected.length - 1]\n          : expectedDescs[0];\n\n        foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n\n        return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n      }\n\n      if (expected !== null) {\n        cleanupExpected(expected);\n      }\n\n      return new peg$SyntaxError(\n        message !== null ? message : buildMessage(expected, found),\n        expected,\n        found,\n        location\n      );\n    }\n\n    function peg$parsestart() {\n      var s0;\n\n      s0 = peg$parsemessageFormatPattern();\n\n      return s0;\n    }\n\n    function peg$parsemessageFormatPattern() {\n      var s0, s1, s2;\n\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parsemessageFormatElement();\n      while (s2 !== peg$FAILED) {\n        s1.push(s2);\n        s2 = peg$parsemessageFormatElement();\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c0(s1);\n      }\n      s0 = s1;\n\n      return s0;\n    }\n\n    function peg$parsemessageFormatElement() {\n      var s0;\n\n      s0 = peg$parsemessageTextElement();\n      if (s0 === peg$FAILED) {\n        s0 = peg$parseargumentElement();\n      }\n\n      return s0;\n    }\n\n    function peg$parsemessageText() {\n      var s0, s1, s2, s3, s4, s5;\n\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$currPos;\n      s3 = peg$parse_();\n      if (s3 !== peg$FAILED) {\n        s4 = peg$parsechars();\n        if (s4 !== peg$FAILED) {\n          s5 = peg$parse_();\n          if (s5 !== peg$FAILED) {\n            s3 = [s3, s4, s5];\n            s2 = s3;\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s2;\n          s2 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s2;\n        s2 = peg$FAILED;\n      }\n      if (s2 !== peg$FAILED) {\n        while (s2 !== peg$FAILED) {\n          s1.push(s2);\n          s2 = peg$currPos;\n          s3 = peg$parse_();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parsechars();\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parse_();\n              if (s5 !== peg$FAILED) {\n                s3 = [s3, s4, s5];\n                s2 = s3;\n              } else {\n                peg$currPos = s2;\n                s2 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s2;\n              s2 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n        }\n      } else {\n        s1 = peg$FAILED;\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c1(s1);\n      }\n      s0 = s1;\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = peg$parsews();\n        if (s1 !== peg$FAILED) {\n          s0 = input.substring(s0, peg$currPos);\n        } else {\n          s0 = s1;\n        }\n      }\n\n      return s0;\n    }\n\n    function peg$parsemessageTextElement() {\n      var s0, s1;\n\n      s0 = peg$currPos;\n      s1 = peg$parsemessageText();\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c2(s1);\n      }\n      s0 = s1;\n\n      return s0;\n    }\n\n    function peg$parseargument() {\n      var s0, s1, s2;\n\n      s0 = peg$parsenumber();\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        s1 = [];\n        if (peg$c3.test(input.charAt(peg$currPos))) {\n          s2 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s2 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c4); }\n        }\n        if (s2 !== peg$FAILED) {\n          while (s2 !== peg$FAILED) {\n            s1.push(s2);\n            if (peg$c3.test(input.charAt(peg$currPos))) {\n              s2 = input.charAt(peg$currPos);\n              peg$currPos++;\n            } else {\n              s2 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c4); }\n            }\n          }\n        } else {\n          s1 = peg$FAILED;\n        }\n        if (s1 !== peg$FAILED) {\n          s0 = input.substring(s0, peg$currPos);\n        } else {\n          s0 = s1;\n        }\n      }\n\n      return s0;\n    }\n\n    function peg$parseargumentElement() {\n      var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 123) {\n        s1 = peg$c5;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c6); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parseargument();\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              s5 = peg$currPos;\n              if (input.charCodeAt(peg$currPos) === 44) {\n                s6 = peg$c7;\n                peg$currPos++;\n              } else {\n                s6 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c8); }\n              }\n              if (s6 !== peg$FAILED) {\n                s7 = peg$parse_();\n                if (s7 !== peg$FAILED) {\n                  s8 = peg$parseelementFormat();\n                  if (s8 !== peg$FAILED) {\n                    s6 = [s6, s7, s8];\n                    s5 = s6;\n                  } else {\n                    peg$currPos = s5;\n                    s5 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s5;\n                  s5 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s5;\n                s5 = peg$FAILED;\n              }\n              if (s5 === peg$FAILED) {\n                s5 = null;\n              }\n              if (s5 !== peg$FAILED) {\n                s6 = peg$parse_();\n                if (s6 !== peg$FAILED) {\n                  if (input.charCodeAt(peg$currPos) === 125) {\n                    s7 = peg$c9;\n                    peg$currPos++;\n                  } else {\n                    s7 = peg$FAILED;\n                    if (peg$silentFails === 0) { peg$fail(peg$c10); }\n                  }\n                  if (s7 !== peg$FAILED) {\n                    peg$savedPos = s0;\n                    s1 = peg$c11(s3, s5);\n                    s0 = s1;\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      return s0;\n    }\n\n    function peg$parseelementFormat() {\n      var s0;\n\n      s0 = peg$parsesimpleFormat();\n      if (s0 === peg$FAILED) {\n        s0 = peg$parsepluralFormat();\n        if (s0 === peg$FAILED) {\n          s0 = peg$parseselectOrdinalFormat();\n          if (s0 === peg$FAILED) {\n            s0 = peg$parseselectFormat();\n          }\n        }\n      }\n\n      return s0;\n    }\n\n    function peg$parsesimpleFormat() {\n      var s0, s1, s2, s3, s4, s5, s6;\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 6) === peg$c12) {\n        s1 = peg$c12;\n        peg$currPos += 6;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c13); }\n      }\n      if (s1 === peg$FAILED) {\n        if (input.substr(peg$currPos, 4) === peg$c14) {\n          s1 = peg$c14;\n          peg$currPos += 4;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c15); }\n        }\n        if (s1 === peg$FAILED) {\n          if (input.substr(peg$currPos, 4) === peg$c16) {\n            s1 = peg$c16;\n            peg$currPos += 4;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c17); }\n          }\n        }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$currPos;\n          if (input.charCodeAt(peg$currPos) === 44) {\n            s4 = peg$c7;\n            peg$currPos++;\n          } else {\n            s4 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c8); }\n          }\n          if (s4 !== peg$FAILED) {\n            s5 = peg$parse_();\n            if (s5 !== peg$FAILED) {\n              s6 = peg$parsechars();\n              if (s6 !== peg$FAILED) {\n                s4 = [s4, s5, s6];\n                s3 = s4;\n              } else {\n                peg$currPos = s3;\n                s3 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s3;\n              s3 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s3;\n            s3 = peg$FAILED;\n          }\n          if (s3 === peg$FAILED) {\n            s3 = null;\n          }\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c18(s1, s3);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      return s0;\n    }\n\n    function peg$parsepluralFormat() {\n      var s0, s1, s2, s3, s4, s5;\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 6) === peg$c19) {\n        s1 = peg$c19;\n        peg$currPos += 6;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c20); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 44) {\n            s3 = peg$c7;\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c8); }\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parsepluralStyle();\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c21(s5);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      return s0;\n    }\n\n    function peg$parseselectOrdinalFormat() {\n      var s0, s1, s2, s3, s4, s5;\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 13) === peg$c22) {\n        s1 = peg$c22;\n        peg$currPos += 13;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c23); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 44) {\n            s3 = peg$c7;\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c8); }\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parsepluralStyle();\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c24(s5);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      return s0;\n    }\n\n    function peg$parseselectFormat() {\n      var s0, s1, s2, s3, s4, s5, s6;\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 6) === peg$c25) {\n        s1 = peg$c25;\n        peg$currPos += 6;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c26); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          if (input.charCodeAt(peg$currPos) === 44) {\n            s3 = peg$c7;\n            peg$currPos++;\n          } else {\n            s3 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c8); }\n          }\n          if (s3 !== peg$FAILED) {\n            s4 = peg$parse_();\n            if (s4 !== peg$FAILED) {\n              s5 = [];\n              s6 = peg$parseoptionalFormatPattern();\n              if (s6 !== peg$FAILED) {\n                while (s6 !== peg$FAILED) {\n                  s5.push(s6);\n                  s6 = peg$parseoptionalFormatPattern();\n                }\n              } else {\n                s5 = peg$FAILED;\n              }\n              if (s5 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c27(s5);\n                s0 = s1;\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      return s0;\n    }\n\n    function peg$parseselector() {\n      var s0, s1, s2, s3;\n\n      s0 = peg$currPos;\n      s1 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 61) {\n        s2 = peg$c28;\n        peg$currPos++;\n      } else {\n        s2 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c29); }\n      }\n      if (s2 !== peg$FAILED) {\n        s3 = peg$parsenumber();\n        if (s3 !== peg$FAILED) {\n          s2 = [s2, s3];\n          s1 = s2;\n        } else {\n          peg$currPos = s1;\n          s1 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s1;\n        s1 = peg$FAILED;\n      }\n      if (s1 !== peg$FAILED) {\n        s0 = input.substring(s0, peg$currPos);\n      } else {\n        s0 = s1;\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$parsechars();\n      }\n\n      return s0;\n    }\n\n    function peg$parseoptionalFormatPattern() {\n      var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n\n      s0 = peg$currPos;\n      s1 = peg$parse_();\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parseselector();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parse_();\n          if (s3 !== peg$FAILED) {\n            if (input.charCodeAt(peg$currPos) === 123) {\n              s4 = peg$c5;\n              peg$currPos++;\n            } else {\n              s4 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c6); }\n            }\n            if (s4 !== peg$FAILED) {\n              s5 = peg$parse_();\n              if (s5 !== peg$FAILED) {\n                s6 = peg$parsemessageFormatPattern();\n                if (s6 !== peg$FAILED) {\n                  s7 = peg$parse_();\n                  if (s7 !== peg$FAILED) {\n                    if (input.charCodeAt(peg$currPos) === 125) {\n                      s8 = peg$c9;\n                      peg$currPos++;\n                    } else {\n                      s8 = peg$FAILED;\n                      if (peg$silentFails === 0) { peg$fail(peg$c10); }\n                    }\n                    if (s8 !== peg$FAILED) {\n                      peg$savedPos = s0;\n                      s1 = peg$c30(s2, s6);\n                      s0 = s1;\n                    } else {\n                      peg$currPos = s0;\n                      s0 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              } else {\n                peg$currPos = s0;\n                s0 = peg$FAILED;\n              }\n            } else {\n              peg$currPos = s0;\n              s0 = peg$FAILED;\n            }\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      return s0;\n    }\n\n    function peg$parseoffset() {\n      var s0, s1, s2, s3;\n\n      s0 = peg$currPos;\n      if (input.substr(peg$currPos, 7) === peg$c31) {\n        s1 = peg$c31;\n        peg$currPos += 7;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c32); }\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = peg$parsenumber();\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c33(s3);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      return s0;\n    }\n\n    function peg$parsepluralStyle() {\n      var s0, s1, s2, s3, s4;\n\n      s0 = peg$currPos;\n      s1 = peg$parseoffset();\n      if (s1 === peg$FAILED) {\n        s1 = null;\n      }\n      if (s1 !== peg$FAILED) {\n        s2 = peg$parse_();\n        if (s2 !== peg$FAILED) {\n          s3 = [];\n          s4 = peg$parseoptionalFormatPattern();\n          if (s4 !== peg$FAILED) {\n            while (s4 !== peg$FAILED) {\n              s3.push(s4);\n              s4 = peg$parseoptionalFormatPattern();\n            }\n          } else {\n            s3 = peg$FAILED;\n          }\n          if (s3 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c34(s1, s3);\n            s0 = s1;\n          } else {\n            peg$currPos = s0;\n            s0 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s0;\n          s0 = peg$FAILED;\n        }\n      } else {\n        peg$currPos = s0;\n        s0 = peg$FAILED;\n      }\n\n      return s0;\n    }\n\n    function peg$parsews() {\n      var s0, s1;\n\n      peg$silentFails++;\n      s0 = [];\n      if (peg$c36.test(input.charAt(peg$currPos))) {\n        s1 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c37); }\n      }\n      if (s1 !== peg$FAILED) {\n        while (s1 !== peg$FAILED) {\n          s0.push(s1);\n          if (peg$c36.test(input.charAt(peg$currPos))) {\n            s1 = input.charAt(peg$currPos);\n            peg$currPos++;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c37); }\n          }\n        }\n      } else {\n        s0 = peg$FAILED;\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c35); }\n      }\n\n      return s0;\n    }\n\n    function peg$parse_() {\n      var s0, s1, s2;\n\n      peg$silentFails++;\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parsews();\n      while (s2 !== peg$FAILED) {\n        s1.push(s2);\n        s2 = peg$parsews();\n      }\n      if (s1 !== peg$FAILED) {\n        s0 = input.substring(s0, peg$currPos);\n      } else {\n        s0 = s1;\n      }\n      peg$silentFails--;\n      if (s0 === peg$FAILED) {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c38); }\n      }\n\n      return s0;\n    }\n\n    function peg$parsedigit() {\n      var s0;\n\n      if (peg$c39.test(input.charAt(peg$currPos))) {\n        s0 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s0 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c40); }\n      }\n\n      return s0;\n    }\n\n    function peg$parsehexDigit() {\n      var s0;\n\n      if (peg$c41.test(input.charAt(peg$currPos))) {\n        s0 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s0 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c42); }\n      }\n\n      return s0;\n    }\n\n    function peg$parsenumber() {\n      var s0, s1, s2, s3, s4, s5;\n\n      s0 = peg$currPos;\n      if (input.charCodeAt(peg$currPos) === 48) {\n        s1 = peg$c43;\n        peg$currPos++;\n      } else {\n        s1 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c44); }\n      }\n      if (s1 === peg$FAILED) {\n        s1 = peg$currPos;\n        s2 = peg$currPos;\n        if (peg$c45.test(input.charAt(peg$currPos))) {\n          s3 = input.charAt(peg$currPos);\n          peg$currPos++;\n        } else {\n          s3 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c46); }\n        }\n        if (s3 !== peg$FAILED) {\n          s4 = [];\n          s5 = peg$parsedigit();\n          while (s5 !== peg$FAILED) {\n            s4.push(s5);\n            s5 = peg$parsedigit();\n          }\n          if (s4 !== peg$FAILED) {\n            s3 = [s3, s4];\n            s2 = s3;\n          } else {\n            peg$currPos = s2;\n            s2 = peg$FAILED;\n          }\n        } else {\n          peg$currPos = s2;\n          s2 = peg$FAILED;\n        }\n        if (s2 !== peg$FAILED) {\n          s1 = input.substring(s1, peg$currPos);\n        } else {\n          s1 = s2;\n        }\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c47(s1);\n      }\n      s0 = s1;\n\n      return s0;\n    }\n\n    function peg$parsechar() {\n      var s0, s1, s2, s3, s4, s5, s6, s7;\n\n      if (peg$c48.test(input.charAt(peg$currPos))) {\n        s0 = input.charAt(peg$currPos);\n        peg$currPos++;\n      } else {\n        s0 = peg$FAILED;\n        if (peg$silentFails === 0) { peg$fail(peg$c49); }\n      }\n      if (s0 === peg$FAILED) {\n        s0 = peg$currPos;\n        if (input.substr(peg$currPos, 2) === peg$c50) {\n          s1 = peg$c50;\n          peg$currPos += 2;\n        } else {\n          s1 = peg$FAILED;\n          if (peg$silentFails === 0) { peg$fail(peg$c51); }\n        }\n        if (s1 !== peg$FAILED) {\n          peg$savedPos = s0;\n          s1 = peg$c52();\n        }\n        s0 = s1;\n        if (s0 === peg$FAILED) {\n          s0 = peg$currPos;\n          if (input.substr(peg$currPos, 2) === peg$c53) {\n            s1 = peg$c53;\n            peg$currPos += 2;\n          } else {\n            s1 = peg$FAILED;\n            if (peg$silentFails === 0) { peg$fail(peg$c54); }\n          }\n          if (s1 !== peg$FAILED) {\n            peg$savedPos = s0;\n            s1 = peg$c55();\n          }\n          s0 = s1;\n          if (s0 === peg$FAILED) {\n            s0 = peg$currPos;\n            if (input.substr(peg$currPos, 2) === peg$c56) {\n              s1 = peg$c56;\n              peg$currPos += 2;\n            } else {\n              s1 = peg$FAILED;\n              if (peg$silentFails === 0) { peg$fail(peg$c57); }\n            }\n            if (s1 !== peg$FAILED) {\n              peg$savedPos = s0;\n              s1 = peg$c58();\n            }\n            s0 = s1;\n            if (s0 === peg$FAILED) {\n              s0 = peg$currPos;\n              if (input.substr(peg$currPos, 2) === peg$c59) {\n                s1 = peg$c59;\n                peg$currPos += 2;\n              } else {\n                s1 = peg$FAILED;\n                if (peg$silentFails === 0) { peg$fail(peg$c60); }\n              }\n              if (s1 !== peg$FAILED) {\n                peg$savedPos = s0;\n                s1 = peg$c61();\n              }\n              s0 = s1;\n              if (s0 === peg$FAILED) {\n                s0 = peg$currPos;\n                if (input.substr(peg$currPos, 2) === peg$c62) {\n                  s1 = peg$c62;\n                  peg$currPos += 2;\n                } else {\n                  s1 = peg$FAILED;\n                  if (peg$silentFails === 0) { peg$fail(peg$c63); }\n                }\n                if (s1 !== peg$FAILED) {\n                  s2 = peg$currPos;\n                  s3 = peg$currPos;\n                  s4 = peg$parsehexDigit();\n                  if (s4 !== peg$FAILED) {\n                    s5 = peg$parsehexDigit();\n                    if (s5 !== peg$FAILED) {\n                      s6 = peg$parsehexDigit();\n                      if (s6 !== peg$FAILED) {\n                        s7 = peg$parsehexDigit();\n                        if (s7 !== peg$FAILED) {\n                          s4 = [s4, s5, s6, s7];\n                          s3 = s4;\n                        } else {\n                          peg$currPos = s3;\n                          s3 = peg$FAILED;\n                        }\n                      } else {\n                        peg$currPos = s3;\n                        s3 = peg$FAILED;\n                      }\n                    } else {\n                      peg$currPos = s3;\n                      s3 = peg$FAILED;\n                    }\n                  } else {\n                    peg$currPos = s3;\n                    s3 = peg$FAILED;\n                  }\n                  if (s3 !== peg$FAILED) {\n                    s2 = input.substring(s2, peg$currPos);\n                  } else {\n                    s2 = s3;\n                  }\n                  if (s2 !== peg$FAILED) {\n                    peg$savedPos = s0;\n                    s1 = peg$c64(s2);\n                    s0 = s1;\n                  } else {\n                    peg$currPos = s0;\n                    s0 = peg$FAILED;\n                  }\n                } else {\n                  peg$currPos = s0;\n                  s0 = peg$FAILED;\n                }\n              }\n            }\n          }\n        }\n      }\n\n      return s0;\n    }\n\n    function peg$parsechars() {\n      var s0, s1, s2;\n\n      s0 = peg$currPos;\n      s1 = [];\n      s2 = peg$parsechar();\n      if (s2 !== peg$FAILED) {\n        while (s2 !== peg$FAILED) {\n          s1.push(s2);\n          s2 = peg$parsechar();\n        }\n      } else {\n        s1 = peg$FAILED;\n      }\n      if (s1 !== peg$FAILED) {\n        peg$savedPos = s0;\n        s1 = peg$c65(s1);\n      }\n      s0 = s1;\n\n      return s0;\n    }\n\n    peg$result = peg$startRuleFunction();\n\n    if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n      return peg$result;\n    } else {\n      if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n        peg$fail({ type: \"end\", description: \"end of input\" });\n      }\n\n      throw peg$buildException(\n        null,\n        peg$maxFailExpected,\n        peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,\n        peg$maxFailPos < input.length\n          ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n          : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)\n      );\n    }\n  }\n\n  return {\n    SyntaxError: peg$SyntaxError,\n    parse:       peg$parse\n  };\n})();","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n    if (!c2) {\n        return c1;\n    }\n    return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n        all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n        return all;\n    }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n    if (!configs) {\n        return defaultConfig;\n    }\n    return Object.keys(defaultConfig).reduce(function (all, k) {\n        all[k] = mergeConfig(defaultConfig[k], configs[k]);\n        return all;\n    }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n    return {\n        create: function () {\n            return {\n                get: function (key) {\n                    return store[key];\n                },\n                set: function (key, value) {\n                    store[key] = value;\n                },\n            };\n        },\n    };\n}\nfunction createDefaultFormatters(cache) {\n    if (cache === void 0) { cache = {\n        number: {},\n        dateTime: {},\n        pluralRules: {},\n    }; }\n    return {\n        getNumberFormat: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.number),\n            strategy: strategies.variadic,\n        }),\n        getDateTimeFormat: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.dateTime),\n            strategy: strategies.variadic,\n        }),\n        getPluralRules: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.pluralRules),\n            strategy: strategies.variadic,\n        }),\n    };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n    function IntlMessageFormat(message, locales, overrideFormats, opts) {\n        var _this = this;\n        if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n        this.formatterCache = {\n            number: {},\n            dateTime: {},\n            pluralRules: {},\n        };\n        this.format = function (values) {\n            var parts = _this.formatToParts(values);\n            // Hot path for straight simple msg translations\n            if (parts.length === 1) {\n                return parts[0].value;\n            }\n            var result = parts.reduce(function (all, part) {\n                if (!all.length ||\n                    part.type !== PART_TYPE.literal ||\n                    typeof all[all.length - 1] !== 'string') {\n                    all.push(part.value);\n                }\n                else {\n                    all[all.length - 1] += part.value;\n                }\n                return all;\n            }, []);\n            if (result.length <= 1) {\n                return result[0] || '';\n            }\n            return result;\n        };\n        this.formatToParts = function (values) {\n            return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n        };\n        this.resolvedOptions = function () {\n            var _a;\n            return ({\n                locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n                    Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n            });\n        };\n        this.getAst = function () { return _this.ast; };\n        // Defined first because it's used to build the format pattern.\n        this.locales = locales;\n        this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n        if (typeof message === 'string') {\n            this.message = message;\n            if (!IntlMessageFormat.__parse) {\n                throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n            }\n            var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n            // Parse string messages into an AST.\n            this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n        }\n        else {\n            this.ast = message;\n        }\n        if (!Array.isArray(this.ast)) {\n            throw new TypeError('A message must be provided as a String or AST.');\n        }\n        // Creates a new object with the specified `formats` merged with the default\n        // formats.\n        this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n        this.formatters =\n            (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n    }\n    Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n        get: function () {\n            if (!IntlMessageFormat.memoizedDefaultLocale) {\n                IntlMessageFormat.memoizedDefaultLocale =\n                    new Intl.NumberFormat().resolvedOptions().locale;\n            }\n            return IntlMessageFormat.memoizedDefaultLocale;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    IntlMessageFormat.memoizedDefaultLocale = null;\n    IntlMessageFormat.resolveLocale = function (locales) {\n        if (typeof Intl.Locale === 'undefined') {\n            return;\n        }\n        var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n        if (supportedLocales.length > 0) {\n            return new Intl.Locale(supportedLocales[0]);\n        }\n        return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n    };\n    IntlMessageFormat.__parse = parse;\n    // Default format options used as the prototype of the `formats` provided to the\n    // constructor. These are used when constructing the internal Intl.NumberFormat\n    // and Intl.DateTimeFormat instances.\n    IntlMessageFormat.formats = {\n        number: {\n            integer: {\n                maximumFractionDigits: 0,\n            },\n            currency: {\n                style: 'currency',\n            },\n            percent: {\n                style: 'percent',\n            },\n        },\n        date: {\n            short: {\n                month: 'numeric',\n                day: 'numeric',\n                year: '2-digit',\n            },\n            medium: {\n                month: 'short',\n                day: 'numeric',\n                year: 'numeric',\n            },\n            long: {\n                month: 'long',\n                day: 'numeric',\n                year: 'numeric',\n            },\n            full: {\n                weekday: 'long',\n                month: 'long',\n                day: 'numeric',\n                year: 'numeric',\n            },\n        },\n        time: {\n            short: {\n                hour: 'numeric',\n                minute: 'numeric',\n            },\n            medium: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n            },\n            long: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n                timeZoneName: 'short',\n            },\n            full: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n                timeZoneName: 'short',\n            },\n        },\n    };\n    return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n    // When we have a placeholder but no value to format\n    ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n    // When value supplied is invalid\n    ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n    // When we need specific Intl API but it's not available\n    ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n    __extends(FormatError, _super);\n    function FormatError(msg, code, originalMessage) {\n        var _this = _super.call(this, msg) || this;\n        _this.code = code;\n        _this.originalMessage = originalMessage;\n        return _this;\n    }\n    FormatError.prototype.toString = function () {\n        return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n    };\n    return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n    __extends(InvalidValueError, _super);\n    function InvalidValueError(variableId, value, options, originalMessage) {\n        return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n    }\n    return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n    __extends(InvalidValueTypeError, _super);\n    function InvalidValueTypeError(value, type, originalMessage) {\n        return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n    }\n    return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n    __extends(MissingValueError, _super);\n    function MissingValueError(variableId, originalMessage) {\n        return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n    }\n    return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n    PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n    PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n    if (parts.length < 2) {\n        return parts;\n    }\n    return parts.reduce(function (all, part) {\n        var lastPart = all[all.length - 1];\n        if (!lastPart ||\n            lastPart.type !== PART_TYPE.literal ||\n            part.type !== PART_TYPE.literal) {\n            all.push(part);\n        }\n        else {\n            lastPart.value += part.value;\n        }\n        return all;\n    }, []);\n}\nexport function isFormatXMLElementFn(el) {\n    return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n    // Hot path for straight simple msg translations\n    if (els.length === 1 && isLiteralElement(els[0])) {\n        return [\n            {\n                type: PART_TYPE.literal,\n                value: els[0].value,\n            },\n        ];\n    }\n    var result = [];\n    for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n        var el = els_1[_i];\n        // Exit early for string parts.\n        if (isLiteralElement(el)) {\n            result.push({\n                type: PART_TYPE.literal,\n                value: el.value,\n            });\n            continue;\n        }\n        // TODO: should this part be literal type?\n        // Replace `#` in plural rules with the actual numeric value.\n        if (isPoundElement(el)) {\n            if (typeof currentPluralValue === 'number') {\n                result.push({\n                    type: PART_TYPE.literal,\n                    value: formatters.getNumberFormat(locales).format(currentPluralValue),\n                });\n            }\n            continue;\n        }\n        var varName = el.value;\n        // Enforce that all required values are provided by the caller.\n        if (!(values && varName in values)) {\n            throw new MissingValueError(varName, originalMessage);\n        }\n        var value = values[varName];\n        if (isArgumentElement(el)) {\n            if (!value || typeof value === 'string' || typeof value === 'number') {\n                value =\n                    typeof value === 'string' || typeof value === 'number'\n                        ? String(value)\n                        : '';\n            }\n            result.push({\n                type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n                value: value,\n            });\n            continue;\n        }\n        // Recursively format plural and select parts' option — which can be a\n        // nested pattern structure. The choosing of the option to use is\n        // abstracted-by and delegated-to the part helper object.\n        if (isDateElement(el)) {\n            var style = typeof el.style === 'string'\n                ? formats.date[el.style]\n                : isDateTimeSkeleton(el.style)\n                    ? el.style.parsedOptions\n                    : undefined;\n            result.push({\n                type: PART_TYPE.literal,\n                value: formatters\n                    .getDateTimeFormat(locales, style)\n                    .format(value),\n            });\n            continue;\n        }\n        if (isTimeElement(el)) {\n            var style = typeof el.style === 'string'\n                ? formats.time[el.style]\n                : isDateTimeSkeleton(el.style)\n                    ? el.style.parsedOptions\n                    : formats.time.medium;\n            result.push({\n                type: PART_TYPE.literal,\n                value: formatters\n                    .getDateTimeFormat(locales, style)\n                    .format(value),\n            });\n            continue;\n        }\n        if (isNumberElement(el)) {\n            var style = typeof el.style === 'string'\n                ? formats.number[el.style]\n                : isNumberSkeleton(el.style)\n                    ? el.style.parsedOptions\n                    : undefined;\n            if (style && style.scale) {\n                value =\n                    value *\n                        (style.scale || 1);\n            }\n            result.push({\n                type: PART_TYPE.literal,\n                value: formatters\n                    .getNumberFormat(locales, style)\n                    .format(value),\n            });\n            continue;\n        }\n        if (isTagElement(el)) {\n            var children = el.children, value_1 = el.value;\n            var formatFn = values[value_1];\n            if (!isFormatXMLElementFn(formatFn)) {\n                throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n            }\n            var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n            var chunks = formatFn(parts.map(function (p) { return p.value; }));\n            if (!Array.isArray(chunks)) {\n                chunks = [chunks];\n            }\n            result.push.apply(result, chunks.map(function (c) {\n                return {\n                    type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n                    value: c,\n                };\n            }));\n        }\n        if (isSelectElement(el)) {\n            var opt = el.options[value] || el.options.other;\n            if (!opt) {\n                throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n            }\n            result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n            continue;\n        }\n        if (isPluralElement(el)) {\n            var opt = el.options[\"=\".concat(value)];\n            if (!opt) {\n                if (!Intl.PluralRules) {\n                    throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n                }\n                var rule = formatters\n                    .getPluralRules(locales, { type: el.pluralType })\n                    .select(value - (el.offset || 0));\n                opt = el.options[rule] || el.options.other;\n            }\n            if (!opt) {\n                throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n            }\n            result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n            continue;\n        }\n    }\n    return mergeLiteral(result);\n}\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    asyncTag = '[object AsyncFunction]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    nullTag = '[object Null]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    proxyTag = '[object Proxy]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]',\n    undefinedTag = '[object Undefined]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n      result = Array(map.size);\n\n  map.forEach(function(value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n      result = Array(set.size);\n\n  set.forEach(function(value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n    funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    Symbol = root.Symbol,\n    Uint8Array = root.Uint8Array,\n    propertyIsEnumerable = objectProto.propertyIsEnumerable,\n    splice = arrayProto.splice,\n    symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n    nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n    nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n    Map = getNative(root, 'Map'),\n    Promise = getNative(root, 'Promise'),\n    Set = getNative(root, 'Set'),\n    WeakMap = getNative(root, 'WeakMap'),\n    nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n      length = values == null ? 0 : values.length;\n\n  this.__data__ = new MapCache;\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n      othIsArr = isArray(other),\n      objTag = objIsArr ? arrayTag : getTag(object),\n      othTag = othIsArr ? arrayTag : getTag(other);\n\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n\n  var objIsObj = objTag == objectTag,\n      othIsObj = othTag == objectTag,\n      isSameTag = objTag == othTag;\n\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack);\n    return (objIsArr || isTypedArray(object))\n      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n          othUnwrapped = othIsWrapped ? other.value() : other;\n\n      stack || (stack = new Stack);\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack);\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      arrLength = array.length,\n      othLength = other.length;\n\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Assume cyclic values are equal.\n  var stacked = stack.get(array);\n  if (stacked && stack.get(other)) {\n    return stacked == other;\n  }\n  var index = -1,\n      result = true,\n      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n        othValue = other[index];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, arrValue, index, other, array, stack)\n        : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function(othValue, othIndex) {\n            if (!cacheHas(seen, othIndex) &&\n                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n              return seen.push(othIndex);\n            }\n          })) {\n        result = false;\n        break;\n      }\n    } else if (!(\n          arrValue === othValue ||\n            equalFunc(arrValue, othValue, bitmask, customizer, stack)\n        )) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if ((object.byteLength != other.byteLength) ||\n          (object.byteOffset != other.byteOffset)) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n\n    case arrayBufferTag:\n      if ((object.byteLength != other.byteLength) ||\n          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == (other + '');\n\n    case mapTag:\n      var convert = mapToArray;\n\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      objProps = getAllKeys(object),\n      objLength = objProps.length,\n      othProps = getAllKeys(other),\n      othLength = othProps.length;\n\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Assume cyclic values are equal.\n  var stacked = stack.get(object);\n  if (stacked && stack.get(other)) {\n    return stacked == other;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n        othValue = other[key];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, objValue, key, other, object, stack)\n        : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined\n          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n          : compared\n        )) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n        othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor &&\n        ('constructor' in object && 'constructor' in other) &&\n        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n          typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map && getTag(new Map) != mapTag) ||\n    (Promise && getTag(Promise.resolve()) != promiseTag) ||\n    (Set && getTag(new Set) != setTag) ||\n    (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  length = length == null ? MAX_SAFE_INTEGER : length;\n  return !!length &&\n    (typeof value == 'number' || reIsUint.test(value)) &&\n    (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n  return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = isEqual;\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    asyncTag = '[object AsyncFunction]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    nullTag = '[object Null]',\n    objectTag = '[object Object]',\n    proxyTag = '[object Proxy]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    undefinedTag = '[object Undefined]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n    funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    Symbol = root.Symbol,\n    Uint8Array = root.Uint8Array,\n    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n    getPrototype = overArg(Object.getPrototypeOf, Object),\n    objectCreate = Object.create,\n    propertyIsEnumerable = objectProto.propertyIsEnumerable,\n    splice = arrayProto.splice,\n    symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n    nativeMax = Math.max,\n    nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n    nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n  if ((value !== undefined && !eq(object[key], value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n  if (object === source) {\n    return;\n  }\n  baseFor(source, function(srcValue, key) {\n    stack || (stack = new Stack);\n    if (isObject(srcValue)) {\n      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n    }\n    else {\n      var newValue = customizer\n        ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n        : undefined;\n\n      if (newValue === undefined) {\n        newValue = srcValue;\n      }\n      assignMergeValue(object, key, newValue);\n    }\n  }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n  var objValue = safeGet(object, key),\n      srcValue = safeGet(source, key),\n      stacked = stack.get(srcValue);\n\n  if (stacked) {\n    assignMergeValue(object, key, stacked);\n    return;\n  }\n  var newValue = customizer\n    ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n    : undefined;\n\n  var isCommon = newValue === undefined;\n\n  if (isCommon) {\n    var isArr = isArray(srcValue),\n        isBuff = !isArr && isBuffer(srcValue),\n        isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n    newValue = srcValue;\n    if (isArr || isBuff || isTyped) {\n      if (isArray(objValue)) {\n        newValue = objValue;\n      }\n      else if (isArrayLikeObject(objValue)) {\n        newValue = copyArray(objValue);\n      }\n      else if (isBuff) {\n        isCommon = false;\n        newValue = cloneBuffer(srcValue, true);\n      }\n      else if (isTyped) {\n        isCommon = false;\n        newValue = cloneTypedArray(srcValue, true);\n      }\n      else {\n        newValue = [];\n      }\n    }\n    else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n      newValue = objValue;\n      if (isArguments(objValue)) {\n        newValue = toPlainObject(objValue);\n      }\n      else if (!isObject(objValue) || isFunction(objValue)) {\n        newValue = initCloneObject(srcValue);\n      }\n    }\n    else {\n      isCommon = false;\n    }\n  }\n  if (isCommon) {\n    // Recursively merge objects and arrays (susceptible to call stack limits).\n    stack.set(srcValue, newValue);\n    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n    stack['delete'](srcValue);\n  }\n  assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n  buffer.copy(result);\n  return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return (typeof object.constructor == 'function' && !isPrototype(object))\n    ? baseCreate(getPrototype(object))\n    : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n  if (key === 'constructor' && typeof object[key] === 'function') {\n    return;\n  }\n\n  if (key == '__proto__') {\n    return;\n  }\n\n  return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n    return false;\n  }\n  var proto = getPrototype(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n    funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n  return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n *   'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n *   'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n  baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = merge;\n","import { spy } from \"mobx\";\nimport { useState } from \"react\";\nif (!useState) {\n    throw new Error(\"mobx-react-lite requires React with Hooks support\");\n}\nif (!spy) {\n    throw new Error(\"mobx-react-lite requires mobx at least version 4 to be available\");\n}\n","var __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nimport { useCallback, useEffect, useState } from \"react\";\nvar EMPTY_ARRAY = [];\nexport function useUnmount(fn) {\n    useEffect(function () { return fn; }, EMPTY_ARRAY);\n}\nexport function useForceUpdate() {\n    var _a = __read(useState(0), 2), setTick = _a[1];\n    var update = useCallback(function () {\n        setTick(function (tick) { return tick + 1; });\n    }, []);\n    return update;\n}\nexport function isPlainObject(value) {\n    if (!value || typeof value !== \"object\") {\n        return false;\n    }\n    var proto = Object.getPrototypeOf(value);\n    return !proto || proto === Object.prototype;\n}\nexport function getSymbol(name) {\n    if (typeof Symbol === \"function\") {\n        return Symbol.for(name);\n    }\n    return \"__$mobx-react \" + name + \"__\";\n}\nvar mockGlobal = {};\nexport function getGlobal() {\n    if (typeof window !== \"undefined\") {\n        return window;\n    }\n    if (typeof global !== \"undefined\") {\n        return global;\n    }\n    if (typeof self !== \"undefined\") {\n        return self;\n    }\n    return mockGlobal;\n}\n","import { configure } from \"mobx\";\nimport { getGlobal, getSymbol } from \"./utils\";\nvar observerBatchingConfiguredSymbol = getSymbol(\"observerBatching\");\nexport function defaultNoopBatch(callback) {\n    callback();\n}\nexport function observerBatching(reactionScheduler) {\n    if (!reactionScheduler) {\n        reactionScheduler = defaultNoopBatch;\n        if (\"production\" !== process.env.NODE_ENV) {\n            console.warn(\"[MobX] Failed to get unstable_batched updates from react-dom / react-native\");\n        }\n    }\n    configure({ reactionScheduler: reactionScheduler });\n    getGlobal()[observerBatchingConfiguredSymbol] = true;\n}\nexport var isObserverBatched = function () { return !!getGlobal()[observerBatchingConfiguredSymbol]; };\n","var globalIsUsingStaticRendering = false;\nexport function useStaticRendering(enable) {\n    globalIsUsingStaticRendering = enable;\n}\nexport function isUsingStaticRendering() {\n    return globalIsUsingStaticRendering;\n}\n","import { getDependencyTree } from \"mobx\";\nexport function printDebugValue(v) {\n    return getDependencyTree(v);\n}\n","export function createTrackingData(reaction) {\n    var trackingData = {\n        cleanAt: Date.now() + CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS,\n        reaction: reaction\n    };\n    return trackingData;\n}\n/**\n * The minimum time before we'll clean up a Reaction created in a render\n * for a component that hasn't managed to run its effects. This needs to\n * be big enough to ensure that a component won't turn up and have its\n * effects run without being re-rendered.\n */\nexport var CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS = 10000;\n/**\n * The frequency with which we'll check for leaked reactions.\n */\nexport var CLEANUP_TIMER_LOOP_MILLIS = 10000;\n/**\n * Reactions created by components that have yet to be fully mounted.\n */\nvar uncommittedReactionRefs = new Set();\n/**\n * Latest 'uncommitted reactions' cleanup timer handle.\n */\nvar reactionCleanupHandle;\nfunction ensureCleanupTimerRunning() {\n    if (reactionCleanupHandle === undefined) {\n        reactionCleanupHandle = setTimeout(cleanUncommittedReactions, CLEANUP_TIMER_LOOP_MILLIS);\n    }\n}\nexport function scheduleCleanupOfReactionIfLeaked(ref) {\n    uncommittedReactionRefs.add(ref);\n    ensureCleanupTimerRunning();\n}\nexport function recordReactionAsCommitted(reactionRef) {\n    uncommittedReactionRefs.delete(reactionRef);\n}\n/**\n * Run by the cleanup timer to dispose any outstanding reactions\n */\nfunction cleanUncommittedReactions() {\n    reactionCleanupHandle = undefined;\n    // Loop through all the candidate leaked reactions; those older\n    // than CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS get tidied.\n    var now = Date.now();\n    uncommittedReactionRefs.forEach(function (ref) {\n        var tracking = ref.current;\n        if (tracking) {\n            if (now >= tracking.cleanAt) {\n                // It's time to tidy up this leaked reaction.\n                tracking.reaction.dispose();\n                ref.current = null;\n                uncommittedReactionRefs.delete(ref);\n            }\n        }\n    });\n    if (uncommittedReactionRefs.size > 0) {\n        // We've just finished a round of cleanups but there are still\n        // some leak candidates outstanding.\n        ensureCleanupTimerRunning();\n    }\n}\n/* istanbul ignore next */\n/**\n * Only to be used by test functions; do not export outside of mobx-react-lite\n */\nexport function forceCleanupTimerToRunNowForTests() {\n    // This allows us to control the execution of the cleanup timer\n    // to force it to run at awkward times in unit tests.\n    if (reactionCleanupHandle) {\n        clearTimeout(reactionCleanupHandle);\n        cleanUncommittedReactions();\n    }\n}\n/* istanbul ignore next */\nexport function resetCleanupScheduleForTests() {\n    if (reactionCleanupHandle) {\n        clearTimeout(reactionCleanupHandle);\n        reactionCleanupHandle = undefined;\n    }\n    uncommittedReactionRefs.clear();\n}\n","import React from \"react\";\nvar insideRender = false;\nvar forceUpdateQueue = [];\nexport function useQueuedForceUpdate(forceUpdate) {\n    return function () {\n        if (insideRender) {\n            forceUpdateQueue.push(forceUpdate);\n        }\n        else {\n            forceUpdate();\n        }\n    };\n}\nexport function useQueuedForceUpdateBlock(callback) {\n    // start intercepting force-update calls\n    insideRender = true;\n    forceUpdateQueue = [];\n    try {\n        var result = callback();\n        // stop intercepting force-update\n        insideRender = false;\n        // store queue or nothing if it was empty to execute useLayoutEffect only when necessary\n        var queue_1 = forceUpdateQueue.length > 0 ? forceUpdateQueue : undefined;\n        // run force-update queue in useLayoutEffect\n        React.useLayoutEffect(function () {\n            if (queue_1) {\n                queue_1.forEach(function (x) { return x(); });\n            }\n        }, [queue_1]);\n        return result;\n    }\n    finally {\n        insideRender = false;\n    }\n}\n","import { Reaction } from \"mobx\";\nimport React from \"react\";\nimport { printDebugValue } from \"./printDebugValue\";\nimport { createTrackingData, recordReactionAsCommitted, scheduleCleanupOfReactionIfLeaked } from \"./reactionCleanupTracking\";\nimport { isUsingStaticRendering } from \"./staticRendering\";\nimport { useForceUpdate } from \"./utils\";\nimport { useQueuedForceUpdate, useQueuedForceUpdateBlock } from \"./useQueuedForceUpdate\";\nvar EMPTY_OBJECT = {};\nfunction observerComponentNameFor(baseComponentName) {\n    return \"observer\" + baseComponentName;\n}\nexport function useObserver(fn, baseComponentName, options) {\n    if (baseComponentName === void 0) { baseComponentName = \"observed\"; }\n    if (options === void 0) { options = EMPTY_OBJECT; }\n    if (isUsingStaticRendering()) {\n        return fn();\n    }\n    var wantedForceUpdateHook = options.useForceUpdate || useForceUpdate;\n    var forceUpdate = wantedForceUpdateHook();\n    var queuedForceUpdate = useQueuedForceUpdate(forceUpdate);\n    // StrictMode/ConcurrentMode/Suspense may mean that our component is\n    // rendered and abandoned multiple times, so we need to track leaked\n    // Reactions.\n    var reactionTrackingRef = React.useRef(null);\n    if (!reactionTrackingRef.current) {\n        // First render for this component (or first time since a previous\n        // reaction from an abandoned render was disposed).\n        var newReaction_1 = new Reaction(observerComponentNameFor(baseComponentName), function () {\n            // Observable has changed, meaning we want to re-render\n            // BUT if we're a component that hasn't yet got to the useEffect()\n            // stage, we might be a component that _started_ to render, but\n            // got dropped, and we don't want to make state changes then.\n            // (It triggers warnings in StrictMode, for a start.)\n            if (trackingData_1.mounted) {\n                // We have reached useEffect(), so we're mounted, and can trigger an update\n                queuedForceUpdate();\n            }\n            else {\n                // We haven't yet reached useEffect(), so we'll need to trigger a re-render\n                // when (and if) useEffect() arrives.  The easiest way to do that is just to\n                // drop our current reaction and allow useEffect() to recreate it.\n                newReaction_1.dispose();\n                reactionTrackingRef.current = null;\n            }\n        });\n        var trackingData_1 = createTrackingData(newReaction_1);\n        reactionTrackingRef.current = trackingData_1;\n        scheduleCleanupOfReactionIfLeaked(reactionTrackingRef);\n    }\n    var reaction = reactionTrackingRef.current.reaction;\n    React.useDebugValue(reaction, printDebugValue);\n    React.useEffect(function () {\n        // Called on first mount only\n        recordReactionAsCommitted(reactionTrackingRef);\n        if (reactionTrackingRef.current) {\n            // Great. We've already got our reaction from our render;\n            // all we need to do is to record that it's now mounted,\n            // to allow future observable changes to trigger re-renders\n            reactionTrackingRef.current.mounted = true;\n        }\n        else {\n            // The reaction we set up in our render has been disposed.\n            // This is either due to bad timings of renderings, e.g. our\n            // component was paused for a _very_ long time, and our\n            // reaction got cleaned up, or we got a observable change\n            // between render and useEffect\n            // Re-create the reaction\n            reactionTrackingRef.current = {\n                reaction: new Reaction(observerComponentNameFor(baseComponentName), function () {\n                    // We've definitely already been mounted at this point\n                    queuedForceUpdate();\n                }),\n                cleanAt: Infinity\n            };\n            queuedForceUpdate();\n        }\n        return function () {\n            reactionTrackingRef.current.reaction.dispose();\n            reactionTrackingRef.current = null;\n        };\n    }, []);\n    // delay all force-update calls after rendering of this component\n    return useQueuedForceUpdateBlock(function () {\n        // render the original component, but have the\n        // reaction track the observables, so that rendering\n        // can be invalidated (see above) once a dependency changes\n        var rendering;\n        var exception;\n        reaction.track(function () {\n            try {\n                rendering = fn();\n            }\n            catch (e) {\n                exception = e;\n            }\n        });\n        if (exception) {\n            throw exception; // re-throw any exceptions caught during rendering\n        }\n        return rendering;\n    });\n}\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))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nimport { forwardRef, memo } from \"react\";\nimport { isUsingStaticRendering } from \"./staticRendering\";\nimport { useObserver } from \"./useObserver\";\n// n.b. base case is not used for actual typings or exported in the typing files\nexport function observer(baseComponent, options) {\n    // The working of observer is explained step by step in this talk: https://www.youtube.com/watch?v=cPF4iBedoF0&feature=youtu.be&t=1307\n    if (isUsingStaticRendering()) {\n        return baseComponent;\n    }\n    var realOptions = __assign({ forwardRef: false }, options);\n    var baseComponentName = baseComponent.displayName || baseComponent.name;\n    var wrappedComponent = function (props, ref) {\n        return useObserver(function () { return baseComponent(props, ref); }, baseComponentName);\n    };\n    wrappedComponent.displayName = baseComponentName;\n    // memo; we are not interested in deep updates\n    // in props; we assume that if deep objects are changed,\n    // this is in observables, which would have been tracked anyway\n    var memoComponent;\n    if (realOptions.forwardRef) {\n        // we have to use forwardRef here because:\n        // 1. it cannot go before memo, only after it\n        // 2. forwardRef converts the function into an actual component, so we can't let the baseComponent do it\n        //    since it wouldn't be a callable function anymore\n        memoComponent = memo(forwardRef(wrappedComponent));\n    }\n    else {\n        memoComponent = memo(wrappedComponent);\n    }\n    copyStaticProperties(baseComponent, memoComponent);\n    memoComponent.displayName = baseComponentName;\n    return memoComponent;\n}\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nvar hoistBlackList = {\n    $$typeof: true,\n    render: true,\n    compare: true,\n    type: true\n};\nfunction copyStaticProperties(base, target) {\n    Object.keys(base).forEach(function (key) {\n        if (!hoistBlackList[key]) {\n            Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\n        }\n    });\n}\n","import { useObserver } from \"./useObserver\";\nfunction ObserverComponent(_a) {\n    var children = _a.children, render = _a.render;\n    var component = children || render;\n    if (typeof component !== \"function\") {\n        return null;\n    }\n    return useObserver(component);\n}\nObserverComponent.propTypes = {\n    children: ObserverPropsCheck,\n    render: ObserverPropsCheck\n};\nObserverComponent.displayName = \"Observer\";\nexport { ObserverComponent as Observer };\nfunction ObserverPropsCheck(props, key, componentName, location, propFullName) {\n    var extraKey = key === \"children\" ? \"render\" : \"children\";\n    var hasProp = typeof props[key] === \"function\";\n    var hasExtraProp = typeof props[extraKey] === \"function\";\n    if (hasProp && hasExtraProp) {\n        return new Error(\"MobX Observer: Do not use children and render in the same time in`\" + componentName);\n    }\n    if (hasProp || hasExtraProp) {\n        return null;\n    }\n    return new Error(\"Invalid prop `\" +\n        propFullName +\n        \"` of type `\" +\n        typeof props[key] +\n        \"` supplied to\" +\n        \" `\" +\n        componentName +\n        \"`, expected `function`.\");\n}\n","import \"./assertEnvironment\";\nimport { unstable_batchedUpdates as batch } from \"./utils/reactBatchedUpdates\";\nimport { observerBatching } from \"./observerBatching\";\nobserverBatching(batch);\nexport { isUsingStaticRendering, useStaticRendering } from \"./staticRendering\";\nexport { observer } from \"./observer\";\nexport { useObserver } from \"./useObserver\";\nexport { Observer } from \"./ObserverComponent\";\nexport { useForceUpdate } from \"./utils\";\nexport { useAsObservableSource } from \"./useAsObservableSource\";\nexport { useLocalStore } from \"./useLocalStore\";\nexport { useQueuedForceUpdate, useQueuedForceUpdateBlock } from \"./useQueuedForceUpdate\";\nexport { isObserverBatched, observerBatching } from \"./observerBatching\";\n","/** MobX - (c) Michel Weststrate 2015 - 2020 - MIT Licensed */\nvar OBFUSCATED_ERROR = \"An invariant failed, however the error is obfuscated because this is a production build.\";\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nfunction getNextId() {\n    return ++globalState.mobxGuid;\n}\nfunction fail(message) {\n    invariant(false, message);\n    throw \"X\"; // unreachable\n}\nfunction invariant(check, message) {\n    if (!check)\n        throw new Error(\"[mobx] \" + (message || OBFUSCATED_ERROR));\n}\n/**\n * Prints a deprecation message, but only one time.\n * Returns false if the deprecated message was already printed before\n */\nvar deprecatedMessages = [];\nfunction deprecated(msg, thing) {\n    if (process.env.NODE_ENV === \"production\")\n        return false;\n    if (thing) {\n        return deprecated(\"'\" + msg + \"', use '\" + thing + \"' instead.\");\n    }\n    if (deprecatedMessages.indexOf(msg) !== -1)\n        return false;\n    deprecatedMessages.push(msg);\n    console.error(\"[mobx] Deprecated: \" + msg);\n    return true;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n    var invoked = false;\n    return function () {\n        if (invoked)\n            return;\n        invoked = true;\n        return func.apply(this, arguments);\n    };\n}\nvar noop = function () { };\nfunction unique(list) {\n    var res = [];\n    list.forEach(function (item) {\n        if (res.indexOf(item) === -1)\n            res.push(item);\n    });\n    return res;\n}\nfunction isObject(value) {\n    return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n    if (value === null || typeof value !== \"object\")\n        return false;\n    var proto = Object.getPrototypeOf(value);\n    return proto === Object.prototype || proto === null;\n}\nfunction convertToMap(dataStructure) {\n    if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n        return dataStructure;\n    }\n    else if (Array.isArray(dataStructure)) {\n        return new Map(dataStructure);\n    }\n    else if (isPlainObject(dataStructure)) {\n        var map = new Map();\n        for (var key in dataStructure) {\n            map.set(key, dataStructure[key]);\n        }\n        return map;\n    }\n    else {\n        return fail(\"Cannot convert to map from '\" + dataStructure + \"'\");\n    }\n}\nfunction addHiddenProp(object, propName, value) {\n    Object.defineProperty(object, propName, {\n        enumerable: false,\n        writable: true,\n        configurable: true,\n        value: value\n    });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n    Object.defineProperty(object, propName, {\n        enumerable: false,\n        writable: false,\n        configurable: true,\n        value: value\n    });\n}\nfunction isPropertyConfigurable(object, prop) {\n    var descriptor = Object.getOwnPropertyDescriptor(object, prop);\n    return !descriptor || (descriptor.configurable !== false && descriptor.writable !== false);\n}\nfunction assertPropertyConfigurable(object, prop) {\n    if (process.env.NODE_ENV !== \"production\" && !isPropertyConfigurable(object, prop))\n        fail(\"Cannot make property '\" + prop.toString() + \"' observable, it is not configurable and writable in the target object\");\n}\nfunction createInstanceofPredicate(name, clazz) {\n    var propName = \"isMobX\" + name;\n    clazz.prototype[propName] = true;\n    return function (x) {\n        return isObject(x) && x[propName] === true;\n    };\n}\n/**\n * Returns whether the argument is an array, disregarding observability.\n */\nfunction isArrayLike(x) {\n    return Array.isArray(x) || isObservableArray(x);\n}\nfunction isES6Map(thing) {\n    return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n    return thing instanceof Set;\n}\n/**\n * Returns the following: own keys, prototype keys & own symbol keys, if they are enumerable.\n */\nfunction getPlainObjectKeys(object) {\n    var enumerables = new Set();\n    for (var key in object)\n        enumerables.add(key); // *all* enumerables\n    Object.getOwnPropertySymbols(object).forEach(function (k) {\n        if (Object.getOwnPropertyDescriptor(object, k).enumerable)\n            enumerables.add(k);\n    }); // *own* symbols\n    // Note: this implementation is missing enumerable, inherited, symbolic property names! That would however pretty expensive to add,\n    // as there is no efficient iterator that returns *all* properties\n    return Array.from(enumerables);\n}\nfunction stringifyKey(key) {\n    if (key && key.toString)\n        return key.toString();\n    else\n        return new String(key).toString();\n}\nfunction toPrimitive(value) {\n    return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys\n    ? Reflect.ownKeys\n    : Object.getOwnPropertySymbols\n        ? function (obj) { return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj)); }\n        : /* istanbul ignore next */ Object.getOwnPropertyNames;\n\nvar $mobx = Symbol(\"mobx administration\");\nvar Atom = /** @class */ (function () {\n    /**\n     * Create a new atom. For debugging purposes it is recommended to give it a name.\n     * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n     */\n    function Atom(name) {\n        if (name === void 0) { name = \"Atom@\" + getNextId(); }\n        this.name = name;\n        this.isPendingUnobservation = false; // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n        this.isBeingObserved = false;\n        this.observers = new Set();\n        this.diffValue = 0;\n        this.lastAccessedBy = 0;\n        this.lowestObserverState = IDerivationState.NOT_TRACKING;\n    }\n    Atom.prototype.onBecomeObserved = function () {\n        if (this.onBecomeObservedListeners) {\n            this.onBecomeObservedListeners.forEach(function (listener) { return listener(); });\n        }\n    };\n    Atom.prototype.onBecomeUnobserved = function () {\n        if (this.onBecomeUnobservedListeners) {\n            this.onBecomeUnobservedListeners.forEach(function (listener) { return listener(); });\n        }\n    };\n    /**\n     * Invoke this method to notify mobx that your atom has been used somehow.\n     * Returns true if there is currently a reactive context.\n     */\n    Atom.prototype.reportObserved = function () {\n        return reportObserved(this);\n    };\n    /**\n     * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n     */\n    Atom.prototype.reportChanged = function () {\n        startBatch();\n        propagateChanged(this);\n        endBatch();\n    };\n    Atom.prototype.toString = function () {\n        return this.name;\n    };\n    return Atom;\n}());\nvar isAtom = createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n    if (onBecomeObservedHandler === void 0) { onBecomeObservedHandler = noop; }\n    if (onBecomeUnobservedHandler === void 0) { onBecomeUnobservedHandler = noop; }\n    var atom = new Atom(name);\n    // default `noop` listener will not initialize the hook Set\n    if (onBecomeObservedHandler !== noop) {\n        onBecomeObserved(atom, onBecomeObservedHandler);\n    }\n    if (onBecomeUnobservedHandler !== noop) {\n        onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n    }\n    return atom;\n}\n\nfunction identityComparer(a, b) {\n    return a === b;\n}\nfunction structuralComparer(a, b) {\n    return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n    return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n    return Object.is(a, b);\n}\nvar comparer = {\n    identity: identityComparer,\n    structural: structuralComparer,\n    default: defaultComparer,\n    shallow: shallowComparer\n};\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nfunction __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nfunction __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\n\nvar mobxDidRunLazyInitializersSymbol = Symbol(\"mobx did run lazy initializers\");\nvar mobxPendingDecorators = Symbol(\"mobx pending decorators\");\nvar enumerableDescriptorCache = {};\nvar nonEnumerableDescriptorCache = {};\nfunction createPropertyInitializerDescriptor(prop, enumerable) {\n    var cache = enumerable ? enumerableDescriptorCache : nonEnumerableDescriptorCache;\n    return (cache[prop] ||\n        (cache[prop] = {\n            configurable: true,\n            enumerable: enumerable,\n            get: function () {\n                initializeInstance(this);\n                return this[prop];\n            },\n            set: function (value) {\n                initializeInstance(this);\n                this[prop] = value;\n            }\n        }));\n}\nfunction initializeInstance(target) {\n    var e_1, _a;\n    if (target[mobxDidRunLazyInitializersSymbol] === true)\n        return;\n    var decorators = target[mobxPendingDecorators];\n    if (decorators) {\n        addHiddenProp(target, mobxDidRunLazyInitializersSymbol, true);\n        // Build property key array from both strings and symbols\n        var keys = __spread(Object.getOwnPropertySymbols(decorators), Object.keys(decorators));\n        try {\n            for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n                var key = keys_1_1.value;\n                var d = decorators[key];\n                d.propertyCreator(target, d.prop, d.descriptor, d.decoratorTarget, d.decoratorArguments);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n    }\n}\nfunction createPropDecorator(propertyInitiallyEnumerable, propertyCreator) {\n    return function decoratorFactory() {\n        var decoratorArguments;\n        var decorator = function decorate(target, prop, descriptor, applyImmediately\n        // This is a special parameter to signal the direct application of a decorator, allow extendObservable to skip the entire type decoration part,\n        // as the instance to apply the decorator to equals the target\n        ) {\n            if (applyImmediately === true) {\n                propertyCreator(target, prop, descriptor, target, decoratorArguments);\n                return null;\n            }\n            if (process.env.NODE_ENV !== \"production\" && !quacksLikeADecorator(arguments))\n                fail(\"This function is a decorator, but it wasn't invoked like a decorator\");\n            if (!Object.prototype.hasOwnProperty.call(target, mobxPendingDecorators)) {\n                var inheritedDecorators = target[mobxPendingDecorators];\n                addHiddenProp(target, mobxPendingDecorators, __assign({}, inheritedDecorators));\n            }\n            target[mobxPendingDecorators][prop] = {\n                prop: prop,\n                propertyCreator: propertyCreator,\n                descriptor: descriptor,\n                decoratorTarget: target,\n                decoratorArguments: decoratorArguments\n            };\n            return createPropertyInitializerDescriptor(prop, propertyInitiallyEnumerable);\n        };\n        if (quacksLikeADecorator(arguments)) {\n            // @decorator\n            decoratorArguments = EMPTY_ARRAY;\n            return decorator.apply(null, arguments);\n        }\n        else {\n            // @decorator(args)\n            decoratorArguments = Array.prototype.slice.call(arguments);\n            return decorator;\n        }\n    };\n}\nfunction quacksLikeADecorator(args) {\n    return (((args.length === 2 || args.length === 3) &&\n        (typeof args[1] === \"string\" || typeof args[1] === \"symbol\")) ||\n        (args.length === 4 && args[3] === true));\n}\n\nfunction deepEnhancer(v, _, name) {\n    // it is an observable already, done\n    if (isObservable(v))\n        return v;\n    // something that can be converted and mutated?\n    if (Array.isArray(v))\n        return observable.array(v, { name: name });\n    if (isPlainObject(v))\n        return observable.object(v, undefined, { name: name });\n    if (isES6Map(v))\n        return observable.map(v, { name: name });\n    if (isES6Set(v))\n        return observable.set(v, { name: name });\n    return v;\n}\nfunction shallowEnhancer(v, _, name) {\n    if (v === undefined || v === null)\n        return v;\n    if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v))\n        return v;\n    if (Array.isArray(v))\n        return observable.array(v, { name: name, deep: false });\n    if (isPlainObject(v))\n        return observable.object(v, undefined, { name: name, deep: false });\n    if (isES6Map(v))\n        return observable.map(v, { name: name, deep: false });\n    if (isES6Set(v))\n        return observable.set(v, { name: name, deep: false });\n    return fail(process.env.NODE_ENV !== \"production\" &&\n        \"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n}\nfunction referenceEnhancer(newValue) {\n    // never turn into an observable\n    return newValue;\n}\nfunction refStructEnhancer(v, oldValue, name) {\n    if (process.env.NODE_ENV !== \"production\" && isObservable(v))\n        throw \"observable.struct should not be used with observable values\";\n    if (deepEqual(v, oldValue))\n        return oldValue;\n    return v;\n}\n\nfunction createDecoratorForEnhancer(enhancer) {\n    invariant(enhancer);\n    var decorator = createPropDecorator(true, function (target, propertyName, descriptor, _decoratorTarget, decoratorArgs) {\n        if (process.env.NODE_ENV !== \"production\") {\n            invariant(!descriptor || !descriptor.get, \"@observable cannot be used on getter (property \\\"\" + stringifyKey(propertyName) + \"\\\"), use @computed instead.\");\n        }\n        var initialValue = descriptor\n            ? descriptor.initializer\n                ? descriptor.initializer.call(target)\n                : descriptor.value\n            : undefined;\n        asObservableObject(target).addObservableProp(propertyName, initialValue, enhancer);\n    });\n    var res = \n    // Extra process checks, as this happens during module initialization\n    typeof process !== \"undefined\" && process.env && process.env.NODE_ENV !== \"production\"\n        ? function observableDecorator() {\n            // This wrapper function is just to detect illegal decorator invocations, deprecate in a next version\n            // and simply return the created prop decorator\n            if (arguments.length < 2)\n                return fail(\"Incorrect decorator invocation. @observable decorator doesn't expect any arguments\");\n            return decorator.apply(null, arguments);\n        }\n        : decorator;\n    res.enhancer = enhancer;\n    return res;\n}\n\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n    deep: true,\n    name: undefined,\n    defaultDecorator: undefined,\n    proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction assertValidOption(key) {\n    if (!/^(deep|name|equals|defaultDecorator|proxy)$/.test(key))\n        fail(\"invalid option for (extend)observable: \" + key);\n}\nfunction asCreateObservableOptions(thing) {\n    if (thing === null || thing === undefined)\n        return defaultCreateObservableOptions;\n    if (typeof thing === \"string\")\n        return { name: thing, deep: true, proxy: true };\n    if (process.env.NODE_ENV !== \"production\") {\n        if (typeof thing !== \"object\")\n            return fail(\"expected options object\");\n        Object.keys(thing).forEach(assertValidOption);\n    }\n    return thing;\n}\nvar deepDecorator = createDecoratorForEnhancer(deepEnhancer);\nvar shallowDecorator = createDecoratorForEnhancer(shallowEnhancer);\nvar refDecorator = createDecoratorForEnhancer(referenceEnhancer);\nvar refStructDecorator = createDecoratorForEnhancer(refStructEnhancer);\nfunction getEnhancerFromOptions(options) {\n    return options.defaultDecorator\n        ? options.defaultDecorator.enhancer\n        : options.deep === false\n            ? referenceEnhancer\n            : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n    // @observable someProp;\n    if (typeof arguments[1] === \"string\" || typeof arguments[1] === \"symbol\") {\n        return deepDecorator.apply(null, arguments);\n    }\n    // it is an observable already, done\n    if (isObservable(v))\n        return v;\n    // something that can be converted and mutated?\n    var res = isPlainObject(v)\n        ? observable.object(v, arg2, arg3)\n        : Array.isArray(v)\n            ? observable.array(v, arg2)\n            : isES6Map(v)\n                ? observable.map(v, arg2)\n                : isES6Set(v)\n                    ? observable.set(v, arg2)\n                    : v;\n    // this value could be converted to a new observable data structure, return it\n    if (res !== v)\n        return res;\n    // otherwise, just box it\n    fail(process.env.NODE_ENV !== \"production\" &&\n        \"The provided value could not be converted into an observable. If you want just create an observable reference to the object use 'observable.box(value)'\");\n}\nvar observableFactories = {\n    box: function (value, options) {\n        if (arguments.length > 2)\n            incorrectlyUsedAsDecorator(\"box\");\n        var o = asCreateObservableOptions(options);\n        return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n    },\n    array: function (initialValues, options) {\n        if (arguments.length > 2)\n            incorrectlyUsedAsDecorator(\"array\");\n        var o = asCreateObservableOptions(options);\n        return createObservableArray(initialValues, getEnhancerFromOptions(o), o.name);\n    },\n    map: function (initialValues, options) {\n        if (arguments.length > 2)\n            incorrectlyUsedAsDecorator(\"map\");\n        var o = asCreateObservableOptions(options);\n        return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n    },\n    set: function (initialValues, options) {\n        if (arguments.length > 2)\n            incorrectlyUsedAsDecorator(\"set\");\n        var o = asCreateObservableOptions(options);\n        return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n    },\n    object: function (props, decorators, options) {\n        if (typeof arguments[1] === \"string\")\n            incorrectlyUsedAsDecorator(\"object\");\n        var o = asCreateObservableOptions(options);\n        if (o.proxy === false) {\n            return extendObservable({}, props, decorators, o);\n        }\n        else {\n            var defaultDecorator = getDefaultDecoratorFromObjectOptions(o);\n            var base = extendObservable({}, undefined, undefined, o);\n            var proxy = createDynamicObservableObject(base);\n            extendObservableObjectWithProperties(proxy, props, decorators, defaultDecorator);\n            return proxy;\n        }\n    },\n    ref: refDecorator,\n    shallow: shallowDecorator,\n    deep: deepDecorator,\n    struct: refStructDecorator\n};\nvar observable = createObservable;\n// weird trick to keep our typings nicely with our funcs, and still extend the observable function\nObject.keys(observableFactories).forEach(function (name) { return (observable[name] = observableFactories[name]); });\nfunction incorrectlyUsedAsDecorator(methodName) {\n    fail(\n    // process.env.NODE_ENV !== \"production\" &&\n    \"Expected one or two arguments to observable.\" + methodName + \". Did you accidentally try to use observable.\" + methodName + \" as decorator?\");\n}\n\nvar computedDecorator = createPropDecorator(false, function (instance, propertyName, descriptor, decoratorTarget, decoratorArgs) {\n    if (process.env.NODE_ENV !== \"production\") {\n        invariant(descriptor && descriptor.get, \"Trying to declare a computed value for unspecified getter '\" + stringifyKey(propertyName) + \"'\");\n    }\n    var get = descriptor.get, set = descriptor.set; // initialValue is the descriptor for get / set props\n    // Optimization: faster on decorator target or instance? Assuming target\n    // Optimization: find out if declaring on instance isn't just faster. (also makes the property descriptor simpler). But, more memory usage..\n    // Forcing instance now, fixes hot reloadig issues on React Native:\n    var options = decoratorArgs[0] || {};\n    asObservableObject(instance).addComputedProp(instance, propertyName, __assign({ get: get,\n        set: set, context: instance }, options));\n});\nvar computedStructDecorator = computedDecorator({ equals: comparer.structural });\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2, arg3) {\n    if (typeof arg2 === \"string\") {\n        // @computed\n        return computedDecorator.apply(null, arguments);\n    }\n    if (arg1 !== null && typeof arg1 === \"object\" && arguments.length === 1) {\n        // @computed({ options })\n        return computedDecorator.apply(null, arguments);\n    }\n    // computed(expr, options?)\n    if (process.env.NODE_ENV !== \"production\") {\n        invariant(typeof arg1 === \"function\", \"First argument to `computed` should be an expression.\");\n        invariant(arguments.length < 3, \"Computed takes one or two arguments if used as function\");\n    }\n    var opts = typeof arg2 === \"object\" ? arg2 : {};\n    opts.get = arg1;\n    opts.set = typeof arg2 === \"function\" ? arg2 : opts.set;\n    opts.name = opts.name || arg1.name || \"\"; /* for generated name */\n    return new ComputedValue(opts);\n};\ncomputed.struct = computedStructDecorator;\n\nvar IDerivationState;\n(function (IDerivationState) {\n    // before being run or (outside batch and not being observed)\n    // at this point derivation is not holding any data about dependency tree\n    IDerivationState[IDerivationState[\"NOT_TRACKING\"] = -1] = \"NOT_TRACKING\";\n    // no shallow dependency changed since last computation\n    // won't recalculate derivation\n    // this is what makes mobx fast\n    IDerivationState[IDerivationState[\"UP_TO_DATE\"] = 0] = \"UP_TO_DATE\";\n    // some deep dependency changed, but don't know if shallow dependency changed\n    // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n    // currently only ComputedValue will propagate POSSIBLY_STALE\n    //\n    // having this state is second big optimization:\n    // don't have to recompute on every dependency change, but only when it's needed\n    IDerivationState[IDerivationState[\"POSSIBLY_STALE\"] = 1] = \"POSSIBLY_STALE\";\n    // A shallow dependency has changed since last computation and the derivation\n    // will need to recompute when it's needed next.\n    IDerivationState[IDerivationState[\"STALE\"] = 2] = \"STALE\";\n})(IDerivationState || (IDerivationState = {}));\nvar TraceMode;\n(function (TraceMode) {\n    TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n    TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n    TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = /** @class */ (function () {\n    function CaughtException(cause) {\n        this.cause = cause;\n        // Empty\n    }\n    return CaughtException;\n}());\nfunction isCaughtException(e) {\n    return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n    switch (derivation.dependenciesState) {\n        case IDerivationState.UP_TO_DATE:\n            return false;\n        case IDerivationState.NOT_TRACKING:\n        case IDerivationState.STALE:\n            return true;\n        case IDerivationState.POSSIBLY_STALE: {\n            // state propagation can occur outside of action/reactive context #2195\n            var prevAllowStateReads = allowStateReadsStart(true);\n            var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n            var obs = derivation.observing, l = obs.length;\n            for (var i = 0; i < l; i++) {\n                var obj = obs[i];\n                if (isComputedValue(obj)) {\n                    if (globalState.disableErrorBoundaries) {\n                        obj.get();\n                    }\n                    else {\n                        try {\n                            obj.get();\n                        }\n                        catch (e) {\n                            // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n                            untrackedEnd(prevUntracked);\n                            allowStateReadsEnd(prevAllowStateReads);\n                            return true;\n                        }\n                    }\n                    // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n                    // and `derivation` is an observer of `obj`\n                    // invariantShouldCompute(derivation)\n                    if (derivation.dependenciesState === IDerivationState.STALE) {\n                        untrackedEnd(prevUntracked);\n                        allowStateReadsEnd(prevAllowStateReads);\n                        return true;\n                    }\n                }\n            }\n            changeDependenciesStateTo0(derivation);\n            untrackedEnd(prevUntracked);\n            allowStateReadsEnd(prevAllowStateReads);\n            return false;\n        }\n    }\n}\n// function invariantShouldCompute(derivation: IDerivation) {\n//     const newDepState = (derivation as any).dependenciesState\n//     if (\n//         process.env.NODE_ENV === \"production\" &&\n//         (newDepState === IDerivationState.POSSIBLY_STALE ||\n//             newDepState === IDerivationState.NOT_TRACKING)\n//     )\n//         fail(\"Illegal dependency state\")\n// }\nfunction isComputingDerivation() {\n    return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\nfunction checkIfStateModificationsAreAllowed(atom) {\n    var hasObservers = atom.observers.size > 0;\n    // Should never be possible to change an observed observable from inside computed, see #798\n    if (globalState.computationDepth > 0 && hasObservers)\n        fail(process.env.NODE_ENV !== \"production\" &&\n            \"Computed values are not allowed to cause side effects by changing observables that are already being observed. Tried to modify: \" + atom.name);\n    // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n    if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"strict\"))\n        fail(process.env.NODE_ENV !== \"production\" &&\n            (globalState.enforceActions\n                ? \"Since strict-mode is enabled, changing observed observable values outside actions is not allowed. Please wrap the code in an `action` if this change is intended. Tried to modify: \"\n                : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, the render function of a React component? Tried to modify: \") +\n                atom.name);\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n    if (process.env.NODE_ENV !== \"production\" &&\n        !globalState.allowStateReads &&\n        globalState.observableRequiresReaction) {\n        console.warn(\"[mobx] Observable \" + observable.name + \" being read outside a reactive context\");\n    }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n    var prevAllowStateReads = allowStateReadsStart(true);\n    // pre allocate array allocation + room for variation in deps\n    // array will be trimmed by bindDependencies\n    changeDependenciesStateTo0(derivation);\n    derivation.newObserving = new Array(derivation.observing.length + 100);\n    derivation.unboundDepsCount = 0;\n    derivation.runId = ++globalState.runId;\n    var prevTracking = globalState.trackingDerivation;\n    globalState.trackingDerivation = derivation;\n    var result;\n    if (globalState.disableErrorBoundaries === true) {\n        result = f.call(context);\n    }\n    else {\n        try {\n            result = f.call(context);\n        }\n        catch (e) {\n            result = new CaughtException(e);\n        }\n    }\n    globalState.trackingDerivation = prevTracking;\n    bindDependencies(derivation);\n    warnAboutDerivationWithoutDependencies(derivation);\n    allowStateReadsEnd(prevAllowStateReads);\n    return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n    if (process.env.NODE_ENV === \"production\")\n        return;\n    if (derivation.observing.length !== 0)\n        return;\n    if (globalState.reactionRequiresObservable || derivation.requiresObservable) {\n        console.warn(\"[mobx] Derivation \" + derivation.name + \" is created/updated without reading any observable value\");\n    }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n    // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n    var prevObserving = derivation.observing;\n    var observing = (derivation.observing = derivation.newObserving);\n    var lowestNewObservingDerivationState = IDerivationState.UP_TO_DATE;\n    // Go through all new observables and check diffValue: (this list can contain duplicates):\n    //   0: first occurrence, change to 1 and keep it\n    //   1: extra occurrence, drop it\n    var i0 = 0, l = derivation.unboundDepsCount;\n    for (var i = 0; i < l; i++) {\n        var dep = observing[i];\n        if (dep.diffValue === 0) {\n            dep.diffValue = 1;\n            if (i0 !== i)\n                observing[i0] = dep;\n            i0++;\n        }\n        // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n        // not hitting the condition\n        if (dep.dependenciesState > lowestNewObservingDerivationState) {\n            lowestNewObservingDerivationState = dep.dependenciesState;\n        }\n    }\n    observing.length = i0;\n    derivation.newObserving = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n    // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n    //   0: it's not in new observables, unobserve it\n    //   1: it keeps being observed, don't want to notify it. change to 0\n    l = prevObserving.length;\n    while (l--) {\n        var dep = prevObserving[l];\n        if (dep.diffValue === 0) {\n            removeObserver(dep, derivation);\n        }\n        dep.diffValue = 0;\n    }\n    // Go through all new observables and check diffValue: (now it should be unique)\n    //   0: it was set to 0 in last loop. don't need to do anything.\n    //   1: it wasn't observed, let's observe it. set back to 0\n    while (i0--) {\n        var dep = observing[i0];\n        if (dep.diffValue === 1) {\n            dep.diffValue = 0;\n            addObserver(dep, derivation);\n        }\n    }\n    // Some new observed derivations may become stale during this derivation computation\n    // so they have had no chance to propagate staleness (#916)\n    if (lowestNewObservingDerivationState !== IDerivationState.UP_TO_DATE) {\n        derivation.dependenciesState = lowestNewObservingDerivationState;\n        derivation.onBecomeStale();\n    }\n}\nfunction clearObserving(derivation) {\n    // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n    var obs = derivation.observing;\n    derivation.observing = [];\n    var i = obs.length;\n    while (i--)\n        removeObserver(obs[i], derivation);\n    derivation.dependenciesState = IDerivationState.NOT_TRACKING;\n}\nfunction untracked(action) {\n    var prev = untrackedStart();\n    try {\n        return action();\n    }\n    finally {\n        untrackedEnd(prev);\n    }\n}\nfunction untrackedStart() {\n    var prev = globalState.trackingDerivation;\n    globalState.trackingDerivation = null;\n    return prev;\n}\nfunction untrackedEnd(prev) {\n    globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n    var prev = globalState.allowStateReads;\n    globalState.allowStateReads = allowStateReads;\n    return prev;\n}\nfunction allowStateReadsEnd(prev) {\n    globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n    if (derivation.dependenciesState === IDerivationState.UP_TO_DATE)\n        return;\n    derivation.dependenciesState = IDerivationState.UP_TO_DATE;\n    var obs = derivation.observing;\n    var i = obs.length;\n    while (i--)\n        obs[i].lowestObserverState = IDerivationState.UP_TO_DATE;\n}\n\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar functionNameDescriptor = Object.getOwnPropertyDescriptor(function () { }, \"name\");\nvar isFunctionNameConfigurable = functionNameDescriptor && functionNameDescriptor.configurable;\nfunction createAction(actionName, fn, ref) {\n    if (process.env.NODE_ENV !== \"production\") {\n        invariant(typeof fn === \"function\", \"`action` can only be invoked on functions\");\n        if (typeof actionName !== \"string\" || !actionName)\n            fail(\"actions should have valid names, got: '\" + actionName + \"'\");\n    }\n    var res = function () {\n        return executeAction(actionName, fn, ref || this, arguments);\n    };\n    res.isMobxAction = true;\n    if (process.env.NODE_ENV !== \"production\") {\n        if (isFunctionNameConfigurable) {\n            Object.defineProperty(res, \"name\", { value: actionName });\n        }\n    }\n    return res;\n}\nfunction executeAction(actionName, fn, scope, args) {\n    var runInfo = _startAction(actionName, scope, args);\n    try {\n        return fn.apply(scope, args);\n    }\n    catch (err) {\n        runInfo.error = err;\n        throw err;\n    }\n    finally {\n        _endAction(runInfo);\n    }\n}\nfunction _startAction(actionName, scope, args) {\n    var notifySpy = isSpyEnabled() && !!actionName;\n    var startTime = 0;\n    if (notifySpy && process.env.NODE_ENV !== \"production\") {\n        startTime = Date.now();\n        var l = (args && args.length) || 0;\n        var flattendArgs = new Array(l);\n        if (l > 0)\n            for (var i = 0; i < l; i++)\n                flattendArgs[i] = args[i];\n        spyReportStart({\n            type: \"action\",\n            name: actionName,\n            object: scope,\n            arguments: flattendArgs\n        });\n    }\n    var prevDerivation = untrackedStart();\n    startBatch();\n    var prevAllowStateChanges = allowStateChangesStart(true);\n    var prevAllowStateReads = allowStateReadsStart(true);\n    var runInfo = {\n        prevDerivation: prevDerivation,\n        prevAllowStateChanges: prevAllowStateChanges,\n        prevAllowStateReads: prevAllowStateReads,\n        notifySpy: notifySpy,\n        startTime: startTime,\n        actionId: nextActionId++,\n        parentActionId: currentActionId\n    };\n    currentActionId = runInfo.actionId;\n    return runInfo;\n}\nfunction _endAction(runInfo) {\n    if (currentActionId !== runInfo.actionId) {\n        fail(\"invalid action stack. did you forget to finish an action?\");\n    }\n    currentActionId = runInfo.parentActionId;\n    if (runInfo.error !== undefined) {\n        globalState.suppressReactionErrors = true;\n    }\n    allowStateChangesEnd(runInfo.prevAllowStateChanges);\n    allowStateReadsEnd(runInfo.prevAllowStateReads);\n    endBatch();\n    untrackedEnd(runInfo.prevDerivation);\n    if (runInfo.notifySpy && process.env.NODE_ENV !== \"production\") {\n        spyReportEnd({ time: Date.now() - runInfo.startTime });\n    }\n    globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n    var prev = allowStateChangesStart(allowStateChanges);\n    var res;\n    try {\n        res = func();\n    }\n    finally {\n        allowStateChangesEnd(prev);\n    }\n    return res;\n}\nfunction allowStateChangesStart(allowStateChanges) {\n    var prev = globalState.allowStateChanges;\n    globalState.allowStateChanges = allowStateChanges;\n    return prev;\n}\nfunction allowStateChangesEnd(prev) {\n    globalState.allowStateChanges = prev;\n}\nfunction allowStateChangesInsideComputed(func) {\n    var prev = globalState.computationDepth;\n    globalState.computationDepth = 0;\n    var res;\n    try {\n        res = func();\n    }\n    finally {\n        globalState.computationDepth = prev;\n    }\n    return res;\n}\n\nvar ObservableValue = /** @class */ (function (_super) {\n    __extends(ObservableValue, _super);\n    function ObservableValue(value, enhancer, name, notifySpy, equals) {\n        if (name === void 0) { name = \"ObservableValue@\" + getNextId(); }\n        if (notifySpy === void 0) { notifySpy = true; }\n        if (equals === void 0) { equals = comparer.default; }\n        var _this = _super.call(this, name) || this;\n        _this.enhancer = enhancer;\n        _this.name = name;\n        _this.equals = equals;\n        _this.hasUnreportedChange = false;\n        _this.value = enhancer(value, undefined, name);\n        if (notifySpy && isSpyEnabled() && process.env.NODE_ENV !== \"production\") {\n            // only notify spy if this is a stand-alone observable\n            spyReport({ type: \"create\", name: _this.name, newValue: \"\" + _this.value });\n        }\n        return _this;\n    }\n    ObservableValue.prototype.dehanceValue = function (value) {\n        if (this.dehancer !== undefined)\n            return this.dehancer(value);\n        return value;\n    };\n    ObservableValue.prototype.set = function (newValue) {\n        var oldValue = this.value;\n        newValue = this.prepareNewValue(newValue);\n        if (newValue !== globalState.UNCHANGED) {\n            var notifySpy = isSpyEnabled();\n            if (notifySpy && process.env.NODE_ENV !== \"production\") {\n                spyReportStart({\n                    type: \"update\",\n                    name: this.name,\n                    newValue: newValue,\n                    oldValue: oldValue\n                });\n            }\n            this.setNewValue(newValue);\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportEnd();\n        }\n    };\n    ObservableValue.prototype.prepareNewValue = function (newValue) {\n        checkIfStateModificationsAreAllowed(this);\n        if (hasInterceptors(this)) {\n            var change = interceptChange(this, {\n                object: this,\n                type: \"update\",\n                newValue: newValue\n            });\n            if (!change)\n                return globalState.UNCHANGED;\n            newValue = change.newValue;\n        }\n        // apply modifier\n        newValue = this.enhancer(newValue, this.value, this.name);\n        return this.equals(this.value, newValue) ? globalState.UNCHANGED : newValue;\n    };\n    ObservableValue.prototype.setNewValue = function (newValue) {\n        var oldValue = this.value;\n        this.value = newValue;\n        this.reportChanged();\n        if (hasListeners(this)) {\n            notifyListeners(this, {\n                type: \"update\",\n                object: this,\n                newValue: newValue,\n                oldValue: oldValue\n            });\n        }\n    };\n    ObservableValue.prototype.get = function () {\n        this.reportObserved();\n        return this.dehanceValue(this.value);\n    };\n    ObservableValue.prototype.intercept = function (handler) {\n        return registerInterceptor(this, handler);\n    };\n    ObservableValue.prototype.observe = function (listener, fireImmediately) {\n        if (fireImmediately)\n            listener({\n                object: this,\n                type: \"update\",\n                newValue: this.value,\n                oldValue: undefined\n            });\n        return registerListener(this, listener);\n    };\n    ObservableValue.prototype.toJSON = function () {\n        return this.get();\n    };\n    ObservableValue.prototype.toString = function () {\n        return this.name + \"[\" + this.value + \"]\";\n    };\n    ObservableValue.prototype.valueOf = function () {\n        return toPrimitive(this.get());\n    };\n    ObservableValue.prototype[Symbol.toPrimitive] = function () {\n        return this.valueOf();\n    };\n    return ObservableValue;\n}(Atom));\nvar isObservableValue = createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n *    give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n *    if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n *    go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\nvar ComputedValue = /** @class */ (function () {\n    /**\n     * Create a new computed value based on a function expression.\n     *\n     * The `name` property is for debug purposes only.\n     *\n     * The `equals` property specifies the comparer function to use to determine if a newly produced\n     * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n     * compares based on identity comparison (===), and `structualComparer` deeply compares the structure.\n     * Structural comparison can be convenient if you always produce a new aggregated object and\n     * don't want to notify observers if it is structurally the same.\n     * This is useful for working with vectors, mouse coordinates etc.\n     */\n    function ComputedValue(options) {\n        this.dependenciesState = IDerivationState.NOT_TRACKING;\n        this.observing = []; // nodes we are looking at. Our value depends on these nodes\n        this.newObserving = null; // during tracking it's an array with new observed observers\n        this.isBeingObserved = false;\n        this.isPendingUnobservation = false;\n        this.observers = new Set();\n        this.diffValue = 0;\n        this.runId = 0;\n        this.lastAccessedBy = 0;\n        this.lowestObserverState = IDerivationState.UP_TO_DATE;\n        this.unboundDepsCount = 0;\n        this.__mapid = \"#\" + getNextId();\n        this.value = new CaughtException(null);\n        this.isComputing = false; // to check for cycles\n        this.isRunningSetter = false;\n        this.isTracing = TraceMode.NONE;\n        invariant(options.get, \"missing option for computed: get\");\n        this.derivation = options.get;\n        this.name = options.name || \"ComputedValue@\" + getNextId();\n        if (options.set)\n            this.setter = createAction(this.name + \"-setter\", options.set);\n        this.equals =\n            options.equals ||\n                (options.compareStructural || options.struct\n                    ? comparer.structural\n                    : comparer.default);\n        this.scope = options.context;\n        this.requiresReaction = !!options.requiresReaction;\n        this.keepAlive = !!options.keepAlive;\n    }\n    ComputedValue.prototype.onBecomeStale = function () {\n        propagateMaybeChanged(this);\n    };\n    ComputedValue.prototype.onBecomeObserved = function () {\n        if (this.onBecomeObservedListeners) {\n            this.onBecomeObservedListeners.forEach(function (listener) { return listener(); });\n        }\n    };\n    ComputedValue.prototype.onBecomeUnobserved = function () {\n        if (this.onBecomeUnobservedListeners) {\n            this.onBecomeUnobservedListeners.forEach(function (listener) { return listener(); });\n        }\n    };\n    /**\n     * Returns the current value of this computed value.\n     * Will evaluate its computation first if needed.\n     */\n    ComputedValue.prototype.get = function () {\n        if (this.isComputing)\n            fail(\"Cycle detected in computation \" + this.name + \": \" + this.derivation);\n        if (globalState.inBatch === 0 && this.observers.size === 0 && !this.keepAlive) {\n            if (shouldCompute(this)) {\n                this.warnAboutUntrackedRead();\n                startBatch(); // See perf test 'computed memoization'\n                this.value = this.computeValue(false);\n                endBatch();\n            }\n        }\n        else {\n            reportObserved(this);\n            if (shouldCompute(this))\n                if (this.trackAndCompute())\n                    propagateChangeConfirmed(this);\n        }\n        var result = this.value;\n        if (isCaughtException(result))\n            throw result.cause;\n        return result;\n    };\n    ComputedValue.prototype.peek = function () {\n        var res = this.computeValue(false);\n        if (isCaughtException(res))\n            throw res.cause;\n        return res;\n    };\n    ComputedValue.prototype.set = function (value) {\n        if (this.setter) {\n            invariant(!this.isRunningSetter, \"The setter of computed value '\" + this.name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\");\n            this.isRunningSetter = true;\n            try {\n                this.setter.call(this.scope, value);\n            }\n            finally {\n                this.isRunningSetter = false;\n            }\n        }\n        else\n            invariant(false, process.env.NODE_ENV !== \"production\" &&\n                \"[ComputedValue '\" + this.name + \"'] It is not possible to assign a new value to a computed value.\");\n    };\n    ComputedValue.prototype.trackAndCompute = function () {\n        if (isSpyEnabled() && process.env.NODE_ENV !== \"production\") {\n            spyReport({\n                object: this.scope,\n                type: \"compute\",\n                name: this.name\n            });\n        }\n        var oldValue = this.value;\n        var wasSuspended = \n        /* see #1208 */ this.dependenciesState === IDerivationState.NOT_TRACKING;\n        var newValue = this.computeValue(true);\n        var changed = wasSuspended ||\n            isCaughtException(oldValue) ||\n            isCaughtException(newValue) ||\n            !this.equals(oldValue, newValue);\n        if (changed) {\n            this.value = newValue;\n        }\n        return changed;\n    };\n    ComputedValue.prototype.computeValue = function (track) {\n        this.isComputing = true;\n        globalState.computationDepth++;\n        var res;\n        if (track) {\n            res = trackDerivedFunction(this, this.derivation, this.scope);\n        }\n        else {\n            if (globalState.disableErrorBoundaries === true) {\n                res = this.derivation.call(this.scope);\n            }\n            else {\n                try {\n                    res = this.derivation.call(this.scope);\n                }\n                catch (e) {\n                    res = new CaughtException(e);\n                }\n            }\n        }\n        globalState.computationDepth--;\n        this.isComputing = false;\n        return res;\n    };\n    ComputedValue.prototype.suspend = function () {\n        if (!this.keepAlive) {\n            clearObserving(this);\n            this.value = undefined; // don't hold on to computed value!\n        }\n    };\n    ComputedValue.prototype.observe = function (listener, fireImmediately) {\n        var _this = this;\n        var firstTime = true;\n        var prevValue = undefined;\n        return autorun(function () {\n            var newValue = _this.get();\n            if (!firstTime || fireImmediately) {\n                var prevU = untrackedStart();\n                listener({\n                    type: \"update\",\n                    object: _this,\n                    newValue: newValue,\n                    oldValue: prevValue\n                });\n                untrackedEnd(prevU);\n            }\n            firstTime = false;\n            prevValue = newValue;\n        });\n    };\n    ComputedValue.prototype.warnAboutUntrackedRead = function () {\n        if (process.env.NODE_ENV === \"production\")\n            return;\n        if (this.requiresReaction === true) {\n            fail(\"[mobx] Computed value \" + this.name + \" is read outside a reactive context\");\n        }\n        if (this.isTracing !== TraceMode.NONE) {\n            console.log(\"[mobx.trace] '\" + this.name + \"' is being read outside a reactive context. Doing a full recompute\");\n        }\n        if (globalState.computedRequiresReaction) {\n            console.warn(\"[mobx] Computed value \" + this.name + \" is being read outside a reactive context. Doing a full recompute\");\n        }\n    };\n    ComputedValue.prototype.toJSON = function () {\n        return this.get();\n    };\n    ComputedValue.prototype.toString = function () {\n        return this.name + \"[\" + this.derivation.toString() + \"]\";\n    };\n    ComputedValue.prototype.valueOf = function () {\n        return toPrimitive(this.get());\n    };\n    ComputedValue.prototype[Symbol.toPrimitive] = function () {\n        return this.valueOf();\n    };\n    return ComputedValue;\n}());\nvar isComputedValue = createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\n    \"mobxGuid\",\n    \"spyListeners\",\n    \"enforceActions\",\n    \"computedRequiresReaction\",\n    \"reactionRequiresObservable\",\n    \"observableRequiresReaction\",\n    \"allowStateReads\",\n    \"disableErrorBoundaries\",\n    \"runId\",\n    \"UNCHANGED\"\n];\nvar MobXGlobals = /** @class */ (function () {\n    function MobXGlobals() {\n        /**\n         * MobXGlobals version.\n         * MobX compatiblity with other versions loaded in memory as long as this version matches.\n         * It indicates that the global state still stores similar information\n         *\n         * N.B: this version is unrelated to the package version of MobX, and is only the version of the\n         * internal state storage of MobX, and can be the same across many different package versions\n         */\n        this.version = 5;\n        /**\n         * globally unique token to signal unchanged\n         */\n        this.UNCHANGED = {};\n        /**\n         * Currently running derivation\n         */\n        this.trackingDerivation = null;\n        /**\n         * Are we running a computation currently? (not a reaction)\n         */\n        this.computationDepth = 0;\n        /**\n         * Each time a derivation is tracked, it is assigned a unique run-id\n         */\n        this.runId = 0;\n        /**\n         * 'guid' for general purpose. Will be persisted amongst resets.\n         */\n        this.mobxGuid = 0;\n        /**\n         * Are we in a batch block? (and how many of them)\n         */\n        this.inBatch = 0;\n        /**\n         * Observables that don't have observers anymore, and are about to be\n         * suspended, unless somebody else accesses it in the same batch\n         *\n         * @type {IObservable[]}\n         */\n        this.pendingUnobservations = [];\n        /**\n         * List of scheduled, not yet executed, reactions.\n         */\n        this.pendingReactions = [];\n        /**\n         * Are we currently processing reactions?\n         */\n        this.isRunningReactions = false;\n        /**\n         * Is it allowed to change observables at this point?\n         * In general, MobX doesn't allow that when running computations and React.render.\n         * To ensure that those functions stay pure.\n         */\n        this.allowStateChanges = true;\n        /**\n         * Is it allowed to read observables at this point?\n         * Used to hold the state needed for `observableRequiresReaction`\n         */\n        this.allowStateReads = true;\n        /**\n         * If strict mode is enabled, state changes are by default not allowed\n         */\n        this.enforceActions = false;\n        /**\n         * Spy callbacks\n         */\n        this.spyListeners = [];\n        /**\n         * Globally attached error handlers that react specifically to errors in reactions\n         */\n        this.globalReactionErrorHandlers = [];\n        /**\n         * Warn if computed values are accessed outside a reactive context\n         */\n        this.computedRequiresReaction = false;\n        /**\n         * (Experimental)\n         * Warn if you try to create to derivation / reactive context without accessing any observable.\n         */\n        this.reactionRequiresObservable = false;\n        /**\n         * (Experimental)\n         * Warn if observables are accessed outside a reactive context\n         */\n        this.observableRequiresReaction = false;\n        /**\n         * Allows overwriting of computed properties, useful in tests but not prod as it can cause\n         * memory leaks. See https://github.com/mobxjs/mobx/issues/1867\n         */\n        this.computedConfigurable = false;\n        /*\n         * Don't catch and rethrow exceptions. This is useful for inspecting the state of\n         * the stack when an exception occurs while debugging.\n         */\n        this.disableErrorBoundaries = false;\n        /*\n         * If true, we are already handling an exception in an action. Any errors in reactions should be suppressed, as\n         * they are not the cause, see: https://github.com/mobxjs/mobx/issues/1836\n         */\n        this.suppressReactionErrors = false;\n    }\n    return MobXGlobals;\n}());\nvar mockGlobal = {};\nfunction getGlobal() {\n    if (typeof window !== \"undefined\") {\n        return window;\n    }\n    if (typeof global !== \"undefined\") {\n        return global;\n    }\n    if (typeof self !== \"undefined\") {\n        return self;\n    }\n    return mockGlobal;\n}\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = (function () {\n    var global = getGlobal();\n    if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals)\n        canMergeGlobalState = false;\n    if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version)\n        canMergeGlobalState = false;\n    if (!canMergeGlobalState) {\n        setTimeout(function () {\n            if (!isolateCalled) {\n                fail(\"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\");\n            }\n        }, 1);\n        return new MobXGlobals();\n    }\n    else if (global.__mobxGlobals) {\n        global.__mobxInstanceCount += 1;\n        if (!global.__mobxGlobals.UNCHANGED)\n            global.__mobxGlobals.UNCHANGED = {}; // make merge backward compatible\n        return global.__mobxGlobals;\n    }\n    else {\n        global.__mobxInstanceCount = 1;\n        return (global.__mobxGlobals = new MobXGlobals());\n    }\n})();\nfunction isolateGlobalState() {\n    if (globalState.pendingReactions.length ||\n        globalState.inBatch ||\n        globalState.isRunningReactions)\n        fail(\"isolateGlobalState should be called before MobX is running any reactions\");\n    isolateCalled = true;\n    if (canMergeGlobalState) {\n        if (--getGlobal().__mobxInstanceCount === 0)\n            getGlobal().__mobxGlobals = undefined;\n        globalState = new MobXGlobals();\n    }\n}\nfunction getGlobalState() {\n    return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n    var defaultGlobals = new MobXGlobals();\n    for (var key in defaultGlobals)\n        if (persistentKeys.indexOf(key) === -1)\n            globalState[key] = defaultGlobals[key];\n    globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n    return observable.observers && observable.observers.size > 0;\n}\nfunction getObservers(observable) {\n    return observable.observers;\n}\n// function invariantObservers(observable: IObservable) {\n//     const list = observable.observers\n//     const map = observable.observersIndexes\n//     const l = list.length\n//     for (let i = 0; i < l; i++) {\n//         const id = list[i].__mapid\n//         if (i) {\n//             invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n//         } else {\n//             invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n//         }\n//     }\n//     invariant(\n//         list.length === 0 || Object.keys(map).length === list.length - 1,\n//         \"INTERNAL ERROR there is no junk in map\"\n//     )\n// }\nfunction addObserver(observable, node) {\n    // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n    // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n    // invariantObservers(observable);\n    observable.observers.add(node);\n    if (observable.lowestObserverState > node.dependenciesState)\n        observable.lowestObserverState = node.dependenciesState;\n    // invariantObservers(observable);\n    // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\nfunction removeObserver(observable, node) {\n    // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n    // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n    // invariantObservers(observable);\n    observable.observers.delete(node);\n    if (observable.observers.size === 0) {\n        // deleting last observer\n        queueForUnobservation(observable);\n    }\n    // invariantObservers(observable);\n    // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\nfunction queueForUnobservation(observable) {\n    if (observable.isPendingUnobservation === false) {\n        // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n        observable.isPendingUnobservation = true;\n        globalState.pendingUnobservations.push(observable);\n    }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n    globalState.inBatch++;\n}\nfunction endBatch() {\n    if (--globalState.inBatch === 0) {\n        runReactions();\n        // the batch is actually about to finish, all unobserving should happen here.\n        var list = globalState.pendingUnobservations;\n        for (var i = 0; i < list.length; i++) {\n            var observable = list[i];\n            observable.isPendingUnobservation = false;\n            if (observable.observers.size === 0) {\n                if (observable.isBeingObserved) {\n                    // if this observable had reactive observers, trigger the hooks\n                    observable.isBeingObserved = false;\n                    observable.onBecomeUnobserved();\n                }\n                if (observable instanceof ComputedValue) {\n                    // computed values are automatically teared down when the last observer leaves\n                    // this process happens recursively, this computed might be the last observable of another, etc..\n                    observable.suspend();\n                }\n            }\n        }\n        globalState.pendingUnobservations = [];\n    }\n}\nfunction reportObserved(observable) {\n    checkIfStateReadsAreAllowed(observable);\n    var derivation = globalState.trackingDerivation;\n    if (derivation !== null) {\n        /**\n         * Simple optimization, give each derivation run an unique id (runId)\n         * Check if last time this observable was accessed the same runId is used\n         * if this is the case, the relation is already known\n         */\n        if (derivation.runId !== observable.lastAccessedBy) {\n            observable.lastAccessedBy = derivation.runId;\n            // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n            derivation.newObserving[derivation.unboundDepsCount++] = observable;\n            if (!observable.isBeingObserved) {\n                observable.isBeingObserved = true;\n                observable.onBecomeObserved();\n            }\n        }\n        return true;\n    }\n    else if (observable.observers.size === 0 && globalState.inBatch > 0) {\n        queueForUnobservation(observable);\n    }\n    return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n//     // it's expensive so better not run it in produciton. but temporarily helpful for testing\n//     const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n//     if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n//     throw new Error(\n//         \"lowestObserverState is wrong for \" +\n//             msg +\n//             \" because \" +\n//             min +\n//             \" < \" +\n//             observable.lowestObserverState\n//     )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n    // invariantLOS(observable, \"changed start\");\n    if (observable.lowestObserverState === IDerivationState.STALE)\n        return;\n    observable.lowestObserverState = IDerivationState.STALE;\n    // Ideally we use for..of here, but the downcompiled version is really slow...\n    observable.observers.forEach(function (d) {\n        if (d.dependenciesState === IDerivationState.UP_TO_DATE) {\n            if (d.isTracing !== TraceMode.NONE) {\n                logTraceInfo(d, observable);\n            }\n            d.onBecomeStale();\n        }\n        d.dependenciesState = IDerivationState.STALE;\n    });\n    // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n    // invariantLOS(observable, \"confirmed start\");\n    if (observable.lowestObserverState === IDerivationState.STALE)\n        return;\n    observable.lowestObserverState = IDerivationState.STALE;\n    observable.observers.forEach(function (d) {\n        if (d.dependenciesState === IDerivationState.POSSIBLY_STALE)\n            d.dependenciesState = IDerivationState.STALE;\n        else if (d.dependenciesState === IDerivationState.UP_TO_DATE // this happens during computing of `d`, just keep lowestObserverState up to date.\n        )\n            observable.lowestObserverState = IDerivationState.UP_TO_DATE;\n    });\n    // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n    // invariantLOS(observable, \"maybe start\");\n    if (observable.lowestObserverState !== IDerivationState.UP_TO_DATE)\n        return;\n    observable.lowestObserverState = IDerivationState.POSSIBLY_STALE;\n    observable.observers.forEach(function (d) {\n        if (d.dependenciesState === IDerivationState.UP_TO_DATE) {\n            d.dependenciesState = IDerivationState.POSSIBLY_STALE;\n            if (d.isTracing !== TraceMode.NONE) {\n                logTraceInfo(d, observable);\n            }\n            d.onBecomeStale();\n        }\n    });\n    // invariantLOS(observable, \"maybe end\");\n}\nfunction logTraceInfo(derivation, observable) {\n    console.log(\"[mobx.trace] '\" + derivation.name + \"' is invalidated due to a change in: '\" + observable.name + \"'\");\n    if (derivation.isTracing === TraceMode.BREAK) {\n        var lines = [];\n        printDepTree(getDependencyTree(derivation), lines, 1);\n        // prettier-ignore\n        new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name + \"' is being traced and '\" + observable.name + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n    \")();\n    }\n}\nfunction printDepTree(tree, lines, depth) {\n    if (lines.length >= 1000) {\n        lines.push(\"(and many more)\");\n        return;\n    }\n    lines.push(\"\" + new Array(depth).join(\"\\t\") + tree.name); // MWE: not the fastest, but the easiest way :)\n    if (tree.dependencies)\n        tree.dependencies.forEach(function (child) { return printDepTree(child, lines, depth + 1); });\n}\n\nvar Reaction = /** @class */ (function () {\n    function Reaction(name, onInvalidate, errorHandler, requiresObservable) {\n        if (name === void 0) { name = \"Reaction@\" + getNextId(); }\n        if (requiresObservable === void 0) { requiresObservable = false; }\n        this.name = name;\n        this.onInvalidate = onInvalidate;\n        this.errorHandler = errorHandler;\n        this.requiresObservable = requiresObservable;\n        this.observing = []; // nodes we are looking at. Our value depends on these nodes\n        this.newObserving = [];\n        this.dependenciesState = IDerivationState.NOT_TRACKING;\n        this.diffValue = 0;\n        this.runId = 0;\n        this.unboundDepsCount = 0;\n        this.__mapid = \"#\" + getNextId();\n        this.isDisposed = false;\n        this._isScheduled = false;\n        this._isTrackPending = false;\n        this._isRunning = false;\n        this.isTracing = TraceMode.NONE;\n    }\n    Reaction.prototype.onBecomeStale = function () {\n        this.schedule();\n    };\n    Reaction.prototype.schedule = function () {\n        if (!this._isScheduled) {\n            this._isScheduled = true;\n            globalState.pendingReactions.push(this);\n            runReactions();\n        }\n    };\n    Reaction.prototype.isScheduled = function () {\n        return this._isScheduled;\n    };\n    /**\n     * internal, use schedule() if you intend to kick off a reaction\n     */\n    Reaction.prototype.runReaction = function () {\n        if (!this.isDisposed) {\n            startBatch();\n            this._isScheduled = false;\n            if (shouldCompute(this)) {\n                this._isTrackPending = true;\n                try {\n                    this.onInvalidate();\n                    if (this._isTrackPending &&\n                        isSpyEnabled() &&\n                        process.env.NODE_ENV !== \"production\") {\n                        // onInvalidate didn't trigger track right away..\n                        spyReport({\n                            name: this.name,\n                            type: \"scheduled-reaction\"\n                        });\n                    }\n                }\n                catch (e) {\n                    this.reportExceptionInDerivation(e);\n                }\n            }\n            endBatch();\n        }\n    };\n    Reaction.prototype.track = function (fn) {\n        if (this.isDisposed) {\n            return;\n            // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n        }\n        startBatch();\n        var notify = isSpyEnabled();\n        var startTime;\n        if (notify && process.env.NODE_ENV !== \"production\") {\n            startTime = Date.now();\n            spyReportStart({\n                name: this.name,\n                type: \"reaction\"\n            });\n        }\n        this._isRunning = true;\n        var result = trackDerivedFunction(this, fn, undefined);\n        this._isRunning = false;\n        this._isTrackPending = false;\n        if (this.isDisposed) {\n            // disposed during last run. Clean up everything that was bound after the dispose call.\n            clearObserving(this);\n        }\n        if (isCaughtException(result))\n            this.reportExceptionInDerivation(result.cause);\n        if (notify && process.env.NODE_ENV !== \"production\") {\n            spyReportEnd({\n                time: Date.now() - startTime\n            });\n        }\n        endBatch();\n    };\n    Reaction.prototype.reportExceptionInDerivation = function (error) {\n        var _this = this;\n        if (this.errorHandler) {\n            this.errorHandler(error, this);\n            return;\n        }\n        if (globalState.disableErrorBoundaries)\n            throw error;\n        var message = \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\";\n        if (globalState.suppressReactionErrors) {\n            console.warn(\"[mobx] (error in reaction '\" + this.name + \"' suppressed, fix error of causing action below)\"); // prettier-ignore\n        }\n        else {\n            console.error(message, error);\n            /** If debugging brought you here, please, read the above message :-). Tnx! */\n        }\n        if (isSpyEnabled()) {\n            spyReport({\n                type: \"error\",\n                name: this.name,\n                message: message,\n                error: \"\" + error\n            });\n        }\n        globalState.globalReactionErrorHandlers.forEach(function (f) { return f(error, _this); });\n    };\n    Reaction.prototype.dispose = function () {\n        if (!this.isDisposed) {\n            this.isDisposed = true;\n            if (!this._isRunning) {\n                // if disposed while running, clean up later. Maybe not optimal, but rare case\n                startBatch();\n                clearObserving(this);\n                endBatch();\n            }\n        }\n    };\n    Reaction.prototype.getDisposer = function () {\n        var r = this.dispose.bind(this);\n        r[$mobx] = this;\n        return r;\n    };\n    Reaction.prototype.toString = function () {\n        return \"Reaction[\" + this.name + \"]\";\n    };\n    Reaction.prototype.trace = function (enterBreakPoint) {\n        if (enterBreakPoint === void 0) { enterBreakPoint = false; }\n        trace(this, enterBreakPoint);\n    };\n    return Reaction;\n}());\nfunction onReactionError(handler) {\n    globalState.globalReactionErrorHandlers.push(handler);\n    return function () {\n        var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n        if (idx >= 0)\n            globalState.globalReactionErrorHandlers.splice(idx, 1);\n    };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function (f) { return f(); };\nfunction runReactions() {\n    // Trampolining, if runReactions are already running, new reactions will be picked up\n    if (globalState.inBatch > 0 || globalState.isRunningReactions)\n        return;\n    reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n    globalState.isRunningReactions = true;\n    var allReactions = globalState.pendingReactions;\n    var iterations = 0;\n    // While running reactions, new reactions might be triggered.\n    // Hence we work with two variables and check whether\n    // we converge to no remaining reactions after a while.\n    while (allReactions.length > 0) {\n        if (++iterations === MAX_REACTION_ITERATIONS) {\n            console.error(\"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" +\n                (\" Probably there is a cycle in the reactive function: \" + allReactions[0]));\n            allReactions.splice(0); // clear reactions\n        }\n        var remainingReactions = allReactions.splice(0);\n        for (var i = 0, l = remainingReactions.length; i < l; i++)\n            remainingReactions[i].runReaction();\n    }\n    globalState.isRunningReactions = false;\n}\nvar isReaction = createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n    var baseScheduler = reactionScheduler;\n    reactionScheduler = function (f) { return fn(function () { return baseScheduler(f); }); };\n}\n\nfunction isSpyEnabled() {\n    return process.env.NODE_ENV !== \"production\" && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n    if (process.env.NODE_ENV === \"production\")\n        return; // dead code elimination can do the rest\n    if (!globalState.spyListeners.length)\n        return;\n    var listeners = globalState.spyListeners;\n    for (var i = 0, l = listeners.length; i < l; i++)\n        listeners[i](event);\n}\nfunction spyReportStart(event) {\n    if (process.env.NODE_ENV === \"production\")\n        return;\n    var change = __assign(__assign({}, event), { spyReportStart: true });\n    spyReport(change);\n}\nvar END_EVENT = { spyReportEnd: true };\nfunction spyReportEnd(change) {\n    if (process.env.NODE_ENV === \"production\")\n        return;\n    if (change)\n        spyReport(__assign(__assign({}, change), { spyReportEnd: true }));\n    else\n        spyReport(END_EVENT);\n}\nfunction spy(listener) {\n    if (process.env.NODE_ENV === \"production\") {\n        console.warn(\"[mobx.spy] Is a no-op in production builds\");\n        return function () { };\n    }\n    else {\n        globalState.spyListeners.push(listener);\n        return once(function () {\n            globalState.spyListeners = globalState.spyListeners.filter(function (l) { return l !== listener; });\n        });\n    }\n}\n\nfunction dontReassignFields() {\n    fail(process.env.NODE_ENV !== \"production\" && \"@action fields are not reassignable\");\n}\nfunction namedActionDecorator(name) {\n    return function (target, prop, descriptor) {\n        if (descriptor) {\n            if (process.env.NODE_ENV !== \"production\" && descriptor.get !== undefined) {\n                return fail(\"@action cannot be used with getters\");\n            }\n            // babel / typescript\n            // @action method() { }\n            if (descriptor.value) {\n                // typescript\n                return {\n                    value: createAction(name, descriptor.value),\n                    enumerable: false,\n                    configurable: true,\n                    writable: true // for typescript, this must be writable, otherwise it cannot inherit :/ (see inheritable actions test)\n                };\n            }\n            // babel only: @action method = () => {}\n            var initializer_1 = descriptor.initializer;\n            return {\n                enumerable: false,\n                configurable: true,\n                writable: true,\n                initializer: function () {\n                    // N.B: we can't immediately invoke initializer; this would be wrong\n                    return createAction(name, initializer_1.call(this));\n                }\n            };\n        }\n        // bound instance methods\n        return actionFieldDecorator(name).apply(this, arguments);\n    };\n}\nfunction actionFieldDecorator(name) {\n    // Simple property that writes on first invocation to the current instance\n    return function (target, prop, descriptor) {\n        Object.defineProperty(target, prop, {\n            configurable: true,\n            enumerable: false,\n            get: function () {\n                return undefined;\n            },\n            set: function (value) {\n                addHiddenProp(this, prop, action(name, value));\n            }\n        });\n    };\n}\nfunction boundActionDecorator(target, propertyName, descriptor, applyToInstance) {\n    if (applyToInstance === true) {\n        defineBoundAction(target, propertyName, descriptor.value);\n        return null;\n    }\n    if (descriptor) {\n        // if (descriptor.value)\n        // Typescript / Babel: @action.bound method() { }\n        // also: babel @action.bound method = () => {}\n        return {\n            configurable: true,\n            enumerable: false,\n            get: function () {\n                defineBoundAction(this, propertyName, descriptor.value || descriptor.initializer.call(this));\n                return this[propertyName];\n            },\n            set: dontReassignFields\n        };\n    }\n    // field decorator Typescript @action.bound method = () => {}\n    return {\n        enumerable: false,\n        configurable: true,\n        set: function (v) {\n            defineBoundAction(this, propertyName, v);\n        },\n        get: function () {\n            return undefined;\n        }\n    };\n}\n\nvar action = function action(arg1, arg2, arg3, arg4) {\n    // action(fn() {})\n    if (arguments.length === 1 && typeof arg1 === \"function\")\n        return createAction(arg1.name || \"<unnamed action>\", arg1);\n    // action(\"name\", fn() {})\n    if (arguments.length === 2 && typeof arg2 === \"function\")\n        return createAction(arg1, arg2);\n    // @action(\"name\") fn() {}\n    if (arguments.length === 1 && typeof arg1 === \"string\")\n        return namedActionDecorator(arg1);\n    // @action fn() {}\n    if (arg4 === true) {\n        // apply to instance immediately\n        addHiddenProp(arg1, arg2, createAction(arg1.name || arg2, arg3.value, this));\n    }\n    else {\n        return namedActionDecorator(arg2).apply(null, arguments);\n    }\n};\naction.bound = boundActionDecorator;\nfunction runInAction(arg1, arg2) {\n    var actionName = typeof arg1 === \"string\" ? arg1 : arg1.name || \"<unnamed action>\";\n    var fn = typeof arg1 === \"function\" ? arg1 : arg2;\n    if (process.env.NODE_ENV !== \"production\") {\n        invariant(typeof fn === \"function\" && fn.length === 0, \"`runInAction` expects a function without arguments\");\n        if (typeof actionName !== \"string\" || !actionName)\n            fail(\"actions should have valid names, got: '\" + actionName + \"'\");\n    }\n    return executeAction(actionName, fn, this, undefined);\n}\nfunction isAction(thing) {\n    return typeof thing === \"function\" && thing.isMobxAction === true;\n}\nfunction defineBoundAction(target, propertyName, fn) {\n    addHiddenProp(target, propertyName, createAction(propertyName, fn.bind(target)));\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n    if (opts === void 0) { opts = EMPTY_OBJECT; }\n    if (process.env.NODE_ENV !== \"production\") {\n        invariant(typeof view === \"function\", \"Autorun expects a function as first argument\");\n        invariant(isAction(view) === false, \"Autorun does not accept actions since actions are untrackable\");\n    }\n    var name = (opts && opts.name) || view.name || \"Autorun@\" + getNextId();\n    var runSync = !opts.scheduler && !opts.delay;\n    var reaction;\n    if (runSync) {\n        // normal autorun\n        reaction = new Reaction(name, function () {\n            this.track(reactionRunner);\n        }, opts.onError, opts.requiresObservable);\n    }\n    else {\n        var scheduler_1 = createSchedulerFromOptions(opts);\n        // debounced autorun\n        var isScheduled_1 = false;\n        reaction = new Reaction(name, function () {\n            if (!isScheduled_1) {\n                isScheduled_1 = true;\n                scheduler_1(function () {\n                    isScheduled_1 = false;\n                    if (!reaction.isDisposed)\n                        reaction.track(reactionRunner);\n                });\n            }\n        }, opts.onError, opts.requiresObservable);\n    }\n    function reactionRunner() {\n        view(reaction);\n    }\n    reaction.schedule();\n    return reaction.getDisposer();\n}\nvar run = function (f) { return f(); };\nfunction createSchedulerFromOptions(opts) {\n    return opts.scheduler\n        ? opts.scheduler\n        : opts.delay\n            ? function (f) { return setTimeout(f, opts.delay); }\n            : run;\n}\nfunction reaction(expression, effect, opts) {\n    if (opts === void 0) { opts = EMPTY_OBJECT; }\n    if (process.env.NODE_ENV !== \"production\") {\n        invariant(typeof expression === \"function\", \"First argument to reaction should be a function\");\n        invariant(typeof opts === \"object\", \"Third argument of reactions should be an object\");\n    }\n    var name = opts.name || \"Reaction@\" + getNextId();\n    var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n    var runSync = !opts.scheduler && !opts.delay;\n    var scheduler = createSchedulerFromOptions(opts);\n    var firstTime = true;\n    var isScheduled = false;\n    var value;\n    var equals = opts.compareStructural\n        ? comparer.structural\n        : opts.equals || comparer.default;\n    var r = new Reaction(name, function () {\n        if (firstTime || runSync) {\n            reactionRunner();\n        }\n        else if (!isScheduled) {\n            isScheduled = true;\n            scheduler(reactionRunner);\n        }\n    }, opts.onError, opts.requiresObservable);\n    function reactionRunner() {\n        isScheduled = false; // Q: move into reaction runner?\n        if (r.isDisposed)\n            return;\n        var changed = false;\n        r.track(function () {\n            var nextValue = expression(r);\n            changed = firstTime || !equals(value, nextValue);\n            value = nextValue;\n        });\n        if (firstTime && opts.fireImmediately)\n            effectAction(value, r);\n        if (!firstTime && changed === true)\n            effectAction(value, r);\n        if (firstTime)\n            firstTime = false;\n    }\n    r.schedule();\n    return r.getDisposer();\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n    return function () {\n        try {\n            return baseFn.apply(this, arguments);\n        }\n        catch (e) {\n            errorHandler.call(this, e);\n        }\n    };\n}\n\nfunction onBecomeObserved(thing, arg2, arg3) {\n    return interceptHook(\"onBecomeObserved\", thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n    return interceptHook(\"onBecomeUnobserved\", thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n    var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n    var cb = typeof arg3 === \"function\" ? arg3 : arg2;\n    var listenersKey = hook + \"Listeners\";\n    if (atom[listenersKey]) {\n        atom[listenersKey].add(cb);\n    }\n    else {\n        atom[listenersKey] = new Set([cb]);\n    }\n    var orig = atom[hook];\n    if (typeof orig !== \"function\")\n        return fail(process.env.NODE_ENV !== \"production\" && \"Not an atom that can be (un)observed\");\n    return function () {\n        var hookListeners = atom[listenersKey];\n        if (hookListeners) {\n            hookListeners.delete(cb);\n            if (hookListeners.size === 0) {\n                delete atom[listenersKey];\n            }\n        }\n    };\n}\n\nfunction configure(options) {\n    var enforceActions = options.enforceActions, computedRequiresReaction = options.computedRequiresReaction, computedConfigurable = options.computedConfigurable, disableErrorBoundaries = options.disableErrorBoundaries, reactionScheduler = options.reactionScheduler, reactionRequiresObservable = options.reactionRequiresObservable, observableRequiresReaction = options.observableRequiresReaction;\n    if (options.isolateGlobalState === true) {\n        isolateGlobalState();\n    }\n    if (enforceActions !== undefined) {\n        if (typeof enforceActions === \"boolean\" || enforceActions === \"strict\")\n            deprecated(\"Deprecated value for 'enforceActions', use 'false' => '\\\"never\\\"', 'true' => '\\\"observed\\\"', '\\\"strict\\\"' => \\\"'always'\\\" instead\");\n        var ea = void 0;\n        switch (enforceActions) {\n            case true:\n            case \"observed\":\n                ea = true;\n                break;\n            case false:\n            case \"never\":\n                ea = false;\n                break;\n            case \"strict\":\n            case \"always\":\n                ea = \"strict\";\n                break;\n            default:\n                fail(\"Invalid value for 'enforceActions': '\" + enforceActions + \"', expected 'never', 'always' or 'observed'\");\n        }\n        globalState.enforceActions = ea;\n        globalState.allowStateChanges = ea === true || ea === \"strict\" ? false : true;\n    }\n    if (computedRequiresReaction !== undefined) {\n        globalState.computedRequiresReaction = !!computedRequiresReaction;\n    }\n    if (reactionRequiresObservable !== undefined) {\n        globalState.reactionRequiresObservable = !!reactionRequiresObservable;\n    }\n    if (observableRequiresReaction !== undefined) {\n        globalState.observableRequiresReaction = !!observableRequiresReaction;\n        globalState.allowStateReads = !globalState.observableRequiresReaction;\n    }\n    if (computedConfigurable !== undefined) {\n        globalState.computedConfigurable = !!computedConfigurable;\n    }\n    if (disableErrorBoundaries !== undefined) {\n        if (disableErrorBoundaries === true)\n            console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n        globalState.disableErrorBoundaries = !!disableErrorBoundaries;\n    }\n    if (reactionScheduler) {\n        setReactionScheduler(reactionScheduler);\n    }\n}\n\nfunction decorate(thing, decorators) {\n    process.env.NODE_ENV !== \"production\" &&\n        invariant(isPlainObject(decorators), \"Decorators should be a key value map\");\n    var target = typeof thing === \"function\" ? thing.prototype : thing;\n    var _loop_1 = function (prop) {\n        var propertyDecorators = decorators[prop];\n        if (!Array.isArray(propertyDecorators)) {\n            propertyDecorators = [propertyDecorators];\n        }\n        process.env.NODE_ENV !== \"production\" &&\n            invariant(propertyDecorators.every(function (decorator) { return typeof decorator === \"function\"; }), \"Decorate: expected a decorator function or array of decorator functions for '\" + prop + \"'\");\n        var descriptor = Object.getOwnPropertyDescriptor(target, prop);\n        var newDescriptor = propertyDecorators.reduce(function (accDescriptor, decorator) { return decorator(target, prop, accDescriptor); }, descriptor);\n        if (newDescriptor)\n            Object.defineProperty(target, prop, newDescriptor);\n    };\n    for (var prop in decorators) {\n        _loop_1(prop);\n    }\n    return thing;\n}\n\nfunction extendObservable(target, properties, decorators, options) {\n    if (process.env.NODE_ENV !== \"production\") {\n        invariant(arguments.length >= 2 && arguments.length <= 4, \"'extendObservable' expected 2-4 arguments\");\n        invariant(typeof target === \"object\", \"'extendObservable' expects an object as first argument\");\n        invariant(!isObservableMap(target), \"'extendObservable' should not be used on maps, use map.merge instead\");\n    }\n    options = asCreateObservableOptions(options);\n    var defaultDecorator = getDefaultDecoratorFromObjectOptions(options);\n    initializeInstance(target); // Fixes #1740\n    asObservableObject(target, options.name, defaultDecorator.enhancer); // make sure object is observable, even without initial props\n    if (properties)\n        extendObservableObjectWithProperties(target, properties, decorators, defaultDecorator);\n    return target;\n}\nfunction getDefaultDecoratorFromObjectOptions(options) {\n    return options.defaultDecorator || (options.deep === false ? refDecorator : deepDecorator);\n}\nfunction extendObservableObjectWithProperties(target, properties, decorators, defaultDecorator) {\n    var e_1, _a, e_2, _b;\n    if (process.env.NODE_ENV !== \"production\") {\n        invariant(!isObservable(properties), \"Extending an object with another observable (object) is not supported. Please construct an explicit propertymap, using `toJS` if need. See issue #540\");\n        if (decorators) {\n            var keys = getPlainObjectKeys(decorators);\n            try {\n                for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n                    var key = keys_1_1.value;\n                    if (!(key in properties))\n                        fail(\"Trying to declare a decorator for unspecified property '\" + stringifyKey(key) + \"'\");\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n        }\n    }\n    startBatch();\n    try {\n        var keys = ownKeys(properties);\n        try {\n            for (var keys_2 = __values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) {\n                var key = keys_2_1.value;\n                var descriptor = Object.getOwnPropertyDescriptor(properties, key);\n                if (process.env.NODE_ENV !== \"production\") {\n                    if (!isPlainObject(properties))\n                        fail(\"'extendObservable' only accepts plain objects as second argument\");\n                    if (isComputed(descriptor.value))\n                        fail(\"Passing a 'computed' as initial property value is no longer supported by extendObservable. Use a getter or decorator instead\");\n                }\n                var decorator = decorators && key in decorators\n                    ? decorators[key]\n                    : descriptor.get\n                        ? computedDecorator\n                        : defaultDecorator;\n                if (process.env.NODE_ENV !== \"production\" && typeof decorator !== \"function\")\n                    fail(\"Not a valid decorator for '\" + stringifyKey(key) + \"', got: \" + decorator);\n                var resultDescriptor = decorator(target, key, descriptor, true);\n                if (resultDescriptor // otherwise, assume already applied, due to `applyToInstance`\n                )\n                    Object.defineProperty(target, key, resultDescriptor);\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (keys_2_1 && !keys_2_1.done && (_b = keys_2.return)) _b.call(keys_2);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n    }\n    finally {\n        endBatch();\n    }\n}\n\nfunction getDependencyTree(thing, property) {\n    return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n    var result = {\n        name: node.name\n    };\n    if (node.observing && node.observing.length > 0)\n        result.dependencies = unique(node.observing).map(nodeToDependencyTree);\n    return result;\n}\nfunction getObserverTree(thing, property) {\n    return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n    var result = {\n        name: node.name\n    };\n    if (hasObservers(node))\n        result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n    return result;\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n    this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n    return error instanceof FlowCancellationError;\n}\nfunction flow(generator) {\n    if (arguments.length !== 1)\n        fail(!!process.env.NODE_ENV && \"Flow expects 1 argument and cannot be used as decorator\");\n    var name = generator.name || \"<unnamed flow>\";\n    // Implementation based on https://github.com/tj/co/blob/master/index.js\n    return function () {\n        var ctx = this;\n        var args = arguments;\n        var runId = ++generatorId;\n        var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n        var rejector;\n        var pendingPromise = undefined;\n        var promise = new Promise(function (resolve, reject) {\n            var stepId = 0;\n            rejector = reject;\n            function onFulfilled(res) {\n                pendingPromise = undefined;\n                var ret;\n                try {\n                    ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n                }\n                catch (e) {\n                    return reject(e);\n                }\n                next(ret);\n            }\n            function onRejected(err) {\n                pendingPromise = undefined;\n                var ret;\n                try {\n                    ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.throw).call(gen, err);\n                }\n                catch (e) {\n                    return reject(e);\n                }\n                next(ret);\n            }\n            function next(ret) {\n                if (ret && typeof ret.then === \"function\") {\n                    // an async iterator\n                    ret.then(next, reject);\n                    return;\n                }\n                if (ret.done)\n                    return resolve(ret.value);\n                pendingPromise = Promise.resolve(ret.value);\n                return pendingPromise.then(onFulfilled, onRejected);\n            }\n            onFulfilled(undefined); // kick off the process\n        });\n        promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n            try {\n                if (pendingPromise)\n                    cancelPromise(pendingPromise);\n                // Finally block can return (or yield) stuff..\n                var res = gen.return(undefined);\n                // eat anything that promise would do, it's cancelled!\n                var yieldedPromise = Promise.resolve(res.value);\n                yieldedPromise.then(noop, noop);\n                cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n                // reject our original promise\n                rejector(new FlowCancellationError());\n            }\n            catch (e) {\n                rejector(e); // there could be a throwing finally block\n            }\n        });\n        return promise;\n    };\n}\nfunction cancelPromise(promise) {\n    if (typeof promise.cancel === \"function\")\n        promise.cancel();\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n    var target;\n    if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n        target = getAdministration(thing);\n    }\n    else if (isObservableObject(thing)) {\n        if (typeof propOrHandler !== \"string\")\n            return fail(process.env.NODE_ENV !== \"production\" &&\n                \"InterceptReads can only be used with a specific property, not with an object in general\");\n        target = getAdministration(thing, propOrHandler);\n    }\n    else {\n        return fail(process.env.NODE_ENV !== \"production\" &&\n            \"Expected observable map, object or array as first array\");\n    }\n    if (target.dehancer !== undefined)\n        return fail(process.env.NODE_ENV !== \"production\" && \"An intercept reader was already established\");\n    target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n    return function () {\n        target.dehancer = undefined;\n    };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n    if (typeof handler === \"function\")\n        return interceptProperty(thing, propOrHandler, handler);\n    else\n        return interceptInterceptable(thing, propOrHandler);\n}\nfunction interceptInterceptable(thing, handler) {\n    return getAdministration(thing).intercept(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n    return getAdministration(thing, property).intercept(handler);\n}\n\nfunction _isComputed(value, property) {\n    if (value === null || value === undefined)\n        return false;\n    if (property !== undefined) {\n        if (isObservableObject(value) === false)\n            return false;\n        if (!value[$mobx].values.has(property))\n            return false;\n        var atom = getAtom(value, property);\n        return isComputedValue(atom);\n    }\n    return isComputedValue(value);\n}\nfunction isComputed(value) {\n    if (arguments.length > 1)\n        return fail(process.env.NODE_ENV !== \"production\" &&\n            \"isComputed expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n    return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n    if (typeof propName !== \"string\")\n        return fail(process.env.NODE_ENV !== \"production\" &&\n            \"isComputed expected a property name as second argument\");\n    return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n    if (value === null || value === undefined)\n        return false;\n    if (property !== undefined) {\n        if (process.env.NODE_ENV !== \"production\" &&\n            (isObservableMap(value) || isObservableArray(value)))\n            return fail(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n        if (isObservableObject(value)) {\n            return value[$mobx].values.has(property);\n        }\n        return false;\n    }\n    // For first check, see #701\n    return (isObservableObject(value) ||\n        !!value[$mobx] ||\n        isAtom(value) ||\n        isReaction(value) ||\n        isComputedValue(value));\n}\nfunction isObservable(value) {\n    if (arguments.length !== 1)\n        fail(process.env.NODE_ENV !== \"production\" &&\n            \"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n    return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n    if (typeof propName !== \"string\")\n        return fail(process.env.NODE_ENV !== \"production\" && \"expected a property name as second argument\");\n    return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n    if (isObservableObject(obj)) {\n        return obj[$mobx].getKeys();\n    }\n    if (isObservableMap(obj)) {\n        return Array.from(obj.keys());\n    }\n    if (isObservableSet(obj)) {\n        return Array.from(obj.keys());\n    }\n    if (isObservableArray(obj)) {\n        return obj.map(function (_, index) { return index; });\n    }\n    return fail(process.env.NODE_ENV !== \"production\" &&\n        \"'keys()' can only be used on observable objects, arrays, sets and maps\");\n}\nfunction values(obj) {\n    if (isObservableObject(obj)) {\n        return keys(obj).map(function (key) { return obj[key]; });\n    }\n    if (isObservableMap(obj)) {\n        return keys(obj).map(function (key) { return obj.get(key); });\n    }\n    if (isObservableSet(obj)) {\n        return Array.from(obj.values());\n    }\n    if (isObservableArray(obj)) {\n        return obj.slice();\n    }\n    return fail(process.env.NODE_ENV !== \"production\" &&\n        \"'values()' can only be used on observable objects, arrays, sets and maps\");\n}\nfunction entries(obj) {\n    if (isObservableObject(obj)) {\n        return keys(obj).map(function (key) { return [key, obj[key]]; });\n    }\n    if (isObservableMap(obj)) {\n        return keys(obj).map(function (key) { return [key, obj.get(key)]; });\n    }\n    if (isObservableSet(obj)) {\n        return Array.from(obj.entries());\n    }\n    if (isObservableArray(obj)) {\n        return obj.map(function (key, index) { return [index, key]; });\n    }\n    return fail(process.env.NODE_ENV !== \"production\" &&\n        \"'entries()' can only be used on observable objects, arrays and maps\");\n}\nfunction set(obj, key, value) {\n    if (arguments.length === 2 && !isObservableSet(obj)) {\n        startBatch();\n        var values_1 = key;\n        try {\n            for (var key_1 in values_1)\n                set(obj, key_1, values_1[key_1]);\n        }\n        finally {\n            endBatch();\n        }\n        return;\n    }\n    if (isObservableObject(obj)) {\n        var adm = obj[$mobx];\n        var existingObservable = adm.values.get(key);\n        if (existingObservable) {\n            adm.write(key, value);\n        }\n        else {\n            adm.addObservableProp(key, value, adm.defaultEnhancer);\n        }\n    }\n    else if (isObservableMap(obj)) {\n        obj.set(key, value);\n    }\n    else if (isObservableSet(obj)) {\n        obj.add(key);\n    }\n    else if (isObservableArray(obj)) {\n        if (typeof key !== \"number\")\n            key = parseInt(key, 10);\n        invariant(key >= 0, \"Not a valid index: '\" + key + \"'\");\n        startBatch();\n        if (key >= obj.length)\n            obj.length = key + 1;\n        obj[key] = value;\n        endBatch();\n    }\n    else {\n        return fail(process.env.NODE_ENV !== \"production\" &&\n            \"'set()' can only be used on observable objects, arrays and maps\");\n    }\n}\nfunction remove(obj, key) {\n    if (isObservableObject(obj)) {\n        obj[$mobx].remove(key);\n    }\n    else if (isObservableMap(obj)) {\n        obj.delete(key);\n    }\n    else if (isObservableSet(obj)) {\n        obj.delete(key);\n    }\n    else if (isObservableArray(obj)) {\n        if (typeof key !== \"number\")\n            key = parseInt(key, 10);\n        invariant(key >= 0, \"Not a valid index: '\" + key + \"'\");\n        obj.splice(key, 1);\n    }\n    else {\n        return fail(process.env.NODE_ENV !== \"production\" &&\n            \"'remove()' can only be used on observable objects, arrays and maps\");\n    }\n}\nfunction has(obj, key) {\n    if (isObservableObject(obj)) {\n        // return keys(obj).indexOf(key) >= 0\n        var adm = getAdministration(obj);\n        return adm.has(key);\n    }\n    else if (isObservableMap(obj)) {\n        return obj.has(key);\n    }\n    else if (isObservableSet(obj)) {\n        return obj.has(key);\n    }\n    else if (isObservableArray(obj)) {\n        return key >= 0 && key < obj.length;\n    }\n    else {\n        return fail(process.env.NODE_ENV !== \"production\" &&\n            \"'has()' can only be used on observable objects, arrays and maps\");\n    }\n}\nfunction get(obj, key) {\n    if (!has(obj, key))\n        return undefined;\n    if (isObservableObject(obj)) {\n        return obj[key];\n    }\n    else if (isObservableMap(obj)) {\n        return obj.get(key);\n    }\n    else if (isObservableArray(obj)) {\n        return obj[key];\n    }\n    else {\n        return fail(process.env.NODE_ENV !== \"production\" &&\n            \"'get()' can only be used on observable objects, arrays and maps\");\n    }\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n    if (typeof cbOrFire === \"function\")\n        return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n    else\n        return observeObservable(thing, propOrCb, cbOrFire);\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n    return getAdministration(thing).observe(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n    return getAdministration(thing, property).observe(listener, fireImmediately);\n}\n\nvar defaultOptions = {\n    detectCycles: true,\n    exportMapsAsObjects: true,\n    recurseEverything: false\n};\nfunction cache(map, key, value, options) {\n    if (options.detectCycles)\n        map.set(key, value);\n    return value;\n}\nfunction toJSHelper(source, options, __alreadySeen) {\n    if (!options.recurseEverything && !isObservable(source))\n        return source;\n    if (typeof source !== \"object\")\n        return source;\n    // Directly return null if source is null\n    if (source === null)\n        return null;\n    // Directly return the Date object itself if contained in the observable\n    if (source instanceof Date)\n        return source;\n    if (isObservableValue(source))\n        return toJSHelper(source.get(), options, __alreadySeen);\n    // make sure we track the keys of the object\n    if (isObservable(source))\n        keys(source);\n    var detectCycles = options.detectCycles === true;\n    if (detectCycles && source !== null && __alreadySeen.has(source)) {\n        return __alreadySeen.get(source);\n    }\n    if (isObservableArray(source) || Array.isArray(source)) {\n        var res_1 = cache(__alreadySeen, source, [], options);\n        var toAdd = source.map(function (value) { return toJSHelper(value, options, __alreadySeen); });\n        res_1.length = toAdd.length;\n        for (var i = 0, l = toAdd.length; i < l; i++)\n            res_1[i] = toAdd[i];\n        return res_1;\n    }\n    if (isObservableSet(source) || Object.getPrototypeOf(source) === Set.prototype) {\n        if (options.exportMapsAsObjects === false) {\n            var res_2 = cache(__alreadySeen, source, new Set(), options);\n            source.forEach(function (value) {\n                res_2.add(toJSHelper(value, options, __alreadySeen));\n            });\n            return res_2;\n        }\n        else {\n            var res_3 = cache(__alreadySeen, source, [], options);\n            source.forEach(function (value) {\n                res_3.push(toJSHelper(value, options, __alreadySeen));\n            });\n            return res_3;\n        }\n    }\n    if (isObservableMap(source) || Object.getPrototypeOf(source) === Map.prototype) {\n        if (options.exportMapsAsObjects === false) {\n            var res_4 = cache(__alreadySeen, source, new Map(), options);\n            source.forEach(function (value, key) {\n                res_4.set(key, toJSHelper(value, options, __alreadySeen));\n            });\n            return res_4;\n        }\n        else {\n            var res_5 = cache(__alreadySeen, source, {}, options);\n            source.forEach(function (value, key) {\n                res_5[key] = toJSHelper(value, options, __alreadySeen);\n            });\n            return res_5;\n        }\n    }\n    // Fallback to the situation that source is an ObservableObject or a plain object\n    var res = cache(__alreadySeen, source, {}, options);\n    getPlainObjectKeys(source).forEach(function (key) {\n        res[key] = toJSHelper(source[key], options, __alreadySeen);\n    });\n    return res;\n}\nfunction toJS(source, options) {\n    // backward compatibility\n    if (typeof options === \"boolean\")\n        options = { detectCycles: options };\n    if (!options)\n        options = defaultOptions;\n    options.detectCycles =\n        options.detectCycles === undefined\n            ? options.recurseEverything === true\n            : options.detectCycles === true;\n    var __alreadySeen;\n    if (options.detectCycles)\n        __alreadySeen = new Map();\n    return toJSHelper(source, options, __alreadySeen);\n}\n\nfunction trace() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    var enterBreakPoint = false;\n    if (typeof args[args.length - 1] === \"boolean\")\n        enterBreakPoint = args.pop();\n    var derivation = getAtomFromArgs(args);\n    if (!derivation) {\n        return fail(process.env.NODE_ENV !== \"production\" &&\n            \"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n    }\n    if (derivation.isTracing === TraceMode.NONE) {\n        console.log(\"[mobx.trace] '\" + derivation.name + \"' tracing enabled\");\n    }\n    derivation.isTracing = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n    switch (args.length) {\n        case 0:\n            return globalState.trackingDerivation;\n        case 1:\n            return getAtom(args[0]);\n        case 2:\n            return getAtom(args[0], args[1]);\n    }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n    if (thisArg === void 0) { thisArg = undefined; }\n    startBatch();\n    try {\n        return action.apply(thisArg);\n    }\n    finally {\n        endBatch();\n    }\n}\n\nfunction when(predicate, arg1, arg2) {\n    if (arguments.length === 1 || (arg1 && typeof arg1 === \"object\"))\n        return whenPromise(predicate, arg1);\n    return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n    var timeoutHandle;\n    if (typeof opts.timeout === \"number\") {\n        timeoutHandle = setTimeout(function () {\n            if (!disposer[$mobx].isDisposed) {\n                disposer();\n                var error = new Error(\"WHEN_TIMEOUT\");\n                if (opts.onError)\n                    opts.onError(error);\n                else\n                    throw error;\n            }\n        }, opts.timeout);\n    }\n    opts.name = opts.name || \"When@\" + getNextId();\n    var effectAction = createAction(opts.name + \"-effect\", effect);\n    var disposer = autorun(function (r) {\n        if (predicate()) {\n            r.dispose();\n            if (timeoutHandle)\n                clearTimeout(timeoutHandle);\n            effectAction();\n        }\n    }, opts);\n    return disposer;\n}\nfunction whenPromise(predicate, opts) {\n    if (process.env.NODE_ENV !== \"production\" && opts && opts.onError)\n        return fail(\"the options 'onError' and 'promise' cannot be combined\");\n    var cancel;\n    var res = new Promise(function (resolve, reject) {\n        var disposer = _when(predicate, resolve, __assign(__assign({}, opts), { onError: reject }));\n        cancel = function () {\n            disposer();\n            reject(\"WHEN_CANCELLED\");\n        };\n    });\n    res.cancel = cancel;\n    return res;\n}\n\nfunction getAdm(target) {\n    return target[$mobx];\n}\nfunction isPropertyKey(val) {\n    return typeof val === \"string\" || typeof val === \"number\" || typeof val === \"symbol\";\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n    has: function (target, name) {\n        if (name === $mobx || name === \"constructor\" || name === mobxDidRunLazyInitializersSymbol)\n            return true;\n        var adm = getAdm(target);\n        // MWE: should `in` operator be reactive? If not, below code path will be faster / more memory efficient\n        // TODO: check performance stats!\n        // if (adm.values.get(name as string)) return true\n        if (isPropertyKey(name))\n            return adm.has(name);\n        return name in target;\n    },\n    get: function (target, name) {\n        if (name === $mobx || name === \"constructor\" || name === mobxDidRunLazyInitializersSymbol)\n            return target[name];\n        var adm = getAdm(target);\n        var observable = adm.values.get(name);\n        if (observable instanceof Atom) {\n            var result = observable.get();\n            if (result === undefined) {\n                // This fixes #1796, because deleting a prop that has an\n                // undefined value won't retrigger a observer (no visible effect),\n                // the autorun wouldn't subscribe to future key changes (see also next comment)\n                adm.has(name);\n            }\n            return result;\n        }\n        // make sure we start listening to future keys\n        // note that we only do this here for optimization\n        if (isPropertyKey(name))\n            adm.has(name);\n        return target[name];\n    },\n    set: function (target, name, value) {\n        if (!isPropertyKey(name))\n            return false;\n        set(target, name, value);\n        return true;\n    },\n    deleteProperty: function (target, name) {\n        if (!isPropertyKey(name))\n            return false;\n        var adm = getAdm(target);\n        adm.remove(name);\n        return true;\n    },\n    ownKeys: function (target) {\n        var adm = getAdm(target);\n        adm.keysAtom.reportObserved();\n        return Reflect.ownKeys(target);\n    },\n    preventExtensions: function (target) {\n        fail(\"Dynamic observable objects cannot be frozen\");\n        return false;\n    }\n};\nfunction createDynamicObservableObject(base) {\n    var proxy = new Proxy(base, objectProxyTraps);\n    base[$mobx].proxy = proxy;\n    return proxy;\n}\n\nfunction hasInterceptors(interceptable) {\n    return interceptable.interceptors !== undefined && interceptable.interceptors.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n    var interceptors = interceptable.interceptors || (interceptable.interceptors = []);\n    interceptors.push(handler);\n    return once(function () {\n        var idx = interceptors.indexOf(handler);\n        if (idx !== -1)\n            interceptors.splice(idx, 1);\n    });\n}\nfunction interceptChange(interceptable, change) {\n    var prevU = untrackedStart();\n    try {\n        // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n        var interceptors = __spread((interceptable.interceptors || []));\n        for (var i = 0, l = interceptors.length; i < l; i++) {\n            change = interceptors[i](change);\n            invariant(!change || change.type, \"Intercept handlers should return nothing or a change object\");\n            if (!change)\n                break;\n        }\n        return change;\n    }\n    finally {\n        untrackedEnd(prevU);\n    }\n}\n\nfunction hasListeners(listenable) {\n    return listenable.changeListeners !== undefined && listenable.changeListeners.length > 0;\n}\nfunction registerListener(listenable, handler) {\n    var listeners = listenable.changeListeners || (listenable.changeListeners = []);\n    listeners.push(handler);\n    return once(function () {\n        var idx = listeners.indexOf(handler);\n        if (idx !== -1)\n            listeners.splice(idx, 1);\n    });\n}\nfunction notifyListeners(listenable, change) {\n    var prevU = untrackedStart();\n    var listeners = listenable.changeListeners;\n    if (!listeners)\n        return;\n    listeners = listeners.slice();\n    for (var i = 0, l = listeners.length; i < l; i++) {\n        listeners[i](change);\n    }\n    untrackedEnd(prevU);\n}\n\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n    get: function (target, name) {\n        if (name === $mobx)\n            return target[$mobx];\n        if (name === \"length\")\n            return target[$mobx].getArrayLength();\n        if (typeof name === \"number\") {\n            return arrayExtensions.get.call(target, name);\n        }\n        if (typeof name === \"string\" && !isNaN(name)) {\n            return arrayExtensions.get.call(target, parseInt(name));\n        }\n        if (arrayExtensions.hasOwnProperty(name)) {\n            return arrayExtensions[name];\n        }\n        return target[name];\n    },\n    set: function (target, name, value) {\n        if (name === \"length\") {\n            target[$mobx].setArrayLength(value);\n        }\n        if (typeof name === \"number\") {\n            arrayExtensions.set.call(target, name, value);\n        }\n        if (typeof name === \"symbol\" || isNaN(name)) {\n            target[name] = value;\n        }\n        else {\n            // numeric string\n            arrayExtensions.set.call(target, parseInt(name), value);\n        }\n        return true;\n    },\n    preventExtensions: function (target) {\n        fail(\"Observable arrays cannot be frozen\");\n        return false;\n    }\n};\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n    if (name === void 0) { name = \"ObservableArray@\" + getNextId(); }\n    if (owned === void 0) { owned = false; }\n    var adm = new ObservableArrayAdministration(name, enhancer, owned);\n    addHiddenFinalProp(adm.values, $mobx, adm);\n    var proxy = new Proxy(adm.values, arrayTraps);\n    adm.proxy = proxy;\n    if (initialValues && initialValues.length) {\n        var prev = allowStateChangesStart(true);\n        adm.spliceWithArray(0, 0, initialValues);\n        allowStateChangesEnd(prev);\n    }\n    return proxy;\n}\nvar ObservableArrayAdministration = /** @class */ (function () {\n    function ObservableArrayAdministration(name, enhancer, owned) {\n        this.owned = owned;\n        this.values = [];\n        this.proxy = undefined;\n        this.lastKnownLength = 0;\n        this.atom = new Atom(name || \"ObservableArray@\" + getNextId());\n        this.enhancer = function (newV, oldV) { return enhancer(newV, oldV, name + \"[..]\"); };\n    }\n    ObservableArrayAdministration.prototype.dehanceValue = function (value) {\n        if (this.dehancer !== undefined)\n            return this.dehancer(value);\n        return value;\n    };\n    ObservableArrayAdministration.prototype.dehanceValues = function (values) {\n        if (this.dehancer !== undefined && values.length > 0)\n            return values.map(this.dehancer);\n        return values;\n    };\n    ObservableArrayAdministration.prototype.intercept = function (handler) {\n        return registerInterceptor(this, handler);\n    };\n    ObservableArrayAdministration.prototype.observe = function (listener, fireImmediately) {\n        if (fireImmediately === void 0) { fireImmediately = false; }\n        if (fireImmediately) {\n            listener({\n                object: this.proxy,\n                type: \"splice\",\n                index: 0,\n                added: this.values.slice(),\n                addedCount: this.values.length,\n                removed: [],\n                removedCount: 0\n            });\n        }\n        return registerListener(this, listener);\n    };\n    ObservableArrayAdministration.prototype.getArrayLength = function () {\n        this.atom.reportObserved();\n        return this.values.length;\n    };\n    ObservableArrayAdministration.prototype.setArrayLength = function (newLength) {\n        if (typeof newLength !== \"number\" || newLength < 0)\n            throw new Error(\"[mobx.array] Out of range: \" + newLength);\n        var currentLength = this.values.length;\n        if (newLength === currentLength)\n            return;\n        else if (newLength > currentLength) {\n            var newItems = new Array(newLength - currentLength);\n            for (var i = 0; i < newLength - currentLength; i++)\n                newItems[i] = undefined; // No Array.fill everywhere...\n            this.spliceWithArray(currentLength, 0, newItems);\n        }\n        else\n            this.spliceWithArray(newLength, currentLength - newLength);\n    };\n    ObservableArrayAdministration.prototype.updateArrayLength = function (oldLength, delta) {\n        if (oldLength !== this.lastKnownLength)\n            throw new Error(\"[mobx] Modification exception: the internal structure of an observable array was changed.\");\n        this.lastKnownLength += delta;\n    };\n    ObservableArrayAdministration.prototype.spliceWithArray = function (index, deleteCount, newItems) {\n        var _this = this;\n        checkIfStateModificationsAreAllowed(this.atom);\n        var length = this.values.length;\n        if (index === undefined)\n            index = 0;\n        else if (index > length)\n            index = length;\n        else if (index < 0)\n            index = Math.max(0, length + index);\n        if (arguments.length === 1)\n            deleteCount = length - index;\n        else if (deleteCount === undefined || deleteCount === null)\n            deleteCount = 0;\n        else\n            deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n        if (newItems === undefined)\n            newItems = EMPTY_ARRAY;\n        if (hasInterceptors(this)) {\n            var change = interceptChange(this, {\n                object: this.proxy,\n                type: \"splice\",\n                index: index,\n                removedCount: deleteCount,\n                added: newItems\n            });\n            if (!change)\n                return EMPTY_ARRAY;\n            deleteCount = change.removedCount;\n            newItems = change.added;\n        }\n        newItems = newItems.length === 0 ? newItems : newItems.map(function (v) { return _this.enhancer(v, undefined); });\n        if (process.env.NODE_ENV !== \"production\") {\n            var lengthDelta = newItems.length - deleteCount;\n            this.updateArrayLength(length, lengthDelta); // checks if internal array wasn't modified\n        }\n        var res = this.spliceItemsIntoValues(index, deleteCount, newItems);\n        if (deleteCount !== 0 || newItems.length !== 0)\n            this.notifyArraySplice(index, newItems, res);\n        return this.dehanceValues(res);\n    };\n    ObservableArrayAdministration.prototype.spliceItemsIntoValues = function (index, deleteCount, newItems) {\n        var _a;\n        if (newItems.length < MAX_SPLICE_SIZE) {\n            return (_a = this.values).splice.apply(_a, __spread([index, deleteCount], newItems));\n        }\n        else {\n            var res = this.values.slice(index, index + deleteCount);\n            this.values = this.values\n                .slice(0, index)\n                .concat(newItems, this.values.slice(index + deleteCount));\n            return res;\n        }\n    };\n    ObservableArrayAdministration.prototype.notifyArrayChildUpdate = function (index, newValue, oldValue) {\n        var notifySpy = !this.owned && isSpyEnabled();\n        var notify = hasListeners(this);\n        var change = notify || notifySpy\n            ? {\n                object: this.proxy,\n                type: \"update\",\n                index: index,\n                newValue: newValue,\n                oldValue: oldValue\n            }\n            : null;\n        // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n        // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n        if (notifySpy && process.env.NODE_ENV !== \"production\")\n            spyReportStart(__assign(__assign({}, change), { name: this.atom.name }));\n        this.atom.reportChanged();\n        if (notify)\n            notifyListeners(this, change);\n        if (notifySpy && process.env.NODE_ENV !== \"production\")\n            spyReportEnd();\n    };\n    ObservableArrayAdministration.prototype.notifyArraySplice = function (index, added, removed) {\n        var notifySpy = !this.owned && isSpyEnabled();\n        var notify = hasListeners(this);\n        var change = notify || notifySpy\n            ? {\n                object: this.proxy,\n                type: \"splice\",\n                index: index,\n                removed: removed,\n                added: added,\n                removedCount: removed.length,\n                addedCount: added.length\n            }\n            : null;\n        if (notifySpy && process.env.NODE_ENV !== \"production\")\n            spyReportStart(__assign(__assign({}, change), { name: this.atom.name }));\n        this.atom.reportChanged();\n        // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n        if (notify)\n            notifyListeners(this, change);\n        if (notifySpy && process.env.NODE_ENV !== \"production\")\n            spyReportEnd();\n    };\n    return ObservableArrayAdministration;\n}());\nvar arrayExtensions = {\n    intercept: function (handler) {\n        return this[$mobx].intercept(handler);\n    },\n    observe: function (listener, fireImmediately) {\n        if (fireImmediately === void 0) { fireImmediately = false; }\n        var adm = this[$mobx];\n        return adm.observe(listener, fireImmediately);\n    },\n    clear: function () {\n        return this.splice(0);\n    },\n    replace: function (newItems) {\n        var adm = this[$mobx];\n        return adm.spliceWithArray(0, adm.values.length, newItems);\n    },\n    /**\n     * Converts this array back to a (shallow) javascript structure.\n     * For a deep clone use mobx.toJS\n     */\n    toJS: function () {\n        return this.slice();\n    },\n    toJSON: function () {\n        // Used by JSON.stringify\n        return this.toJS();\n    },\n    /*\n     * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n     * since these functions alter the inner structure of the array, the have side effects.\n     * Because the have side effects, they should not be used in computed function,\n     * and for that reason the do not call dependencyState.notifyObserved\n     */\n    splice: function (index, deleteCount) {\n        var newItems = [];\n        for (var _i = 2; _i < arguments.length; _i++) {\n            newItems[_i - 2] = arguments[_i];\n        }\n        var adm = this[$mobx];\n        switch (arguments.length) {\n            case 0:\n                return [];\n            case 1:\n                return adm.spliceWithArray(index);\n            case 2:\n                return adm.spliceWithArray(index, deleteCount);\n        }\n        return adm.spliceWithArray(index, deleteCount, newItems);\n    },\n    spliceWithArray: function (index, deleteCount, newItems) {\n        var adm = this[$mobx];\n        return adm.spliceWithArray(index, deleteCount, newItems);\n    },\n    push: function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n        var adm = this[$mobx];\n        adm.spliceWithArray(adm.values.length, 0, items);\n        return adm.values.length;\n    },\n    pop: function () {\n        return this.splice(Math.max(this[$mobx].values.length - 1, 0), 1)[0];\n    },\n    shift: function () {\n        return this.splice(0, 1)[0];\n    },\n    unshift: function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n        var adm = this[$mobx];\n        adm.spliceWithArray(0, 0, items);\n        return adm.values.length;\n    },\n    reverse: function () {\n        // reverse by default mutates in place before returning the result\n        // which makes it both a 'derivation' and a 'mutation'.\n        // so we deviate from the default and just make it an dervitation\n        if (process.env.NODE_ENV !== \"production\") {\n            console.warn(\"[mobx] `observableArray.reverse()` will not update the array in place. Use `observableArray.slice().reverse()` to suppress this warning and perform the operation on a copy, or `observableArray.replace(observableArray.slice().reverse())` to reverse & update in place\");\n        }\n        var clone = this.slice();\n        return clone.reverse.apply(clone, arguments);\n    },\n    sort: function (compareFn) {\n        // sort by default mutates in place before returning the result\n        // which goes against all good practices. Let's not change the array in place!\n        if (process.env.NODE_ENV !== \"production\") {\n            console.warn(\"[mobx] `observableArray.sort()` will not update the array in place. Use `observableArray.slice().sort()` to suppress this warning and perform the operation on a copy, or `observableArray.replace(observableArray.slice().sort())` to sort & update in place\");\n        }\n        var clone = this.slice();\n        return clone.sort.apply(clone, arguments);\n    },\n    remove: function (value) {\n        var adm = this[$mobx];\n        var idx = adm.dehanceValues(adm.values).indexOf(value);\n        if (idx > -1) {\n            this.splice(idx, 1);\n            return true;\n        }\n        return false;\n    },\n    get: function (index) {\n        var adm = this[$mobx];\n        if (adm) {\n            if (index < adm.values.length) {\n                adm.atom.reportObserved();\n                return adm.dehanceValue(adm.values[index]);\n            }\n            console.warn(\"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + adm.values.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\");\n        }\n        return undefined;\n    },\n    set: function (index, newValue) {\n        var adm = this[$mobx];\n        var values = adm.values;\n        if (index < values.length) {\n            // update at index in range\n            checkIfStateModificationsAreAllowed(adm.atom);\n            var oldValue = values[index];\n            if (hasInterceptors(adm)) {\n                var change = interceptChange(adm, {\n                    type: \"update\",\n                    object: adm.proxy,\n                    index: index,\n                    newValue: newValue\n                });\n                if (!change)\n                    return;\n                newValue = change.newValue;\n            }\n            newValue = adm.enhancer(newValue, oldValue);\n            var changed = newValue !== oldValue;\n            if (changed) {\n                values[index] = newValue;\n                adm.notifyArrayChildUpdate(index, newValue, oldValue);\n            }\n        }\n        else if (index === values.length) {\n            // add a new item\n            adm.spliceWithArray(index, 0, [newValue]);\n        }\n        else {\n            // out of bounds\n            throw new Error(\"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + values.length);\n        }\n    }\n};\n[\n    \"concat\",\n    \"flat\",\n    \"includes\",\n    \"indexOf\",\n    \"join\",\n    \"lastIndexOf\",\n    \"slice\",\n    \"toString\",\n    \"toLocaleString\"\n].forEach(function (funcName) {\n    // Feature detection (eg flat may not be available)\n    if (typeof Array.prototype[funcName] !== \"function\") {\n        return;\n    }\n    arrayExtensions[funcName] = function () {\n        var adm = this[$mobx];\n        adm.atom.reportObserved();\n        var dehancedValues = adm.dehanceValues(adm.values);\n        return dehancedValues[funcName].apply(dehancedValues, arguments);\n    };\n});\n[\"every\", \"filter\", \"find\", \"findIndex\", \"flatMap\", \"forEach\", \"map\", \"some\"].forEach(function (funcName) {\n    // Feature detection (eg flatMap may not be available)\n    if (typeof Array.prototype[funcName] !== \"function\") {\n        return;\n    }\n    arrayExtensions[funcName] = function (callback, thisArg) {\n        var _this = this;\n        var adm = this[$mobx];\n        adm.atom.reportObserved();\n        var dehancedValues = adm.dehanceValues(adm.values);\n        return dehancedValues[funcName](function (element, index) {\n            return callback.call(thisArg, element, index, _this);\n        }, thisArg);\n    };\n});\n[\"reduce\", \"reduceRight\"].forEach(function (funcName) {\n    arrayExtensions[funcName] = function () {\n        var _this = this;\n        var adm = this[$mobx];\n        adm.atom.reportObserved();\n        // #2432 - reduce behavior depends on arguments.length\n        var callback = arguments[0];\n        arguments[0] = function (accumulator, currentValue, index) {\n            currentValue = adm.dehanceValue(currentValue);\n            return callback(accumulator, currentValue, index, _this);\n        };\n        return adm.values[funcName].apply(adm.values, arguments);\n    };\n});\nvar isObservableArrayAdministration = createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n    return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _a;\nvar ObservableMapMarker = {};\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\nvar ObservableMap = /** @class */ (function () {\n    function ObservableMap(initialData, enhancer, name) {\n        if (enhancer === void 0) { enhancer = deepEnhancer; }\n        if (name === void 0) { name = \"ObservableMap@\" + getNextId(); }\n        this.enhancer = enhancer;\n        this.name = name;\n        this[_a] = ObservableMapMarker;\n        this._keysAtom = createAtom(this.name + \".keys()\");\n        this[Symbol.toStringTag] = \"Map\";\n        if (typeof Map !== \"function\") {\n            throw new Error(\"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\");\n        }\n        this._data = new Map();\n        this._hasMap = new Map();\n        this.merge(initialData);\n    }\n    ObservableMap.prototype._has = function (key) {\n        return this._data.has(key);\n    };\n    ObservableMap.prototype.has = function (key) {\n        var _this = this;\n        if (!globalState.trackingDerivation)\n            return this._has(key);\n        var entry = this._hasMap.get(key);\n        if (!entry) {\n            // todo: replace with atom (breaking change)\n            var newEntry = (entry = new ObservableValue(this._has(key), referenceEnhancer, this.name + \".\" + stringifyKey(key) + \"?\", false));\n            this._hasMap.set(key, newEntry);\n            onBecomeUnobserved(newEntry, function () { return _this._hasMap.delete(key); });\n        }\n        return entry.get();\n    };\n    ObservableMap.prototype.set = function (key, value) {\n        var hasKey = this._has(key);\n        if (hasInterceptors(this)) {\n            var change = interceptChange(this, {\n                type: hasKey ? \"update\" : \"add\",\n                object: this,\n                newValue: value,\n                name: key\n            });\n            if (!change)\n                return this;\n            value = change.newValue;\n        }\n        if (hasKey) {\n            this._updateValue(key, value);\n        }\n        else {\n            this._addValue(key, value);\n        }\n        return this;\n    };\n    ObservableMap.prototype.delete = function (key) {\n        var _this = this;\n        checkIfStateModificationsAreAllowed(this._keysAtom);\n        if (hasInterceptors(this)) {\n            var change = interceptChange(this, {\n                type: \"delete\",\n                object: this,\n                name: key\n            });\n            if (!change)\n                return false;\n        }\n        if (this._has(key)) {\n            var notifySpy = isSpyEnabled();\n            var notify = hasListeners(this);\n            var change = notify || notifySpy\n                ? {\n                    type: \"delete\",\n                    object: this,\n                    oldValue: this._data.get(key).value,\n                    name: key\n                }\n                : null;\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportStart(__assign(__assign({}, change), { name: this.name, key: key }));\n            transaction(function () {\n                _this._keysAtom.reportChanged();\n                _this._updateHasMapEntry(key, false);\n                var observable = _this._data.get(key);\n                observable.setNewValue(undefined);\n                _this._data.delete(key);\n            });\n            if (notify)\n                notifyListeners(this, change);\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportEnd();\n            return true;\n        }\n        return false;\n    };\n    ObservableMap.prototype._updateHasMapEntry = function (key, value) {\n        var entry = this._hasMap.get(key);\n        if (entry) {\n            entry.setNewValue(value);\n        }\n    };\n    ObservableMap.prototype._updateValue = function (key, newValue) {\n        var observable = this._data.get(key);\n        newValue = observable.prepareNewValue(newValue);\n        if (newValue !== globalState.UNCHANGED) {\n            var notifySpy = isSpyEnabled();\n            var notify = hasListeners(this);\n            var change = notify || notifySpy\n                ? {\n                    type: \"update\",\n                    object: this,\n                    oldValue: observable.value,\n                    name: key,\n                    newValue: newValue\n                }\n                : null;\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportStart(__assign(__assign({}, change), { name: this.name, key: key }));\n            observable.setNewValue(newValue);\n            if (notify)\n                notifyListeners(this, change);\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportEnd();\n        }\n    };\n    ObservableMap.prototype._addValue = function (key, newValue) {\n        var _this = this;\n        checkIfStateModificationsAreAllowed(this._keysAtom);\n        transaction(function () {\n            var observable = new ObservableValue(newValue, _this.enhancer, _this.name + \".\" + stringifyKey(key), false);\n            _this._data.set(key, observable);\n            newValue = observable.value; // value might have been changed\n            _this._updateHasMapEntry(key, true);\n            _this._keysAtom.reportChanged();\n        });\n        var notifySpy = isSpyEnabled();\n        var notify = hasListeners(this);\n        var change = notify || notifySpy\n            ? {\n                type: \"add\",\n                object: this,\n                name: key,\n                newValue: newValue\n            }\n            : null;\n        if (notifySpy && process.env.NODE_ENV !== \"production\")\n            spyReportStart(__assign(__assign({}, change), { name: this.name, key: key }));\n        if (notify)\n            notifyListeners(this, change);\n        if (notifySpy && process.env.NODE_ENV !== \"production\")\n            spyReportEnd();\n    };\n    ObservableMap.prototype.get = function (key) {\n        if (this.has(key))\n            return this.dehanceValue(this._data.get(key).get());\n        return this.dehanceValue(undefined);\n    };\n    ObservableMap.prototype.dehanceValue = function (value) {\n        if (this.dehancer !== undefined) {\n            return this.dehancer(value);\n        }\n        return value;\n    };\n    ObservableMap.prototype.keys = function () {\n        this._keysAtom.reportObserved();\n        return this._data.keys();\n    };\n    ObservableMap.prototype.values = function () {\n        var self = this;\n        var keys = this.keys();\n        return makeIterable({\n            next: function () {\n                var _b = keys.next(), done = _b.done, value = _b.value;\n                return {\n                    done: done,\n                    value: done ? undefined : self.get(value)\n                };\n            }\n        });\n    };\n    ObservableMap.prototype.entries = function () {\n        var self = this;\n        var keys = this.keys();\n        return makeIterable({\n            next: function () {\n                var _b = keys.next(), done = _b.done, value = _b.value;\n                return {\n                    done: done,\n                    value: done ? undefined : [value, self.get(value)]\n                };\n            }\n        });\n    };\n    ObservableMap.prototype[(_a = $mobx, Symbol.iterator)] = function () {\n        return this.entries();\n    };\n    ObservableMap.prototype.forEach = function (callback, thisArg) {\n        var e_1, _b;\n        try {\n            for (var _c = __values(this), _d = _c.next(); !_d.done; _d = _c.next()) {\n                var _e = __read(_d.value, 2), key = _e[0], value = _e[1];\n                callback.call(thisArg, value, key, this);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n    };\n    /** Merge another object into this object, returns this. */\n    ObservableMap.prototype.merge = function (other) {\n        var _this = this;\n        if (isObservableMap(other)) {\n            other = other.toJS();\n        }\n        transaction(function () {\n            var prev = allowStateChangesStart(true);\n            try {\n                if (isPlainObject(other))\n                    getPlainObjectKeys(other).forEach(function (key) {\n                        return _this.set(key, other[key]);\n                    });\n                else if (Array.isArray(other))\n                    other.forEach(function (_b) {\n                        var _c = __read(_b, 2), key = _c[0], value = _c[1];\n                        return _this.set(key, value);\n                    });\n                else if (isES6Map(other)) {\n                    if (other.constructor !== Map)\n                        fail(\"Cannot initialize from classes that inherit from Map: \" + other.constructor.name); // prettier-ignore\n                    other.forEach(function (value, key) { return _this.set(key, value); });\n                }\n                else if (other !== null && other !== undefined)\n                    fail(\"Cannot initialize map from \" + other);\n            }\n            finally {\n                allowStateChangesEnd(prev);\n            }\n        });\n        return this;\n    };\n    ObservableMap.prototype.clear = function () {\n        var _this = this;\n        transaction(function () {\n            untracked(function () {\n                var e_2, _b;\n                try {\n                    for (var _c = __values(_this.keys()), _d = _c.next(); !_d.done; _d = _c.next()) {\n                        var key = _d.value;\n                        _this.delete(key);\n                    }\n                }\n                catch (e_2_1) { e_2 = { error: e_2_1 }; }\n                finally {\n                    try {\n                        if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n                    }\n                    finally { if (e_2) throw e_2.error; }\n                }\n            });\n        });\n    };\n    ObservableMap.prototype.replace = function (values) {\n        var _this = this;\n        // Implementation requirements:\n        // - respect ordering of replacement map\n        // - allow interceptors to run and potentially prevent individual operations\n        // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n        // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n        // - note that result map may differ from replacement map due to the interceptors\n        transaction(function () {\n            var e_3, _b, e_4, _c;\n            // Convert to map so we can do quick key lookups\n            var replacementMap = convertToMap(values);\n            var orderedData = new Map();\n            // Used for optimization\n            var keysReportChangedCalled = false;\n            try {\n                // Delete keys that don't exist in replacement map\n                // if the key deletion is prevented by interceptor\n                // add entry at the beginning of the result map\n                for (var _d = __values(_this._data.keys()), _e = _d.next(); !_e.done; _e = _d.next()) {\n                    var key = _e.value;\n                    // Concurrently iterating/deleting keys\n                    // iterator should handle this correctly\n                    if (!replacementMap.has(key)) {\n                        var deleted = _this.delete(key);\n                        // Was the key removed?\n                        if (deleted) {\n                            // _keysAtom.reportChanged() was already called\n                            keysReportChangedCalled = true;\n                        }\n                        else {\n                            // Delete prevented by interceptor\n                            var value = _this._data.get(key);\n                            orderedData.set(key, value);\n                        }\n                    }\n                }\n            }\n            catch (e_3_1) { e_3 = { error: e_3_1 }; }\n            finally {\n                try {\n                    if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n                }\n                finally { if (e_3) throw e_3.error; }\n            }\n            try {\n                // Merge entries\n                for (var _f = __values(replacementMap.entries()), _g = _f.next(); !_g.done; _g = _f.next()) {\n                    var _h = __read(_g.value, 2), key = _h[0], value = _h[1];\n                    // We will want to know whether a new key is added\n                    var keyExisted = _this._data.has(key);\n                    // Add or update value\n                    _this.set(key, value);\n                    // The addition could have been prevent by interceptor\n                    if (_this._data.has(key)) {\n                        // The update could have been prevented by interceptor\n                        // and also we want to preserve existing values\n                        // so use value from _data map (instead of replacement map)\n                        var value_1 = _this._data.get(key);\n                        orderedData.set(key, value_1);\n                        // Was a new key added?\n                        if (!keyExisted) {\n                            // _keysAtom.reportChanged() was already called\n                            keysReportChangedCalled = true;\n                        }\n                    }\n                }\n            }\n            catch (e_4_1) { e_4 = { error: e_4_1 }; }\n            finally {\n                try {\n                    if (_g && !_g.done && (_c = _f.return)) _c.call(_f);\n                }\n                finally { if (e_4) throw e_4.error; }\n            }\n            // Check for possible key order change\n            if (!keysReportChangedCalled) {\n                if (_this._data.size !== orderedData.size) {\n                    // If size differs, keys are definitely modified\n                    _this._keysAtom.reportChanged();\n                }\n                else {\n                    var iter1 = _this._data.keys();\n                    var iter2 = orderedData.keys();\n                    var next1 = iter1.next();\n                    var next2 = iter2.next();\n                    while (!next1.done) {\n                        if (next1.value !== next2.value) {\n                            _this._keysAtom.reportChanged();\n                            break;\n                        }\n                        next1 = iter1.next();\n                        next2 = iter2.next();\n                    }\n                }\n            }\n            // Use correctly ordered map\n            _this._data = orderedData;\n        });\n        return this;\n    };\n    Object.defineProperty(ObservableMap.prototype, \"size\", {\n        get: function () {\n            this._keysAtom.reportObserved();\n            return this._data.size;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * Returns a plain object that represents this map.\n     * Note that all the keys being stringified.\n     * If there are duplicating keys after converting them to strings, behaviour is undetermined.\n     */\n    ObservableMap.prototype.toPOJO = function () {\n        var e_5, _b;\n        var res = {};\n        try {\n            for (var _c = __values(this), _d = _c.next(); !_d.done; _d = _c.next()) {\n                var _e = __read(_d.value, 2), key = _e[0], value = _e[1];\n                // We lie about symbol key types due to https://github.com/Microsoft/TypeScript/issues/1863\n                res[typeof key === \"symbol\" ? key : stringifyKey(key)] = value;\n            }\n        }\n        catch (e_5_1) { e_5 = { error: e_5_1 }; }\n        finally {\n            try {\n                if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n            }\n            finally { if (e_5) throw e_5.error; }\n        }\n        return res;\n    };\n    /**\n     * Returns a shallow non observable object clone of this map.\n     * Note that the values migth still be observable. For a deep clone use mobx.toJS.\n     */\n    ObservableMap.prototype.toJS = function () {\n        return new Map(this);\n    };\n    ObservableMap.prototype.toJSON = function () {\n        // Used by JSON.stringify\n        return this.toPOJO();\n    };\n    ObservableMap.prototype.toString = function () {\n        var _this = this;\n        return (this.name +\n            \"[{ \" +\n            Array.from(this.keys())\n                .map(function (key) { return stringifyKey(key) + \": \" + (\"\" + _this.get(key)); })\n                .join(\", \") +\n            \" }]\");\n    };\n    /**\n     * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n     * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n     * for callback details\n     */\n    ObservableMap.prototype.observe = function (listener, fireImmediately) {\n        process.env.NODE_ENV !== \"production\" &&\n            invariant(fireImmediately !== true, \"`observe` doesn't support fireImmediately=true in combination with maps.\");\n        return registerListener(this, listener);\n    };\n    ObservableMap.prototype.intercept = function (handler) {\n        return registerInterceptor(this, handler);\n    };\n    return ObservableMap;\n}());\n/* 'var' fixes small-build issue */\nvar isObservableMap = createInstanceofPredicate(\"ObservableMap\", ObservableMap);\n\nvar _a$1;\nvar ObservableSetMarker = {};\nvar ObservableSet = /** @class */ (function () {\n    function ObservableSet(initialData, enhancer, name) {\n        if (enhancer === void 0) { enhancer = deepEnhancer; }\n        if (name === void 0) { name = \"ObservableSet@\" + getNextId(); }\n        this.name = name;\n        this[_a$1] = ObservableSetMarker;\n        this._data = new Set();\n        this._atom = createAtom(this.name);\n        this[Symbol.toStringTag] = \"Set\";\n        if (typeof Set !== \"function\") {\n            throw new Error(\"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\");\n        }\n        this.enhancer = function (newV, oldV) { return enhancer(newV, oldV, name); };\n        if (initialData) {\n            this.replace(initialData);\n        }\n    }\n    ObservableSet.prototype.dehanceValue = function (value) {\n        if (this.dehancer !== undefined) {\n            return this.dehancer(value);\n        }\n        return value;\n    };\n    ObservableSet.prototype.clear = function () {\n        var _this = this;\n        transaction(function () {\n            untracked(function () {\n                var e_1, _b;\n                try {\n                    for (var _c = __values(_this._data.values()), _d = _c.next(); !_d.done; _d = _c.next()) {\n                        var value = _d.value;\n                        _this.delete(value);\n                    }\n                }\n                catch (e_1_1) { e_1 = { error: e_1_1 }; }\n                finally {\n                    try {\n                        if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n                    }\n                    finally { if (e_1) throw e_1.error; }\n                }\n            });\n        });\n    };\n    ObservableSet.prototype.forEach = function (callbackFn, thisArg) {\n        var e_2, _b;\n        try {\n            for (var _c = __values(this), _d = _c.next(); !_d.done; _d = _c.next()) {\n                var value = _d.value;\n                callbackFn.call(thisArg, value, value, this);\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n    };\n    Object.defineProperty(ObservableSet.prototype, \"size\", {\n        get: function () {\n            this._atom.reportObserved();\n            return this._data.size;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    ObservableSet.prototype.add = function (value) {\n        var _this = this;\n        checkIfStateModificationsAreAllowed(this._atom);\n        if (hasInterceptors(this)) {\n            var change = interceptChange(this, {\n                type: \"add\",\n                object: this,\n                newValue: value\n            });\n            if (!change)\n                return this;\n            // TODO: ideally, value = change.value would be done here, so that values can be\n            // changed by interceptor. Same applies for other Set and Map api's.\n        }\n        if (!this.has(value)) {\n            transaction(function () {\n                _this._data.add(_this.enhancer(value, undefined));\n                _this._atom.reportChanged();\n            });\n            var notifySpy = isSpyEnabled();\n            var notify = hasListeners(this);\n            var change = notify || notifySpy\n                ? {\n                    type: \"add\",\n                    object: this,\n                    newValue: value\n                }\n                : null;\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportStart(change);\n            if (notify)\n                notifyListeners(this, change);\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportEnd();\n        }\n        return this;\n    };\n    ObservableSet.prototype.delete = function (value) {\n        var _this = this;\n        if (hasInterceptors(this)) {\n            var change = interceptChange(this, {\n                type: \"delete\",\n                object: this,\n                oldValue: value\n            });\n            if (!change)\n                return false;\n        }\n        if (this.has(value)) {\n            var notifySpy = isSpyEnabled();\n            var notify = hasListeners(this);\n            var change = notify || notifySpy\n                ? {\n                    type: \"delete\",\n                    object: this,\n                    oldValue: value\n                }\n                : null;\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportStart(__assign(__assign({}, change), { name: this.name }));\n            transaction(function () {\n                _this._atom.reportChanged();\n                _this._data.delete(value);\n            });\n            if (notify)\n                notifyListeners(this, change);\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportEnd();\n            return true;\n        }\n        return false;\n    };\n    ObservableSet.prototype.has = function (value) {\n        this._atom.reportObserved();\n        return this._data.has(this.dehanceValue(value));\n    };\n    ObservableSet.prototype.entries = function () {\n        var nextIndex = 0;\n        var keys = Array.from(this.keys());\n        var values = Array.from(this.values());\n        return makeIterable({\n            next: function () {\n                var index = nextIndex;\n                nextIndex += 1;\n                return index < values.length\n                    ? { value: [keys[index], values[index]], done: false }\n                    : { done: true };\n            }\n        });\n    };\n    ObservableSet.prototype.keys = function () {\n        return this.values();\n    };\n    ObservableSet.prototype.values = function () {\n        this._atom.reportObserved();\n        var self = this;\n        var nextIndex = 0;\n        var observableValues = Array.from(this._data.values());\n        return makeIterable({\n            next: function () {\n                return nextIndex < observableValues.length\n                    ? { value: self.dehanceValue(observableValues[nextIndex++]), done: false }\n                    : { done: true };\n            }\n        });\n    };\n    ObservableSet.prototype.replace = function (other) {\n        var _this = this;\n        if (isObservableSet(other)) {\n            other = other.toJS();\n        }\n        transaction(function () {\n            var prev = allowStateChangesStart(true);\n            try {\n                if (Array.isArray(other)) {\n                    _this.clear();\n                    other.forEach(function (value) { return _this.add(value); });\n                }\n                else if (isES6Set(other)) {\n                    _this.clear();\n                    other.forEach(function (value) { return _this.add(value); });\n                }\n                else if (other !== null && other !== undefined) {\n                    fail(\"Cannot initialize set from \" + other);\n                }\n            }\n            finally {\n                allowStateChangesEnd(prev);\n            }\n        });\n        return this;\n    };\n    ObservableSet.prototype.observe = function (listener, fireImmediately) {\n        // TODO 'fireImmediately' can be true?\n        process.env.NODE_ENV !== \"production\" &&\n            invariant(fireImmediately !== true, \"`observe` doesn't support fireImmediately=true in combination with sets.\");\n        return registerListener(this, listener);\n    };\n    ObservableSet.prototype.intercept = function (handler) {\n        return registerInterceptor(this, handler);\n    };\n    ObservableSet.prototype.toJS = function () {\n        return new Set(this);\n    };\n    ObservableSet.prototype.toString = function () {\n        return this.name + \"[ \" + Array.from(this).join(\", \") + \" ]\";\n    };\n    ObservableSet.prototype[(_a$1 = $mobx, Symbol.iterator)] = function () {\n        return this.values();\n    };\n    return ObservableSet;\n}());\nvar isObservableSet = createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar ObservableObjectAdministration = /** @class */ (function () {\n    function ObservableObjectAdministration(target, values, name, defaultEnhancer) {\n        if (values === void 0) { values = new Map(); }\n        this.target = target;\n        this.values = values;\n        this.name = name;\n        this.defaultEnhancer = defaultEnhancer;\n        this.keysAtom = new Atom(name + \".keys\");\n    }\n    ObservableObjectAdministration.prototype.read = function (key) {\n        return this.values.get(key).get();\n    };\n    ObservableObjectAdministration.prototype.write = function (key, newValue) {\n        var instance = this.target;\n        var observable = this.values.get(key);\n        if (observable instanceof ComputedValue) {\n            observable.set(newValue);\n            return;\n        }\n        // intercept\n        if (hasInterceptors(this)) {\n            var change = interceptChange(this, {\n                type: \"update\",\n                object: this.proxy || instance,\n                name: key,\n                newValue: newValue\n            });\n            if (!change)\n                return;\n            newValue = change.newValue;\n        }\n        newValue = observable.prepareNewValue(newValue);\n        // notify spy & observers\n        if (newValue !== globalState.UNCHANGED) {\n            var notify = hasListeners(this);\n            var notifySpy = isSpyEnabled();\n            var change = notify || notifySpy\n                ? {\n                    type: \"update\",\n                    object: this.proxy || instance,\n                    oldValue: observable.value,\n                    name: key,\n                    newValue: newValue\n                }\n                : null;\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportStart(__assign(__assign({}, change), { name: this.name, key: key }));\n            observable.setNewValue(newValue);\n            if (notify)\n                notifyListeners(this, change);\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportEnd();\n        }\n    };\n    ObservableObjectAdministration.prototype.has = function (key) {\n        var map = this.pendingKeys || (this.pendingKeys = new Map());\n        var entry = map.get(key);\n        if (entry)\n            return entry.get();\n        else {\n            var exists = !!this.values.get(key);\n            // Possible optimization: Don't have a separate map for non existing keys,\n            // but store them in the values map instead, using a special symbol to denote \"not existing\"\n            entry = new ObservableValue(exists, referenceEnhancer, this.name + \".\" + stringifyKey(key) + \"?\", false);\n            map.set(key, entry);\n            return entry.get(); // read to subscribe\n        }\n    };\n    ObservableObjectAdministration.prototype.addObservableProp = function (propName, newValue, enhancer) {\n        if (enhancer === void 0) { enhancer = this.defaultEnhancer; }\n        var target = this.target;\n        assertPropertyConfigurable(target, propName);\n        if (hasInterceptors(this)) {\n            var change = interceptChange(this, {\n                object: this.proxy || target,\n                name: propName,\n                type: \"add\",\n                newValue: newValue\n            });\n            if (!change)\n                return;\n            newValue = change.newValue;\n        }\n        var observable = new ObservableValue(newValue, enhancer, this.name + \".\" + stringifyKey(propName), false);\n        this.values.set(propName, observable);\n        newValue = observable.value; // observableValue might have changed it\n        Object.defineProperty(target, propName, generateObservablePropConfig(propName));\n        this.notifyPropertyAddition(propName, newValue);\n    };\n    ObservableObjectAdministration.prototype.addComputedProp = function (propertyOwner, // where is the property declared?\n    propName, options) {\n        var target = this.target;\n        options.name = options.name || this.name + \".\" + stringifyKey(propName);\n        this.values.set(propName, new ComputedValue(options));\n        if (propertyOwner === target || isPropertyConfigurable(propertyOwner, propName))\n            Object.defineProperty(propertyOwner, propName, generateComputedPropConfig(propName));\n    };\n    ObservableObjectAdministration.prototype.remove = function (key) {\n        if (!this.values.has(key))\n            return;\n        var target = this.target;\n        if (hasInterceptors(this)) {\n            var change = interceptChange(this, {\n                object: this.proxy || target,\n                name: key,\n                type: \"remove\"\n            });\n            if (!change)\n                return;\n        }\n        try {\n            startBatch();\n            var notify = hasListeners(this);\n            var notifySpy = isSpyEnabled();\n            var oldObservable = this.values.get(key);\n            var oldValue = oldObservable && oldObservable.get();\n            oldObservable && oldObservable.set(undefined);\n            // notify key and keyset listeners\n            this.keysAtom.reportChanged();\n            this.values.delete(key);\n            if (this.pendingKeys) {\n                var entry = this.pendingKeys.get(key);\n                if (entry)\n                    entry.set(false);\n            }\n            // delete the prop\n            delete this.target[key];\n            var change = notify || notifySpy\n                ? {\n                    type: \"remove\",\n                    object: this.proxy || target,\n                    oldValue: oldValue,\n                    name: key\n                }\n                : null;\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportStart(__assign(__assign({}, change), { name: this.name, key: key }));\n            if (notify)\n                notifyListeners(this, change);\n            if (notifySpy && process.env.NODE_ENV !== \"production\")\n                spyReportEnd();\n        }\n        finally {\n            endBatch();\n        }\n    };\n    ObservableObjectAdministration.prototype.illegalAccess = function (owner, propName) {\n        /**\n         * This happens if a property is accessed through the prototype chain, but the property was\n         * declared directly as own property on the prototype.\n         *\n         * E.g.:\n         * class A {\n         * }\n         * extendObservable(A.prototype, { x: 1 })\n         *\n         * classB extens A {\n         * }\n         * console.log(new B().x)\n         *\n         * It is unclear whether the property should be considered 'static' or inherited.\n         * Either use `console.log(A.x)`\n         * or: decorate(A, { x: observable })\n         *\n         * When using decorate, the property will always be redeclared as own property on the actual instance\n         */\n        console.warn(\"Property '\" + propName + \"' of '\" + owner + \"' was accessed through the prototype chain. Use 'decorate' instead to declare the prop or access it statically through it's owner\");\n    };\n    /**\n     * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n     * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n     * for callback details\n     */\n    ObservableObjectAdministration.prototype.observe = function (callback, fireImmediately) {\n        process.env.NODE_ENV !== \"production\" &&\n            invariant(fireImmediately !== true, \"`observe` doesn't support the fire immediately property for observable objects.\");\n        return registerListener(this, callback);\n    };\n    ObservableObjectAdministration.prototype.intercept = function (handler) {\n        return registerInterceptor(this, handler);\n    };\n    ObservableObjectAdministration.prototype.notifyPropertyAddition = function (key, newValue) {\n        var notify = hasListeners(this);\n        var notifySpy = isSpyEnabled();\n        var change = notify || notifySpy\n            ? {\n                type: \"add\",\n                object: this.proxy || this.target,\n                name: key,\n                newValue: newValue\n            }\n            : null;\n        if (notifySpy && process.env.NODE_ENV !== \"production\")\n            spyReportStart(__assign(__assign({}, change), { name: this.name, key: key }));\n        if (notify)\n            notifyListeners(this, change);\n        if (notifySpy && process.env.NODE_ENV !== \"production\")\n            spyReportEnd();\n        if (this.pendingKeys) {\n            var entry = this.pendingKeys.get(key);\n            if (entry)\n                entry.set(true);\n        }\n        this.keysAtom.reportChanged();\n    };\n    ObservableObjectAdministration.prototype.getKeys = function () {\n        var e_1, _a;\n        this.keysAtom.reportObserved();\n        // return Reflect.ownKeys(this.values) as any\n        var res = [];\n        try {\n            for (var _b = __values(this.values), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var _d = __read(_c.value, 2), key = _d[0], value = _d[1];\n                if (value instanceof ObservableValue)\n                    res.push(key);\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        return res;\n    };\n    return ObservableObjectAdministration;\n}());\nfunction asObservableObject(target, name, defaultEnhancer) {\n    if (name === void 0) { name = \"\"; }\n    if (defaultEnhancer === void 0) { defaultEnhancer = deepEnhancer; }\n    if (Object.prototype.hasOwnProperty.call(target, $mobx))\n        return target[$mobx];\n    process.env.NODE_ENV !== \"production\" &&\n        invariant(Object.isExtensible(target), \"Cannot make the designated object observable; it is not extensible\");\n    if (!isPlainObject(target))\n        name = (target.constructor.name || \"ObservableObject\") + \"@\" + getNextId();\n    if (!name)\n        name = \"ObservableObject@\" + getNextId();\n    var adm = new ObservableObjectAdministration(target, new Map(), stringifyKey(name), defaultEnhancer);\n    addHiddenProp(target, $mobx, adm);\n    return adm;\n}\nvar observablePropertyConfigs = Object.create(null);\nvar computedPropertyConfigs = Object.create(null);\nfunction generateObservablePropConfig(propName) {\n    return (observablePropertyConfigs[propName] ||\n        (observablePropertyConfigs[propName] = {\n            configurable: true,\n            enumerable: true,\n            get: function () {\n                return this[$mobx].read(propName);\n            },\n            set: function (v) {\n                this[$mobx].write(propName, v);\n            }\n        }));\n}\nfunction getAdministrationForComputedPropOwner(owner) {\n    var adm = owner[$mobx];\n    if (!adm) {\n        // because computed props are declared on proty,\n        // the current instance might not have been initialized yet\n        initializeInstance(owner);\n        return owner[$mobx];\n    }\n    return adm;\n}\nfunction generateComputedPropConfig(propName) {\n    return (computedPropertyConfigs[propName] ||\n        (computedPropertyConfigs[propName] = {\n            configurable: globalState.computedConfigurable,\n            enumerable: false,\n            get: function () {\n                return getAdministrationForComputedPropOwner(this).read(propName);\n            },\n            set: function (v) {\n                getAdministrationForComputedPropOwner(this).write(propName, v);\n            }\n        }));\n}\nvar isObservableObjectAdministration = createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction isObservableObject(thing) {\n    if (isObject(thing)) {\n        // Initializers run lazily when transpiling to babel, so make sure they are run...\n        initializeInstance(thing);\n        return isObservableObjectAdministration(thing[$mobx]);\n    }\n    return false;\n}\n\nfunction getAtom(thing, property) {\n    if (typeof thing === \"object\" && thing !== null) {\n        if (isObservableArray(thing)) {\n            if (property !== undefined)\n                fail(process.env.NODE_ENV !== \"production\" &&\n                    \"It is not possible to get index atoms from arrays\");\n            return thing[$mobx].atom;\n        }\n        if (isObservableSet(thing)) {\n            return thing[$mobx];\n        }\n        if (isObservableMap(thing)) {\n            var anyThing = thing;\n            if (property === undefined)\n                return anyThing._keysAtom;\n            var observable = anyThing._data.get(property) || anyThing._hasMap.get(property);\n            if (!observable)\n                fail(process.env.NODE_ENV !== \"production\" &&\n                    \"the entry '\" + property + \"' does not exist in the observable map '\" + getDebugName(thing) + \"'\");\n            return observable;\n        }\n        // Initializers run lazily when transpiling to babel, so make sure they are run...\n        initializeInstance(thing);\n        if (property && !thing[$mobx])\n            thing[property]; // See #1072\n        if (isObservableObject(thing)) {\n            if (!property)\n                return fail(process.env.NODE_ENV !== \"production\" && \"please specify a property\");\n            var observable = thing[$mobx].values.get(property);\n            if (!observable)\n                fail(process.env.NODE_ENV !== \"production\" &&\n                    \"no observable property '\" + property + \"' found on the observable object '\" + getDebugName(thing) + \"'\");\n            return observable;\n        }\n        if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n            return thing;\n        }\n    }\n    else if (typeof thing === \"function\") {\n        if (isReaction(thing[$mobx])) {\n            // disposer function\n            return thing[$mobx];\n        }\n    }\n    return fail(process.env.NODE_ENV !== \"production\" && \"Cannot obtain atom from \" + thing);\n}\nfunction getAdministration(thing, property) {\n    if (!thing)\n        fail(\"Expecting some object\");\n    if (property !== undefined)\n        return getAdministration(getAtom(thing, property));\n    if (isAtom(thing) || isComputedValue(thing) || isReaction(thing))\n        return thing;\n    if (isObservableMap(thing) || isObservableSet(thing))\n        return thing;\n    // Initializers run lazily when transpiling to babel, so make sure they are run...\n    initializeInstance(thing);\n    if (thing[$mobx])\n        return thing[$mobx];\n    fail(process.env.NODE_ENV !== \"production\" && \"Cannot obtain administration from \" + thing);\n}\nfunction getDebugName(thing, property) {\n    var named;\n    if (property !== undefined)\n        named = getAtom(thing, property);\n    else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing))\n        named = getAdministration(thing);\n    else\n        named = getAtom(thing); // valid for arrays as well\n    return named.name;\n}\n\nvar toString = Object.prototype.toString;\nfunction deepEqual(a, b, depth) {\n    if (depth === void 0) { depth = -1; }\n    return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n    // Identical objects are equal. `0 === -0`, but they aren't identical.\n    // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n    if (a === b)\n        return a !== 0 || 1 / a === 1 / b;\n    // `null` or `undefined` only equal to itself (strict comparison).\n    if (a == null || b == null)\n        return false;\n    // `NaN`s are equivalent, but non-reflexive.\n    if (a !== a)\n        return b !== b;\n    // Exhaust primitive checks\n    var type = typeof a;\n    if (type !== \"function\" && type !== \"object\" && typeof b != \"object\")\n        return false;\n    // Compare `[[Class]]` names.\n    var className = toString.call(a);\n    if (className !== toString.call(b))\n        return false;\n    switch (className) {\n        // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n        case \"[object RegExp]\":\n        // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n        case \"[object String]\":\n            // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n            // equivalent to `new String(\"5\")`.\n            return \"\" + a === \"\" + b;\n        case \"[object Number]\":\n            // `NaN`s are equivalent, but non-reflexive.\n            // Object(NaN) is equivalent to NaN.\n            if (+a !== +a)\n                return +b !== +b;\n            // An `egal` comparison is performed for other numeric values.\n            return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n        case \"[object Date]\":\n        case \"[object Boolean]\":\n            // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n            // millisecond representations. Note that invalid dates with millisecond representations\n            // of `NaN` are not equivalent.\n            return +a === +b;\n        case \"[object Symbol]\":\n            return (typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b));\n        case \"[object Map]\":\n        case \"[object Set]\":\n            // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n            // Hide this extra level by increasing the depth.\n            if (depth >= 0) {\n                depth++;\n            }\n            break;\n    }\n    // Unwrap any wrapped objects.\n    a = unwrap(a);\n    b = unwrap(b);\n    var areArrays = className === \"[object Array]\";\n    if (!areArrays) {\n        if (typeof a != \"object\" || typeof b != \"object\")\n            return false;\n        // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n        // from different frames are.\n        var aCtor = a.constructor, bCtor = b.constructor;\n        if (aCtor !== bCtor &&\n            !(typeof aCtor === \"function\" &&\n                aCtor instanceof aCtor &&\n                typeof bCtor === \"function\" &&\n                bCtor instanceof bCtor) &&\n            (\"constructor\" in a && \"constructor\" in b)) {\n            return false;\n        }\n    }\n    if (depth === 0) {\n        return false;\n    }\n    else if (depth < 0) {\n        depth = -1;\n    }\n    // Assume equality for cyclic structures. The algorithm for detecting cyclic\n    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n    // Initializing stack of traversed objects.\n    // It's done here since we only need them for objects and arrays comparison.\n    aStack = aStack || [];\n    bStack = bStack || [];\n    var length = aStack.length;\n    while (length--) {\n        // Linear search. Performance is inversely proportional to the number of\n        // unique nested structures.\n        if (aStack[length] === a)\n            return bStack[length] === b;\n    }\n    // Add the first object to the stack of traversed objects.\n    aStack.push(a);\n    bStack.push(b);\n    // Recursively compare objects and arrays.\n    if (areArrays) {\n        // Compare array lengths to determine if a deep comparison is necessary.\n        length = a.length;\n        if (length !== b.length)\n            return false;\n        // Deep compare the contents, ignoring non-numeric properties.\n        while (length--) {\n            if (!eq(a[length], b[length], depth - 1, aStack, bStack))\n                return false;\n        }\n    }\n    else {\n        // Deep compare objects.\n        var keys = Object.keys(a);\n        var key = void 0;\n        length = keys.length;\n        // Ensure that both objects contain the same number of properties before comparing deep equality.\n        if (Object.keys(b).length !== length)\n            return false;\n        while (length--) {\n            // Deep compare each member\n            key = keys[length];\n            if (!(has$1(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack)))\n                return false;\n        }\n    }\n    // Remove the first object from the stack of traversed objects.\n    aStack.pop();\n    bStack.pop();\n    return true;\n}\nfunction unwrap(a) {\n    if (isObservableArray(a))\n        return a.slice();\n    if (isES6Map(a) || isObservableMap(a))\n        return Array.from(a.entries());\n    if (isES6Set(a) || isObservableSet(a))\n        return Array.from(a.entries());\n    return a;\n}\nfunction has$1(a, key) {\n    return Object.prototype.hasOwnProperty.call(a, key);\n}\n\nfunction makeIterable(iterator) {\n    iterator[Symbol.iterator] = getSelf;\n    return iterator;\n}\nfunction getSelf() {\n    return this;\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2018\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get an global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/     Most of the public static methods exposed by the module can be found here.\n * - core/    Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/   All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/   Utility stuff.\n *\n */\nif (typeof Proxy === \"undefined\" || typeof Symbol === \"undefined\") {\n    throw new Error(\"[mobx] MobX 5+ requires Proxy and Symbol objects. If your environment doesn't support Symbol or Proxy objects, please downgrade to MobX 4. For React Native Android, consider upgrading JSCore.\");\n}\ntry {\n    // define process.env if needed\n    // if this is not a production build in the first place\n    // (in which case the expression below would be substituted with 'production')\n    process.env.NODE_ENV;\n}\ncatch (e) {\n    var g = getGlobal();\n    if (typeof process === \"undefined\")\n        g.process = {};\n    g.process.env = {};\n}\n(function () {\n    function testCodeMinification() { }\n    if (testCodeMinification.name !== \"testCodeMinification\" &&\n        process.env.NODE_ENV !== \"production\" &&\n        typeof process !== 'undefined' && process.env.IGNORE_MOBX_MINIFY_WARNING !== \"true\") {\n        // trick so it doesn't get replaced\n        var varName = [\"process\", \"env\", \"NODE_ENV\"].join(\".\");\n        console.warn(\"[mobx] you are running a minified build, but '\" + varName + \"' was not set to 'production' in your bundler. This results in an unnecessarily large and slow bundle\");\n    }\n})();\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n    // See: https://github.com/andykog/mobx-devtools/\n    __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n        spy: spy,\n        extras: {\n            getDebugName: getDebugName\n        },\n        $mobx: $mobx\n    });\n}\n\nexport { $mobx, FlowCancellationError, IDerivationState, ObservableMap, ObservableSet, Reaction, allowStateChanges as _allowStateChanges, allowStateChangesInsideComputed as _allowStateChangesInsideComputed, allowStateReadsEnd as _allowStateReadsEnd, allowStateReadsStart as _allowStateReadsStart, _endAction, getAdministration as _getAdministration, getGlobalState as _getGlobalState, interceptReads as _interceptReads, isComputingDerivation as _isComputingDerivation, resetGlobalState as _resetGlobalState, _startAction, action, autorun, comparer, computed, configure, createAtom, decorate, entries, extendObservable, flow, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isArrayLike, isObservableValue as isBoxedObservable, isComputed, isComputedProp, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, observable, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when };\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n  if (typeof path !== 'string') {\n    throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n  }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n  var res = '';\n  var lastSegmentLength = 0;\n  var lastSlash = -1;\n  var dots = 0;\n  var code;\n  for (var i = 0; i <= path.length; ++i) {\n    if (i < path.length)\n      code = path.charCodeAt(i);\n    else if (code === 47 /*/*/)\n      break;\n    else\n      code = 47 /*/*/;\n    if (code === 47 /*/*/) {\n      if (lastSlash === i - 1 || dots === 1) {\n        // NOOP\n      } else if (lastSlash !== i - 1 && dots === 2) {\n        if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n          if (res.length > 2) {\n            var lastSlashIndex = res.lastIndexOf('/');\n            if (lastSlashIndex !== res.length - 1) {\n              if (lastSlashIndex === -1) {\n                res = '';\n                lastSegmentLength = 0;\n              } else {\n                res = res.slice(0, lastSlashIndex);\n                lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n              }\n              lastSlash = i;\n              dots = 0;\n              continue;\n            }\n          } else if (res.length === 2 || res.length === 1) {\n            res = '';\n            lastSegmentLength = 0;\n            lastSlash = i;\n            dots = 0;\n            continue;\n          }\n        }\n        if (allowAboveRoot) {\n          if (res.length > 0)\n            res += '/..';\n          else\n            res = '..';\n          lastSegmentLength = 2;\n        }\n      } else {\n        if (res.length > 0)\n          res += '/' + path.slice(lastSlash + 1, i);\n        else\n          res = path.slice(lastSlash + 1, i);\n        lastSegmentLength = i - lastSlash - 1;\n      }\n      lastSlash = i;\n      dots = 0;\n    } else if (code === 46 /*.*/ && dots !== -1) {\n      ++dots;\n    } else {\n      dots = -1;\n    }\n  }\n  return res;\n}\n\nfunction _format(sep, pathObject) {\n  var dir = pathObject.dir || pathObject.root;\n  var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n  if (!dir) {\n    return base;\n  }\n  if (dir === pathObject.root) {\n    return dir + base;\n  }\n  return dir + sep + base;\n}\n\nvar posix = {\n  // path.resolve([from ...], to)\n  resolve: function resolve() {\n    var resolvedPath = '';\n    var resolvedAbsolute = false;\n    var cwd;\n\n    for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n      var path;\n      if (i >= 0)\n        path = arguments[i];\n      else {\n        if (cwd === undefined)\n          cwd = process.cwd();\n        path = cwd;\n      }\n\n      assertPath(path);\n\n      // Skip empty entries\n      if (path.length === 0) {\n        continue;\n      }\n\n      resolvedPath = path + '/' + resolvedPath;\n      resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n    }\n\n    // At this point the path should be resolved to a full absolute path, but\n    // handle relative paths to be safe (might happen when process.cwd() fails)\n\n    // Normalize the path\n    resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n    if (resolvedAbsolute) {\n      if (resolvedPath.length > 0)\n        return '/' + resolvedPath;\n      else\n        return '/';\n    } else if (resolvedPath.length > 0) {\n      return resolvedPath;\n    } else {\n      return '.';\n    }\n  },\n\n  normalize: function normalize(path) {\n    assertPath(path);\n\n    if (path.length === 0) return '.';\n\n    var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n    var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n    // Normalize the path\n    path = normalizeStringPosix(path, !isAbsolute);\n\n    if (path.length === 0 && !isAbsolute) path = '.';\n    if (path.length > 0 && trailingSeparator) path += '/';\n\n    if (isAbsolute) return '/' + path;\n    return path;\n  },\n\n  isAbsolute: function isAbsolute(path) {\n    assertPath(path);\n    return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n  },\n\n  join: function join() {\n    if (arguments.length === 0)\n      return '.';\n    var joined;\n    for (var i = 0; i < arguments.length; ++i) {\n      var arg = arguments[i];\n      assertPath(arg);\n      if (arg.length > 0) {\n        if (joined === undefined)\n          joined = arg;\n        else\n          joined += '/' + arg;\n      }\n    }\n    if (joined === undefined)\n      return '.';\n    return posix.normalize(joined);\n  },\n\n  relative: function relative(from, to) {\n    assertPath(from);\n    assertPath(to);\n\n    if (from === to) return '';\n\n    from = posix.resolve(from);\n    to = posix.resolve(to);\n\n    if (from === to) return '';\n\n    // Trim any leading backslashes\n    var fromStart = 1;\n    for (; fromStart < from.length; ++fromStart) {\n      if (from.charCodeAt(fromStart) !== 47 /*/*/)\n        break;\n    }\n    var fromEnd = from.length;\n    var fromLen = fromEnd - fromStart;\n\n    // Trim any leading backslashes\n    var toStart = 1;\n    for (; toStart < to.length; ++toStart) {\n      if (to.charCodeAt(toStart) !== 47 /*/*/)\n        break;\n    }\n    var toEnd = to.length;\n    var toLen = toEnd - toStart;\n\n    // Compare paths to find the longest common path from root\n    var length = fromLen < toLen ? fromLen : toLen;\n    var lastCommonSep = -1;\n    var i = 0;\n    for (; i <= length; ++i) {\n      if (i === length) {\n        if (toLen > length) {\n          if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n            // We get here if `from` is the exact base path for `to`.\n            // For example: from='/foo/bar'; to='/foo/bar/baz'\n            return to.slice(toStart + i + 1);\n          } else if (i === 0) {\n            // We get here if `from` is the root\n            // For example: from='/'; to='/foo'\n            return to.slice(toStart + i);\n          }\n        } else if (fromLen > length) {\n          if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n            // We get here if `to` is the exact base path for `from`.\n            // For example: from='/foo/bar/baz'; to='/foo/bar'\n            lastCommonSep = i;\n          } else if (i === 0) {\n            // We get here if `to` is the root.\n            // For example: from='/foo'; to='/'\n            lastCommonSep = 0;\n          }\n        }\n        break;\n      }\n      var fromCode = from.charCodeAt(fromStart + i);\n      var toCode = to.charCodeAt(toStart + i);\n      if (fromCode !== toCode)\n        break;\n      else if (fromCode === 47 /*/*/)\n        lastCommonSep = i;\n    }\n\n    var out = '';\n    // Generate the relative path based on the path difference between `to`\n    // and `from`\n    for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n      if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n        if (out.length === 0)\n          out += '..';\n        else\n          out += '/..';\n      }\n    }\n\n    // Lastly, append the rest of the destination (`to`) path that comes after\n    // the common path parts\n    if (out.length > 0)\n      return out + to.slice(toStart + lastCommonSep);\n    else {\n      toStart += lastCommonSep;\n      if (to.charCodeAt(toStart) === 47 /*/*/)\n        ++toStart;\n      return to.slice(toStart);\n    }\n  },\n\n  _makeLong: function _makeLong(path) {\n    return path;\n  },\n\n  dirname: function dirname(path) {\n    assertPath(path);\n    if (path.length === 0) return '.';\n    var code = path.charCodeAt(0);\n    var hasRoot = code === 47 /*/*/;\n    var end = -1;\n    var matchedSlash = true;\n    for (var i = path.length - 1; i >= 1; --i) {\n      code = path.charCodeAt(i);\n      if (code === 47 /*/*/) {\n          if (!matchedSlash) {\n            end = i;\n            break;\n          }\n        } else {\n        // We saw the first non-path separator\n        matchedSlash = false;\n      }\n    }\n\n    if (end === -1) return hasRoot ? '/' : '.';\n    if (hasRoot && end === 1) return '//';\n    return path.slice(0, end);\n  },\n\n  basename: function basename(path, ext) {\n    if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n    assertPath(path);\n\n    var start = 0;\n    var end = -1;\n    var matchedSlash = true;\n    var i;\n\n    if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n      if (ext.length === path.length && ext === path) return '';\n      var extIdx = ext.length - 1;\n      var firstNonSlashEnd = -1;\n      for (i = path.length - 1; i >= 0; --i) {\n        var code = path.charCodeAt(i);\n        if (code === 47 /*/*/) {\n            // If we reached a path separator that was not part of a set of path\n            // separators at the end of the string, stop now\n            if (!matchedSlash) {\n              start = i + 1;\n              break;\n            }\n          } else {\n          if (firstNonSlashEnd === -1) {\n            // We saw the first non-path separator, remember this index in case\n            // we need it if the extension ends up not matching\n            matchedSlash = false;\n            firstNonSlashEnd = i + 1;\n          }\n          if (extIdx >= 0) {\n            // Try to match the explicit extension\n            if (code === ext.charCodeAt(extIdx)) {\n              if (--extIdx === -1) {\n                // We matched the extension, so mark this as the end of our path\n                // component\n                end = i;\n              }\n            } else {\n              // Extension does not match, so our result is the entire path\n              // component\n              extIdx = -1;\n              end = firstNonSlashEnd;\n            }\n          }\n        }\n      }\n\n      if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n      return path.slice(start, end);\n    } else {\n      for (i = path.length - 1; i >= 0; --i) {\n        if (path.charCodeAt(i) === 47 /*/*/) {\n            // If we reached a path separator that was not part of a set of path\n            // separators at the end of the string, stop now\n            if (!matchedSlash) {\n              start = i + 1;\n              break;\n            }\n          } else if (end === -1) {\n          // We saw the first non-path separator, mark this as the end of our\n          // path component\n          matchedSlash = false;\n          end = i + 1;\n        }\n      }\n\n      if (end === -1) return '';\n      return path.slice(start, end);\n    }\n  },\n\n  extname: function extname(path) {\n    assertPath(path);\n    var startDot = -1;\n    var startPart = 0;\n    var end = -1;\n    var matchedSlash = true;\n    // Track the state of characters (if any) we see before our first dot and\n    // after any path separator we find\n    var preDotState = 0;\n    for (var i = path.length - 1; i >= 0; --i) {\n      var code = path.charCodeAt(i);\n      if (code === 47 /*/*/) {\n          // If we reached a path separator that was not part of a set of path\n          // separators at the end of the string, stop now\n          if (!matchedSlash) {\n            startPart = i + 1;\n            break;\n          }\n          continue;\n        }\n      if (end === -1) {\n        // We saw the first non-path separator, mark this as the end of our\n        // extension\n        matchedSlash = false;\n        end = i + 1;\n      }\n      if (code === 46 /*.*/) {\n          // If this is our first dot, mark it as the start of our extension\n          if (startDot === -1)\n            startDot = i;\n          else if (preDotState !== 1)\n            preDotState = 1;\n      } else if (startDot !== -1) {\n        // We saw a non-dot and non-path separator before our dot, so we should\n        // have a good chance at having a non-empty extension\n        preDotState = -1;\n      }\n    }\n\n    if (startDot === -1 || end === -1 ||\n        // We saw a non-dot character immediately before the dot\n        preDotState === 0 ||\n        // The (right-most) trimmed path component is exactly '..'\n        preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n      return '';\n    }\n    return path.slice(startDot, end);\n  },\n\n  format: function format(pathObject) {\n    if (pathObject === null || typeof pathObject !== 'object') {\n      throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n    }\n    return _format('/', pathObject);\n  },\n\n  parse: function parse(path) {\n    assertPath(path);\n\n    var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n    if (path.length === 0) return ret;\n    var code = path.charCodeAt(0);\n    var isAbsolute = code === 47 /*/*/;\n    var start;\n    if (isAbsolute) {\n      ret.root = '/';\n      start = 1;\n    } else {\n      start = 0;\n    }\n    var startDot = -1;\n    var startPart = 0;\n    var end = -1;\n    var matchedSlash = true;\n    var i = path.length - 1;\n\n    // Track the state of characters (if any) we see before our first dot and\n    // after any path separator we find\n    var preDotState = 0;\n\n    // Get non-dir info\n    for (; i >= start; --i) {\n      code = path.charCodeAt(i);\n      if (code === 47 /*/*/) {\n          // If we reached a path separator that was not part of a set of path\n          // separators at the end of the string, stop now\n          if (!matchedSlash) {\n            startPart = i + 1;\n            break;\n          }\n          continue;\n        }\n      if (end === -1) {\n        // We saw the first non-path separator, mark this as the end of our\n        // extension\n        matchedSlash = false;\n        end = i + 1;\n      }\n      if (code === 46 /*.*/) {\n          // If this is our first dot, mark it as the start of our extension\n          if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n        } else if (startDot !== -1) {\n        // We saw a non-dot and non-path separator before our dot, so we should\n        // have a good chance at having a non-empty extension\n        preDotState = -1;\n      }\n    }\n\n    if (startDot === -1 || end === -1 ||\n    // We saw a non-dot character immediately before the dot\n    preDotState === 0 ||\n    // The (right-most) trimmed path component is exactly '..'\n    preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n      if (end !== -1) {\n        if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n      }\n    } else {\n      if (startPart === 0 && isAbsolute) {\n        ret.name = path.slice(1, startDot);\n        ret.base = path.slice(1, end);\n      } else {\n        ret.name = path.slice(startPart, startDot);\n        ret.base = path.slice(startPart, end);\n      }\n      ret.ext = path.slice(startDot, end);\n    }\n\n    if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n    return ret;\n  },\n\n  sep: '/',\n  delimiter: ':',\n  win32: null,\n  posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(props, propName, componentName, location, propFullName) {\n  var propValue = props[propName];\n  var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);\n\n  if (_react2.default.isValidElement(propValue)) {\n    return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement. You can usually obtain a ReactComponent or DOMElement ' + 'from a ReactElement by attaching a ref to it.');\n  }\n\n  if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) {\n    return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.');\n  }\n\n  return null;\n}\n\nexports.default = (0, _createChainableTypeChecker2.default)(validate);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = deprecated;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar warned = {};\n\nfunction deprecated(validator, reason) {\n  return function validate(props, propName, componentName, location, propFullName) {\n    var componentNameSafe = componentName || '<<anonymous>>';\n    var propFullNameSafe = propFullName || propName;\n\n    if (props[propName] != null) {\n      var messageKey = componentName + '.' + propName;\n\n      (0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.'));\n\n      warned[messageKey] = true;\n    }\n\n    for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {\n      args[_key - 5] = arguments[_key];\n    }\n\n    return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));\n  };\n}\n\n/* eslint-disable no-underscore-dangle */\nfunction _resetWarned() {\n  warned = {};\n}\n\ndeprecated._resetWarned = _resetWarned;\n/* eslint-enable no-underscore-dangle */\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactIs = require('react-is');\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction elementType(props, propName, componentName, location, propFullName) {\n  var propValue = props[propName];\n\n  if (_react2.default.isValidElement(propValue)) {\n    return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`,expected an element type (a string ') + ', component class, or function component).');\n  }\n\n  if (!(0, _reactIs.isValidElementType)(propValue)) {\n    return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + ', component class, or function component).');\n  }\n\n  return null;\n}\n\nexports.default = (0, _createChainableTypeChecker2.default)(elementType);\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n  function checkType(isRequired, props, propName, componentName, location, propFullName) {\n    var componentNameSafe = componentName || '<<anonymous>>';\n    var propFullNameSafe = propFullName || propName;\n\n    if (props[propName] == null) {\n      if (isRequired) {\n        return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n      }\n\n      return null;\n    }\n\n    for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n      args[_key - 6] = arguments[_key];\n    }\n\n    return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n\n  return chainedCheckType;\n}\nmodule.exports = exports['default'];","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n  var printWarning = function printWarning(format, args) {\n    var len = arguments.length;\n    args = new Array(len > 1 ? len - 1 : 0);\n    for (var key = 1; key < len; key++) {\n      args[key - 1] = arguments[key];\n    }\n    var argIndex = 0;\n    var message = 'Warning: ' +\n      format.replace(/%s/g, function() {\n        return args[argIndex++];\n      });\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  }\n\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n          '`warning(condition, format, ...args)` requires a warning ' +\n          'message argument'\n      );\n    }\n    if (!condition) {\n      printWarning.apply(null, [format].concat(args));\n    }\n  };\n}\n\nmodule.exports = warning;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(y(227));var ba=new Set,ca={};function da(a,b){ea(a,b);ea(a+\"Capture\",b)}\nfunction ea(a,b){ca[a]=b;for(a=0;a<b.length;a++)ba.add(b[a])}\nvar fa=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ha=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ia=Object.prototype.hasOwnProperty,\nja={},ka={};function la(a){if(ia.call(ka,a))return!0;if(ia.call(ja,a))return!1;if(ha.test(a))return ka[a]=!0;ja[a]=!0;return!1}function ma(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction na(a,b,c,d){if(null===b||\"undefined\"===typeof b||ma(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(na(b,c,e,d)&&(c=null),d||null===e?la(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar ra=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sa=60103,ta=60106,ua=60107,wa=60108,xa=60114,ya=60109,za=60110,Aa=60112,Ba=60113,Ca=60120,Da=60115,Ea=60116,Fa=60121,Ga=60128,Ha=60129,Ia=60130,Ja=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;sa=E(\"react.element\");ta=E(\"react.portal\");ua=E(\"react.fragment\");wa=E(\"react.strict_mode\");xa=E(\"react.profiler\");ya=E(\"react.provider\");za=E(\"react.context\");Aa=E(\"react.forward_ref\");Ba=E(\"react.suspense\");Ca=E(\"react.suspense_list\");Da=E(\"react.memo\");Ea=E(\"react.lazy\");Fa=E(\"react.block\");E(\"react.scope\");Ga=E(\"react.opaque.id\");Ha=E(\"react.debug_trace_mode\");Ia=E(\"react.offscreen\");Ja=E(\"react.legacy_hidden\")}\nvar Ka=\"function\"===typeof Symbol&&Symbol.iterator;function La(a){if(null===a||\"object\"!==typeof a)return null;a=Ka&&a[Ka]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ma;function Na(a){if(void 0===Ma)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Ma=b&&b[1]||\"\"}return\"\\n\"+Ma+a}var Oa=!1;\nfunction Pa(a,b){if(!a||Oa)return\"\";Oa=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(y(91));return m({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(y(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(a,b,c,d,e){return a(b,c,d,e)}function Ib(){}var Jb=Gb,Kb=!1,Lb=!1;function Mb(){if(null!==zb||null!==Ab)Ib(),Fb()}\nfunction Nb(a,b,c){if(Lb)return a(b,c);Lb=!0;try{return Jb(a,b,c)}finally{Lb=!1,Mb()}}\nfunction Ob(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(y(231,b,typeof c));return c}var Pb=!1;if(fa)try{var Qb={};Object.defineProperty(Qb,\"passive\",{get:function(){Pb=!0}});window.addEventListener(\"test\",Qb,Qb);window.removeEventListener(\"test\",Qb,Qb)}catch(a){Pb=!1}function Rb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(n){this.onError(n)}}var Sb=!1,Tb=null,Ub=!1,Vb=null,Wb={onError:function(a){Sb=!0;Tb=a}};function Xb(a,b,c,d,e,f,g,h,k){Sb=!1;Tb=null;Rb.apply(Wb,arguments)}\nfunction Yb(a,b,c,d,e,f,g,h,k){Xb.apply(this,arguments);if(Sb){if(Sb){var l=Tb;Sb=!1;Tb=null}else throw Error(y(198));Ub||(Ub=!0,Vb=l)}}function Zb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function $b(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function ac(a){if(Zb(a)!==a)throw Error(y(188));}\nfunction bc(a){var b=a.alternate;if(!b){b=Zb(a);if(null===b)throw Error(y(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return ac(e),a;if(f===d)return ac(e),b;f=f.sibling}throw Error(y(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(y(189));}}if(c.alternate!==d)throw Error(y(190));}if(3!==c.tag)throw Error(y(188));return c.stateNode.current===c?a:b}function cc(a){a=bc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction dc(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}var ec,fc,gc,hc,ic=!1,jc=[],kc=null,lc=null,mc=null,nc=new Map,oc=new Map,pc=[],qc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction rc(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function sc(a,b){switch(a){case \"focusin\":case \"focusout\":kc=null;break;case \"dragenter\":case \"dragleave\":lc=null;break;case \"mouseover\":case \"mouseout\":mc=null;break;case \"pointerover\":case \"pointerout\":nc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":oc.delete(b.pointerId)}}\nfunction tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=rc(b,c,d,e,f),null!==b&&(b=Cb(b),null!==b&&fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction uc(a,b,c,d,e){switch(b){case \"focusin\":return kc=tc(kc,a,b,c,d,e),!0;case \"dragenter\":return lc=tc(lc,a,b,c,d,e),!0;case \"mouseover\":return mc=tc(mc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;nc.set(f,tc(nc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,oc.set(f,tc(oc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction vc(a){var b=wc(a.target);if(null!==b){var c=Zb(b);if(null!==c)if(b=c.tag,13===b){if(b=$b(c),null!==b){a.blockedOn=b;hc(a.lanePriority,function(){r.unstable_runWithPriority(a.priority,function(){gc(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c)return b=Cb(c),null!==b&&fc(b),a.blockedOn=c,!1;b.shift()}return!0}function zc(a,b,c){xc(a)&&c.delete(b)}\nfunction Ac(){for(ic=!1;0<jc.length;){var a=jc[0];if(null!==a.blockedOn){a=Cb(a.blockedOn);null!==a&&ec(a);break}for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&jc.shift()}null!==kc&&xc(kc)&&(kc=null);null!==lc&&xc(lc)&&(lc=null);null!==mc&&xc(mc)&&(mc=null);nc.forEach(zc);oc.forEach(zc)}\nfunction Bc(a,b){a.blockedOn===b&&(a.blockedOn=null,ic||(ic=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Ac)))}\nfunction Cc(a){function b(b){return Bc(b,a)}if(0<jc.length){Bc(jc[0],a);for(var c=1;c<jc.length;c++){var d=jc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==kc&&Bc(kc,a);null!==lc&&Bc(lc,a);null!==mc&&Bc(mc,a);nc.forEach(b);oc.forEach(b);for(c=0;c<pc.length;c++)d=pc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<pc.length&&(c=pc[0],null===c.blockedOn);)vc(c),null===c.blockedOn&&pc.shift()}\nfunction Dc(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Ec={animationend:Dc(\"Animation\",\"AnimationEnd\"),animationiteration:Dc(\"Animation\",\"AnimationIteration\"),animationstart:Dc(\"Animation\",\"AnimationStart\"),transitionend:Dc(\"Transition\",\"TransitionEnd\")},Fc={},Gc={};\nfa&&(Gc=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ec.animationend.animation,delete Ec.animationiteration.animation,delete Ec.animationstart.animation),\"TransitionEvent\"in window||delete Ec.transitionend.transition);function Hc(a){if(Fc[a])return Fc[a];if(!Ec[a])return a;var b=Ec[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Gc)return Fc[a]=b[c];return a}\nvar Ic=Hc(\"animationend\"),Jc=Hc(\"animationiteration\"),Kc=Hc(\"animationstart\"),Lc=Hc(\"transitionend\"),Mc=new Map,Nc=new Map,Oc=[\"abort\",\"abort\",Ic,\"animationEnd\",Jc,\"animationIteration\",Kc,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\n\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",Lc,\"transitionEnd\",\"waiting\",\"waiting\"];function Pc(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e=\"on\"+(e[0].toUpperCase()+e.slice(1));Nc.set(d,b);Mc.set(d,e);da(e,[d])}}var Qc=r.unstable_now;Qc();var F=8;\nfunction Rc(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function Sc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function Tc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,a));}}\nfunction Uc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=Rc(k),e=F):(h&=f,0!==h&&(d=Rc(h),e=F))}else f=c&~g,0!==f?(d=Rc(f),e=F):0!==h&&(d=Rc(h),e=F);if(0===d)return 0;d=31-Vc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){Rc(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Vc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction Wc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Xc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=Yc(24&~b),0===a?Xc(10,b):a;case 10:return a=Yc(192&~b),0===a?Xc(8,b):a;case 8:return a=Yc(3584&~b),0===a&&(a=Yc(4186112&~b),0===a&&(a=512)),a;case 2:return b=Yc(805306368&~b),0===b&&(b=268435456),b}throw Error(y(358,a));}function Yc(a){return a&-a}function Zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0<jc.length&&-1<qc.indexOf(a))a=rc(null,a,b,c,d),jc.push(a);else{var f=yc(a,b,c,d);if(null===f)e&&sc(a,d);else{if(e){if(-1<qc.indexOf(a)){a=rc(f,a,b,c,d);jc.push(a);return}if(uc(f,a,b,c,d))return;sc(a,d)}jd(a,b,d,null,c)}}}}\nfunction yc(a,b,c,d){var e=xb(d);e=wc(e);if(null!==e){var f=Zb(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=$b(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==e&&(e=null)}}jd(a,b,d,e,c);return null}var kd=null,ld=null,md=null;\nfunction nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}function od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}m(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=m({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=m({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=m({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=m({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=m({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=m({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=m({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=m({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=m({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=m({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=m({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=m({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=fa&&\"CompositionEvent\"in window,be=null;fa&&\"documentMode\"in document&&(be=document.documentMode);var ce=fa&&\"TextEvent\"in window&&!be,de=fa&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(fa){var xe;if(fa){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));a=re;if(Kb)a(b);else{Kb=!0;try{Gb(a,b)}finally{Kb=!1,Mb()}}}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge,Ie=Object.prototype.hasOwnProperty;\nfunction Je(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!Ie.call(b,c[d])||!He(a[c[d]],b[c[d]]))return!1;return!0}function Ke(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Le(a,b){var c=Ke(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),\n0);Pc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);Pc(Oc,2);for(var Ve=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),We=0;We<Ve.length;We++)Nc.set(Ve[We],0);ea(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);\nea(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ea(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ea(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);da(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));da(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));da(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);da(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));da(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Xe=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Ye=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\nfunction Ze(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Yb(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}}}if(Ub)throw a=Vb,Ub=!1,Vb=null,a;}\nfunction G(a,b){var c=$e(b),d=a+\"__bubble\";c.has(d)||(af(b,a,2,!1),c.add(d))}var bf=\"_reactListening\"+Math.random().toString(36).slice(2);function cf(a){a[bf]||(a[bf]=!0,ba.forEach(function(b){Ye.has(b)||df(b,!1,a,null);df(b,!0,a,null)}))}\nfunction df(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;\"selectionchange\"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Ye.has(a)){if(\"scroll\"!==a)return;e|=2;f=d}var g=$e(f),h=a+\"__\"+(b?\"capture\":\"bubble\");g.has(h)||(b&&(e|=4),af(f,a,e,b),g.add(h))}\nfunction af(a,b,c,d){var e=Nc.get(b);switch(void 0===e?2:e){case 0:e=gd;break;case 1:e=id;break;default:e=hd}c=e.bind(null,b,c,a);e=void 0;!Pb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction jd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Nb(function(){var d=f,e=xb(c),g=[];\na:{var h=Mc.get(a);if(void 0!==h){var k=td,x=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":x=\"focus\";k=Fd;break;case \"focusout\":x=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case Ic:case Jc:case Kc:k=Hd;break;case Lc:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var w=0!==(b&4),z=!w&&\"scroll\"===a,u=w?null!==h?h+\"Capture\":null:h;w=[];for(var t=d,q;null!==\nt;){q=t;var v=q.stateNode;5===q.tag&&null!==v&&(q=v,null!==u&&(v=Ob(t,u),null!=v&&w.push(ef(t,v,q))));if(z)break;t=t.return}0<w.length&&(h=new k(h,x,null,c,e),g.push({event:h,listeners:w}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&0===(b&16)&&(x=c.relatedTarget||c.fromElement)&&(wc(x)||x[ff]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(x=c.relatedTarget||c.toElement,k=d,x=x?wc(x):null,null!==\nx&&(z=Zb(x),x!==z||5!==x.tag&&6!==x.tag))x=null}else k=null,x=d;if(k!==x){w=Bd;v=\"onMouseLeave\";u=\"onMouseEnter\";t=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)w=Td,v=\"onPointerLeave\",u=\"onPointerEnter\",t=\"pointer\";z=null==k?h:ue(k);q=null==x?h:ue(x);h=new w(v,t+\"leave\",k,c,e);h.target=z;h.relatedTarget=q;v=null;wc(e)===d&&(w=new w(u,t+\"enter\",x,c,e),w.target=q,w.relatedTarget=z,v=w);z=v;if(k&&x)b:{w=k;u=x;t=0;for(q=w;q;q=gf(q))t++;q=0;for(v=u;v;v=gf(v))q++;for(;0<t-q;)w=gf(w),t--;for(;0<q-t;)u=\ngf(u),q--;for(;t--;){if(w===u||null!==u&&w===u.alternate)break b;w=gf(w);u=gf(u)}w=null}else w=null;null!==k&&hf(g,h,k,w,!1);null!==x&&null!==z&&hf(g,z,x,w,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var J=ve;else if(me(h))if(we)J=Fe;else{J=De;var K=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(J=Ee);if(J&&(J=J(a,d))){ne(g,J,c,e);break a}K&&K(a,h,d);\"focusout\"===a&&(K=h._wrapperState)&&\nK.controlled&&\"number\"===h.type&&bb(h,\"number\",h.value)}K=d?ue(d):window;switch(a){case \"focusin\":if(me(K)||\"true\"===K.contentEditable)Qe=K,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var Q;if(ae)b:{switch(a){case \"compositionstart\":var L=\"onCompositionStart\";break b;case \"compositionend\":L=\"onCompositionEnd\";break b;\ncase \"compositionupdate\":L=\"onCompositionUpdate\";break b}L=void 0}else ie?ge(a,c)&&(L=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(L=\"onCompositionStart\");L&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==L?\"onCompositionEnd\"===L&&ie&&(Q=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),K=oe(d,L),0<K.length&&(L=new Ld(L,a,null,c,e),g.push({event:L,listeners:K}),Q?L.data=Q:(Q=he(c),null!==Q&&(L.data=Q))));if(Q=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),0<d.length&&(e=new Ld(\"onBeforeInput\",\n\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=Q)}se(g,b)})}function ef(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Ob(a,c),null!=f&&d.unshift(ef(a,f,e)),f=Ob(a,b),null!=f&&d.push(ef(a,f,e)));a=a.return}return d}function gf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction hf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Ob(c,f),null!=k&&g.unshift(ef(c,k,h))):e||(k=Ob(c,f),null!=k&&g.push(ef(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function jf(){}var kf=null,lf=null;function mf(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction nf(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var of=\"function\"===typeof setTimeout?setTimeout:void 0,pf=\"function\"===typeof clearTimeout?clearTimeout:void 0;function qf(a){1===a.nodeType?a.textContent=\"\":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=\"\"))}\nfunction rf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function sf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var tf=0;function uf(a){return{$$typeof:Ga,toString:a,valueOf:a}}var vf=Math.random().toString(36).slice(2),wf=\"__reactFiber$\"+vf,xf=\"__reactProps$\"+vf,ff=\"__reactContainer$\"+vf,yf=\"__reactEvents$\"+vf;\nfunction wc(a){var b=a[wf];if(b)return b;for(var c=a.parentNode;c;){if(b=c[ff]||c[wf]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=sf(a);null!==a;){if(c=a[wf])return c;a=sf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[wf]||a[ff];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(y(33));}function Db(a){return a[xf]||null}\nfunction $e(a){var b=a[yf];void 0===b&&(b=a[yf]=new Set);return b}var zf=[],Af=-1;function Bf(a){return{current:a}}function H(a){0>Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});ag=null}catch(c){throw null!==ag&&(ag=ag.slice(a+1)),Of(Uf,ig),c;}finally{cg=!1}}}var kg=ra.ReactCurrentBatchConfig;function lg(a,b){if(a&&a.defaultProps){b=m({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var mg=Bf(null),ng=null,og=null,pg=null;function qg(){pg=og=ng=null}\nfunction rg(a){var b=mg.current;H(mg);a.type._context._currentValue=b}function sg(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function tg(a,b){ng=a;pg=og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(ug=!0),a.firstContext=null)}\nfunction vg(a,b){if(pg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)pg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===og){if(null===ng)throw Error(y(308));og=b;ng.dependencies={lanes:0,firstContext:b,responders:null}}else og=og.next=b}return a._currentValue}var wg=!1;function xg(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}\nfunction yg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function zg(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}function Ag(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction Bg(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction Cg(a,b,c,d){var e=a.updateQueue;wg=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var n=a.alternate;if(null!==n){n=n.updateQueue;var A=n.lastBaseUpdate;A!==g&&(null===A?n.firstBaseUpdate=l:A.next=l,n.lastBaseUpdate=k)}}if(null!==f){A=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var C=a,x=f;h=b;p=c;switch(x.tag){case 1:C=x.payload;if(\"function\"===typeof C){A=C.call(p,A,h);break a}A=C;break a;case 3:C.flags=C.flags&-4097|64;case 0:C=x.payload;h=\"function\"===typeof C?C.call(p,A,h):C;if(null===h||void 0===h)break a;A=m({},A,h);break a;case 2:wg=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=A):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=A);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;Dg|=g;a.lanes=g;a.memoizedState=A}}function Eg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(y(191,e));e.call(d)}}}var Fg=(new aa.Component).refs;\nfunction Gg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:m({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Kg={isMounted:function(a){return(a=a._reactInternals)?Zb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=Hg(),d=Ig(a),e=zg(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);Ag(a,e);Jg(a,d,c)}};function Lg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Je(c,d)||!Je(e,f):!0}\nfunction Mg(a,b,c){var d=!1,e=Cf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=vg(f):(e=Ff(b)?Df:M.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Ef(a,e):Cf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Kg;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Ng(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Kg.enqueueReplaceState(b,b.state,null)}\nfunction Og(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Fg;xg(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=vg(f):(f=Ff(b)?Df:M.current,e.context=Ef(a,f));Cg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Gg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Kg.enqueueReplaceState(e,e.state,null),Cg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Pg=Array.isArray;\nfunction Qg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(y(309));var d=c.stateNode}if(!d)throw Error(y(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Fg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(y(284));if(!c._owner)throw Error(y(290,a));}return a}\nfunction Rg(a,b){if(\"textarea\"!==a.type)throw Error(y(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Sg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Tg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Ug(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Qg(a,b,c),d.return=a,d;d=Vg(c.type,c.key,c.props,null,a.mode,d);d.ref=Qg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nWg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Xg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function A(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Ug(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case sa:return c=Vg(b.type,b.key,b.props,null,a.mode,c),c.ref=Qg(a,null,b),c.return=a,c;case ta:return b=Wg(b,a.mode,c),b.return=a,b}if(Pg(b)||La(b))return b=Xg(b,\na.mode,c,null),b.return=a,b;Rg(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case sa:return c.key===e?c.type===ua?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ta:return c.key===e?l(a,b,c,d):null}if(Pg(c)||La(c))return null!==e?null:n(a,b,c,d,null);Rg(a,c)}return null}function C(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case sa:return a=a.get(null===d.key?c:d.key)||null,d.type===ua?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ta:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Pg(d)||La(d))return a=a.get(c)||null,n(b,a,d,e,null);Rg(b,d)}return null}function x(e,g,h,k){for(var l=null,t=null,u=g,z=g=0,q=null;null!==u&&z<h.length;z++){u.index>z?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;z<h.length;z++)u=A(e,h[z],k),null!==u&&(g=f(u,g,z),null===t?l=u:t.sibling=u,t=u);return l}for(u=d(e,u);z<h.length;z++)q=C(u,e,z,h[z],k),null!==q&&(a&&null!==q.alternate&&u.delete(null===q.key?z:q.key),g=f(q,g,z),null===t?l=q:t.sibling=q,t=q);a&&u.forEach(function(a){return b(e,a)});return l}function w(e,g,h,k){var l=La(h);if(\"function\"!==typeof l)throw Error(y(150));h=l.call(h);if(null==\nh)throw Error(y(151));for(var t=l=null,u=g,z=g=0,q=null,n=h.next();null!==u&&!n.done;z++,n=h.next()){u.index>z?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;a<th.length;a++)th[a]._workInProgressVersionPrimary=null;th.length=0}var vh=ra.ReactCurrentDispatcher,wh=ra.ReactCurrentBatchConfig,xh=0,R=null,S=null,T=null,yh=!1,zh=!1;function Ah(){throw Error(y(321));}function Bh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Ch(a,b,c,d,e,f){xh=f;R=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;vh.current=null===a||null===a.memoizedState?Dh:Eh;a=c(d,e);if(zh){f=0;do{zh=!1;if(!(25>f))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-Vc(h),v=1<<k;d[k]|=a;h&=~v}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=Ig(w);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);He(C,c)&&He(x,b)&&He(A,d)||(a={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:n},a.dispatch=l=Oh.bind(null,R,a),k.queue=a,k.baseQueue=null,n=Mh(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction Ph(a,b,c){var d=Ih();return Nh(d,a,b,c)}function Qh(a){var b=Hh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:a};a=a.dispatch=Oh.bind(null,R,a);return[b.memoizedState,a]}\nfunction Rh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=R.updateQueue;null===b?(b={lastEffect:null},R.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Sh(a){var b=Hh();a={current:a};return b.memoizedState=a}function Th(){return Ih().memoizedState}function Uh(a,b,c,d){var e=Hh();R.flags|=a;e.memoizedState=Rh(1|b,c,void 0,void 0===d?null:d)}\nfunction Vh(a,b,c,d){var e=Ih();d=void 0===d?null:d;var f=void 0;if(null!==S){var g=S.memoizedState;f=g.destroy;if(null!==d&&Bh(d,g.deps)){Rh(b,c,f,d);return}}R.flags|=a;e.memoizedState=Rh(1|b,c,f,d)}function Wh(a,b){return Uh(516,4,a,b)}function Xh(a,b){return Vh(516,4,a,b)}function Yh(a,b){return Vh(4,2,a,b)}function Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}\nfunction $h(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,2,Zh.bind(null,b,a),c)}function ai(){}function bi(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function ci(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction di(a,b){var c=eg();gg(98>c?98:c,function(){a(!0)});gg(97<c?97:c,function(){var c=wh.transition;wh.transition=1;try{a(!1),b()}finally{wh.transition=c}})}\nfunction Oh(a,b,c){var d=Hg(),e=Ig(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===R||null!==g&&g===R)zh=yh=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(He(k,h))return}catch(l){}finally{}Jg(a,e,d)}}\nvar Gh={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},Dh={readContext:vg,useCallback:function(a,b){Hh().memoizedState=[a,void 0===b?null:b];return a},useContext:vg,useEffect:Wh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Uh(4,2,Zh.bind(null,\nb,a),c)},useLayoutEffect:function(a,b){return Uh(4,2,a,b)},useMemo:function(a,b){var c=Hh();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Hh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Oh.bind(null,R,a);return[d.memoizedState,a]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(a){var b=Qh(a),c=b[0],d=b[1];Wh(function(){var b=wh.transition;\nwh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Qh(!1),b=a[0];a=di.bind(null,a[1]);Sh(a);return[a,b]},useMutableSource:function(a,b,c){var d=Hh();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return Nh(d,a,b,c)},useOpaqueIdentifier:function(){if(lh){var a=!1,b=uf(function(){a||(a=!0,c(\"r:\"+(tf++).toString(36)));throw Error(y(355));}),c=Qh(b)[1];0===(R.mode&2)&&(R.flags|=516,Rh(5,function(){c(\"r:\"+(tf++).toString(36))},\nvoid 0,null));return b}b=\"r:\"+(tf++).toString(36);Qh(b);return b},unstable_isNewReconciler:!1},Eh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Kh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Kh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},Fh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Lh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Lh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},ei=ra.ReactCurrentOwner,ug=!1;function fi(a,b,c,d){b.child=null===a?Zg(b,null,c,d):Yg(b,a.child,c,d)}function gi(a,b,c,d,e){c=c.render;var f=b.ref;tg(b,e);d=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,d,e);return b.child}\nfunction ii(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!ji(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ki(a,b,g,d,e,f);a=Vg(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Je,c(e,d)&&a.ref===b.ref))return hi(a,b,f);b.flags|=1;a=Tg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ki(a,b,c,d,e,f){if(null!==a&&Je(a.memoizedProps,d)&&a.ref===b.ref)if(ug=!1,0!==(f&e))0!==(a.flags&16384)&&(ug=!0);else return b.lanes=a.lanes,hi(a,b,f);return li(a,b,c,d,f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},ni(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},ni(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},ni(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,ni(b,d);fi(a,b,e,c);return b.child}\nfunction oi(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function li(a,b,c,d,e){var f=Ff(c)?Df:M.current;f=Ef(b,f);tg(b,e);c=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,c,e);return b.child}\nfunction pi(a,b,c,d,e){if(Ff(c)){var f=!0;Jf(b)}else f=!1;tg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Mg(b,c,d),Og(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=vg(l):(l=Ff(c)?Df:M.current,l=Ef(b,l));var n=c.getDerivedStateFromProps,A=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;A||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ng(b,g,d,l);wg=!1;var p=b.memoizedState;g.state=p;Cg(b,d,g,e);k=b.memoizedState;h!==d||p!==k||N.current||wg?(\"function\"===typeof n&&(Gg(b,c,n,d),k=b.memoizedState),(h=wg||Lg(b,c,h,d,p,k,l))?(A||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:lg(b.type,h);g.props=l;A=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=vg(k):(k=Ff(c)?Df:M.current,k=Ef(b,k));var C=c.getDerivedStateFromProps;(n=\"function\"===typeof C||\n\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==A||p!==k)&&Ng(b,g,d,k);wg=!1;p=b.memoizedState;g.state=p;Cg(b,d,g,e);var x=b.memoizedState;h!==A||p!==x||N.current||wg?(\"function\"===typeof C&&(Gg(b,c,C,d),x=b.memoizedState),(l=wg||Lg(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return qi(a,b,c,d,f,e)}\nfunction qi(a,b,c,d,e,f){oi(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Kf(b,c,!1),hi(a,b,f);d=b.stateNode;ei.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Yg(b,a.child,null,f),b.child=Yg(b,null,h,f)):fi(a,b,h,f);b.memoizedState=d.state;e&&Kf(b,c,!0);return b.child}function ri(a){var b=a.stateNode;b.pendingContext?Hf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Hf(a,b.context,!1);eh(a,b.containerInfo)}\nvar si={dehydrated:null,retryLane:0};\nfunction ti(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);I(P,e&1);if(null===a){void 0!==d.fallback&&ph(b);a=d.children;e=d.fallback;if(f)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=si,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=si,b.lanes=33554432,a;c=vi({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}function ui(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=vi(b,e,0,null);c=Xg(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction xi(a,b,c,d){var e=a.child;a=e.sibling;c=Tg(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction wi(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Tg(g,h);null!==a?d=Tg(a,d):(d=Xg(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yi(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);sg(a.return,b)}\nfunction zi(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction Ai(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;fi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&yi(a,c);else if(19===a.tag)yi(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(P,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===ih(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);zi(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===ih(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}zi(b,!0,c,null,f,b.lastEffect);break;case \"together\":zi(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction hi(a,b,c){null!==a&&(b.dependencies=a.dependencies);Dg|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(y(153));if(null!==b.child){a=b.child;c=Tg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Tg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}var Bi,Ci,Di,Ei;\nBi=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Ci=function(){};\nDi=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;dh(ah.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"option\":e=eb(a,e);d=eb(a,d);f=[];break;case \"select\":e=m({},e,{value:void 0});d=m({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=jf)}vb(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===\nl){var h=e[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ca.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||\n(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,c)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ca.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&G(\"scroll\",a),f||h===k||(f=[])):\"object\"===typeof k&&null!==k&&k.$$typeof===Ga?k.toString():(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",\nc);var l=f;if(b.updateQueue=l)b.flags|=4}};Ei=function(a,b,c,d){c!==d&&(b.flags|=4)};function Fi(a,b){if(!lh)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction Gi(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Ff(b.type)&&Gf(),null;case 3:fh();H(N);H(M);uh();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)rh(b)?b.flags|=4:d.hydrate||(b.flags|=256);Ci(b);return null;case 5:hh(b);var e=dh(ch.current);c=b.type;if(null!==a&&null!=b.stateNode)Di(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(y(166));return null}a=dh(ah.current);if(rh(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[wf]=b;d[xf]=f;switch(c){case \"dialog\":G(\"cancel\",d);G(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<Xe.length;a++)G(Xe[a],d);break;case \"source\":G(\"error\",d);break;case \"img\":case \"image\":case \"link\":G(\"error\",d);G(\"load\",d);break;case \"details\":G(\"toggle\",d);break;case \"input\":Za(d,f);G(\"invalid\",d);break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};G(\"invalid\",d);break;case \"textarea\":hb(d,f),G(\"invalid\",d)}vb(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],\"children\"===g?\"string\"===typeof e?d.textContent!==e&&(a=[\"children\",e]):\"number\"===typeof e&&d.textContent!==\"\"+e&&(a=[\"children\",\"\"+e]):ca.hasOwnProperty(g)&&null!=e&&\"onScroll\"===g&&G(\"scroll\",d));switch(c){case \"input\":Va(d);cb(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=\njf)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;a===kb.html&&(a=lb(c));a===kb.html?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<Xe.length;e++)G(Xe[e],a);e=d;break;case \"source\":G(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":G(\"error\",a);G(\"load\",a);e=d;break;case \"details\":G(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);G(\"invalid\",a);break;case \"option\":e=eb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=m({},d,{value:void 0});G(\"invalid\",a);break;case \"textarea\":hb(a,d);e=\ngb(a,d);G(\"invalid\",a);break;default:e=d}vb(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?tb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&ob(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==c||\"\"!==k)&&pb(a,k):\"number\"===typeof k&&pb(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ca.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&G(\"scroll\",a):null!=k&&qa(a,f,k,g))}switch(c){case \"input\":Va(a);cb(a,d,!1);\nbreak;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=jf)}mf(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)Ei(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(y(166));\nc=dh(ch.current);dh(ah.current);rh(b)?(d=b.stateNode,c=b.memoizedProps,d[wf]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[wf]=b,b.stateNode=d)}return null;case 13:H(P);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&rh(b):c=null!==a.memoizedState;if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(P.current&1))0===V&&(V=3);else{if(0===V||3===V)V=\n4;null===U||0===(Dg&134217727)&&0===(Hi&134217727)||Ii(U,W)}if(d||c)b.flags|=4;return null;case 4:return fh(),Ci(b),null===a&&cf(b.stateNode.containerInfo),null;case 10:return rg(b),null;case 17:return Ff(b.type)&&Gf(),null;case 19:H(P);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)Fi(d,!1);else{if(0!==V||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=ih(a);if(null!==g){b.flags|=64;Fi(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);\nnull===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,\nf.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;I(P,P.current&1|2);return b.child}a=a.sibling}null!==d.tail&&O()>Ji&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;e<f.length;e+=\n2){var g=f[e],h=f[e+1];\"style\"===g?tb(c,h):\"dangerouslySetInnerHTML\"===g?ob(c,h):\"children\"===g?pb(c,h):qa(c,g,h,b)}switch(a){case \"input\":ab(c,d);break;case \"textarea\":ib(c,d);break;case \"select\":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?fb(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?fb(c,!!d.multiple,d.defaultValue,!0):fb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(y(162));b.stateNode.nodeValue=\nb.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,Cc(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(jj=O(),aj(b.child,!0));kj(b);return;case 19:kj(b);return;case 17:return;case 23:case 24:aj(b,null!==b.memoizedState);return}throw Error(y(163));}function kj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ui);b.forEach(function(b){var d=lj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction mj(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var nj=Math.ceil,oj=ra.ReactCurrentDispatcher,pj=ra.ReactCurrentOwner,X=0,U=null,Y=null,W=0,qj=0,rj=Bf(0),V=0,sj=null,tj=0,Dg=0,Hi=0,uj=0,vj=null,jj=0,Ji=Infinity;function wj(){Ji=O()+500}var Z=null,Qi=!1,Ri=null,Ti=null,xj=!1,yj=null,zj=90,Aj=[],Bj=[],Cj=null,Dj=0,Ej=null,Fj=-1,Gj=0,Hj=0,Ij=null,Jj=!1;function Hg(){return 0!==(X&48)?O():-1!==Fj?Fj:Fj=O()}\nfunction Ig(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===eg()?1:2;0===Gj&&(Gj=tj);if(0!==kg.transition){0!==Hj&&(Hj=null!==vj?vj.pendingLanes:0);a=Gj;var b=4186112&~Hj;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=eg();0!==(X&4)&&98===a?a=Xc(12,Gj):(a=Sc(a),a=Xc(a,Gj));return a}\nfunction Jg(a,b,c){if(50<Dj)throw Dj=0,Ej=null,Error(y(185));a=Kj(a,b);if(null===a)return null;$c(a,b,c);a===U&&(Hi|=b,4===V&&Ii(a,W));var d=eg();1===b?0!==(X&8)&&0===(X&48)?Lj(a):(Mj(a,c),0===X&&(wj(),ig())):(0===(X&4)||98!==d&&99!==d||(null===Cj?Cj=new Set([a]):Cj.add(a)),Mj(a,c));vj=a}function Kj(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}\nfunction Mj(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Vc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;Rc(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Uc(a,a===U?W:0);b=F;if(0===d)null!==c&&(c!==Zf&&Pf(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Zf&&Pf(c)}15===b?(c=Lj.bind(null,a),null===ag?(ag=[c],bg=Of(Uf,jg)):ag.push(c),\nc=Zf):14===b?c=hg(99,Lj.bind(null,a)):(c=Tc(b),c=hg(c,Nj.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Nj(a){Fj=-1;Hj=Gj=0;if(0!==(X&48))throw Error(y(327));var b=a.callbackNode;if(Oj()&&a.callbackNode!==b)return null;var c=Uc(a,a===U?W:0);if(0===c)return null;var d=c;var e=X;X|=16;var f=Pj();if(U!==a||W!==d)wj(),Qj(a,d);do try{Rj();break}catch(h){Sj(a,h)}while(1);qg();oj.current=f;X=e;null!==Y?d=0:(U=null,W=0,d=V);if(0!==(tj&Hi))Qj(a,0);else if(0!==d){2===d&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),c=Wc(a),0!==c&&(d=Tj(a,c)));if(1===d)throw b=sj,Qj(a,0),Ii(a,c),Mj(a,O()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(y(345));case 2:Uj(a);break;case 3:Ii(a,c);if((c&62914560)===c&&(d=jj+500-O(),10<d)){if(0!==Uc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){Hg();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=of(Uj.bind(null,a),d);break}Uj(a);break;case 4:Ii(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-Vc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10<c){a.timeoutHandle=of(Uj.bind(null,a),c);break}Uj(a);break;case 5:Uj(a);break;default:throw Error(y(329));}}Mj(a,O());return a.callbackNode===b?Nj.bind(null,a):null}function Ii(a,b){b&=~uj;b&=~Hi;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Vc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Lj(a){if(0!==(X&48))throw Error(y(327));Oj();if(a===U&&0!==(a.expiredLanes&W)){var b=W;var c=Tj(a,b);0!==(tj&Hi)&&(b=Uc(a,b),c=Tj(a,b))}else b=Uc(a,0),c=Tj(a,b);0!==a.tag&&2===c&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),b=Wc(a),0!==b&&(c=Tj(a,b)));if(1===c)throw c=sj,Qj(a,0),Ii(a,b),Mj(a,O()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Uj(a);Mj(a,O());return null}\nfunction Vj(){if(null!==Cj){var a=Cj;Cj=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Mj(a,O())})}ig()}function Wj(a,b){var c=X;X|=1;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function Xj(a,b){var c=X;X&=-2;X|=8;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function ni(a,b){I(rj,qj);qj|=b;tj|=b}function Ki(){qj=rj.current;H(rj)}\nfunction Qj(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,pf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Gf();break;case 3:fh();H(N);H(M);uh();break;case 5:hh(d);break;case 4:fh();break;case 13:H(P);break;case 19:H(P);break;case 10:rg(d);break;case 23:case 24:Ki()}c=c.return}U=a;Y=Tg(a.current,null);W=qj=tj=b;V=0;sj=null;uj=Hi=Dg=0}\nfunction Sj(a,b){do{var c=Y;try{qg();vh.current=Gh;if(yh){for(var d=R.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}yh=!1}xh=0;T=S=R=null;zh=!1;pj.current=null;if(null===c||null===c.return){V=1;sj=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=W;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var A=0!==(P.current&1),p=g;do{var C;if(C=13===p.tag){var x=p.memoizedState;if(null!==x)C=null!==x.dehydrated?!0:!1;else{var w=p.memoizedProps;C=void 0===w.fallback?!1:!0!==w.unstable_avoidThisFallback?!0:A?!1:!0}}if(C){var z=p.updateQueue;if(null===z){var u=new Set;u.add(l);p.updateQueue=u}else z.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var t=zg(-1,1);t.tag=2;Ag(h,t)}h.lanes|=1;break a}k=\nvoid 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Oi,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var v=Yj.bind(null,f,l,h);l.then(v,v)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((Ra(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=Li(b);if(null!==c){c.flags&=2047;Y=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===V&&(V=5)}function Uj(a){var b=eg();gg(99,dk.bind(null,a,b));return null}\nfunction dk(a,b){do Oj();while(null!==yj);if(0!==(X&48))throw Error(y(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(y(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Vc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nCj&&0===(d&24)&&Cj.has(a)&&Cj.delete(a);a===U&&(Y=U=null,W=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=X;X|=32;pj.current=null;kf=fd;g=Ne();if(Oe(g)){if(\"selectionStart\"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=(h=g.ownerDocument)&&h.defaultView||window,(l=h.getSelection&&h.getSelection())&&0!==l.rangeCount){h=l.anchorNode;f=l.anchorOffset;k=l.focusNode;l=l.focusOffset;try{h.nodeType,k.nodeType}catch(va){h=null;\nbreak a}var n=0,A=-1,p=-1,C=0,x=0,w=g,z=null;b:for(;;){for(var u;;){w!==h||0!==f&&3!==w.nodeType||(A=n+f);w!==k||0!==l&&3!==w.nodeType||(p=n+l);3===w.nodeType&&(n+=w.nodeValue.length);if(null===(u=w.firstChild))break;z=w;w=u}for(;;){if(w===g)break b;z===h&&++C===f&&(A=n);z===k&&++x===l&&(p=n);if(null!==(u=w.nextSibling))break;w=z;z=w.parentNode}w=u}h=-1===A||-1===p?null:{start:A,end:p}}else h=null;h=h||{start:0,end:0}}else h=null;lf={focusedElem:g,selectionRange:h};fd=!1;Ij=null;Jj=!1;Z=d;do try{ek()}catch(va){if(null===\nZ)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Ij=null;Z=d;do try{for(g=a;null!==Z;){var t=Z.flags;t&16&&pb(Z.stateNode,\"\");if(t&128){var q=Z.alternate;if(null!==q){var v=q.ref;null!==v&&(\"function\"===typeof v?v(null):v.current=null)}}switch(t&1038){case 2:fj(Z);Z.flags&=-3;break;case 6:fj(Z);Z.flags&=-3;ij(Z.alternate,Z);break;case 1024:Z.flags&=-1025;break;case 1028:Z.flags&=-1025;ij(Z.alternate,Z);break;case 4:ij(Z.alternate,Z);break;case 8:h=Z;cj(g,h);var J=h.alternate;dj(h);null!==\nJ&&dj(J)}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);v=lf;q=Ne();t=v.focusedElem;g=v.selectionRange;if(q!==t&&t&&t.ownerDocument&&Me(t.ownerDocument.documentElement,t)){null!==g&&Oe(t)&&(q=g.start,v=g.end,void 0===v&&(v=q),\"selectionStart\"in t?(t.selectionStart=q,t.selectionEnd=Math.min(v,t.value.length)):(v=(q=t.ownerDocument||document)&&q.defaultView||window,v.getSelection&&(v=v.getSelection(),h=t.textContent.length,J=Math.min(g.start,h),g=void 0===\ng.end?J:Math.min(g.end,h),!v.extend&&J>g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;t<q.length;t++)v=q[t],v.element.scrollLeft=v.left,v.element.scrollTop=v.top}fd=!!kf;lf=kf=null;a.current=c;Z=d;do try{for(t=a;null!==Z;){var K=Z.flags;K&36&&Yi(t,Z.alternate,Z);if(K&128){q=void 0;var Q=Z.ref;if(null!==Q){var L=Z.stateNode;switch(Z.tag){case 5:q=L;break;default:q=L}\"function\"===typeof Q?Q(q):Q.current=q}}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Z=null;$f();X=e}else a.current=c;if(xj)xj=!1,yj=a,zj=b;else for(Z=d;null!==Z;)b=\nZ.nextEffect,Z.nextEffect=null,Z.flags&8&&(K=Z,K.sibling=null,K.stateNode=null),Z=b;d=a.pendingLanes;0===d&&(Ti=null);1===d?a===Ej?Dj++:(Dj=0,Ej=a):Dj=0;c=c.stateNode;if(Mf&&\"function\"===typeof Mf.onCommitFiberRoot)try{Mf.onCommitFiberRoot(Lf,c,void 0,64===(c.current.flags&64))}catch(va){}Mj(a,O());if(Qi)throw Qi=!1,a=Ri,Ri=null,a;if(0!==(X&8))return null;ig();return null}\nfunction ek(){for(;null!==Z;){var a=Z.alternate;Jj||null===Ij||(0!==(Z.flags&8)?dc(Z,Ij)&&(Jj=!0):13===Z.tag&&mj(a,Z)&&dc(Z,Ij)&&(Jj=!0));var b=Z.flags;0!==(b&256)&&Xi(a,Z);0===(b&512)||xj||(xj=!0,hg(97,function(){Oj();return null}));Z=Z.nextEffect}}function Oj(){if(90!==zj){var a=97<zj?97:zj;zj=90;return gg(a,fk)}return!1}function $i(a,b){Aj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}function Zi(a,b){Bj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}\nfunction fk(){if(null===yj)return!1;var a=yj;yj=null;if(0!==(X&48))throw Error(y(331));var b=X;X|=32;var c=Bj;Bj=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}c=Aj;Aj=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;X=b;ig();return!0}function gk(a,b,c){b=Mi(c,b);b=Pi(a,b,1);Ag(a,b);b=Hg();a=Kj(a,1);null!==a&&($c(a,1,b),Mj(a,b))}\nfunction Wi(a,b){if(3===a.tag)gk(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){gk(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d))){a=Mi(b,a);var e=Si(c,a,1);Ag(c,e);e=Hg();c=Kj(c,1);if(null!==c)$c(c,1,e),Mj(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction Yj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=Hg();a.pingedLanes|=a.suspendedLanes&c;U===a&&(W&c)===c&&(4===V||3===V&&(W&62914560)===W&&500>O()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],th.push(f);c=Zg(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else fi(a,b,d,c),sh();b=b.child}return b;case 5:return gh(b),null===a&&\nph(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,nf(d,e)?g=null:null!==f&&nf(d,f)&&(b.flags|=16),oi(a,b),fi(a,b,g,c),b.child;case 6:return null===a&&ph(b),null;case 13:return ti(a,b,c);case 4:return eh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Yg(b,null,d,c):fi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),gi(a,b,d,e,c);case 7:return fi(a,b,b.pendingProps,c),b.child;case 8:return fi(a,b,b.pendingProps.children,\nc),b.child;case 12:return fi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(mg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=He(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!N.current){b=hi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=\nk.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=zg(-1,c&-c),l.tag=2,Ag(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);sg(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}fi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,tg(b,c),e=vg(e,\nf.unstable_observedBits),d=d(e),b.flags|=1,fi(a,b,d,c),b.child;case 14:return e=b.type,f=lg(e,b.pendingProps),f=lg(e.type,f),ii(a,b,e,f,d,c);case 15:return ki(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Ff(d)?(a=!0,Jf(b)):a=!1,tg(b,c),Mg(b,d,e),Og(b,d,e,c),qi(null,b,d,!0,a,c);case 19:return Ai(a,b,c);case 23:return mi(a,b,c);case 24:return mi(a,b,c)}throw Error(y(156,b.tag));\n};function ik(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function nh(a,b,c,d){return new ik(a,b,c,d)}function ji(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction hk(a){if(\"function\"===typeof a)return ji(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Aa)return 11;if(a===Da)return 14}return 2}\nfunction Tg(a,b){var c=a.alternate;null===c?(c=nh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Vg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ji(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ua:return Xg(c.children,e,f,b);case Ha:g=8;e|=16;break;case wa:g=8;e|=1;break;case xa:return a=nh(12,c,b,e|8),a.elementType=xa,a.type=xa,a.lanes=f,a;case Ba:return a=nh(13,c,b,e),a.type=Ba,a.elementType=Ba,a.lanes=f,a;case Ca:return a=nh(19,c,b,e),a.elementType=Ca,a.lanes=f,a;case Ia:return vi(c,e,f,b);case Ja:return a=nh(24,c,b,e),a.elementType=Ja,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case za:g=9;break a;case Aa:g=11;break a;case Da:g=14;break a;case Ea:g=16;d=null;break a;case Fa:g=22;break a}throw Error(y(130,null==a?a:typeof a,\"\"));}b=nh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Xg(a,b,c,d){a=nh(7,a,d,b);a.lanes=c;return a}function vi(a,b,c,d){a=nh(23,a,d,b);a.elementType=Ia;a.lanes=c;return a}function Ug(a,b,c){a=nh(6,a,null,b);a.lanes=c;return a}\nfunction Wg(a,b,c){b=nh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction jk(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=0;this.eventTimes=Zc(0);this.expirationTimes=Zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=Zc(0);this.mutableSourceEagerHydrationData=null}\nfunction kk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ta,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction lk(a,b,c,d){var e=b.current,f=Hg(),g=Ig(e);a:if(c){c=c._reactInternals;b:{if(Zb(c)!==c||1!==c.tag)throw Error(y(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(Ff(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(y(171));}if(1===c.tag){var k=c.type;if(Ff(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=zg(f,g);b.payload={element:a};d=void 0===d?null:d;null!==\nd&&(b.callback=d);Ag(e,b);Jg(e,g,f);return g}function mk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function nk(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function ok(a,b){nk(a,b);(a=a.alternate)&&nk(a,b)}function pk(){return null}\nfunction qk(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new jk(a,b,null!=c&&!0===c.hydrate);b=nh(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;xg(b);a[ff]=c.current;cf(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}\nqk.prototype.render=function(a){lk(a,this._internalRoot,null,null)};qk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;lk(null,a,null,function(){b[ff]=null})};function rk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction sk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new qk(a,0,b?{hydrate:!0}:void 0)}\nfunction tk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=mk(g);h.call(a)}}lk(b,g,a,e)}else{f=c._reactRootContainer=sk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=mk(g);k.call(a)}}Xj(function(){lk(b,g,a,e)})}return mk(g)}ec=function(a){if(13===a.tag){var b=Hg();Jg(a,4,b);ok(a,4)}};fc=function(a){if(13===a.tag){var b=Hg();Jg(a,67108864,b);ok(a,67108864)}};\ngc=function(a){if(13===a.tag){var b=Hg(),c=Ig(a);Jg(a,c,b);ok(a,c)}};hc=function(a,b){return b()};\nyb=function(a,b,c){switch(b){case \"input\":ab(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(y(90));Wa(d);ab(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Wj;\nHb=function(a,b,c,d,e){var f=X;X|=4;try{return gg(98,a.bind(null,b,c,d,e))}finally{X=f,0===X&&(wj(),ig())}};Ib=function(){0===(X&49)&&(Vj(),Oj())};Jb=function(a,b){var c=X;X|=2;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}};function uk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rk(b))throw Error(y(200));return kk(a,b,null,c)}var vk={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},wk={findFiberByHostInstance:wc,bundleType:0,version:\"17.0.2\",rendererPackageName:\"react-dom\"};\nvar xk={bundleType:wk.bundleType,version:wk.version,rendererPackageName:wk.rendererPackageName,rendererConfig:wk.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ra.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=cc(a);return null===a?null:a.stateNode},findFiberByHostInstance:wk.findFiberByHostInstance||\npk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var yk=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!yk.isDisabled&&yk.supportsFiber)try{Lf=yk.inject(xk),Mf=yk}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;exports.createPortal=uk;\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(y(188));throw Error(y(268,Object.keys(a)));}a=cc(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a,b){var c=X;if(0!==(c&48))return a(b);X|=1;try{if(a)return gg(99,a.bind(null,b))}finally{X=c,ig()}};exports.hydrate=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!0,c)};\nexports.render=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!rk(a))throw Error(y(40));return a._reactRootContainer?(Xj(function(){tk(null,null,a,!1,function(){a._reactRootContainer=null;a[ff]=null})}),!0):!1};exports.unstable_batchedUpdates=Wj;exports.unstable_createPortal=function(a,b){return uk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!rk(c))throw Error(y(200));if(null==a||void 0===a._reactInternals)throw Error(y(38));return tk(a,b,c,!1,d)};exports.version=\"17.0.2\";\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","import { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nvar DisplayName;\n(function (DisplayName) {\n    DisplayName[\"formatDate\"] = \"FormattedDate\";\n    DisplayName[\"formatTime\"] = \"FormattedTime\";\n    DisplayName[\"formatNumber\"] = \"FormattedNumber\";\n    DisplayName[\"formatList\"] = \"FormattedList\";\n    // Note that this DisplayName is the locale display name, not to be confused with\n    // the name of the enum, which is for React component display name in dev tools.\n    DisplayName[\"formatDisplayName\"] = \"FormattedDisplayName\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayNameParts;\n(function (DisplayNameParts) {\n    DisplayNameParts[\"formatDate\"] = \"FormattedDateParts\";\n    DisplayNameParts[\"formatTime\"] = \"FormattedTimeParts\";\n    DisplayNameParts[\"formatNumber\"] = \"FormattedNumberParts\";\n    DisplayNameParts[\"formatList\"] = \"FormattedListParts\";\n})(DisplayNameParts || (DisplayNameParts = {}));\nexport var FormattedNumberParts = function (props) {\n    var intl = useIntl();\n    var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n    return children(intl.formatNumberToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport var FormattedListParts = function (props) {\n    var intl = useIntl();\n    var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n    return children(intl.formatListToParts(value, formatProps));\n};\nFormattedNumberParts.displayName = 'FormattedNumberParts';\nexport function createFormattedDateTimePartsComponent(name) {\n    var ComponentParts = function (props) {\n        var intl = useIntl();\n        var value = props.value, children = props.children, formatProps = __rest(props, [\"value\", \"children\"]);\n        var date = typeof value === 'string' ? new Date(value || 0) : value;\n        var formattedParts = name === 'formatDate'\n            ? intl.formatDateToParts(date, formatProps)\n            : intl.formatTimeToParts(date, formatProps);\n        return children(formattedParts);\n    };\n    ComponentParts.displayName = DisplayNameParts[name];\n    return ComponentParts;\n}\nexport function createFormattedComponent(name) {\n    var Component = function (props) {\n        var intl = useIntl();\n        var value = props.value, children = props.children, formatProps = __rest(props\n        // TODO: fix TS type definition for localeMatcher upstream\n        , [\"value\", \"children\"]);\n        // TODO: fix TS type definition for localeMatcher upstream\n        var formattedValue = intl[name](value, formatProps);\n        if (typeof children === 'function') {\n            return children(formattedValue);\n        }\n        var Text = intl.textComponent || React.Fragment;\n        return React.createElement(Text, null, formattedValue);\n    };\n    Component.displayName = DisplayName[name];\n    return Component;\n}\n","import { createFormattedComponent, createFormattedDateTimePartsComponent, } from './src/components/createFormattedComponent';\nimport injectIntl, { Provider as RawIntlProvider, Context as IntlContext, } from './src/components/injectIntl';\nimport useIntl from './src/components/useIntl';\nimport IntlProvider, { createIntl } from './src/components/provider';\nimport FormattedRelativeTime from './src/components/relative';\nimport FormattedPlural from './src/components/plural';\nimport FormattedMessage from './src/components/message';\nimport FormattedDateTimeRange from './src/components/dateTimeRange';\nexport { FormattedDateTimeRange, FormattedMessage, FormattedPlural, FormattedRelativeTime, IntlContext, IntlProvider, RawIntlProvider, createIntl, injectIntl, useIntl, };\nexport { createIntlCache, UnsupportedFormatterError, InvalidConfigError, MissingDataError, MessageFormatError, MissingTranslationError, IntlErrorCode as ReactIntlErrorCode, IntlError as ReactIntlError, } from '@formatjs/intl';\nexport function defineMessages(msgs) {\n    return msgs;\n}\nexport function defineMessage(msg) {\n    return msg;\n}\n// IMPORTANT: Explicit here to prevent api-extractor from outputing `import('./src/types').CustomFormatConfig`\nexport var FormattedDate = createFormattedComponent('formatDate');\nexport var FormattedTime = createFormattedComponent('formatTime');\nexport var FormattedNumber = createFormattedComponent('formatNumber');\nexport var FormattedList = createFormattedComponent('formatList');\nexport var FormattedDisplayName = createFormattedComponent('formatDisplayName');\nexport var FormattedDateParts = createFormattedDateTimePartsComponent('formatDate');\nexport var FormattedTimeParts = createFormattedDateTimePartsComponent('formatTime');\nexport { FormattedNumberParts, FormattedListParts, } from './src/components/createFormattedComponent';\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n    return Component.displayName || Component.name || 'Component';\n}\n// This is primarily dealing with packaging systems where multiple copies of react-intl\n// might exist\nvar IntlContext = typeof window !== 'undefined' && !window.__REACT_INTL_BYPASS_GLOBAL_CONTEXT__\n    ? window.__REACT_INTL_CONTEXT__ ||\n        (window.__REACT_INTL_CONTEXT__ = React.createContext(null))\n    : React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n    var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n    var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n        var _a;\n        if (enforceContext) {\n            invariantIntlContext(intl);\n        }\n        var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n        return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n    })); };\n    WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n    WithIntl.WrappedComponent = WrappedComponent;\n    if (forwardRef) {\n        return hoistNonReactStatics(React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n    }\n    return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __rest } from \"tslib\";\nimport * as React from 'react';\nimport useIntl from './useIntl';\nimport { shallowEqual } from '../utils';\nfunction areEqual(prevProps, nextProps) {\n    var values = prevProps.values, otherProps = __rest(prevProps, [\"values\"]);\n    var nextValues = nextProps.values, nextOtherProps = __rest(nextProps, [\"values\"]);\n    return (shallowEqual(nextValues, values) &&\n        shallowEqual(otherProps, nextOtherProps));\n}\nfunction FormattedMessage(props) {\n    var intl = useIntl();\n    var formatMessage = intl.formatMessage, _a = intl.textComponent, Text = _a === void 0 ? React.Fragment : _a;\n    var id = props.id, description = props.description, defaultMessage = props.defaultMessage, values = props.values, children = props.children, _b = props.tagName, Component = _b === void 0 ? Text : _b, ignoreTag = props.ignoreTag;\n    var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n    var nodes = formatMessage(descriptor, values, {\n        ignoreTag: ignoreTag,\n    });\n    if (typeof children === 'function') {\n        return children(Array.isArray(nodes) ? nodes : [nodes]);\n    }\n    if (Component) {\n        return React.createElement(Component, null, React.Children.toArray(nodes));\n    }\n    return React.createElement(React.Fragment, null, nodes);\n}\nFormattedMessage.displayName = 'FormattedMessage';\nvar MemoizedFormattedMessage = React.memo(FormattedMessage, areEqual);\nMemoizedFormattedMessage.displayName = 'MemoizedFormattedMessage';\nexport default MemoizedFormattedMessage;\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n    return Object.keys(opts).reduce(function (all, k) {\n        all[k] = __assign({ timeZone: timeZone }, opts[k]);\n        return all;\n    }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n    var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n    return keys.reduce(function (all, k) {\n        all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n        return all;\n    }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n    if (!timeZone) {\n        return f1;\n    }\n    var mfFormats = IntlMessageFormat.formats;\n    return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport var formatMessage = function (_a, state, messageDescriptor, values, opts) {\n    var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n    if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n    var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n    // `id` is a required field of a Message Descriptor.\n    invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n    var id = String(msgId);\n    var message = \n    // In case messages is Object.create(null)\n    // e.g import('foo.json') from webpack)\n    // See https://github.com/formatjs/formatjs/issues/1914\n    messages &&\n        Object.prototype.hasOwnProperty.call(messages, id) &&\n        messages[id];\n    // IMPORTANT: Hot path if `message` is AST with a single literal node\n    if (Array.isArray(message) &&\n        message.length === 1 &&\n        message[0].type === TYPE.literal) {\n        return message[0].value;\n    }\n    // IMPORTANT: Hot path straight lookup for performance\n    if (!values &&\n        message &&\n        typeof message === 'string' &&\n        !defaultRichTextElements) {\n        return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n    }\n    values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n    formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n    defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n    if (!message) {\n        if (fallbackOnEmptyString === false && message === '') {\n            return message;\n        }\n        if (!defaultMessage ||\n            (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n            // This prevents warnings from littering the console in development\n            // when no `messages` are passed into the <IntlProvider> for the\n            // default locale.\n            onError(new MissingTranslationError(messageDescriptor, locale));\n        }\n        if (defaultMessage) {\n            try {\n                var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n                return formatter.format(values);\n            }\n            catch (e) {\n                onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n                return typeof defaultMessage === 'string' ? defaultMessage : id;\n            }\n        }\n        return id;\n    }\n    // We have the translated message\n    try {\n        var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n        return formatter.format(values);\n    }\n    catch (e) {\n        onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n    }\n    if (defaultMessage) {\n        try {\n            var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n            return formatter.format(values);\n        }\n        catch (e) {\n            onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n        }\n    }\n    if (typeof message === 'string') {\n        return message;\n    }\n    if (typeof defaultMessage === 'string') {\n        return defaultMessage;\n    }\n    return id;\n};\n","import { getNamedFormat, filterProps } from './utils';\nimport { IntlFormatError } from './error';\nvar NUMBER_FORMAT_OPTIONS = [\n    'style',\n    'currency',\n    'currencyDisplay',\n    'unit',\n    'unitDisplay',\n    'useGrouping',\n    'minimumIntegerDigits',\n    'minimumFractionDigits',\n    'maximumFractionDigits',\n    'minimumSignificantDigits',\n    'maximumSignificantDigits',\n    // ES2020 NumberFormat\n    'compactDisplay',\n    'currencyDisplay',\n    'currencySign',\n    'notation',\n    'signDisplay',\n    'unit',\n    'unitDisplay',\n    'numberingSystem',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n    var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n    if (options === void 0) { options = {}; }\n    var format = options.format;\n    var defaults = ((format &&\n        getNamedFormat(formats, 'number', format, onError)) ||\n        {});\n    var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n    return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n    if (options === void 0) { options = {}; }\n    try {\n        return getFormatter(config, getNumberFormat, options).format(value);\n    }\n    catch (e) {\n        config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n    }\n    return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n    if (options === void 0) { options = {}; }\n    try {\n        return getFormatter(config, getNumberFormat, options).formatToParts(value);\n    }\n    catch (e) {\n        config.onError(new IntlFormatError('Error formatting number.', config.locale, e));\n    }\n    return [];\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n    var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n    if (options === void 0) { options = {}; }\n    var format = options.format;\n    var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n    var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n    return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n    if (options === void 0) { options = {}; }\n    if (!unit) {\n        unit = 'second';\n    }\n    var RelativeTimeFormat = Intl.RelativeTimeFormat;\n    if (!RelativeTimeFormat) {\n        config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n    }\n    try {\n        return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n    }\n    catch (e) {\n        config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n    }\n    return String(value);\n}\n","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlFormatError } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = [\n    'formatMatcher',\n    'timeZone',\n    'hour12',\n    'weekday',\n    'era',\n    'year',\n    'month',\n    'day',\n    'hour',\n    'minute',\n    'second',\n    'timeZoneName',\n    'hourCycle',\n    'dateStyle',\n    'timeStyle',\n    'calendar',\n    // 'dayPeriod',\n    'numberingSystem',\n    'fractionalSecondDigits',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n    var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n    if (options === void 0) { options = {}; }\n    var format = options.format;\n    var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n    var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n    if (type === 'time' &&\n        !filteredOptions.hour &&\n        !filteredOptions.minute &&\n        !filteredOptions.second &&\n        !filteredOptions.timeStyle &&\n        !filteredOptions.dateStyle) {\n        // Add default formatting options if hour, minute, or second isn't defined.\n        filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n    }\n    return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n    var _a = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        _a[_i - 2] = arguments[_i];\n    }\n    var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n    var date = typeof value === 'string' ? new Date(value || 0) : value;\n    try {\n        return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n    }\n    catch (e) {\n        config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n    }\n    return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n    var _a = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        _a[_i - 2] = arguments[_i];\n    }\n    var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n    var date = typeof value === 'string' ? new Date(value || 0) : value;\n    try {\n        return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n    }\n    catch (e) {\n        config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n    }\n    return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n    var _a = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        _a[_i - 2] = arguments[_i];\n    }\n    var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n    var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n    var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n    try {\n        return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n    }\n    catch (e) {\n        onError(new IntlFormatError('Error formatting date time range.', config.locale, e));\n    }\n    return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n    var _a = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        _a[_i - 2] = arguments[_i];\n    }\n    var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n    var date = typeof value === 'string' ? new Date(value || 0) : value;\n    try {\n        return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n    }\n    catch (e) {\n        config.onError(new IntlFormatError('Error formatting date.', config.locale, e));\n    }\n    return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n    var _a = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        _a[_i - 2] = arguments[_i];\n    }\n    var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n    var date = typeof value === 'string' ? new Date(value || 0) : value;\n    try {\n        return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date); // TODO: remove this when https://github.com/microsoft/TypeScript/pull/50402 is merged\n    }\n    catch (e) {\n        config.onError(new IntlFormatError('Error formatting time.', config.locale, e));\n    }\n    return [];\n}\n","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = ['type'];\nexport function formatPlural(_a, getPluralRules, value, options) {\n    var locale = _a.locale, onError = _a.onError;\n    if (options === void 0) { options = {}; }\n    if (!Intl.PluralRules) {\n        onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n    }\n    var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n    try {\n        return getPluralRules(locale, filteredOptions).select(value);\n    }\n    catch (e) {\n        onError(new IntlFormatError('Error formatting plural.', locale, e));\n    }\n    return 'other';\n}\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar LIST_FORMAT_OPTIONS = [\n    'type',\n    'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n    return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n    if (options === void 0) { options = {}; }\n    var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n        var val = el.value;\n        if (typeof val !== 'string') {\n            all.push(val);\n        }\n        else if (typeof all[all.length - 1] === 'string') {\n            all[all.length - 1] += val;\n        }\n        else {\n            all.push(val);\n        }\n        return all;\n    }, []);\n    return results.length === 1 ? results[0] : results.length === 0 ? '' : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n    var locale = _a.locale, onError = _a.onError;\n    if (options === void 0) { options = {}; }\n    var ListFormat = Intl.ListFormat;\n    if (!ListFormat) {\n        onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n    }\n    var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n    try {\n        var richValues_1 = {};\n        var serializedValues = values.map(function (v, i) {\n            if (typeof v === 'object') {\n                var id = generateToken(i);\n                richValues_1[id] = v;\n                return id;\n            }\n            return String(v);\n        });\n        return getListFormat(locale, filteredOptions)\n            .formatToParts(serializedValues)\n            .map(function (part) {\n            return part.type === 'literal'\n                ? part\n                : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n        });\n    }\n    catch (e) {\n        onError(new IntlFormatError('Error formatting list.', locale, e));\n    }\n    // @ts-ignore\n    return values;\n}\n","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n    'style',\n    'type',\n    'fallback',\n    'languageDisplay',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n    var locale = _a.locale, onError = _a.onError;\n    var DisplayNames = Intl.DisplayNames;\n    if (!DisplayNames) {\n        onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n    }\n    var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n    try {\n        return getDisplayNames(locale, filteredOptions).of(value);\n    }\n    catch (e) {\n        onError(new IntlFormatError('Error formatting display name.', locale, e));\n    }\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __assign, __extends, __rest, __spreadArray } from \"tslib\";\nimport { createIntl as coreCreateIntl, formatMessage as coreFormatMessage, createIntlCache, } from '@formatjs/intl';\nimport * as React from 'react';\nimport { DEFAULT_INTL_CONFIG, assignUniqueKeysToParts, invariantIntlContext, shallowEqual, } from '../utils';\nimport { Provider } from './injectIntl';\nimport { isFormatXMLElementFn, } from 'intl-messageformat';\nfunction processIntlConfig(config) {\n    return {\n        locale: config.locale,\n        timeZone: config.timeZone,\n        fallbackOnEmptyString: config.fallbackOnEmptyString,\n        formats: config.formats,\n        textComponent: config.textComponent,\n        messages: config.messages,\n        defaultLocale: config.defaultLocale,\n        defaultFormats: config.defaultFormats,\n        onError: config.onError,\n        onWarn: config.onWarn,\n        wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\n        defaultRichTextElements: config.defaultRichTextElements,\n    };\n}\nfunction assignUniqueKeysToFormatXMLElementFnArgument(values) {\n    if (!values) {\n        return values;\n    }\n    return Object.keys(values).reduce(function (acc, k) {\n        var v = values[k];\n        acc[k] = isFormatXMLElementFn(v)\n            ? assignUniqueKeysToParts(v)\n            : v;\n        return acc;\n    }, {});\n}\nvar formatMessage = function (config, formatters, descriptor, rawValues) {\n    var rest = [];\n    for (var _i = 4; _i < arguments.length; _i++) {\n        rest[_i - 4] = arguments[_i];\n    }\n    var values = assignUniqueKeysToFormatXMLElementFnArgument(rawValues);\n    var chunks = coreFormatMessage.apply(void 0, __spreadArray([config,\n        formatters,\n        descriptor,\n        values], rest, false));\n    if (Array.isArray(chunks)) {\n        return React.Children.toArray(chunks);\n    }\n    return chunks;\n};\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport var createIntl = function (_a, cache) {\n    var rawDefaultRichTextElements = _a.defaultRichTextElements, config = __rest(_a, [\"defaultRichTextElements\"]);\n    var defaultRichTextElements = assignUniqueKeysToFormatXMLElementFnArgument(rawDefaultRichTextElements);\n    var coreIntl = coreCreateIntl(__assign(__assign(__assign({}, DEFAULT_INTL_CONFIG), config), { defaultRichTextElements: defaultRichTextElements }), cache);\n    var resolvedConfig = {\n        locale: coreIntl.locale,\n        timeZone: coreIntl.timeZone,\n        fallbackOnEmptyString: coreIntl.fallbackOnEmptyString,\n        formats: coreIntl.formats,\n        defaultLocale: coreIntl.defaultLocale,\n        defaultFormats: coreIntl.defaultFormats,\n        messages: coreIntl.messages,\n        onError: coreIntl.onError,\n        defaultRichTextElements: defaultRichTextElements,\n    };\n    return __assign(__assign({}, coreIntl), { formatMessage: formatMessage.bind(null, resolvedConfig, \n        // @ts-expect-error fix this\n        coreIntl.formatters), \n        // @ts-expect-error fix this\n        $t: formatMessage.bind(null, resolvedConfig, coreIntl.formatters) });\n};\nvar IntlProvider = /** @class */ (function (_super) {\n    __extends(IntlProvider, _super);\n    function IntlProvider() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.cache = createIntlCache();\n        _this.state = {\n            cache: _this.cache,\n            intl: createIntl(processIntlConfig(_this.props), _this.cache),\n            prevConfig: processIntlConfig(_this.props),\n        };\n        return _this;\n    }\n    IntlProvider.getDerivedStateFromProps = function (props, _a) {\n        var prevConfig = _a.prevConfig, cache = _a.cache;\n        var config = processIntlConfig(props);\n        if (!shallowEqual(prevConfig, config)) {\n            return {\n                intl: createIntl(config, cache),\n                prevConfig: config,\n            };\n        }\n        return null;\n    };\n    IntlProvider.prototype.render = function () {\n        invariantIntlContext(this.state.intl);\n        return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n    };\n    IntlProvider.displayName = 'IntlProvider';\n    IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n    return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\nfunction messagesContainString(messages) {\n    var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n    return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n    if (config.onWarn &&\n        config.defaultRichTextElements &&\n        messagesContainString(config.messages || {})) {\n        config.onWarn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n    }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n    var formatters = createFormatters(cache);\n    var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n    var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n    if (!locale) {\n        if (onError) {\n            onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\")));\n        }\n        // Since there's no registered locale data for `locale`, this will\n        // fallback to the `defaultLocale` to make sure things can render.\n        // The `messages` are overridden to the `defaultProps` empty object\n        // to maintain referential equality across re-renders. It's assumed\n        // each <FormattedMessage> contains a `defaultMessage` prop.\n        resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n    }\n    else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n        onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n    }\n    else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n        onError) {\n        onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n    }\n    verifyConfigMessages(resolvedConfig);\n    return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), \n        // @ts-expect-error TODO: will get to this later\n        formatMessage: formatMessage.bind(null, resolvedConfig, formatters), \n        // @ts-expect-error TODO: will get to this later\n        $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","import { __assign, __rest } from \"tslib\";\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport * as React from 'react';\nimport { invariant, } from '@formatjs/ecma402-abstract';\nimport useIntl from './useIntl';\nvar MINUTE = 60;\nvar HOUR = 60 * 60;\nvar DAY = 60 * 60 * 24;\nfunction selectUnit(seconds) {\n    var absValue = Math.abs(seconds);\n    if (absValue < MINUTE) {\n        return 'second';\n    }\n    if (absValue < HOUR) {\n        return 'minute';\n    }\n    if (absValue < DAY) {\n        return 'hour';\n    }\n    return 'day';\n}\nfunction getDurationInSeconds(unit) {\n    switch (unit) {\n        case 'second':\n            return 1;\n        case 'minute':\n            return MINUTE;\n        case 'hour':\n            return HOUR;\n        default:\n            return DAY;\n    }\n}\nfunction valueToSeconds(value, unit) {\n    if (!value) {\n        return 0;\n    }\n    switch (unit) {\n        case 'second':\n            return value;\n        case 'minute':\n            return value * MINUTE;\n        default:\n            return value * HOUR;\n    }\n}\nvar INCREMENTABLE_UNITS = [\n    'second',\n    'minute',\n    'hour',\n];\nfunction canIncrement(unit) {\n    if (unit === void 0) { unit = 'second'; }\n    return INCREMENTABLE_UNITS.indexOf(unit) > -1;\n}\nvar SimpleFormattedRelativeTime = function (props) {\n    var _a = useIntl(), formatRelativeTime = _a.formatRelativeTime, Text = _a.textComponent;\n    var children = props.children, value = props.value, unit = props.unit, otherProps = __rest(props, [\"children\", \"value\", \"unit\"]);\n    var formattedRelativeTime = formatRelativeTime(value || 0, unit, otherProps);\n    if (typeof children === 'function') {\n        return children(formattedRelativeTime);\n    }\n    if (Text) {\n        return React.createElement(Text, null, formattedRelativeTime);\n    }\n    return React.createElement(React.Fragment, null, formattedRelativeTime);\n};\nvar FormattedRelativeTime = function (_a) {\n    var value = _a.value, unit = _a.unit, updateIntervalInSeconds = _a.updateIntervalInSeconds, otherProps = __rest(_a, [\"value\", \"unit\", \"updateIntervalInSeconds\"]);\n    invariant(!updateIntervalInSeconds ||\n        !!(updateIntervalInSeconds && canIncrement(unit)), 'Cannot schedule update with unit longer than hour');\n    var _b = React.useState(), prevUnit = _b[0], setPrevUnit = _b[1];\n    var _c = React.useState(0), prevValue = _c[0], setPrevValue = _c[1];\n    var _d = React.useState(0), currentValueInSeconds = _d[0], setCurrentValueInSeconds = _d[1];\n    var updateTimer;\n    if (unit !== prevUnit || value !== prevValue) {\n        setPrevValue(value || 0);\n        setPrevUnit(unit);\n        setCurrentValueInSeconds(canIncrement(unit) ? valueToSeconds(value, unit) : 0);\n    }\n    React.useEffect(function () {\n        function clearUpdateTimer() {\n            clearTimeout(updateTimer);\n        }\n        clearUpdateTimer();\n        // If there's no interval and we cannot increment this unit, do nothing\n        if (!updateIntervalInSeconds || !canIncrement(unit)) {\n            return clearUpdateTimer;\n        }\n        // Figure out the next interesting time\n        var nextValueInSeconds = currentValueInSeconds - updateIntervalInSeconds;\n        var nextUnit = selectUnit(nextValueInSeconds);\n        // We've reached the max auto incrementable unit, don't schedule another update\n        if (nextUnit === 'day') {\n            return clearUpdateTimer;\n        }\n        var unitDuration = getDurationInSeconds(nextUnit);\n        var remainder = nextValueInSeconds % unitDuration;\n        var prevInterestingValueInSeconds = nextValueInSeconds - remainder;\n        var nextInterestingValueInSeconds = prevInterestingValueInSeconds >= currentValueInSeconds\n            ? prevInterestingValueInSeconds - unitDuration\n            : prevInterestingValueInSeconds;\n        var delayInSeconds = Math.abs(nextInterestingValueInSeconds - currentValueInSeconds);\n        if (currentValueInSeconds !== nextInterestingValueInSeconds) {\n            updateTimer = setTimeout(function () { return setCurrentValueInSeconds(nextInterestingValueInSeconds); }, delayInSeconds * 1e3);\n        }\n        return clearUpdateTimer;\n    }, [currentValueInSeconds, updateIntervalInSeconds, unit]);\n    var currentValue = value || 0;\n    var currentUnit = unit;\n    if (canIncrement(unit) &&\n        typeof currentValueInSeconds === 'number' &&\n        updateIntervalInSeconds) {\n        currentUnit = selectUnit(currentValueInSeconds);\n        var unitDuration = getDurationInSeconds(currentUnit);\n        currentValue = Math.round(currentValueInSeconds / unitDuration);\n    }\n    return (React.createElement(SimpleFormattedRelativeTime, __assign({ value: currentValue, unit: currentUnit }, otherProps)));\n};\nFormattedRelativeTime.displayName = 'FormattedRelativeTime';\nFormattedRelativeTime.defaultProps = {\n    value: 0,\n    unit: 'second',\n};\nexport default FormattedRelativeTime;\n","import * as React from 'react';\nimport { Context } from './injectIntl';\nimport { invariantIntlContext } from '../utils';\nexport default function useIntl() {\n    var intl = React.useContext(Context);\n    invariantIntlContext(intl);\n    return intl;\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n    invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n        '<IntlProvider> needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n    return function (parts) {\n        // eslint-disable-next-line prefer-rest-params\n        return formatXMLElementFn(React.Children.toArray(parts));\n    };\n}\nexport function shallowEqual(objA, objB) {\n    if (objA === objB) {\n        return true;\n    }\n    if (!objA || !objB) {\n        return false;\n    }\n    var aKeys = Object.keys(objA);\n    var bKeys = Object.keys(objB);\n    var len = aKeys.length;\n    if (bKeys.length !== len) {\n        return false;\n    }\n    for (var i = 0; i < len; i++) {\n        var key = aKeys[i];\n        if (objA[key] !== objB[key] ||\n            !Object.prototype.hasOwnProperty.call(objB, key)) {\n            return false;\n        }\n    }\n    return true;\n}\n","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n    // Cannot count string length via Number.toString because it may use scientific notation\n    // for very small or very large numbers.\n    return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n    if (typeof s.repeat === 'function') {\n        return s.repeat(times);\n    }\n    var arr = new Array(times);\n    for (var i = 0; i < arr.length; i++) {\n        arr[i] = s;\n    }\n    return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n    if (!map.get(pl)) {\n        map.set(pl, Object.create(null));\n    }\n    var slots = map.get(pl);\n    slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n        var k = _a[_i];\n        setInternalSlot(map, pl, k, props[k]);\n    }\n}\nexport function getInternalSlot(map, pl, field) {\n    return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n    var fields = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        fields[_i - 2] = arguments[_i];\n    }\n    var slots = map.get(pl);\n    if (!slots) {\n        throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n    }\n    return fields.reduce(function (all, f) {\n        all[f] = slots[f];\n        return all;\n    }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n    return patternPart.type === 'literal';\n}\n/*\n  17 ECMAScript Standard Built-in Objects:\n    Every built-in Function object, including constructors, that is not\n    identified as an anonymous function has a name property whose value\n    is a String.\n\n    Unless otherwise specified, the name property of a built-in Function\n    object, if it exists, has the attributes { [[Writable]]: false,\n    [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n    var value = _a.value;\n    Object.defineProperty(target, name, {\n        configurable: true,\n        enumerable: false,\n        writable: true,\n        value: value,\n    });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n    if (Err === void 0) { Err = Error; }\n    if (!condition) {\n        throw new Err(message);\n    }\n}\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n    IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n    IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n    IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n    IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n    IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n    __extends(IntlError, _super);\n    function IntlError(code, message, exception) {\n        var _this = this;\n        var err = exception\n            ? exception instanceof Error\n                ? exception\n                : new Error(String(exception))\n            : undefined;\n        _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n        _this.code = code;\n        // @ts-ignore just so we don't need to declare dep on @types/node\n        if (typeof Error.captureStackTrace === 'function') {\n            // @ts-ignore just so we don't need to declare dep on @types/node\n            Error.captureStackTrace(_this, IntlError);\n        }\n        return _this;\n    }\n    return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n    __extends(UnsupportedFormatterError, _super);\n    function UnsupportedFormatterError(message, exception) {\n        return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n    }\n    return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n    __extends(InvalidConfigError, _super);\n    function InvalidConfigError(message, exception) {\n        return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n    }\n    return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n    __extends(MissingDataError, _super);\n    function MissingDataError(message, exception) {\n        return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n    }\n    return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n    __extends(IntlFormatError, _super);\n    function IntlFormatError(message, locale, exception) {\n        var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n        _this.locale = locale;\n        return _this;\n    }\n    return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n    __extends(MessageFormatError, _super);\n    function MessageFormatError(message, locale, descriptor, exception) {\n        var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n        _this.descriptor = descriptor;\n        _this.locale = locale;\n        return _this;\n    }\n    return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n    __extends(MissingTranslationError, _super);\n    function MissingTranslationError(descriptor, locale) {\n        var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n            ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n                ? descriptor.defaultMessage\n                : descriptor.defaultMessage\n                    .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n                    .join(), \")\")\n            : 'id', \" as fallback.\")) || this;\n        _this.descriptor = descriptor;\n        return _this;\n    }\n    return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n    if (defaults === void 0) { defaults = {}; }\n    return allowlist.reduce(function (filtered, name) {\n        if (name in props) {\n            filtered[name] = props[name];\n        }\n        else if (name in defaults) {\n            filtered[name] = defaults[name];\n        }\n        return filtered;\n    }, {});\n}\nvar defaultErrorHandler = function (error) {\n    // @ts-ignore just so we don't need to declare dep on @types/node\n    if (process.env.NODE_ENV !== 'production') {\n        console.error(error);\n    }\n};\nvar defaultWarnHandler = function (warning) {\n    // @ts-ignore just so we don't need to declare dep on @types/node\n    if (process.env.NODE_ENV !== 'production') {\n        console.warn(warning);\n    }\n};\nexport var DEFAULT_INTL_CONFIG = {\n    formats: {},\n    messages: {},\n    timeZone: undefined,\n    defaultLocale: 'en',\n    defaultFormats: {},\n    fallbackOnEmptyString: true,\n    onError: defaultErrorHandler,\n    onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n    return {\n        dateTime: {},\n        number: {},\n        message: {},\n        relativeTime: {},\n        pluralRules: {},\n        list: {},\n        displayNames: {},\n    };\n}\nfunction createFastMemoizeCache(store) {\n    return {\n        create: function () {\n            return {\n                get: function (key) {\n                    return store[key];\n                },\n                set: function (key, value) {\n                    store[key] = value;\n                },\n            };\n        },\n    };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n    if (cache === void 0) { cache = createIntlCache(); }\n    var RelativeTimeFormat = Intl.RelativeTimeFormat;\n    var ListFormat = Intl.ListFormat;\n    var DisplayNames = Intl.DisplayNames;\n    var getDateTimeFormat = memoize(function () {\n        var _a;\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n    }, {\n        cache: createFastMemoizeCache(cache.dateTime),\n        strategy: strategies.variadic,\n    });\n    var getNumberFormat = memoize(function () {\n        var _a;\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n    }, {\n        cache: createFastMemoizeCache(cache.number),\n        strategy: strategies.variadic,\n    });\n    var getPluralRules = memoize(function () {\n        var _a;\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n    }, {\n        cache: createFastMemoizeCache(cache.pluralRules),\n        strategy: strategies.variadic,\n    });\n    return {\n        getDateTimeFormat: getDateTimeFormat,\n        getNumberFormat: getNumberFormat,\n        getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n            return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n                    getNumberFormat: getNumberFormat,\n                    getDateTimeFormat: getDateTimeFormat,\n                    getPluralRules: getPluralRules,\n                } }, (opts || {})));\n        }, {\n            cache: createFastMemoizeCache(cache.message),\n            strategy: strategies.variadic,\n        }),\n        getRelativeTimeFormat: memoize(function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.relativeTime),\n            strategy: strategies.variadic,\n        }),\n        getPluralRules: getPluralRules,\n        getListFormat: memoize(function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.list),\n            strategy: strategies.variadic,\n        }),\n        getDisplayNames: memoize(function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.displayNames),\n            strategy: strategies.variadic,\n        }),\n    };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n    var formatType = formats && formats[type];\n    var format;\n    if (formatType) {\n        format = formatType[name];\n    }\n    if (format) {\n        return format;\n    }\n    onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n  // Call this.constructor.gDSFP to support sub-classes.\n  var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n  if (state !== null && state !== undefined) {\n    this.setState(state);\n  }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n  // Call this.constructor.gDSFP to support sub-classes.\n  // Use the setState() updater to ensure state isn't stale in certain edge cases.\n  function updater(prevState) {\n    var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n    return state !== null && state !== undefined ? state : null;\n  }\n  // Binding \"this\" is important for shallow renderer support.\n  this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n  try {\n    var prevProps = this.props;\n    var prevState = this.state;\n    this.props = nextProps;\n    this.state = nextState;\n    this.__reactInternalSnapshotFlag = true;\n    this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n      prevProps,\n      prevState\n    );\n  } finally {\n    this.props = prevProps;\n    this.state = prevState;\n  }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n  var prototype = Component.prototype;\n\n  if (!prototype || !prototype.isReactComponent) {\n    throw new Error('Can only polyfill class components');\n  }\n\n  if (\n    typeof Component.getDerivedStateFromProps !== 'function' &&\n    typeof prototype.getSnapshotBeforeUpdate !== 'function'\n  ) {\n    return Component;\n  }\n\n  // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n  // Error if any of these lifecycles are present,\n  // Because they would work differently between older and newer (16.3+) versions of React.\n  var foundWillMountName = null;\n  var foundWillReceivePropsName = null;\n  var foundWillUpdateName = null;\n  if (typeof prototype.componentWillMount === 'function') {\n    foundWillMountName = 'componentWillMount';\n  } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n    foundWillMountName = 'UNSAFE_componentWillMount';\n  }\n  if (typeof prototype.componentWillReceiveProps === 'function') {\n    foundWillReceivePropsName = 'componentWillReceiveProps';\n  } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n    foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n  }\n  if (typeof prototype.componentWillUpdate === 'function') {\n    foundWillUpdateName = 'componentWillUpdate';\n  } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n    foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n  }\n  if (\n    foundWillMountName !== null ||\n    foundWillReceivePropsName !== null ||\n    foundWillUpdateName !== null\n  ) {\n    var componentName = Component.displayName || Component.name;\n    var newApiName =\n      typeof Component.getDerivedStateFromProps === 'function'\n        ? 'getDerivedStateFromProps()'\n        : 'getSnapshotBeforeUpdate()';\n\n    throw Error(\n      'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n        componentName +\n        ' uses ' +\n        newApiName +\n        ' but also contains the following legacy lifecycles:' +\n        (foundWillMountName !== null ? '\\n  ' + foundWillMountName : '') +\n        (foundWillReceivePropsName !== null\n          ? '\\n  ' + foundWillReceivePropsName\n          : '') +\n        (foundWillUpdateName !== null ? '\\n  ' + foundWillUpdateName : '') +\n        '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n        'https://fb.me/react-async-component-lifecycle-hooks'\n    );\n  }\n\n  // React <= 16.2 does not support static getDerivedStateFromProps.\n  // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n  // Newer versions of React will ignore these lifecycles if gDSFP exists.\n  if (typeof Component.getDerivedStateFromProps === 'function') {\n    prototype.componentWillMount = componentWillMount;\n    prototype.componentWillReceiveProps = componentWillReceiveProps;\n  }\n\n  // React <= 16.2 does not support getSnapshotBeforeUpdate.\n  // As a workaround, use cWU to invoke the new lifecycle.\n  // Newer versions of React will ignore that lifecycle if gSBU exists.\n  if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n    if (typeof prototype.componentDidUpdate !== 'function') {\n      throw new Error(\n        'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n      );\n    }\n\n    prototype.componentWillUpdate = componentWillUpdate;\n\n    var componentDidUpdate = prototype.componentDidUpdate;\n\n    prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n      prevProps,\n      prevState,\n      maybeSnapshot\n    ) {\n      // 16.3+ will not execute our will-update method;\n      // It will pass a snapshot value to did-update though.\n      // Older versions will require our polyfilled will-update value.\n      // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n      // Because for <= 15.x versions this might be a \"prevContext\" object.\n      // We also can't just check \"__reactInternalSnapshot\",\n      // Because get-snapshot might return a falsy value.\n      // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n      var snapshot = this.__reactInternalSnapshotFlag\n        ? this.__reactInternalSnapshot\n        : maybeSnapshot;\n\n      componentDidUpdate.call(this, prevProps, prevState, snapshot);\n    };\n  }\n\n  return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n *   transition: `opacity ${duration}ms ease-in-out`,\n *   opacity: 0,\n * }\n *\n * const transitionStyles = {\n *   entering: { opacity: 0 },\n *   entered:  { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n *   <Transition in={inProp} timeout={duration}>\n *     {state => (\n *       <div style={{\n *         ...defaultStyle,\n *         ...transitionStyles[state]\n *       }}>\n *         I'm a fade Transition!\n *       </div>\n *     )}\n *   </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n *  - `'entering'`\n *  - `'entered'`\n *  - `'exiting'`\n *  - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <Transition in={inProp} timeout={500}>\n *         {state => (\n *           // ...\n *         )}\n *       </Transition>\n *       <button onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inheritsLoose(Transition, _React$Component);\n\n  function Transition(props, context) {\n    var _this;\n\n    _this = _React$Component.call(this, props, context) || this;\n    var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n    var initialStatus;\n    _this.appearStatus = null;\n\n    if (props.in) {\n      if (appear) {\n        initialStatus = EXITED;\n        _this.appearStatus = ENTERING;\n      } else {\n        initialStatus = ENTERED;\n      }\n    } else {\n      if (props.unmountOnExit || props.mountOnEnter) {\n        initialStatus = UNMOUNTED;\n      } else {\n        initialStatus = EXITED;\n      }\n    }\n\n    _this.state = {\n      status: initialStatus\n    };\n    _this.nextCallback = null;\n    return _this;\n  }\n\n  var _proto = Transition.prototype;\n\n  _proto.getChildContext = function getChildContext() {\n    return {\n      transitionGroup: null // allows for nested Transitions\n\n    };\n  };\n\n  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n    var nextIn = _ref.in;\n\n    if (nextIn && prevState.status === UNMOUNTED) {\n      return {\n        status: EXITED\n      };\n    }\n\n    return null;\n  }; // getSnapshotBeforeUpdate(prevProps) {\n  //   let nextStatus = null\n  //   if (prevProps !== this.props) {\n  //     const { status } = this.state\n  //     if (this.props.in) {\n  //       if (status !== ENTERING && status !== ENTERED) {\n  //         nextStatus = ENTERING\n  //       }\n  //     } else {\n  //       if (status === ENTERING || status === ENTERED) {\n  //         nextStatus = EXITING\n  //       }\n  //     }\n  //   }\n  //   return { nextStatus }\n  // }\n\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.updateStatus(true, this.appearStatus);\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var nextStatus = null;\n\n    if (prevProps !== this.props) {\n      var status = this.state.status;\n\n      if (this.props.in) {\n        if (status !== ENTERING && status !== ENTERED) {\n          nextStatus = ENTERING;\n        }\n      } else {\n        if (status === ENTERING || status === ENTERED) {\n          nextStatus = EXITING;\n        }\n      }\n    }\n\n    this.updateStatus(false, nextStatus);\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.cancelNextCallback();\n  };\n\n  _proto.getTimeouts = function getTimeouts() {\n    var timeout = this.props.timeout;\n    var exit, enter, appear;\n    exit = enter = appear = timeout;\n\n    if (timeout != null && typeof timeout !== 'number') {\n      exit = timeout.exit;\n      enter = timeout.enter; // TODO: remove fallback for next major\n\n      appear = timeout.appear !== undefined ? timeout.appear : enter;\n    }\n\n    return {\n      exit: exit,\n      enter: enter,\n      appear: appear\n    };\n  };\n\n  _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n    if (mounting === void 0) {\n      mounting = false;\n    }\n\n    if (nextStatus !== null) {\n      // nextStatus will always be ENTERING or EXITING.\n      this.cancelNextCallback();\n\n      var node = _reactDom.default.findDOMNode(this);\n\n      if (nextStatus === ENTERING) {\n        this.performEnter(node, mounting);\n      } else {\n        this.performExit(node);\n      }\n    } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n      this.setState({\n        status: UNMOUNTED\n      });\n    }\n  };\n\n  _proto.performEnter = function performEnter(node, mounting) {\n    var _this2 = this;\n\n    var enter = this.props.enter;\n    var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n    var timeouts = this.getTimeouts();\n    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n    // if we are mounting and running this it means appear _must_ be set\n\n    if (!mounting && !enter) {\n      this.safeSetState({\n        status: ENTERED\n      }, function () {\n        _this2.props.onEntered(node);\n      });\n      return;\n    }\n\n    this.props.onEnter(node, appearing);\n    this.safeSetState({\n      status: ENTERING\n    }, function () {\n      _this2.props.onEntering(node, appearing);\n\n      _this2.onTransitionEnd(node, enterTimeout, function () {\n        _this2.safeSetState({\n          status: ENTERED\n        }, function () {\n          _this2.props.onEntered(node, appearing);\n        });\n      });\n    });\n  };\n\n  _proto.performExit = function performExit(node) {\n    var _this3 = this;\n\n    var exit = this.props.exit;\n    var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n    if (!exit) {\n      this.safeSetState({\n        status: EXITED\n      }, function () {\n        _this3.props.onExited(node);\n      });\n      return;\n    }\n\n    this.props.onExit(node);\n    this.safeSetState({\n      status: EXITING\n    }, function () {\n      _this3.props.onExiting(node);\n\n      _this3.onTransitionEnd(node, timeouts.exit, function () {\n        _this3.safeSetState({\n          status: EXITED\n        }, function () {\n          _this3.props.onExited(node);\n        });\n      });\n    });\n  };\n\n  _proto.cancelNextCallback = function cancelNextCallback() {\n    if (this.nextCallback !== null) {\n      this.nextCallback.cancel();\n      this.nextCallback = null;\n    }\n  };\n\n  _proto.safeSetState = function safeSetState(nextState, callback) {\n    // This shouldn't be necessary, but there are weird race conditions with\n    // setState callbacks and unmounting in testing, so always make sure that\n    // we can cancel any pending setState callbacks after we unmount.\n    callback = this.setNextCallback(callback);\n    this.setState(nextState, callback);\n  };\n\n  _proto.setNextCallback = function setNextCallback(callback) {\n    var _this4 = this;\n\n    var active = true;\n\n    this.nextCallback = function (event) {\n      if (active) {\n        active = false;\n        _this4.nextCallback = null;\n        callback(event);\n      }\n    };\n\n    this.nextCallback.cancel = function () {\n      active = false;\n    };\n\n    return this.nextCallback;\n  };\n\n  _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n    this.setNextCallback(handler);\n    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n    if (!node || doesNotHaveTimeoutOrListener) {\n      setTimeout(this.nextCallback, 0);\n      return;\n    }\n\n    if (this.props.addEndListener) {\n      this.props.addEndListener(node, this.nextCallback);\n    }\n\n    if (timeout != null) {\n      setTimeout(this.nextCallback, timeout);\n    }\n  };\n\n  _proto.render = function render() {\n    var status = this.state.status;\n\n    if (status === UNMOUNTED) {\n      return null;\n    }\n\n    var _this$props = this.props,\n        children = _this$props.children,\n        childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n    delete childProps.in;\n    delete childProps.mountOnEnter;\n    delete childProps.unmountOnExit;\n    delete childProps.appear;\n    delete childProps.enter;\n    delete childProps.exit;\n    delete childProps.timeout;\n    delete childProps.addEndListener;\n    delete childProps.onEnter;\n    delete childProps.onEntering;\n    delete childProps.onEntered;\n    delete childProps.onExit;\n    delete childProps.onExiting;\n    delete childProps.onExited;\n\n    if (typeof children === 'function') {\n      return children(status, childProps);\n    }\n\n    var child = _react.default.Children.only(children);\n\n    return _react.default.cloneElement(child, childProps);\n  };\n\n  return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n  transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n  transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * A `function` child can be used instead of a React element. This function is\n   * called with the current transition status (`'entering'`, `'entered'`,\n   * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n   * specific props to a component.\n   *\n   * ```jsx\n   * <Transition in={this.state.in} timeout={150}>\n   *   {state => (\n   *     <MyComponent className={`fade fade-${state}`} />\n   *   )}\n   * </Transition>\n   * ```\n   */\n  children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n  /**\n   * Show the component; triggers the enter or exit states\n   */\n  in: PropTypes.bool,\n\n  /**\n   * By default the child component is mounted immediately along with\n   * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n   * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n   * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n   */\n  mountOnEnter: PropTypes.bool,\n\n  /**\n   * By default the child component stays mounted after it reaches the `'exited'` state.\n   * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n   */\n  unmountOnExit: PropTypes.bool,\n\n  /**\n   * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n   * If you want to transition on the first mount set `appear` to `true`, and the\n   * component will transition in as soon as the `<Transition>` mounts.\n   *\n   * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n   */\n  appear: PropTypes.bool,\n\n  /**\n   * Enable or disable enter transitions.\n   */\n  enter: PropTypes.bool,\n\n  /**\n   * Enable or disable exit transitions.\n   */\n  exit: PropTypes.bool,\n\n  /**\n   * The duration of the transition, in milliseconds.\n   * Required unless `addEndListener` is provided.\n   *\n   * You may specify a single timeout for all transitions:\n   *\n   * ```jsx\n   * timeout={500}\n   * ```\n   *\n   * or individually:\n   *\n   * ```jsx\n   * timeout={{\n   *  appear: 500,\n   *  enter: 300,\n   *  exit: 500,\n   * }}\n   * ```\n   *\n   * - `appear` defaults to the value of `enter`\n   * - `enter` defaults to `0`\n   * - `exit` defaults to `0`\n   *\n   * @type {number | { enter?: number, exit?: number, appear?: number }}\n   */\n  timeout: function timeout(props) {\n    var pt = _PropTypes.timeoutsShape;\n    if (!props.addEndListener) pt = pt.isRequired;\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return pt.apply(void 0, [props].concat(args));\n  },\n\n  /**\n   * Add a custom transition end trigger. Called with the transitioning\n   * DOM node and a `done` callback. Allows for more fine grained transition end\n   * logic. **Note:** Timeouts are still used as a fallback if provided.\n   *\n   * ```jsx\n   * addEndListener={(node, done) => {\n   *   // use the css transitionend event to mark the finish of a transition\n   *   node.addEventListener('transitionend', done, false);\n   * }}\n   * ```\n   */\n  addEndListener: PropTypes.func,\n\n  /**\n   * Callback fired before the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEnter: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: PropTypes.func,\n\n  /**\n   * Callback fired after the \"entered\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEntered: PropTypes.func,\n\n  /**\n   * Callback fired before the \"exiting\" status is applied.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExit: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exiting\" status is applied.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExiting: PropTypes.func,\n\n  /**\n   * Callback fired after the \"exited\" status is applied.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n  in: false,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false,\n  enter: true,\n  exit: true,\n  onEnter: noop,\n  onEntering: noop,\n  onEntered: noop,\n  onExit: noop,\n  onExiting: noop,\n  onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n  enter: _propTypes.default.number,\n  exit: _propTypes.default.number,\n  appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n  enter: _propTypes.default.string,\n  exit: _propTypes.default.string,\n  active: _propTypes.default.string\n}), _propTypes.default.shape({\n  enter: _propTypes.default.string,\n  enterDone: _propTypes.default.string,\n  enterActive: _propTypes.default.string,\n  exit: _propTypes.default.string,\n  exitDone: _propTypes.default.string,\n  exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n  var key = toPrimitive(arg, \"string\");\n  return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n  if (_typeof(input) !== \"object\" || input === null) return input;\n  var prim = input[Symbol.toPrimitive];\n  if (prim !== undefined) {\n    var res = prim.call(input, hint || \"default\");\n    if (_typeof(res) !== \"object\") return res;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n  }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}","export default function _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}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  } else if (call !== void 0) {\n    throw new TypeError(\"Derived constructors may only return object or undefined\");\n  }\n  return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}","export default function _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}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  Object.defineProperty(subClass, \"prototype\", {\n    writable: false\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","export default function _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Helper method that determines when to recalculate row or column metadata.\n */\nexport default function calculateSizeAndPositionDataAndUpdateScrollOffset(_ref) {\n  var cellCount = _ref.cellCount,\n      cellSize = _ref.cellSize,\n      computeMetadataCallback = _ref.computeMetadataCallback,\n      computeMetadataCallbackProps = _ref.computeMetadataCallbackProps,\n      nextCellsCount = _ref.nextCellsCount,\n      nextCellSize = _ref.nextCellSize,\n      nextScrollToIndex = _ref.nextScrollToIndex,\n      scrollToIndex = _ref.scrollToIndex,\n      updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex;\n\n  // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.\n  // In that event users should use the manual recompute methods to inform of changes.\n  if (cellCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {\n    computeMetadataCallback(computeMetadataCallbackProps); // Updated cell metadata may have hidden the previous scrolled-to item.\n    // In this case we should also update the scrollTop to ensure it stays visible.\n\n    if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {\n      updateScrollOffsetForScrollToIndex();\n    }\n  }\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}","export default function _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}","import * as React from 'react';\nimport ScalingCellSizeAndPositionManager from './utils/ScalingCellSizeAndPositionManager';\nvar bpfrpt_proptype_CellPosition = process.env.NODE_ENV === 'production' ? null : {\n  \"columnIndex\": PropTypes.number.isRequired,\n  \"rowIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_CellRendererParams = process.env.NODE_ENV === 'production' ? null : {\n  \"columnIndex\": PropTypes.number.isRequired,\n  \"isScrolling\": PropTypes.bool.isRequired,\n  \"isVisible\": PropTypes.bool.isRequired,\n  \"key\": PropTypes.string.isRequired,\n  \"parent\": PropTypes.object.isRequired,\n  \"rowIndex\": PropTypes.number.isRequired,\n  \"style\": PropTypes.object.isRequired\n};\nvar bpfrpt_proptype_CellRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_CellCache = process.env.NODE_ENV === 'production' ? null : PropTypes.objectOf(PropTypes.node.isRequired);\nvar bpfrpt_proptype_StyleCache = process.env.NODE_ENV === 'production' ? null : PropTypes.objectOf(PropTypes.object.isRequired);\nvar bpfrpt_proptype_CellRangeRendererParams = process.env.NODE_ENV === 'production' ? null : {\n  \"cellCache\": PropTypes.objectOf(PropTypes.node.isRequired).isRequired,\n  \"cellRenderer\": PropTypes.func.isRequired,\n  \"columnSizeAndPositionManager\": function columnSizeAndPositionManager() {\n    return (typeof ScalingCellSizeAndPositionManager === \"function\" ? PropTypes.instanceOf(ScalingCellSizeAndPositionManager).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n  },\n  \"columnStartIndex\": PropTypes.number.isRequired,\n  \"columnStopIndex\": PropTypes.number.isRequired,\n  \"deferredMeasurementCache\": PropTypes.object,\n  \"horizontalOffsetAdjustment\": PropTypes.number.isRequired,\n  \"isScrolling\": PropTypes.bool.isRequired,\n  \"isScrollingOptOut\": PropTypes.bool.isRequired,\n  \"parent\": PropTypes.object.isRequired,\n  \"rowSizeAndPositionManager\": function rowSizeAndPositionManager() {\n    return (typeof ScalingCellSizeAndPositionManager === \"function\" ? PropTypes.instanceOf(ScalingCellSizeAndPositionManager).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n  },\n  \"rowStartIndex\": PropTypes.number.isRequired,\n  \"rowStopIndex\": PropTypes.number.isRequired,\n  \"scrollLeft\": PropTypes.number.isRequired,\n  \"scrollTop\": PropTypes.number.isRequired,\n  \"styleCache\": PropTypes.objectOf(PropTypes.object.isRequired).isRequired,\n  \"verticalOffsetAdjustment\": PropTypes.number.isRequired,\n  \"visibleColumnIndices\": PropTypes.object.isRequired,\n  \"visibleRowIndices\": PropTypes.object.isRequired\n};\nvar bpfrpt_proptype_CellRangeRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_CellSizeGetter = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_CellSize = process.env.NODE_ENV === 'production' ? null : PropTypes.oneOfType([PropTypes.func, PropTypes.number]);\nvar bpfrpt_proptype_NoContentRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {\n  \"clientHeight\": PropTypes.number.isRequired,\n  \"clientWidth\": PropTypes.number.isRequired,\n  \"scrollHeight\": PropTypes.number.isRequired,\n  \"scrollLeft\": PropTypes.number.isRequired,\n  \"scrollTop\": PropTypes.number.isRequired,\n  \"scrollWidth\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_ScrollbarPresenceChange = process.env.NODE_ENV === 'production' ? null : {\n  \"horizontal\": PropTypes.bool.isRequired,\n  \"vertical\": PropTypes.bool.isRequired,\n  \"size\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_RenderedSection = process.env.NODE_ENV === 'production' ? null : {\n  \"columnOverscanStartIndex\": PropTypes.number.isRequired,\n  \"columnOverscanStopIndex\": PropTypes.number.isRequired,\n  \"columnStartIndex\": PropTypes.number.isRequired,\n  \"columnStopIndex\": PropTypes.number.isRequired,\n  \"rowOverscanStartIndex\": PropTypes.number.isRequired,\n  \"rowOverscanStopIndex\": PropTypes.number.isRequired,\n  \"rowStartIndex\": PropTypes.number.isRequired,\n  \"rowStopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_OverscanIndicesGetterParams = process.env.NODE_ENV === 'production' ? null : {\n  // One of SCROLL_DIRECTION_HORIZONTAL or SCROLL_DIRECTION_VERTICAL\n  \"direction\": PropTypes.oneOf([\"horizontal\", \"vertical\"]).isRequired,\n  // One of SCROLL_DIRECTION_BACKWARD or SCROLL_DIRECTION_FORWARD\n  \"scrollDirection\": PropTypes.oneOf([-1, 1]).isRequired,\n  // Number of rows or columns in the current axis\n  \"cellCount\": PropTypes.number.isRequired,\n  // Maximum number of cells to over-render in either direction\n  \"overscanCellsCount\": PropTypes.number.isRequired,\n  // Begin of range of visible cells\n  \"startIndex\": PropTypes.number.isRequired,\n  // End of range of visible cells\n  \"stopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_OverscanIndices = process.env.NODE_ENV === 'production' ? null : {\n  \"overscanStartIndex\": PropTypes.number.isRequired,\n  \"overscanStopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_OverscanIndicesGetter = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_Alignment = process.env.NODE_ENV === 'production' ? null : PropTypes.oneOf([\"auto\", \"end\", \"start\", \"center\"]);\nvar bpfrpt_proptype_VisibleCellRange = process.env.NODE_ENV === 'production' ? null : {\n  \"start\": PropTypes.number,\n  \"stop\": PropTypes.number\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_CellPosition };\nexport { bpfrpt_proptype_CellRendererParams };\nexport { bpfrpt_proptype_CellRenderer };\nexport { bpfrpt_proptype_CellCache };\nexport { bpfrpt_proptype_StyleCache };\nexport { bpfrpt_proptype_CellRangeRendererParams };\nexport { bpfrpt_proptype_CellRangeRenderer };\nexport { bpfrpt_proptype_CellSizeGetter };\nexport { bpfrpt_proptype_CellSize };\nexport { bpfrpt_proptype_NoContentRenderer };\nexport { bpfrpt_proptype_Scroll };\nexport { bpfrpt_proptype_ScrollbarPresenceChange };\nexport { bpfrpt_proptype_RenderedSection };\nexport { bpfrpt_proptype_OverscanIndicesGetterParams };\nexport { bpfrpt_proptype_OverscanIndices };\nexport { bpfrpt_proptype_OverscanIndicesGetter };\nexport { bpfrpt_proptype_Alignment };\nexport { bpfrpt_proptype_VisibleCellRange };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\n/**\n * Just-in-time calculates and caches size and position information for a collection of cells.\n */\nvar CellSizeAndPositionManager =\n/*#__PURE__*/\nfunction () {\n  // Cache of size and position data for cells, mapped by cell index.\n  // Note that invalid values may exist in this map so only rely on cells up to this._lastMeasuredIndex\n  // Measurements for cells up to this index can be trusted; cells afterward should be estimated.\n  // Used in deferred mode to track which cells have been queued for measurement.\n  function CellSizeAndPositionManager(_ref) {\n    var cellCount = _ref.cellCount,\n        cellSizeGetter = _ref.cellSizeGetter,\n        estimatedCellSize = _ref.estimatedCellSize;\n\n    _classCallCheck(this, CellSizeAndPositionManager);\n\n    _defineProperty(this, \"_cellSizeAndPositionData\", {});\n\n    _defineProperty(this, \"_lastMeasuredIndex\", -1);\n\n    _defineProperty(this, \"_lastBatchedIndex\", -1);\n\n    _defineProperty(this, \"_cellCount\", void 0);\n\n    _defineProperty(this, \"_cellSizeGetter\", void 0);\n\n    _defineProperty(this, \"_estimatedCellSize\", void 0);\n\n    this._cellSizeGetter = cellSizeGetter;\n    this._cellCount = cellCount;\n    this._estimatedCellSize = estimatedCellSize;\n  }\n\n  _createClass(CellSizeAndPositionManager, [{\n    key: \"areOffsetsAdjusted\",\n    value: function areOffsetsAdjusted() {\n      return false;\n    }\n  }, {\n    key: \"configure\",\n    value: function configure(_ref2) {\n      var cellCount = _ref2.cellCount,\n          estimatedCellSize = _ref2.estimatedCellSize,\n          cellSizeGetter = _ref2.cellSizeGetter;\n      this._cellCount = cellCount;\n      this._estimatedCellSize = estimatedCellSize;\n      this._cellSizeGetter = cellSizeGetter;\n    }\n  }, {\n    key: \"getCellCount\",\n    value: function getCellCount() {\n      return this._cellCount;\n    }\n  }, {\n    key: \"getEstimatedCellSize\",\n    value: function getEstimatedCellSize() {\n      return this._estimatedCellSize;\n    }\n  }, {\n    key: \"getLastMeasuredIndex\",\n    value: function getLastMeasuredIndex() {\n      return this._lastMeasuredIndex;\n    }\n  }, {\n    key: \"getOffsetAdjustment\",\n    value: function getOffsetAdjustment() {\n      return 0;\n    }\n    /**\n     * This method returns the size and position for the cell at the specified index.\n     * It just-in-time calculates (or used cached values) for cells leading up to the index.\n     */\n\n  }, {\n    key: \"getSizeAndPositionOfCell\",\n    value: function getSizeAndPositionOfCell(index) {\n      if (index < 0 || index >= this._cellCount) {\n        throw Error(\"Requested index \".concat(index, \" is outside of range 0..\").concat(this._cellCount));\n      }\n\n      if (index > this._lastMeasuredIndex) {\n        var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n        var offset = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;\n\n        for (var i = this._lastMeasuredIndex + 1; i <= index; i++) {\n          var size = this._cellSizeGetter({\n            index: i\n          }); // undefined or NaN probably means a logic error in the size getter.\n          // null means we're using CellMeasurer and haven't yet measured a given index.\n\n\n          if (size === undefined || isNaN(size)) {\n            throw Error(\"Invalid size returned for cell \".concat(i, \" of value \").concat(size));\n          } else if (size === null) {\n            this._cellSizeAndPositionData[i] = {\n              offset: offset,\n              size: 0\n            };\n            this._lastBatchedIndex = index;\n          } else {\n            this._cellSizeAndPositionData[i] = {\n              offset: offset,\n              size: size\n            };\n            offset += size;\n            this._lastMeasuredIndex = index;\n          }\n        }\n      }\n\n      return this._cellSizeAndPositionData[index];\n    }\n  }, {\n    key: \"getSizeAndPositionOfLastMeasuredCell\",\n    value: function getSizeAndPositionOfLastMeasuredCell() {\n      return this._lastMeasuredIndex >= 0 ? this._cellSizeAndPositionData[this._lastMeasuredIndex] : {\n        offset: 0,\n        size: 0\n      };\n    }\n    /**\n     * Total size of all cells being measured.\n     * This value will be completely estimated initially.\n     * As cells are measured, the estimate will be updated.\n     */\n\n  }, {\n    key: \"getTotalSize\",\n    value: function getTotalSize() {\n      var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n      var totalSizeOfMeasuredCells = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;\n      var numUnmeasuredCells = this._cellCount - this._lastMeasuredIndex - 1;\n      var totalSizeOfUnmeasuredCells = numUnmeasuredCells * this._estimatedCellSize;\n      return totalSizeOfMeasuredCells + totalSizeOfUnmeasuredCells;\n    }\n    /**\n     * Determines a new offset that ensures a certain cell is visible, given the current offset.\n     * If the cell is already visible then the current offset will be returned.\n     * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n     *\n     * @param align Desired alignment within container; one of \"auto\" (default), \"start\", or \"end\"\n     * @param containerSize Size (width or height) of the container viewport\n     * @param currentOffset Container's current (x or y) offset\n     * @param totalSize Total size (width or height) of all cells\n     * @return Offset to use to ensure the specified cell is visible\n     */\n\n  }, {\n    key: \"getUpdatedOffsetForIndex\",\n    value: function getUpdatedOffsetForIndex(_ref3) {\n      var _ref3$align = _ref3.align,\n          align = _ref3$align === void 0 ? 'auto' : _ref3$align,\n          containerSize = _ref3.containerSize,\n          currentOffset = _ref3.currentOffset,\n          targetIndex = _ref3.targetIndex;\n\n      if (containerSize <= 0) {\n        return 0;\n      }\n\n      var datum = this.getSizeAndPositionOfCell(targetIndex);\n      var maxOffset = datum.offset;\n      var minOffset = maxOffset - containerSize + datum.size;\n      var idealOffset;\n\n      switch (align) {\n        case 'start':\n          idealOffset = maxOffset;\n          break;\n\n        case 'end':\n          idealOffset = minOffset;\n          break;\n\n        case 'center':\n          idealOffset = maxOffset - (containerSize - datum.size) / 2;\n          break;\n\n        default:\n          idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));\n          break;\n      }\n\n      var totalSize = this.getTotalSize();\n      return Math.max(0, Math.min(totalSize - containerSize, idealOffset));\n    }\n  }, {\n    key: \"getVisibleCellRange\",\n    value: function getVisibleCellRange(params) {\n      var containerSize = params.containerSize,\n          offset = params.offset;\n      var totalSize = this.getTotalSize();\n\n      if (totalSize === 0) {\n        return {};\n      }\n\n      var maxOffset = offset + containerSize;\n\n      var start = this._findNearestCell(offset);\n\n      var datum = this.getSizeAndPositionOfCell(start);\n      offset = datum.offset + datum.size;\n      var stop = start;\n\n      while (offset < maxOffset && stop < this._cellCount - 1) {\n        stop++;\n        offset += this.getSizeAndPositionOfCell(stop).size;\n      }\n\n      return {\n        start: start,\n        stop: stop\n      };\n    }\n    /**\n     * Clear all cached values for cells after the specified index.\n     * This method should be called for any cell that has changed its size.\n     * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionOfCell() is called.\n     */\n\n  }, {\n    key: \"resetCell\",\n    value: function resetCell(index) {\n      this._lastMeasuredIndex = Math.min(this._lastMeasuredIndex, index - 1);\n    }\n  }, {\n    key: \"_binarySearch\",\n    value: function _binarySearch(high, low, offset) {\n      while (low <= high) {\n        var middle = low + Math.floor((high - low) / 2);\n        var currentOffset = this.getSizeAndPositionOfCell(middle).offset;\n\n        if (currentOffset === offset) {\n          return middle;\n        } else if (currentOffset < offset) {\n          low = middle + 1;\n        } else if (currentOffset > offset) {\n          high = middle - 1;\n        }\n      }\n\n      if (low > 0) {\n        return low - 1;\n      } else {\n        return 0;\n      }\n    }\n  }, {\n    key: \"_exponentialSearch\",\n    value: function _exponentialSearch(index, offset) {\n      var interval = 1;\n\n      while (index < this._cellCount && this.getSizeAndPositionOfCell(index).offset < offset) {\n        index += interval;\n        interval *= 2;\n      }\n\n      return this._binarySearch(Math.min(index, this._cellCount - 1), Math.floor(index / 2), offset);\n    }\n    /**\n     * Searches for the cell (index) nearest the specified offset.\n     *\n     * If no exact match is found the next lowest cell index will be returned.\n     * This allows partially visible cells (with offsets just before/above the fold) to be visible.\n     */\n\n  }, {\n    key: \"_findNearestCell\",\n    value: function _findNearestCell(offset) {\n      if (isNaN(offset)) {\n        throw Error(\"Invalid offset \".concat(offset, \" specified\"));\n      } // Our search algorithms find the nearest match at or below the specified offset.\n      // So make sure the offset is at least 0 or no match will be found.\n\n\n      offset = Math.max(0, offset);\n      var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n      var lastMeasuredIndex = Math.max(0, this._lastMeasuredIndex);\n\n      if (lastMeasuredCellSizeAndPosition.offset >= offset) {\n        // If we've already measured cells within this range just use a binary search as it's faster.\n        return this._binarySearch(lastMeasuredIndex, 0, offset);\n      } else {\n        // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n        // The exponential search avoids pre-computing sizes for the full set of cells as a binary search would.\n        // The overall complexity for this approach is O(log n).\n        return this._exponentialSearch(lastMeasuredIndex, offset);\n      }\n    }\n  }]);\n\n  return CellSizeAndPositionManager;\n}();\n\nexport { CellSizeAndPositionManager as default };\nimport { bpfrpt_proptype_Alignment } from \"../types\";\nimport { bpfrpt_proptype_CellSizeGetter } from \"../types\";\nimport { bpfrpt_proptype_VisibleCellRange } from \"../types\";","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport CellSizeAndPositionManager from './CellSizeAndPositionManager';\nimport { getMaxElementSize } from './maxElementSize.js';\n\n/**\n * Extends CellSizeAndPositionManager and adds scaling behavior for lists that are too large to fit within a browser's native limits.\n */\nvar ScalingCellSizeAndPositionManager =\n/*#__PURE__*/\nfunction () {\n  function ScalingCellSizeAndPositionManager(_ref) {\n    var _ref$maxScrollSize = _ref.maxScrollSize,\n        maxScrollSize = _ref$maxScrollSize === void 0 ? getMaxElementSize() : _ref$maxScrollSize,\n        params = _objectWithoutProperties(_ref, [\"maxScrollSize\"]);\n\n    _classCallCheck(this, ScalingCellSizeAndPositionManager);\n\n    _defineProperty(this, \"_cellSizeAndPositionManager\", void 0);\n\n    _defineProperty(this, \"_maxScrollSize\", void 0);\n\n    // Favor composition over inheritance to simplify IE10 support\n    this._cellSizeAndPositionManager = new CellSizeAndPositionManager(params);\n    this._maxScrollSize = maxScrollSize;\n  }\n\n  _createClass(ScalingCellSizeAndPositionManager, [{\n    key: \"areOffsetsAdjusted\",\n    value: function areOffsetsAdjusted() {\n      return this._cellSizeAndPositionManager.getTotalSize() > this._maxScrollSize;\n    }\n  }, {\n    key: \"configure\",\n    value: function configure(params) {\n      this._cellSizeAndPositionManager.configure(params);\n    }\n  }, {\n    key: \"getCellCount\",\n    value: function getCellCount() {\n      return this._cellSizeAndPositionManager.getCellCount();\n    }\n  }, {\n    key: \"getEstimatedCellSize\",\n    value: function getEstimatedCellSize() {\n      return this._cellSizeAndPositionManager.getEstimatedCellSize();\n    }\n  }, {\n    key: \"getLastMeasuredIndex\",\n    value: function getLastMeasuredIndex() {\n      return this._cellSizeAndPositionManager.getLastMeasuredIndex();\n    }\n    /**\n     * Number of pixels a cell at the given position (offset) should be shifted in order to fit within the scaled container.\n     * The offset passed to this function is scaled (safe) as well.\n     */\n\n  }, {\n    key: \"getOffsetAdjustment\",\n    value: function getOffsetAdjustment(_ref2) {\n      var containerSize = _ref2.containerSize,\n          offset = _ref2.offset;\n\n      var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n\n      var safeTotalSize = this.getTotalSize();\n\n      var offsetPercentage = this._getOffsetPercentage({\n        containerSize: containerSize,\n        offset: offset,\n        totalSize: safeTotalSize\n      });\n\n      return Math.round(offsetPercentage * (safeTotalSize - totalSize));\n    }\n  }, {\n    key: \"getSizeAndPositionOfCell\",\n    value: function getSizeAndPositionOfCell(index) {\n      return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(index);\n    }\n  }, {\n    key: \"getSizeAndPositionOfLastMeasuredCell\",\n    value: function getSizeAndPositionOfLastMeasuredCell() {\n      return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell();\n    }\n    /** See CellSizeAndPositionManager#getTotalSize */\n\n  }, {\n    key: \"getTotalSize\",\n    value: function getTotalSize() {\n      return Math.min(this._maxScrollSize, this._cellSizeAndPositionManager.getTotalSize());\n    }\n    /** See CellSizeAndPositionManager#getUpdatedOffsetForIndex */\n\n  }, {\n    key: \"getUpdatedOffsetForIndex\",\n    value: function getUpdatedOffsetForIndex(_ref3) {\n      var _ref3$align = _ref3.align,\n          align = _ref3$align === void 0 ? 'auto' : _ref3$align,\n          containerSize = _ref3.containerSize,\n          currentOffset = _ref3.currentOffset,\n          targetIndex = _ref3.targetIndex;\n      currentOffset = this._safeOffsetToOffset({\n        containerSize: containerSize,\n        offset: currentOffset\n      });\n\n      var offset = this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({\n        align: align,\n        containerSize: containerSize,\n        currentOffset: currentOffset,\n        targetIndex: targetIndex\n      });\n\n      return this._offsetToSafeOffset({\n        containerSize: containerSize,\n        offset: offset\n      });\n    }\n    /** See CellSizeAndPositionManager#getVisibleCellRange */\n\n  }, {\n    key: \"getVisibleCellRange\",\n    value: function getVisibleCellRange(_ref4) {\n      var containerSize = _ref4.containerSize,\n          offset = _ref4.offset;\n      offset = this._safeOffsetToOffset({\n        containerSize: containerSize,\n        offset: offset\n      });\n      return this._cellSizeAndPositionManager.getVisibleCellRange({\n        containerSize: containerSize,\n        offset: offset\n      });\n    }\n  }, {\n    key: \"resetCell\",\n    value: function resetCell(index) {\n      this._cellSizeAndPositionManager.resetCell(index);\n    }\n  }, {\n    key: \"_getOffsetPercentage\",\n    value: function _getOffsetPercentage(_ref5) {\n      var containerSize = _ref5.containerSize,\n          offset = _ref5.offset,\n          totalSize = _ref5.totalSize;\n      return totalSize <= containerSize ? 0 : offset / (totalSize - containerSize);\n    }\n  }, {\n    key: \"_offsetToSafeOffset\",\n    value: function _offsetToSafeOffset(_ref6) {\n      var containerSize = _ref6.containerSize,\n          offset = _ref6.offset;\n\n      var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n\n      var safeTotalSize = this.getTotalSize();\n\n      if (totalSize === safeTotalSize) {\n        return offset;\n      } else {\n        var offsetPercentage = this._getOffsetPercentage({\n          containerSize: containerSize,\n          offset: offset,\n          totalSize: totalSize\n        });\n\n        return Math.round(offsetPercentage * (safeTotalSize - containerSize));\n      }\n    }\n  }, {\n    key: \"_safeOffsetToOffset\",\n    value: function _safeOffsetToOffset(_ref7) {\n      var containerSize = _ref7.containerSize,\n          offset = _ref7.offset;\n\n      var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n\n      var safeTotalSize = this.getTotalSize();\n\n      if (totalSize === safeTotalSize) {\n        return offset;\n      } else {\n        var offsetPercentage = this._getOffsetPercentage({\n          containerSize: containerSize,\n          offset: offset,\n          totalSize: safeTotalSize\n        });\n\n        return Math.round(offsetPercentage * (totalSize - containerSize));\n      }\n    }\n  }]);\n\n  return ScalingCellSizeAndPositionManager;\n}();\n\nexport { ScalingCellSizeAndPositionManager as default };\nimport { bpfrpt_proptype_Alignment } from \"../types\";\nimport { bpfrpt_proptype_CellSizeGetter } from \"../types\";\nimport { bpfrpt_proptype_VisibleCellRange } from \"../types\";","var DEFAULT_MAX_ELEMENT_SIZE = 1500000;\nvar CHROME_MAX_ELEMENT_SIZE = 1.67771e7;\n\nvar isBrowser = function isBrowser() {\n  return typeof window !== 'undefined';\n};\n\nvar isChrome = function isChrome() {\n  return !!window.chrome;\n};\n\nexport var getMaxElementSize = function getMaxElementSize() {\n  if (isBrowser()) {\n    if (isChrome()) {\n      return CHROME_MAX_ELEMENT_SIZE;\n    }\n  }\n\n  return DEFAULT_MAX_ELEMENT_SIZE;\n};","/**\n * Helper utility that updates the specified callback whenever any of the specified indices have changed.\n */\nexport default function createCallbackMemoizer() {\n  var requireAllKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n  var cachedIndices = {};\n  return function (_ref) {\n    var callback = _ref.callback,\n        indices = _ref.indices;\n    var keys = Object.keys(indices);\n    var allInitialized = !requireAllKeys || keys.every(function (key) {\n      var value = indices[key];\n      return Array.isArray(value) ? value.length > 0 : value >= 0;\n    });\n    var indexChanged = keys.length !== Object.keys(cachedIndices).length || keys.some(function (key) {\n      var cachedValue = cachedIndices[key];\n      var value = indices[key];\n      return Array.isArray(value) ? cachedValue.join(',') !== value.join(',') : cachedValue !== value;\n    });\n    cachedIndices = indices;\n\n    if (allInitialized && indexChanged) {\n      callback(indices);\n    }\n  };\n}","import ScalingCellSizeAndPositionManager from './ScalingCellSizeAndPositionManager.js';\n/**\n * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.\n * This function also ensures that the scroll ofset isn't past the last column/row of cells.\n */\n\nexport default function updateScrollIndexHelper(_ref) {\n  var cellSize = _ref.cellSize,\n      cellSizeAndPositionManager = _ref.cellSizeAndPositionManager,\n      previousCellsCount = _ref.previousCellsCount,\n      previousCellSize = _ref.previousCellSize,\n      previousScrollToAlignment = _ref.previousScrollToAlignment,\n      previousScrollToIndex = _ref.previousScrollToIndex,\n      previousSize = _ref.previousSize,\n      scrollOffset = _ref.scrollOffset,\n      scrollToAlignment = _ref.scrollToAlignment,\n      scrollToIndex = _ref.scrollToIndex,\n      size = _ref.size,\n      sizeJustIncreasedFromZero = _ref.sizeJustIncreasedFromZero,\n      updateScrollIndexCallback = _ref.updateScrollIndexCallback;\n  var cellCount = cellSizeAndPositionManager.getCellCount();\n  var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellCount;\n  var sizeHasChanged = size !== previousSize || sizeJustIncreasedFromZero || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize; // If we have a new scroll target OR if height/row-height has changed,\n  // We should ensure that the scroll target is visible.\n\n  if (hasScrollToIndex && (sizeHasChanged || scrollToAlignment !== previousScrollToAlignment || scrollToIndex !== previousScrollToIndex)) {\n    updateScrollIndexCallback(scrollToIndex); // If we don't have a selected item but list size or number of children have decreased,\n    // Make sure we aren't scrolled too far past the current content.\n  } else if (!hasScrollToIndex && cellCount > 0 && (size < previousSize || cellCount < previousCellsCount)) {\n    // We need to ensure that the current scroll offset is still within the collection's range.\n    // To do this, we don't need to measure everything; CellMeasurer would perform poorly.\n    // Just check to make sure we're still okay.\n    // Only adjust the scroll position if we've scrolled below the last set of rows.\n    if (scrollOffset > cellSizeAndPositionManager.getTotalSize() - size) {\n      updateScrollIndexCallback(cellCount - 1);\n    }\n  }\n}\nimport { bpfrpt_proptype_Alignment } from \"../types\";\nimport { bpfrpt_proptype_CellSize } from \"../types\";","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n  if (!size && size !== 0 || recalc) {\n    if (canUseDOM) {\n      var scrollDiv = document.createElement('div');\n      scrollDiv.style.position = 'absolute';\n      scrollDiv.style.top = '-9999px';\n      scrollDiv.style.width = '50px';\n      scrollDiv.style.height = '50px';\n      scrollDiv.style.overflow = 'scroll';\n      document.body.appendChild(scrollDiv);\n      size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n    }\n  }\n\n  return size;\n}","// Properly handle server-side rendering.\nvar win;\n\nif (typeof window !== 'undefined') {\n  win = window;\n} else if (typeof self !== 'undefined') {\n  win = self;\n} else {\n  win = {};\n} // requestAnimationFrame() shim by Paul Irish\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n\n\nvar request = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || win.msRequestAnimationFrame || function (callback) {\n  return win.setTimeout(callback, 1000 / 60);\n};\n\nvar cancel = win.cancelAnimationFrame || win.webkitCancelAnimationFrame || win.mozCancelAnimationFrame || win.oCancelAnimationFrame || win.msCancelAnimationFrame || function (id) {\n  win.clearTimeout(id);\n};\n\nexport var raf = request;\nexport var caf = cancel;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport calculateSizeAndPositionDataAndUpdateScrollOffset from './utils/calculateSizeAndPositionDataAndUpdateScrollOffset';\nimport ScalingCellSizeAndPositionManager from './utils/ScalingCellSizeAndPositionManager';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\nimport defaultOverscanIndicesGetter, { SCROLL_DIRECTION_BACKWARD, SCROLL_DIRECTION_FORWARD } from './defaultOverscanIndicesGetter';\nimport updateScrollIndexHelper from './utils/updateScrollIndexHelper';\nimport defaultCellRangeRenderer from './defaultCellRangeRenderer';\nimport scrollbarSize from 'dom-helpers/scrollbarSize';\nimport { polyfill } from 'react-lifecycles-compat';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../utils/requestAnimationTimeout';\n/**\n * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\n\nexport var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;\n/**\n * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.\n * This prevents Grid from interrupting mouse-wheel animations (see issue #2).\n */\n\nvar SCROLL_POSITION_CHANGE_REASONS = {\n  OBSERVED: 'observed',\n  REQUESTED: 'requested'\n};\n\nvar renderNull = function renderNull() {\n  return null;\n};\n\n/**\n * Renders tabular data with virtualization along the vertical and horizontal axes.\n * Row heights and column widths must be known ahead of time and specified as properties.\n */\nvar Grid = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(Grid, _React$PureComponent);\n\n  // Invokes onSectionRendered callback only when start/stop row or column indices change\n  function Grid(props) {\n    var _this;\n\n    _classCallCheck(this, Grid);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(Grid).call(this, props));\n\n    _defineProperty(_assertThisInitialized(_this), \"_onGridRenderedMemoizer\", createCallbackMemoizer());\n\n    _defineProperty(_assertThisInitialized(_this), \"_onScrollMemoizer\", createCallbackMemoizer(false));\n\n    _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateColumnIndex\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateRowIndex\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_recomputeScrollLeftFlag\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"_recomputeScrollTopFlag\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"_horizontalScrollBarSize\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_verticalScrollBarSize\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_scrollbarPresenceChanged\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"_scrollingContainer\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_childrenToDisplay\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_columnStartIndex\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_columnStopIndex\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_rowStartIndex\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_rowStopIndex\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_renderedColumnStartIndex\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_renderedColumnStopIndex\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_renderedRowStartIndex\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_renderedRowStopIndex\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_initialScrollTop\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_initialScrollLeft\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_disablePointerEventsTimeoutId\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_styleCache\", {});\n\n    _defineProperty(_assertThisInitialized(_this), \"_cellCache\", {});\n\n    _defineProperty(_assertThisInitialized(_this), \"_debounceScrollEndedCallback\", function () {\n      _this._disablePointerEventsTimeoutId = null; // isScrolling is used to determine if we reset styleCache\n\n      _this.setState({\n        isScrolling: false,\n        needToResetStyleCache: false\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_invokeOnGridRenderedHelper\", function () {\n      var onSectionRendered = _this.props.onSectionRendered;\n\n      _this._onGridRenderedMemoizer({\n        callback: onSectionRendered,\n        indices: {\n          columnOverscanStartIndex: _this._columnStartIndex,\n          columnOverscanStopIndex: _this._columnStopIndex,\n          columnStartIndex: _this._renderedColumnStartIndex,\n          columnStopIndex: _this._renderedColumnStopIndex,\n          rowOverscanStartIndex: _this._rowStartIndex,\n          rowOverscanStopIndex: _this._rowStopIndex,\n          rowStartIndex: _this._renderedRowStartIndex,\n          rowStopIndex: _this._renderedRowStopIndex\n        }\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n      _this._scrollingContainer = ref;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (event) {\n      // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n      // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n      // See issue #404 for more information.\n      if (event.target === _this._scrollingContainer) {\n        _this.handleScrollEvent(event.target);\n      }\n    });\n\n    var columnSizeAndPositionManager = new ScalingCellSizeAndPositionManager({\n      cellCount: props.columnCount,\n      cellSizeGetter: function cellSizeGetter(params) {\n        return Grid._wrapSizeGetter(props.columnWidth)(params);\n      },\n      estimatedCellSize: Grid._getEstimatedColumnSize(props)\n    });\n    var rowSizeAndPositionManager = new ScalingCellSizeAndPositionManager({\n      cellCount: props.rowCount,\n      cellSizeGetter: function cellSizeGetter(params) {\n        return Grid._wrapSizeGetter(props.rowHeight)(params);\n      },\n      estimatedCellSize: Grid._getEstimatedRowSize(props)\n    });\n    _this.state = {\n      instanceProps: {\n        columnSizeAndPositionManager: columnSizeAndPositionManager,\n        rowSizeAndPositionManager: rowSizeAndPositionManager,\n        prevColumnWidth: props.columnWidth,\n        prevRowHeight: props.rowHeight,\n        prevColumnCount: props.columnCount,\n        prevRowCount: props.rowCount,\n        prevIsScrolling: props.isScrolling === true,\n        prevScrollToColumn: props.scrollToColumn,\n        prevScrollToRow: props.scrollToRow,\n        scrollbarSize: 0,\n        scrollbarSizeMeasured: false\n      },\n      isScrolling: false,\n      scrollDirectionHorizontal: SCROLL_DIRECTION_FORWARD,\n      scrollDirectionVertical: SCROLL_DIRECTION_FORWARD,\n      scrollLeft: 0,\n      scrollTop: 0,\n      scrollPositionChangeReason: null,\n      needToResetStyleCache: false\n    };\n\n    if (props.scrollToRow > 0) {\n      _this._initialScrollTop = _this._getCalculatedScrollTop(props, _this.state);\n    }\n\n    if (props.scrollToColumn > 0) {\n      _this._initialScrollLeft = _this._getCalculatedScrollLeft(props, _this.state);\n    }\n\n    return _this;\n  }\n  /**\n   * Gets offsets for a given cell and alignment.\n   */\n\n\n  _createClass(Grid, [{\n    key: \"getOffsetForCell\",\n    value: function getOffsetForCell() {\n      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n          _ref$alignment = _ref.alignment,\n          alignment = _ref$alignment === void 0 ? this.props.scrollToAlignment : _ref$alignment,\n          _ref$columnIndex = _ref.columnIndex,\n          columnIndex = _ref$columnIndex === void 0 ? this.props.scrollToColumn : _ref$columnIndex,\n          _ref$rowIndex = _ref.rowIndex,\n          rowIndex = _ref$rowIndex === void 0 ? this.props.scrollToRow : _ref$rowIndex;\n\n      var offsetProps = _objectSpread({}, this.props, {\n        scrollToAlignment: alignment,\n        scrollToColumn: columnIndex,\n        scrollToRow: rowIndex\n      });\n\n      return {\n        scrollLeft: this._getCalculatedScrollLeft(offsetProps),\n        scrollTop: this._getCalculatedScrollTop(offsetProps)\n      };\n    }\n    /**\n     * Gets estimated total rows' height.\n     */\n\n  }, {\n    key: \"getTotalRowsHeight\",\n    value: function getTotalRowsHeight() {\n      return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize();\n    }\n    /**\n     * Gets estimated total columns' width.\n     */\n\n  }, {\n    key: \"getTotalColumnsWidth\",\n    value: function getTotalColumnsWidth() {\n      return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize();\n    }\n    /**\n     * This method handles a scroll event originating from an external scroll control.\n     * It's an advanced method and should probably not be used unless you're implementing a custom scroll-bar solution.\n     */\n\n  }, {\n    key: \"handleScrollEvent\",\n    value: function handleScrollEvent(_ref2) {\n      var _ref2$scrollLeft = _ref2.scrollLeft,\n          scrollLeftParam = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,\n          _ref2$scrollTop = _ref2.scrollTop,\n          scrollTopParam = _ref2$scrollTop === void 0 ? 0 : _ref2$scrollTop;\n\n      // On iOS, we can arrive at negative offsets by swiping past the start.\n      // To prevent flicker here, we make playing in the negative offset zone cause nothing to happen.\n      if (scrollTopParam < 0) {\n        return;\n      } // Prevent pointer events from interrupting a smooth scroll\n\n\n      this._debounceScrollEnded();\n\n      var _this$props = this.props,\n          autoHeight = _this$props.autoHeight,\n          autoWidth = _this$props.autoWidth,\n          height = _this$props.height,\n          width = _this$props.width;\n      var instanceProps = this.state.instanceProps; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n      // This causes a series of rapid renders that is slow for long lists.\n      // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.\n\n      var scrollbarSize = instanceProps.scrollbarSize;\n      var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n      var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n      var scrollLeft = Math.min(Math.max(0, totalColumnsWidth - width + scrollbarSize), scrollLeftParam);\n      var scrollTop = Math.min(Math.max(0, totalRowsHeight - height + scrollbarSize), scrollTopParam); // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n      // Don't force a re-render if this is the case.\n      // The mouse may move faster then the animation frame does.\n      // Use requestAnimationFrame to avoid over-updating.\n\n      if (this.state.scrollLeft !== scrollLeft || this.state.scrollTop !== scrollTop) {\n        // Track scrolling direction so we can more efficiently overscan rows to reduce empty space around the edges while scrolling.\n        // Don't change direction for an axis unless scroll offset has changed.\n        var scrollDirectionHorizontal = scrollLeft !== this.state.scrollLeft ? scrollLeft > this.state.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionHorizontal;\n        var scrollDirectionVertical = scrollTop !== this.state.scrollTop ? scrollTop > this.state.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionVertical;\n        var newState = {\n          isScrolling: true,\n          scrollDirectionHorizontal: scrollDirectionHorizontal,\n          scrollDirectionVertical: scrollDirectionVertical,\n          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.OBSERVED\n        };\n\n        if (!autoHeight) {\n          newState.scrollTop = scrollTop;\n        }\n\n        if (!autoWidth) {\n          newState.scrollLeft = scrollLeft;\n        }\n\n        newState.needToResetStyleCache = false;\n        this.setState(newState);\n      }\n\n      this._invokeOnScrollMemoizer({\n        scrollLeft: scrollLeft,\n        scrollTop: scrollTop,\n        totalColumnsWidth: totalColumnsWidth,\n        totalRowsHeight: totalRowsHeight\n      });\n    }\n    /**\n     * Invalidate Grid size and recompute visible cells.\n     * This is a deferred wrapper for recomputeGridSize().\n     * It sets a flag to be evaluated on cDM/cDU to avoid unnecessary renders.\n     * This method is intended for advanced use-cases like CellMeasurer.\n     */\n    // @TODO (bvaughn) Add automated test coverage for this.\n\n  }, {\n    key: \"invalidateCellSizeAfterRender\",\n    value: function invalidateCellSizeAfterRender(_ref3) {\n      var columnIndex = _ref3.columnIndex,\n          rowIndex = _ref3.rowIndex;\n      this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;\n      this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;\n    }\n    /**\n     * Pre-measure all columns and rows in a Grid.\n     * Typically cells are only measured as needed and estimated sizes are used for cells that have not yet been measured.\n     * This method ensures that the next call to getTotalSize() returns an exact size (as opposed to just an estimated one).\n     */\n\n  }, {\n    key: \"measureAllCells\",\n    value: function measureAllCells() {\n      var _this$props2 = this.props,\n          columnCount = _this$props2.columnCount,\n          rowCount = _this$props2.rowCount;\n      var instanceProps = this.state.instanceProps;\n      instanceProps.columnSizeAndPositionManager.getSizeAndPositionOfCell(columnCount - 1);\n      instanceProps.rowSizeAndPositionManager.getSizeAndPositionOfCell(rowCount - 1);\n    }\n    /**\n     * Forced recompute of row heights and column widths.\n     * This function should be called if dynamic column or row sizes have changed but nothing else has.\n     * Since Grid only receives :columnCount and :rowCount it has no way of detecting when the underlying data changes.\n     */\n\n  }, {\n    key: \"recomputeGridSize\",\n    value: function recomputeGridSize() {\n      var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n          _ref4$columnIndex = _ref4.columnIndex,\n          columnIndex = _ref4$columnIndex === void 0 ? 0 : _ref4$columnIndex,\n          _ref4$rowIndex = _ref4.rowIndex,\n          rowIndex = _ref4$rowIndex === void 0 ? 0 : _ref4$rowIndex;\n\n      var _this$props3 = this.props,\n          scrollToColumn = _this$props3.scrollToColumn,\n          scrollToRow = _this$props3.scrollToRow;\n      var instanceProps = this.state.instanceProps;\n      instanceProps.columnSizeAndPositionManager.resetCell(columnIndex);\n      instanceProps.rowSizeAndPositionManager.resetCell(rowIndex); // Cell sizes may be determined by a function property.\n      // In this case the cDU handler can't know if they changed.\n      // Store this flag to let the next cDU pass know it needs to recompute the scroll offset.\n\n      this._recomputeScrollLeftFlag = scrollToColumn >= 0 && (this.state.scrollDirectionHorizontal === SCROLL_DIRECTION_FORWARD ? columnIndex <= scrollToColumn : columnIndex >= scrollToColumn);\n      this._recomputeScrollTopFlag = scrollToRow >= 0 && (this.state.scrollDirectionVertical === SCROLL_DIRECTION_FORWARD ? rowIndex <= scrollToRow : rowIndex >= scrollToRow); // Clear cell cache in case we are scrolling;\n      // Invalid row heights likely mean invalid cached content as well.\n\n      this._styleCache = {};\n      this._cellCache = {};\n      this.forceUpdate();\n    }\n    /**\n     * Ensure column and row are visible.\n     */\n\n  }, {\n    key: \"scrollToCell\",\n    value: function scrollToCell(_ref5) {\n      var columnIndex = _ref5.columnIndex,\n          rowIndex = _ref5.rowIndex;\n      var columnCount = this.props.columnCount;\n      var props = this.props; // Don't adjust scroll offset for single-column grids (eg List, Table).\n      // This can cause a funky scroll offset because of the vertical scrollbar width.\n\n      if (columnCount > 1 && columnIndex !== undefined) {\n        this._updateScrollLeftForScrollToColumn(_objectSpread({}, props, {\n          scrollToColumn: columnIndex\n        }));\n      }\n\n      if (rowIndex !== undefined) {\n        this._updateScrollTopForScrollToRow(_objectSpread({}, props, {\n          scrollToRow: rowIndex\n        }));\n      }\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this$props4 = this.props,\n          getScrollbarSize = _this$props4.getScrollbarSize,\n          height = _this$props4.height,\n          scrollLeft = _this$props4.scrollLeft,\n          scrollToColumn = _this$props4.scrollToColumn,\n          scrollTop = _this$props4.scrollTop,\n          scrollToRow = _this$props4.scrollToRow,\n          width = _this$props4.width;\n      var instanceProps = this.state.instanceProps; // Reset initial offsets to be ignored in browser\n\n      this._initialScrollTop = 0;\n      this._initialScrollLeft = 0; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.\n      // We must do this at the start of the method as we may calculate and update scroll position below.\n\n      this._handleInvalidatedGridSize(); // If this component was first rendered server-side, scrollbar size will be undefined.\n      // In that event we need to remeasure.\n\n\n      if (!instanceProps.scrollbarSizeMeasured) {\n        this.setState(function (prevState) {\n          var stateUpdate = _objectSpread({}, prevState, {\n            needToResetStyleCache: false\n          });\n\n          stateUpdate.instanceProps.scrollbarSize = getScrollbarSize();\n          stateUpdate.instanceProps.scrollbarSizeMeasured = true;\n          return stateUpdate;\n        });\n      }\n\n      if (typeof scrollLeft === 'number' && scrollLeft >= 0 || typeof scrollTop === 'number' && scrollTop >= 0) {\n        var stateUpdate = Grid._getScrollToPositionStateUpdate({\n          prevState: this.state,\n          scrollLeft: scrollLeft,\n          scrollTop: scrollTop\n        });\n\n        if (stateUpdate) {\n          stateUpdate.needToResetStyleCache = false;\n          this.setState(stateUpdate);\n        }\n      } // refs don't work in `react-test-renderer`\n\n\n      if (this._scrollingContainer) {\n        // setting the ref's scrollLeft and scrollTop.\n        // Somehow in MultiGrid the main grid doesn't trigger a update on mount.\n        if (this._scrollingContainer.scrollLeft !== this.state.scrollLeft) {\n          this._scrollingContainer.scrollLeft = this.state.scrollLeft;\n        }\n\n        if (this._scrollingContainer.scrollTop !== this.state.scrollTop) {\n          this._scrollingContainer.scrollTop = this.state.scrollTop;\n        }\n      } // Don't update scroll offset if the size is 0; we don't render any cells in this case.\n      // Setting a state may cause us to later thing we've updated the offce when we haven't.\n\n\n      var sizeIsBiggerThanZero = height > 0 && width > 0;\n\n      if (scrollToColumn >= 0 && sizeIsBiggerThanZero) {\n        this._updateScrollLeftForScrollToColumn();\n      }\n\n      if (scrollToRow >= 0 && sizeIsBiggerThanZero) {\n        this._updateScrollTopForScrollToRow();\n      } // Update onRowsRendered callback\n\n\n      this._invokeOnGridRenderedHelper(); // Initialize onScroll callback\n\n\n      this._invokeOnScrollMemoizer({\n        scrollLeft: scrollLeft || 0,\n        scrollTop: scrollTop || 0,\n        totalColumnsWidth: instanceProps.columnSizeAndPositionManager.getTotalSize(),\n        totalRowsHeight: instanceProps.rowSizeAndPositionManager.getTotalSize()\n      });\n\n      this._maybeCallOnScrollbarPresenceChange();\n    }\n    /**\n     * @private\n     * This method updates scrollLeft/scrollTop in state for the following conditions:\n     * 1) New scroll-to-cell props have been set\n     */\n\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      var _this2 = this;\n\n      var _this$props5 = this.props,\n          autoHeight = _this$props5.autoHeight,\n          autoWidth = _this$props5.autoWidth,\n          columnCount = _this$props5.columnCount,\n          height = _this$props5.height,\n          rowCount = _this$props5.rowCount,\n          scrollToAlignment = _this$props5.scrollToAlignment,\n          scrollToColumn = _this$props5.scrollToColumn,\n          scrollToRow = _this$props5.scrollToRow,\n          width = _this$props5.width;\n      var _this$state = this.state,\n          scrollLeft = _this$state.scrollLeft,\n          scrollPositionChangeReason = _this$state.scrollPositionChangeReason,\n          scrollTop = _this$state.scrollTop,\n          instanceProps = _this$state.instanceProps; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.\n      // We must do this at the start of the method as we may calculate and update scroll position below.\n\n      this._handleInvalidatedGridSize(); // Handle edge case where column or row count has only just increased over 0.\n      // In this case we may have to restore a previously-specified scroll offset.\n      // For more info see bvaughn/react-virtualized/issues/218\n\n\n      var columnOrRowCountJustIncreasedFromZero = columnCount > 0 && prevProps.columnCount === 0 || rowCount > 0 && prevProps.rowCount === 0; // Make sure requested changes to :scrollLeft or :scrollTop get applied.\n      // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,\n      // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).\n      // So we only set these when we require an adjustment of the scroll position.\n      // See issue #2 for more information.\n\n      if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {\n        // @TRICKY :autoHeight and :autoWidth properties instructs Grid to leave :scrollTop and :scrollLeft management to an external HOC (eg WindowScroller).\n        // In this case we should avoid checking scrollingContainer.scrollTop and scrollingContainer.scrollLeft since it forces layout/flow.\n        if (!autoWidth && scrollLeft >= 0 && (scrollLeft !== this._scrollingContainer.scrollLeft || columnOrRowCountJustIncreasedFromZero)) {\n          this._scrollingContainer.scrollLeft = scrollLeft;\n        }\n\n        if (!autoHeight && scrollTop >= 0 && (scrollTop !== this._scrollingContainer.scrollTop || columnOrRowCountJustIncreasedFromZero)) {\n          this._scrollingContainer.scrollTop = scrollTop;\n        }\n      } // Special case where the previous size was 0:\n      // In this case we don't show any windowed cells at all.\n      // So we should always recalculate offset afterwards.\n\n\n      var sizeJustIncreasedFromZero = (prevProps.width === 0 || prevProps.height === 0) && height > 0 && width > 0; // Update scroll offsets if the current :scrollToColumn or :scrollToRow values requires it\n      // @TODO Do we also need this check or can the one in componentWillUpdate() suffice?\n\n      if (this._recomputeScrollLeftFlag) {\n        this._recomputeScrollLeftFlag = false;\n\n        this._updateScrollLeftForScrollToColumn(this.props);\n      } else {\n        updateScrollIndexHelper({\n          cellSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,\n          previousCellsCount: prevProps.columnCount,\n          previousCellSize: prevProps.columnWidth,\n          previousScrollToAlignment: prevProps.scrollToAlignment,\n          previousScrollToIndex: prevProps.scrollToColumn,\n          previousSize: prevProps.width,\n          scrollOffset: scrollLeft,\n          scrollToAlignment: scrollToAlignment,\n          scrollToIndex: scrollToColumn,\n          size: width,\n          sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,\n          updateScrollIndexCallback: function updateScrollIndexCallback() {\n            return _this2._updateScrollLeftForScrollToColumn(_this2.props);\n          }\n        });\n      }\n\n      if (this._recomputeScrollTopFlag) {\n        this._recomputeScrollTopFlag = false;\n\n        this._updateScrollTopForScrollToRow(this.props);\n      } else {\n        updateScrollIndexHelper({\n          cellSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,\n          previousCellsCount: prevProps.rowCount,\n          previousCellSize: prevProps.rowHeight,\n          previousScrollToAlignment: prevProps.scrollToAlignment,\n          previousScrollToIndex: prevProps.scrollToRow,\n          previousSize: prevProps.height,\n          scrollOffset: scrollTop,\n          scrollToAlignment: scrollToAlignment,\n          scrollToIndex: scrollToRow,\n          size: height,\n          sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,\n          updateScrollIndexCallback: function updateScrollIndexCallback() {\n            return _this2._updateScrollTopForScrollToRow(_this2.props);\n          }\n        });\n      } // Update onRowsRendered callback if start/stop indices have changed\n\n\n      this._invokeOnGridRenderedHelper(); // Changes to :scrollLeft or :scrollTop should also notify :onScroll listeners\n\n\n      if (scrollLeft !== prevState.scrollLeft || scrollTop !== prevState.scrollTop) {\n        var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n        var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n\n        this._invokeOnScrollMemoizer({\n          scrollLeft: scrollLeft,\n          scrollTop: scrollTop,\n          totalColumnsWidth: totalColumnsWidth,\n          totalRowsHeight: totalRowsHeight\n        });\n      }\n\n      this._maybeCallOnScrollbarPresenceChange();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (this._disablePointerEventsTimeoutId) {\n        cancelAnimationTimeout(this._disablePointerEventsTimeoutId);\n      }\n    }\n    /**\n     * This method updates scrollLeft/scrollTop in state for the following conditions:\n     * 1) Empty content (0 rows or columns)\n     * 2) New scroll props overriding the current state\n     * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid\n     */\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props6 = this.props,\n          autoContainerWidth = _this$props6.autoContainerWidth,\n          autoHeight = _this$props6.autoHeight,\n          autoWidth = _this$props6.autoWidth,\n          className = _this$props6.className,\n          containerProps = _this$props6.containerProps,\n          containerRole = _this$props6.containerRole,\n          containerStyle = _this$props6.containerStyle,\n          height = _this$props6.height,\n          id = _this$props6.id,\n          noContentRenderer = _this$props6.noContentRenderer,\n          role = _this$props6.role,\n          style = _this$props6.style,\n          tabIndex = _this$props6.tabIndex,\n          width = _this$props6.width;\n      var _this$state2 = this.state,\n          instanceProps = _this$state2.instanceProps,\n          needToResetStyleCache = _this$state2.needToResetStyleCache;\n\n      var isScrolling = this._isScrolling();\n\n      var gridStyle = {\n        boxSizing: 'border-box',\n        direction: 'ltr',\n        height: autoHeight ? 'auto' : height,\n        position: 'relative',\n        width: autoWidth ? 'auto' : width,\n        WebkitOverflowScrolling: 'touch',\n        willChange: 'transform'\n      };\n\n      if (needToResetStyleCache) {\n        this._styleCache = {};\n      } // calculate _styleCache here\n      // if state.isScrolling (not from _isScrolling) then reset\n\n\n      if (!this.state.isScrolling) {\n        this._resetStyleCache();\n      } // calculate children to render here\n\n\n      this._calculateChildrenToRender(this.props, this.state);\n\n      var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n      var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(); // Force browser to hide scrollbars when we know they aren't necessary.\n      // Otherwise once scrollbars appear they may not disappear again.\n      // For more info see issue #116\n\n      var verticalScrollBarSize = totalRowsHeight > height ? instanceProps.scrollbarSize : 0;\n      var horizontalScrollBarSize = totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;\n\n      if (horizontalScrollBarSize !== this._horizontalScrollBarSize || verticalScrollBarSize !== this._verticalScrollBarSize) {\n        this._horizontalScrollBarSize = horizontalScrollBarSize;\n        this._verticalScrollBarSize = verticalScrollBarSize;\n        this._scrollbarPresenceChanged = true;\n      } // Also explicitly init styles to 'auto' if scrollbars are required.\n      // This works around an obscure edge case where external CSS styles have not yet been loaded,\n      // But an initial scroll index of offset is set as an external prop.\n      // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.\n      // This was originally reported via clauderic/react-infinite-calendar/issues/23\n\n\n      gridStyle.overflowX = totalColumnsWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n      gridStyle.overflowY = totalRowsHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n      var childrenToDisplay = this._childrenToDisplay;\n      var showNoContentRenderer = childrenToDisplay.length === 0 && height > 0 && width > 0;\n      return React.createElement(\"div\", _extends({\n        ref: this._setScrollingContainerRef\n      }, containerProps, {\n        \"aria-label\": this.props['aria-label'],\n        \"aria-readonly\": this.props['aria-readonly'],\n        className: clsx('ReactVirtualized__Grid', className),\n        id: id,\n        onScroll: this._onScroll,\n        role: role,\n        style: _objectSpread({}, gridStyle, {}, style),\n        tabIndex: tabIndex\n      }), childrenToDisplay.length > 0 && React.createElement(\"div\", {\n        className: \"ReactVirtualized__Grid__innerScrollContainer\",\n        role: containerRole,\n        style: _objectSpread({\n          width: autoContainerWidth ? 'auto' : totalColumnsWidth,\n          height: totalRowsHeight,\n          maxWidth: totalColumnsWidth,\n          maxHeight: totalRowsHeight,\n          overflow: 'hidden',\n          pointerEvents: isScrolling ? 'none' : '',\n          position: 'relative'\n        }, containerStyle)\n      }, childrenToDisplay), showNoContentRenderer && noContentRenderer());\n    }\n    /* ---------------------------- Helper methods ---------------------------- */\n\n  }, {\n    key: \"_calculateChildrenToRender\",\n    value: function _calculateChildrenToRender() {\n      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n      var cellRenderer = props.cellRenderer,\n          cellRangeRenderer = props.cellRangeRenderer,\n          columnCount = props.columnCount,\n          deferredMeasurementCache = props.deferredMeasurementCache,\n          height = props.height,\n          overscanColumnCount = props.overscanColumnCount,\n          overscanIndicesGetter = props.overscanIndicesGetter,\n          overscanRowCount = props.overscanRowCount,\n          rowCount = props.rowCount,\n          width = props.width,\n          isScrollingOptOut = props.isScrollingOptOut;\n      var scrollDirectionHorizontal = state.scrollDirectionHorizontal,\n          scrollDirectionVertical = state.scrollDirectionVertical,\n          instanceProps = state.instanceProps;\n      var scrollTop = this._initialScrollTop > 0 ? this._initialScrollTop : state.scrollTop;\n      var scrollLeft = this._initialScrollLeft > 0 ? this._initialScrollLeft : state.scrollLeft;\n\n      var isScrolling = this._isScrolling(props, state);\n\n      this._childrenToDisplay = []; // Render only enough columns and rows to cover the visible area of the grid.\n\n      if (height > 0 && width > 0) {\n        var visibleColumnIndices = instanceProps.columnSizeAndPositionManager.getVisibleCellRange({\n          containerSize: width,\n          offset: scrollLeft\n        });\n        var visibleRowIndices = instanceProps.rowSizeAndPositionManager.getVisibleCellRange({\n          containerSize: height,\n          offset: scrollTop\n        });\n        var horizontalOffsetAdjustment = instanceProps.columnSizeAndPositionManager.getOffsetAdjustment({\n          containerSize: width,\n          offset: scrollLeft\n        });\n        var verticalOffsetAdjustment = instanceProps.rowSizeAndPositionManager.getOffsetAdjustment({\n          containerSize: height,\n          offset: scrollTop\n        }); // Store for _invokeOnGridRenderedHelper()\n\n        this._renderedColumnStartIndex = visibleColumnIndices.start;\n        this._renderedColumnStopIndex = visibleColumnIndices.stop;\n        this._renderedRowStartIndex = visibleRowIndices.start;\n        this._renderedRowStopIndex = visibleRowIndices.stop;\n        var overscanColumnIndices = overscanIndicesGetter({\n          direction: 'horizontal',\n          cellCount: columnCount,\n          overscanCellsCount: overscanColumnCount,\n          scrollDirection: scrollDirectionHorizontal,\n          startIndex: typeof visibleColumnIndices.start === 'number' ? visibleColumnIndices.start : 0,\n          stopIndex: typeof visibleColumnIndices.stop === 'number' ? visibleColumnIndices.stop : -1\n        });\n        var overscanRowIndices = overscanIndicesGetter({\n          direction: 'vertical',\n          cellCount: rowCount,\n          overscanCellsCount: overscanRowCount,\n          scrollDirection: scrollDirectionVertical,\n          startIndex: typeof visibleRowIndices.start === 'number' ? visibleRowIndices.start : 0,\n          stopIndex: typeof visibleRowIndices.stop === 'number' ? visibleRowIndices.stop : -1\n        }); // Store for _invokeOnGridRenderedHelper()\n\n        var columnStartIndex = overscanColumnIndices.overscanStartIndex;\n        var columnStopIndex = overscanColumnIndices.overscanStopIndex;\n        var rowStartIndex = overscanRowIndices.overscanStartIndex;\n        var rowStopIndex = overscanRowIndices.overscanStopIndex; // Advanced use-cases (eg CellMeasurer) require batched measurements to determine accurate sizes.\n\n        if (deferredMeasurementCache) {\n          // If rows have a dynamic height, scan the rows we are about to render.\n          // If any have not yet been measured, then we need to render all columns initially,\n          // Because the height of the row is equal to the tallest cell within that row,\n          // (And so we can't know the height without measuring all column-cells first).\n          if (!deferredMeasurementCache.hasFixedHeight()) {\n            for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n              if (!deferredMeasurementCache.has(rowIndex, 0)) {\n                columnStartIndex = 0;\n                columnStopIndex = columnCount - 1;\n                break;\n              }\n            }\n          } // If columns have a dynamic width, scan the columns we are about to render.\n          // If any have not yet been measured, then we need to render all rows initially,\n          // Because the width of the column is equal to the widest cell within that column,\n          // (And so we can't know the width without measuring all row-cells first).\n\n\n          if (!deferredMeasurementCache.hasFixedWidth()) {\n            for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n              if (!deferredMeasurementCache.has(0, columnIndex)) {\n                rowStartIndex = 0;\n                rowStopIndex = rowCount - 1;\n                break;\n              }\n            }\n          }\n        }\n\n        this._childrenToDisplay = cellRangeRenderer({\n          cellCache: this._cellCache,\n          cellRenderer: cellRenderer,\n          columnSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,\n          columnStartIndex: columnStartIndex,\n          columnStopIndex: columnStopIndex,\n          deferredMeasurementCache: deferredMeasurementCache,\n          horizontalOffsetAdjustment: horizontalOffsetAdjustment,\n          isScrolling: isScrolling,\n          isScrollingOptOut: isScrollingOptOut,\n          parent: this,\n          rowSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,\n          rowStartIndex: rowStartIndex,\n          rowStopIndex: rowStopIndex,\n          scrollLeft: scrollLeft,\n          scrollTop: scrollTop,\n          styleCache: this._styleCache,\n          verticalOffsetAdjustment: verticalOffsetAdjustment,\n          visibleColumnIndices: visibleColumnIndices,\n          visibleRowIndices: visibleRowIndices\n        }); // update the indices\n\n        this._columnStartIndex = columnStartIndex;\n        this._columnStopIndex = columnStopIndex;\n        this._rowStartIndex = rowStartIndex;\n        this._rowStopIndex = rowStopIndex;\n      }\n    }\n    /**\n     * Sets an :isScrolling flag for a small window of time.\n     * This flag is used to disable pointer events on the scrollable portion of the Grid.\n     * This prevents jerky/stuttery mouse-wheel scrolling.\n     */\n\n  }, {\n    key: \"_debounceScrollEnded\",\n    value: function _debounceScrollEnded() {\n      var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;\n\n      if (this._disablePointerEventsTimeoutId) {\n        cancelAnimationTimeout(this._disablePointerEventsTimeoutId);\n      }\n\n      this._disablePointerEventsTimeoutId = requestAnimationTimeout(this._debounceScrollEndedCallback, scrollingResetTimeInterval);\n    }\n  }, {\n    key: \"_handleInvalidatedGridSize\",\n\n    /**\n     * Check for batched CellMeasurer size invalidations.\n     * This will occur the first time one or more previously unmeasured cells are rendered.\n     */\n    value: function _handleInvalidatedGridSize() {\n      if (typeof this._deferredInvalidateColumnIndex === 'number' && typeof this._deferredInvalidateRowIndex === 'number') {\n        var columnIndex = this._deferredInvalidateColumnIndex;\n        var rowIndex = this._deferredInvalidateRowIndex;\n        this._deferredInvalidateColumnIndex = null;\n        this._deferredInvalidateRowIndex = null;\n        this.recomputeGridSize({\n          columnIndex: columnIndex,\n          rowIndex: rowIndex\n        });\n      }\n    }\n  }, {\n    key: \"_invokeOnScrollMemoizer\",\n    value: function _invokeOnScrollMemoizer(_ref6) {\n      var _this3 = this;\n\n      var scrollLeft = _ref6.scrollLeft,\n          scrollTop = _ref6.scrollTop,\n          totalColumnsWidth = _ref6.totalColumnsWidth,\n          totalRowsHeight = _ref6.totalRowsHeight;\n\n      this._onScrollMemoizer({\n        callback: function callback(_ref7) {\n          var scrollLeft = _ref7.scrollLeft,\n              scrollTop = _ref7.scrollTop;\n          var _this3$props = _this3.props,\n              height = _this3$props.height,\n              onScroll = _this3$props.onScroll,\n              width = _this3$props.width;\n          onScroll({\n            clientHeight: height,\n            clientWidth: width,\n            scrollHeight: totalRowsHeight,\n            scrollLeft: scrollLeft,\n            scrollTop: scrollTop,\n            scrollWidth: totalColumnsWidth\n          });\n        },\n        indices: {\n          scrollLeft: scrollLeft,\n          scrollTop: scrollTop\n        }\n      });\n    }\n  }, {\n    key: \"_isScrolling\",\n    value: function _isScrolling() {\n      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n      // If isScrolling is defined in props, use it to override the value in state\n      // This is a performance optimization for WindowScroller + Grid\n      return Object.hasOwnProperty.call(props, 'isScrolling') ? Boolean(props.isScrolling) : Boolean(state.isScrolling);\n    }\n  }, {\n    key: \"_maybeCallOnScrollbarPresenceChange\",\n    value: function _maybeCallOnScrollbarPresenceChange() {\n      if (this._scrollbarPresenceChanged) {\n        var onScrollbarPresenceChange = this.props.onScrollbarPresenceChange;\n        this._scrollbarPresenceChanged = false;\n        onScrollbarPresenceChange({\n          horizontal: this._horizontalScrollBarSize > 0,\n          size: this.state.instanceProps.scrollbarSize,\n          vertical: this._verticalScrollBarSize > 0\n        });\n      }\n    }\n  }, {\n    key: \"scrollToPosition\",\n\n    /**\n     * Scroll to the specified offset(s).\n     * Useful for animating position changes.\n     */\n    value: function scrollToPosition(_ref8) {\n      var scrollLeft = _ref8.scrollLeft,\n          scrollTop = _ref8.scrollTop;\n\n      var stateUpdate = Grid._getScrollToPositionStateUpdate({\n        prevState: this.state,\n        scrollLeft: scrollLeft,\n        scrollTop: scrollTop\n      });\n\n      if (stateUpdate) {\n        stateUpdate.needToResetStyleCache = false;\n        this.setState(stateUpdate);\n      }\n    }\n  }, {\n    key: \"_getCalculatedScrollLeft\",\n    value: function _getCalculatedScrollLeft() {\n      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n      return Grid._getCalculatedScrollLeft(props, state);\n    }\n  }, {\n    key: \"_updateScrollLeftForScrollToColumn\",\n    value: function _updateScrollLeftForScrollToColumn() {\n      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n\n      var stateUpdate = Grid._getScrollLeftForScrollToColumnStateUpdate(props, state);\n\n      if (stateUpdate) {\n        stateUpdate.needToResetStyleCache = false;\n        this.setState(stateUpdate);\n      }\n    }\n  }, {\n    key: \"_getCalculatedScrollTop\",\n    value: function _getCalculatedScrollTop() {\n      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n      return Grid._getCalculatedScrollTop(props, state);\n    }\n  }, {\n    key: \"_resetStyleCache\",\n    value: function _resetStyleCache() {\n      var styleCache = this._styleCache;\n      var cellCache = this._cellCache;\n      var isScrollingOptOut = this.props.isScrollingOptOut; // Reset cell and style caches once scrolling stops.\n      // This makes Grid simpler to use (since cells commonly change).\n      // And it keeps the caches from growing too large.\n      // Performance is most sensitive when a user is scrolling.\n      // Don't clear visible cells from cellCache if isScrollingOptOut is specified.\n      // This keeps the cellCache to a resonable size.\n\n      this._cellCache = {};\n      this._styleCache = {}; // Copy over the visible cell styles so avoid unnecessary re-render.\n\n      for (var rowIndex = this._rowStartIndex; rowIndex <= this._rowStopIndex; rowIndex++) {\n        for (var columnIndex = this._columnStartIndex; columnIndex <= this._columnStopIndex; columnIndex++) {\n          var key = \"\".concat(rowIndex, \"-\").concat(columnIndex);\n          this._styleCache[key] = styleCache[key];\n\n          if (isScrollingOptOut) {\n            this._cellCache[key] = cellCache[key];\n          }\n        }\n      }\n    }\n  }, {\n    key: \"_updateScrollTopForScrollToRow\",\n    value: function _updateScrollTopForScrollToRow() {\n      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n\n      var stateUpdate = Grid._getScrollTopForScrollToRowStateUpdate(props, state);\n\n      if (stateUpdate) {\n        stateUpdate.needToResetStyleCache = false;\n        this.setState(stateUpdate);\n      }\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps, prevState) {\n      var newState = {};\n\n      if (nextProps.columnCount === 0 && prevState.scrollLeft !== 0 || nextProps.rowCount === 0 && prevState.scrollTop !== 0) {\n        newState.scrollLeft = 0;\n        newState.scrollTop = 0; // only use scroll{Left,Top} from props if scrollTo{Column,Row} isn't specified\n        // scrollTo{Column,Row} should override scroll{Left,Top}\n      } else if (nextProps.scrollLeft !== prevState.scrollLeft && nextProps.scrollToColumn < 0 || nextProps.scrollTop !== prevState.scrollTop && nextProps.scrollToRow < 0) {\n        Object.assign(newState, Grid._getScrollToPositionStateUpdate({\n          prevState: prevState,\n          scrollLeft: nextProps.scrollLeft,\n          scrollTop: nextProps.scrollTop\n        }));\n      }\n\n      var instanceProps = prevState.instanceProps; // Initially we should not clearStyleCache\n\n      newState.needToResetStyleCache = false;\n\n      if (nextProps.columnWidth !== instanceProps.prevColumnWidth || nextProps.rowHeight !== instanceProps.prevRowHeight) {\n        // Reset cache. set it to {} in render\n        newState.needToResetStyleCache = true;\n      }\n\n      instanceProps.columnSizeAndPositionManager.configure({\n        cellCount: nextProps.columnCount,\n        estimatedCellSize: Grid._getEstimatedColumnSize(nextProps),\n        cellSizeGetter: Grid._wrapSizeGetter(nextProps.columnWidth)\n      });\n      instanceProps.rowSizeAndPositionManager.configure({\n        cellCount: nextProps.rowCount,\n        estimatedCellSize: Grid._getEstimatedRowSize(nextProps),\n        cellSizeGetter: Grid._wrapSizeGetter(nextProps.rowHeight)\n      });\n\n      if (instanceProps.prevColumnCount === 0 || instanceProps.prevRowCount === 0) {\n        instanceProps.prevColumnCount = 0;\n        instanceProps.prevRowCount = 0;\n      } // If scrolling is controlled outside this component, clear cache when scrolling stops\n\n\n      if (nextProps.autoHeight && nextProps.isScrolling === false && instanceProps.prevIsScrolling === true) {\n        Object.assign(newState, {\n          isScrolling: false\n        });\n      }\n\n      var maybeStateA;\n      var maybeStateB;\n      calculateSizeAndPositionDataAndUpdateScrollOffset({\n        cellCount: instanceProps.prevColumnCount,\n        cellSize: typeof instanceProps.prevColumnWidth === 'number' ? instanceProps.prevColumnWidth : null,\n        computeMetadataCallback: function computeMetadataCallback() {\n          return instanceProps.columnSizeAndPositionManager.resetCell(0);\n        },\n        computeMetadataCallbackProps: nextProps,\n        nextCellsCount: nextProps.columnCount,\n        nextCellSize: typeof nextProps.columnWidth === 'number' ? nextProps.columnWidth : null,\n        nextScrollToIndex: nextProps.scrollToColumn,\n        scrollToIndex: instanceProps.prevScrollToColumn,\n        updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {\n          maybeStateA = Grid._getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState);\n        }\n      });\n      calculateSizeAndPositionDataAndUpdateScrollOffset({\n        cellCount: instanceProps.prevRowCount,\n        cellSize: typeof instanceProps.prevRowHeight === 'number' ? instanceProps.prevRowHeight : null,\n        computeMetadataCallback: function computeMetadataCallback() {\n          return instanceProps.rowSizeAndPositionManager.resetCell(0);\n        },\n        computeMetadataCallbackProps: nextProps,\n        nextCellsCount: nextProps.rowCount,\n        nextCellSize: typeof nextProps.rowHeight === 'number' ? nextProps.rowHeight : null,\n        nextScrollToIndex: nextProps.scrollToRow,\n        scrollToIndex: instanceProps.prevScrollToRow,\n        updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {\n          maybeStateB = Grid._getScrollTopForScrollToRowStateUpdate(nextProps, prevState);\n        }\n      });\n      instanceProps.prevColumnCount = nextProps.columnCount;\n      instanceProps.prevColumnWidth = nextProps.columnWidth;\n      instanceProps.prevIsScrolling = nextProps.isScrolling === true;\n      instanceProps.prevRowCount = nextProps.rowCount;\n      instanceProps.prevRowHeight = nextProps.rowHeight;\n      instanceProps.prevScrollToColumn = nextProps.scrollToColumn;\n      instanceProps.prevScrollToRow = nextProps.scrollToRow; // getting scrollBarSize (moved from componentWillMount)\n\n      instanceProps.scrollbarSize = nextProps.getScrollbarSize();\n\n      if (instanceProps.scrollbarSize === undefined) {\n        instanceProps.scrollbarSizeMeasured = false;\n        instanceProps.scrollbarSize = 0;\n      } else {\n        instanceProps.scrollbarSizeMeasured = true;\n      }\n\n      newState.instanceProps = instanceProps;\n      return _objectSpread({}, newState, {}, maybeStateA, {}, maybeStateB);\n    }\n  }, {\n    key: \"_getEstimatedColumnSize\",\n    value: function _getEstimatedColumnSize(props) {\n      return typeof props.columnWidth === 'number' ? props.columnWidth : props.estimatedColumnSize;\n    }\n  }, {\n    key: \"_getEstimatedRowSize\",\n    value: function _getEstimatedRowSize(props) {\n      return typeof props.rowHeight === 'number' ? props.rowHeight : props.estimatedRowSize;\n    }\n  }, {\n    key: \"_getScrollToPositionStateUpdate\",\n\n    /**\n     * Get the updated state after scrolling to\n     * scrollLeft and scrollTop\n     */\n    value: function _getScrollToPositionStateUpdate(_ref9) {\n      var prevState = _ref9.prevState,\n          scrollLeft = _ref9.scrollLeft,\n          scrollTop = _ref9.scrollTop;\n      var newState = {\n        scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n      };\n\n      if (typeof scrollLeft === 'number' && scrollLeft >= 0) {\n        newState.scrollDirectionHorizontal = scrollLeft > prevState.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;\n        newState.scrollLeft = scrollLeft;\n      }\n\n      if (typeof scrollTop === 'number' && scrollTop >= 0) {\n        newState.scrollDirectionVertical = scrollTop > prevState.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;\n        newState.scrollTop = scrollTop;\n      }\n\n      if (typeof scrollLeft === 'number' && scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || typeof scrollTop === 'number' && scrollTop >= 0 && scrollTop !== prevState.scrollTop) {\n        return newState;\n      }\n\n      return {};\n    }\n  }, {\n    key: \"_wrapSizeGetter\",\n    value: function _wrapSizeGetter(value) {\n      return typeof value === 'function' ? value : function () {\n        return value;\n      };\n    }\n  }, {\n    key: \"_getCalculatedScrollLeft\",\n    value: function _getCalculatedScrollLeft(nextProps, prevState) {\n      var columnCount = nextProps.columnCount,\n          height = nextProps.height,\n          scrollToAlignment = nextProps.scrollToAlignment,\n          scrollToColumn = nextProps.scrollToColumn,\n          width = nextProps.width;\n      var scrollLeft = prevState.scrollLeft,\n          instanceProps = prevState.instanceProps;\n\n      if (columnCount > 0) {\n        var finalColumn = columnCount - 1;\n        var targetIndex = scrollToColumn < 0 ? finalColumn : Math.min(finalColumn, scrollToColumn);\n        var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n        var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalRowsHeight > height ? instanceProps.scrollbarSize : 0;\n        return instanceProps.columnSizeAndPositionManager.getUpdatedOffsetForIndex({\n          align: scrollToAlignment,\n          containerSize: width - scrollBarSize,\n          currentOffset: scrollLeft,\n          targetIndex: targetIndex\n        });\n      }\n\n      return 0;\n    }\n  }, {\n    key: \"_getScrollLeftForScrollToColumnStateUpdate\",\n    value: function _getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState) {\n      var scrollLeft = prevState.scrollLeft;\n\n      var calculatedScrollLeft = Grid._getCalculatedScrollLeft(nextProps, prevState);\n\n      if (typeof calculatedScrollLeft === 'number' && calculatedScrollLeft >= 0 && scrollLeft !== calculatedScrollLeft) {\n        return Grid._getScrollToPositionStateUpdate({\n          prevState: prevState,\n          scrollLeft: calculatedScrollLeft,\n          scrollTop: -1\n        });\n      }\n\n      return {};\n    }\n  }, {\n    key: \"_getCalculatedScrollTop\",\n    value: function _getCalculatedScrollTop(nextProps, prevState) {\n      var height = nextProps.height,\n          rowCount = nextProps.rowCount,\n          scrollToAlignment = nextProps.scrollToAlignment,\n          scrollToRow = nextProps.scrollToRow,\n          width = nextProps.width;\n      var scrollTop = prevState.scrollTop,\n          instanceProps = prevState.instanceProps;\n\n      if (rowCount > 0) {\n        var finalRow = rowCount - 1;\n        var targetIndex = scrollToRow < 0 ? finalRow : Math.min(finalRow, scrollToRow);\n        var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n        var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;\n        return instanceProps.rowSizeAndPositionManager.getUpdatedOffsetForIndex({\n          align: scrollToAlignment,\n          containerSize: height - scrollBarSize,\n          currentOffset: scrollTop,\n          targetIndex: targetIndex\n        });\n      }\n\n      return 0;\n    }\n  }, {\n    key: \"_getScrollTopForScrollToRowStateUpdate\",\n    value: function _getScrollTopForScrollToRowStateUpdate(nextProps, prevState) {\n      var scrollTop = prevState.scrollTop;\n\n      var calculatedScrollTop = Grid._getCalculatedScrollTop(nextProps, prevState);\n\n      if (typeof calculatedScrollTop === 'number' && calculatedScrollTop >= 0 && scrollTop !== calculatedScrollTop) {\n        return Grid._getScrollToPositionStateUpdate({\n          prevState: prevState,\n          scrollLeft: -1,\n          scrollTop: calculatedScrollTop\n        });\n      }\n\n      return {};\n    }\n  }]);\n\n  return Grid;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n  \"aria-label\": PropTypes.string.isRequired,\n  \"aria-readonly\": PropTypes.bool,\n\n  /**\n   * Set the width of the inner scrollable container to 'auto'.\n   * This is useful for single-column Grids to ensure that the column doesn't extend below a vertical scrollbar.\n   */\n  \"autoContainerWidth\": PropTypes.bool.isRequired,\n\n  /**\n   * Removes fixed height from the scrollingContainer so that the total height of rows can stretch the window.\n   * Intended for use with WindowScroller\n   */\n  \"autoHeight\": PropTypes.bool.isRequired,\n\n  /**\n   * Removes fixed width from the scrollingContainer so that the total width of rows can stretch the window.\n   * Intended for use with WindowScroller\n   */\n  \"autoWidth\": PropTypes.bool.isRequired,\n\n  /** Responsible for rendering a cell given an row and column index.  */\n  \"cellRenderer\": function cellRenderer() {\n    return (typeof bpfrpt_proptype_CellRenderer === \"function\" ? bpfrpt_proptype_CellRenderer.isRequired ? bpfrpt_proptype_CellRenderer.isRequired : bpfrpt_proptype_CellRenderer : PropTypes.shape(bpfrpt_proptype_CellRenderer).isRequired).apply(this, arguments);\n  },\n\n  /** Responsible for rendering a group of cells given their index ranges.  */\n  \"cellRangeRenderer\": function cellRangeRenderer() {\n    return (typeof bpfrpt_proptype_CellRangeRenderer === \"function\" ? bpfrpt_proptype_CellRangeRenderer.isRequired ? bpfrpt_proptype_CellRangeRenderer.isRequired : bpfrpt_proptype_CellRangeRenderer : PropTypes.shape(bpfrpt_proptype_CellRangeRenderer).isRequired).apply(this, arguments);\n  },\n\n  /** Optional custom CSS class name to attach to root Grid element.  */\n  \"className\": PropTypes.string,\n\n  /** Number of columns in grid.  */\n  \"columnCount\": PropTypes.number.isRequired,\n\n  /** Either a fixed column width (number) or a function that returns the width of a column given its index.  */\n  \"columnWidth\": function columnWidth() {\n    return (typeof bpfrpt_proptype_CellSize === \"function\" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n  },\n\n  /** Unfiltered props for the Grid container. */\n  \"containerProps\": PropTypes.object,\n\n  /** ARIA role for the cell-container.  */\n  \"containerRole\": PropTypes.string.isRequired,\n\n  /** Optional inline style applied to inner cell-container */\n  \"containerStyle\": PropTypes.object.isRequired,\n\n  /**\n   * If CellMeasurer is used to measure this Grid's children, this should be a pointer to its CellMeasurerCache.\n   * A shared CellMeasurerCache reference enables Grid and CellMeasurer to share measurement data.\n   */\n  \"deferredMeasurementCache\": PropTypes.object,\n\n  /**\n   * Used to estimate the total width of a Grid before all of its columns have actually been measured.\n   * The estimated total width is adjusted as columns are rendered.\n   */\n  \"estimatedColumnSize\": PropTypes.number.isRequired,\n\n  /**\n   * Used to estimate the total height of a Grid before all of its rows have actually been measured.\n   * The estimated total height is adjusted as rows are rendered.\n   */\n  \"estimatedRowSize\": PropTypes.number.isRequired,\n\n  /** Exposed for testing purposes only.  */\n  \"getScrollbarSize\": PropTypes.func.isRequired,\n\n  /** Height of Grid; this property determines the number of visible (vs virtualized) rows.  */\n  \"height\": PropTypes.number.isRequired,\n\n  /** Optional custom id to attach to root Grid element.  */\n  \"id\": PropTypes.string,\n\n  /**\n   * Override internal is-scrolling state tracking.\n   * This property is primarily intended for use with the WindowScroller component.\n   */\n  \"isScrolling\": PropTypes.bool,\n\n  /**\n   * Opt-out of isScrolling param passed to cellRangeRenderer.\n   * To avoid the extra render when scroll stops.\n   */\n  \"isScrollingOptOut\": PropTypes.bool.isRequired,\n\n  /** Optional renderer to be used in place of rows when either :rowCount or :columnCount is 0.  */\n  \"noContentRenderer\": function noContentRenderer() {\n    return (typeof bpfrpt_proptype_NoContentRenderer === \"function\" ? bpfrpt_proptype_NoContentRenderer.isRequired ? bpfrpt_proptype_NoContentRenderer.isRequired : bpfrpt_proptype_NoContentRenderer : PropTypes.shape(bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);\n  },\n\n  /**\n   * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n   * This callback can be used to sync scrolling between lists, tables, or grids.\n   */\n  \"onScroll\": PropTypes.func.isRequired,\n\n  /**\n   * Called whenever a horizontal or vertical scrollbar is added or removed.\n   * This prop is not intended for end-user use;\n   * It is used by MultiGrid to support fixed-row/fixed-column scroll syncing.\n   */\n  \"onScrollbarPresenceChange\": PropTypes.func.isRequired,\n\n  /** Callback invoked with information about the section of the Grid that was just rendered.  */\n  \"onSectionRendered\": PropTypes.func.isRequired,\n\n  /**\n   * Number of columns to render before/after the visible section of the grid.\n   * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n   */\n  \"overscanColumnCount\": PropTypes.number.isRequired,\n\n  /**\n   * Calculates the number of cells to overscan before and after a specified range.\n   * This function ensures that overscanning doesn't exceed the available cells.\n   */\n  \"overscanIndicesGetter\": function overscanIndicesGetter() {\n    return (typeof bpfrpt_proptype_OverscanIndicesGetter === \"function\" ? bpfrpt_proptype_OverscanIndicesGetter.isRequired ? bpfrpt_proptype_OverscanIndicesGetter.isRequired : bpfrpt_proptype_OverscanIndicesGetter : PropTypes.shape(bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);\n  },\n\n  /**\n   * Number of rows to render above/below the visible section of the grid.\n   * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n   */\n  \"overscanRowCount\": PropTypes.number.isRequired,\n\n  /** ARIA role for the grid element.  */\n  \"role\": PropTypes.string.isRequired,\n\n  /**\n   * Either a fixed row height (number) or a function that returns the height of a row given its index.\n   * Should implement the following interface: ({ index: number }): number\n   */\n  \"rowHeight\": function rowHeight() {\n    return (typeof bpfrpt_proptype_CellSize === \"function\" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n  },\n\n  /** Number of rows in grid.  */\n  \"rowCount\": PropTypes.number.isRequired,\n\n  /** Wait this amount of time after the last scroll event before resetting Grid `pointer-events`. */\n  \"scrollingResetTimeInterval\": PropTypes.number.isRequired,\n\n  /** Horizontal offset. */\n  \"scrollLeft\": PropTypes.number,\n\n  /**\n   * Controls scroll-to-cell behavior of the Grid.\n   * The default (\"auto\") scrolls the least amount possible to ensure that the specified cell is fully visible.\n   * Use \"start\" to align cells to the top/left of the Grid and \"end\" to align bottom/right.\n   */\n  \"scrollToAlignment\": function scrollToAlignment() {\n    return (typeof bpfrpt_proptype_Alignment === \"function\" ? bpfrpt_proptype_Alignment.isRequired ? bpfrpt_proptype_Alignment.isRequired : bpfrpt_proptype_Alignment : PropTypes.shape(bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);\n  },\n\n  /** Column index to ensure visible (by forcefully scrolling if necessary) */\n  \"scrollToColumn\": PropTypes.number.isRequired,\n\n  /** Vertical offset. */\n  \"scrollTop\": PropTypes.number,\n\n  /** Row index to ensure visible (by forcefully scrolling if necessary) */\n  \"scrollToRow\": PropTypes.number.isRequired,\n\n  /** Optional inline style */\n  \"style\": PropTypes.object.isRequired,\n\n  /** Tab index for focus */\n  \"tabIndex\": PropTypes.number,\n\n  /** Width of Grid; this property determines the number of visible (vs virtualized) columns.  */\n  \"width\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(Grid, \"defaultProps\", {\n  'aria-label': 'grid',\n  'aria-readonly': true,\n  autoContainerWidth: false,\n  autoHeight: false,\n  autoWidth: false,\n  cellRangeRenderer: defaultCellRangeRenderer,\n  containerRole: 'rowgroup',\n  containerStyle: {},\n  estimatedColumnSize: 100,\n  estimatedRowSize: 30,\n  getScrollbarSize: scrollbarSize,\n  noContentRenderer: renderNull,\n  onScroll: function onScroll() {},\n  onScrollbarPresenceChange: function onScrollbarPresenceChange() {},\n  onSectionRendered: function onSectionRendered() {},\n  overscanColumnCount: 0,\n  overscanIndicesGetter: defaultOverscanIndicesGetter,\n  overscanRowCount: 10,\n  role: 'grid',\n  scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,\n  scrollToAlignment: 'auto',\n  scrollToColumn: -1,\n  scrollToRow: -1,\n  style: {},\n  tabIndex: 0,\n  isScrollingOptOut: false\n});\n\npolyfill(Grid);\nexport default Grid;\nimport { bpfrpt_proptype_CellRenderer } from \"./types\";\nimport { bpfrpt_proptype_CellRangeRenderer } from \"./types\";\nimport { bpfrpt_proptype_CellPosition } from \"./types\";\nimport { bpfrpt_proptype_CellSize } from \"./types\";\nimport { bpfrpt_proptype_CellSizeGetter } from \"./types\";\nimport { bpfrpt_proptype_NoContentRenderer } from \"./types\";\nimport { bpfrpt_proptype_Scroll } from \"./types\";\nimport { bpfrpt_proptype_ScrollbarPresenceChange } from \"./types\";\nimport { bpfrpt_proptype_RenderedSection } from \"./types\";\nimport { bpfrpt_proptype_OverscanIndicesGetter } from \"./types\";\nimport { bpfrpt_proptype_Alignment } from \"./types\";\nimport { bpfrpt_proptype_CellCache } from \"./types\";\nimport { bpfrpt_proptype_StyleCache } from \"./types\";\nimport { bpfrpt_proptype_AnimationTimeoutId } from \"../utils/requestAnimationTimeout\";\nimport PropTypes from \"prop-types\";","import { caf, raf } from './animationFrame';\nvar bpfrpt_proptype_AnimationTimeoutId = process.env.NODE_ENV === 'production' ? null : {\n  \"id\": PropTypes.number.isRequired\n};\nexport var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {\n  return caf(frame.id);\n};\n/**\n * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.\n * When the delay time has been reached the function you're timing out will be called.\n *\n * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)\n */\n\nexport var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {\n  var start; // wait for end of processing current event handler, because event handler may be long\n\n  Promise.resolve().then(function () {\n    start = Date.now();\n  });\n\n  var timeout = function timeout() {\n    if (Date.now() - start >= delay) {\n      callback.call();\n    } else {\n      frame.id = raf(timeout);\n    }\n  };\n\n  var frame = {\n    id: raf(timeout)\n  };\n  return frame;\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_AnimationTimeoutId };","export var SCROLL_DIRECTION_BACKWARD = -1;\nexport var SCROLL_DIRECTION_FORWARD = 1;\nexport var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';\nexport var SCROLL_DIRECTION_VERTICAL = 'vertical';\n/**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n\nexport default function defaultOverscanIndicesGetter(_ref) {\n  var cellCount = _ref.cellCount,\n      overscanCellsCount = _ref.overscanCellsCount,\n      scrollDirection = _ref.scrollDirection,\n      startIndex = _ref.startIndex,\n      stopIndex = _ref.stopIndex;\n\n  if (scrollDirection === SCROLL_DIRECTION_FORWARD) {\n    return {\n      overscanStartIndex: Math.max(0, startIndex),\n      overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)\n    };\n  } else {\n    return {\n      overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n      overscanStopIndex: Math.min(cellCount - 1, stopIndex)\n    };\n  }\n}\nimport { bpfrpt_proptype_OverscanIndicesGetterParams } from \"./types\";\nimport { bpfrpt_proptype_OverscanIndices } from \"./types\";","/**\n * Default implementation of cellRangeRenderer used by Grid.\n * This renderer supports cell-caching while the user is scrolling.\n */\nexport default function defaultCellRangeRenderer(_ref) {\n  var cellCache = _ref.cellCache,\n      cellRenderer = _ref.cellRenderer,\n      columnSizeAndPositionManager = _ref.columnSizeAndPositionManager,\n      columnStartIndex = _ref.columnStartIndex,\n      columnStopIndex = _ref.columnStopIndex,\n      deferredMeasurementCache = _ref.deferredMeasurementCache,\n      horizontalOffsetAdjustment = _ref.horizontalOffsetAdjustment,\n      isScrolling = _ref.isScrolling,\n      isScrollingOptOut = _ref.isScrollingOptOut,\n      parent = _ref.parent,\n      rowSizeAndPositionManager = _ref.rowSizeAndPositionManager,\n      rowStartIndex = _ref.rowStartIndex,\n      rowStopIndex = _ref.rowStopIndex,\n      styleCache = _ref.styleCache,\n      verticalOffsetAdjustment = _ref.verticalOffsetAdjustment,\n      visibleColumnIndices = _ref.visibleColumnIndices,\n      visibleRowIndices = _ref.visibleRowIndices;\n  var renderedCells = []; // Browsers have native size limits for elements (eg Chrome 33M pixels, IE 1.5M pixes).\n  // User cannot scroll beyond these size limitations.\n  // In order to work around this, ScalingCellSizeAndPositionManager compresses offsets.\n  // We should never cache styles for compressed offsets though as this can lead to bugs.\n  // See issue #576 for more.\n\n  var areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted();\n  var canCacheStyle = !isScrolling && !areOffsetsAdjusted;\n\n  for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n    var rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex);\n\n    for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n      var columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex);\n      var isVisible = columnIndex >= visibleColumnIndices.start && columnIndex <= visibleColumnIndices.stop && rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop;\n      var key = \"\".concat(rowIndex, \"-\").concat(columnIndex);\n      var style = void 0; // Cache style objects so shallow-compare doesn't re-render unnecessarily.\n\n      if (canCacheStyle && styleCache[key]) {\n        style = styleCache[key];\n      } else {\n        // In deferred mode, cells will be initially rendered before we know their size.\n        // Don't interfere with CellMeasurer's measurements by setting an invalid size.\n        if (deferredMeasurementCache && !deferredMeasurementCache.has(rowIndex, columnIndex)) {\n          // Position not-yet-measured cells at top/left 0,0,\n          // And give them width/height of 'auto' so they can grow larger than the parent Grid if necessary.\n          // Positioning them further to the right/bottom influences their measured size.\n          style = {\n            height: 'auto',\n            left: 0,\n            position: 'absolute',\n            top: 0,\n            width: 'auto'\n          };\n        } else {\n          style = {\n            height: rowDatum.size,\n            left: columnDatum.offset + horizontalOffsetAdjustment,\n            position: 'absolute',\n            top: rowDatum.offset + verticalOffsetAdjustment,\n            width: columnDatum.size\n          };\n          styleCache[key] = style;\n        }\n      }\n\n      var cellRendererParams = {\n        columnIndex: columnIndex,\n        isScrolling: isScrolling,\n        isVisible: isVisible,\n        key: key,\n        parent: parent,\n        rowIndex: rowIndex,\n        style: style\n      };\n      var renderedCell = void 0; // Avoid re-creating cells while scrolling.\n      // This can lead to the same cell being created many times and can cause performance issues for \"heavy\" cells.\n      // If a scroll is in progress- cache and reuse cells.\n      // This cache will be thrown away once scrolling completes.\n      // However if we are scaling scroll positions and sizes, we should also avoid caching.\n      // This is because the offset changes slightly as scroll position changes and caching leads to stale values.\n      // For more info refer to issue #395\n      //\n      // If isScrollingOptOut is specified, we always cache cells.\n      // For more info refer to issue #1028\n\n      if ((isScrollingOptOut || isScrolling) && !horizontalOffsetAdjustment && !verticalOffsetAdjustment) {\n        if (!cellCache[key]) {\n          cellCache[key] = cellRenderer(cellRendererParams);\n        }\n\n        renderedCell = cellCache[key]; // If the user is no longer scrolling, don't cache cells.\n        // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.\n      } else {\n        renderedCell = cellRenderer(cellRendererParams);\n      }\n\n      if (renderedCell == null || renderedCell === false) {\n        continue;\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        warnAboutMissingStyle(parent, renderedCell);\n      }\n\n      renderedCells.push(renderedCell);\n    }\n  }\n\n  return renderedCells;\n}\n\nfunction warnAboutMissingStyle(parent, renderedCell) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (renderedCell) {\n      // If the direct child is a CellMeasurer, then we should check its child\n      // See issue #611\n      if (renderedCell.type && renderedCell.type.__internalCellMeasurerFlag) {\n        renderedCell = renderedCell.props.children;\n      }\n\n      if (renderedCell && renderedCell.props && renderedCell.props.style === undefined && parent.__warnedAboutMissingStyle !== true) {\n        parent.__warnedAboutMissingStyle = true;\n        console.warn('Rendered cell should include style property for positioning.');\n      }\n    }\n  }\n}\n\nimport { bpfrpt_proptype_CellRangeRendererParams } from \"./types\";","export var SCROLL_DIRECTION_BACKWARD = -1;\nexport var SCROLL_DIRECTION_FORWARD = 1;\nexport var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';\nexport var SCROLL_DIRECTION_VERTICAL = 'vertical';\n/**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n\nexport default function defaultOverscanIndicesGetter(_ref) {\n  var cellCount = _ref.cellCount,\n      overscanCellsCount = _ref.overscanCellsCount,\n      scrollDirection = _ref.scrollDirection,\n      startIndex = _ref.startIndex,\n      stopIndex = _ref.stopIndex;\n  // Make sure we render at least 1 cell extra before and after (except near boundaries)\n  // This is necessary in order to support keyboard navigation (TAB/SHIFT+TAB) in some cases\n  // For more info see issues #625\n  overscanCellsCount = Math.max(1, overscanCellsCount);\n\n  if (scrollDirection === SCROLL_DIRECTION_FORWARD) {\n    return {\n      overscanStartIndex: Math.max(0, startIndex - 1),\n      overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)\n    };\n  } else {\n    return {\n      overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n      overscanStopIndex: Math.min(cellCount - 1, stopIndex + 1)\n    };\n  }\n}\nimport { bpfrpt_proptype_OverscanIndicesGetterParams } from \"./types\";\nimport { bpfrpt_proptype_OverscanIndices } from \"./types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\n/**\n * This HOC decorates a virtualized component and responds to arrow-key events by scrolling one row or column at a time.\n */\n\nvar ArrowKeyStepper = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(ArrowKeyStepper, _React$PureComponent);\n\n  function ArrowKeyStepper() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, ArrowKeyStepper);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ArrowKeyStepper)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      scrollToColumn: 0,\n      scrollToRow: 0,\n      instanceProps: {\n        prevScrollToColumn: 0,\n        prevScrollToRow: 0\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_columnStartIndex\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_columnStopIndex\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_rowStartIndex\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_rowStopIndex\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_onKeyDown\", function (event) {\n      var _this$props = _this.props,\n          columnCount = _this$props.columnCount,\n          disabled = _this$props.disabled,\n          mode = _this$props.mode,\n          rowCount = _this$props.rowCount;\n\n      if (disabled) {\n        return;\n      }\n\n      var _this$_getScrollState = _this._getScrollState(),\n          scrollToColumnPrevious = _this$_getScrollState.scrollToColumn,\n          scrollToRowPrevious = _this$_getScrollState.scrollToRow;\n\n      var _this$_getScrollState2 = _this._getScrollState(),\n          scrollToColumn = _this$_getScrollState2.scrollToColumn,\n          scrollToRow = _this$_getScrollState2.scrollToRow; // The above cases all prevent default event event behavior.\n      // This is to keep the grid from scrolling after the snap-to update.\n\n\n      switch (event.key) {\n        case 'ArrowDown':\n          scrollToRow = mode === 'cells' ? Math.min(scrollToRow + 1, rowCount - 1) : Math.min(_this._rowStopIndex + 1, rowCount - 1);\n          break;\n\n        case 'ArrowLeft':\n          scrollToColumn = mode === 'cells' ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);\n          break;\n\n        case 'ArrowRight':\n          scrollToColumn = mode === 'cells' ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);\n          break;\n\n        case 'ArrowUp':\n          scrollToRow = mode === 'cells' ? Math.max(scrollToRow - 1, 0) : Math.max(_this._rowStartIndex - 1, 0);\n          break;\n      }\n\n      if (scrollToColumn !== scrollToColumnPrevious || scrollToRow !== scrollToRowPrevious) {\n        event.preventDefault();\n\n        _this._updateScrollState({\n          scrollToColumn: scrollToColumn,\n          scrollToRow: scrollToRow\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onSectionRendered\", function (_ref) {\n      var columnStartIndex = _ref.columnStartIndex,\n          columnStopIndex = _ref.columnStopIndex,\n          rowStartIndex = _ref.rowStartIndex,\n          rowStopIndex = _ref.rowStopIndex;\n      _this._columnStartIndex = columnStartIndex;\n      _this._columnStopIndex = columnStopIndex;\n      _this._rowStartIndex = rowStartIndex;\n      _this._rowStopIndex = rowStopIndex;\n    });\n\n    return _this;\n  }\n\n  _createClass(ArrowKeyStepper, [{\n    key: \"setScrollIndexes\",\n    value: function setScrollIndexes(_ref2) {\n      var scrollToColumn = _ref2.scrollToColumn,\n          scrollToRow = _ref2.scrollToRow;\n      this.setState({\n        scrollToRow: scrollToRow,\n        scrollToColumn: scrollToColumn\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          className = _this$props2.className,\n          children = _this$props2.children;\n\n      var _this$_getScrollState3 = this._getScrollState(),\n          scrollToColumn = _this$_getScrollState3.scrollToColumn,\n          scrollToRow = _this$_getScrollState3.scrollToRow;\n\n      return React.createElement(\"div\", {\n        className: className,\n        onKeyDown: this._onKeyDown\n      }, children({\n        onSectionRendered: this._onSectionRendered,\n        scrollToColumn: scrollToColumn,\n        scrollToRow: scrollToRow\n      }));\n    }\n  }, {\n    key: \"_getScrollState\",\n    value: function _getScrollState() {\n      return this.props.isControlled ? this.props : this.state;\n    }\n  }, {\n    key: \"_updateScrollState\",\n    value: function _updateScrollState(_ref3) {\n      var scrollToColumn = _ref3.scrollToColumn,\n          scrollToRow = _ref3.scrollToRow;\n      var _this$props3 = this.props,\n          isControlled = _this$props3.isControlled,\n          onScrollToChange = _this$props3.onScrollToChange;\n\n      if (typeof onScrollToChange === 'function') {\n        onScrollToChange({\n          scrollToColumn: scrollToColumn,\n          scrollToRow: scrollToRow\n        });\n      }\n\n      if (!isControlled) {\n        this.setState({\n          scrollToColumn: scrollToColumn,\n          scrollToRow: scrollToRow\n        });\n      }\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps, prevState) {\n      if (nextProps.isControlled) {\n        return {};\n      }\n\n      if (nextProps.scrollToColumn !== prevState.instanceProps.prevScrollToColumn || nextProps.scrollToRow !== prevState.instanceProps.prevScrollToRow) {\n        return _objectSpread({}, prevState, {\n          scrollToColumn: nextProps.scrollToColumn,\n          scrollToRow: nextProps.scrollToRow,\n          instanceProps: {\n            prevScrollToColumn: nextProps.scrollToColumn,\n            prevScrollToRow: nextProps.scrollToRow\n          }\n        });\n      }\n\n      return {};\n    }\n  }]);\n\n  return ArrowKeyStepper;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n  \"children\": PropTypes.func.isRequired,\n  \"className\": PropTypes.string,\n  \"columnCount\": PropTypes.number.isRequired,\n  \"disabled\": PropTypes.bool.isRequired,\n  \"isControlled\": PropTypes.bool.isRequired,\n  \"mode\": PropTypes.oneOf([\"cells\", \"edges\"]).isRequired,\n  \"onScrollToChange\": PropTypes.func,\n  \"rowCount\": PropTypes.number.isRequired,\n  \"scrollToColumn\": PropTypes.number.isRequired,\n  \"scrollToRow\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(ArrowKeyStepper, \"defaultProps\", {\n  disabled: false,\n  isControlled: false,\n  mode: 'edges',\n  scrollToColumn: 0,\n  scrollToRow: 0\n});\n\npolyfill(ArrowKeyStepper);\nexport default ArrowKeyStepper;\nimport { bpfrpt_proptype_RenderedSection } from \"../Grid\";\nimport { bpfrpt_proptype_ScrollIndices } from \"./types\";\nimport PropTypes from \"prop-types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport createDetectElementResize from '../vendor/detectElementResize';\nvar AutoSizer = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inherits(AutoSizer, _React$Component);\n\n  function AutoSizer() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, AutoSizer);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AutoSizer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      height: _this.props.defaultHeight || 0,\n      width: _this.props.defaultWidth || 0\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_parentNode\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_autoSizer\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_window\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_detectElementResize\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_onResize\", function () {\n      var _this$props = _this.props,\n          disableHeight = _this$props.disableHeight,\n          disableWidth = _this$props.disableWidth,\n          onResize = _this$props.onResize;\n\n      if (_this._parentNode) {\n        // Guard against AutoSizer component being removed from the DOM immediately after being added.\n        // This can result in invalid style values which can result in NaN values if we don't handle them.\n        // See issue #150 for more context.\n        var height = _this._parentNode.offsetHeight || 0;\n        var width = _this._parentNode.offsetWidth || 0;\n        var win = _this._window || window;\n        var style = win.getComputedStyle(_this._parentNode) || {};\n        var paddingLeft = parseInt(style.paddingLeft, 10) || 0;\n        var paddingRight = parseInt(style.paddingRight, 10) || 0;\n        var paddingTop = parseInt(style.paddingTop, 10) || 0;\n        var paddingBottom = parseInt(style.paddingBottom, 10) || 0;\n        var newHeight = height - paddingTop - paddingBottom;\n        var newWidth = width - paddingLeft - paddingRight;\n\n        if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) {\n          _this.setState({\n            height: height - paddingTop - paddingBottom,\n            width: width - paddingLeft - paddingRight\n          });\n\n          onResize({\n            height: height,\n            width: width\n          });\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_setRef\", function (autoSizer) {\n      _this._autoSizer = autoSizer;\n    });\n\n    return _this;\n  }\n\n  _createClass(AutoSizer, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var nonce = this.props.nonce;\n\n      if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {\n        // Delay access of parentNode until mount.\n        // This handles edge-cases where the component has already been unmounted before its ref has been set,\n        // As well as libraries like react-lite which have a slightly different lifecycle.\n        this._parentNode = this._autoSizer.parentNode;\n        this._window = this._autoSizer.parentNode.ownerDocument.defaultView; // Defer requiring resize handler in order to support server-side rendering.\n        // See issue #41\n\n        this._detectElementResize = createDetectElementResize(nonce, this._window);\n\n        this._detectElementResize.addResizeListener(this._parentNode, this._onResize);\n\n        this._onResize();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (this._detectElementResize && this._parentNode) {\n        this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          children = _this$props2.children,\n          className = _this$props2.className,\n          disableHeight = _this$props2.disableHeight,\n          disableWidth = _this$props2.disableWidth,\n          style = _this$props2.style;\n      var _this$state = this.state,\n          height = _this$state.height,\n          width = _this$state.width; // Outer div should not force width/height since that may prevent containers from shrinking.\n      // Inner component should overflow and use calculated width/height.\n      // See issue #68 for more information.\n\n      var outerStyle = {\n        overflow: 'visible'\n      };\n      var childParams = {};\n\n      if (!disableHeight) {\n        outerStyle.height = 0;\n        childParams.height = height;\n      }\n\n      if (!disableWidth) {\n        outerStyle.width = 0;\n        childParams.width = width;\n      }\n      /**\n       * TODO: Avoid rendering children before the initial measurements have been collected.\n       * At best this would just be wasting cycles.\n       * Add this check into version 10 though as it could break too many ref callbacks in version 9.\n       * Note that if default width/height props were provided this would still work with SSR.\n      if (\n        height !== 0 &&\n        width !== 0\n      ) {\n        child = children({ height, width })\n      }\n      */\n\n\n      return React.createElement(\"div\", {\n        className: className,\n        ref: this._setRef,\n        style: _objectSpread({}, outerStyle, {}, style)\n      }, children(childParams));\n    }\n  }]);\n\n  return AutoSizer;\n}(React.Component), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n  /** Function responsible for rendering children.*/\n  \"children\": PropTypes.func.isRequired,\n\n  /** Optional custom CSS class name to attach to root AutoSizer element.  */\n  \"className\": PropTypes.string,\n\n  /** Default height to use for initial render; useful for SSR */\n  \"defaultHeight\": PropTypes.number,\n\n  /** Default width to use for initial render; useful for SSR */\n  \"defaultWidth\": PropTypes.number,\n\n  /** Disable dynamic :height property */\n  \"disableHeight\": PropTypes.bool.isRequired,\n\n  /** Disable dynamic :width property */\n  \"disableWidth\": PropTypes.bool.isRequired,\n\n  /** Nonce of the inlined stylesheet for Content Security Policy */\n  \"nonce\": PropTypes.string,\n\n  /** Callback to be invoked on-resize */\n  \"onResize\": PropTypes.func.isRequired,\n\n  /** Optional inline style */\n  \"style\": PropTypes.object\n}), _temp);\n\n_defineProperty(AutoSizer, \"defaultProps\", {\n  onResize: function onResize() {},\n  disableHeight: false,\n  disableWidth: false,\n  style: {}\n});\n\nexport { AutoSizer as default };\nimport PropTypes from \"prop-types\";","/**\n * Detect Element Resize.\n * https://github.com/sdecima/javascript-detect-element-resize\n * Sebastian Decima\n *\n * Forked from version 0.5.3; includes the following modifications:\n * 1) Guard against unsafe 'window' and 'document' references (to support SSR).\n * 2) Defer initialization code via a top-level function wrapper (to support SSR).\n * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.\n * 4) Add nonce for style element.\n * 5) Added support for injecting custom window object\n **/\nexport default function createDetectElementResize(nonce, hostWindow) {\n  // Check `document` and `window` in case of server-side rendering\n  var _window;\n\n  if (typeof hostWindow !== 'undefined') {\n    _window = hostWindow;\n  } else if (typeof window !== 'undefined') {\n    _window = window;\n  } else if (typeof self !== 'undefined') {\n    _window = self;\n  } else {\n    _window = global;\n  }\n\n  var attachEvent = typeof _window.document !== 'undefined' && _window.document.attachEvent;\n\n  if (!attachEvent) {\n    var requestFrame = function () {\n      var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {\n        return _window.setTimeout(fn, 20);\n      };\n\n      return function (fn) {\n        return raf(fn);\n      };\n    }();\n\n    var cancelFrame = function () {\n      var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;\n      return function (id) {\n        return cancel(id);\n      };\n    }();\n\n    var resetTriggers = function resetTriggers(element) {\n      var triggers = element.__resizeTriggers__,\n          expand = triggers.firstElementChild,\n          contract = triggers.lastElementChild,\n          expandChild = expand.firstElementChild;\n      contract.scrollLeft = contract.scrollWidth;\n      contract.scrollTop = contract.scrollHeight;\n      expandChild.style.width = expand.offsetWidth + 1 + 'px';\n      expandChild.style.height = expand.offsetHeight + 1 + 'px';\n      expand.scrollLeft = expand.scrollWidth;\n      expand.scrollTop = expand.scrollHeight;\n    };\n\n    var checkTriggers = function checkTriggers(element) {\n      return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n    };\n\n    var scrollListener = function scrollListener(e) {\n      // Don't measure (which forces) reflow for scrolls that happen inside of children!\n      if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {\n        return;\n      }\n\n      var element = this;\n      resetTriggers(this);\n\n      if (this.__resizeRAF__) {\n        cancelFrame(this.__resizeRAF__);\n      }\n\n      this.__resizeRAF__ = requestFrame(function () {\n        if (checkTriggers(element)) {\n          element.__resizeLast__.width = element.offsetWidth;\n          element.__resizeLast__.height = element.offsetHeight;\n\n          element.__resizeListeners__.forEach(function (fn) {\n            fn.call(element, e);\n          });\n        }\n      });\n    };\n    /* Detect CSS Animations support to detect element display/re-attach */\n\n\n    var animation = false,\n        keyframeprefix = '',\n        animationstartevent = 'animationstart',\n        domPrefixes = 'Webkit Moz O ms'.split(' '),\n        startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n        pfx = '';\n    {\n      var elm = _window.document.createElement('fakeelement');\n\n      if (elm.style.animationName !== undefined) {\n        animation = true;\n      }\n\n      if (animation === false) {\n        for (var i = 0; i < domPrefixes.length; i++) {\n          if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n            pfx = domPrefixes[i];\n            keyframeprefix = '-' + pfx.toLowerCase() + '-';\n            animationstartevent = startEvents[i];\n            animation = true;\n            break;\n          }\n        }\n      }\n    }\n    var animationName = 'resizeanim';\n    var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n    var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n  }\n\n  var createStyles = function createStyles(doc) {\n    if (!doc.getElementById('detectElementResize')) {\n      //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n      var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n          head = doc.head || doc.getElementsByTagName('head')[0],\n          style = doc.createElement('style');\n      style.id = 'detectElementResize';\n      style.type = 'text/css';\n\n      if (nonce != null) {\n        style.setAttribute('nonce', nonce);\n      }\n\n      if (style.styleSheet) {\n        style.styleSheet.cssText = css;\n      } else {\n        style.appendChild(doc.createTextNode(css));\n      }\n\n      head.appendChild(style);\n    }\n  };\n\n  var addResizeListener = function addResizeListener(element, fn) {\n    if (attachEvent) {\n      element.attachEvent('onresize', fn);\n    } else {\n      if (!element.__resizeTriggers__) {\n        var doc = element.ownerDocument;\n\n        var elementStyle = _window.getComputedStyle(element);\n\n        if (elementStyle && elementStyle.position == 'static') {\n          element.style.position = 'relative';\n        }\n\n        createStyles(doc);\n        element.__resizeLast__ = {};\n        element.__resizeListeners__ = [];\n        (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';\n        var resizeTriggersHtml = '<div class=\"expand-trigger\"><div></div></div>' + '<div class=\"contract-trigger\"></div>';\n\n        if (window.trustedTypes) {\n          var staticPolicy = trustedTypes.createPolicy('react-virtualized-auto-sizer', {\n            createHTML: function createHTML() {\n              return resizeTriggersHtml;\n            }\n          });\n          element.__resizeTriggers__.innerHTML = staticPolicy.createHTML('');\n        } else {\n          element.__resizeTriggers__.innerHTML = resizeTriggersHtml;\n        }\n\n        element.appendChild(element.__resizeTriggers__);\n        resetTriggers(element);\n        element.addEventListener('scroll', scrollListener, true);\n        /* Listen for a css animation to detect element display/re-attach */\n\n        if (animationstartevent) {\n          element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n            if (e.animationName == animationName) {\n              resetTriggers(element);\n            }\n          };\n\n          element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n        }\n      }\n\n      element.__resizeListeners__.push(fn);\n    }\n  };\n\n  var removeResizeListener = function removeResizeListener(element, fn) {\n    if (attachEvent) {\n      element.detachEvent('onresize', fn);\n    } else {\n      element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n\n      if (!element.__resizeListeners__.length) {\n        element.removeEventListener('scroll', scrollListener, true);\n\n        if (element.__resizeTriggers__.__animationListener__) {\n          element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n\n          element.__resizeTriggers__.__animationListener__ = null;\n        }\n\n        try {\n          element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n        } catch (e) {// Preact compat; see developit/preact-compat/issues/228\n        }\n      }\n    }\n  };\n\n  return {\n    addResizeListener: addResizeListener,\n    removeResizeListener: removeResizeListener\n  };\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nimport * as React from 'react';\nimport { findDOMNode } from 'react-dom';\n\n/**\n * Wraps a cell and measures its rendered content.\n * Measurements are stored in a per-cell cache.\n * Cached-content is not be re-measured.\n */\nvar CellMeasurer = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(CellMeasurer, _React$PureComponent);\n\n  function CellMeasurer() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, CellMeasurer);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CellMeasurer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_this), \"_child\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_measure\", function () {\n      var _this$props = _this.props,\n          cache = _this$props.cache,\n          _this$props$columnInd = _this$props.columnIndex,\n          columnIndex = _this$props$columnInd === void 0 ? 0 : _this$props$columnInd,\n          parent = _this$props.parent,\n          _this$props$rowIndex = _this$props.rowIndex,\n          rowIndex = _this$props$rowIndex === void 0 ? _this.props.index || 0 : _this$props$rowIndex;\n\n      var _this$_getCellMeasure = _this._getCellMeasurements(),\n          height = _this$_getCellMeasure.height,\n          width = _this$_getCellMeasure.width;\n\n      if (height !== cache.getHeight(rowIndex, columnIndex) || width !== cache.getWidth(rowIndex, columnIndex)) {\n        cache.set(rowIndex, columnIndex, width, height);\n\n        if (parent && typeof parent.recomputeGridSize === 'function') {\n          parent.recomputeGridSize({\n            columnIndex: columnIndex,\n            rowIndex: rowIndex\n          });\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_registerChild\", function (element) {\n      if (element && !(element instanceof Element)) {\n        console.warn('CellMeasurer registerChild expects to be passed Element or null');\n      }\n\n      _this._child = element;\n\n      if (element) {\n        _this._maybeMeasureCell();\n      }\n    });\n\n    return _this;\n  }\n\n  _createClass(CellMeasurer, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this._maybeMeasureCell();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      this._maybeMeasureCell();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var children = this.props.children;\n      return typeof children === 'function' ? children({\n        measure: this._measure,\n        registerChild: this._registerChild\n      }) : children;\n    }\n  }, {\n    key: \"_getCellMeasurements\",\n    value: function _getCellMeasurements() {\n      var cache = this.props.cache;\n      var node = this._child || findDOMNode(this); // TODO Check for a bad combination of fixedWidth and missing numeric width or vice versa with height\n\n      if (node && node.ownerDocument && node.ownerDocument.defaultView && node instanceof node.ownerDocument.defaultView.HTMLElement) {\n        var styleWidth = node.style.width;\n        var styleHeight = node.style.height; // If we are re-measuring a cell that has already been measured,\n        // It will have a hard-coded width/height from the previous measurement.\n        // The fact that we are measuring indicates this measurement is probably stale,\n        // So explicitly clear it out (eg set to \"auto\") so we can recalculate.\n        // See issue #593 for more info.\n        // Even if we are measuring initially- if we're inside of a MultiGrid component,\n        // Explicitly clear width/height before measuring to avoid being tainted by another Grid.\n        // eg top/left Grid renders before bottom/right Grid\n        // Since the CellMeasurerCache is shared between them this taints derived cell size values.\n\n        if (!cache.hasFixedWidth()) {\n          node.style.width = 'auto';\n        }\n\n        if (!cache.hasFixedHeight()) {\n          node.style.height = 'auto';\n        }\n\n        var height = Math.ceil(node.offsetHeight);\n        var width = Math.ceil(node.offsetWidth); // Reset after measuring to avoid breaking styles; see #660\n\n        if (styleWidth) {\n          node.style.width = styleWidth;\n        }\n\n        if (styleHeight) {\n          node.style.height = styleHeight;\n        }\n\n        return {\n          height: height,\n          width: width\n        };\n      } else {\n        return {\n          height: 0,\n          width: 0\n        };\n      }\n    }\n  }, {\n    key: \"_maybeMeasureCell\",\n    value: function _maybeMeasureCell() {\n      var _this$props2 = this.props,\n          cache = _this$props2.cache,\n          _this$props2$columnIn = _this$props2.columnIndex,\n          columnIndex = _this$props2$columnIn === void 0 ? 0 : _this$props2$columnIn,\n          parent = _this$props2.parent,\n          _this$props2$rowIndex = _this$props2.rowIndex,\n          rowIndex = _this$props2$rowIndex === void 0 ? this.props.index || 0 : _this$props2$rowIndex;\n\n      if (!cache.has(rowIndex, columnIndex)) {\n        var _this$_getCellMeasure2 = this._getCellMeasurements(),\n            height = _this$_getCellMeasure2.height,\n            width = _this$_getCellMeasure2.width;\n\n        cache.set(rowIndex, columnIndex, width, height); // If size has changed, let Grid know to re-render.\n\n        if (parent && typeof parent.invalidateCellSizeAfterRender === 'function') {\n          parent.invalidateCellSizeAfterRender({\n            columnIndex: columnIndex,\n            rowIndex: rowIndex\n          });\n        }\n      }\n    }\n  }]);\n\n  return CellMeasurer;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n  \"cache\": function cache() {\n    return (typeof bpfrpt_proptype_CellMeasureCache === \"function\" ? bpfrpt_proptype_CellMeasureCache.isRequired ? bpfrpt_proptype_CellMeasureCache.isRequired : bpfrpt_proptype_CellMeasureCache : PropTypes.shape(bpfrpt_proptype_CellMeasureCache).isRequired).apply(this, arguments);\n  },\n  \"children\": PropTypes.oneOfType([PropTypes.func, PropTypes.node]).isRequired,\n  \"columnIndex\": PropTypes.number,\n  \"index\": PropTypes.number,\n  \"parent\": PropTypes.shape({\n    invalidateCellSizeAfterRender: PropTypes.func,\n    recomputeGridSize: PropTypes.func\n  }).isRequired,\n  \"rowIndex\": PropTypes.number\n}), _temp); // Used for DEV mode warning check\n\n_defineProperty(CellMeasurer, \"__internalCellMeasurerFlag\", false);\n\nexport { CellMeasurer as default };\n\nif (process.env.NODE_ENV !== 'production') {\n  CellMeasurer.__internalCellMeasurerFlag = true;\n}\n\nimport { bpfrpt_proptype_CellMeasureCache } from \"./types\";\nimport PropTypes from \"prop-types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\nimport getScrollbarSize from 'dom-helpers/scrollbarSize'; // @TODO Merge Collection and CollectionView\n\n/**\n * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\n\nvar IS_SCROLLING_TIMEOUT = 150;\n/**\n * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.\n * This prevents Grid from interrupting mouse-wheel animations (see issue #2).\n */\n\nvar SCROLL_POSITION_CHANGE_REASONS = {\n  OBSERVED: 'observed',\n  REQUESTED: 'requested'\n};\n/**\n * Monitors changes in properties (eg. cellCount) and state (eg. scroll offsets) to determine when rendering needs to occur.\n * This component does not render any visible content itself; it defers to the specified :cellLayoutManager.\n */\n\nvar CollectionView =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(CollectionView, _React$PureComponent);\n\n  // Invokes callbacks only when their values have changed.\n  function CollectionView() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, CollectionView);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CollectionView)).call.apply(_getPrototypeOf2, [this].concat(args))); // If this component is being rendered server-side, getScrollbarSize() will return undefined.\n    // We handle this case in componentDidMount()\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      isScrolling: false,\n      scrollLeft: 0,\n      scrollTop: 0\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_calculateSizeAndPositionDataOnNextUpdate\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"_onSectionRenderedMemoizer\", createCallbackMemoizer());\n\n    _defineProperty(_assertThisInitialized(_this), \"_onScrollMemoizer\", createCallbackMemoizer(false));\n\n    _defineProperty(_assertThisInitialized(_this), \"_invokeOnSectionRenderedHelper\", function () {\n      var _this$props = _this.props,\n          cellLayoutManager = _this$props.cellLayoutManager,\n          onSectionRendered = _this$props.onSectionRendered;\n\n      _this._onSectionRenderedMemoizer({\n        callback: onSectionRendered,\n        indices: {\n          indices: cellLayoutManager.getLastRenderedIndices()\n        }\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n      _this._scrollingContainer = ref;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_updateScrollPositionForScrollToCell\", function () {\n      var _this$props2 = _this.props,\n          cellLayoutManager = _this$props2.cellLayoutManager,\n          height = _this$props2.height,\n          scrollToAlignment = _this$props2.scrollToAlignment,\n          scrollToCell = _this$props2.scrollToCell,\n          width = _this$props2.width;\n      var _this$state = _this.state,\n          scrollLeft = _this$state.scrollLeft,\n          scrollTop = _this$state.scrollTop;\n\n      if (scrollToCell >= 0) {\n        var scrollPosition = cellLayoutManager.getScrollPositionForCell({\n          align: scrollToAlignment,\n          cellIndex: scrollToCell,\n          height: height,\n          scrollLeft: scrollLeft,\n          scrollTop: scrollTop,\n          width: width\n        });\n\n        if (scrollPosition.scrollLeft !== scrollLeft || scrollPosition.scrollTop !== scrollTop) {\n          _this._setScrollPosition(scrollPosition);\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (event) {\n      // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n      // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n      // See issue #404 for more information.\n      if (event.target !== _this._scrollingContainer) {\n        return;\n      } // Prevent pointer events from interrupting a smooth scroll\n\n\n      _this._enablePointerEventsAfterDelay(); // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n      // This causes a series of rapid renders that is slow for long lists.\n      // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.\n\n\n      var _this$props3 = _this.props,\n          cellLayoutManager = _this$props3.cellLayoutManager,\n          height = _this$props3.height,\n          isScrollingChange = _this$props3.isScrollingChange,\n          width = _this$props3.width;\n      var scrollbarSize = _this._scrollbarSize;\n\n      var _cellLayoutManager$ge = cellLayoutManager.getTotalSize(),\n          totalHeight = _cellLayoutManager$ge.height,\n          totalWidth = _cellLayoutManager$ge.width;\n\n      var scrollLeft = Math.max(0, Math.min(totalWidth - width + scrollbarSize, event.target.scrollLeft));\n      var scrollTop = Math.max(0, Math.min(totalHeight - height + scrollbarSize, event.target.scrollTop)); // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n      // Don't force a re-render if this is the case.\n      // The mouse may move faster then the animation frame does.\n      // Use requestAnimationFrame to avoid over-updating.\n\n      if (_this.state.scrollLeft !== scrollLeft || _this.state.scrollTop !== scrollTop) {\n        // Browsers with cancelable scroll events (eg. Firefox) interrupt scrolling animations if scrollTop/scrollLeft is set.\n        // Other browsers (eg. Safari) don't scroll as well without the help under certain conditions (DOM or style changes during scrolling).\n        // All things considered, this seems to be the best current work around that I'm aware of.\n        // For more information see https://github.com/bvaughn/react-virtualized/pull/124\n        var scrollPositionChangeReason = event.cancelable ? SCROLL_POSITION_CHANGE_REASONS.OBSERVED : SCROLL_POSITION_CHANGE_REASONS.REQUESTED; // Synchronously set :isScrolling the first time (since _setNextState will reschedule its animation frame each time it's called)\n\n        if (!_this.state.isScrolling) {\n          isScrollingChange(true);\n        }\n\n        _this.setState({\n          isScrolling: true,\n          scrollLeft: scrollLeft,\n          scrollPositionChangeReason: scrollPositionChangeReason,\n          scrollTop: scrollTop\n        });\n      }\n\n      _this._invokeOnScrollMemoizer({\n        scrollLeft: scrollLeft,\n        scrollTop: scrollTop,\n        totalWidth: totalWidth,\n        totalHeight: totalHeight\n      });\n    });\n\n    _this._scrollbarSize = getScrollbarSize();\n\n    if (_this._scrollbarSize === undefined) {\n      _this._scrollbarSizeMeasured = false;\n      _this._scrollbarSize = 0;\n    } else {\n      _this._scrollbarSizeMeasured = true;\n    }\n\n    return _this;\n  }\n  /**\n   * Forced recompute of cell sizes and positions.\n   * This function should be called if cell sizes have changed but nothing else has.\n   * Since cell positions are calculated by callbacks, the collection view has no way of detecting when the underlying data has changed.\n   */\n\n\n  _createClass(CollectionView, [{\n    key: \"recomputeCellSizesAndPositions\",\n    value: function recomputeCellSizesAndPositions() {\n      this._calculateSizeAndPositionDataOnNextUpdate = true;\n      this.forceUpdate();\n    }\n    /* ---------------------------- Component lifecycle methods ---------------------------- */\n\n    /**\n     * @private\n     * This method updates scrollLeft/scrollTop in state for the following conditions:\n     * 1) Empty content (0 rows or columns)\n     * 2) New scroll props overriding the current state\n     * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid\n     */\n\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this$props4 = this.props,\n          cellLayoutManager = _this$props4.cellLayoutManager,\n          scrollLeft = _this$props4.scrollLeft,\n          scrollToCell = _this$props4.scrollToCell,\n          scrollTop = _this$props4.scrollTop; // If this component was first rendered server-side, scrollbar size will be undefined.\n      // In that event we need to remeasure.\n\n      if (!this._scrollbarSizeMeasured) {\n        this._scrollbarSize = getScrollbarSize();\n        this._scrollbarSizeMeasured = true;\n        this.setState({});\n      }\n\n      if (scrollToCell >= 0) {\n        this._updateScrollPositionForScrollToCell();\n      } else if (scrollLeft >= 0 || scrollTop >= 0) {\n        this._setScrollPosition({\n          scrollLeft: scrollLeft,\n          scrollTop: scrollTop\n        });\n      } // Update onSectionRendered callback.\n\n\n      this._invokeOnSectionRenderedHelper();\n\n      var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(),\n          totalHeight = _cellLayoutManager$ge2.height,\n          totalWidth = _cellLayoutManager$ge2.width; // Initialize onScroll callback.\n\n\n      this._invokeOnScrollMemoizer({\n        scrollLeft: scrollLeft || 0,\n        scrollTop: scrollTop || 0,\n        totalHeight: totalHeight,\n        totalWidth: totalWidth\n      });\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      var _this$props5 = this.props,\n          height = _this$props5.height,\n          scrollToAlignment = _this$props5.scrollToAlignment,\n          scrollToCell = _this$props5.scrollToCell,\n          width = _this$props5.width;\n      var _this$state2 = this.state,\n          scrollLeft = _this$state2.scrollLeft,\n          scrollPositionChangeReason = _this$state2.scrollPositionChangeReason,\n          scrollTop = _this$state2.scrollTop; // Make sure requested changes to :scrollLeft or :scrollTop get applied.\n      // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,\n      // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).\n      // So we only set these when we require an adjustment of the scroll position.\n      // See issue #2 for more information.\n\n      if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {\n        if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft && scrollLeft !== this._scrollingContainer.scrollLeft) {\n          this._scrollingContainer.scrollLeft = scrollLeft;\n        }\n\n        if (scrollTop >= 0 && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop) {\n          this._scrollingContainer.scrollTop = scrollTop;\n        }\n      } // Update scroll offsets if the current :scrollToCell values requires it\n\n\n      if (height !== prevProps.height || scrollToAlignment !== prevProps.scrollToAlignment || scrollToCell !== prevProps.scrollToCell || width !== prevProps.width) {\n        this._updateScrollPositionForScrollToCell();\n      } // Update onRowsRendered callback if start/stop indices have changed\n\n\n      this._invokeOnSectionRenderedHelper();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (this._disablePointerEventsTimeoutId) {\n        clearTimeout(this._disablePointerEventsTimeoutId);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props6 = this.props,\n          autoHeight = _this$props6.autoHeight,\n          cellCount = _this$props6.cellCount,\n          cellLayoutManager = _this$props6.cellLayoutManager,\n          className = _this$props6.className,\n          height = _this$props6.height,\n          horizontalOverscanSize = _this$props6.horizontalOverscanSize,\n          id = _this$props6.id,\n          noContentRenderer = _this$props6.noContentRenderer,\n          style = _this$props6.style,\n          verticalOverscanSize = _this$props6.verticalOverscanSize,\n          width = _this$props6.width;\n      var _this$state3 = this.state,\n          isScrolling = _this$state3.isScrolling,\n          scrollLeft = _this$state3.scrollLeft,\n          scrollTop = _this$state3.scrollTop; // Memoization reset\n\n      if (this._lastRenderedCellCount !== cellCount || this._lastRenderedCellLayoutManager !== cellLayoutManager || this._calculateSizeAndPositionDataOnNextUpdate) {\n        this._lastRenderedCellCount = cellCount;\n        this._lastRenderedCellLayoutManager = cellLayoutManager;\n        this._calculateSizeAndPositionDataOnNextUpdate = false;\n        cellLayoutManager.calculateSizeAndPositionData();\n      }\n\n      var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(),\n          totalHeight = _cellLayoutManager$ge3.height,\n          totalWidth = _cellLayoutManager$ge3.width; // Safely expand the rendered area by the specified overscan amount\n\n\n      var left = Math.max(0, scrollLeft - horizontalOverscanSize);\n      var top = Math.max(0, scrollTop - verticalOverscanSize);\n      var right = Math.min(totalWidth, scrollLeft + width + horizontalOverscanSize);\n      var bottom = Math.min(totalHeight, scrollTop + height + verticalOverscanSize);\n      var childrenToDisplay = height > 0 && width > 0 ? cellLayoutManager.cellRenderers({\n        height: bottom - top,\n        isScrolling: isScrolling,\n        width: right - left,\n        x: left,\n        y: top\n      }) : [];\n      var collectionStyle = {\n        boxSizing: 'border-box',\n        direction: 'ltr',\n        height: autoHeight ? 'auto' : height,\n        position: 'relative',\n        WebkitOverflowScrolling: 'touch',\n        width: width,\n        willChange: 'transform'\n      }; // Force browser to hide scrollbars when we know they aren't necessary.\n      // Otherwise once scrollbars appear they may not disappear again.\n      // For more info see issue #116\n\n      var verticalScrollBarSize = totalHeight > height ? this._scrollbarSize : 0;\n      var horizontalScrollBarSize = totalWidth > width ? this._scrollbarSize : 0; // Also explicitly init styles to 'auto' if scrollbars are required.\n      // This works around an obscure edge case where external CSS styles have not yet been loaded,\n      // But an initial scroll index of offset is set as an external prop.\n      // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.\n      // This was originally reported via clauderic/react-infinite-calendar/issues/23\n\n      collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n      collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n      return React.createElement(\"div\", {\n        ref: this._setScrollingContainerRef,\n        \"aria-label\": this.props['aria-label'],\n        className: clsx('ReactVirtualized__Collection', className),\n        id: id,\n        onScroll: this._onScroll,\n        role: \"grid\",\n        style: _objectSpread({}, collectionStyle, {}, style),\n        tabIndex: 0\n      }, cellCount > 0 && React.createElement(\"div\", {\n        className: \"ReactVirtualized__Collection__innerScrollContainer\",\n        style: {\n          height: totalHeight,\n          maxHeight: totalHeight,\n          maxWidth: totalWidth,\n          overflow: 'hidden',\n          pointerEvents: isScrolling ? 'none' : '',\n          width: totalWidth\n        }\n      }, childrenToDisplay), cellCount === 0 && noContentRenderer());\n    }\n    /* ---------------------------- Helper methods ---------------------------- */\n\n    /**\n     * Sets an :isScrolling flag for a small window of time.\n     * This flag is used to disable pointer events on the scrollable portion of the Collection.\n     * This prevents jerky/stuttery mouse-wheel scrolling.\n     */\n\n  }, {\n    key: \"_enablePointerEventsAfterDelay\",\n    value: function _enablePointerEventsAfterDelay() {\n      var _this2 = this;\n\n      if (this._disablePointerEventsTimeoutId) {\n        clearTimeout(this._disablePointerEventsTimeoutId);\n      }\n\n      this._disablePointerEventsTimeoutId = setTimeout(function () {\n        var isScrollingChange = _this2.props.isScrollingChange;\n        isScrollingChange(false);\n        _this2._disablePointerEventsTimeoutId = null;\n\n        _this2.setState({\n          isScrolling: false\n        });\n      }, IS_SCROLLING_TIMEOUT);\n    }\n  }, {\n    key: \"_invokeOnScrollMemoizer\",\n    value: function _invokeOnScrollMemoizer(_ref) {\n      var _this3 = this;\n\n      var scrollLeft = _ref.scrollLeft,\n          scrollTop = _ref.scrollTop,\n          totalHeight = _ref.totalHeight,\n          totalWidth = _ref.totalWidth;\n\n      this._onScrollMemoizer({\n        callback: function callback(_ref2) {\n          var scrollLeft = _ref2.scrollLeft,\n              scrollTop = _ref2.scrollTop;\n          var _this3$props = _this3.props,\n              height = _this3$props.height,\n              onScroll = _this3$props.onScroll,\n              width = _this3$props.width;\n          onScroll({\n            clientHeight: height,\n            clientWidth: width,\n            scrollHeight: totalHeight,\n            scrollLeft: scrollLeft,\n            scrollTop: scrollTop,\n            scrollWidth: totalWidth\n          });\n        },\n        indices: {\n          scrollLeft: scrollLeft,\n          scrollTop: scrollTop\n        }\n      });\n    }\n  }, {\n    key: \"_setScrollPosition\",\n    value: function _setScrollPosition(_ref3) {\n      var scrollLeft = _ref3.scrollLeft,\n          scrollTop = _ref3.scrollTop;\n      var newState = {\n        scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n      };\n\n      if (scrollLeft >= 0) {\n        newState.scrollLeft = scrollLeft;\n      }\n\n      if (scrollTop >= 0) {\n        newState.scrollTop = scrollTop;\n      }\n\n      if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {\n        this.setState(newState);\n      }\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps, prevState) {\n      if (nextProps.cellCount === 0 && (prevState.scrollLeft !== 0 || prevState.scrollTop !== 0)) {\n        return {\n          scrollLeft: 0,\n          scrollTop: 0,\n          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n        };\n      } else if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {\n        return {\n          scrollLeft: nextProps.scrollLeft != null ? nextProps.scrollLeft : prevState.scrollLeft,\n          scrollTop: nextProps.scrollTop != null ? nextProps.scrollTop : prevState.scrollTop,\n          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n        };\n      }\n\n      return null;\n    }\n  }]);\n\n  return CollectionView;\n}(React.PureComponent);\n\n_defineProperty(CollectionView, \"defaultProps\", {\n  'aria-label': 'grid',\n  horizontalOverscanSize: 0,\n  noContentRenderer: function noContentRenderer() {\n    return null;\n  },\n  onScroll: function onScroll() {\n    return null;\n  },\n  onSectionRendered: function onSectionRendered() {\n    return null;\n  },\n  scrollToAlignment: 'auto',\n  scrollToCell: -1,\n  style: {},\n  verticalOverscanSize: 0\n});\n\nCollectionView.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  'aria-label': PropTypes.string,\n\n  /**\n   * Removes fixed height from the scrollingContainer so that the total height\n   * of rows can stretch the window. Intended for use with WindowScroller\n   */\n  autoHeight: PropTypes.bool,\n\n  /**\n   * Number of cells in collection.\n   */\n  cellCount: PropTypes.number.isRequired,\n\n  /**\n   * Calculates cell sizes and positions and manages rendering the appropriate cells given a specified window.\n   */\n  cellLayoutManager: PropTypes.object.isRequired,\n\n  /**\n   * Optional custom CSS class name to attach to root Collection element.\n   */\n  className: PropTypes.string,\n\n  /**\n   * Height of Collection; this property determines the number of visible (vs virtualized) rows.\n   */\n  height: PropTypes.number.isRequired,\n\n  /**\n   * Optional custom id to attach to root Collection element.\n   */\n  id: PropTypes.string,\n\n  /**\n   * Enables the `Collection` to horiontally \"overscan\" its content similar to how `Grid` does.\n   * This can reduce flicker around the edges when a user scrolls quickly.\n   */\n  horizontalOverscanSize: PropTypes.number.isRequired,\n  isScrollingChange: PropTypes.func,\n\n  /**\n   * Optional renderer to be used in place of rows when either :rowCount or :cellCount is 0.\n   */\n  noContentRenderer: PropTypes.func.isRequired,\n\n  /**\n   * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n   * This callback can be used to sync scrolling between lists, tables, or grids.\n   * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void\n   */\n  onScroll: PropTypes.func.isRequired,\n\n  /**\n   * Callback invoked with information about the section of the Collection that was just rendered.\n   * This callback is passed a named :indices parameter which is an Array of the most recently rendered section indices.\n   */\n  onSectionRendered: PropTypes.func.isRequired,\n\n  /**\n   * Horizontal offset.\n   */\n  scrollLeft: PropTypes.number,\n\n  /**\n   * Controls scroll-to-cell behavior of the Grid.\n   * The default (\"auto\") scrolls the least amount possible to ensure that the specified cell is fully visible.\n   * Use \"start\" to align cells to the top/left of the Grid and \"end\" to align bottom/right.\n   */\n  scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,\n\n  /**\n   * Cell index to ensure visible (by forcefully scrolling if necessary).\n   */\n  scrollToCell: PropTypes.number.isRequired,\n\n  /**\n   * Vertical offset.\n   */\n  scrollTop: PropTypes.number,\n\n  /**\n   * Optional custom inline style to attach to root Collection element.\n   */\n  style: PropTypes.object,\n\n  /**\n   * Enables the `Collection` to vertically \"overscan\" its content similar to how `Grid` does.\n   * This can reduce flicker around the edges when a user scrolls quickly.\n   */\n  verticalOverscanSize: PropTypes.number.isRequired,\n\n  /**\n   * Width of Collection; this property determines the number of visible (vs virtualized) columns.\n   */\n  width: PropTypes.number.isRequired\n} : {};\npolyfill(CollectionView);\nexport default CollectionView;","var bpfrpt_proptype_Index = process.env.NODE_ENV === 'production' ? null : {\n  \"index\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_PositionInfo = process.env.NODE_ENV === 'production' ? null : {\n  \"x\": PropTypes.number.isRequired,\n  \"y\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_ScrollPosition = process.env.NODE_ENV === 'production' ? null : {\n  \"scrollLeft\": PropTypes.number.isRequired,\n  \"scrollTop\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_SizeAndPositionInfo = process.env.NODE_ENV === 'production' ? null : {\n  \"height\": PropTypes.number.isRequired,\n  \"width\": PropTypes.number.isRequired,\n  \"x\": PropTypes.number.isRequired,\n  \"y\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_SizeInfo = process.env.NODE_ENV === 'production' ? null : {\n  \"height\": PropTypes.number.isRequired,\n  \"width\": PropTypes.number.isRequired\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_Index };\nexport { bpfrpt_proptype_PositionInfo };\nexport { bpfrpt_proptype_ScrollPosition };\nexport { bpfrpt_proptype_SizeAndPositionInfo };\nexport { bpfrpt_proptype_SizeInfo };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\n\n/**\n * A section of the Window.\n * Window Sections are used to group nearby cells.\n * This enables us to more quickly determine which cells to display in a given region of the Window.\n * Sections have a fixed size and contain 0 to many cells (tracked by their indices).\n */\nvar Section =\n/*#__PURE__*/\nfunction () {\n  function Section(_ref) {\n    var height = _ref.height,\n        width = _ref.width,\n        x = _ref.x,\n        y = _ref.y;\n\n    _classCallCheck(this, Section);\n\n    this.height = height;\n    this.width = width;\n    this.x = x;\n    this.y = y;\n    this._indexMap = {};\n    this._indices = [];\n  }\n  /** Add a cell to this section. */\n\n\n  _createClass(Section, [{\n    key: \"addCellIndex\",\n    value: function addCellIndex(_ref2) {\n      var index = _ref2.index;\n\n      if (!this._indexMap[index]) {\n        this._indexMap[index] = true;\n\n        this._indices.push(index);\n      }\n    }\n    /** Get all cell indices that have been added to this section. */\n\n  }, {\n    key: \"getCellIndices\",\n    value: function getCellIndices() {\n      return this._indices;\n    }\n    /** Intended for debugger/test purposes only */\n\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      return \"\".concat(this.x, \",\").concat(this.y, \" \").concat(this.width, \"x\").concat(this.height);\n    }\n  }]);\n\n  return Section;\n}();\n\nexport { Section as default };\nimport { bpfrpt_proptype_Index } from \"./types\";\nimport { bpfrpt_proptype_SizeAndPositionInfo } from \"./types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\n\n/**\n * Window Sections are used to group nearby cells.\n * This enables us to more quickly determine which cells to display in a given region of the Window.\n * \n */\nimport Section from './Section';\nvar SECTION_SIZE = 100;\n\n/**\n * Contains 0 to many Sections.\n * Grows (and adds Sections) dynamically as cells are registered.\n * Automatically adds cells to the appropriate Section(s).\n */\nvar SectionManager =\n/*#__PURE__*/\nfunction () {\n  function SectionManager() {\n    var sectionSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SECTION_SIZE;\n\n    _classCallCheck(this, SectionManager);\n\n    this._sectionSize = sectionSize;\n    this._cellMetadata = [];\n    this._sections = {};\n  }\n  /**\n   * Gets all cell indices contained in the specified region.\n   * A region may encompass 1 or more Sections.\n   */\n\n\n  _createClass(SectionManager, [{\n    key: \"getCellIndices\",\n    value: function getCellIndices(_ref) {\n      var height = _ref.height,\n          width = _ref.width,\n          x = _ref.x,\n          y = _ref.y;\n      var indices = {};\n      this.getSections({\n        height: height,\n        width: width,\n        x: x,\n        y: y\n      }).forEach(function (section) {\n        return section.getCellIndices().forEach(function (index) {\n          indices[index] = index;\n        });\n      }); // Object keys are strings; this function returns numbers\n\n      return Object.keys(indices).map(function (index) {\n        return indices[index];\n      });\n    }\n    /** Get size and position information for the cell specified. */\n\n  }, {\n    key: \"getCellMetadata\",\n    value: function getCellMetadata(_ref2) {\n      var index = _ref2.index;\n      return this._cellMetadata[index];\n    }\n    /** Get all Sections overlapping the specified region. */\n\n  }, {\n    key: \"getSections\",\n    value: function getSections(_ref3) {\n      var height = _ref3.height,\n          width = _ref3.width,\n          x = _ref3.x,\n          y = _ref3.y;\n      var sectionXStart = Math.floor(x / this._sectionSize);\n      var sectionXStop = Math.floor((x + width - 1) / this._sectionSize);\n      var sectionYStart = Math.floor(y / this._sectionSize);\n      var sectionYStop = Math.floor((y + height - 1) / this._sectionSize);\n      var sections = [];\n\n      for (var sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) {\n        for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {\n          var key = \"\".concat(sectionX, \".\").concat(sectionY);\n\n          if (!this._sections[key]) {\n            this._sections[key] = new Section({\n              height: this._sectionSize,\n              width: this._sectionSize,\n              x: sectionX * this._sectionSize,\n              y: sectionY * this._sectionSize\n            });\n          }\n\n          sections.push(this._sections[key]);\n        }\n      }\n\n      return sections;\n    }\n    /** Total number of Sections based on the currently registered cells. */\n\n  }, {\n    key: \"getTotalSectionCount\",\n    value: function getTotalSectionCount() {\n      return Object.keys(this._sections).length;\n    }\n    /** Intended for debugger/test purposes only */\n\n  }, {\n    key: \"toString\",\n    value: function toString() {\n      var _this = this;\n\n      return Object.keys(this._sections).map(function (index) {\n        return _this._sections[index].toString();\n      });\n    }\n    /** Adds a cell to the appropriate Sections and registers it metadata for later retrievable. */\n\n  }, {\n    key: \"registerCell\",\n    value: function registerCell(_ref4) {\n      var cellMetadatum = _ref4.cellMetadatum,\n          index = _ref4.index;\n      this._cellMetadata[index] = cellMetadatum;\n      this.getSections(cellMetadatum).forEach(function (section) {\n        return section.addCellIndex({\n          index: index\n        });\n      });\n    }\n  }]);\n\n  return SectionManager;\n}();\n\nexport { SectionManager as default };\nimport { bpfrpt_proptype_Index } from \"./types\";\nimport { bpfrpt_proptype_SizeAndPositionInfo } from \"./types\";","/**\n * Determines a new offset that ensures a certain cell is visible, given the current offset.\n * If the cell is already visible then the current offset will be returned.\n * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n *\n * @param align Desired alignment within container; one of \"auto\" (default), \"start\", or \"end\"\n * @param cellOffset Offset (x or y) position for cell\n * @param cellSize Size (width or height) of cell\n * @param containerSize Total size (width or height) of the container\n * @param currentOffset Container's current (x or y) offset\n * @return Offset to use to ensure the specified cell is visible\n */\nexport default function getUpdatedOffsetForIndex(_ref) {\n  var _ref$align = _ref.align,\n      align = _ref$align === void 0 ? 'auto' : _ref$align,\n      cellOffset = _ref.cellOffset,\n      cellSize = _ref.cellSize,\n      containerSize = _ref.containerSize,\n      currentOffset = _ref.currentOffset;\n  var maxOffset = cellOffset;\n  var minOffset = maxOffset - containerSize + cellSize;\n\n  switch (align) {\n    case 'start':\n      return maxOffset;\n\n    case 'end':\n      return minOffset;\n\n    case 'center':\n      return maxOffset - (containerSize - cellSize) / 2;\n\n    default:\n      return Math.max(minOffset, Math.min(maxOffset, currentOffset));\n  }\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport CollectionView from './CollectionView';\nimport _calculateSizeAndPositionData from './utils/calculateSizeAndPositionData';\nimport getUpdatedOffsetForIndex from '../utils/getUpdatedOffsetForIndex';\n\n/**\n * Renders scattered or non-linear data.\n * Unlike Grid, which renders checkerboard data, Collection can render arbitrarily positioned- even overlapping- data.\n */\nvar Collection =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(Collection, _React$PureComponent);\n\n  function Collection(props, context) {\n    var _this;\n\n    _classCallCheck(this, Collection);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(Collection).call(this, props, context));\n    _this._cellMetadata = [];\n    _this._lastRenderedCellIndices = []; // Cell cache during scroll (for performance)\n\n    _this._cellCache = [];\n    _this._isScrollingChange = _this._isScrollingChange.bind(_assertThisInitialized(_this));\n    _this._setCollectionViewRef = _this._setCollectionViewRef.bind(_assertThisInitialized(_this));\n    return _this;\n  }\n\n  _createClass(Collection, [{\n    key: \"forceUpdate\",\n    value: function forceUpdate() {\n      if (this._collectionView !== undefined) {\n        this._collectionView.forceUpdate();\n      }\n    }\n    /** See Collection#recomputeCellSizesAndPositions */\n\n  }, {\n    key: \"recomputeCellSizesAndPositions\",\n    value: function recomputeCellSizesAndPositions() {\n      this._cellCache = [];\n\n      this._collectionView.recomputeCellSizesAndPositions();\n    }\n    /** React lifecycle methods */\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      var props = _extends({}, this.props);\n\n      return React.createElement(CollectionView, _extends({\n        cellLayoutManager: this,\n        isScrollingChange: this._isScrollingChange,\n        ref: this._setCollectionViewRef\n      }, props));\n    }\n    /** CellLayoutManager interface */\n\n  }, {\n    key: \"calculateSizeAndPositionData\",\n    value: function calculateSizeAndPositionData() {\n      var _this$props = this.props,\n          cellCount = _this$props.cellCount,\n          cellSizeAndPositionGetter = _this$props.cellSizeAndPositionGetter,\n          sectionSize = _this$props.sectionSize;\n\n      var data = _calculateSizeAndPositionData({\n        cellCount: cellCount,\n        cellSizeAndPositionGetter: cellSizeAndPositionGetter,\n        sectionSize: sectionSize\n      });\n\n      this._cellMetadata = data.cellMetadata;\n      this._sectionManager = data.sectionManager;\n      this._height = data.height;\n      this._width = data.width;\n    }\n    /**\n     * Returns the most recently rendered set of cell indices.\n     */\n\n  }, {\n    key: \"getLastRenderedIndices\",\n    value: function getLastRenderedIndices() {\n      return this._lastRenderedCellIndices;\n    }\n    /**\n     * Calculates the minimum amount of change from the current scroll position to ensure the specified cell is (fully) visible.\n     */\n\n  }, {\n    key: \"getScrollPositionForCell\",\n    value: function getScrollPositionForCell(_ref) {\n      var align = _ref.align,\n          cellIndex = _ref.cellIndex,\n          height = _ref.height,\n          scrollLeft = _ref.scrollLeft,\n          scrollTop = _ref.scrollTop,\n          width = _ref.width;\n      var cellCount = this.props.cellCount;\n\n      if (cellIndex >= 0 && cellIndex < cellCount) {\n        var cellMetadata = this._cellMetadata[cellIndex];\n        scrollLeft = getUpdatedOffsetForIndex({\n          align: align,\n          cellOffset: cellMetadata.x,\n          cellSize: cellMetadata.width,\n          containerSize: width,\n          currentOffset: scrollLeft,\n          targetIndex: cellIndex\n        });\n        scrollTop = getUpdatedOffsetForIndex({\n          align: align,\n          cellOffset: cellMetadata.y,\n          cellSize: cellMetadata.height,\n          containerSize: height,\n          currentOffset: scrollTop,\n          targetIndex: cellIndex\n        });\n      }\n\n      return {\n        scrollLeft: scrollLeft,\n        scrollTop: scrollTop\n      };\n    }\n  }, {\n    key: \"getTotalSize\",\n    value: function getTotalSize() {\n      return {\n        height: this._height,\n        width: this._width\n      };\n    }\n  }, {\n    key: \"cellRenderers\",\n    value: function cellRenderers(_ref2) {\n      var _this2 = this;\n\n      var height = _ref2.height,\n          isScrolling = _ref2.isScrolling,\n          width = _ref2.width,\n          x = _ref2.x,\n          y = _ref2.y;\n      var _this$props2 = this.props,\n          cellGroupRenderer = _this$props2.cellGroupRenderer,\n          cellRenderer = _this$props2.cellRenderer; // Store for later calls to getLastRenderedIndices()\n\n      this._lastRenderedCellIndices = this._sectionManager.getCellIndices({\n        height: height,\n        width: width,\n        x: x,\n        y: y\n      });\n      return cellGroupRenderer({\n        cellCache: this._cellCache,\n        cellRenderer: cellRenderer,\n        cellSizeAndPositionGetter: function cellSizeAndPositionGetter(_ref3) {\n          var index = _ref3.index;\n          return _this2._sectionManager.getCellMetadata({\n            index: index\n          });\n        },\n        indices: this._lastRenderedCellIndices,\n        isScrolling: isScrolling\n      });\n    }\n  }, {\n    key: \"_isScrollingChange\",\n    value: function _isScrollingChange(isScrolling) {\n      if (!isScrolling) {\n        this._cellCache = [];\n      }\n    }\n  }, {\n    key: \"_setCollectionViewRef\",\n    value: function _setCollectionViewRef(ref) {\n      this._collectionView = ref;\n    }\n  }]);\n\n  return Collection;\n}(React.PureComponent);\n\n_defineProperty(Collection, \"defaultProps\", {\n  'aria-label': 'grid',\n  cellGroupRenderer: defaultCellGroupRenderer\n});\n\nexport { Collection as default };\nCollection.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  'aria-label': PropTypes.string,\n\n  /**\n   * Number of cells in Collection.\n   */\n  cellCount: PropTypes.number.isRequired,\n\n  /**\n   * Responsible for rendering a group of cells given their indices.\n   * Should implement the following interface: ({\n   *   cellSizeAndPositionGetter:Function,\n   *   indices: Array<number>,\n   *   cellRenderer: Function\n   * }): Array<PropTypes.node>\n   */\n  cellGroupRenderer: PropTypes.func.isRequired,\n\n  /**\n   * Responsible for rendering a cell given an row and column index.\n   * Should implement the following interface: ({ index: number, key: string, style: object }): PropTypes.element\n   */\n  cellRenderer: PropTypes.func.isRequired,\n\n  /**\n   * Callback responsible for returning size and offset/position information for a given cell (index).\n   * ({ index: number }): { height: number, width: number, x: number, y: number }\n   */\n  cellSizeAndPositionGetter: PropTypes.func.isRequired,\n\n  /**\n   * Optionally override the size of the sections a Collection's cells are split into.\n   */\n  sectionSize: PropTypes.number\n} : {};\n\nfunction defaultCellGroupRenderer(_ref4) {\n  var cellCache = _ref4.cellCache,\n      cellRenderer = _ref4.cellRenderer,\n      cellSizeAndPositionGetter = _ref4.cellSizeAndPositionGetter,\n      indices = _ref4.indices,\n      isScrolling = _ref4.isScrolling;\n  return indices.map(function (index) {\n    var cellMetadata = cellSizeAndPositionGetter({\n      index: index\n    });\n    var cellRendererProps = {\n      index: index,\n      isScrolling: isScrolling,\n      key: index,\n      style: {\n        height: cellMetadata.height,\n        left: cellMetadata.x,\n        position: 'absolute',\n        top: cellMetadata.y,\n        width: cellMetadata.width\n      }\n    }; // Avoid re-creating cells while scrolling.\n    // This can lead to the same cell being created many times and can cause performance issues for \"heavy\" cells.\n    // If a scroll is in progress- cache and reuse cells.\n    // This cache will be thrown away once scrolling complets.\n\n    if (isScrolling) {\n      if (!(index in cellCache)) {\n        cellCache[index] = cellRenderer(cellRendererProps);\n      }\n\n      return cellCache[index];\n    } else {\n      return cellRenderer(cellRendererProps);\n    }\n  }).filter(function (renderedCell) {\n    return !!renderedCell;\n  });\n}\n\nimport { bpfrpt_proptype_ScrollPosition } from \"./types\";\nimport { bpfrpt_proptype_SizeInfo } from \"./types\";","import SectionManager from '../SectionManager';\nexport default function calculateSizeAndPositionData(_ref) {\n  var cellCount = _ref.cellCount,\n      cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter,\n      sectionSize = _ref.sectionSize;\n  var cellMetadata = [];\n  var sectionManager = new SectionManager(sectionSize);\n  var height = 0;\n  var width = 0;\n\n  for (var index = 0; index < cellCount; index++) {\n    var cellMetadatum = cellSizeAndPositionGetter({\n      index: index\n    });\n\n    if (cellMetadatum.height == null || isNaN(cellMetadatum.height) || cellMetadatum.width == null || isNaN(cellMetadatum.width) || cellMetadatum.x == null || isNaN(cellMetadatum.x) || cellMetadatum.y == null || isNaN(cellMetadatum.y)) {\n      throw Error(\"Invalid metadata returned for cell \".concat(index, \":\\n        x:\").concat(cellMetadatum.x, \", y:\").concat(cellMetadatum.y, \", width:\").concat(cellMetadatum.width, \", height:\").concat(cellMetadatum.height));\n    }\n\n    height = Math.max(height, cellMetadatum.y + cellMetadatum.height);\n    width = Math.max(width, cellMetadatum.x + cellMetadatum.width);\n    cellMetadata[index] = cellMetadatum;\n    sectionManager.registerCell({\n      cellMetadatum: cellMetadatum,\n      index: index\n    });\n  }\n\n  return {\n    cellMetadata: cellMetadata,\n    height: height,\n    sectionManager: sectionManager,\n    width: width\n  };\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n/**\n * High-order component that auto-calculates column-widths for `Grid` cells.\n */\n\nvar ColumnSizer =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(ColumnSizer, _React$PureComponent);\n\n  function ColumnSizer(props, context) {\n    var _this;\n\n    _classCallCheck(this, ColumnSizer);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(ColumnSizer).call(this, props, context));\n    _this._registerChild = _this._registerChild.bind(_assertThisInitialized(_this));\n    return _this;\n  }\n\n  _createClass(ColumnSizer, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props = this.props,\n          columnMaxWidth = _this$props.columnMaxWidth,\n          columnMinWidth = _this$props.columnMinWidth,\n          columnCount = _this$props.columnCount,\n          width = _this$props.width;\n\n      if (columnMaxWidth !== prevProps.columnMaxWidth || columnMinWidth !== prevProps.columnMinWidth || columnCount !== prevProps.columnCount || width !== prevProps.width) {\n        if (this._registeredChild) {\n          this._registeredChild.recomputeGridSize();\n        }\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          children = _this$props2.children,\n          columnMaxWidth = _this$props2.columnMaxWidth,\n          columnMinWidth = _this$props2.columnMinWidth,\n          columnCount = _this$props2.columnCount,\n          width = _this$props2.width;\n      var safeColumnMinWidth = columnMinWidth || 1;\n      var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width;\n      var columnWidth = width / columnCount;\n      columnWidth = Math.max(safeColumnMinWidth, columnWidth);\n      columnWidth = Math.min(safeColumnMaxWidth, columnWidth);\n      columnWidth = Math.floor(columnWidth);\n      var adjustedWidth = Math.min(width, columnWidth * columnCount);\n      return children({\n        adjustedWidth: adjustedWidth,\n        columnWidth: columnWidth,\n        getColumnWidth: function getColumnWidth() {\n          return columnWidth;\n        },\n        registerChild: this._registerChild\n      });\n    }\n  }, {\n    key: \"_registerChild\",\n    value: function _registerChild(child) {\n      if (child && typeof child.recomputeGridSize !== 'function') {\n        throw Error('Unexpected child type registered; only Grid/MultiGrid children are supported.');\n      }\n\n      this._registeredChild = child;\n\n      if (this._registeredChild) {\n        this._registeredChild.recomputeGridSize();\n      }\n    }\n  }]);\n\n  return ColumnSizer;\n}(React.PureComponent);\n\nexport { ColumnSizer as default };\nColumnSizer.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Function responsible for rendering a virtualized Grid.\n   * This function should implement the following signature:\n   * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element\n   *\n   * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property.\n   * The :registerChild should be passed to the Grid's :ref property.\n   * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns.\n   */\n  children: PropTypes.func.isRequired,\n\n  /** Optional maximum allowed column width */\n  columnMaxWidth: PropTypes.number,\n\n  /** Optional minimum allowed column width */\n  columnMinWidth: PropTypes.number,\n\n  /** Number of columns in Grid or Table child */\n  columnCount: PropTypes.number.isRequired,\n\n  /** Width of Grid or Table child */\n  width: PropTypes.number.isRequired\n} : {};","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n  return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\n/**\n * Higher-order component that manages lazy-loading for \"infinite\" data.\n * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.\n * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.\n */\n\nvar InfiniteLoader =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(InfiniteLoader, _React$PureComponent);\n\n  function InfiniteLoader(props, context) {\n    var _this;\n\n    _classCallCheck(this, InfiniteLoader);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(InfiniteLoader).call(this, props, context));\n    _this._loadMoreRowsMemoizer = createCallbackMemoizer();\n    _this._onRowsRendered = _this._onRowsRendered.bind(_assertThisInitialized(_this));\n    _this._registerChild = _this._registerChild.bind(_assertThisInitialized(_this));\n    return _this;\n  }\n\n  _createClass(InfiniteLoader, [{\n    key: \"resetLoadMoreRowsCache\",\n    value: function resetLoadMoreRowsCache(autoReload) {\n      this._loadMoreRowsMemoizer = createCallbackMemoizer();\n\n      if (autoReload) {\n        this._doStuff(this._lastRenderedStartIndex, this._lastRenderedStopIndex);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var children = this.props.children;\n      return children({\n        onRowsRendered: this._onRowsRendered,\n        registerChild: this._registerChild\n      });\n    }\n  }, {\n    key: \"_loadUnloadedRanges\",\n    value: function _loadUnloadedRanges(unloadedRanges) {\n      var _this2 = this;\n\n      var loadMoreRows = this.props.loadMoreRows;\n      unloadedRanges.forEach(function (unloadedRange) {\n        var promise = loadMoreRows(unloadedRange);\n\n        if (promise) {\n          promise.then(function () {\n            // Refresh the visible rows if any of them have just been loaded.\n            // Otherwise they will remain in their unloaded visual state.\n            if (isRangeVisible({\n              lastRenderedStartIndex: _this2._lastRenderedStartIndex,\n              lastRenderedStopIndex: _this2._lastRenderedStopIndex,\n              startIndex: unloadedRange.startIndex,\n              stopIndex: unloadedRange.stopIndex\n            })) {\n              if (_this2._registeredChild) {\n                forceUpdateReactVirtualizedComponent(_this2._registeredChild, _this2._lastRenderedStartIndex);\n              }\n            }\n          });\n        }\n      });\n    }\n  }, {\n    key: \"_onRowsRendered\",\n    value: function _onRowsRendered(_ref) {\n      var startIndex = _ref.startIndex,\n          stopIndex = _ref.stopIndex;\n      this._lastRenderedStartIndex = startIndex;\n      this._lastRenderedStopIndex = stopIndex;\n\n      this._doStuff(startIndex, stopIndex);\n    }\n  }, {\n    key: \"_doStuff\",\n    value: function _doStuff(startIndex, stopIndex) {\n      var _ref2,\n          _this3 = this;\n\n      var _this$props = this.props,\n          isRowLoaded = _this$props.isRowLoaded,\n          minimumBatchSize = _this$props.minimumBatchSize,\n          rowCount = _this$props.rowCount,\n          threshold = _this$props.threshold;\n      var unloadedRanges = scanForUnloadedRanges({\n        isRowLoaded: isRowLoaded,\n        minimumBatchSize: minimumBatchSize,\n        rowCount: rowCount,\n        startIndex: Math.max(0, startIndex - threshold),\n        stopIndex: Math.min(rowCount - 1, stopIndex + threshold)\n      }); // For memoize comparison\n\n      var squashedUnloadedRanges = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(unloadedRanges.map(function (_ref3) {\n        var startIndex = _ref3.startIndex,\n            stopIndex = _ref3.stopIndex;\n        return [startIndex, stopIndex];\n      })));\n\n      this._loadMoreRowsMemoizer({\n        callback: function callback() {\n          _this3._loadUnloadedRanges(unloadedRanges);\n        },\n        indices: {\n          squashedUnloadedRanges: squashedUnloadedRanges\n        }\n      });\n    }\n  }, {\n    key: \"_registerChild\",\n    value: function _registerChild(registeredChild) {\n      this._registeredChild = registeredChild;\n    }\n  }]);\n\n  return InfiniteLoader;\n}(React.PureComponent);\n/**\n * Determines if the specified start/stop range is visible based on the most recently rendered range.\n */\n\n\n_defineProperty(InfiniteLoader, \"defaultProps\", {\n  minimumBatchSize: 10,\n  rowCount: 0,\n  threshold: 15\n});\n\nexport { InfiniteLoader as default };\nInfiniteLoader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Function responsible for rendering a virtualized component.\n   * This function should implement the following signature:\n   * ({ onRowsRendered, registerChild }) => PropTypes.element\n   *\n   * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.\n   * The :registerChild callback should be set as the virtualized component's :ref.\n   */\n  children: PropTypes.func.isRequired,\n\n  /**\n   * Function responsible for tracking the loaded state of each row.\n   * It should implement the following signature: ({ index: number }): boolean\n   */\n  isRowLoaded: PropTypes.func.isRequired,\n\n  /**\n   * Callback to be invoked when more rows must be loaded.\n   * It should implement the following signature: ({ startIndex, stopIndex }): Promise\n   * The returned Promise should be resolved once row data has finished loading.\n   * It will be used to determine when to refresh the list with the newly-loaded data.\n   * This callback may be called multiple times in reaction to a single scroll event.\n   */\n  loadMoreRows: PropTypes.func.isRequired,\n\n  /**\n   * Minimum number of rows to be loaded at a time.\n   * This property can be used to batch requests to reduce HTTP requests.\n   */\n  minimumBatchSize: PropTypes.number.isRequired,\n\n  /**\n   * Number of rows in list; can be arbitrary high number if actual number is unknown.\n   */\n  rowCount: PropTypes.number.isRequired,\n\n  /**\n   * Threshold at which to pre-fetch data.\n   * A threshold X means that data will start loading when a user scrolls within X rows.\n   * This value defaults to 15.\n   */\n  threshold: PropTypes.number.isRequired\n} : {};\nexport function isRangeVisible(_ref4) {\n  var lastRenderedStartIndex = _ref4.lastRenderedStartIndex,\n      lastRenderedStopIndex = _ref4.lastRenderedStopIndex,\n      startIndex = _ref4.startIndex,\n      stopIndex = _ref4.stopIndex;\n  return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);\n}\n/**\n * Returns all of the ranges within a larger range that contain unloaded rows.\n */\n\nexport function scanForUnloadedRanges(_ref5) {\n  var isRowLoaded = _ref5.isRowLoaded,\n      minimumBatchSize = _ref5.minimumBatchSize,\n      rowCount = _ref5.rowCount,\n      startIndex = _ref5.startIndex,\n      stopIndex = _ref5.stopIndex;\n  var unloadedRanges = [];\n  var rangeStartIndex = null;\n  var rangeStopIndex = null;\n\n  for (var index = startIndex; index <= stopIndex; index++) {\n    var loaded = isRowLoaded({\n      index: index\n    });\n\n    if (!loaded) {\n      rangeStopIndex = index;\n\n      if (rangeStartIndex === null) {\n        rangeStartIndex = index;\n      }\n    } else if (rangeStopIndex !== null) {\n      unloadedRanges.push({\n        startIndex: rangeStartIndex,\n        stopIndex: rangeStopIndex\n      });\n      rangeStartIndex = rangeStopIndex = null;\n    }\n  } // If :rangeStopIndex is not null it means we haven't ran out of unloaded rows.\n  // Scan forward to try filling our :minimumBatchSize.\n\n\n  if (rangeStopIndex !== null) {\n    var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), rowCount - 1);\n\n    for (var _index = rangeStopIndex + 1; _index <= potentialStopIndex; _index++) {\n      if (!isRowLoaded({\n        index: _index\n      })) {\n        rangeStopIndex = _index;\n      } else {\n        break;\n      }\n    }\n\n    unloadedRanges.push({\n      startIndex: rangeStartIndex,\n      stopIndex: rangeStopIndex\n    });\n  } // Check to see if our first range ended prematurely.\n  // In this case we should scan backwards to try filling our :minimumBatchSize.\n\n\n  if (unloadedRanges.length) {\n    var firstUnloadedRange = unloadedRanges[0];\n\n    while (firstUnloadedRange.stopIndex - firstUnloadedRange.startIndex + 1 < minimumBatchSize && firstUnloadedRange.startIndex > 0) {\n      var _index2 = firstUnloadedRange.startIndex - 1;\n\n      if (!isRowLoaded({\n        index: _index2\n      })) {\n        firstUnloadedRange.startIndex = _index2;\n      } else {\n        break;\n      }\n    }\n  }\n\n  return unloadedRanges;\n}\n/**\n * Since RV components use shallowCompare we need to force a render (even though props haven't changed).\n * However InfiniteLoader may wrap a Grid or it may wrap a Table or List.\n * In the first case the built-in React forceUpdate() method is sufficient to force a re-render,\n * But in the latter cases we need to use the RV-specific forceUpdateGrid() method.\n * Else the inner Grid will not be re-rendered and visuals may be stale.\n *\n * Additionally, while a Grid is scrolling the cells can be cached,\n * So it's important to invalidate that cache by recalculating sizes\n * before forcing a rerender.\n */\n\nexport function forceUpdateReactVirtualizedComponent(component) {\n  var currentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var recomputeSize = typeof component.recomputeGridSize === 'function' ? component.recomputeGridSize : component.recomputeRowHeights;\n\n  if (recomputeSize) {\n    recomputeSize.call(component, currentIndex);\n  } else {\n    component.forceUpdate();\n  }\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import * as React from 'react';\nvar bpfrpt_proptype_RowRendererParams = process.env.NODE_ENV === 'production' ? null : {\n  \"index\": PropTypes.number.isRequired,\n  \"isScrolling\": PropTypes.bool.isRequired,\n  \"isVisible\": PropTypes.bool.isRequired,\n  \"key\": PropTypes.string.isRequired,\n  \"parent\": PropTypes.object.isRequired,\n  \"style\": PropTypes.object.isRequired\n};\nvar bpfrpt_proptype_RowRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_RenderedRows = process.env.NODE_ENV === 'production' ? null : {\n  \"overscanStartIndex\": PropTypes.number.isRequired,\n  \"overscanStopIndex\": PropTypes.number.isRequired,\n  \"startIndex\": PropTypes.number.isRequired,\n  \"stopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {\n  \"clientHeight\": PropTypes.number.isRequired,\n  \"scrollHeight\": PropTypes.number.isRequired,\n  \"scrollTop\": PropTypes.number.isRequired\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_RowRendererParams };\nexport { bpfrpt_proptype_RowRenderer };\nexport { bpfrpt_proptype_RenderedRows };\nexport { bpfrpt_proptype_Scroll };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nimport Grid, { accessibilityOverscanIndicesGetter } from '../Grid';\nimport * as React from 'react';\nimport clsx from 'clsx';\n/**\n * It is inefficient to create and manage a large list of DOM elements within a scrolling container\n * if only a few of those elements are visible. The primary purpose of this component is to improve\n * performance by only rendering the DOM nodes that a user is able to see based on their current\n * scroll position.\n *\n * This component renders a virtualized list of elements with either fixed or dynamic heights.\n */\n\nvar List = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(List, _React$PureComponent);\n\n  function List() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, List);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(List)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_this), \"Grid\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_cellRenderer\", function (_ref) {\n      var parent = _ref.parent,\n          rowIndex = _ref.rowIndex,\n          style = _ref.style,\n          isScrolling = _ref.isScrolling,\n          isVisible = _ref.isVisible,\n          key = _ref.key;\n      var rowRenderer = _this.props.rowRenderer; // TRICKY The style object is sometimes cached by Grid.\n      // This prevents new style objects from bypassing shallowCompare().\n      // However as of React 16, style props are auto-frozen (at least in dev mode)\n      // Check to make sure we can still modify the style before proceeding.\n      // https://github.com/facebook/react/commit/977357765b44af8ff0cfea327866861073095c12#commitcomment-20648713\n\n      var widthDescriptor = Object.getOwnPropertyDescriptor(style, 'width');\n\n      if (widthDescriptor && widthDescriptor.writable) {\n        // By default, List cells should be 100% width.\n        // This prevents them from flowing under a scrollbar (if present).\n        style.width = '100%';\n      }\n\n      return rowRenderer({\n        index: rowIndex,\n        style: style,\n        isScrolling: isScrolling,\n        isVisible: isVisible,\n        key: key,\n        parent: parent\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_setRef\", function (ref) {\n      _this.Grid = ref;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (_ref2) {\n      var clientHeight = _ref2.clientHeight,\n          scrollHeight = _ref2.scrollHeight,\n          scrollTop = _ref2.scrollTop;\n      var onScroll = _this.props.onScroll;\n      onScroll({\n        clientHeight: clientHeight,\n        scrollHeight: scrollHeight,\n        scrollTop: scrollTop\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onSectionRendered\", function (_ref3) {\n      var rowOverscanStartIndex = _ref3.rowOverscanStartIndex,\n          rowOverscanStopIndex = _ref3.rowOverscanStopIndex,\n          rowStartIndex = _ref3.rowStartIndex,\n          rowStopIndex = _ref3.rowStopIndex;\n      var onRowsRendered = _this.props.onRowsRendered;\n      onRowsRendered({\n        overscanStartIndex: rowOverscanStartIndex,\n        overscanStopIndex: rowOverscanStopIndex,\n        startIndex: rowStartIndex,\n        stopIndex: rowStopIndex\n      });\n    });\n\n    return _this;\n  }\n\n  _createClass(List, [{\n    key: \"forceUpdateGrid\",\n    value: function forceUpdateGrid() {\n      if (this.Grid) {\n        this.Grid.forceUpdate();\n      }\n    }\n    /** See Grid#getOffsetForCell */\n\n  }, {\n    key: \"getOffsetForRow\",\n    value: function getOffsetForRow(_ref4) {\n      var alignment = _ref4.alignment,\n          index = _ref4.index;\n\n      if (this.Grid) {\n        var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({\n          alignment: alignment,\n          rowIndex: index,\n          columnIndex: 0\n        }),\n            scrollTop = _this$Grid$getOffsetF.scrollTop;\n\n        return scrollTop;\n      }\n\n      return 0;\n    }\n    /** CellMeasurer compatibility */\n\n  }, {\n    key: \"invalidateCellSizeAfterRender\",\n    value: function invalidateCellSizeAfterRender(_ref5) {\n      var columnIndex = _ref5.columnIndex,\n          rowIndex = _ref5.rowIndex;\n\n      if (this.Grid) {\n        this.Grid.invalidateCellSizeAfterRender({\n          rowIndex: rowIndex,\n          columnIndex: columnIndex\n        });\n      }\n    }\n    /** See Grid#measureAllCells */\n\n  }, {\n    key: \"measureAllRows\",\n    value: function measureAllRows() {\n      if (this.Grid) {\n        this.Grid.measureAllCells();\n      }\n    }\n    /** CellMeasurer compatibility */\n\n  }, {\n    key: \"recomputeGridSize\",\n    value: function recomputeGridSize() {\n      var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n          _ref6$columnIndex = _ref6.columnIndex,\n          columnIndex = _ref6$columnIndex === void 0 ? 0 : _ref6$columnIndex,\n          _ref6$rowIndex = _ref6.rowIndex,\n          rowIndex = _ref6$rowIndex === void 0 ? 0 : _ref6$rowIndex;\n\n      if (this.Grid) {\n        this.Grid.recomputeGridSize({\n          rowIndex: rowIndex,\n          columnIndex: columnIndex\n        });\n      }\n    }\n    /** See Grid#recomputeGridSize */\n\n  }, {\n    key: \"recomputeRowHeights\",\n    value: function recomputeRowHeights() {\n      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n      if (this.Grid) {\n        this.Grid.recomputeGridSize({\n          rowIndex: index,\n          columnIndex: 0\n        });\n      }\n    }\n    /** See Grid#scrollToPosition */\n\n  }, {\n    key: \"scrollToPosition\",\n    value: function scrollToPosition() {\n      var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n      if (this.Grid) {\n        this.Grid.scrollToPosition({\n          scrollTop: scrollTop\n        });\n      }\n    }\n    /** See Grid#scrollToCell */\n\n  }, {\n    key: \"scrollToRow\",\n    value: function scrollToRow() {\n      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n      if (this.Grid) {\n        this.Grid.scrollToCell({\n          columnIndex: 0,\n          rowIndex: index\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          className = _this$props.className,\n          noRowsRenderer = _this$props.noRowsRenderer,\n          scrollToIndex = _this$props.scrollToIndex,\n          width = _this$props.width;\n      var classNames = clsx('ReactVirtualized__List', className);\n      return React.createElement(Grid, _extends({}, this.props, {\n        autoContainerWidth: true,\n        cellRenderer: this._cellRenderer,\n        className: classNames,\n        columnWidth: width,\n        columnCount: 1,\n        noContentRenderer: noRowsRenderer,\n        onScroll: this._onScroll,\n        onSectionRendered: this._onSectionRendered,\n        ref: this._setRef,\n        scrollToRow: scrollToIndex\n      }));\n    }\n  }]);\n\n  return List;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n  \"aria-label\": PropTypes.string,\n\n  /**\n   * Removes fixed height from the scrollingContainer so that the total height\n   * of rows can stretch the window. Intended for use with WindowScroller\n   */\n  \"autoHeight\": PropTypes.bool.isRequired,\n\n  /** Optional CSS class name */\n  \"className\": PropTypes.string,\n\n  /**\n   * Used to estimate the total height of a List before all of its rows have actually been measured.\n   * The estimated total height is adjusted as rows are rendered.\n   */\n  \"estimatedRowSize\": PropTypes.number.isRequired,\n\n  /** Height constraint for list (determines how many actual rows are rendered) */\n  \"height\": PropTypes.number.isRequired,\n\n  /** Optional renderer to be used in place of rows when rowCount is 0 */\n  \"noRowsRenderer\": function noRowsRenderer() {\n    return (typeof bpfrpt_proptype_NoContentRenderer === \"function\" ? bpfrpt_proptype_NoContentRenderer.isRequired ? bpfrpt_proptype_NoContentRenderer.isRequired : bpfrpt_proptype_NoContentRenderer : PropTypes.shape(bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);\n  },\n\n  /** Callback invoked with information about the slice of rows that were just rendered.  */\n  \"onRowsRendered\": PropTypes.func.isRequired,\n\n  /**\n   * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n   * This callback can be used to sync scrolling between lists, tables, or grids.\n   */\n  \"onScroll\": PropTypes.func.isRequired,\n\n  /** See Grid#overscanIndicesGetter */\n  \"overscanIndicesGetter\": function overscanIndicesGetter() {\n    return (typeof bpfrpt_proptype_OverscanIndicesGetter === \"function\" ? bpfrpt_proptype_OverscanIndicesGetter.isRequired ? bpfrpt_proptype_OverscanIndicesGetter.isRequired : bpfrpt_proptype_OverscanIndicesGetter : PropTypes.shape(bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);\n  },\n\n  /**\n   * Number of rows to render above/below the visible bounds of the list.\n   * These rows can help for smoother scrolling on touch devices.\n   */\n  \"overscanRowCount\": PropTypes.number.isRequired,\n\n  /** Either a fixed row height (number) or a function that returns the height of a row given its index.  */\n  \"rowHeight\": function rowHeight() {\n    return (typeof bpfrpt_proptype_CellSize === \"function\" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n  },\n\n  /** Responsible for rendering a row given an index; ({ index: number }): node */\n  \"rowRenderer\": function rowRenderer() {\n    return (typeof bpfrpt_proptype_RowRenderer === \"function\" ? bpfrpt_proptype_RowRenderer.isRequired ? bpfrpt_proptype_RowRenderer.isRequired : bpfrpt_proptype_RowRenderer : PropTypes.shape(bpfrpt_proptype_RowRenderer).isRequired).apply(this, arguments);\n  },\n\n  /** Number of rows in list. */\n  \"rowCount\": PropTypes.number.isRequired,\n\n  /** See Grid#scrollToAlignment */\n  \"scrollToAlignment\": function scrollToAlignment() {\n    return (typeof bpfrpt_proptype_Alignment === \"function\" ? bpfrpt_proptype_Alignment.isRequired ? bpfrpt_proptype_Alignment.isRequired : bpfrpt_proptype_Alignment : PropTypes.shape(bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);\n  },\n\n  /** Row index to ensure visible (by forcefully scrolling if necessary) */\n  \"scrollToIndex\": PropTypes.number.isRequired,\n\n  /** Vertical offset. */\n  \"scrollTop\": PropTypes.number,\n\n  /** Optional inline style */\n  \"style\": PropTypes.object.isRequired,\n\n  /** Tab index for focus */\n  \"tabIndex\": PropTypes.number,\n\n  /** Width of list */\n  \"width\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(List, \"defaultProps\", {\n  autoHeight: false,\n  estimatedRowSize: 30,\n  onScroll: function onScroll() {},\n  noRowsRenderer: function noRowsRenderer() {\n    return null;\n  },\n  onRowsRendered: function onRowsRendered() {},\n  overscanIndicesGetter: accessibilityOverscanIndicesGetter,\n  overscanRowCount: 10,\n  scrollToAlignment: 'auto',\n  scrollToIndex: -1,\n  style: {}\n});\n\nexport { List as default };\nimport { bpfrpt_proptype_NoContentRenderer } from \"../Grid\";\nimport { bpfrpt_proptype_Alignment } from \"../Grid\";\nimport { bpfrpt_proptype_CellSize } from \"../Grid\";\nimport { bpfrpt_proptype_CellPosition } from \"../Grid\";\nimport { bpfrpt_proptype_OverscanIndicesGetter } from \"../Grid\";\nimport { bpfrpt_proptype_RenderedSection } from \"../Grid\";\nimport { bpfrpt_proptype_CellRendererParams } from \"../Grid\";\nimport { bpfrpt_proptype_Scroll as bpfrpt_proptype_GridScroll } from \"../Grid\";\nimport { bpfrpt_proptype_RowRenderer } from \"./types\";\nimport { bpfrpt_proptype_RenderedRows } from \"./types\";\nimport { bpfrpt_proptype_Scroll } from \"./types\";\nimport PropTypes from \"prop-types\";","/**\n * Binary Search Bounds\n * https://github.com/mikolalysenko/binary-search-bounds\n * Mikola Lysenko\n *\n * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax.\n * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5\n **/\nfunction _GEA(a, l, h, y) {\n  var i = h + 1;\n\n  while (l <= h) {\n    var m = l + h >>> 1,\n        x = a[m];\n\n    if (x >= y) {\n      i = m;\n      h = m - 1;\n    } else {\n      l = m + 1;\n    }\n  }\n\n  return i;\n}\n\nfunction _GEP(a, l, h, y, c) {\n  var i = h + 1;\n\n  while (l <= h) {\n    var m = l + h >>> 1,\n        x = a[m];\n\n    if (c(x, y) >= 0) {\n      i = m;\n      h = m - 1;\n    } else {\n      l = m + 1;\n    }\n  }\n\n  return i;\n}\n\nfunction dispatchBsearchGE(a, y, c, l, h) {\n  if (typeof c === 'function') {\n    return _GEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n  } else {\n    return _GEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n  }\n}\n\nfunction _GTA(a, l, h, y) {\n  var i = h + 1;\n\n  while (l <= h) {\n    var m = l + h >>> 1,\n        x = a[m];\n\n    if (x > y) {\n      i = m;\n      h = m - 1;\n    } else {\n      l = m + 1;\n    }\n  }\n\n  return i;\n}\n\nfunction _GTP(a, l, h, y, c) {\n  var i = h + 1;\n\n  while (l <= h) {\n    var m = l + h >>> 1,\n        x = a[m];\n\n    if (c(x, y) > 0) {\n      i = m;\n      h = m - 1;\n    } else {\n      l = m + 1;\n    }\n  }\n\n  return i;\n}\n\nfunction dispatchBsearchGT(a, y, c, l, h) {\n  if (typeof c === 'function') {\n    return _GTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n  } else {\n    return _GTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n  }\n}\n\nfunction _LTA(a, l, h, y) {\n  var i = l - 1;\n\n  while (l <= h) {\n    var m = l + h >>> 1,\n        x = a[m];\n\n    if (x < y) {\n      i = m;\n      l = m + 1;\n    } else {\n      h = m - 1;\n    }\n  }\n\n  return i;\n}\n\nfunction _LTP(a, l, h, y, c) {\n  var i = l - 1;\n\n  while (l <= h) {\n    var m = l + h >>> 1,\n        x = a[m];\n\n    if (c(x, y) < 0) {\n      i = m;\n      l = m + 1;\n    } else {\n      h = m - 1;\n    }\n  }\n\n  return i;\n}\n\nfunction dispatchBsearchLT(a, y, c, l, h) {\n  if (typeof c === 'function') {\n    return _LTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n  } else {\n    return _LTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n  }\n}\n\nfunction _LEA(a, l, h, y) {\n  var i = l - 1;\n\n  while (l <= h) {\n    var m = l + h >>> 1,\n        x = a[m];\n\n    if (x <= y) {\n      i = m;\n      l = m + 1;\n    } else {\n      h = m - 1;\n    }\n  }\n\n  return i;\n}\n\nfunction _LEP(a, l, h, y, c) {\n  var i = l - 1;\n\n  while (l <= h) {\n    var m = l + h >>> 1,\n        x = a[m];\n\n    if (c(x, y) <= 0) {\n      i = m;\n      l = m + 1;\n    } else {\n      h = m - 1;\n    }\n  }\n\n  return i;\n}\n\nfunction dispatchBsearchLE(a, y, c, l, h) {\n  if (typeof c === 'function') {\n    return _LEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n  } else {\n    return _LEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n  }\n}\n\nfunction _EQA(a, l, h, y) {\n  l - 1;\n\n  while (l <= h) {\n    var m = l + h >>> 1,\n        x = a[m];\n\n    if (x === y) {\n      return m;\n    } else if (x <= y) {\n      l = m + 1;\n    } else {\n      h = m - 1;\n    }\n  }\n\n  return -1;\n}\n\nfunction _EQP(a, l, h, y, c) {\n  l - 1;\n\n  while (l <= h) {\n    var m = l + h >>> 1,\n        x = a[m];\n    var p = c(x, y);\n\n    if (p === 0) {\n      return m;\n    } else if (p <= 0) {\n      l = m + 1;\n    } else {\n      h = m - 1;\n    }\n  }\n\n  return -1;\n}\n\nfunction dispatchBsearchEQ(a, y, c, l, h) {\n  if (typeof c === 'function') {\n    return _EQP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n  } else {\n    return _EQA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n  }\n}\n\nexport default {\n  ge: dispatchBsearchGE,\n  gt: dispatchBsearchGT,\n  lt: dispatchBsearchLT,\n  le: dispatchBsearchLE,\n  eq: dispatchBsearchEQ\n};","/**\n * Binary Search Bounds\n * https://github.com/mikolalysenko/interval-tree-1d\n * Mikola Lysenko\n *\n * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax in an upstream dependency.\n * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5\n **/\nimport bounds from './binarySearchBounds';\nvar NOT_FOUND = 0;\nvar SUCCESS = 1;\nvar EMPTY = 2;\n\nfunction IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {\n  this.mid = mid;\n  this.left = left;\n  this.right = right;\n  this.leftPoints = leftPoints;\n  this.rightPoints = rightPoints;\n  this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;\n}\n\nvar proto = IntervalTreeNode.prototype;\n\nfunction copy(a, b) {\n  a.mid = b.mid;\n  a.left = b.left;\n  a.right = b.right;\n  a.leftPoints = b.leftPoints;\n  a.rightPoints = b.rightPoints;\n  a.count = b.count;\n}\n\nfunction rebuild(node, intervals) {\n  var ntree = createIntervalTree(intervals);\n  node.mid = ntree.mid;\n  node.left = ntree.left;\n  node.right = ntree.right;\n  node.leftPoints = ntree.leftPoints;\n  node.rightPoints = ntree.rightPoints;\n  node.count = ntree.count;\n}\n\nfunction rebuildWithInterval(node, interval) {\n  var intervals = node.intervals([]);\n  intervals.push(interval);\n  rebuild(node, intervals);\n}\n\nfunction rebuildWithoutInterval(node, interval) {\n  var intervals = node.intervals([]);\n  var idx = intervals.indexOf(interval);\n\n  if (idx < 0) {\n    return NOT_FOUND;\n  }\n\n  intervals.splice(idx, 1);\n  rebuild(node, intervals);\n  return SUCCESS;\n}\n\nproto.intervals = function (result) {\n  result.push.apply(result, this.leftPoints);\n\n  if (this.left) {\n    this.left.intervals(result);\n  }\n\n  if (this.right) {\n    this.right.intervals(result);\n  }\n\n  return result;\n};\n\nproto.insert = function (interval) {\n  var weight = this.count - this.leftPoints.length;\n  this.count += 1;\n\n  if (interval[1] < this.mid) {\n    if (this.left) {\n      if (4 * (this.left.count + 1) > 3 * (weight + 1)) {\n        rebuildWithInterval(this, interval);\n      } else {\n        this.left.insert(interval);\n      }\n    } else {\n      this.left = createIntervalTree([interval]);\n    }\n  } else if (interval[0] > this.mid) {\n    if (this.right) {\n      if (4 * (this.right.count + 1) > 3 * (weight + 1)) {\n        rebuildWithInterval(this, interval);\n      } else {\n        this.right.insert(interval);\n      }\n    } else {\n      this.right = createIntervalTree([interval]);\n    }\n  } else {\n    var l = bounds.ge(this.leftPoints, interval, compareBegin);\n    var r = bounds.ge(this.rightPoints, interval, compareEnd);\n    this.leftPoints.splice(l, 0, interval);\n    this.rightPoints.splice(r, 0, interval);\n  }\n};\n\nproto.remove = function (interval) {\n  var weight = this.count - this.leftPoints;\n\n  if (interval[1] < this.mid) {\n    if (!this.left) {\n      return NOT_FOUND;\n    }\n\n    var rw = this.right ? this.right.count : 0;\n\n    if (4 * rw > 3 * (weight - 1)) {\n      return rebuildWithoutInterval(this, interval);\n    }\n\n    var r = this.left.remove(interval);\n\n    if (r === EMPTY) {\n      this.left = null;\n      this.count -= 1;\n      return SUCCESS;\n    } else if (r === SUCCESS) {\n      this.count -= 1;\n    }\n\n    return r;\n  } else if (interval[0] > this.mid) {\n    if (!this.right) {\n      return NOT_FOUND;\n    }\n\n    var lw = this.left ? this.left.count : 0;\n\n    if (4 * lw > 3 * (weight - 1)) {\n      return rebuildWithoutInterval(this, interval);\n    }\n\n    var r = this.right.remove(interval);\n\n    if (r === EMPTY) {\n      this.right = null;\n      this.count -= 1;\n      return SUCCESS;\n    } else if (r === SUCCESS) {\n      this.count -= 1;\n    }\n\n    return r;\n  } else {\n    if (this.count === 1) {\n      if (this.leftPoints[0] === interval) {\n        return EMPTY;\n      } else {\n        return NOT_FOUND;\n      }\n    }\n\n    if (this.leftPoints.length === 1 && this.leftPoints[0] === interval) {\n      if (this.left && this.right) {\n        var p = this;\n        var n = this.left;\n\n        while (n.right) {\n          p = n;\n          n = n.right;\n        }\n\n        if (p === this) {\n          n.right = this.right;\n        } else {\n          var l = this.left;\n          var r = this.right;\n          p.count -= n.count;\n          p.right = n.left;\n          n.left = l;\n          n.right = r;\n        }\n\n        copy(this, n);\n        this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;\n      } else if (this.left) {\n        copy(this, this.left);\n      } else {\n        copy(this, this.right);\n      }\n\n      return SUCCESS;\n    }\n\n    for (var l = bounds.ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length; ++l) {\n      if (this.leftPoints[l][0] !== interval[0]) {\n        break;\n      }\n\n      if (this.leftPoints[l] === interval) {\n        this.count -= 1;\n        this.leftPoints.splice(l, 1);\n\n        for (var r = bounds.ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length; ++r) {\n          if (this.rightPoints[r][1] !== interval[1]) {\n            break;\n          } else if (this.rightPoints[r] === interval) {\n            this.rightPoints.splice(r, 1);\n            return SUCCESS;\n          }\n        }\n      }\n    }\n\n    return NOT_FOUND;\n  }\n};\n\nfunction reportLeftRange(arr, hi, cb) {\n  for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {\n    var r = cb(arr[i]);\n\n    if (r) {\n      return r;\n    }\n  }\n}\n\nfunction reportRightRange(arr, lo, cb) {\n  for (var i = arr.length - 1; i >= 0 && arr[i][1] >= lo; --i) {\n    var r = cb(arr[i]);\n\n    if (r) {\n      return r;\n    }\n  }\n}\n\nfunction reportRange(arr, cb) {\n  for (var i = 0; i < arr.length; ++i) {\n    var r = cb(arr[i]);\n\n    if (r) {\n      return r;\n    }\n  }\n}\n\nproto.queryPoint = function (x, cb) {\n  if (x < this.mid) {\n    if (this.left) {\n      var r = this.left.queryPoint(x, cb);\n\n      if (r) {\n        return r;\n      }\n    }\n\n    return reportLeftRange(this.leftPoints, x, cb);\n  } else if (x > this.mid) {\n    if (this.right) {\n      var r = this.right.queryPoint(x, cb);\n\n      if (r) {\n        return r;\n      }\n    }\n\n    return reportRightRange(this.rightPoints, x, cb);\n  } else {\n    return reportRange(this.leftPoints, cb);\n  }\n};\n\nproto.queryInterval = function (lo, hi, cb) {\n  if (lo < this.mid && this.left) {\n    var r = this.left.queryInterval(lo, hi, cb);\n\n    if (r) {\n      return r;\n    }\n  }\n\n  if (hi > this.mid && this.right) {\n    var r = this.right.queryInterval(lo, hi, cb);\n\n    if (r) {\n      return r;\n    }\n  }\n\n  if (hi < this.mid) {\n    return reportLeftRange(this.leftPoints, hi, cb);\n  } else if (lo > this.mid) {\n    return reportRightRange(this.rightPoints, lo, cb);\n  } else {\n    return reportRange(this.leftPoints, cb);\n  }\n};\n\nfunction compareNumbers(a, b) {\n  return a - b;\n}\n\nfunction compareBegin(a, b) {\n  var d = a[0] - b[0];\n\n  if (d) {\n    return d;\n  }\n\n  return a[1] - b[1];\n}\n\nfunction compareEnd(a, b) {\n  var d = a[1] - b[1];\n\n  if (d) {\n    return d;\n  }\n\n  return a[0] - b[0];\n}\n\nfunction createIntervalTree(intervals) {\n  if (intervals.length === 0) {\n    return null;\n  }\n\n  var pts = [];\n\n  for (var i = 0; i < intervals.length; ++i) {\n    pts.push(intervals[i][0], intervals[i][1]);\n  }\n\n  pts.sort(compareNumbers);\n  var mid = pts[pts.length >> 1];\n  var leftIntervals = [];\n  var rightIntervals = [];\n  var centerIntervals = [];\n\n  for (var i = 0; i < intervals.length; ++i) {\n    var s = intervals[i];\n\n    if (s[1] < mid) {\n      leftIntervals.push(s);\n    } else if (mid < s[0]) {\n      rightIntervals.push(s);\n    } else {\n      centerIntervals.push(s);\n    }\n  } //Split center intervals\n\n\n  var leftPoints = centerIntervals;\n  var rightPoints = centerIntervals.slice();\n  leftPoints.sort(compareBegin);\n  rightPoints.sort(compareEnd);\n  return new IntervalTreeNode(mid, createIntervalTree(leftIntervals), createIntervalTree(rightIntervals), leftPoints, rightPoints);\n} //User friendly wrapper that makes it possible to support empty trees\n\n\nfunction IntervalTree(root) {\n  this.root = root;\n}\n\nvar tproto = IntervalTree.prototype;\n\ntproto.insert = function (interval) {\n  if (this.root) {\n    this.root.insert(interval);\n  } else {\n    this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]);\n  }\n};\n\ntproto.remove = function (interval) {\n  if (this.root) {\n    var r = this.root.remove(interval);\n\n    if (r === EMPTY) {\n      this.root = null;\n    }\n\n    return r !== NOT_FOUND;\n  }\n\n  return false;\n};\n\ntproto.queryPoint = function (p, cb) {\n  if (this.root) {\n    return this.root.queryPoint(p, cb);\n  }\n};\n\ntproto.queryInterval = function (lo, hi, cb) {\n  if (lo <= hi && this.root) {\n    return this.root.queryInterval(lo, hi, cb);\n  }\n};\n\nObject.defineProperty(tproto, 'count', {\n  get: function get() {\n    if (this.root) {\n      return this.root.count;\n    }\n\n    return 0;\n  }\n});\nObject.defineProperty(tproto, 'intervals', {\n  get: function get() {\n    if (this.root) {\n      return this.root.intervals([]);\n    }\n\n    return [];\n  }\n});\nexport default function createWrapper(intervals) {\n  if (!intervals || intervals.length === 0) {\n    return new IntervalTree(null);\n  }\n\n  return new IntervalTree(createIntervalTree(intervals));\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport createIntervalTree from '../vendor/intervalTree';\n\n// Position cache requirements:\n//   O(log(n)) lookup of cells to render for a given viewport size\n//   O(1) lookup of shortest measured column (so we know when to enter phase 1)\nvar PositionCache =\n/*#__PURE__*/\nfunction () {\n  function PositionCache() {\n    _classCallCheck(this, PositionCache);\n\n    _defineProperty(this, \"_columnSizeMap\", {});\n\n    _defineProperty(this, \"_intervalTree\", createIntervalTree());\n\n    _defineProperty(this, \"_leftMap\", {});\n  }\n\n  _createClass(PositionCache, [{\n    key: \"estimateTotalHeight\",\n    value: function estimateTotalHeight(cellCount, columnCount, defaultCellHeight) {\n      var unmeasuredCellCount = cellCount - this.count;\n      return this.tallestColumnSize + Math.ceil(unmeasuredCellCount / columnCount) * defaultCellHeight;\n    } // Render all cells visible within the viewport range defined.\n\n  }, {\n    key: \"range\",\n    value: function range(scrollTop, clientHeight, renderCallback) {\n      var _this = this;\n\n      this._intervalTree.queryInterval(scrollTop, scrollTop + clientHeight, function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 3),\n            top = _ref2[0],\n            _ = _ref2[1],\n            index = _ref2[2];\n\n        return renderCallback(index, _this._leftMap[index], top);\n      });\n    }\n  }, {\n    key: \"setPosition\",\n    value: function setPosition(index, left, top, height) {\n      this._intervalTree.insert([top, top + height, index]);\n\n      this._leftMap[index] = left;\n      var columnSizeMap = this._columnSizeMap;\n      var columnHeight = columnSizeMap[left];\n\n      if (columnHeight === undefined) {\n        columnSizeMap[left] = top + height;\n      } else {\n        columnSizeMap[left] = Math.max(columnHeight, top + height);\n      }\n    }\n  }, {\n    key: \"count\",\n    get: function get() {\n      return this._intervalTree.count;\n    }\n  }, {\n    key: \"shortestColumnSize\",\n    get: function get() {\n      var columnSizeMap = this._columnSizeMap;\n      var size = 0;\n\n      for (var i in columnSizeMap) {\n        var height = columnSizeMap[i];\n        size = size === 0 ? height : Math.min(size, height);\n      }\n\n      return size;\n    }\n  }, {\n    key: \"tallestColumnSize\",\n    get: function get() {\n      var columnSizeMap = this._columnSizeMap;\n      var size = 0;\n\n      for (var i in columnSizeMap) {\n        var height = columnSizeMap[i];\n        size = Math.max(size, height);\n      }\n\n      return size;\n    }\n  }]);\n\n  return PositionCache;\n}();\n\nexport { PositionCache as default };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport clsx from 'clsx';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport PositionCache from './PositionCache';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../utils/requestAnimationTimeout';\nvar emptyObject = {};\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\n\nexport var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;\n/**\n * This component efficiently displays arbitrarily positioned cells using windowing techniques.\n * Cell position is determined by an injected `cellPositioner` property.\n * Windowing is vertical; this component does not support horizontal scrolling.\n *\n * Rendering occurs in two phases:\n * 1) First pass uses estimated cell sizes (provided by the cache) to determine how many cells to measure in a batch.\n *    Batch size is chosen using a fast, naive layout algorithm that stacks images in order until the viewport has been filled.\n *    After measurement is complete (componentDidMount or componentDidUpdate) this component evaluates positioned cells\n *    in order to determine if another measurement pass is required (eg if actual cell sizes were less than estimated sizes).\n *    All measurements are permanently cached (keyed by `keyMapper`) for performance purposes.\n * 2) Second pass uses the external `cellPositioner` to layout cells.\n *    At this time the positioner has access to cached size measurements for all cells.\n *    The positions it returns are cached by Masonry for fast access later.\n *    Phase one is repeated if the user scrolls beyond the current layout's bounds.\n *    If the layout is invalidated due to eg a resize, cached positions can be cleared using `recomputeCellPositions()`.\n *\n * Animation constraints:\n *   Simple animations are supported (eg translate/slide into place on initial reveal).\n *   More complex animations are not (eg flying from one position to another on resize).\n *\n * Layout constraints:\n *   This component supports multi-column layout.\n *   The height of each item may vary.\n *   The width of each item must not exceed the width of the column it is \"in\".\n *   The left position of all items within a column must align.\n *   (Items may not span multiple columns.)\n */\n\nvar Masonry = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(Masonry, _React$PureComponent);\n\n  function Masonry() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, Masonry);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Masonry)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      isScrolling: false,\n      scrollTop: 0\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_debounceResetIsScrollingId\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_invalidateOnUpdateStartIndex\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_invalidateOnUpdateStopIndex\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_positionCache\", new PositionCache());\n\n    _defineProperty(_assertThisInitialized(_this), \"_startIndex\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_startIndexMemoized\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_stopIndex\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_stopIndexMemoized\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_debounceResetIsScrollingCallback\", function () {\n      _this.setState({\n        isScrolling: false\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n      _this._scrollingContainer = ref;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (event) {\n      var height = _this.props.height;\n      var eventScrollTop = event.currentTarget.scrollTop; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n      // This causes a series of rapid renders that is slow for long lists.\n      // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.\n\n      var scrollTop = Math.min(Math.max(0, _this._getEstimatedTotalHeight() - height), eventScrollTop); // On iOS, we can arrive at negative offsets by swiping past the start or end.\n      // Avoid re-rendering in this case as it can cause problems; see #532 for more.\n\n      if (eventScrollTop !== scrollTop) {\n        return;\n      } // Prevent pointer events from interrupting a smooth scroll\n\n\n      _this._debounceResetIsScrolling(); // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n      // Don't force a re-render if this is the case.\n      // The mouse may move faster then the animation frame does.\n      // Use requestAnimationFrame to avoid over-updating.\n\n\n      if (_this.state.scrollTop !== scrollTop) {\n        _this.setState({\n          isScrolling: true,\n          scrollTop: scrollTop\n        });\n      }\n    });\n\n    return _this;\n  }\n\n  _createClass(Masonry, [{\n    key: \"clearCellPositions\",\n    value: function clearCellPositions() {\n      this._positionCache = new PositionCache();\n      this.forceUpdate();\n    } // HACK This method signature was intended for Grid\n\n  }, {\n    key: \"invalidateCellSizeAfterRender\",\n    value: function invalidateCellSizeAfterRender(_ref) {\n      var index = _ref.rowIndex;\n\n      if (this._invalidateOnUpdateStartIndex === null) {\n        this._invalidateOnUpdateStartIndex = index;\n        this._invalidateOnUpdateStopIndex = index;\n      } else {\n        this._invalidateOnUpdateStartIndex = Math.min(this._invalidateOnUpdateStartIndex, index);\n        this._invalidateOnUpdateStopIndex = Math.max(this._invalidateOnUpdateStopIndex, index);\n      }\n    }\n  }, {\n    key: \"recomputeCellPositions\",\n    value: function recomputeCellPositions() {\n      var stopIndex = this._positionCache.count - 1;\n      this._positionCache = new PositionCache();\n\n      this._populatePositionCache(0, stopIndex);\n\n      this.forceUpdate();\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this._checkInvalidateOnUpdate();\n\n      this._invokeOnScrollCallback();\n\n      this._invokeOnCellsRenderedCallback();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      this._checkInvalidateOnUpdate();\n\n      this._invokeOnScrollCallback();\n\n      this._invokeOnCellsRenderedCallback();\n\n      if (this.props.scrollTop !== prevProps.scrollTop) {\n        this._debounceResetIsScrolling();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (this._debounceResetIsScrollingId) {\n        cancelAnimationTimeout(this._debounceResetIsScrollingId);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          autoHeight = _this$props.autoHeight,\n          cellCount = _this$props.cellCount,\n          cellMeasurerCache = _this$props.cellMeasurerCache,\n          cellRenderer = _this$props.cellRenderer,\n          className = _this$props.className,\n          height = _this$props.height,\n          id = _this$props.id,\n          keyMapper = _this$props.keyMapper,\n          overscanByPixels = _this$props.overscanByPixels,\n          role = _this$props.role,\n          style = _this$props.style,\n          tabIndex = _this$props.tabIndex,\n          width = _this$props.width,\n          rowDirection = _this$props.rowDirection;\n      var _this$state = this.state,\n          isScrolling = _this$state.isScrolling,\n          scrollTop = _this$state.scrollTop;\n      var children = [];\n\n      var estimateTotalHeight = this._getEstimatedTotalHeight();\n\n      var shortestColumnSize = this._positionCache.shortestColumnSize;\n      var measuredCellCount = this._positionCache.count;\n      var startIndex = 0;\n      var stopIndex;\n\n      this._positionCache.range(Math.max(0, scrollTop - overscanByPixels), height + overscanByPixels * 2, function (index, left, top) {\n        var _style;\n\n        if (typeof stopIndex === 'undefined') {\n          startIndex = index;\n          stopIndex = index;\n        } else {\n          startIndex = Math.min(startIndex, index);\n          stopIndex = Math.max(stopIndex, index);\n        }\n\n        children.push(cellRenderer({\n          index: index,\n          isScrolling: isScrolling,\n          key: keyMapper(index),\n          parent: _this2,\n          style: (_style = {\n            height: cellMeasurerCache.getHeight(index)\n          }, _defineProperty(_style, rowDirection === 'ltr' ? 'left' : 'right', left), _defineProperty(_style, \"position\", 'absolute'), _defineProperty(_style, \"top\", top), _defineProperty(_style, \"width\", cellMeasurerCache.getWidth(index)), _style)\n        }));\n      }); // We need to measure additional cells for this layout\n\n\n      if (shortestColumnSize < scrollTop + height + overscanByPixels && measuredCellCount < cellCount) {\n        var batchSize = Math.min(cellCount - measuredCellCount, Math.ceil((scrollTop + height + overscanByPixels - shortestColumnSize) / cellMeasurerCache.defaultHeight * width / cellMeasurerCache.defaultWidth));\n\n        for (var _index = measuredCellCount; _index < measuredCellCount + batchSize; _index++) {\n          stopIndex = _index;\n          children.push(cellRenderer({\n            index: _index,\n            isScrolling: isScrolling,\n            key: keyMapper(_index),\n            parent: this,\n            style: {\n              width: cellMeasurerCache.getWidth(_index)\n            }\n          }));\n        }\n      }\n\n      this._startIndex = startIndex;\n      this._stopIndex = stopIndex;\n      return React.createElement(\"div\", {\n        ref: this._setScrollingContainerRef,\n        \"aria-label\": this.props['aria-label'],\n        className: clsx('ReactVirtualized__Masonry', className),\n        id: id,\n        onScroll: this._onScroll,\n        role: role,\n        style: _objectSpread({\n          boxSizing: 'border-box',\n          direction: 'ltr',\n          height: autoHeight ? 'auto' : height,\n          overflowX: 'hidden',\n          overflowY: estimateTotalHeight < height ? 'hidden' : 'auto',\n          position: 'relative',\n          width: width,\n          WebkitOverflowScrolling: 'touch',\n          willChange: 'transform'\n        }, style),\n        tabIndex: tabIndex\n      }, React.createElement(\"div\", {\n        className: \"ReactVirtualized__Masonry__innerScrollContainer\",\n        style: {\n          width: '100%',\n          height: estimateTotalHeight,\n          maxWidth: '100%',\n          maxHeight: estimateTotalHeight,\n          overflow: 'hidden',\n          pointerEvents: isScrolling ? 'none' : '',\n          position: 'relative'\n        }\n      }, children));\n    }\n  }, {\n    key: \"_checkInvalidateOnUpdate\",\n    value: function _checkInvalidateOnUpdate() {\n      if (typeof this._invalidateOnUpdateStartIndex === 'number') {\n        var startIndex = this._invalidateOnUpdateStartIndex;\n        var stopIndex = this._invalidateOnUpdateStopIndex;\n        this._invalidateOnUpdateStartIndex = null;\n        this._invalidateOnUpdateStopIndex = null; // Query external layout logic for position of newly-measured cells\n\n        this._populatePositionCache(startIndex, stopIndex);\n\n        this.forceUpdate();\n      }\n    }\n  }, {\n    key: \"_debounceResetIsScrolling\",\n    value: function _debounceResetIsScrolling() {\n      var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;\n\n      if (this._debounceResetIsScrollingId) {\n        cancelAnimationTimeout(this._debounceResetIsScrollingId);\n      }\n\n      this._debounceResetIsScrollingId = requestAnimationTimeout(this._debounceResetIsScrollingCallback, scrollingResetTimeInterval);\n    }\n  }, {\n    key: \"_getEstimatedTotalHeight\",\n    value: function _getEstimatedTotalHeight() {\n      var _this$props2 = this.props,\n          cellCount = _this$props2.cellCount,\n          cellMeasurerCache = _this$props2.cellMeasurerCache,\n          width = _this$props2.width;\n      var estimatedColumnCount = Math.max(1, Math.floor(width / cellMeasurerCache.defaultWidth));\n      return this._positionCache.estimateTotalHeight(cellCount, estimatedColumnCount, cellMeasurerCache.defaultHeight);\n    }\n  }, {\n    key: \"_invokeOnScrollCallback\",\n    value: function _invokeOnScrollCallback() {\n      var _this$props3 = this.props,\n          height = _this$props3.height,\n          onScroll = _this$props3.onScroll;\n      var scrollTop = this.state.scrollTop;\n\n      if (this._onScrollMemoized !== scrollTop) {\n        onScroll({\n          clientHeight: height,\n          scrollHeight: this._getEstimatedTotalHeight(),\n          scrollTop: scrollTop\n        });\n        this._onScrollMemoized = scrollTop;\n      }\n    }\n  }, {\n    key: \"_invokeOnCellsRenderedCallback\",\n    value: function _invokeOnCellsRenderedCallback() {\n      if (this._startIndexMemoized !== this._startIndex || this._stopIndexMemoized !== this._stopIndex) {\n        var onCellsRendered = this.props.onCellsRendered;\n        onCellsRendered({\n          startIndex: this._startIndex,\n          stopIndex: this._stopIndex\n        });\n        this._startIndexMemoized = this._startIndex;\n        this._stopIndexMemoized = this._stopIndex;\n      }\n    }\n  }, {\n    key: \"_populatePositionCache\",\n    value: function _populatePositionCache(startIndex, stopIndex) {\n      var _this$props4 = this.props,\n          cellMeasurerCache = _this$props4.cellMeasurerCache,\n          cellPositioner = _this$props4.cellPositioner;\n\n      for (var _index2 = startIndex; _index2 <= stopIndex; _index2++) {\n        var _cellPositioner = cellPositioner(_index2),\n            left = _cellPositioner.left,\n            top = _cellPositioner.top;\n\n        this._positionCache.setPosition(_index2, left, top, cellMeasurerCache.getHeight(_index2));\n      }\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps, prevState) {\n      if (nextProps.scrollTop !== undefined && prevState.scrollTop !== nextProps.scrollTop) {\n        return {\n          isScrolling: true,\n          scrollTop: nextProps.scrollTop\n        };\n      }\n\n      return null;\n    }\n  }]);\n\n  return Masonry;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n  \"autoHeight\": PropTypes.bool.isRequired,\n  \"cellCount\": PropTypes.number.isRequired,\n  \"cellMeasurerCache\": function cellMeasurerCache() {\n    return (typeof CellMeasurerCache === \"function\" ? PropTypes.instanceOf(CellMeasurerCache).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n  },\n  \"cellPositioner\": function cellPositioner() {\n    return (typeof Positioner === \"function\" ? PropTypes.instanceOf(Positioner).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n  },\n  \"cellRenderer\": function cellRenderer() {\n    return (typeof CellRenderer === \"function\" ? PropTypes.instanceOf(CellRenderer).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n  },\n  \"className\": PropTypes.string,\n  \"height\": PropTypes.number.isRequired,\n  \"id\": PropTypes.string,\n  \"keyMapper\": function keyMapper() {\n    return (typeof KeyMapper === \"function\" ? PropTypes.instanceOf(KeyMapper).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n  },\n  \"onCellsRendered\": function onCellsRendered() {\n    return (typeof OnCellsRenderedCallback === \"function\" ? PropTypes.instanceOf(OnCellsRenderedCallback) : PropTypes.any).apply(this, arguments);\n  },\n  \"onScroll\": function onScroll() {\n    return (typeof OnScrollCallback === \"function\" ? PropTypes.instanceOf(OnScrollCallback) : PropTypes.any).apply(this, arguments);\n  },\n  \"overscanByPixels\": PropTypes.number.isRequired,\n  \"role\": PropTypes.string.isRequired,\n  \"scrollingResetTimeInterval\": PropTypes.number.isRequired,\n  \"style\": function style(props, propName, componentName) {\n    if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n      throw new Error(\"Prop `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(componentName, \"`. Pass undefined or any other value.\"));\n    }\n  },\n  \"tabIndex\": PropTypes.number.isRequired,\n  \"width\": PropTypes.number.isRequired,\n  \"rowDirection\": PropTypes.string.isRequired,\n  \"scrollTop\": PropTypes.number\n}), _temp);\n\n_defineProperty(Masonry, \"defaultProps\", {\n  autoHeight: false,\n  keyMapper: identity,\n  onCellsRendered: noop,\n  onScroll: noop,\n  overscanByPixels: 20,\n  role: 'grid',\n  scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,\n  style: emptyObject,\n  tabIndex: 0,\n  rowDirection: 'ltr'\n});\n\nfunction identity(value) {\n  return value;\n}\n\nfunction noop() {}\n\nvar bpfrpt_proptype_CellMeasurerCache = process.env.NODE_ENV === 'production' ? null : {\n  \"defaultHeight\": PropTypes.number.isRequired,\n  \"defaultWidth\": PropTypes.number.isRequired,\n  \"getHeight\": PropTypes.func.isRequired,\n  \"getWidth\": PropTypes.func.isRequired\n};\npolyfill(Masonry);\nexport default Masonry;\nvar bpfrpt_proptype_Positioner = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nimport { bpfrpt_proptype_AnimationTimeoutId } from \"../utils/requestAnimationTimeout\";\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_CellMeasurerCache };\nexport { bpfrpt_proptype_Positioner };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n  var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n  if (null != _i) {\n    var _s,\n      _e,\n      _x,\n      _r,\n      _arr = [],\n      _n = !0,\n      _d = !1;\n    try {\n      if (_x = (_i = _i.call(arr)).next, 0 === i) {\n        if (Object(_i) !== _i) return;\n        _n = !1;\n      } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n    } catch (err) {\n      _d = !0, _e = err;\n    } finally {\n      try {\n        if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n    return _arr;\n  }\n}","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { CellMeasurerCache } from '../CellMeasurer';\n\n/**\n * Caches measurements for a given cell.\n */\nvar CellMeasurerCacheDecorator =\n/*#__PURE__*/\nfunction () {\n  function CellMeasurerCacheDecorator() {\n    var _this = this;\n\n    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, CellMeasurerCacheDecorator);\n\n    _defineProperty(this, \"_cellMeasurerCache\", void 0);\n\n    _defineProperty(this, \"_columnIndexOffset\", void 0);\n\n    _defineProperty(this, \"_rowIndexOffset\", void 0);\n\n    _defineProperty(this, \"columnWidth\", function (_ref) {\n      var index = _ref.index;\n\n      _this._cellMeasurerCache.columnWidth({\n        index: index + _this._columnIndexOffset\n      });\n    });\n\n    _defineProperty(this, \"rowHeight\", function (_ref2) {\n      var index = _ref2.index;\n\n      _this._cellMeasurerCache.rowHeight({\n        index: index + _this._rowIndexOffset\n      });\n    });\n\n    var cellMeasurerCache = params.cellMeasurerCache,\n        _params$columnIndexOf = params.columnIndexOffset,\n        columnIndexOffset = _params$columnIndexOf === void 0 ? 0 : _params$columnIndexOf,\n        _params$rowIndexOffse = params.rowIndexOffset,\n        rowIndexOffset = _params$rowIndexOffse === void 0 ? 0 : _params$rowIndexOffse;\n    this._cellMeasurerCache = cellMeasurerCache;\n    this._columnIndexOffset = columnIndexOffset;\n    this._rowIndexOffset = rowIndexOffset;\n  }\n\n  _createClass(CellMeasurerCacheDecorator, [{\n    key: \"clear\",\n    value: function clear(rowIndex, columnIndex) {\n      this._cellMeasurerCache.clear(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n    }\n  }, {\n    key: \"clearAll\",\n    value: function clearAll() {\n      this._cellMeasurerCache.clearAll();\n    }\n  }, {\n    key: \"hasFixedHeight\",\n    value: function hasFixedHeight() {\n      return this._cellMeasurerCache.hasFixedHeight();\n    }\n  }, {\n    key: \"hasFixedWidth\",\n    value: function hasFixedWidth() {\n      return this._cellMeasurerCache.hasFixedWidth();\n    }\n  }, {\n    key: \"getHeight\",\n    value: function getHeight(rowIndex) {\n      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      return this._cellMeasurerCache.getHeight(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n    }\n  }, {\n    key: \"getWidth\",\n    value: function getWidth(rowIndex) {\n      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      return this._cellMeasurerCache.getWidth(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n    }\n  }, {\n    key: \"has\",\n    value: function has(rowIndex) {\n      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      return this._cellMeasurerCache.has(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n    }\n  }, {\n    key: \"set\",\n    value: function set(rowIndex, columnIndex, width, height) {\n      this._cellMeasurerCache.set(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset, width, height);\n    }\n  }, {\n    key: \"defaultHeight\",\n    get: function get() {\n      return this._cellMeasurerCache.defaultHeight;\n    }\n  }, {\n    key: \"defaultWidth\",\n    get: function get() {\n      return this._cellMeasurerCache.defaultWidth;\n    }\n  }]);\n\n  return CellMeasurerCacheDecorator;\n}();\n\nexport { CellMeasurerCacheDecorator as default };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport CellMeasurerCacheDecorator from './CellMeasurerCacheDecorator';\nimport Grid from '../Grid';\nvar SCROLLBAR_SIZE_BUFFER = 20;\n/**\n * Renders 1, 2, or 4 Grids depending on configuration.\n * A main (body) Grid will always be rendered.\n * Optionally, 1-2 Grids for sticky header rows will also be rendered.\n * If no sticky columns, only 1 sticky header Grid will be rendered.\n * If sticky columns, 2 sticky header Grids will be rendered.\n */\n\nvar MultiGrid =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(MultiGrid, _React$PureComponent);\n\n  function MultiGrid(props, context) {\n    var _this;\n\n    _classCallCheck(this, MultiGrid);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(MultiGrid).call(this, props, context));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      scrollLeft: 0,\n      scrollTop: 0,\n      scrollbarSize: 0,\n      showHorizontalScrollbar: false,\n      showVerticalScrollbar: false\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateColumnIndex\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateRowIndex\", null);\n\n    _defineProperty(_assertThisInitialized(_this), \"_bottomLeftGridRef\", function (ref) {\n      _this._bottomLeftGrid = ref;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_bottomRightGridRef\", function (ref) {\n      _this._bottomRightGrid = ref;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_cellRendererBottomLeftGrid\", function (_ref) {\n      var rowIndex = _ref.rowIndex,\n          rest = _objectWithoutProperties(_ref, [\"rowIndex\"]);\n\n      var _this$props = _this.props,\n          cellRenderer = _this$props.cellRenderer,\n          fixedRowCount = _this$props.fixedRowCount,\n          rowCount = _this$props.rowCount;\n\n      if (rowIndex === rowCount - fixedRowCount) {\n        return React.createElement(\"div\", {\n          key: rest.key,\n          style: _objectSpread({}, rest.style, {\n            height: SCROLLBAR_SIZE_BUFFER\n          })\n        });\n      } else {\n        return cellRenderer(_objectSpread({}, rest, {\n          parent: _assertThisInitialized(_this),\n          rowIndex: rowIndex + fixedRowCount\n        }));\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_cellRendererBottomRightGrid\", function (_ref2) {\n      var columnIndex = _ref2.columnIndex,\n          rowIndex = _ref2.rowIndex,\n          rest = _objectWithoutProperties(_ref2, [\"columnIndex\", \"rowIndex\"]);\n\n      var _this$props2 = _this.props,\n          cellRenderer = _this$props2.cellRenderer,\n          fixedColumnCount = _this$props2.fixedColumnCount,\n          fixedRowCount = _this$props2.fixedRowCount;\n      return cellRenderer(_objectSpread({}, rest, {\n        columnIndex: columnIndex + fixedColumnCount,\n        parent: _assertThisInitialized(_this),\n        rowIndex: rowIndex + fixedRowCount\n      }));\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_cellRendererTopRightGrid\", function (_ref3) {\n      var columnIndex = _ref3.columnIndex,\n          rest = _objectWithoutProperties(_ref3, [\"columnIndex\"]);\n\n      var _this$props3 = _this.props,\n          cellRenderer = _this$props3.cellRenderer,\n          columnCount = _this$props3.columnCount,\n          fixedColumnCount = _this$props3.fixedColumnCount;\n\n      if (columnIndex === columnCount - fixedColumnCount) {\n        return React.createElement(\"div\", {\n          key: rest.key,\n          style: _objectSpread({}, rest.style, {\n            width: SCROLLBAR_SIZE_BUFFER\n          })\n        });\n      } else {\n        return cellRenderer(_objectSpread({}, rest, {\n          columnIndex: columnIndex + fixedColumnCount,\n          parent: _assertThisInitialized(_this)\n        }));\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_columnWidthRightGrid\", function (_ref4) {\n      var index = _ref4.index;\n      var _this$props4 = _this.props,\n          columnCount = _this$props4.columnCount,\n          fixedColumnCount = _this$props4.fixedColumnCount,\n          columnWidth = _this$props4.columnWidth;\n      var _this$state = _this.state,\n          scrollbarSize = _this$state.scrollbarSize,\n          showHorizontalScrollbar = _this$state.showHorizontalScrollbar; // An extra cell is added to the count\n      // This gives the smaller Grid extra room for offset,\n      // In case the main (bottom right) Grid has a scrollbar\n      // If no scrollbar, the extra space is overflow:hidden anyway\n\n      if (showHorizontalScrollbar && index === columnCount - fixedColumnCount) {\n        return scrollbarSize;\n      }\n\n      return typeof columnWidth === 'function' ? columnWidth({\n        index: index + fixedColumnCount\n      }) : columnWidth;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (scrollInfo) {\n      var scrollLeft = scrollInfo.scrollLeft,\n          scrollTop = scrollInfo.scrollTop;\n\n      _this.setState({\n        scrollLeft: scrollLeft,\n        scrollTop: scrollTop\n      });\n\n      var onScroll = _this.props.onScroll;\n\n      if (onScroll) {\n        onScroll(scrollInfo);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onScrollbarPresenceChange\", function (_ref5) {\n      var horizontal = _ref5.horizontal,\n          size = _ref5.size,\n          vertical = _ref5.vertical;\n      var _this$state2 = _this.state,\n          showHorizontalScrollbar = _this$state2.showHorizontalScrollbar,\n          showVerticalScrollbar = _this$state2.showVerticalScrollbar;\n\n      if (horizontal !== showHorizontalScrollbar || vertical !== showVerticalScrollbar) {\n        _this.setState({\n          scrollbarSize: size,\n          showHorizontalScrollbar: horizontal,\n          showVerticalScrollbar: vertical\n        });\n\n        var onScrollbarPresenceChange = _this.props.onScrollbarPresenceChange;\n\n        if (typeof onScrollbarPresenceChange === 'function') {\n          onScrollbarPresenceChange({\n            horizontal: horizontal,\n            size: size,\n            vertical: vertical\n          });\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onScrollLeft\", function (scrollInfo) {\n      var scrollLeft = scrollInfo.scrollLeft;\n\n      _this._onScroll({\n        scrollLeft: scrollLeft,\n        scrollTop: _this.state.scrollTop\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onScrollTop\", function (scrollInfo) {\n      var scrollTop = scrollInfo.scrollTop;\n\n      _this._onScroll({\n        scrollTop: scrollTop,\n        scrollLeft: _this.state.scrollLeft\n      });\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_rowHeightBottomGrid\", function (_ref6) {\n      var index = _ref6.index;\n      var _this$props5 = _this.props,\n          fixedRowCount = _this$props5.fixedRowCount,\n          rowCount = _this$props5.rowCount,\n          rowHeight = _this$props5.rowHeight;\n      var _this$state3 = _this.state,\n          scrollbarSize = _this$state3.scrollbarSize,\n          showVerticalScrollbar = _this$state3.showVerticalScrollbar; // An extra cell is added to the count\n      // This gives the smaller Grid extra room for offset,\n      // In case the main (bottom right) Grid has a scrollbar\n      // If no scrollbar, the extra space is overflow:hidden anyway\n\n      if (showVerticalScrollbar && index === rowCount - fixedRowCount) {\n        return scrollbarSize;\n      }\n\n      return typeof rowHeight === 'function' ? rowHeight({\n        index: index + fixedRowCount\n      }) : rowHeight;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_topLeftGridRef\", function (ref) {\n      _this._topLeftGrid = ref;\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_topRightGridRef\", function (ref) {\n      _this._topRightGrid = ref;\n    });\n\n    var deferredMeasurementCache = props.deferredMeasurementCache,\n        _fixedColumnCount = props.fixedColumnCount,\n        _fixedRowCount = props.fixedRowCount;\n\n    _this._maybeCalculateCachedStyles(true);\n\n    if (deferredMeasurementCache) {\n      _this._deferredMeasurementCacheBottomLeftGrid = _fixedRowCount > 0 ? new CellMeasurerCacheDecorator({\n        cellMeasurerCache: deferredMeasurementCache,\n        columnIndexOffset: 0,\n        rowIndexOffset: _fixedRowCount\n      }) : deferredMeasurementCache;\n      _this._deferredMeasurementCacheBottomRightGrid = _fixedColumnCount > 0 || _fixedRowCount > 0 ? new CellMeasurerCacheDecorator({\n        cellMeasurerCache: deferredMeasurementCache,\n        columnIndexOffset: _fixedColumnCount,\n        rowIndexOffset: _fixedRowCount\n      }) : deferredMeasurementCache;\n      _this._deferredMeasurementCacheTopRightGrid = _fixedColumnCount > 0 ? new CellMeasurerCacheDecorator({\n        cellMeasurerCache: deferredMeasurementCache,\n        columnIndexOffset: _fixedColumnCount,\n        rowIndexOffset: 0\n      }) : deferredMeasurementCache;\n    }\n\n    return _this;\n  }\n\n  _createClass(MultiGrid, [{\n    key: \"forceUpdateGrids\",\n    value: function forceUpdateGrids() {\n      this._bottomLeftGrid && this._bottomLeftGrid.forceUpdate();\n      this._bottomRightGrid && this._bottomRightGrid.forceUpdate();\n      this._topLeftGrid && this._topLeftGrid.forceUpdate();\n      this._topRightGrid && this._topRightGrid.forceUpdate();\n    }\n    /** See Grid#invalidateCellSizeAfterRender */\n\n  }, {\n    key: \"invalidateCellSizeAfterRender\",\n    value: function invalidateCellSizeAfterRender() {\n      var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n          _ref7$columnIndex = _ref7.columnIndex,\n          columnIndex = _ref7$columnIndex === void 0 ? 0 : _ref7$columnIndex,\n          _ref7$rowIndex = _ref7.rowIndex,\n          rowIndex = _ref7$rowIndex === void 0 ? 0 : _ref7$rowIndex;\n\n      this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;\n      this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;\n    }\n    /** See Grid#measureAllCells */\n\n  }, {\n    key: \"measureAllCells\",\n    value: function measureAllCells() {\n      this._bottomLeftGrid && this._bottomLeftGrid.measureAllCells();\n      this._bottomRightGrid && this._bottomRightGrid.measureAllCells();\n      this._topLeftGrid && this._topLeftGrid.measureAllCells();\n      this._topRightGrid && this._topRightGrid.measureAllCells();\n    }\n    /** See Grid#recomputeGridSize */\n\n  }, {\n    key: \"recomputeGridSize\",\n    value: function recomputeGridSize() {\n      var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n          _ref8$columnIndex = _ref8.columnIndex,\n          columnIndex = _ref8$columnIndex === void 0 ? 0 : _ref8$columnIndex,\n          _ref8$rowIndex = _ref8.rowIndex,\n          rowIndex = _ref8$rowIndex === void 0 ? 0 : _ref8$rowIndex;\n\n      var _this$props6 = this.props,\n          fixedColumnCount = _this$props6.fixedColumnCount,\n          fixedRowCount = _this$props6.fixedRowCount;\n      var adjustedColumnIndex = Math.max(0, columnIndex - fixedColumnCount);\n      var adjustedRowIndex = Math.max(0, rowIndex - fixedRowCount);\n      this._bottomLeftGrid && this._bottomLeftGrid.recomputeGridSize({\n        columnIndex: columnIndex,\n        rowIndex: adjustedRowIndex\n      });\n      this._bottomRightGrid && this._bottomRightGrid.recomputeGridSize({\n        columnIndex: adjustedColumnIndex,\n        rowIndex: adjustedRowIndex\n      });\n      this._topLeftGrid && this._topLeftGrid.recomputeGridSize({\n        columnIndex: columnIndex,\n        rowIndex: rowIndex\n      });\n      this._topRightGrid && this._topRightGrid.recomputeGridSize({\n        columnIndex: adjustedColumnIndex,\n        rowIndex: rowIndex\n      });\n      this._leftGridWidth = null;\n      this._topGridHeight = null;\n\n      this._maybeCalculateCachedStyles(true);\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this$props7 = this.props,\n          scrollLeft = _this$props7.scrollLeft,\n          scrollTop = _this$props7.scrollTop;\n\n      if (scrollLeft > 0 || scrollTop > 0) {\n        var newState = {};\n\n        if (scrollLeft > 0) {\n          newState.scrollLeft = scrollLeft;\n        }\n\n        if (scrollTop > 0) {\n          newState.scrollTop = scrollTop;\n        }\n\n        this.setState(newState);\n      }\n\n      this._handleInvalidatedGridSize();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      this._handleInvalidatedGridSize();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props8 = this.props,\n          onScroll = _this$props8.onScroll,\n          onSectionRendered = _this$props8.onSectionRendered,\n          onScrollbarPresenceChange = _this$props8.onScrollbarPresenceChange,\n          scrollLeftProp = _this$props8.scrollLeft,\n          scrollToColumn = _this$props8.scrollToColumn,\n          scrollTopProp = _this$props8.scrollTop,\n          scrollToRow = _this$props8.scrollToRow,\n          rest = _objectWithoutProperties(_this$props8, [\"onScroll\", \"onSectionRendered\", \"onScrollbarPresenceChange\", \"scrollLeft\", \"scrollToColumn\", \"scrollTop\", \"scrollToRow\"]);\n\n      this._prepareForRender(); // Don't render any of our Grids if there are no cells.\n      // This mirrors what Grid does,\n      // And prevents us from recording inaccurage measurements when used with CellMeasurer.\n\n\n      if (this.props.width === 0 || this.props.height === 0) {\n        return null;\n      } // scrollTop and scrollLeft props are explicitly filtered out and ignored\n\n\n      var _this$state4 = this.state,\n          scrollLeft = _this$state4.scrollLeft,\n          scrollTop = _this$state4.scrollTop;\n      return React.createElement(\"div\", {\n        style: this._containerOuterStyle\n      }, React.createElement(\"div\", {\n        style: this._containerTopStyle\n      }, this._renderTopLeftGrid(rest), this._renderTopRightGrid(_objectSpread({}, rest, {\n        onScroll: onScroll,\n        scrollLeft: scrollLeft\n      }))), React.createElement(\"div\", {\n        style: this._containerBottomStyle\n      }, this._renderBottomLeftGrid(_objectSpread({}, rest, {\n        onScroll: onScroll,\n        scrollTop: scrollTop\n      })), this._renderBottomRightGrid(_objectSpread({}, rest, {\n        onScroll: onScroll,\n        onSectionRendered: onSectionRendered,\n        scrollLeft: scrollLeft,\n        scrollToColumn: scrollToColumn,\n        scrollToRow: scrollToRow,\n        scrollTop: scrollTop\n      }))));\n    }\n  }, {\n    key: \"_getBottomGridHeight\",\n    value: function _getBottomGridHeight(props) {\n      var height = props.height;\n\n      var topGridHeight = this._getTopGridHeight(props);\n\n      return height - topGridHeight;\n    }\n  }, {\n    key: \"_getLeftGridWidth\",\n    value: function _getLeftGridWidth(props) {\n      var fixedColumnCount = props.fixedColumnCount,\n          columnWidth = props.columnWidth;\n\n      if (this._leftGridWidth == null) {\n        if (typeof columnWidth === 'function') {\n          var leftGridWidth = 0;\n\n          for (var index = 0; index < fixedColumnCount; index++) {\n            leftGridWidth += columnWidth({\n              index: index\n            });\n          }\n\n          this._leftGridWidth = leftGridWidth;\n        } else {\n          this._leftGridWidth = columnWidth * fixedColumnCount;\n        }\n      }\n\n      return this._leftGridWidth;\n    }\n  }, {\n    key: \"_getRightGridWidth\",\n    value: function _getRightGridWidth(props) {\n      var width = props.width;\n\n      var leftGridWidth = this._getLeftGridWidth(props);\n\n      return width - leftGridWidth;\n    }\n  }, {\n    key: \"_getTopGridHeight\",\n    value: function _getTopGridHeight(props) {\n      var fixedRowCount = props.fixedRowCount,\n          rowHeight = props.rowHeight;\n\n      if (this._topGridHeight == null) {\n        if (typeof rowHeight === 'function') {\n          var topGridHeight = 0;\n\n          for (var index = 0; index < fixedRowCount; index++) {\n            topGridHeight += rowHeight({\n              index: index\n            });\n          }\n\n          this._topGridHeight = topGridHeight;\n        } else {\n          this._topGridHeight = rowHeight * fixedRowCount;\n        }\n      }\n\n      return this._topGridHeight;\n    }\n  }, {\n    key: \"_handleInvalidatedGridSize\",\n    value: function _handleInvalidatedGridSize() {\n      if (typeof this._deferredInvalidateColumnIndex === 'number') {\n        var columnIndex = this._deferredInvalidateColumnIndex;\n        var rowIndex = this._deferredInvalidateRowIndex;\n        this._deferredInvalidateColumnIndex = null;\n        this._deferredInvalidateRowIndex = null;\n        this.recomputeGridSize({\n          columnIndex: columnIndex,\n          rowIndex: rowIndex\n        });\n        this.forceUpdate();\n      }\n    }\n    /**\n     * Avoid recreating inline styles each render; this bypasses Grid's shallowCompare.\n     * This method recalculates styles only when specific props change.\n     */\n\n  }, {\n    key: \"_maybeCalculateCachedStyles\",\n    value: function _maybeCalculateCachedStyles(resetAll) {\n      var _this$props9 = this.props,\n          columnWidth = _this$props9.columnWidth,\n          enableFixedColumnScroll = _this$props9.enableFixedColumnScroll,\n          enableFixedRowScroll = _this$props9.enableFixedRowScroll,\n          height = _this$props9.height,\n          fixedColumnCount = _this$props9.fixedColumnCount,\n          fixedRowCount = _this$props9.fixedRowCount,\n          rowHeight = _this$props9.rowHeight,\n          style = _this$props9.style,\n          styleBottomLeftGrid = _this$props9.styleBottomLeftGrid,\n          styleBottomRightGrid = _this$props9.styleBottomRightGrid,\n          styleTopLeftGrid = _this$props9.styleTopLeftGrid,\n          styleTopRightGrid = _this$props9.styleTopRightGrid,\n          width = _this$props9.width;\n      var sizeChange = resetAll || height !== this._lastRenderedHeight || width !== this._lastRenderedWidth;\n      var leftSizeChange = resetAll || columnWidth !== this._lastRenderedColumnWidth || fixedColumnCount !== this._lastRenderedFixedColumnCount;\n      var topSizeChange = resetAll || fixedRowCount !== this._lastRenderedFixedRowCount || rowHeight !== this._lastRenderedRowHeight;\n\n      if (resetAll || sizeChange || style !== this._lastRenderedStyle) {\n        this._containerOuterStyle = _objectSpread({\n          height: height,\n          overflow: 'visible',\n          // Let :focus outline show through\n          width: width\n        }, style);\n      }\n\n      if (resetAll || sizeChange || topSizeChange) {\n        this._containerTopStyle = {\n          height: this._getTopGridHeight(this.props),\n          position: 'relative',\n          width: width\n        };\n        this._containerBottomStyle = {\n          height: height - this._getTopGridHeight(this.props),\n          overflow: 'visible',\n          // Let :focus outline show through\n          position: 'relative',\n          width: width\n        };\n      }\n\n      if (resetAll || styleBottomLeftGrid !== this._lastRenderedStyleBottomLeftGrid) {\n        this._bottomLeftGridStyle = _objectSpread({\n          left: 0,\n          overflowX: 'hidden',\n          overflowY: enableFixedColumnScroll ? 'auto' : 'hidden',\n          position: 'absolute'\n        }, styleBottomLeftGrid);\n      }\n\n      if (resetAll || leftSizeChange || styleBottomRightGrid !== this._lastRenderedStyleBottomRightGrid) {\n        this._bottomRightGridStyle = _objectSpread({\n          left: this._getLeftGridWidth(this.props),\n          position: 'absolute'\n        }, styleBottomRightGrid);\n      }\n\n      if (resetAll || styleTopLeftGrid !== this._lastRenderedStyleTopLeftGrid) {\n        this._topLeftGridStyle = _objectSpread({\n          left: 0,\n          overflowX: 'hidden',\n          overflowY: 'hidden',\n          position: 'absolute',\n          top: 0\n        }, styleTopLeftGrid);\n      }\n\n      if (resetAll || leftSizeChange || styleTopRightGrid !== this._lastRenderedStyleTopRightGrid) {\n        this._topRightGridStyle = _objectSpread({\n          left: this._getLeftGridWidth(this.props),\n          overflowX: enableFixedRowScroll ? 'auto' : 'hidden',\n          overflowY: 'hidden',\n          position: 'absolute',\n          top: 0\n        }, styleTopRightGrid);\n      }\n\n      this._lastRenderedColumnWidth = columnWidth;\n      this._lastRenderedFixedColumnCount = fixedColumnCount;\n      this._lastRenderedFixedRowCount = fixedRowCount;\n      this._lastRenderedHeight = height;\n      this._lastRenderedRowHeight = rowHeight;\n      this._lastRenderedStyle = style;\n      this._lastRenderedStyleBottomLeftGrid = styleBottomLeftGrid;\n      this._lastRenderedStyleBottomRightGrid = styleBottomRightGrid;\n      this._lastRenderedStyleTopLeftGrid = styleTopLeftGrid;\n      this._lastRenderedStyleTopRightGrid = styleTopRightGrid;\n      this._lastRenderedWidth = width;\n    }\n  }, {\n    key: \"_prepareForRender\",\n    value: function _prepareForRender() {\n      if (this._lastRenderedColumnWidth !== this.props.columnWidth || this._lastRenderedFixedColumnCount !== this.props.fixedColumnCount) {\n        this._leftGridWidth = null;\n      }\n\n      if (this._lastRenderedFixedRowCount !== this.props.fixedRowCount || this._lastRenderedRowHeight !== this.props.rowHeight) {\n        this._topGridHeight = null;\n      }\n\n      this._maybeCalculateCachedStyles();\n\n      this._lastRenderedColumnWidth = this.props.columnWidth;\n      this._lastRenderedFixedColumnCount = this.props.fixedColumnCount;\n      this._lastRenderedFixedRowCount = this.props.fixedRowCount;\n      this._lastRenderedRowHeight = this.props.rowHeight;\n    }\n  }, {\n    key: \"_renderBottomLeftGrid\",\n    value: function _renderBottomLeftGrid(props) {\n      var enableFixedColumnScroll = props.enableFixedColumnScroll,\n          fixedColumnCount = props.fixedColumnCount,\n          fixedRowCount = props.fixedRowCount,\n          rowCount = props.rowCount,\n          hideBottomLeftGridScrollbar = props.hideBottomLeftGridScrollbar;\n      var showVerticalScrollbar = this.state.showVerticalScrollbar;\n\n      if (!fixedColumnCount) {\n        return null;\n      }\n\n      var additionalRowCount = showVerticalScrollbar ? 1 : 0,\n          height = this._getBottomGridHeight(props),\n          width = this._getLeftGridWidth(props),\n          scrollbarSize = this.state.showVerticalScrollbar ? this.state.scrollbarSize : 0,\n          gridWidth = hideBottomLeftGridScrollbar ? width + scrollbarSize : width;\n\n      var bottomLeftGrid = React.createElement(Grid, _extends({}, props, {\n        cellRenderer: this._cellRendererBottomLeftGrid,\n        className: this.props.classNameBottomLeftGrid,\n        columnCount: fixedColumnCount,\n        deferredMeasurementCache: this._deferredMeasurementCacheBottomLeftGrid,\n        height: height,\n        onScroll: enableFixedColumnScroll ? this._onScrollTop : undefined,\n        ref: this._bottomLeftGridRef,\n        rowCount: Math.max(0, rowCount - fixedRowCount) + additionalRowCount,\n        rowHeight: this._rowHeightBottomGrid,\n        style: this._bottomLeftGridStyle,\n        tabIndex: null,\n        width: gridWidth\n      }));\n\n      if (hideBottomLeftGridScrollbar) {\n        return React.createElement(\"div\", {\n          className: \"BottomLeftGrid_ScrollWrapper\",\n          style: _objectSpread({}, this._bottomLeftGridStyle, {\n            height: height,\n            width: width,\n            overflowY: 'hidden'\n          })\n        }, bottomLeftGrid);\n      }\n\n      return bottomLeftGrid;\n    }\n  }, {\n    key: \"_renderBottomRightGrid\",\n    value: function _renderBottomRightGrid(props) {\n      var columnCount = props.columnCount,\n          fixedColumnCount = props.fixedColumnCount,\n          fixedRowCount = props.fixedRowCount,\n          rowCount = props.rowCount,\n          scrollToColumn = props.scrollToColumn,\n          scrollToRow = props.scrollToRow;\n      return React.createElement(Grid, _extends({}, props, {\n        cellRenderer: this._cellRendererBottomRightGrid,\n        className: this.props.classNameBottomRightGrid,\n        columnCount: Math.max(0, columnCount - fixedColumnCount),\n        columnWidth: this._columnWidthRightGrid,\n        deferredMeasurementCache: this._deferredMeasurementCacheBottomRightGrid,\n        height: this._getBottomGridHeight(props),\n        onScroll: this._onScroll,\n        onScrollbarPresenceChange: this._onScrollbarPresenceChange,\n        ref: this._bottomRightGridRef,\n        rowCount: Math.max(0, rowCount - fixedRowCount),\n        rowHeight: this._rowHeightBottomGrid,\n        scrollToColumn: scrollToColumn - fixedColumnCount,\n        scrollToRow: scrollToRow - fixedRowCount,\n        style: this._bottomRightGridStyle,\n        width: this._getRightGridWidth(props)\n      }));\n    }\n  }, {\n    key: \"_renderTopLeftGrid\",\n    value: function _renderTopLeftGrid(props) {\n      var fixedColumnCount = props.fixedColumnCount,\n          fixedRowCount = props.fixedRowCount;\n\n      if (!fixedColumnCount || !fixedRowCount) {\n        return null;\n      }\n\n      return React.createElement(Grid, _extends({}, props, {\n        className: this.props.classNameTopLeftGrid,\n        columnCount: fixedColumnCount,\n        height: this._getTopGridHeight(props),\n        ref: this._topLeftGridRef,\n        rowCount: fixedRowCount,\n        style: this._topLeftGridStyle,\n        tabIndex: null,\n        width: this._getLeftGridWidth(props)\n      }));\n    }\n  }, {\n    key: \"_renderTopRightGrid\",\n    value: function _renderTopRightGrid(props) {\n      var columnCount = props.columnCount,\n          enableFixedRowScroll = props.enableFixedRowScroll,\n          fixedColumnCount = props.fixedColumnCount,\n          fixedRowCount = props.fixedRowCount,\n          scrollLeft = props.scrollLeft,\n          hideTopRightGridScrollbar = props.hideTopRightGridScrollbar;\n      var _this$state5 = this.state,\n          showHorizontalScrollbar = _this$state5.showHorizontalScrollbar,\n          scrollbarSize = _this$state5.scrollbarSize;\n\n      if (!fixedRowCount) {\n        return null;\n      }\n\n      var additionalColumnCount = showHorizontalScrollbar ? 1 : 0,\n          height = this._getTopGridHeight(props),\n          width = this._getRightGridWidth(props),\n          additionalHeight = showHorizontalScrollbar ? scrollbarSize : 0;\n\n      var gridHeight = height,\n          style = this._topRightGridStyle;\n\n      if (hideTopRightGridScrollbar) {\n        gridHeight = height + additionalHeight;\n        style = _objectSpread({}, this._topRightGridStyle, {\n          left: 0\n        });\n      }\n\n      var topRightGrid = React.createElement(Grid, _extends({}, props, {\n        cellRenderer: this._cellRendererTopRightGrid,\n        className: this.props.classNameTopRightGrid,\n        columnCount: Math.max(0, columnCount - fixedColumnCount) + additionalColumnCount,\n        columnWidth: this._columnWidthRightGrid,\n        deferredMeasurementCache: this._deferredMeasurementCacheTopRightGrid,\n        height: gridHeight,\n        onScroll: enableFixedRowScroll ? this._onScrollLeft : undefined,\n        ref: this._topRightGridRef,\n        rowCount: fixedRowCount,\n        scrollLeft: scrollLeft,\n        style: style,\n        tabIndex: null,\n        width: width\n      }));\n\n      if (hideTopRightGridScrollbar) {\n        return React.createElement(\"div\", {\n          className: \"TopRightGrid_ScrollWrapper\",\n          style: _objectSpread({}, this._topRightGridStyle, {\n            height: height,\n            width: width,\n            overflowX: 'hidden'\n          })\n        }, topRightGrid);\n      }\n\n      return topRightGrid;\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps, prevState) {\n      if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {\n        return {\n          scrollLeft: nextProps.scrollLeft != null && nextProps.scrollLeft >= 0 ? nextProps.scrollLeft : prevState.scrollLeft,\n          scrollTop: nextProps.scrollTop != null && nextProps.scrollTop >= 0 ? nextProps.scrollTop : prevState.scrollTop\n        };\n      }\n\n      return null;\n    }\n  }]);\n\n  return MultiGrid;\n}(React.PureComponent);\n\n_defineProperty(MultiGrid, \"defaultProps\", {\n  classNameBottomLeftGrid: '',\n  classNameBottomRightGrid: '',\n  classNameTopLeftGrid: '',\n  classNameTopRightGrid: '',\n  enableFixedColumnScroll: false,\n  enableFixedRowScroll: false,\n  fixedColumnCount: 0,\n  fixedRowCount: 0,\n  scrollToColumn: -1,\n  scrollToRow: -1,\n  style: {},\n  styleBottomLeftGrid: {},\n  styleBottomRightGrid: {},\n  styleTopLeftGrid: {},\n  styleTopRightGrid: {},\n  hideTopRightGridScrollbar: false,\n  hideBottomLeftGridScrollbar: false\n});\n\nMultiGrid.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  classNameBottomLeftGrid: PropTypes.string.isRequired,\n  classNameBottomRightGrid: PropTypes.string.isRequired,\n  classNameTopLeftGrid: PropTypes.string.isRequired,\n  classNameTopRightGrid: PropTypes.string.isRequired,\n  enableFixedColumnScroll: PropTypes.bool.isRequired,\n  enableFixedRowScroll: PropTypes.bool.isRequired,\n  fixedColumnCount: PropTypes.number.isRequired,\n  fixedRowCount: PropTypes.number.isRequired,\n  onScrollbarPresenceChange: PropTypes.func,\n  style: PropTypes.object.isRequired,\n  styleBottomLeftGrid: PropTypes.object.isRequired,\n  styleBottomRightGrid: PropTypes.object.isRequired,\n  styleTopLeftGrid: PropTypes.object.isRequired,\n  styleTopRightGrid: PropTypes.object.isRequired,\n  hideTopRightGridScrollbar: PropTypes.bool,\n  hideBottomLeftGridScrollbar: PropTypes.bool\n} : {};\npolyfill(MultiGrid);\nexport default MultiGrid;","import * as React from 'react';\nexport default function defaultHeaderRowRenderer(_ref) {\n  var className = _ref.className,\n      columns = _ref.columns,\n      style = _ref.style;\n  return React.createElement(\"div\", {\n    className: className,\n    role: \"row\",\n    style: style\n  }, columns);\n}\ndefaultHeaderRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_HeaderRowRendererParams === PropTypes.any ? {} : bpfrpt_proptype_HeaderRowRendererParams;\nimport { bpfrpt_proptype_HeaderRowRendererParams } from \"./types\";\nimport PropTypes from \"prop-types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n/**\n * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.\n */\n\nvar ScrollSync =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(ScrollSync, _React$PureComponent);\n\n  function ScrollSync(props, context) {\n    var _this;\n\n    _classCallCheck(this, ScrollSync);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(ScrollSync).call(this, props, context));\n    _this.state = {\n      clientHeight: 0,\n      clientWidth: 0,\n      scrollHeight: 0,\n      scrollLeft: 0,\n      scrollTop: 0,\n      scrollWidth: 0\n    };\n    _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this));\n    return _this;\n  }\n\n  _createClass(ScrollSync, [{\n    key: \"render\",\n    value: function render() {\n      var children = this.props.children;\n      var _this$state = this.state,\n          clientHeight = _this$state.clientHeight,\n          clientWidth = _this$state.clientWidth,\n          scrollHeight = _this$state.scrollHeight,\n          scrollLeft = _this$state.scrollLeft,\n          scrollTop = _this$state.scrollTop,\n          scrollWidth = _this$state.scrollWidth;\n      return children({\n        clientHeight: clientHeight,\n        clientWidth: clientWidth,\n        onScroll: this._onScroll,\n        scrollHeight: scrollHeight,\n        scrollLeft: scrollLeft,\n        scrollTop: scrollTop,\n        scrollWidth: scrollWidth\n      });\n    }\n  }, {\n    key: \"_onScroll\",\n    value: function _onScroll(_ref) {\n      var clientHeight = _ref.clientHeight,\n          clientWidth = _ref.clientWidth,\n          scrollHeight = _ref.scrollHeight,\n          scrollLeft = _ref.scrollLeft,\n          scrollTop = _ref.scrollTop,\n          scrollWidth = _ref.scrollWidth;\n      this.setState({\n        clientHeight: clientHeight,\n        clientWidth: clientWidth,\n        scrollHeight: scrollHeight,\n        scrollLeft: scrollLeft,\n        scrollTop: scrollTop,\n        scrollWidth: scrollWidth\n      });\n    }\n  }]);\n\n  return ScrollSync;\n}(React.PureComponent);\n\nexport { ScrollSync as default };\nScrollSync.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /**\n   * Function responsible for rendering 2 or more virtualized components.\n   * This function should implement the following signature:\n   * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element\n   */\n  children: PropTypes.func.isRequired\n} : {};","var SortDirection = {\n  /**\n   * Sort items in ascending order.\n   * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).\n   */\n  ASC: 'ASC',\n\n  /**\n   * Sort items in descending order.\n   * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).\n   */\n  DESC: 'DESC'\n};\nexport default SortDirection;","import clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport SortDirection from './SortDirection';\n/**\n * Displayed beside a header to indicate that a Table is currently sorted by this column.\n */\n\nexport default function SortIndicator(_ref) {\n  var sortDirection = _ref.sortDirection;\n  var classNames = clsx('ReactVirtualized__Table__sortableHeaderIcon', {\n    'ReactVirtualized__Table__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,\n    'ReactVirtualized__Table__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC\n  });\n  return React.createElement(\"svg\", {\n    className: classNames,\n    width: 18,\n    height: 18,\n    viewBox: \"0 0 24 24\"\n  }, sortDirection === SortDirection.ASC ? React.createElement(\"path\", {\n    d: \"M7 14l5-5 5 5z\"\n  }) : React.createElement(\"path\", {\n    d: \"M7 10l5 5 5-5z\"\n  }), React.createElement(\"path\", {\n    d: \"M0 0h24v24H0z\",\n    fill: \"none\"\n  }));\n}\nSortIndicator.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC])\n} : {};","import * as React from 'react';\nimport SortIndicator from './SortIndicator';\n\n/**\n * Default table header renderer.\n */\nexport default function defaultHeaderRenderer(_ref) {\n  var dataKey = _ref.dataKey,\n      label = _ref.label,\n      sortBy = _ref.sortBy,\n      sortDirection = _ref.sortDirection;\n  var showSortIndicator = sortBy === dataKey;\n  var children = [React.createElement(\"span\", {\n    className: \"ReactVirtualized__Table__headerTruncatedText\",\n    key: \"label\",\n    title: typeof label === 'string' ? label : null\n  }, label)];\n\n  if (showSortIndicator) {\n    children.push(React.createElement(SortIndicator, {\n      key: \"SortIndicator\",\n      sortDirection: sortDirection\n    }));\n  }\n\n  return children;\n}\ndefaultHeaderRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_HeaderRendererParams === PropTypes.any ? {} : bpfrpt_proptype_HeaderRendererParams;\nimport { bpfrpt_proptype_HeaderRendererParams } from \"./types\";\nimport PropTypes from \"prop-types\";","import _extends from \"@babel/runtime/helpers/extends\";\nimport * as React from 'react';\n\n/**\n * Default row renderer for Table.\n */\nexport default function defaultRowRenderer(_ref) {\n  var className = _ref.className,\n      columns = _ref.columns,\n      index = _ref.index,\n      key = _ref.key,\n      onRowClick = _ref.onRowClick,\n      onRowDoubleClick = _ref.onRowDoubleClick,\n      onRowMouseOut = _ref.onRowMouseOut,\n      onRowMouseOver = _ref.onRowMouseOver,\n      onRowRightClick = _ref.onRowRightClick,\n      rowData = _ref.rowData,\n      style = _ref.style;\n  var a11yProps = {\n    'aria-rowindex': index + 1\n  };\n\n  if (onRowClick || onRowDoubleClick || onRowMouseOut || onRowMouseOver || onRowRightClick) {\n    a11yProps['aria-label'] = 'row';\n    a11yProps.tabIndex = 0;\n\n    if (onRowClick) {\n      a11yProps.onClick = function (event) {\n        return onRowClick({\n          event: event,\n          index: index,\n          rowData: rowData\n        });\n      };\n    }\n\n    if (onRowDoubleClick) {\n      a11yProps.onDoubleClick = function (event) {\n        return onRowDoubleClick({\n          event: event,\n          index: index,\n          rowData: rowData\n        });\n      };\n    }\n\n    if (onRowMouseOut) {\n      a11yProps.onMouseOut = function (event) {\n        return onRowMouseOut({\n          event: event,\n          index: index,\n          rowData: rowData\n        });\n      };\n    }\n\n    if (onRowMouseOver) {\n      a11yProps.onMouseOver = function (event) {\n        return onRowMouseOver({\n          event: event,\n          index: index,\n          rowData: rowData\n        });\n      };\n    }\n\n    if (onRowRightClick) {\n      a11yProps.onContextMenu = function (event) {\n        return onRowRightClick({\n          event: event,\n          index: index,\n          rowData: rowData\n        });\n      };\n    }\n  }\n\n  return React.createElement(\"div\", _extends({}, a11yProps, {\n    className: className,\n    key: key,\n    role: \"row\",\n    style: style\n  }), columns);\n}\ndefaultRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_RowRendererParams === PropTypes.any ? {} : bpfrpt_proptype_RowRendererParams;\nimport { bpfrpt_proptype_RowRendererParams } from \"./types\";\nimport PropTypes from \"prop-types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport defaultHeaderRenderer from './defaultHeaderRenderer';\nimport defaultCellRenderer from './defaultCellRenderer';\nimport defaultCellDataGetter from './defaultCellDataGetter';\nimport SortDirection from './SortDirection';\n/**\n * Describes the header and cell contents of a table column.\n */\n\nvar Column =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inherits(Column, _React$Component);\n\n  function Column() {\n    _classCallCheck(this, Column);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(Column).apply(this, arguments));\n  }\n\n  return Column;\n}(React.Component);\n\n_defineProperty(Column, \"defaultProps\", {\n  cellDataGetter: defaultCellDataGetter,\n  cellRenderer: defaultCellRenderer,\n  defaultSortDirection: SortDirection.ASC,\n  flexGrow: 0,\n  flexShrink: 1,\n  headerRenderer: defaultHeaderRenderer,\n  style: {}\n});\n\nexport { Column as default };\nColumn.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /** Optional aria-label value to set on the column header */\n  'aria-label': PropTypes.string,\n\n  /**\n   * Callback responsible for returning a cell's data, given its :dataKey\n   * ({ columnData: any, dataKey: string, rowData: any }): any\n   */\n  cellDataGetter: PropTypes.func,\n\n  /**\n   * Callback responsible for rendering a cell's contents.\n   * ({ cellData: any, columnData: any, dataKey: string, rowData: any, rowIndex: number }): node\n   */\n  cellRenderer: PropTypes.func,\n\n  /** Optional CSS class to apply to cell */\n  className: PropTypes.string,\n\n  /** Optional additional data passed to this column's :cellDataGetter */\n  columnData: PropTypes.object,\n\n  /** Uniquely identifies the row-data attribute corresponding to this cell */\n  dataKey: PropTypes.any.isRequired,\n\n  /** Optional direction to be used when clicked the first time */\n  defaultSortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\n  /** If sort is enabled for the table at large, disable it for this column */\n  disableSort: PropTypes.bool,\n\n  /** Flex grow style; defaults to 0 */\n  flexGrow: PropTypes.number,\n\n  /** Flex shrink style; defaults to 1 */\n  flexShrink: PropTypes.number,\n\n  /** Optional CSS class to apply to this column's header */\n  headerClassName: PropTypes.string,\n\n  /**\n   * Optional callback responsible for rendering a column header contents.\n   * ({ columnData: object, dataKey: string, disableSort: boolean, label: node, sortBy: string, sortDirection: string }): PropTypes.node\n   */\n  headerRenderer: PropTypes.func.isRequired,\n\n  /** Optional inline style to apply to this column's header */\n  headerStyle: PropTypes.object,\n\n  /** Optional id to set on the column header */\n  id: PropTypes.string,\n\n  /** Header label for this column */\n  label: PropTypes.node,\n\n  /** Maximum width of column; this property will only be used if :flexGrow is > 0. */\n  maxWidth: PropTypes.number,\n\n  /** Minimum width of column. */\n  minWidth: PropTypes.number,\n\n  /** Optional inline style to apply to cell */\n  style: PropTypes.object,\n\n  /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */\n  width: PropTypes.number.isRequired\n} : {};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport clsx from 'clsx';\nimport Column from './Column';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport Grid, { accessibilityOverscanIndicesGetter } from '../Grid';\nimport defaultRowRenderer from './defaultRowRenderer';\nimport defaultHeaderRowRenderer from './defaultHeaderRowRenderer';\nimport SortDirection from './SortDirection';\n/**\n * Table component with fixed headers and virtualized rows for improved performance with large data sets.\n * This component expects explicit width, height, and padding parameters.\n */\n\nvar Table =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(Table, _React$PureComponent);\n\n  function Table(props) {\n    var _this;\n\n    _classCallCheck(this, Table);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(Table).call(this, props));\n    _this.state = {\n      scrollbarWidth: 0\n    };\n    _this._createColumn = _this._createColumn.bind(_assertThisInitialized(_this));\n    _this._createRow = _this._createRow.bind(_assertThisInitialized(_this));\n    _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this));\n    _this._onSectionRendered = _this._onSectionRendered.bind(_assertThisInitialized(_this));\n    _this._setRef = _this._setRef.bind(_assertThisInitialized(_this));\n    return _this;\n  }\n\n  _createClass(Table, [{\n    key: \"forceUpdateGrid\",\n    value: function forceUpdateGrid() {\n      if (this.Grid) {\n        this.Grid.forceUpdate();\n      }\n    }\n    /** See Grid#getOffsetForCell */\n\n  }, {\n    key: \"getOffsetForRow\",\n    value: function getOffsetForRow(_ref) {\n      var alignment = _ref.alignment,\n          index = _ref.index;\n\n      if (this.Grid) {\n        var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({\n          alignment: alignment,\n          rowIndex: index\n        }),\n            scrollTop = _this$Grid$getOffsetF.scrollTop;\n\n        return scrollTop;\n      }\n\n      return 0;\n    }\n    /** CellMeasurer compatibility */\n\n  }, {\n    key: \"invalidateCellSizeAfterRender\",\n    value: function invalidateCellSizeAfterRender(_ref2) {\n      var columnIndex = _ref2.columnIndex,\n          rowIndex = _ref2.rowIndex;\n\n      if (this.Grid) {\n        this.Grid.invalidateCellSizeAfterRender({\n          rowIndex: rowIndex,\n          columnIndex: columnIndex\n        });\n      }\n    }\n    /** See Grid#measureAllCells */\n\n  }, {\n    key: \"measureAllRows\",\n    value: function measureAllRows() {\n      if (this.Grid) {\n        this.Grid.measureAllCells();\n      }\n    }\n    /** CellMeasurer compatibility */\n\n  }, {\n    key: \"recomputeGridSize\",\n    value: function recomputeGridSize() {\n      var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n          _ref3$columnIndex = _ref3.columnIndex,\n          columnIndex = _ref3$columnIndex === void 0 ? 0 : _ref3$columnIndex,\n          _ref3$rowIndex = _ref3.rowIndex,\n          rowIndex = _ref3$rowIndex === void 0 ? 0 : _ref3$rowIndex;\n\n      if (this.Grid) {\n        this.Grid.recomputeGridSize({\n          rowIndex: rowIndex,\n          columnIndex: columnIndex\n        });\n      }\n    }\n    /** See Grid#recomputeGridSize */\n\n  }, {\n    key: \"recomputeRowHeights\",\n    value: function recomputeRowHeights() {\n      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n      if (this.Grid) {\n        this.Grid.recomputeGridSize({\n          rowIndex: index\n        });\n      }\n    }\n    /** See Grid#scrollToPosition */\n\n  }, {\n    key: \"scrollToPosition\",\n    value: function scrollToPosition() {\n      var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n      if (this.Grid) {\n        this.Grid.scrollToPosition({\n          scrollTop: scrollTop\n        });\n      }\n    }\n    /** See Grid#scrollToCell */\n\n  }, {\n    key: \"scrollToRow\",\n    value: function scrollToRow() {\n      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n      if (this.Grid) {\n        this.Grid.scrollToCell({\n          columnIndex: 0,\n          rowIndex: index\n        });\n      }\n    }\n  }, {\n    key: \"getScrollbarWidth\",\n    value: function getScrollbarWidth() {\n      if (this.Grid) {\n        var _Grid = findDOMNode(this.Grid);\n\n        var clientWidth = _Grid.clientWidth || 0;\n        var offsetWidth = _Grid.offsetWidth || 0;\n        return offsetWidth - clientWidth;\n      }\n\n      return 0;\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this._setScrollbarWidth();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      this._setScrollbarWidth();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          children = _this$props.children,\n          className = _this$props.className,\n          disableHeader = _this$props.disableHeader,\n          gridClassName = _this$props.gridClassName,\n          gridStyle = _this$props.gridStyle,\n          headerHeight = _this$props.headerHeight,\n          headerRowRenderer = _this$props.headerRowRenderer,\n          height = _this$props.height,\n          id = _this$props.id,\n          noRowsRenderer = _this$props.noRowsRenderer,\n          rowClassName = _this$props.rowClassName,\n          rowStyle = _this$props.rowStyle,\n          scrollToIndex = _this$props.scrollToIndex,\n          style = _this$props.style,\n          width = _this$props.width;\n      var scrollbarWidth = this.state.scrollbarWidth;\n      var availableRowsHeight = disableHeader ? height : height - headerHeight;\n      var rowClass = typeof rowClassName === 'function' ? rowClassName({\n        index: -1\n      }) : rowClassName;\n      var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({\n        index: -1\n      }) : rowStyle; // Precompute and cache column styles before rendering rows and columns to speed things up\n\n      this._cachedColumnStyles = [];\n      React.Children.toArray(children).forEach(function (column, index) {\n        var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style);\n\n        _this2._cachedColumnStyles[index] = _objectSpread({\n          overflow: 'hidden'\n        }, flexStyles);\n      }); // Note that we specify :rowCount, :scrollbarWidth, :sortBy, and :sortDirection as properties on Grid even though these have nothing to do with Grid.\n      // This is done because Grid is a pure component and won't update unless its properties or state has changed.\n      // Any property that should trigger a re-render of Grid then is specified here to avoid a stale display.\n\n      return React.createElement(\"div\", {\n        \"aria-label\": this.props['aria-label'],\n        \"aria-labelledby\": this.props['aria-labelledby'],\n        \"aria-colcount\": React.Children.toArray(children).length,\n        \"aria-rowcount\": this.props.rowCount,\n        className: clsx('ReactVirtualized__Table', className),\n        id: id,\n        role: \"grid\",\n        style: style\n      }, !disableHeader && headerRowRenderer({\n        className: clsx('ReactVirtualized__Table__headerRow', rowClass),\n        columns: this._getHeaderColumns(),\n        style: _objectSpread({\n          height: headerHeight,\n          overflow: 'hidden',\n          paddingRight: scrollbarWidth,\n          width: width\n        }, rowStyleObject)\n      }), React.createElement(Grid, _extends({}, this.props, {\n        \"aria-readonly\": null,\n        autoContainerWidth: true,\n        className: clsx('ReactVirtualized__Table__Grid', gridClassName),\n        cellRenderer: this._createRow,\n        columnWidth: width,\n        columnCount: 1,\n        height: availableRowsHeight,\n        id: undefined,\n        noContentRenderer: noRowsRenderer,\n        onScroll: this._onScroll,\n        onSectionRendered: this._onSectionRendered,\n        ref: this._setRef,\n        role: \"rowgroup\",\n        scrollbarWidth: scrollbarWidth,\n        scrollToRow: scrollToIndex,\n        style: _objectSpread({}, gridStyle, {\n          overflowX: 'hidden'\n        })\n      })));\n    }\n  }, {\n    key: \"_createColumn\",\n    value: function _createColumn(_ref4) {\n      var column = _ref4.column,\n          columnIndex = _ref4.columnIndex,\n          isScrolling = _ref4.isScrolling,\n          parent = _ref4.parent,\n          rowData = _ref4.rowData,\n          rowIndex = _ref4.rowIndex;\n      var onColumnClick = this.props.onColumnClick;\n      var _column$props = column.props,\n          cellDataGetter = _column$props.cellDataGetter,\n          cellRenderer = _column$props.cellRenderer,\n          className = _column$props.className,\n          columnData = _column$props.columnData,\n          dataKey = _column$props.dataKey,\n          id = _column$props.id;\n      var cellData = cellDataGetter({\n        columnData: columnData,\n        dataKey: dataKey,\n        rowData: rowData\n      });\n      var renderedCell = cellRenderer({\n        cellData: cellData,\n        columnData: columnData,\n        columnIndex: columnIndex,\n        dataKey: dataKey,\n        isScrolling: isScrolling,\n        parent: parent,\n        rowData: rowData,\n        rowIndex: rowIndex\n      });\n\n      var onClick = function onClick(event) {\n        onColumnClick && onColumnClick({\n          columnData: columnData,\n          dataKey: dataKey,\n          event: event\n        });\n      };\n\n      var style = this._cachedColumnStyles[columnIndex];\n      var title = typeof renderedCell === 'string' ? renderedCell : null; // Avoid using object-spread syntax with multiple objects here,\n      // Since it results in an extra method call to 'babel-runtime/helpers/extends'\n      // See PR https://github.com/bvaughn/react-virtualized/pull/942\n\n      return React.createElement(\"div\", {\n        \"aria-colindex\": columnIndex + 1,\n        \"aria-describedby\": id,\n        className: clsx('ReactVirtualized__Table__rowColumn', className),\n        key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,\n        onClick: onClick,\n        role: \"gridcell\",\n        style: style,\n        title: title\n      }, renderedCell);\n    }\n  }, {\n    key: \"_createHeader\",\n    value: function _createHeader(_ref5) {\n      var column = _ref5.column,\n          index = _ref5.index;\n      var _this$props2 = this.props,\n          headerClassName = _this$props2.headerClassName,\n          headerStyle = _this$props2.headerStyle,\n          onHeaderClick = _this$props2.onHeaderClick,\n          sort = _this$props2.sort,\n          sortBy = _this$props2.sortBy,\n          sortDirection = _this$props2.sortDirection;\n      var _column$props2 = column.props,\n          columnData = _column$props2.columnData,\n          dataKey = _column$props2.dataKey,\n          defaultSortDirection = _column$props2.defaultSortDirection,\n          disableSort = _column$props2.disableSort,\n          headerRenderer = _column$props2.headerRenderer,\n          id = _column$props2.id,\n          label = _column$props2.label;\n      var sortEnabled = !disableSort && sort;\n      var classNames = clsx('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {\n        ReactVirtualized__Table__sortableHeaderColumn: sortEnabled\n      });\n\n      var style = this._getFlexStyleForColumn(column, _objectSpread({}, headerStyle, {}, column.props.headerStyle));\n\n      var renderedHeader = headerRenderer({\n        columnData: columnData,\n        dataKey: dataKey,\n        disableSort: disableSort,\n        label: label,\n        sortBy: sortBy,\n        sortDirection: sortDirection\n      });\n      var headerOnClick, headerOnKeyDown, headerTabIndex, headerAriaSort, headerAriaLabel;\n\n      if (sortEnabled || onHeaderClick) {\n        // If this is a sortable header, clicking it should update the table data's sorting.\n        var isFirstTimeSort = sortBy !== dataKey; // If this is the firstTime sort of this column, use the column default sort order.\n        // Otherwise, invert the direction of the sort.\n\n        var newSortDirection = isFirstTimeSort ? defaultSortDirection : sortDirection === SortDirection.DESC ? SortDirection.ASC : SortDirection.DESC;\n\n        var onClick = function onClick(event) {\n          sortEnabled && sort({\n            defaultSortDirection: defaultSortDirection,\n            event: event,\n            sortBy: dataKey,\n            sortDirection: newSortDirection\n          });\n          onHeaderClick && onHeaderClick({\n            columnData: columnData,\n            dataKey: dataKey,\n            event: event\n          });\n        };\n\n        var onKeyDown = function onKeyDown(event) {\n          if (event.key === 'Enter' || event.key === ' ') {\n            onClick(event);\n          }\n        };\n\n        headerAriaLabel = column.props['aria-label'] || label || dataKey;\n        headerAriaSort = 'none';\n        headerTabIndex = 0;\n        headerOnClick = onClick;\n        headerOnKeyDown = onKeyDown;\n      }\n\n      if (sortBy === dataKey) {\n        headerAriaSort = sortDirection === SortDirection.ASC ? 'ascending' : 'descending';\n      } // Avoid using object-spread syntax with multiple objects here,\n      // Since it results in an extra method call to 'babel-runtime/helpers/extends'\n      // See PR https://github.com/bvaughn/react-virtualized/pull/942\n\n\n      return React.createElement(\"div\", {\n        \"aria-label\": headerAriaLabel,\n        \"aria-sort\": headerAriaSort,\n        className: classNames,\n        id: id,\n        key: 'Header-Col' + index,\n        onClick: headerOnClick,\n        onKeyDown: headerOnKeyDown,\n        role: \"columnheader\",\n        style: style,\n        tabIndex: headerTabIndex\n      }, renderedHeader);\n    }\n  }, {\n    key: \"_createRow\",\n    value: function _createRow(_ref6) {\n      var _this3 = this;\n\n      var index = _ref6.rowIndex,\n          isScrolling = _ref6.isScrolling,\n          key = _ref6.key,\n          parent = _ref6.parent,\n          style = _ref6.style;\n      var _this$props3 = this.props,\n          children = _this$props3.children,\n          onRowClick = _this$props3.onRowClick,\n          onRowDoubleClick = _this$props3.onRowDoubleClick,\n          onRowRightClick = _this$props3.onRowRightClick,\n          onRowMouseOver = _this$props3.onRowMouseOver,\n          onRowMouseOut = _this$props3.onRowMouseOut,\n          rowClassName = _this$props3.rowClassName,\n          rowGetter = _this$props3.rowGetter,\n          rowRenderer = _this$props3.rowRenderer,\n          rowStyle = _this$props3.rowStyle;\n      var scrollbarWidth = this.state.scrollbarWidth;\n      var rowClass = typeof rowClassName === 'function' ? rowClassName({\n        index: index\n      }) : rowClassName;\n      var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({\n        index: index\n      }) : rowStyle;\n      var rowData = rowGetter({\n        index: index\n      });\n      var columns = React.Children.toArray(children).map(function (column, columnIndex) {\n        return _this3._createColumn({\n          column: column,\n          columnIndex: columnIndex,\n          isScrolling: isScrolling,\n          parent: parent,\n          rowData: rowData,\n          rowIndex: index,\n          scrollbarWidth: scrollbarWidth\n        });\n      });\n      var className = clsx('ReactVirtualized__Table__row', rowClass);\n\n      var flattenedStyle = _objectSpread({}, style, {\n        height: this._getRowHeight(index),\n        overflow: 'hidden',\n        paddingRight: scrollbarWidth\n      }, rowStyleObject);\n\n      return rowRenderer({\n        className: className,\n        columns: columns,\n        index: index,\n        isScrolling: isScrolling,\n        key: key,\n        onRowClick: onRowClick,\n        onRowDoubleClick: onRowDoubleClick,\n        onRowRightClick: onRowRightClick,\n        onRowMouseOver: onRowMouseOver,\n        onRowMouseOut: onRowMouseOut,\n        rowData: rowData,\n        style: flattenedStyle\n      });\n    }\n    /**\n     * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).\n     */\n\n  }, {\n    key: \"_getFlexStyleForColumn\",\n    value: function _getFlexStyleForColumn(column) {\n      var customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var flexValue = \"\".concat(column.props.flexGrow, \" \").concat(column.props.flexShrink, \" \").concat(column.props.width, \"px\");\n\n      var style = _objectSpread({}, customStyle, {\n        flex: flexValue,\n        msFlex: flexValue,\n        WebkitFlex: flexValue\n      });\n\n      if (column.props.maxWidth) {\n        style.maxWidth = column.props.maxWidth;\n      }\n\n      if (column.props.minWidth) {\n        style.minWidth = column.props.minWidth;\n      }\n\n      return style;\n    }\n  }, {\n    key: \"_getHeaderColumns\",\n    value: function _getHeaderColumns() {\n      var _this4 = this;\n\n      var _this$props4 = this.props,\n          children = _this$props4.children,\n          disableHeader = _this$props4.disableHeader;\n      var items = disableHeader ? [] : React.Children.toArray(children);\n      return items.map(function (column, index) {\n        return _this4._createHeader({\n          column: column,\n          index: index\n        });\n      });\n    }\n  }, {\n    key: \"_getRowHeight\",\n    value: function _getRowHeight(rowIndex) {\n      var rowHeight = this.props.rowHeight;\n      return typeof rowHeight === 'function' ? rowHeight({\n        index: rowIndex\n      }) : rowHeight;\n    }\n  }, {\n    key: \"_onScroll\",\n    value: function _onScroll(_ref7) {\n      var clientHeight = _ref7.clientHeight,\n          scrollHeight = _ref7.scrollHeight,\n          scrollTop = _ref7.scrollTop;\n      var onScroll = this.props.onScroll;\n      onScroll({\n        clientHeight: clientHeight,\n        scrollHeight: scrollHeight,\n        scrollTop: scrollTop\n      });\n    }\n  }, {\n    key: \"_onSectionRendered\",\n    value: function _onSectionRendered(_ref8) {\n      var rowOverscanStartIndex = _ref8.rowOverscanStartIndex,\n          rowOverscanStopIndex = _ref8.rowOverscanStopIndex,\n          rowStartIndex = _ref8.rowStartIndex,\n          rowStopIndex = _ref8.rowStopIndex;\n      var onRowsRendered = this.props.onRowsRendered;\n      onRowsRendered({\n        overscanStartIndex: rowOverscanStartIndex,\n        overscanStopIndex: rowOverscanStopIndex,\n        startIndex: rowStartIndex,\n        stopIndex: rowStopIndex\n      });\n    }\n  }, {\n    key: \"_setRef\",\n    value: function _setRef(ref) {\n      this.Grid = ref;\n    }\n  }, {\n    key: \"_setScrollbarWidth\",\n    value: function _setScrollbarWidth() {\n      var scrollbarWidth = this.getScrollbarWidth();\n      this.setState({\n        scrollbarWidth: scrollbarWidth\n      });\n    }\n  }]);\n\n  return Table;\n}(React.PureComponent);\n\n_defineProperty(Table, \"defaultProps\", {\n  disableHeader: false,\n  estimatedRowSize: 30,\n  headerHeight: 0,\n  headerStyle: {},\n  noRowsRenderer: function noRowsRenderer() {\n    return null;\n  },\n  onRowsRendered: function onRowsRendered() {\n    return null;\n  },\n  onScroll: function onScroll() {\n    return null;\n  },\n  overscanIndicesGetter: accessibilityOverscanIndicesGetter,\n  overscanRowCount: 10,\n  rowRenderer: defaultRowRenderer,\n  headerRowRenderer: defaultHeaderRowRenderer,\n  rowStyle: {},\n  scrollToAlignment: 'auto',\n  scrollToIndex: -1,\n  style: {}\n});\n\nexport { Table as default };\nTable.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  /** This is just set on the grid top element. */\n  'aria-label': PropTypes.string,\n\n  /** This is just set on the grid top element. */\n  'aria-labelledby': PropTypes.string,\n\n  /**\n   * Removes fixed height from the scrollingContainer so that the total height\n   * of rows can stretch the window. Intended for use with WindowScroller\n   */\n  autoHeight: PropTypes.bool,\n\n  /** One or more Columns describing the data displayed in this row */\n  children: function children(props) {\n    var children = React.Children.toArray(props.children);\n\n    for (var i = 0; i < children.length; i++) {\n      var childType = children[i].type;\n\n      if (childType !== Column && !(childType.prototype instanceof Column)) {\n        return new Error('Table only accepts children of type Column');\n      }\n    }\n  },\n\n  /** Optional CSS class name */\n  className: PropTypes.string,\n\n  /** Disable rendering the header at all */\n  disableHeader: PropTypes.bool,\n\n  /**\n   * Used to estimate the total height of a Table before all of its rows have actually been measured.\n   * The estimated total height is adjusted as rows are rendered.\n   */\n  estimatedRowSize: PropTypes.number.isRequired,\n\n  /** Optional custom CSS class name to attach to inner Grid element. */\n  gridClassName: PropTypes.string,\n\n  /** Optional inline style to attach to inner Grid element. */\n  gridStyle: PropTypes.object,\n\n  /** Optional CSS class to apply to all column headers */\n  headerClassName: PropTypes.string,\n\n  /** Fixed height of header row */\n  headerHeight: PropTypes.number.isRequired,\n\n  /**\n   * Responsible for rendering a table row given an array of columns:\n   * Should implement the following interface: ({\n   *   className: string,\n   *   columns: any[],\n   *   style: any\n   * }): PropTypes.node\n   */\n  headerRowRenderer: PropTypes.func,\n\n  /** Optional custom inline style to attach to table header columns. */\n  headerStyle: PropTypes.object,\n\n  /** Fixed/available height for out DOM element */\n  height: PropTypes.number.isRequired,\n\n  /** Optional id */\n  id: PropTypes.string,\n\n  /** Optional renderer to be used in place of table body rows when rowCount is 0 */\n  noRowsRenderer: PropTypes.func,\n\n  /**\n   * Optional callback when a column is clicked.\n   * ({ columnData: any, dataKey: string }): void\n   */\n  onColumnClick: PropTypes.func,\n\n  /**\n   * Optional callback when a column's header is clicked.\n   * ({ columnData: any, dataKey: string }): void\n   */\n  onHeaderClick: PropTypes.func,\n\n  /**\n   * Callback invoked when a user clicks on a table row.\n   * ({ index: number }): void\n   */\n  onRowClick: PropTypes.func,\n\n  /**\n   * Callback invoked when a user double-clicks on a table row.\n   * ({ index: number }): void\n   */\n  onRowDoubleClick: PropTypes.func,\n\n  /**\n   * Callback invoked when the mouse leaves a table row.\n   * ({ index: number }): void\n   */\n  onRowMouseOut: PropTypes.func,\n\n  /**\n   * Callback invoked when a user moves the mouse over a table row.\n   * ({ index: number }): void\n   */\n  onRowMouseOver: PropTypes.func,\n\n  /**\n   * Callback invoked when a user right-clicks on a table row.\n   * ({ index: number }): void\n   */\n  onRowRightClick: PropTypes.func,\n\n  /**\n   * Callback invoked with information about the slice of rows that were just rendered.\n   * ({ startIndex, stopIndex }): void\n   */\n  onRowsRendered: PropTypes.func,\n\n  /**\n   * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n   * This callback can be used to sync scrolling between lists, tables, or grids.\n   * ({ clientHeight, scrollHeight, scrollTop }): void\n   */\n  onScroll: PropTypes.func.isRequired,\n\n  /** See Grid#overscanIndicesGetter */\n  overscanIndicesGetter: PropTypes.func.isRequired,\n\n  /**\n   * Number of rows to render above/below the visible bounds of the list.\n   * These rows can help for smoother scrolling on touch devices.\n   */\n  overscanRowCount: PropTypes.number.isRequired,\n\n  /**\n   * Optional CSS class to apply to all table rows (including the header row).\n   * This property can be a CSS class name (string) or a function that returns a class name.\n   * If a function is provided its signature should be: ({ index: number }): string\n   */\n  rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n  /**\n   * Callback responsible for returning a data row given an index.\n   * ({ index: number }): any\n   */\n  rowGetter: PropTypes.func.isRequired,\n\n  /**\n   * Either a fixed row height (number) or a function that returns the height of a row given its index.\n   * ({ index: number }): number\n   */\n  rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n  /** Number of rows in table. */\n  rowCount: PropTypes.number.isRequired,\n\n  /**\n   * Responsible for rendering a table row given an array of columns:\n   * Should implement the following interface: ({\n   *   className: string,\n   *   columns: Array,\n   *   index: number,\n   *   isScrolling: boolean,\n   *   onRowClick: ?Function,\n   *   onRowDoubleClick: ?Function,\n   *   onRowMouseOver: ?Function,\n   *   onRowMouseOut: ?Function,\n   *   rowData: any,\n   *   style: any\n   * }): PropTypes.node\n   */\n  rowRenderer: PropTypes.func,\n\n  /** Optional custom inline style to attach to table rows. */\n  rowStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired,\n\n  /** See Grid#scrollToAlignment */\n  scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,\n\n  /** Row index to ensure visible (by forcefully scrolling if necessary) */\n  scrollToIndex: PropTypes.number.isRequired,\n\n  /** Vertical offset. */\n  scrollTop: PropTypes.number,\n\n  /**\n   * Sort function to be called if a sortable header is clicked.\n   * Should implement the following interface: ({\n   *   defaultSortDirection: 'ASC' | 'DESC',\n   *   event: MouseEvent,\n   *   sortBy: string,\n   *   sortDirection: SortDirection\n   * }): void\n   */\n  sort: PropTypes.func,\n\n  /** Table data is currently sorted by this :dataKey (if it is sorted at all) */\n  sortBy: PropTypes.string,\n\n  /** Table data is currently sorted in this direction (if it is sorted at all) */\n  sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\n  /** Optional inline style */\n  style: PropTypes.object,\n\n  /** Tab index for focus */\n  tabIndex: PropTypes.number,\n\n  /** Width of list */\n  width: PropTypes.number.isRequired\n} : {};\nimport { bpfrpt_proptype_CellPosition } from \"../Grid\";","/**\n * Default accessor for returning a cell value for a given attribute.\n * This function expects to operate on either a vanilla Object or an Immutable Map.\n * You should override the column's cellDataGetter if your data is some other type of object.\n */\nexport default function defaultCellDataGetter(_ref) {\n  var dataKey = _ref.dataKey,\n      rowData = _ref.rowData;\n\n  if (typeof rowData.get === 'function') {\n    return rowData.get(dataKey);\n  } else {\n    return rowData[dataKey];\n  }\n}\nimport { bpfrpt_proptype_CellDataGetterParams } from \"./types\";","/**\n * Default cell renderer that displays an attribute as a simple string\n * You should override the column's cellRenderer if your data is some other type of object.\n */\nexport default function defaultCellRenderer(_ref) {\n  var cellData = _ref.cellData;\n\n  if (cellData == null) {\n    return '';\n  } else {\n    return String(cellData);\n  }\n}\nimport { bpfrpt_proptype_CellRendererParams } from \"./types\";","import { requestAnimationTimeout, cancelAnimationTimeout } from '../../utils/requestAnimationTimeout';\nvar mountedInstances = [];\nvar originalBodyPointerEvents = null;\nvar disablePointerEventsTimeoutId = null;\n\nfunction enablePointerEventsIfDisabled() {\n  if (disablePointerEventsTimeoutId) {\n    disablePointerEventsTimeoutId = null;\n\n    if (document.body && originalBodyPointerEvents != null) {\n      document.body.style.pointerEvents = originalBodyPointerEvents;\n    }\n\n    originalBodyPointerEvents = null;\n  }\n}\n\nfunction enablePointerEventsAfterDelayCallback() {\n  enablePointerEventsIfDisabled();\n  mountedInstances.forEach(function (instance) {\n    return instance.__resetIsScrolling();\n  });\n}\n\nfunction enablePointerEventsAfterDelay() {\n  if (disablePointerEventsTimeoutId) {\n    cancelAnimationTimeout(disablePointerEventsTimeoutId);\n  }\n\n  var maximumTimeout = 0;\n  mountedInstances.forEach(function (instance) {\n    maximumTimeout = Math.max(maximumTimeout, instance.props.scrollingResetTimeInterval);\n  });\n  disablePointerEventsTimeoutId = requestAnimationTimeout(enablePointerEventsAfterDelayCallback, maximumTimeout);\n}\n\nfunction onScrollWindow(event) {\n  if (event.currentTarget === window && originalBodyPointerEvents == null && document.body) {\n    originalBodyPointerEvents = document.body.style.pointerEvents;\n    document.body.style.pointerEvents = 'none';\n  }\n\n  enablePointerEventsAfterDelay();\n  mountedInstances.forEach(function (instance) {\n    if (instance.props.scrollElement === event.currentTarget) {\n      instance.__handleWindowScrollEvent();\n    }\n  });\n}\n\nexport function registerScrollListener(component, element) {\n  if (!mountedInstances.some(function (instance) {\n    return instance.props.scrollElement === element;\n  })) {\n    element.addEventListener('scroll', onScrollWindow);\n  }\n\n  mountedInstances.push(component);\n}\nexport function unregisterScrollListener(component, element) {\n  mountedInstances = mountedInstances.filter(function (instance) {\n    return instance !== component;\n  });\n\n  if (!mountedInstances.length) {\n    element.removeEventListener('scroll', onScrollWindow);\n\n    if (disablePointerEventsTimeoutId) {\n      cancelAnimationTimeout(disablePointerEventsTimeoutId);\n      enablePointerEventsIfDisabled();\n    }\n  }\n}\nimport { bpfrpt_proptype_WindowScroller } from \"../WindowScroller.js\";","/**\n * Gets the dimensions of the element, accounting for API differences between\n * `window` and other DOM elements.\n */\n// TODO Move this into WindowScroller and import from there\nvar isWindow = function isWindow(element) {\n  return element === window;\n};\n\nvar getBoundingBox = function getBoundingBox(element) {\n  return element.getBoundingClientRect();\n};\n\nexport function getDimensions(scrollElement, props) {\n  if (!scrollElement) {\n    return {\n      height: props.serverHeight,\n      width: props.serverWidth\n    };\n  } else if (isWindow(scrollElement)) {\n    var _window = window,\n        innerHeight = _window.innerHeight,\n        innerWidth = _window.innerWidth;\n    return {\n      height: typeof innerHeight === 'number' ? innerHeight : 0,\n      width: typeof innerWidth === 'number' ? innerWidth : 0\n    };\n  } else {\n    return getBoundingBox(scrollElement);\n  }\n}\n/**\n * Gets the vertical and horizontal position of an element within its scroll container.\n * Elements that have been “scrolled past” return negative values.\n * Handles edge-case where a user is navigating back (history) from an already-scrolled page.\n * In this case the body’s top or left position will be a negative number and this element’s top or left will be increased (by that amount).\n */\n\nexport function getPositionOffset(element, container) {\n  if (isWindow(container) && document.documentElement) {\n    var containerElement = document.documentElement;\n    var elementRect = getBoundingBox(element);\n    var containerRect = getBoundingBox(containerElement);\n    return {\n      top: elementRect.top - containerRect.top,\n      left: elementRect.left - containerRect.left\n    };\n  } else {\n    var scrollOffset = getScrollOffset(container);\n\n    var _elementRect = getBoundingBox(element);\n\n    var _containerRect = getBoundingBox(container);\n\n    return {\n      top: _elementRect.top + scrollOffset.top - _containerRect.top,\n      left: _elementRect.left + scrollOffset.left - _containerRect.left\n    };\n  }\n}\n/**\n * Gets the vertical and horizontal scroll amount of the element, accounting for IE compatibility\n * and API differences between `window` and other DOM elements.\n */\n\nexport function getScrollOffset(element) {\n  if (isWindow(element) && document.documentElement) {\n    return {\n      top: 'scrollY' in window ? window.scrollY : document.documentElement.scrollTop,\n      left: 'scrollX' in window ? window.scrollX : document.documentElement.scrollLeft\n    };\n  } else {\n    return {\n      top: element.scrollTop,\n      left: element.scrollLeft\n    };\n  }\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { registerScrollListener, unregisterScrollListener } from './utils/onScroll';\nimport { getDimensions, getPositionOffset, getScrollOffset } from './utils/dimensions';\nimport createDetectElementResize from '../vendor/detectElementResize';\n\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\nexport var IS_SCROLLING_TIMEOUT = 150;\n\nvar getWindow = function getWindow() {\n  return typeof window !== 'undefined' ? window : undefined;\n};\n\nvar WindowScroller = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n  _inherits(WindowScroller, _React$PureComponent);\n\n  function WindowScroller() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, WindowScroller);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WindowScroller)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_this), \"_window\", getWindow());\n\n    _defineProperty(_assertThisInitialized(_this), \"_isMounted\", false);\n\n    _defineProperty(_assertThisInitialized(_this), \"_positionFromTop\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_positionFromLeft\", 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_detectElementResize\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"_child\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", _objectSpread({}, getDimensions(_this.props.scrollElement, _this.props), {\n      isScrolling: false,\n      scrollLeft: 0,\n      scrollTop: 0\n    }));\n\n    _defineProperty(_assertThisInitialized(_this), \"_registerChild\", function (element) {\n      if (element && !(element instanceof Element)) {\n        console.warn('WindowScroller registerChild expects to be passed Element or null');\n      }\n\n      _this._child = element;\n\n      _this.updatePosition();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onChildScroll\", function (_ref) {\n      var scrollTop = _ref.scrollTop;\n\n      if (_this.state.scrollTop === scrollTop) {\n        return;\n      }\n\n      var scrollElement = _this.props.scrollElement;\n\n      if (scrollElement) {\n        if (typeof scrollElement.scrollTo === 'function') {\n          scrollElement.scrollTo(0, scrollTop + _this._positionFromTop);\n        } else {\n          scrollElement.scrollTop = scrollTop + _this._positionFromTop;\n        }\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_registerResizeListener\", function (element) {\n      if (element === window) {\n        window.addEventListener('resize', _this._onResize, false);\n      } else {\n        _this._detectElementResize.addResizeListener(element, _this._onResize);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_unregisterResizeListener\", function (element) {\n      if (element === window) {\n        window.removeEventListener('resize', _this._onResize, false);\n      } else if (element) {\n        _this._detectElementResize.removeResizeListener(element, _this._onResize);\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_onResize\", function () {\n      _this.updatePosition();\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"__handleWindowScrollEvent\", function () {\n      if (!_this._isMounted) {\n        return;\n      }\n\n      var onScroll = _this.props.onScroll;\n      var scrollElement = _this.props.scrollElement;\n\n      if (scrollElement) {\n        var scrollOffset = getScrollOffset(scrollElement);\n        var scrollLeft = Math.max(0, scrollOffset.left - _this._positionFromLeft);\n        var scrollTop = Math.max(0, scrollOffset.top - _this._positionFromTop);\n\n        _this.setState({\n          isScrolling: true,\n          scrollLeft: scrollLeft,\n          scrollTop: scrollTop\n        });\n\n        onScroll({\n          scrollLeft: scrollLeft,\n          scrollTop: scrollTop\n        });\n      }\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"__resetIsScrolling\", function () {\n      _this.setState({\n        isScrolling: false\n      });\n    });\n\n    return _this;\n  }\n\n  _createClass(WindowScroller, [{\n    key: \"updatePosition\",\n    value: function updatePosition() {\n      var scrollElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.scrollElement;\n      var onResize = this.props.onResize;\n      var _this$state = this.state,\n          height = _this$state.height,\n          width = _this$state.width;\n      var thisNode = this._child || ReactDOM.findDOMNode(this);\n\n      if (thisNode instanceof Element && scrollElement) {\n        var offset = getPositionOffset(thisNode, scrollElement);\n        this._positionFromTop = offset.top;\n        this._positionFromLeft = offset.left;\n      }\n\n      var dimensions = getDimensions(scrollElement, this.props);\n\n      if (height !== dimensions.height || width !== dimensions.width) {\n        this.setState({\n          height: dimensions.height,\n          width: dimensions.width\n        });\n        onResize({\n          height: dimensions.height,\n          width: dimensions.width\n        });\n      }\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var scrollElement = this.props.scrollElement;\n      this._detectElementResize = createDetectElementResize();\n      this.updatePosition(scrollElement);\n\n      if (scrollElement) {\n        registerScrollListener(this, scrollElement);\n\n        this._registerResizeListener(scrollElement);\n      }\n\n      this._isMounted = true;\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      var scrollElement = this.props.scrollElement;\n      var prevScrollElement = prevProps.scrollElement;\n\n      if (prevScrollElement !== scrollElement && prevScrollElement != null && scrollElement != null) {\n        this.updatePosition(scrollElement);\n        unregisterScrollListener(this, prevScrollElement);\n        registerScrollListener(this, scrollElement);\n\n        this._unregisterResizeListener(prevScrollElement);\n\n        this._registerResizeListener(scrollElement);\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      var scrollElement = this.props.scrollElement;\n\n      if (scrollElement) {\n        unregisterScrollListener(this, scrollElement);\n\n        this._unregisterResizeListener(scrollElement);\n      }\n\n      this._isMounted = false;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var children = this.props.children;\n      var _this$state2 = this.state,\n          isScrolling = _this$state2.isScrolling,\n          scrollTop = _this$state2.scrollTop,\n          scrollLeft = _this$state2.scrollLeft,\n          height = _this$state2.height,\n          width = _this$state2.width;\n      return children({\n        onChildScroll: this._onChildScroll,\n        registerChild: this._registerChild,\n        height: height,\n        isScrolling: isScrolling,\n        scrollLeft: scrollLeft,\n        scrollTop: scrollTop,\n        width: width\n      });\n    }\n  }]);\n\n  return WindowScroller;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n  /**\n   * Function responsible for rendering children.\n   * This function should implement the following signature:\n   * ({ height, isScrolling, scrollLeft, scrollTop, width }) => PropTypes.element\n   */\n  \"children\": PropTypes.func.isRequired,\n\n  /** Callback to be invoked on-resize: ({ height, width }) */\n  \"onResize\": PropTypes.func.isRequired,\n\n  /** Callback to be invoked on-scroll: ({ scrollLeft, scrollTop }) */\n  \"onScroll\": PropTypes.func.isRequired,\n\n  /** Element to attach scroll event listeners. Defaults to window. */\n  \"scrollElement\": PropTypes.oneOfType([PropTypes.any, function () {\n    return (typeof Element === \"function\" ? PropTypes.instanceOf(Element) : PropTypes.any).apply(this, arguments);\n  }]),\n\n  /**\n   * Wait this amount of time after the last scroll event before resetting child `pointer-events`.\n   */\n  \"scrollingResetTimeInterval\": PropTypes.number.isRequired,\n\n  /** Height used for server-side rendering */\n  \"serverHeight\": PropTypes.number.isRequired,\n\n  /** Width used for server-side rendering */\n  \"serverWidth\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(WindowScroller, \"defaultProps\", {\n  onResize: function onResize() {},\n  onScroll: function onScroll() {},\n  scrollingResetTimeInterval: IS_SCROLLING_TIMEOUT,\n  scrollElement: getWindow(),\n  serverHeight: 0,\n  serverWidth: 0\n});\n\nexport { WindowScroller as default };\nimport PropTypes from \"prop-types\";","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};function C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;F.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!I.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:n,type:a,key:k,ref:h,props:d,_owner:G.current}}\nfunction K(a,b){return{$$typeof:n,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function L(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===n}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var M=/\\/+/g;function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction O(a,b,c,e,d){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case n:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+N(h,0):e,Array.isArray(d)?(c=\"\",null!=a&&(c=a.replace(M,\"$&/\")+\"/\"),O(d,b,c,\"\",function(a){return a})):null!=d&&(L(d)&&(d=K(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(M,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(Array.isArray(a))for(var g=\n0;g<a.length;g++){k=a[g];var f=e+N(k,g);h+=O(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+N(k,g++),h+=O(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function P(a,b,c){if(null==a)return a;var e=[],d=0;O(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction Q(a){if(-1===a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}var R={current:null};function S(){var a=R.current;if(null===a)throw Error(z(321));return a}var T={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G,IsSomeRendererActing:{current:!1},assign:l};\nexports.Children={map:P,forEach:function(a,b,c){P(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;P(a,function(){b++});return b},toArray:function(a){return P(a,function(a){return a})||[]},only:function(a){if(!L(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!I.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var m=0;m<f;m++)g[m]=arguments[m+2];e.children=g}return{$$typeof:n,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:r,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=J;exports.createFactory=function(a){var b=J.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=L;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:Q}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return S().useCallback(a,b)};exports.useContext=function(a,b){return S().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return S().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return S().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S().useMemo(a,b)};exports.useReducer=function(a,b,c){return S().useReducer(a,b,c)};exports.useRef=function(a){return S().useRef(a)};exports.useState=function(a){return S().useState(a)};exports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n    if (typeof Map !== 'undefined') {\r\n        return Map;\r\n    }\r\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\r\n    function getIndex(arr, key) {\r\n        var result = -1;\r\n        arr.some(function (entry, index) {\r\n            if (entry[0] === key) {\r\n                result = index;\r\n                return true;\r\n            }\r\n            return false;\r\n        });\r\n        return result;\r\n    }\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            this.__entries__ = [];\r\n        }\r\n        Object.defineProperty(class_1.prototype, \"size\", {\r\n            /**\r\n             * @returns {boolean}\r\n             */\r\n            get: function () {\r\n                return this.__entries__.length;\r\n            },\r\n            enumerable: true,\r\n            configurable: true\r\n        });\r\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\r\n        class_1.prototype.get = function (key) {\r\n            var index = getIndex(this.__entries__, key);\r\n            var entry = this.__entries__[index];\r\n            return entry && entry[1];\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.set = function (key, value) {\r\n            var index = getIndex(this.__entries__, key);\r\n            if (~index) {\r\n                this.__entries__[index][1] = value;\r\n            }\r\n            else {\r\n                this.__entries__.push([key, value]);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.delete = function (key) {\r\n            var entries = this.__entries__;\r\n            var index = getIndex(entries, key);\r\n            if (~index) {\r\n                entries.splice(index, 1);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.has = function (key) {\r\n            return !!~getIndex(this.__entries__, key);\r\n        };\r\n        /**\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.clear = function () {\r\n            this.__entries__.splice(0);\r\n        };\r\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.forEach = function (callback, ctx) {\r\n            if (ctx === void 0) { ctx = null; }\r\n            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n                var entry = _a[_i];\r\n                callback.call(ctx, entry[1], entry[0]);\r\n            }\r\n        };\r\n        return class_1;\r\n    }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n    if (typeof global !== 'undefined' && global.Math === Math) {\r\n        return global;\r\n    }\r\n    if (typeof self !== 'undefined' && self.Math === Math) {\r\n        return self;\r\n    }\r\n    if (typeof window !== 'undefined' && window.Math === Math) {\r\n        return window;\r\n    }\r\n    // eslint-disable-next-line no-new-func\r\n    return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n    if (typeof requestAnimationFrame === 'function') {\r\n        // It's required to use a bounded function because IE sometimes throws\r\n        // an \"Invalid calling object\" error if rAF is invoked without the global\r\n        // object on the left hand side.\r\n        return requestAnimationFrame.bind(global$1);\r\n    }\r\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n    var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function resolvePending() {\r\n        if (leadingCall) {\r\n            leadingCall = false;\r\n            callback();\r\n        }\r\n        if (trailingCall) {\r\n            proxy();\r\n        }\r\n    }\r\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function timeoutCallback() {\r\n        requestAnimationFrame$1(resolvePending);\r\n    }\r\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function proxy() {\r\n        var timeStamp = Date.now();\r\n        if (leadingCall) {\r\n            // Reject immediately following calls.\r\n            if (timeStamp - lastCallTime < trailingTimeout) {\r\n                return;\r\n            }\r\n            // Schedule new call to be in invoked when the pending one is resolved.\r\n            // This is important for \"transitions\" which never actually start\r\n            // immediately so there is a chance that we might miss one if change\r\n            // happens amids the pending invocation.\r\n            trailingCall = true;\r\n        }\r\n        else {\r\n            leadingCall = true;\r\n            trailingCall = false;\r\n            setTimeout(timeoutCallback, delay);\r\n        }\r\n        lastCallTime = timeStamp;\r\n    }\r\n    return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserverController.\r\n     *\r\n     * @private\r\n     */\r\n    function ResizeObserverController() {\r\n        /**\r\n         * Indicates whether DOM listeners have been added.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.connected_ = false;\r\n        /**\r\n         * Tells that controller has subscribed for Mutation Events.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.mutationEventsAdded_ = false;\r\n        /**\r\n         * Keeps reference to the instance of MutationObserver.\r\n         *\r\n         * @private {MutationObserver}\r\n         */\r\n        this.mutationsObserver_ = null;\r\n        /**\r\n         * A list of connected observers.\r\n         *\r\n         * @private {Array<ResizeObserverSPI>}\r\n         */\r\n        this.observers_ = [];\r\n        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n    }\r\n    /**\r\n     * Adds observer to observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be added.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.addObserver = function (observer) {\r\n        if (!~this.observers_.indexOf(observer)) {\r\n            this.observers_.push(observer);\r\n        }\r\n        // Add listeners if they haven't been added yet.\r\n        if (!this.connected_) {\r\n            this.connect_();\r\n        }\r\n    };\r\n    /**\r\n     * Removes observer from observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.removeObserver = function (observer) {\r\n        var observers = this.observers_;\r\n        var index = observers.indexOf(observer);\r\n        // Remove observer if it's present in registry.\r\n        if (~index) {\r\n            observers.splice(index, 1);\r\n        }\r\n        // Remove listeners if controller has no connected observers.\r\n        if (!observers.length && this.connected_) {\r\n            this.disconnect_();\r\n        }\r\n    };\r\n    /**\r\n     * Invokes the update of observers. It will continue running updates insofar\r\n     * it detects changes.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.refresh = function () {\r\n        var changesDetected = this.updateObservers_();\r\n        // Continue running updates if changes have been detected as there might\r\n        // be future ones caused by CSS transitions.\r\n        if (changesDetected) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Updates every observer from observers list and notifies them of queued\r\n     * entries.\r\n     *\r\n     * @private\r\n     * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n     *      dimensions of it's elements.\r\n     */\r\n    ResizeObserverController.prototype.updateObservers_ = function () {\r\n        // Collect observers that have active observations.\r\n        var activeObservers = this.observers_.filter(function (observer) {\r\n            return observer.gatherActive(), observer.hasActive();\r\n        });\r\n        // Deliver notifications in a separate cycle in order to avoid any\r\n        // collisions between observers, e.g. when multiple instances of\r\n        // ResizeObserver are tracking the same element and the callback of one\r\n        // of them changes content dimensions of the observed target. Sometimes\r\n        // this may result in notifications being blocked for the rest of observers.\r\n        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n        return activeObservers.length > 0;\r\n    };\r\n    /**\r\n     * Initializes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.connect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already added.\r\n        if (!isBrowser || this.connected_) {\r\n            return;\r\n        }\r\n        // Subscription to the \"Transitionend\" event is used as a workaround for\r\n        // delayed transitions. This way it's possible to capture at least the\r\n        // final state of an element.\r\n        document.addEventListener('transitionend', this.onTransitionEnd_);\r\n        window.addEventListener('resize', this.refresh);\r\n        if (mutationObserverSupported) {\r\n            this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n            this.mutationsObserver_.observe(document, {\r\n                attributes: true,\r\n                childList: true,\r\n                characterData: true,\r\n                subtree: true\r\n            });\r\n        }\r\n        else {\r\n            document.addEventListener('DOMSubtreeModified', this.refresh);\r\n            this.mutationEventsAdded_ = true;\r\n        }\r\n        this.connected_ = true;\r\n    };\r\n    /**\r\n     * Removes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.disconnect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already removed.\r\n        if (!isBrowser || !this.connected_) {\r\n            return;\r\n        }\r\n        document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n        window.removeEventListener('resize', this.refresh);\r\n        if (this.mutationsObserver_) {\r\n            this.mutationsObserver_.disconnect();\r\n        }\r\n        if (this.mutationEventsAdded_) {\r\n            document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n        }\r\n        this.mutationsObserver_ = null;\r\n        this.mutationEventsAdded_ = false;\r\n        this.connected_ = false;\r\n    };\r\n    /**\r\n     * \"Transitionend\" event handler.\r\n     *\r\n     * @private\r\n     * @param {TransitionEvent} event\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n        // Detect whether transition may affect dimensions of an element.\r\n        var isReflowProperty = transitionKeys.some(function (key) {\r\n            return !!~propertyName.indexOf(key);\r\n        });\r\n        if (isReflowProperty) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Returns instance of the ResizeObserverController.\r\n     *\r\n     * @returns {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.getInstance = function () {\r\n        if (!this.instance_) {\r\n            this.instance_ = new ResizeObserverController();\r\n        }\r\n        return this.instance_;\r\n    };\r\n    /**\r\n     * Holds reference to the controller's instance.\r\n     *\r\n     * @private {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.instance_ = null;\r\n    return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n        var key = _a[_i];\r\n        Object.defineProperty(target, key, {\r\n            value: props[key],\r\n            enumerable: false,\r\n            writable: false,\r\n            configurable: true\r\n        });\r\n    }\r\n    return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n    // Assume that the element is an instance of Node, which means that it\r\n    // has the \"ownerDocument\" property from which we can retrieve a\r\n    // corresponding global object.\r\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n    // Return the local global object if it's not possible extract one from\r\n    // provided element.\r\n    return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n    return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n    var positions = [];\r\n    for (var _i = 1; _i < arguments.length; _i++) {\r\n        positions[_i - 1] = arguments[_i];\r\n    }\r\n    return positions.reduce(function (size, position) {\r\n        var value = styles['border-' + position + '-width'];\r\n        return size + toFloat(value);\r\n    }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n    var positions = ['top', 'right', 'bottom', 'left'];\r\n    var paddings = {};\r\n    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n        var position = positions_1[_i];\r\n        var value = styles['padding-' + position];\r\n        paddings[position] = toFloat(value);\r\n    }\r\n    return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n    var bbox = target.getBBox();\r\n    return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n    // Client width & height properties can't be\r\n    // used exclusively as they provide rounded values.\r\n    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n    // By this condition we can catch all non-replaced inline, hidden and\r\n    // detached elements. Though elements with width & height properties less\r\n    // than 0.5 will be discarded as well.\r\n    //\r\n    // Without it we would need to implement separate methods for each of\r\n    // those cases and it's not possible to perform a precise and performance\r\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n    // gives wrong results for elements with width & height less than 0.5.\r\n    if (!clientWidth && !clientHeight) {\r\n        return emptyRect;\r\n    }\r\n    var styles = getWindowOf(target).getComputedStyle(target);\r\n    var paddings = getPaddings(styles);\r\n    var horizPad = paddings.left + paddings.right;\r\n    var vertPad = paddings.top + paddings.bottom;\r\n    // Computed styles of width & height are being used because they are the\r\n    // only dimensions available to JS that contain non-rounded values. It could\r\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n    var width = toFloat(styles.width), height = toFloat(styles.height);\r\n    // Width & height include paddings and borders when the 'border-box' box\r\n    // model is applied (except for IE).\r\n    if (styles.boxSizing === 'border-box') {\r\n        // Following conditions are required to handle Internet Explorer which\r\n        // doesn't include paddings and borders to computed CSS dimensions.\r\n        //\r\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n        // properties then it's either IE, and thus we don't need to subtract\r\n        // anything, or an element merely doesn't have paddings/borders styles.\r\n        if (Math.round(width + horizPad) !== clientWidth) {\r\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n        }\r\n        if (Math.round(height + vertPad) !== clientHeight) {\r\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n        }\r\n    }\r\n    // Following steps can't be applied to the document's root element as its\r\n    // client[Width/Height] properties represent viewport area of the window.\r\n    // Besides, it's as well not necessary as the <html> itself neither has\r\n    // rendered scroll bars nor it can be clipped.\r\n    if (!isDocumentElement(target)) {\r\n        // In some browsers (only in Firefox, actually) CSS width & height\r\n        // include scroll bars size which can be removed at this step as scroll\r\n        // bars are the only difference between rounded dimensions + paddings\r\n        // and \"client\" properties, though that is not always true in Chrome.\r\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n        // Chrome has a rather weird rounding of \"client\" properties.\r\n        // E.g. for an element with content width of 314.2px it sometimes gives\r\n        // the client width of 315px and for the width of 314.7px it may give\r\n        // 314px. And it doesn't happen all the time. So just ignore this delta\r\n        // as a non-relevant.\r\n        if (Math.abs(vertScrollbar) !== 1) {\r\n            width -= vertScrollbar;\r\n        }\r\n        if (Math.abs(horizScrollbar) !== 1) {\r\n            height -= horizScrollbar;\r\n        }\r\n    }\r\n    return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n    // interface.\r\n    if (typeof SVGGraphicsElement !== 'undefined') {\r\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n    }\r\n    // If it's so, then check that element is at least an instance of the\r\n    // SVGElement and that it has the \"getBBox\" method.\r\n    // eslint-disable-next-line no-extra-parens\r\n    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n        typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n    return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n    if (!isBrowser) {\r\n        return emptyRect;\r\n    }\r\n    if (isSVGGraphicsElement(target)) {\r\n        return getSVGContentRect(target);\r\n    }\r\n    return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n    var rect = Object.create(Constr.prototype);\r\n    // Rectangle's properties are not writable and non-enumerable.\r\n    defineConfigurable(rect, {\r\n        x: x, y: y, width: width, height: height,\r\n        top: y,\r\n        right: x + width,\r\n        bottom: height + y,\r\n        left: x\r\n    });\r\n    return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n    return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObservation.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     */\r\n    function ResizeObservation(target) {\r\n        /**\r\n         * Broadcasted width of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastWidth = 0;\r\n        /**\r\n         * Broadcasted height of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastHeight = 0;\r\n        /**\r\n         * Reference to the last observed content rectangle.\r\n         *\r\n         * @private {DOMRectInit}\r\n         */\r\n        this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n        this.target = target;\r\n    }\r\n    /**\r\n     * Updates content rectangle and tells whether it's width or height properties\r\n     * have changed since the last broadcast.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObservation.prototype.isActive = function () {\r\n        var rect = getContentRect(this.target);\r\n        this.contentRect_ = rect;\r\n        return (rect.width !== this.broadcastWidth ||\r\n            rect.height !== this.broadcastHeight);\r\n    };\r\n    /**\r\n     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n     * from the corresponding properties of the last observed content rectangle.\r\n     *\r\n     * @returns {DOMRectInit} Last observed content rectangle.\r\n     */\r\n    ResizeObservation.prototype.broadcastRect = function () {\r\n        var rect = this.contentRect_;\r\n        this.broadcastWidth = rect.width;\r\n        this.broadcastHeight = rect.height;\r\n        return rect;\r\n    };\r\n    return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObserverEntry.\r\n     *\r\n     * @param {Element} target - Element that is being observed.\r\n     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n     */\r\n    function ResizeObserverEntry(target, rectInit) {\r\n        var contentRect = createReadOnlyRect(rectInit);\r\n        // According to the specification following properties are not writable\r\n        // and are also not enumerable in the native implementation.\r\n        //\r\n        // Property accessors are not being used as they'd require to define a\r\n        // private WeakMap storage which may cause memory leaks in browsers that\r\n        // don't support this type of collections.\r\n        defineConfigurable(this, { target: target, contentRect: contentRect });\r\n    }\r\n    return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n     *      when one of the observed elements changes it's content dimensions.\r\n     * @param {ResizeObserverController} controller - Controller instance which\r\n     *      is responsible for the updates of observer.\r\n     * @param {ResizeObserver} callbackCtx - Reference to the public\r\n     *      ResizeObserver instance which will be passed to callback function.\r\n     */\r\n    function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n        /**\r\n         * Collection of resize observations that have detected changes in dimensions\r\n         * of elements.\r\n         *\r\n         * @private {Array<ResizeObservation>}\r\n         */\r\n        this.activeObservations_ = [];\r\n        /**\r\n         * Registry of the ResizeObservation instances.\r\n         *\r\n         * @private {Map<Element, ResizeObservation>}\r\n         */\r\n        this.observations_ = new MapShim();\r\n        if (typeof callback !== 'function') {\r\n            throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n        }\r\n        this.callback_ = callback;\r\n        this.controller_ = controller;\r\n        this.callbackCtx_ = callbackCtx;\r\n    }\r\n    /**\r\n     * Starts observing provided element.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.observe = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is already being observed.\r\n        if (observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.set(target, new ResizeObservation(target));\r\n        this.controller_.addObserver(this);\r\n        // Force the update of observations.\r\n        this.controller_.refresh();\r\n    };\r\n    /**\r\n     * Stops observing provided element.\r\n     *\r\n     * @param {Element} target - Element to stop observing.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.unobserve = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is not being observed.\r\n        if (!observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.delete(target);\r\n        if (!observations.size) {\r\n            this.controller_.removeObserver(this);\r\n        }\r\n    };\r\n    /**\r\n     * Stops observing all elements.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.disconnect = function () {\r\n        this.clearActive();\r\n        this.observations_.clear();\r\n        this.controller_.removeObserver(this);\r\n    };\r\n    /**\r\n     * Collects observation instances the associated element of which has changed\r\n     * it's content rectangle.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.gatherActive = function () {\r\n        var _this = this;\r\n        this.clearActive();\r\n        this.observations_.forEach(function (observation) {\r\n            if (observation.isActive()) {\r\n                _this.activeObservations_.push(observation);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Invokes initial callback function with a list of ResizeObserverEntry\r\n     * instances collected from active resize observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.broadcastActive = function () {\r\n        // Do nothing if observer doesn't have active observations.\r\n        if (!this.hasActive()) {\r\n            return;\r\n        }\r\n        var ctx = this.callbackCtx_;\r\n        // Create ResizeObserverEntry instance for every active observation.\r\n        var entries = this.activeObservations_.map(function (observation) {\r\n            return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n        });\r\n        this.callback_.call(ctx, entries, ctx);\r\n        this.clearActive();\r\n    };\r\n    /**\r\n     * Clears the collection of active observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.clearActive = function () {\r\n        this.activeObservations_.splice(0);\r\n    };\r\n    /**\r\n     * Tells whether observer has active observations.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObserverSPI.prototype.hasActive = function () {\r\n        return this.activeObservations_.length > 0;\r\n    };\r\n    return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n     *      dimensions of the observed elements change.\r\n     */\r\n    function ResizeObserver(callback) {\r\n        if (!(this instanceof ResizeObserver)) {\r\n            throw new TypeError('Cannot call a class as a function.');\r\n        }\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        var controller = ResizeObserverController.getInstance();\r\n        var observer = new ResizeObserverSPI(callback, controller, this);\r\n        observers.set(this, observer);\r\n    }\r\n    return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n    'observe',\r\n    'unobserve',\r\n    'disconnect'\r\n].forEach(function (method) {\r\n    ResizeObserver.prototype[method] = function () {\r\n        var _a;\r\n        return (_a = observers.get(this))[method].apply(_a, arguments);\r\n    };\r\n});\n\nvar index = (function () {\r\n    // Export existing implementation if available.\r\n    if (typeof global$1.ResizeObserver !== 'undefined') {\r\n        return global$1.ResizeObserver;\r\n    }\r\n    return ResizeObserver;\r\n})();\n\nexport default index;\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n","module.exports = function cmp (a, b) {\n    var pa = a.split('.');\n    var pb = b.split('.');\n    for (var i = 0; i < 3; i++) {\n        var na = Number(pa[i]);\n        var nb = Number(pb[i]);\n        if (na > nb) return 1;\n        if (nb > na) return -1;\n        if (!isNaN(na) && isNaN(nb)) return 1;\n        if (isNaN(na) && !isNaN(nb)) return -1;\n    }\n    return 0;\n};\n","import { useRef, useEffect, useCallback, useState, useMemo } from 'react';\n\n// This could've been more streamlined with internal state instead of abusing\n// refs to such extent, but then composing hooks and components could not opt out of unnecessary renders.\nfunction useResolvedElement(subscriber, refOrElement) {\n  var lastReportRef = useRef(null);\n  var refOrElementRef = useRef(null);\n  refOrElementRef.current = refOrElement;\n  var cbElementRef = useRef(null); // Calling re-evaluation after each render without using a dep array,\n  // as the ref object's current value could've changed since the last render.\n\n  useEffect(function () {\n    evaluateSubscription();\n  });\n  var evaluateSubscription = useCallback(function () {\n    var cbElement = cbElementRef.current;\n    var refOrElement = refOrElementRef.current; // Ugly ternary. But smaller than an if-else block.\n\n    var element = cbElement ? cbElement : refOrElement ? refOrElement instanceof Element ? refOrElement : refOrElement.current : null;\n\n    if (lastReportRef.current && lastReportRef.current.element === element && lastReportRef.current.subscriber === subscriber) {\n      return;\n    }\n\n    if (lastReportRef.current && lastReportRef.current.cleanup) {\n      lastReportRef.current.cleanup();\n    }\n\n    lastReportRef.current = {\n      element: element,\n      subscriber: subscriber,\n      // Only calling the subscriber, if there's an actual element to report.\n      // Setting cleanup to undefined unless a subscriber returns one, as an existing cleanup function would've been just called.\n      cleanup: element ? subscriber(element) : undefined\n    };\n  }, [subscriber]); // making sure we call the cleanup function on unmount\n\n  useEffect(function () {\n    return function () {\n      if (lastReportRef.current && lastReportRef.current.cleanup) {\n        lastReportRef.current.cleanup();\n        lastReportRef.current = null;\n      }\n    };\n  }, []);\n  return useCallback(function (element) {\n    cbElementRef.current = element;\n    evaluateSubscription();\n  }, [evaluateSubscription]);\n}\n\n// We're only using the first element of the size sequences, until future versions of the spec solidify on how\n// exactly it'll be used for fragments in multi-column scenarios:\n// From the spec:\n// > The box size properties are exposed as FrozenArray in order to support elements that have multiple fragments,\n// > which occur in multi-column scenarios. However the current definitions of content rect and border box do not\n// > mention how those boxes are affected by multi-column layout. In this spec, there will only be a single\n// > ResizeObserverSize returned in the FrozenArray, which will correspond to the dimensions of the first column.\n// > A future version of this spec will extend the returned FrozenArray to contain the per-fragment size information.\n// (https://drafts.csswg.org/resize-observer/#resize-observer-entry-interface)\n//\n// Also, testing these new box options revealed that in both Chrome and FF everything is returned in the callback,\n// regardless of the \"box\" option.\n// The spec states the following on this:\n// > This does not have any impact on which box dimensions are returned to the defined callback when the event\n// > is fired, it solely defines which box the author wishes to observe layout changes on.\n// (https://drafts.csswg.org/resize-observer/#resize-observer-interface)\n// I'm not exactly clear on what this means, especially when you consider a later section stating the following:\n// > This section is non-normative. An author may desire to observe more than one CSS box.\n// > In this case, author will need to use multiple ResizeObservers.\n// (https://drafts.csswg.org/resize-observer/#resize-observer-interface)\n// Which is clearly not how current browser implementations behave, and seems to contradict the previous quote.\n// For this reason I decided to only return the requested size,\n// even though it seems we have access to results for all box types.\n// This also means that we get to keep the current api, being able to return a simple { width, height } pair,\n// regardless of box option.\nfunction extractSize(entry, boxProp, sizeType) {\n  if (!entry[boxProp]) {\n    if (boxProp === \"contentBoxSize\") {\n      // The dimensions in `contentBoxSize` and `contentRect` are equivalent according to the spec.\n      // See the 6th step in the description for the RO algorithm:\n      // https://drafts.csswg.org/resize-observer/#create-and-populate-resizeobserverentry-h\n      // > Set this.contentRect to logical this.contentBoxSize given target and observedBox of \"content-box\".\n      // In real browser implementations of course these objects differ, but the width/height values should be equivalent.\n      return entry.contentRect[sizeType === \"inlineSize\" ? \"width\" : \"height\"];\n    }\n\n    return undefined;\n  } // A couple bytes smaller than calling Array.isArray() and just as effective here.\n\n\n  return entry[boxProp][0] ? entry[boxProp][0][sizeType] : // TS complains about this, because the RO entry type follows the spec and does not reflect Firefox's current\n  // behaviour of returning objects instead of arrays for `borderBoxSize` and `contentBoxSize`.\n  // @ts-ignore\n  entry[boxProp][sizeType];\n}\n\nfunction useResizeObserver(opts) {\n  if (opts === void 0) {\n    opts = {};\n  }\n\n  // Saving the callback as a ref. With this, I don't need to put onResize in the\n  // effect dep array, and just passing in an anonymous function without memoising\n  // will not reinstantiate the hook's ResizeObserver.\n  var onResize = opts.onResize;\n  var onResizeRef = useRef(undefined);\n  onResizeRef.current = onResize;\n  var round = opts.round || Math.round; // Using a single instance throughout the hook's lifetime\n\n  var resizeObserverRef = useRef();\n\n  var _useState = useState({\n    width: undefined,\n    height: undefined\n  }),\n      size = _useState[0],\n      setSize = _useState[1]; // In certain edge cases the RO might want to report a size change just after\n  // the component unmounted.\n\n\n  var didUnmount = useRef(false);\n  useEffect(function () {\n    didUnmount.current = false;\n    return function () {\n      didUnmount.current = true;\n    };\n  }, []); // Using a ref to track the previous width / height to avoid unnecessary renders.\n\n  var previous = useRef({\n    width: undefined,\n    height: undefined\n  }); // This block is kinda like a useEffect, only it's called whenever a new\n  // element could be resolved based on the ref option. It also has a cleanup\n  // function.\n\n  var refCallback = useResolvedElement(useCallback(function (element) {\n    // We only use a single Resize Observer instance, and we're instantiating it on demand, only once there's something to observe.\n    // This instance is also recreated when the `box` option changes, so that a new observation is fired if there was a previously observed element with a different box option.\n    if (!resizeObserverRef.current || resizeObserverRef.current.box !== opts.box || resizeObserverRef.current.round !== round) {\n      resizeObserverRef.current = {\n        box: opts.box,\n        round: round,\n        instance: new ResizeObserver(function (entries) {\n          var entry = entries[0];\n          var boxProp = opts.box === \"border-box\" ? \"borderBoxSize\" : opts.box === \"device-pixel-content-box\" ? \"devicePixelContentBoxSize\" : \"contentBoxSize\";\n          var reportedWidth = extractSize(entry, boxProp, \"inlineSize\");\n          var reportedHeight = extractSize(entry, boxProp, \"blockSize\");\n          var newWidth = reportedWidth ? round(reportedWidth) : undefined;\n          var newHeight = reportedHeight ? round(reportedHeight) : undefined;\n\n          if (previous.current.width !== newWidth || previous.current.height !== newHeight) {\n            var newSize = {\n              width: newWidth,\n              height: newHeight\n            };\n            previous.current.width = newWidth;\n            previous.current.height = newHeight;\n\n            if (onResizeRef.current) {\n              onResizeRef.current(newSize);\n            } else {\n              if (!didUnmount.current) {\n                setSize(newSize);\n              }\n            }\n          }\n        })\n      };\n    }\n\n    resizeObserverRef.current.instance.observe(element, {\n      box: opts.box\n    });\n    return function () {\n      if (resizeObserverRef.current) {\n        resizeObserverRef.current.instance.unobserve(element);\n      }\n    };\n  }, [opts.box, round]), opts.ref);\n  return useMemo(function () {\n    return {\n      ref: refCallback,\n      width: size.width,\n      height: size.height\n    };\n  }, [refCallback, size.width, size.height]);\n}\n\nexport { useResizeObserver as default };\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n  // lazy load so that environments that need to polyfill have a chance to do so\n  if (!getRandomValues) {\n    // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n    if (!getRandomValues) {\n      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n    }\n  }\n\n  return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n  byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n  // Note: Be careful editing this code!  It's been tuned for performance\n  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n  return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n  const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID.  If this throws, it's likely due to one\n  // of the following:\n  // - One or more input array values don't map to a hex octet (leading to\n  // \"undefined\" in the uuid)\n  // - Invalid input values for the RFC `version` or `variant` fields\n\n  if (!validate(uuid)) {\n    throw TypeError('Stringified UUID is invalid');\n  }\n\n  return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n  randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n  if (native.randomUUID && !buf && !options) {\n    return native.randomUUID();\n  }\n\n  options = options || {};\n  const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n  rnds[6] = rnds[6] & 0x0f | 0x40;\n  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n  if (buf) {\n    offset = offset || 0;\n\n    for (let i = 0; i < 16; ++i) {\n      buf[offset + i] = rnds[i];\n    }\n\n    return buf;\n  }\n\n  return unsafeStringify(rnds);\n}\n\nexport default v4;","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n","'use strict'\nmodule.exports = function (Yallist) {\n  Yallist.prototype[Symbol.iterator] = function* () {\n    for (let walker = this.head; walker; walker = walker.next) {\n      yield walker.value\n    }\n  }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n  var self = this\n  if (!(self instanceof Yallist)) {\n    self = new Yallist()\n  }\n\n  self.tail = null\n  self.head = null\n  self.length = 0\n\n  if (list && typeof list.forEach === 'function') {\n    list.forEach(function (item) {\n      self.push(item)\n    })\n  } else if (arguments.length > 0) {\n    for (var i = 0, l = arguments.length; i < l; i++) {\n      self.push(arguments[i])\n    }\n  }\n\n  return self\n}\n\nYallist.prototype.removeNode = function (node) {\n  if (node.list !== this) {\n    throw new Error('removing node which does not belong to this list')\n  }\n\n  var next = node.next\n  var prev = node.prev\n\n  if (next) {\n    next.prev = prev\n  }\n\n  if (prev) {\n    prev.next = next\n  }\n\n  if (node === this.head) {\n    this.head = next\n  }\n  if (node === this.tail) {\n    this.tail = prev\n  }\n\n  node.list.length--\n  node.next = null\n  node.prev = null\n  node.list = null\n\n  return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n  if (node === this.head) {\n    return\n  }\n\n  if (node.list) {\n    node.list.removeNode(node)\n  }\n\n  var head = this.head\n  node.list = this\n  node.next = head\n  if (head) {\n    head.prev = node\n  }\n\n  this.head = node\n  if (!this.tail) {\n    this.tail = node\n  }\n  this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n  if (node === this.tail) {\n    return\n  }\n\n  if (node.list) {\n    node.list.removeNode(node)\n  }\n\n  var tail = this.tail\n  node.list = this\n  node.prev = tail\n  if (tail) {\n    tail.next = node\n  }\n\n  this.tail = node\n  if (!this.head) {\n    this.head = node\n  }\n  this.length++\n}\n\nYallist.prototype.push = function () {\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    push(this, arguments[i])\n  }\n  return this.length\n}\n\nYallist.prototype.unshift = function () {\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    unshift(this, arguments[i])\n  }\n  return this.length\n}\n\nYallist.prototype.pop = function () {\n  if (!this.tail) {\n    return undefined\n  }\n\n  var res = this.tail.value\n  this.tail = this.tail.prev\n  if (this.tail) {\n    this.tail.next = null\n  } else {\n    this.head = null\n  }\n  this.length--\n  return res\n}\n\nYallist.prototype.shift = function () {\n  if (!this.head) {\n    return undefined\n  }\n\n  var res = this.head.value\n  this.head = this.head.next\n  if (this.head) {\n    this.head.prev = null\n  } else {\n    this.tail = null\n  }\n  this.length--\n  return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n  thisp = thisp || this\n  for (var walker = this.head, i = 0; walker !== null; i++) {\n    fn.call(thisp, walker.value, i, this)\n    walker = walker.next\n  }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n  thisp = thisp || this\n  for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n    fn.call(thisp, walker.value, i, this)\n    walker = walker.prev\n  }\n}\n\nYallist.prototype.get = function (n) {\n  for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n    // abort out of the list early if we hit a cycle\n    walker = walker.next\n  }\n  if (i === n && walker !== null) {\n    return walker.value\n  }\n}\n\nYallist.prototype.getReverse = function (n) {\n  for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n    // abort out of the list early if we hit a cycle\n    walker = walker.prev\n  }\n  if (i === n && walker !== null) {\n    return walker.value\n  }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n  thisp = thisp || this\n  var res = new Yallist()\n  for (var walker = this.head; walker !== null;) {\n    res.push(fn.call(thisp, walker.value, this))\n    walker = walker.next\n  }\n  return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n  thisp = thisp || this\n  var res = new Yallist()\n  for (var walker = this.tail; walker !== null;) {\n    res.push(fn.call(thisp, walker.value, this))\n    walker = walker.prev\n  }\n  return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n  var acc\n  var walker = this.head\n  if (arguments.length > 1) {\n    acc = initial\n  } else if (this.head) {\n    walker = this.head.next\n    acc = this.head.value\n  } else {\n    throw new TypeError('Reduce of empty list with no initial value')\n  }\n\n  for (var i = 0; walker !== null; i++) {\n    acc = fn(acc, walker.value, i)\n    walker = walker.next\n  }\n\n  return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n  var acc\n  var walker = this.tail\n  if (arguments.length > 1) {\n    acc = initial\n  } else if (this.tail) {\n    walker = this.tail.prev\n    acc = this.tail.value\n  } else {\n    throw new TypeError('Reduce of empty list with no initial value')\n  }\n\n  for (var i = this.length - 1; walker !== null; i--) {\n    acc = fn(acc, walker.value, i)\n    walker = walker.prev\n  }\n\n  return acc\n}\n\nYallist.prototype.toArray = function () {\n  var arr = new Array(this.length)\n  for (var i = 0, walker = this.head; walker !== null; i++) {\n    arr[i] = walker.value\n    walker = walker.next\n  }\n  return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n  var arr = new Array(this.length)\n  for (var i = 0, walker = this.tail; walker !== null; i++) {\n    arr[i] = walker.value\n    walker = walker.prev\n  }\n  return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n  to = to || this.length\n  if (to < 0) {\n    to += this.length\n  }\n  from = from || 0\n  if (from < 0) {\n    from += this.length\n  }\n  var ret = new Yallist()\n  if (to < from || to < 0) {\n    return ret\n  }\n  if (from < 0) {\n    from = 0\n  }\n  if (to > this.length) {\n    to = this.length\n  }\n  for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n    walker = walker.next\n  }\n  for (; walker !== null && i < to; i++, walker = walker.next) {\n    ret.push(walker.value)\n  }\n  return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n  to = to || this.length\n  if (to < 0) {\n    to += this.length\n  }\n  from = from || 0\n  if (from < 0) {\n    from += this.length\n  }\n  var ret = new Yallist()\n  if (to < from || to < 0) {\n    return ret\n  }\n  if (from < 0) {\n    from = 0\n  }\n  if (to > this.length) {\n    to = this.length\n  }\n  for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n    walker = walker.prev\n  }\n  for (; walker !== null && i > from; i--, walker = walker.prev) {\n    ret.push(walker.value)\n  }\n  return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n  if (start > this.length) {\n    start = this.length - 1\n  }\n  if (start < 0) {\n    start = this.length + start;\n  }\n\n  for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n    walker = walker.next\n  }\n\n  var ret = []\n  for (var i = 0; walker && i < deleteCount; i++) {\n    ret.push(walker.value)\n    walker = this.removeNode(walker)\n  }\n  if (walker === null) {\n    walker = this.tail\n  }\n\n  if (walker !== this.head && walker !== this.tail) {\n    walker = walker.prev\n  }\n\n  for (var i = 0; i < nodes.length; i++) {\n    walker = insert(this, walker, nodes[i])\n  }\n  return ret;\n}\n\nYallist.prototype.reverse = function () {\n  var head = this.head\n  var tail = this.tail\n  for (var walker = head; walker !== null; walker = walker.prev) {\n    var p = walker.prev\n    walker.prev = walker.next\n    walker.next = p\n  }\n  this.head = tail\n  this.tail = head\n  return this\n}\n\nfunction insert (self, node, value) {\n  var inserted = node === self.head ?\n    new Node(value, null, node, self) :\n    new Node(value, node, node.next, self)\n\n  if (inserted.next === null) {\n    self.tail = inserted\n  }\n  if (inserted.prev === null) {\n    self.head = inserted\n  }\n\n  self.length++\n\n  return inserted\n}\n\nfunction push (self, item) {\n  self.tail = new Node(item, self.tail, null, self)\n  if (!self.head) {\n    self.head = self.tail\n  }\n  self.length++\n}\n\nfunction unshift (self, item) {\n  self.head = new Node(item, null, self.head, self)\n  if (!self.tail) {\n    self.tail = self.head\n  }\n  self.length++\n}\n\nfunction Node (value, prev, next, list) {\n  if (!(this instanceof Node)) {\n    return new Node(value, prev, next, list)\n  }\n\n  this.list = list\n  this.value = value\n\n  if (prev) {\n    prev.next = this\n    this.prev = prev\n  } else {\n    this.prev = null\n  }\n\n  if (next) {\n    next.prev = this\n    this.next = next\n  } else {\n    this.next = null\n  }\n}\n\ntry {\n  // add if support for Symbol.iterator is present\n  require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _IngestController = require('../controllers/IngestController');\n\nvar _IngestController2 = _interopRequireDefault(_IngestController);\n\nvar _context = require('../context');\n\nvar _lodash = require('lodash.isequal');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * ADOBE CONFIDENTIAL\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * ___________________\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                *\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Copyright 2018 Adobe. All Rights Reserved.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                *\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * NOTICE: All information contained herein is, and remains\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * the property of Adobe Inc. and its suppliers, if any. The intellectual\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * and technical concepts contained herein are proprietary to Adobe Inc.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * and its suppliers and are protected by all applicable intellectual\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * property laws, including trade secret and copyright laws.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Dissemination of this information or reproduction of this material\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * is strictly forbidden unless prior written permission is obtained\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * from Adobe Inc.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */\n\n/**\n * IngestProvider component\n */\nvar IngestProvider = function (_React$Component) {\n  _inherits(IngestProvider, _React$Component);\n\n  /**\n   * Constructor for child component\n   * @param {object} props - props sent to the component\n   * @returns {undefined}\n   */\n  function IngestProvider(props) {\n    _classCallCheck(this, IngestProvider);\n\n    var _this = _possibleConstructorReturn(this, (IngestProvider.__proto__ || Object.getPrototypeOf(IngestProvider)).call(this, props));\n\n    var state = {};\n    if (!props.project) {\n      if (props.env !== 'prod' && props.env !== 'production') {\n        console.error('When instantiated the Ingest Provider component must be given a project prop.');\n      }\n    } else if (!props.apiKey) {\n      if (props.env !== 'prod' && props.env !== 'production') {\n        console.error('When instantiated the Ingest Provider component must be given an api prop.');\n      }\n    } else if (!props.token && !props.allowNoToken) {\n      if (props.env !== 'prod' && props.env !== 'production') {\n        console.error('When instantiated the Ingest Provider component must be given a token prop.');\n      }\n    } else {\n      state = {\n        controller: new _IngestController2.default(props)\n      };\n    }\n\n    _this.state = state;\n    return _this;\n  }\n\n  /**\n   * Lifecycle method for when a component will get new props\n   * @param {object} prevProps - old props sent to the component\n   * @returns {undefined}\n   */\n\n\n  _createClass(IngestProvider, [{\n    key: 'componentDidUpdate',\n    value: function componentDidUpdate(prevProps) {\n      var reset = false;\n      if (this.props.token !== prevProps.token) {\n        reset = true;\n      }\n      if (!(0, _lodash2.default)(prevProps.data, this.props.data)) {\n        reset = true;\n      }\n      if (reset) {\n        var newController = new _IngestController2.default(this.props);\n        this.setState({\n          controller: newController\n        });\n      }\n    }\n\n    /**\n     * Function to provide access to controller instance\n     * @returns {object} ingest controller instance\n     */\n\n  }, {\n    key: 'getController',\n    value: function getController() {\n      return this.state.controller;\n    }\n\n    /**\n     * Lifecycle method for render\n     * @returns {ReactElement} markup\n     */\n\n  }, {\n    key: 'render',\n    value: function render() {\n      var existingContext = this.context || {};\n      existingContext[this.props.project] = this.state.controller;\n      return _react2.default.createElement(\n        _context.IngestContext.Provider,\n        { value: existingContext },\n        this.props.children\n      );\n    }\n  }]);\n\n  return IngestProvider;\n}(_react2.default.Component);\n\nIngestProvider.contextType = _context.IngestContext;\nexports.default = IngestProvider;\n\n\nIngestProvider.defaultProps = {\n  env: 'stage'\n};\n\nIngestProvider.propTypes = {\n  allowNoToken: _propTypes2.default.bool,\n  apiKey: _propTypes2.default.string.isRequired,\n  data: _propTypes2.default.object,\n  debounce: _propTypes2.default.number,\n  children: _propTypes2.default.node,\n  env: _propTypes2.default.string,\n  ingestType: _propTypes2.default.string,\n  maQueuedEvents: _propTypes2.default.number,\n  onLog: _propTypes2.default.func,\n  product: _propTypes2.default.string,\n  productLocation: _propTypes2.default.string,\n  project: _propTypes2.default.string.isRequired,\n  timestampPropertyName: _propTypes2.default.string,\n  token: _propTypes2.default.string,\n  userRegion: _propTypes2.default.string\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.IngestContext = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar IngestContext = exports.IngestContext = _react2.default.createContext({\n  fireEvent: function fireEvent() {\n    return new Promise(function (resolve) {\n      return resolve();\n    });\n  }\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /**\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * ADOBE CONFIDENTIAL\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * ___________________\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      *\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Copyright 2018 Adobe. All Rights Reserved.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      *\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * NOTICE: All information contained herein is, and remains\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * the property of Adobe Inc. and its suppliers, if any. The intellectual\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * and technical concepts contained herein are proprietary to Adobe Inc.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * and its suppliers and are protected by all applicable intellectual\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * property laws, including trade secret and copyright laws.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * Dissemination of this information or reproduction of this material\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * is strictly forbidden unless prior written permission is obtained\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      * from Adobe Inc.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      */\n\nvar _lodash = require('lodash.merge');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _v = require('uuid/v1');\n\nvar _v2 = _interopRequireDefault(_v);\n\nvar _ingest = require('@ccx-public/ingest');\n\nvar _ingest2 = _interopRequireDefault(_ingest);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * IngestController class\n */\nvar IngestController = function () {\n  /**\n   * Constructor for IngestController\n   * @param {object} props - base data object based on SDM\n   * @returns {undefined}\n   */\n  function IngestController(props) {\n    _classCallCheck(this, IngestController);\n\n    var token = props.token;\n    var onLog = props.onLog;\n    if (!props.apiInstance) {\n      var dependencies = {\n        getAccessToken: function getAccessToken(cb) {\n          cb(null, token);\n        },\n        log: function log(message) {\n          onLog && onLog(message);\n        }\n      };\n      var options = {\n        ENVIRONMENT: props.env,\n        ALLOW_NO_TOKEN: props.allowNoToken,\n        ANALYTICS_API_KEY: props.apiKey,\n        ANALYTICS_PROJECT: props.project,\n        ANALYTICS_X_PRODUCT: props.product,\n        ANALYTICS_X_PRODUCT_LOCATION: props.productLocation,\n        ANALYTICS_MAX_QUEUED_EVENTS: props.maxQueuedEvents,\n        ANALYTICS_DEBOUNCE: props.debounce,\n        ANALYTICS_USER_REGION: props.userRegion,\n        ANALYTICS_INGEST_TYPE: props.ingestType,\n        TIMESTAMP_PROPERTY_NAME: props.timestampPropertyName\n      };\n      var apiInstance = new _ingest2.default(dependencies, options);\n      apiInstance.enable(true);\n      this._ingestApi = apiInstance;\n    } else {\n      this._ingestApi = props.apiInstance;\n    }\n    this.updateData(props.data);\n    this._sessionGuid = (0, _v2.default)();\n  }\n\n  /**\n   * Function to update data\n   * @param {object} data - data to update the base data object\n   * @returns {undefined}\n   */\n\n\n  _createClass(IngestController, [{\n    key: 'updateData',\n    value: function updateData(data) {\n      this._baseData = data;\n    }\n\n    /**\n     * Private function to flatten an object\n     * @param {object} nestedObj - object to be flattened\n     * @param {object} flatObj - object is being flattened\n     * @param {object} curPrefix - key prefix used for flattening\n     * @returns {object} flattened object\n     */\n\n  }, {\n    key: '_flattenObj',\n    value: function _flattenObj(nestedObj, flatObj, curPrefix) {\n      var _this = this;\n\n      Object.keys(nestedObj).forEach(function (key) {\n        var value = nestedObj[key];\n        var newKey = curPrefix ? curPrefix + '.' + key : key;\n        if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !(value instanceof Date)) {\n          _this._flattenObj(value, flatObj, newKey);\n        } else {\n          flatObj[newKey] = value;\n        }\n      });\n      return flatObj;\n    }\n\n    /**\n     * Function to fire an event to Ingest\n     * @param {object} augmentedData - object to augment base data set for event\n     * @param {boolean} fireImmediately - indication if we should immediately fire\n     * @param {object} options - optional project override block (params outside payload)\n     * @returns {object} promise for event being fired\n     */\n\n  }, {\n    key: 'fireEvent',\n    value: function fireEvent() {\n      var augmentedData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      var _this2 = this;\n\n      var fireImmediately = arguments[1];\n      var options = arguments[2];\n\n      return new Promise(function (resolve, reject) {\n        var result = {};\n        var sdmJsonData = _this2._baseData || {};\n        if (!sdmJsonData.event) {\n          sdmJsonData.event = {};\n        }\n        sdmJsonData.event.session_guid = _this2._sessionGuid;\n        sdmJsonData.event.guid = (0, _v2.default)();\n        (0, _lodash2.default)(result, sdmJsonData, augmentedData);\n\n        var flattenedBody = _this2._flattenObj(result, {});\n        var cb = function cb(err) {\n          if (!err) {\n            resolve(flattenedBody);\n          } else {\n            reject(err);\n          }\n        };\n        _this2._ingestApi.postEvent(flattenedBody, !fireImmediately ? cb : undefined, options);\n\n        if (fireImmediately) {\n          _this2._ingestApi.flush(true, cb);\n        }\n      });\n    }\n  }]);\n\n  return IngestController;\n}();\n\nexports.default = IngestController;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.default = function (controllerKey) {\n  return function Component(WrappedComponent) {\n    return function (_React$Component) {\n      _inherits(DecoratedComponent, _React$Component);\n\n      /**\n       * constructor - bind passed down methods and set init state\n       * @param {Object} props [description]\n       */\n      function DecoratedComponent(props) {\n        _classCallCheck(this, DecoratedComponent);\n\n        var _this = _possibleConstructorReturn(this, (DecoratedComponent.__proto__ || Object.getPrototypeOf(DecoratedComponent)).call(this, props));\n\n        _this.handleWrappedRef = _this.handleWrappedRef.bind(_this);\n        return _this;\n      }\n\n      /**\n       * Provides access to the wrapped component\n       * @returns {ReactElement} wrapped component\n       */\n\n\n      _createClass(DecoratedComponent, [{\n        key: 'getWrappedInstance',\n        value: function getWrappedInstance() {\n          return this._wrappedRef;\n        }\n\n        /**\n         * Gets ref for the wrapped component\n         * @param {ReactComponent} ref - the raw input component\n         * @return {undefined}\n         */\n\n      }, {\n        key: 'handleWrappedRef',\n        value: function handleWrappedRef(ref) {\n          this._wrappedRef = ref;\n        }\n\n        /**\n         * Lifecycle method for render\n         * @returns {ReactElement} markup\n         */\n\n      }, {\n        key: 'render',\n        value: function render() {\n          var _this2 = this;\n\n          return _react2.default.createElement(\n            _context.IngestContext.Consumer,\n            null,\n            function (ccxIngest) {\n              var ccxIngestResult = void 0;\n              if (controllerKey && ccxIngest && ccxIngest[controllerKey]) {\n                ccxIngestResult = ccxIngest[controllerKey];\n              } else {\n                ccxIngestResult = ccxIngest;\n              }\n              return _react2.default.createElement(WrappedComponent, _extends({ ref: _this2.handleWrappedRef }, _this2.props, { ccxIngest: ccxIngestResult }));\n            }\n          );\n        }\n      }]);\n\n      return DecoratedComponent;\n    }(_react2.default.Component);\n  };\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _context = require('../context');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * ADOBE CONFIDENTIAL\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * ___________________\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                *\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Copyright 2018 Adobe. All Rights Reserved.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                *\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * NOTICE: All information contained herein is, and remains\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * the property of Adobe Inc. and its suppliers, if any. The intellectual\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * and technical concepts contained herein are proprietary to Adobe Inc.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * and its suppliers and are protected by all applicable intellectual\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * property laws, including trade secret and copyright laws.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * Dissemination of this information or reproduction of this material\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * is strictly forbidden unless prior written permission is obtained\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                * from Adobe Inc.\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                */\n\n/**\n * Decorator for ccxIngest\n * @param {string} controllerKey - key that will be used to return controller instance\n * @returns {object} decorated component\n */","Object.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = require('./dist/components/IngestProvider').default;\nexports.ccxController = require('./dist/controllers/IngestController').default;\nexports.ccxIngest = require('./dist/decorators/ccxIngest').default;\nexports.ccxIngestContext = require('./dist/context').IngestContext;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n  byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n  var i = offset || 0;\n  var bth = byteToHex;\n  // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n  return ([\n    bth[buf[i++]], bth[buf[i++]],\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]], '-',\n    bth[buf[i++]], bth[buf[i++]],\n    bth[buf[i++]], bth[buf[i++]],\n    bth[buf[i++]], bth[buf[i++]]\n  ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator.  In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API.  We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n                      (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n  // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n  var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n  module.exports = function whatwgRNG() {\n    getRandomValues(rnds8);\n    return rnds8;\n  };\n} else {\n  // Math.random()-based (RNG)\n  //\n  // If all else fails, use Math.random().  It's fast, but is of unspecified\n  // quality.\n  var rnds = new Array(16);\n\n  module.exports = function mathRNG() {\n    for (var i = 0, r; i < 16; i++) {\n      if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n      rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n    }\n\n    return rnds;\n  };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n  var i = buf && offset || 0;\n  var b = buf || [];\n\n  options = options || {};\n  var node = options.node || _nodeId;\n  var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n  // node and clockseq need to be initialized to random values if they're not\n  // specified.  We do this lazily to minimize issues related to insufficient\n  // system entropy.  See #189\n  if (node == null || clockseq == null) {\n    var seedBytes = rng();\n    if (node == null) {\n      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n      node = _nodeId = [\n        seedBytes[0] | 0x01,\n        seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n      ];\n    }\n    if (clockseq == null) {\n      // Per 4.2.2, randomize (14 bit) clockseq\n      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n    }\n  }\n\n  // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so\n  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n  var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n  // Per 4.2.1.2, use count of uuid's generated during the current clock\n  // cycle to simulate higher resolution clock\n  var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n  // Time since last uuid creation (in msecs)\n  var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n  // Per 4.2.1.2, Bump clockseq on clock regression\n  if (dt < 0 && options.clockseq === undefined) {\n    clockseq = clockseq + 1 & 0x3fff;\n  }\n\n  // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n  // time interval\n  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n    nsecs = 0;\n  }\n\n  // Per 4.2.1.2 Throw error if too many uuids are requested\n  if (nsecs >= 10000) {\n    throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n  }\n\n  _lastMSecs = msecs;\n  _lastNSecs = nsecs;\n  _clockseq = clockseq;\n\n  // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n  msecs += 12219292800000;\n\n  // `time_low`\n  var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n  b[i++] = tl >>> 24 & 0xff;\n  b[i++] = tl >>> 16 & 0xff;\n  b[i++] = tl >>> 8 & 0xff;\n  b[i++] = tl & 0xff;\n\n  // `time_mid`\n  var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n  b[i++] = tmh >>> 8 & 0xff;\n  b[i++] = tmh & 0xff;\n\n  // `time_high_and_version`\n  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n  b[i++] = tmh >>> 16 & 0xff;\n\n  // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n  b[i++] = clockseq >>> 8 | 0x80;\n\n  // `clock_seq_low`\n  b[i++] = clockseq & 0xff;\n\n  // `node`\n  for (var n = 0; n < 6; ++n) {\n    b[i + n] = node[n];\n  }\n\n  return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","/*************************************************************************\n*\n* ADOBE CONFIDENTIAL\n* ___________________\n*\n* Copyright 2017 Adobe Systems Incorporated\n* All Rights Reserved.\n*\n* NOTICE: All information contained herein is, and remains\n* the property of Adobe Systems Incorporated and its suppliers,\n* if any. The intellectual and technical concepts contained\n* herein are proprietary to Adobe Systems Incorporated and its\n* suppliers and are protected by trade secret or copyright law.\n* Dissemination of this information or reproduction of this material\n* is strictly forbidden unless prior written permission is obtained\n* from Adobe Systems Incorporated.\n**************************************************************************/\n/*jslint node: true, vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50, unparam: true */\n/*global module, require, console, window, XMLHttpRequest */\n\n'use strict';\n\n/**\n\t\tUtility functions\n**/\n\nfunction isNodeJS() {\n\t\tvar requireType = typeof global; // Avoid JSLint warning\n\t\t/* istanbul ignore next */\n\t\treturn requireType !== 'undefined' && global.Buffer;\n}\n\nfunction generateGUID() {\n\t\tvar s4 = function () {\n\t\t\t\treturn Math.floor((1 + Math.random()) * 0x10000)\n\t\t\t\t\t\t.toString(16)\n\t\t\t\t\t\t.substring(1);\n\t\t};\n\t\treturn s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n}\n\nfunction truncateEventQueue(queue, maxLength) {\n\t\tvar truncatedQueue = queue;\n\t\tif (queue && queue.length > maxLength && maxLength > 0) {\n\t\t\t\tvar startIndex = queue.length - maxLength;\n\t\t\t\ttruncatedQueue = queue.slice(startIndex, queue.length);\n\t\t}\n\t\treturn truncatedQueue;\n}\n\nfunction pad(n, length) {\n\t\tvar str = n.toString();\n\t\tif (str.length < length) {\n\t\t\t\tvar padding = [];\n\t\t\t\tpadding.length = length - str.length + 1;\n\t\t\t\tstr = padding.join('0') + str;\n\t\t}\n\t\treturn str;\n}\n\nfunction extend(dest, from) {\n\t\tvar props = Object.getOwnPropertyNames(from);\n\n\t\tprops.forEach(function (name) {\n\t\t\t\tif (typeof from[name] === 'object') {\n\t\t\t\t\t\tif (typeof dest[name] !== 'object') {\n\t\t\t\t\t\t\t\tdest[name] = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t\textend(dest[name], from[name]);\n\t\t\t\t} else {\n\t\t\t\t\t\tvar destination = Object.getOwnPropertyDescriptor(from, name);\n\t\t\t\t\t\tObject.defineProperty(dest, name, destination);\n\t\t\t\t}\n\t\t});\n\n\t\treturn dest;\n}\n\nfunction consumeStream(stream) {\n\t\tvar noOp = function () {return; };\n\t\tstream.on('data', noOp);\n\t\tstream.on('end', noOp);\n}\n\nfunction notifyCallbacks(callbacks, err, numSentEvents) {\n\t\tcallbacks.forEach(function (callback) {\n\t\t\t\t// Call each callback in a timeout, so if there's an exception in one callback it doesn't affect any others\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\tcallback(err, numSentEvents);\n\t\t\t\t});\n\t\t});\n}\n\n\n/**\n\t\tConstants\n**/\n\nvar LOG_PREFIX = 'Ingest :: ';\nvar ANALYTICS_HOST = {\n\t\tprod:   'cc-api-data.adobe.io',\n\t\tstage:  'cc-api-data-stage.adobe.io',\n\t\tdev:    'cc-api-data-dev.adobe.io'\n};\nvar INGEST_PATH = '/ingest';\nvar RETRY_RANDOM_SECONDS = 10;\n\n// Settable options, with their default values\nvar DEFAULT_OPTIONS = {\n\t\tENVIRONMENT: 'prod',\n\t\tALLOW_NO_TOKEN: false,\n\t\tANALYTICS_INGEST_TYPE: 'dunamis',\n\t\tANALYTICS_MAX_QUEUED_EVENTS: 50,\n\t\tANALYTICS_DEBOUNCE: 10000,\n\t\tANALYTICS_API_KEY: null,\n\t\tANALYTICS_X_PRODUCT: null,\n\t\tANALYTICS_X_PRODUCT_LOCATION: undefined,\n\t\tANALYTICS_PROJECT: null,\n\t\tANALYTICS_USER_REGION: 'UNKNOWN',\n\t\tTIMESTAMP_PROPERTY_NAME: 'event.dts_end'\n};\nvar REQUIRED_OPTIONS = [\n\t\t'ANALYTICS_API_KEY',\n\t\t'ANALYTICS_X_PRODUCT',\n\t\t'ANALYTICS_PROJECT',\n];\n\n\n/**\n\t\tIngest Class\n**/\n\n// Constructor\nfunction Ingest(dependencies, options) {\n\t\tvar that = this;\n\t\tdependencies = dependencies || {};\n\t\toptions = options || {};\n\n\t\tvar throwError = function (message) {\n\t\t\t\tthat._log(message);\n\t\t\t\tthrow new Error('ERROR: ' + message);\n\t\t};\n\n\t\t// Internal state\n\t\tthis._queuedEvents = [];\n\t\tthis._queuedCallbacks = [];\n\t\tthis._lastSendTime = 0;\n\t\tthis._isEnabled = false; // Sending analytics is disabled by default\n\n\t\t// Configure dependencies\n\t\tthis._dependencies = extend({}, dependencies);\n\t\tif (!dependencies.getAccessToken || typeof dependencies.getAccessToken !== 'function') {\n\t\t\t\tthrowError('Missing dependency: getAccessToken');\n\t\t}\n\n\t\t// Configure options\n\t\tthis._options = {};\n\t\tObject.keys(DEFAULT_OPTIONS).forEach(function (key) {\n\t\t\t\tthis._options[key] = options[key] || DEFAULT_OPTIONS[key];\n\t\t}, this);\n\n\t\t// Make sure required options have been passed in\n\t\tREQUIRED_OPTIONS.forEach(function (option) {\n\t\t\t\tif (!this._options[option]) {\n\t\t\t\t\t\tthrowError('Missing option: ' + option);\n\t\t\t\t}\n\t\t}, this);\n}\n\nIngest.prototype._log = function (message) {\n\t\tvar doLog = this._dependencies.log\n\t\tif (doLog) {\n\t\t\tdoLog(LOG_PREFIX + message);\n\t\t}\n};\n\nIngest.prototype._getAgent = function (url, callback) {\n\t\tif (this._dependencies.getAgent) {\n\t\t\t\tthis._dependencies.getAgent(url, callback);\n\t\t\t\treturn;\n\t\t}\n\t\tcallback(null, {});\n};\n\nIngest.prototype._getAccessToken = function (callback) {\n\t\tthis._dependencies.getAccessToken(callback);\n};\n\nIngest.prototype._clearAccessToken = function () {\n\t\tif (this._dependencies.clearAccessToken) {\n\t\t\t\tthis._dependencies.clearAccessToken();\n\t\t}\n};\n\nIngest.prototype._getEnvironment = function () {\n\t\treturn ANALYTICS_HOST[this._options.ENVIRONMENT] ? this._options.ENVIRONMENT : 'prod';\n};\n\nIngest.prototype._getAnalyticsHost = function () {\n\t\treturn ANALYTICS_HOST[this._getEnvironment()];\n};\n\nIngest.prototype._formatTimestamp = function (date) {\n\t\t// Corresponds to moment format string 'YYYY-MM-DDTHH:mm:ss.SSSZZ'\n\t\tvar YYYY = date.getFullYear();\n\t\tvar MM = pad(date.getMonth() + 1, 2); // Month is 0-11\n\t\tvar DD = pad(date.getDate(), 2);\n\t\tvar HH = pad(date.getHours(), 2);\n\t\tvar mm = pad(date.getMinutes(), 2);\n\t\tvar ss = pad(date.getSeconds(), 2);\n\t\tvar SSS = pad(date.getMilliseconds(), 3);\n\n\t\tvar offset = date.getTimezoneOffset();\n\t\tvar sign = offset < 0 ? '+' : '-'; // Sign is inverted\n\t\tvar hours = Math.floor(Math.abs(offset) / 60);\n\t\tvar mins = Math.abs(offset) % 60;\n\t\tvar ZZ = sign + pad(hours, 2) + pad(mins, 2);\n\n\t\treturn YYYY + '-' + MM + '-' + DD + 'T' + HH + ':' + mm + ':' + ss + '.' + SSS + ZZ;\n};\n\nIngest.prototype._updateDebounce = function (headers) {\n\t\tvar retryAfterHeader = headers && (headers['retry-after'] || headers['Retry-After']);\n\t\tvar retryAfter = 0;\n\n\t\tif (retryAfterHeader) {\n\t\t\t\tvar retryTime;\n\t\t\t\ttry {\n\t\t\t\t\t\t// First, try to parse it as a number (retry time in seconds)\n\t\t\t\t\t\tretryTime = parseInt(retryAfterHeader, 10);\n\t\t\t\t} catch (ignore) {\n\t\t\t\t}\n\n\t\t\t\tif (retryTime) {\n\t\t\t\t\t\tretryAfter = Math.max(0, retryTime);\n\t\t\t\t} else {\n\t\t\t\t\t\t// If that fails, try to parse it as a date\n\t\t\t\t\t\tvar retryDate = Date.parse(retryAfterHeader);\n\t\t\t\t\t\tif (retryDate) {\n\t\t\t\t\t\t\t\t// Need to add a randomised element to ensure requests don't all come back at the same time\n\t\t\t\t\t\t\t\tvar now = new Date().valueOf();\n\t\t\t\t\t\t\t\tvar retrySeconds = Math.max(0, retryDate - now) / 1000;\n\t\t\t\t\t\t\t\tvar retryRandom = Math.floor(Math.random() * RETRY_RANDOM_SECONDS);\n\t\t\t\t\t\t\t\tretryAfter = retrySeconds + retryRandom;\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t}\n\n\t\tthis._options.ANALYTICS_DEBOUNCE = Math.max(retryAfter * 1000, this._options.ANALYTICS_DEBOUNCE);\n};\n\nIngest.prototype._queueEvent = function (event) {\n\t\tif (this._queuedEvents.length >= this._options.ANALYTICS_MAX_QUEUED_EVENTS) {\n\t\t\t\tthis._queuedEvents.shift();\n\t\t}\n\t\tthis._queuedEvents.push(event);\n};\n\nIngest.prototype._requeueEvents = function (failedEvents) {\n\t\t// If we failed sending events, add them back to the beginning of the queue - but make sure it doesn't go over the maximum length\n\t\tthis._queuedEvents = failedEvents.concat(this._queuedEvents);\n\t\tthis._queuedEvents = truncateEventQueue(this._queuedEvents, this._options.ANALYTICS_MAX_QUEUED_EVENTS);\n};\n\nIngest.prototype._sendAnalytics = function (sendImmediately, callback, retryAttemps) {\n\t\tvar that = this;\n\t\tretryAttemps = retryAttemps || 0;\n\n\t\tif (callback) {\n\t\t\t\tthis._queuedCallbacks.push(callback);\n\t\t}\n\n\t\tif (!this._isEnabled || this._queuedEvents.length === 0) {\n\t\t\t\tvar callbacks = this._queuedCallbacks;\n\t\t\t\tthis._queuedCallbacks = [];\n\t\t\t\tif (!this._isEnabled) {\n\t\t\t\t\t\tnotifyCallbacks(callbacks, new Error('Analytics Disabled'));\n\t\t\t\t} else {\n\t\t\t\t\t\tnotifyCallbacks(callbacks, null, 0);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t}\n\t\tvar debounce = this._options.ANALYTICS_DEBOUNCE;\n\n\t\tif (sendImmediately) {\n\t\t\t\t// Clear any timeout, and set the debounce to zero, to force an immediate send\n\t\t\t\tdebounce = 0;\n\t\t\t\tclearTimeout(this._pendingSendAnalyticsTimeout);\n\t\t\t\tthis._pendingSendAnalyticsTimeout = undefined;\n\t\t}\n\n\t\tif (this._sendingEvents || this._pendingSendAnalyticsTimeout) {\n\t\t\t\tthis._log('Queued ' + this._queuedEvents.length + ' events to be sent.');\n\t\t\t\t// We're in the middle of sending analytics already\n\t\t\t\t// This will automatically kick off another send afterwards, so no need to do anything\n\t\t\t\treturn;\n\t\t}\n\n\t\tvar currentTime = new Date().valueOf();\n\t\tif (currentTime - this._lastSendTime < debounce) {\n\t\t\t\t// Throttle analytics, so we don't send too often - this allows us to batch up analytics\n\t\t\t\tthis._pendingSendAnalyticsTimeout = setTimeout(function () {\n\t\t\t\t\t\tthat._pendingSendAnalyticsTimeout = undefined;\n\t\t\t\t\t\tthat._sendAnalytics();\n\t\t\t\t}, debounce);\n\t\t\t\treturn;\n\t\t}\n\n\t\tthis._lastSendTime = currentTime;\n\t\t// The queued events are now going to be sent\n\t\tthis._sendingEvents = this._queuedEvents;\n\t\tthis._sendingCallbacks = this._queuedCallbacks;\n\t\tthis._queuedEvents = [];\n\t\tthis._queuedCallbacks = [];\n\n\t\tvar requestId = generateGUID();\n\t\tvar logPrefix = '[' + requestId + '] ';\n\t\tvar ingestData = {\n\t\t\t\tevents: this._sendingEvents\n\t\t};\n\n\t\t// This gets called when finished, whether we got a response or failed with an error\n\t\tvar onFinished = function (err) {\n\t\t\t\tvar numNewEvents = that._queuedEvents ? that._queuedEvents.length : 0;\n\t\t\t\tif (that._sendingEvents) {\n\t\t\t\t\tvar numSentEvents = that._sendingEvents.length;\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tthat._requeueEvents(that._sendingEvents);\n\t\t\t\t\t\tthat._log(logPrefix + 'Error sending ' + numSentEvents + ' events: ' + err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthat._log(logPrefix + 'Success sending ' + numSentEvents + ' events: ' + JSON.stringify(that._sendingEvents));\n\t\t\t\t\t}\n\t\t\t\t\tdelete that._sendingEvents;\n\n\t\t\t\t\tvar sendingCallbacks = that._sendingCallbacks;\n\t\t\t\t\tdelete that._sendingCallbacks;\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tnotifyCallbacks(sendingCallbacks, err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnotifyCallbacks(sendingCallbacks, null, numSentEvents);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If there were any new events while sending the last batch, trigger another send.\n\t\t\t\t// Note: This doesn't auto-trigger a retry if we failed, and there were no new events.\n\t\t\t\tif (numNewEvents > 0) {\n\t\t\t\t\t\tthat._sendAnalytics();\n\t\t\t\t}\n\t\t};\n\n\t\t// This gets called when we get an actual response from the server\n\t\tvar handleResponse = function (statusCode, headers) {\n\t\t\t\tthat._updateDebounce(headers);\n\n\t\t\t\tif (statusCode === 401 && retryAttemps === 0) {\n\t\t\t\t\t\tthat._clearAccessToken();\n\n\t\t\t\t\t\tthat._requeueEvents(that._sendingEvents);\n\t\t\t\t\t\tdelete that._sendingEvents;\n\n\t\t\t\t\t\tthat._queuedCallbacks = that._sendingCallbacks.concat(that._queuedCallbacks);\n\t\t\t\t\t\tdelete that._sendingCallbacks;\n\n\t\t\t\t\t\t// Retry one more time\n\t\t\t\t\t\tthat._log(logPrefix + 'Access token is expired. Retry one more time.');\n\t\t\t\t\t\tthat._sendAnalytics(true, undefined, retryAttemps + 1);\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (statusCode !== 200) {\n\t\t\t\t\t\tonFinished(new Error('Unexpected Response: ' + statusCode));\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonFinished();\n\t\t};\n\n\t\tthis._getAccessToken(function (err, token) {\n\t\t\t\tif (err && !that._options.ALLOW_NO_TOKEN) {\n\t\t\t\t\t\tonFinished(err);\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ((!token || token.length === 0) && !that._options.ALLOW_NO_TOKEN) {\n\t\t\t\t\t\tonFinished(new Error('No access token'));\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar urlBase = 'https://' + that._getAnalyticsHost();\n\t\t\t\tthat._log(logPrefix + 'Sending analytics to ' + urlBase + INGEST_PATH);\n\t\t\t\tif (isNodeJS()) {\n\t\t\t\t\t\tvar reqHeaders = {\n\t\t\t\t\t\t\t\t'x-api-key'         : that._options.ANALYTICS_API_KEY,\n\t\t\t\t\t\t\t\t'X-Product'         : that._options.ANALYTICS_X_PRODUCT,\n\t\t\t\t\t\t\t\t'X-Request-Id'      : requestId,\n\t\t\t\t\t\t\t\t'Content-Type'      : 'application/json'\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (token) {\n\t\t\t\t\t\t\t\treqHeaders.Authorization = 'Bearer ' + token;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar requestOptions = {\n\t\t\t\t\t\t\t\thostname: that._getAnalyticsHost(),\n\t\t\t\t\t\t\t\tport: 443,\n\t\t\t\t\t\t\t\tpath: INGEST_PATH,\n\t\t\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\t\t\theaders: reqHeaders\n\t\t\t\t\t\t};\n\t\t\t\t\t\tif (that._options.ANALYTICS_X_PRODUCT_LOCATION) {\n\t\t\t\t\t\t\t\trequestOptions.headers['X-Product-Location'] = that._options.ANALYTICS_X_PRODUCT_LOCATION;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthat._getAgent(urlBase, function (err, proxyOptions) {\n\t\t\t\t\t\t\t\tif (proxyOptions && proxyOptions.agent) {\n\t\t\t\t\t\t\t\t\t\trequestOptions.agent = proxyOptions && proxyOptions.agent;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\textend(requestOptions, proxyOptions || {});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// eslint-disable-next-line global-require\n\t\t\t\t\t\t\t\tvar https = require('https');\n\t\t\t\t\t\t\t\tvar req = https.request(requestOptions, function (response) {\n\t\t\t\t\t\t\t\t\t\tif (response) {\n\t\t\t\t\t\t\t\t\t\t\t\t// Need to consume the response data, otherwise the connection resource will never be released.\n\t\t\t\t\t\t\t\t\t\t\t\tconsumeStream(response);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tvar statusCode = response && response.statusCode;\n\t\t\t\t\t\t\t\t\t\tvar headers = response && response.headers;\n\t\t\t\t\t\t\t\t\t\thandleResponse(statusCode, headers);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t// Use req.once, rather than req.on (avoids hanging onto the resource in case of error)\n\t\t\t\t\t\t\t\treq.once('error', function (err) {\n\t\t\t\t\t\t\t\t\t\tonFinished(err);\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\treq.end(JSON.stringify(ingestData));\n\t\t\t\t\t\t});\n\n\t\t\t\t} else {\n\t\t\t\t\t\t// Browser\n\t\t\t\t\t\tvar requestBody = JSON.stringify(ingestData);\n\t\t\t\t\t\tvar sendIngestRequest = function (body) {\n\t\t\t\t\t\t\t\t// Send the request\n\t\t\t\t\t\t\t\tvar xhr = new XMLHttpRequest();\n\t\t\t\t\t\t\t\txhr.onreadystatechange = function () {\n\t\t\t\t\t\t\t\t\t\tif (this.readyState === 4) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar headers = xhr.getAllResponseHeaders();\n\t\t\t\t\t\t\t\t\t\t\t\thandleResponse(this.status, headers);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\txhr.onerror = function (error) {\n\t\t\t\t\t\t\t\t\t\tonFinished(new Error(error));\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\txhr.open('POST', urlBase + INGEST_PATH, true);\n\t\t\t\t\t\t\t\txhr.setRequestHeader('x-api-key',           that._options.ANALYTICS_API_KEY);\n\t\t\t\t\t\t\t\txhr.setRequestHeader('x-user-region',       that._options.ANALYTICS_USER_REGION);\n\t\t\t\t\t\t\t\txhr.setRequestHeader('Content-Type',        'application/json');\n\t\t\t\t\t\t\t\tif (token) {\n\t\t\t\t\t\t\t\t\t\txhr.setRequestHeader('Authorization',       'Bearer ' + token);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\txhr.setRequestHeader('X-Product',           that._options.ANALYTICS_X_PRODUCT);\n\t\t\t\t\t\t\t\txhr.setRequestHeader('X-Product-Location',  that._options.ANALYTICS_X_PRODUCT_LOCATION);\n\t\t\t\t\t\t\t\txhr.setRequestHeader('X-Request-Id',        requestId);\n\t\t\t\t\t\t\t\txhr.send(body);\n\t\t\t\t\t\t};\n\t\t\t\t\t\tsendIngestRequest(requestBody);\n\t\t\t\t}\n\t\t});\n};\n\n\n/**\n\t\tPublic APIs\n**/\n\n/**\n * Configure whether analytics is enabled or not. Note: By default, analytics are disabled, so you need to\n * explicitly call `ingest.enable(true)` to enable sending analytics.\n *\n * When sending analytics is disabled, events are still queued up, so they can be sent when it's reenabled.\n *\n * @param {Boolean} isEnabled Whether to enable or disable sending analytics.\n *\n * @memberof Ingest\n */\nIngest.prototype.enable = function (isEnabled) {\n\t\tthis._isEnabled = isEnabled;\n\t\tif (isEnabled) {\n\t\t\t\t// If we enable analytics, trigger flushing any queued events\n\t\t\t\tthis._sendAnalytics(true);\n\t\t}\n};\n\n/**\n * Post an analytics event to ingest.\n *\n * @param {Object} payload Ingest payload to be sent\n * @param {Function} [callback] If supplied, called when the event has been posted (or failed)\n *\n * @memberof Ingest\n */\nIngest.prototype.postEvent = function (payload, callback, options) {\n\t\tvar overrideOptions = options || {};\n\t\tvar dtsStart = 'event.dts_start';\n\t\tvar collDts = 'event.coll_dts';\n\t\tvar dtsEnd = overrideOptions.TIMESTAMP_PROPERTY_NAME || this._options.TIMESTAMP_PROPERTY_NAME;\n\t\tvar ingestProject = overrideOptions.ANALYTICS_PROJECT ||  this._options.ANALYTICS_PROJECT;\n\t\tvar ingestType = overrideOptions.ANALYTICS_INGEST_TYPE ||  this._options.ANALYTICS_INGEST_TYPE;\n\n\t\tif (payload[collDts] && payload[collDts] instanceof Date) {\n\t\t\tpayload[collDts] = this._formatTimestamp(payload[collDts]);\n\t\t}\n\t\tif (payload[dtsStart] && payload[dtsStart] instanceof Date) {\n\t\t\tpayload[dtsStart] = this._formatTimestamp(payload[dtsStart]);\n\t\t}\n\t\t// Set to current time, if it's not supplied\n\t\tif (!payload[dtsEnd]) {\n\t\t\tpayload[dtsEnd] = this._formatTimestamp(new Date());\n\t\t}\n\t\tif (payload[dtsEnd] instanceof Date) {\n\t\t\tpayload[dtsEnd] = this._formatTimestamp(payload[dtsEnd]);\n\t\t}\n\t\tvar event = {\n\t\t\t\ttime: payload[dtsEnd],\n\t\t\t\tproject: ingestProject,\n\t\t\t\tenvironment: this._getEnvironment(),\n\t\t\t\tingesttype: ingestType,\n\t\t\t\tdata: payload\n\t\t};\n\n\t\t/**\n\t\t * Payload's 'simulate' property triggers the option to not\n\t\t * actually post the event but dump all relevant data to a log\n\t\t */\n\t\tif (!payload.simulate) {\n\t\t\tthis._queueEvent(event);\n\t\t\tthis._sendAnalytics(false, callback);\n\t\t} else {\n\t\t\tthis._log('event sim:' + JSON.stringify(event));\n\t\t\tif (callback) {\n\t\t\t\tnotifyCallbacks([callback], null, 0);\n\t\t\t}\n\t\t}\n};\n\n/**\n * Flush the analytics (trigger sending any queued analytics to the server)\n *\n * @param {Boolean} immediate Flush event immediately or not\n * @param {Function} [callback] If supplied, called when the flush has finished (or failed)\n *\n * @memberof Ingest\n */\nIngest.prototype.flush = function (sendImmediately, callback) {\n\t\tthis._sendAnalytics(sendImmediately, callback);\n};\n\nmodule.exports = Ingest\n","import type { Client } from './client';\nimport { getClient } from './currentScopes';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { Event, EventHint } from './types-hoist/event';\nimport type { Integration, IntegrationFn } from './types-hoist/integration';\nimport type { Options } from './types-hoist/options';\nimport { debug } from './utils/debug-logger';\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n  [key: string]: Integration;\n};\n\ntype IntegrationWithDefaultInstance = Integration & { isDefaultInstance?: true };\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preserve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n  const integrationsByName: { [key: string]: Integration } = {};\n\n  integrations.forEach((currentInstance: IntegrationWithDefaultInstance) => {\n    const { name } = currentInstance;\n\n    const existingInstance: IntegrationWithDefaultInstance | undefined = integrationsByName[name];\n\n    // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n    // default instance to overwrite an existing user instance\n    if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n      return;\n    }\n\n    integrationsByName[name] = currentInstance;\n  });\n\n  return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nexport function getIntegrationsToSetup(options: Pick<Options, 'defaultIntegrations' | 'integrations'>): Integration[] {\n  const defaultIntegrations = options.defaultIntegrations || [];\n  const userIntegrations = options.integrations;\n\n  // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n  defaultIntegrations.forEach((integration: IntegrationWithDefaultInstance) => {\n    integration.isDefaultInstance = true;\n  });\n\n  let integrations: Integration[];\n\n  if (Array.isArray(userIntegrations)) {\n    integrations = [...defaultIntegrations, ...userIntegrations];\n  } else if (typeof userIntegrations === 'function') {\n    const resolvedUserIntegrations = userIntegrations(defaultIntegrations);\n    integrations = Array.isArray(resolvedUserIntegrations) ? resolvedUserIntegrations : [resolvedUserIntegrations];\n  } else {\n    integrations = defaultIntegrations;\n  }\n\n  return filterDuplicates(integrations);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(client: Client, integrations: Integration[]): IntegrationIndex {\n  const integrationIndex: IntegrationIndex = {};\n\n  integrations.forEach((integration: Integration | undefined) => {\n    // guard against empty provided integrations\n    if (integration) {\n      setupIntegration(client, integration, integrationIndex);\n    }\n  });\n\n  return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nexport function afterSetupIntegrations(client: Client, integrations: Integration[]): void {\n  for (const integration of integrations) {\n    // guard against empty provided integrations\n    if (integration?.afterAllSetup) {\n      integration.afterAllSetup(client);\n    }\n  }\n}\n\n/** Setup a single integration.  */\nexport function setupIntegration(client: Client, integration: Integration, integrationIndex: IntegrationIndex): void {\n  if (integrationIndex[integration.name]) {\n    DEBUG_BUILD && debug.log(`Integration skipped because it was already installed: ${integration.name}`);\n    return;\n  }\n  integrationIndex[integration.name] = integration;\n\n  // `setupOnce` is only called the first time\n  if (installedIntegrations.indexOf(integration.name) === -1 && typeof integration.setupOnce === 'function') {\n    integration.setupOnce();\n    installedIntegrations.push(integration.name);\n  }\n\n  // `setup` is run for each client\n  if (integration.setup && typeof integration.setup === 'function') {\n    integration.setup(client);\n  }\n\n  if (typeof integration.preprocessEvent === 'function') {\n    const callback = integration.preprocessEvent.bind(integration) as typeof integration.preprocessEvent;\n    client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n  }\n\n  if (typeof integration.processEvent === 'function') {\n    const callback = integration.processEvent.bind(integration) as typeof integration.processEvent;\n\n    const processor = Object.assign((event: Event, hint: EventHint) => callback(event, hint, client), {\n      id: integration.name,\n    });\n\n    client.addEventProcessor(processor);\n  }\n\n  DEBUG_BUILD && debug.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current scope's client. */\nexport function addIntegration(integration: Integration): void {\n  const client = getClient();\n\n  if (!client) {\n    DEBUG_BUILD && debug.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n    return;\n  }\n\n  client.addIntegration(integration);\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nexport function defineIntegration<Fn extends IntegrationFn>(fn: Fn): (...args: Parameters<Fn>) => Integration {\n  return fn;\n}\n","// Slightly modified (no IE8 support, ES6) and transcribed to TypeScript\n// https://github.com/calvinmetcalf/rollup-plugin-node-builtins/blob/63ab8aacd013767445ca299e468d9a60a95328d7/src/es6/path.js\n//\n// Copyright Joyent, Inc.and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n/** JSDoc */\nfunction normalizeArray(parts: string[], allowAboveRoot?: boolean): string[] {\n  // if the path tries to go above the root, `up` ends up > 0\n  let up = 0;\n  for (let i = parts.length - 1; i >= 0; i--) {\n    const last = parts[i];\n    if (last === '.') {\n      parts.splice(i, 1);\n    } else if (last === '..') {\n      parts.splice(i, 1);\n      up++;\n    } else if (up) {\n      parts.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (allowAboveRoot) {\n    for (; up--; up) {\n      parts.unshift('..');\n    }\n  }\n\n  return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nconst splitPathRe = /^(\\S+:\\\\|\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^/\\\\]+?|)(\\.[^./\\\\]*|))(?:[/\\\\]*)$/;\n/** JSDoc */\nfunction splitPath(filename: string): string[] {\n  // Truncate files names greater than 1024 characters to avoid regex dos\n  // https://github.com/getsentry/sentry-javascript/pull/8737#discussion_r1285719172\n  const truncated = filename.length > 1024 ? `<truncated>${filename.slice(-1024)}` : filename;\n  const parts = splitPathRe.exec(truncated);\n  return parts ? parts.slice(1) : [];\n}\n\n// path.resolve([from ...], to)\n// posix version\n/** JSDoc */\nexport function resolve(...args: string[]): string {\n  let resolvedPath = '';\n  let resolvedAbsolute = false;\n\n  for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n    const path = i >= 0 ? args[i] : '/';\n\n    // Skip empty entries\n    if (!path) {\n      continue;\n    }\n\n    resolvedPath = `${path}/${resolvedPath}`;\n    resolvedAbsolute = path.charAt(0) === '/';\n  }\n\n  // At this point the path should be resolved to a full absolute path, but\n  // handle relative paths to be safe (might happen when process.cwd() fails)\n\n  // Normalize the path\n  resolvedPath = normalizeArray(\n    resolvedPath.split('/').filter(p => !!p),\n    !resolvedAbsolute,\n  ).join('/');\n\n  return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}\n\n/** JSDoc */\nfunction trim(arr: string[]): string[] {\n  let start = 0;\n  for (; start < arr.length; start++) {\n    if (arr[start] !== '') {\n      break;\n    }\n  }\n\n  let end = arr.length - 1;\n  for (; end >= 0; end--) {\n    if (arr[end] !== '') {\n      break;\n    }\n  }\n\n  if (start > end) {\n    return [];\n  }\n  return arr.slice(start, end - start + 1);\n}\n\n// path.relative(from, to)\n// posix version\n/** JSDoc */\nexport function relative(from: string, to: string): string {\n  /* eslint-disable no-param-reassign */\n  from = resolve(from).slice(1);\n  to = resolve(to).slice(1);\n  /* eslint-enable no-param-reassign */\n\n  const fromParts = trim(from.split('/'));\n  const toParts = trim(to.split('/'));\n\n  const length = Math.min(fromParts.length, toParts.length);\n  let samePartsLength = length;\n  for (let i = 0; i < length; i++) {\n    if (fromParts[i] !== toParts[i]) {\n      samePartsLength = i;\n      break;\n    }\n  }\n\n  let outputParts = [];\n  for (let i = samePartsLength; i < fromParts.length; i++) {\n    outputParts.push('..');\n  }\n\n  outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n  return outputParts.join('/');\n}\n\n// path.normalize(path)\n// posix version\n/** JSDoc */\nexport function normalizePath(path: string): string {\n  const isPathAbsolute = isAbsolute(path);\n  const trailingSlash = path.slice(-1) === '/';\n\n  // Normalize the path\n  let normalizedPath = normalizeArray(\n    path.split('/').filter(p => !!p),\n    !isPathAbsolute,\n  ).join('/');\n\n  if (!normalizedPath && !isPathAbsolute) {\n    normalizedPath = '.';\n  }\n  if (normalizedPath && trailingSlash) {\n    normalizedPath += '/';\n  }\n\n  return (isPathAbsolute ? '/' : '') + normalizedPath;\n}\n\n// posix version\n/** JSDoc */\nexport function isAbsolute(path: string): boolean {\n  return path.charAt(0) === '/';\n}\n\n// posix version\n/** JSDoc */\nexport function join(...args: string[]): string {\n  return normalizePath(args.join('/'));\n}\n\n/** JSDoc */\nexport function dirname(path: string): string {\n  const result = splitPath(path);\n  const root = result[0] || '';\n  let dir = result[1];\n\n  if (!root && !dir) {\n    // No dirname whatsoever\n    return '.';\n  }\n\n  if (dir) {\n    // It has a dirname, strip trailing slash\n    dir = dir.slice(0, dir.length - 1);\n  }\n\n  return root + dir;\n}\n\n/** JSDoc */\nexport function basename(path: string, ext?: string): string {\n  let f = splitPath(path)[2] || '';\n  if (ext && f.slice(ext.length * -1) === ext) {\n    f = f.slice(0, f.length - ext.length);\n  }\n  return f;\n}\n","import { defineIntegration } from '../integration';\nimport type { Event } from '../types-hoist/event';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport type { Stacktrace } from '../types-hoist/stacktrace';\nimport { basename, relative } from '../utils/path';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\n\ntype StackFrameIteratee = (frame: StackFrame) => StackFrame;\n\nconst INTEGRATION_NAME = 'RewriteFrames';\n\ninterface RewriteFramesOptions {\n  /**\n   * Root path (the beginning of the path) that will be stripped from the frames' filename.\n   *\n   * This option has slightly different behaviour in the browser and on servers:\n   * - In the browser, the value you provide in `root` will be stripped from the beginning stack frames' paths (if the path started with the value).\n   * - On the server, the root value will only replace the beginning of stack frame filepaths, when the path is absolute. If no `root` value is provided and the path is absolute, the frame will be reduced to only the filename and the provided `prefix` option.\n   *\n   * Browser example:\n   * - Original frame: `'http://example.com/my/path/static/asset.js'`\n   * - `root: 'http://example.com/my/path'`\n   * - `assetPrefix: 'app://'`\n   * - Resulting frame: `'app:///static/asset.js'`\n   *\n   * Server example:\n   * - Original frame: `'/User/local/my/path/static/asset.js'`\n   * - `root: '/User/local/my/path'`\n   * - `assetPrefix: 'app://'`\n   * - Resulting frame: `'app:///static/asset.js'`\n   */\n  root?: string;\n\n  /**\n   * A custom prefix that stack frames will be prepended with.\n   *\n   * Default: `'app://'`\n   *\n   * This option has slightly different behaviour in the browser and on servers:\n   * - In the browser, the value you provide in `prefix` will prefix the resulting filename when the value you provided in `root` was applied. Effectively replacing whatever `root` matched in the beginning of the frame with `prefix`.\n   * - On the server, the prefix is applied to all stackframes with absolute paths. On Windows, the drive identifier (e.g. \"C://\") is replaced with the prefix.\n   */\n  prefix?: string;\n\n  /**\n   * Defines an iterator that is used to iterate through all of the stack frames for modification before being sent to Sentry.\n   * Setting this option will effectively disable both the `root` and the `prefix` options.\n   */\n  iteratee?: StackFrameIteratee;\n}\n\n/**\n * Rewrite event frames paths.\n */\nexport const rewriteFramesIntegration = defineIntegration((options: RewriteFramesOptions = {}) => {\n  const root = options.root;\n  const prefix = options.prefix || 'app:///';\n\n  const isBrowser = 'window' in GLOBAL_OBJ && !!GLOBAL_OBJ.window;\n\n  const iteratee: StackFrameIteratee = options.iteratee || generateIteratee({ isBrowser, root, prefix });\n\n  /** Process an exception event. */\n  function _processExceptionsEvent(event: Event): Event {\n    try {\n      return {\n        ...event,\n        exception: {\n          ...event.exception,\n          // The check for this is performed inside `process` call itself, safe to skip here\n          // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n          values: event.exception!.values!.map(value => ({\n            ...value,\n            ...(value.stacktrace && { stacktrace: _processStacktrace(value.stacktrace) }),\n          })),\n        },\n      };\n    } catch {\n      return event;\n    }\n  }\n\n  /** Process a stack trace. */\n  function _processStacktrace(stacktrace?: Stacktrace): Stacktrace {\n    return {\n      ...stacktrace,\n      frames: stacktrace?.frames?.map(f => iteratee(f)),\n    };\n  }\n\n  return {\n    name: INTEGRATION_NAME,\n    processEvent(originalEvent) {\n      let processedEvent = originalEvent;\n\n      if (originalEvent.exception && Array.isArray(originalEvent.exception.values)) {\n        processedEvent = _processExceptionsEvent(processedEvent);\n      }\n\n      return processedEvent;\n    },\n  };\n});\n\n/**\n * Exported only for tests.\n */\nexport function generateIteratee({\n  isBrowser,\n  root,\n  prefix,\n}: {\n  isBrowser: boolean;\n  root?: string;\n  prefix: string;\n}): StackFrameIteratee {\n  return (frame: StackFrame) => {\n    if (!frame.filename) {\n      return frame;\n    }\n\n    // Determine if this is a Windows frame by checking for a Windows-style prefix such as `C:\\`\n    const isWindowsFrame =\n      /^[a-zA-Z]:\\\\/.test(frame.filename) ||\n      // or the presence of a backslash without a forward slash (which are not allowed on Windows)\n      (frame.filename.includes('\\\\') && !frame.filename.includes('/'));\n\n    // Check if the frame filename begins with `/`\n    const startsWithSlash = /^\\//.test(frame.filename);\n\n    if (isBrowser) {\n      if (root) {\n        const oldFilename = frame.filename;\n        if (oldFilename.indexOf(root) === 0) {\n          frame.filename = oldFilename.replace(root, prefix);\n        }\n      }\n    } else {\n      if (isWindowsFrame || startsWithSlash) {\n        const filename = isWindowsFrame\n          ? frame.filename\n              .replace(/^[a-zA-Z]:/, '') // remove Windows-style prefix\n              .replace(/\\\\/g, '/') // replace all `\\\\` instances with `/`\n          : frame.filename;\n        const base = root ? relative(root, filename) : basename(filename);\n        frame.filename = `${prefix}${base}`;\n      }\n    }\n\n    return frame;\n  };\n}\n","import { getCurrentScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { type Event } from '../types-hoist/event';\nimport { debug } from './debug-logger';\nimport { getActiveSpan, spanToJSON } from './spanUtils';\n\n/**\n * Ordered LRU cache for storing feature flags in the scope context. The name\n * of each flag in the buffer is unique, and the output of getAll() is ordered\n * from oldest to newest.\n */\n\nexport type FeatureFlag = { readonly flag: string; readonly result: boolean };\n\n/**\n * Max size of the LRU flag buffer stored in Sentry scope and event contexts.\n */\nexport const _INTERNAL_FLAG_BUFFER_SIZE = 100;\n\n/**\n * Max number of flag evaluations to record per span.\n */\nexport const _INTERNAL_MAX_FLAGS_PER_SPAN = 10;\n\nconst SPAN_FLAG_ATTRIBUTE_PREFIX = 'flag.evaluation.';\n\n/**\n * Copies feature flags that are in current scope context to the event context\n */\nexport function _INTERNAL_copyFlagsFromScopeToEvent(event: Event): Event {\n  const scope = getCurrentScope();\n  const flagContext = scope.getScopeData().contexts.flags;\n  const flagBuffer = flagContext ? flagContext.values : [];\n\n  if (!flagBuffer.length) {\n    return event;\n  }\n\n  if (event.contexts === undefined) {\n    event.contexts = {};\n  }\n  event.contexts.flags = { values: [...flagBuffer] };\n  return event;\n}\n\n/**\n * Inserts a flag into the current scope's context while maintaining ordered LRU properties.\n * Not thread-safe. After inserting:\n * - The flag buffer is sorted in order of recency, with the newest evaluation at the end.\n * - The names in the buffer are always unique.\n * - The length of the buffer never exceeds `maxSize`.\n *\n * @param name     Name of the feature flag to insert.\n * @param value    Value of the feature flag.\n * @param maxSize  Max number of flags the buffer should store. Default value should always be used in production.\n */\nexport function _INTERNAL_insertFlagToScope(\n  name: string,\n  value: unknown,\n  maxSize: number = _INTERNAL_FLAG_BUFFER_SIZE,\n): void {\n  const scopeContexts = getCurrentScope().getScopeData().contexts;\n  if (!scopeContexts.flags) {\n    scopeContexts.flags = { values: [] };\n  }\n  const flags = scopeContexts.flags.values as FeatureFlag[];\n  _INTERNAL_insertToFlagBuffer(flags, name, value, maxSize);\n}\n\n/**\n * Exported for tests only. Currently only accepts boolean values (otherwise no-op).\n * Inserts a flag into a FeatureFlag array while maintaining the following properties:\n * - Flags are sorted in order of recency, with the newest evaluation at the end.\n * - The flag names are always unique.\n * - The length of the array never exceeds `maxSize`.\n *\n * @param flags      The buffer to insert the flag into.\n * @param name       Name of the feature flag to insert.\n * @param value      Value of the feature flag.\n * @param maxSize    Max number of flags the buffer should store. Default value should always be used in production.\n */\nexport function _INTERNAL_insertToFlagBuffer(\n  flags: FeatureFlag[],\n  name: string,\n  value: unknown,\n  maxSize: number,\n): void {\n  if (typeof value !== 'boolean') {\n    return;\n  }\n\n  if (flags.length > maxSize) {\n    DEBUG_BUILD && debug.error(`[Feature Flags] insertToFlagBuffer called on a buffer larger than maxSize=${maxSize}`);\n    return;\n  }\n\n  // Check if the flag is already in the buffer - O(n)\n  const index = flags.findIndex(f => f.flag === name);\n\n  if (index !== -1) {\n    // The flag was found, remove it from its current position - O(n)\n    flags.splice(index, 1);\n  }\n\n  if (flags.length === maxSize) {\n    // If at capacity, pop the earliest flag - O(n)\n    flags.shift();\n  }\n\n  // Push the flag to the end - O(1)\n  flags.push({\n    flag: name,\n    result: value,\n  });\n}\n\n/**\n * Records a feature flag evaluation for the active span. This is a no-op for non-boolean values.\n * The flag and its value is stored in span attributes with the `flag.evaluation` prefix. Once the\n * unique flags for a span reaches maxFlagsPerSpan, subsequent flags are dropped.\n *\n * @param name             Name of the feature flag.\n * @param value            Value of the feature flag. Non-boolean values are ignored.\n * @param maxFlagsPerSpan  Max number of flags a buffer should store. Default value should always be used in production.\n */\nexport function _INTERNAL_addFeatureFlagToActiveSpan(\n  name: string,\n  value: unknown,\n  maxFlagsPerSpan: number = _INTERNAL_MAX_FLAGS_PER_SPAN,\n): void {\n  if (typeof value !== 'boolean') {\n    return;\n  }\n\n  const span = getActiveSpan();\n  if (!span) {\n    return;\n  }\n\n  const attributes = spanToJSON(span).data;\n\n  // If the flag already exists, always update it\n  if (`${SPAN_FLAG_ATTRIBUTE_PREFIX}${name}` in attributes) {\n    span.setAttribute(`${SPAN_FLAG_ATTRIBUTE_PREFIX}${name}`, value);\n    return;\n  }\n\n  // Else, add the flag to the span if we have not reached the max number of flags\n  const numOfAddedFlags = Object.keys(attributes).filter(key => key.startsWith(SPAN_FLAG_ATTRIBUTE_PREFIX)).length;\n  if (numOfAddedFlags < maxFlagsPerSpan) {\n    span.setAttribute(`${SPAN_FLAG_ATTRIBUTE_PREFIX}${name}`, value);\n  }\n}\n","import { type Client } from '../../client';\nimport { defineIntegration } from '../../integration';\nimport { type Event, type EventHint } from '../../types-hoist/event';\nimport { type Integration, type IntegrationFn } from '../../types-hoist/integration';\nimport {\n  _INTERNAL_addFeatureFlagToActiveSpan,\n  _INTERNAL_copyFlagsFromScopeToEvent,\n  _INTERNAL_insertFlagToScope,\n} from '../../utils/featureFlags';\n\nexport interface FeatureFlagsIntegration extends Integration {\n  addFeatureFlag: (name: string, value: unknown) => void;\n}\n\n/**\n * Sentry integration for buffering feature flag evaluations manually with an API, and\n * capturing them on error events and spans.\n *\n * See the [feature flag documentation](https://develop.sentry.dev/sdk/expected-features/#feature-flags) for more information.\n *\n * @example\n * ```\n * import * as Sentry from '@sentry/browser';\n * import { type FeatureFlagsIntegration } from '@sentry/browser';\n *\n * // Setup\n * Sentry.init(..., integrations: [Sentry.featureFlagsIntegration()])\n *\n * // Verify\n * const flagsIntegration = Sentry.getClient()?.getIntegrationByName<FeatureFlagsIntegration>('FeatureFlags');\n * if (flagsIntegration) {\n *   flagsIntegration.addFeatureFlag('my-flag', true);\n * } else {\n *   // check your setup\n * }\n * Sentry.captureException(Exception('broke')); // 'my-flag' should be captured to this Sentry event.\n * ```\n */\nexport const featureFlagsIntegration = defineIntegration(() => {\n  return {\n    name: 'FeatureFlags',\n\n    processEvent(event: Event, _hint: EventHint, _client: Client): Event {\n      return _INTERNAL_copyFlagsFromScopeToEvent(event);\n    },\n\n    addFeatureFlag(name: string, value: unknown): void {\n      _INTERNAL_insertFlagToScope(name, value);\n      _INTERNAL_addFeatureFlagToActiveSpan(name, value);\n    },\n  };\n}) as IntegrationFn<FeatureFlagsIntegration>;\n","import type {\n  SentrySpanArguments,\n  Span,\n  SpanAttributes,\n  SpanAttributeValue,\n  SpanContextData,\n  SpanTimeInput,\n} from '../types-hoist/span';\nimport type { SpanStatus } from '../types-hoist/spanStatus';\nimport { generateSpanId, generateTraceId } from '../utils/propagationContext';\nimport { TRACE_FLAG_NONE } from '../utils/spanUtils';\n\n/**\n * A Sentry Span that is non-recording, meaning it will not be sent to Sentry.\n */\nexport class SentryNonRecordingSpan implements Span {\n  private _traceId: string;\n  private _spanId: string;\n\n  public constructor(spanContext: SentrySpanArguments = {}) {\n    this._traceId = spanContext.traceId || generateTraceId();\n    this._spanId = spanContext.spanId || generateSpanId();\n  }\n\n  /** @inheritdoc */\n  public spanContext(): SpanContextData {\n    return {\n      spanId: this._spanId,\n      traceId: this._traceId,\n      traceFlags: TRACE_FLAG_NONE,\n    };\n  }\n\n  /** @inheritdoc */\n  public end(_timestamp?: SpanTimeInput): void {}\n\n  /** @inheritdoc */\n  public setAttribute(_key: string, _value: SpanAttributeValue | undefined): this {\n    return this;\n  }\n\n  /** @inheritdoc */\n  public setAttributes(_values: SpanAttributes): this {\n    return this;\n  }\n\n  /** @inheritdoc */\n  public setStatus(_status: SpanStatus): this {\n    return this;\n  }\n\n  /** @inheritdoc */\n  public updateName(_name: string): this {\n    return this;\n  }\n\n  /** @inheritdoc */\n  public isRecording(): boolean {\n    return false;\n  }\n\n  /** @inheritdoc */\n  public addEvent(\n    _name: string,\n    _attributesOrStartTime?: SpanAttributes | SpanTimeInput,\n    _startTime?: SpanTimeInput,\n  ): this {\n    return this;\n  }\n\n  /** @inheritDoc */\n  public addLink(_link: unknown): this {\n    return this;\n  }\n\n  /** @inheritDoc */\n  public addLinks(_links: unknown[]): this {\n    return this;\n  }\n\n  /**\n   * This should generally not be used,\n   * but we need it for being compliant with the OTEL Span interface.\n   *\n   * @hidden\n   * @internal\n   */\n  public recordException(_exception: unknown, _time?: number | undefined): void {\n    // noop\n  }\n}\n","import { getSentryCarrier } from '../carrier';\nimport type { Attachment } from '../types-hoist/attachment';\nimport type { DataCategory } from '../types-hoist/datacategory';\nimport type { DsnComponents } from '../types-hoist/dsn';\nimport type {\n  AttachmentItem,\n  BaseEnvelopeHeaders,\n  BaseEnvelopeItemHeaders,\n  Envelope,\n  EnvelopeItemType,\n  EventEnvelopeHeaders,\n  SpanItem,\n} from '../types-hoist/envelope';\nimport type { Event } from '../types-hoist/event';\nimport type { SdkInfo } from '../types-hoist/sdkinfo';\nimport type { SdkMetadata } from '../types-hoist/sdkmetadata';\nimport type { SpanJSON } from '../types-hoist/span';\nimport { dsnToString } from './dsn';\nimport { normalize } from './normalize';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope<E extends Envelope>(headers: E[0], items: E[1] = []): E {\n  return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope<E extends Envelope>(envelope: E, newItem: E[1][number]): E {\n  const [headers, items] = envelope;\n  return [headers, [...items, newItem]] as unknown as E;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nexport function forEachEnvelopeItem<E extends Envelope>(\n  envelope: Envelope,\n  callback: (envelopeItem: E[1][number], envelopeItemType: E[1][number][0]['type']) => boolean | void,\n): boolean {\n  const envelopeItems = envelope[1];\n\n  for (const envelopeItem of envelopeItems) {\n    const envelopeItemType = envelopeItem[0].type;\n    const result = callback(envelopeItem, envelopeItemType);\n\n    if (result) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nexport function envelopeContainsItemType(envelope: Envelope, types: EnvelopeItemType[]): boolean {\n  return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8 array.\n */\nfunction encodeUTF8(input: string): Uint8Array {\n  const carrier = getSentryCarrier(GLOBAL_OBJ);\n  return carrier.encodePolyfill ? carrier.encodePolyfill(input) : new TextEncoder().encode(input);\n}\n\n/**\n * Decode a UTF8 array to string.\n */\nfunction decodeUTF8(input: Uint8Array): string {\n  const carrier = getSentryCarrier(GLOBAL_OBJ);\n  return carrier.decodePolyfill ? carrier.decodePolyfill(input) : new TextDecoder().decode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nexport function serializeEnvelope(envelope: Envelope): string | Uint8Array {\n  const [envHeaders, items] = envelope;\n  // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n  let parts: string | Uint8Array[] = JSON.stringify(envHeaders);\n\n  function append(next: string | Uint8Array): void {\n    if (typeof parts === 'string') {\n      parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts), next];\n    } else {\n      parts.push(typeof next === 'string' ? encodeUTF8(next) : next);\n    }\n  }\n\n  for (const item of items) {\n    const [itemHeaders, payload] = item;\n\n    append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n    if (typeof payload === 'string' || payload instanceof Uint8Array) {\n      append(payload);\n    } else {\n      let stringifiedPayload: string;\n      try {\n        stringifiedPayload = JSON.stringify(payload);\n      } catch {\n        // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.stringify()` still\n        // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n        // performance impact but in this case a performance hit is better than throwing.\n        stringifiedPayload = JSON.stringify(normalize(payload));\n      }\n      append(stringifiedPayload);\n    }\n  }\n\n  return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers: Uint8Array[]): Uint8Array {\n  const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n  const merged = new Uint8Array(totalLength);\n  let offset = 0;\n  for (const buffer of buffers) {\n    merged.set(buffer, offset);\n    offset += buffer.length;\n  }\n\n  return merged;\n}\n\n/**\n * Parses an envelope\n */\nexport function parseEnvelope(env: string | Uint8Array): Envelope {\n  let buffer = typeof env === 'string' ? encodeUTF8(env) : env;\n\n  function readBinary(length: number): Uint8Array {\n    const bin = buffer.subarray(0, length);\n    // Replace the buffer with the remaining data excluding trailing newline\n    buffer = buffer.subarray(length + 1);\n    return bin;\n  }\n\n  function readJson<T>(): T {\n    let i = buffer.indexOf(0xa);\n    // If we couldn't find a newline, we must have found the end of the buffer\n    if (i < 0) {\n      i = buffer.length;\n    }\n\n    return JSON.parse(decodeUTF8(readBinary(i))) as T;\n  }\n\n  const envelopeHeader = readJson<BaseEnvelopeHeaders>();\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const items: [any, any][] = [];\n\n  while (buffer.length) {\n    const itemHeader = readJson<BaseEnvelopeItemHeaders>();\n    const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n    items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n  }\n\n  return [envelopeHeader, items];\n}\n\n/**\n * Creates envelope item for a single span\n */\nexport function createSpanEnvelopeItem(spanJson: Partial<SpanJSON>): SpanItem {\n  const spanHeaders: SpanItem[0] = {\n    type: 'span',\n  };\n\n  return [spanHeaders, spanJson];\n}\n\n/**\n * Creates attachment envelope items\n */\nexport function createAttachmentEnvelopeItem(attachment: Attachment): AttachmentItem {\n  const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data) : attachment.data;\n\n  return [\n    {\n      type: 'attachment',\n      length: buffer.length,\n      filename: attachment.filename,\n      content_type: attachment.contentType,\n      attachment_type: attachment.attachmentType,\n    },\n    buffer,\n  ];\n}\n\nconst ITEM_TYPE_TO_DATA_CATEGORY_MAP: Record<EnvelopeItemType, DataCategory> = {\n  session: 'session',\n  sessions: 'session',\n  attachment: 'attachment',\n  transaction: 'transaction',\n  event: 'error',\n  client_report: 'internal',\n  user_report: 'default',\n  profile: 'profile',\n  profile_chunk: 'profile',\n  replay_event: 'replay',\n  replay_recording: 'replay',\n  check_in: 'monitor',\n  feedback: 'feedback',\n  span: 'span',\n  raw_security: 'security',\n  log: 'log_item',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nexport function envelopeItemTypeToDataCategory(type: EnvelopeItemType): DataCategory {\n  return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nexport function getSdkMetadataForEnvelopeHeader(metadataOrEvent?: SdkMetadata | Event): SdkInfo | undefined {\n  if (!metadataOrEvent?.sdk) {\n    return;\n  }\n  const { name, version } = metadataOrEvent.sdk;\n  return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nexport function createEventEnvelopeHeaders(\n  event: Event,\n  sdkInfo: SdkInfo | undefined,\n  tunnel: string | undefined,\n  dsn?: DsnComponents,\n): EventEnvelopeHeaders {\n  const dynamicSamplingContext = event.sdkProcessingMetadata?.dynamicSamplingContext;\n  return {\n    event_id: event.event_id as string,\n    sent_at: new Date().toISOString(),\n    ...(sdkInfo && { sdk: sdkInfo }),\n    ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n    ...(dynamicSamplingContext && {\n      trace: dynamicSamplingContext,\n    }),\n  };\n}\n","import type { ClientOptions } from '../types-hoist/options';\nimport type { SpanJSON } from '../types-hoist/span';\nimport { isMatchingPattern } from './string';\n\n/**\n * Check if a span should be ignored based on the ignoreSpans configuration.\n */\nexport function shouldIgnoreSpan(\n  span: Pick<SpanJSON, 'description' | 'op'>,\n  ignoreSpans: Required<ClientOptions>['ignoreSpans'],\n): boolean {\n  if (!ignoreSpans?.length || !span.description) {\n    return false;\n  }\n\n  for (const pattern of ignoreSpans) {\n    if (isStringOrRegExp(pattern)) {\n      if (isMatchingPattern(span.description, pattern)) {\n        return true;\n      }\n      continue;\n    }\n\n    if (!pattern.name && !pattern.op) {\n      continue;\n    }\n\n    const nameMatches = pattern.name ? isMatchingPattern(span.description, pattern.name) : true;\n    const opMatches = pattern.op ? span.op && isMatchingPattern(span.op, pattern.op) : true;\n\n    // This check here is only correct because we can guarantee that we ran `isMatchingPattern`\n    // for at least one of `nameMatches` and `opMatches`. So in contrary to how this looks,\n    // not both op and name actually have to match. This is the most efficient way to check\n    // for all combinations of name and op patterns.\n    if (nameMatches && opMatches) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * Takes a list of spans, and a span that was dropped, and re-parents the child spans of the dropped span to the parent of the dropped span, if possible.\n * This mutates the spans array in place!\n */\nexport function reparentChildSpans(spans: SpanJSON[], dropSpan: SpanJSON): void {\n  const droppedSpanParentId = dropSpan.parent_span_id;\n  const droppedSpanId = dropSpan.span_id;\n\n  // This should generally not happen, as we do not apply this on root spans\n  // but to be safe, we just bail in this case\n  if (!droppedSpanParentId) {\n    return;\n  }\n\n  for (const span of spans) {\n    if (span.parent_span_id === droppedSpanId) {\n      span.parent_span_id = droppedSpanParentId;\n    }\n  }\n}\n\nfunction isStringOrRegExp(value: unknown): value is string | RegExp {\n  return typeof value === 'string' || value instanceof RegExp;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport {\n  SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT,\n  SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE,\n} from '../semanticAttributes';\nimport type { Measurements, MeasurementUnit } from '../types-hoist/measurement';\nimport type { TimedEvent } from '../types-hoist/timedEvent';\nimport { debug } from '../utils/debug-logger';\nimport { getActiveSpan, getRootSpan } from '../utils/spanUtils';\n\n/**\n * Adds a measurement to the active transaction on the current global scope. You can optionally pass in a different span\n * as the 4th parameter.\n */\nexport function setMeasurement(name: string, value: number, unit: MeasurementUnit, activeSpan = getActiveSpan()): void {\n  const rootSpan = activeSpan && getRootSpan(activeSpan);\n\n  if (rootSpan) {\n    DEBUG_BUILD && debug.log(`[Measurement] Setting measurement on root span: ${name} = ${value} ${unit}`);\n    rootSpan.addEvent(name, {\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: value,\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: unit as string,\n    });\n  }\n}\n\n/**\n * Convert timed events to measurements.\n */\nexport function timedEventsToMeasurements(events: TimedEvent[]): Measurements | undefined {\n  if (!events || events.length === 0) {\n    return undefined;\n  }\n\n  const measurements: Measurements = {};\n  events.forEach(event => {\n    const attributes = event.attributes || {};\n    const unit = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT] as MeasurementUnit | undefined;\n    const value = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE] as number | undefined;\n\n    if (typeof unit === 'string' && typeof value === 'number') {\n      measurements[event.name] = { value, unit };\n    }\n  });\n\n  return measurements;\n}\n","import { getClient, getCurrentScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { createSpanEnvelope } from '../envelope';\nimport {\n  SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME,\n  SEMANTIC_ATTRIBUTE_PROFILE_ID,\n  SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '../semanticAttributes';\nimport type { SpanEnvelope } from '../types-hoist/envelope';\nimport type { TransactionEvent } from '../types-hoist/event';\nimport type { SpanLink } from '../types-hoist/link';\nimport type {\n  SentrySpanArguments,\n  Span,\n  SpanAttributes,\n  SpanAttributeValue,\n  SpanContextData,\n  SpanJSON,\n  SpanOrigin,\n  SpanTimeInput,\n} from '../types-hoist/span';\nimport type { SpanStatus } from '../types-hoist/spanStatus';\nimport type { TimedEvent } from '../types-hoist/timedEvent';\nimport type { TransactionSource } from '../types-hoist/transaction';\nimport { debug } from '../utils/debug-logger';\nimport { generateSpanId, generateTraceId } from '../utils/propagationContext';\nimport {\n  convertSpanLinksForEnvelope,\n  getRootSpan,\n  getSpanDescendants,\n  getStatusMessage,\n  spanTimeInputToSeconds,\n  spanToJSON,\n  spanToTransactionTraceContext,\n  TRACE_FLAG_NONE,\n  TRACE_FLAG_SAMPLED,\n} from '../utils/spanUtils';\nimport { timestampInSeconds } from '../utils/time';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext';\nimport { logSpanEnd } from './logSpans';\nimport { timedEventsToMeasurements } from './measurement';\nimport { getCapturedScopesOnSpan } from './utils';\n\nconst MAX_SPAN_COUNT = 1000;\n\n/**\n * Span contains all data about a span\n */\nexport class SentrySpan implements Span {\n  protected _traceId: string;\n  protected _spanId: string;\n  protected _parentSpanId?: string | undefined;\n  protected _sampled: boolean | undefined;\n  protected _name?: string | undefined;\n  protected _attributes: SpanAttributes;\n  protected _links?: SpanLink[];\n  /** Epoch timestamp in seconds when the span started. */\n  protected _startTime: number;\n  /** Epoch timestamp in seconds when the span ended. */\n  protected _endTime?: number | undefined;\n  /** Internal keeper of the status */\n  protected _status?: SpanStatus;\n  /** The timed events added to this span. */\n  protected _events: TimedEvent[];\n\n  /** if true, treat span as a standalone span (not part of a transaction) */\n  private _isStandaloneSpan?: boolean;\n\n  /**\n   * You should never call the constructor manually, always use `Sentry.startSpan()`\n   * or other span methods.\n   * @internal\n   * @hideconstructor\n   * @hidden\n   */\n  public constructor(spanContext: SentrySpanArguments = {}) {\n    this._traceId = spanContext.traceId || generateTraceId();\n    this._spanId = spanContext.spanId || generateSpanId();\n    this._startTime = spanContext.startTimestamp || timestampInSeconds();\n    this._links = spanContext.links;\n\n    this._attributes = {};\n    this.setAttributes({\n      [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'manual',\n      [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n      ...spanContext.attributes,\n    });\n\n    this._name = spanContext.name;\n\n    if (spanContext.parentSpanId) {\n      this._parentSpanId = spanContext.parentSpanId;\n    }\n    // We want to include booleans as well here\n    if ('sampled' in spanContext) {\n      this._sampled = spanContext.sampled;\n    }\n    if (spanContext.endTimestamp) {\n      this._endTime = spanContext.endTimestamp;\n    }\n\n    this._events = [];\n\n    this._isStandaloneSpan = spanContext.isStandalone;\n\n    // If the span is already ended, ensure we finalize the span immediately\n    if (this._endTime) {\n      this._onSpanEnded();\n    }\n  }\n\n  /** @inheritDoc */\n  public addLink(link: SpanLink): this {\n    if (this._links) {\n      this._links.push(link);\n    } else {\n      this._links = [link];\n    }\n    return this;\n  }\n\n  /** @inheritDoc */\n  public addLinks(links: SpanLink[]): this {\n    if (this._links) {\n      this._links.push(...links);\n    } else {\n      this._links = links;\n    }\n    return this;\n  }\n\n  /**\n   * This should generally not be used,\n   * but it is needed for being compliant with the OTEL Span interface.\n   *\n   * @hidden\n   * @internal\n   */\n  public recordException(_exception: unknown, _time?: number | undefined): void {\n    // noop\n  }\n\n  /** @inheritdoc */\n  public spanContext(): SpanContextData {\n    const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n    return {\n      spanId,\n      traceId,\n      traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE,\n    };\n  }\n\n  /** @inheritdoc */\n  public setAttribute(key: string, value: SpanAttributeValue | undefined): this {\n    if (value === undefined) {\n      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n      delete this._attributes[key];\n    } else {\n      this._attributes[key] = value;\n    }\n\n    return this;\n  }\n\n  /** @inheritdoc */\n  public setAttributes(attributes: SpanAttributes): this {\n    Object.keys(attributes).forEach(key => this.setAttribute(key, attributes[key]));\n    return this;\n  }\n\n  /**\n   * This should generally not be used,\n   * but we need it for browser tracing where we want to adjust the start time afterwards.\n   * USE THIS WITH CAUTION!\n   *\n   * @hidden\n   * @internal\n   */\n  public updateStartTime(timeInput: SpanTimeInput): void {\n    this._startTime = spanTimeInputToSeconds(timeInput);\n  }\n\n  /**\n   * @inheritDoc\n   */\n  public setStatus(value: SpanStatus): this {\n    this._status = value;\n    return this;\n  }\n\n  /**\n   * @inheritDoc\n   */\n  public updateName(name: string): this {\n    this._name = name;\n    this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, 'custom');\n    return this;\n  }\n\n  /** @inheritdoc */\n  public end(endTimestamp?: SpanTimeInput): void {\n    // If already ended, skip\n    if (this._endTime) {\n      return;\n    }\n\n    this._endTime = spanTimeInputToSeconds(endTimestamp);\n    logSpanEnd(this);\n\n    this._onSpanEnded();\n  }\n\n  /**\n   * Get JSON representation of this span.\n   *\n   * @hidden\n   * @internal This method is purely for internal purposes and should not be used outside\n   * of SDK code. If you need to get a JSON representation of a span,\n   * use `spanToJSON(span)` instead.\n   */\n  public getSpanJSON(): SpanJSON {\n    return {\n      data: this._attributes,\n      description: this._name,\n      op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n      parent_span_id: this._parentSpanId,\n      span_id: this._spanId,\n      start_timestamp: this._startTime,\n      status: getStatusMessage(this._status),\n      timestamp: this._endTime,\n      trace_id: this._traceId,\n      origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined,\n      profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID] as string | undefined,\n      exclusive_time: this._attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] as number | undefined,\n      measurements: timedEventsToMeasurements(this._events),\n      is_segment: (this._isStandaloneSpan && getRootSpan(this) === this) || undefined,\n      segment_id: this._isStandaloneSpan ? getRootSpan(this).spanContext().spanId : undefined,\n      links: convertSpanLinksForEnvelope(this._links),\n    };\n  }\n\n  /** @inheritdoc */\n  public isRecording(): boolean {\n    return !this._endTime && !!this._sampled;\n  }\n\n  /**\n   * @inheritdoc\n   */\n  public addEvent(\n    name: string,\n    attributesOrStartTime?: SpanAttributes | SpanTimeInput,\n    startTime?: SpanTimeInput,\n  ): this {\n    DEBUG_BUILD && debug.log('[Tracing] Adding an event to span:', name);\n\n    const time = isSpanTimeInput(attributesOrStartTime) ? attributesOrStartTime : startTime || timestampInSeconds();\n    const attributes = isSpanTimeInput(attributesOrStartTime) ? {} : attributesOrStartTime || {};\n\n    const event: TimedEvent = {\n      name,\n      time: spanTimeInputToSeconds(time),\n      attributes,\n    };\n\n    this._events.push(event);\n\n    return this;\n  }\n\n  /**\n   * This method should generally not be used,\n   * but for now we need a way to publicly check if the `_isStandaloneSpan` flag is set.\n   * USE THIS WITH CAUTION!\n   * @internal\n   * @hidden\n   * @experimental\n   */\n  public isStandaloneSpan(): boolean {\n    return !!this._isStandaloneSpan;\n  }\n\n  /** Emit `spanEnd` when the span is ended. */\n  private _onSpanEnded(): void {\n    const client = getClient();\n    if (client) {\n      client.emit('spanEnd', this);\n    }\n\n    // A segment span is basically the root span of a local span tree.\n    // So for now, this is either what we previously refer to as the root span,\n    // or a standalone span.\n    const isSegmentSpan = this._isStandaloneSpan || this === getRootSpan(this);\n\n    if (!isSegmentSpan) {\n      return;\n    }\n\n    // if this is a standalone span, we send it immediately\n    if (this._isStandaloneSpan) {\n      if (this._sampled) {\n        sendSpanEnvelope(createSpanEnvelope([this], client));\n      } else {\n        DEBUG_BUILD &&\n          debug.log('[Tracing] Discarding standalone span because its trace was not chosen to be sampled.');\n        if (client) {\n          client.recordDroppedEvent('sample_rate', 'span');\n        }\n      }\n      return;\n    }\n\n    const transactionEvent = this._convertSpanToTransaction();\n    if (transactionEvent) {\n      const scope = getCapturedScopesOnSpan(this).scope || getCurrentScope();\n      scope.captureEvent(transactionEvent);\n    }\n  }\n\n  /**\n   * Finish the transaction & prepare the event to send to Sentry.\n   */\n  private _convertSpanToTransaction(): TransactionEvent | undefined {\n    // We can only convert finished spans\n    if (!isFullFinishedSpan(spanToJSON(this))) {\n      return undefined;\n    }\n\n    if (!this._name) {\n      DEBUG_BUILD && debug.warn('Transaction has no name, falling back to `<unlabeled transaction>`.');\n      this._name = '<unlabeled transaction>';\n    }\n\n    const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n\n    const normalizedRequest = capturedSpanScope?.getScopeData().sdkProcessingMetadata?.normalizedRequest;\n\n    if (this._sampled !== true) {\n      return undefined;\n    }\n\n    // The transaction span itself as well as any potential standalone spans should be filtered out\n    const finishedSpans = getSpanDescendants(this).filter(span => span !== this && !isStandaloneSpan(span));\n\n    const spans = finishedSpans.map(span => spanToJSON(span)).filter(isFullFinishedSpan);\n\n    const source = this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] as TransactionSource | undefined;\n\n    // remove internal root span attributes we don't need to send.\n    /* eslint-disable @typescript-eslint/no-dynamic-delete */\n    delete this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n    spans.forEach(span => {\n      delete span.data[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n    });\n    // eslint-enabled-next-line @typescript-eslint/no-dynamic-delete\n\n    const transaction: TransactionEvent = {\n      contexts: {\n        trace: spanToTransactionTraceContext(this),\n      },\n      spans:\n        // spans.sort() mutates the array, but `spans` is already a copy so we can safely do this here\n        // we do not use spans anymore after this point\n        spans.length > MAX_SPAN_COUNT\n          ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT)\n          : spans,\n      start_timestamp: this._startTime,\n      timestamp: this._endTime,\n      transaction: this._name,\n      type: 'transaction',\n      sdkProcessingMetadata: {\n        capturedSpanScope,\n        capturedSpanIsolationScope,\n        dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n      },\n      request: normalizedRequest,\n      ...(source && {\n        transaction_info: {\n          source,\n        },\n      }),\n    };\n\n    const measurements = timedEventsToMeasurements(this._events);\n    const hasMeasurements = measurements && Object.keys(measurements).length;\n\n    if (hasMeasurements) {\n      DEBUG_BUILD &&\n        debug.log(\n          '[Measurements] Adding measurements to transaction event',\n          JSON.stringify(measurements, undefined, 2),\n        );\n      transaction.measurements = measurements;\n    }\n\n    return transaction;\n  }\n}\n\nfunction isSpanTimeInput(value: undefined | SpanAttributes | SpanTimeInput): value is SpanTimeInput {\n  return (value && typeof value === 'number') || value instanceof Date || Array.isArray(value);\n}\n\n// We want to filter out any incomplete SpanJSON objects\nfunction isFullFinishedSpan(input: Partial<SpanJSON>): input is SpanJSON {\n  return !!input.start_timestamp && !!input.timestamp && !!input.span_id && !!input.trace_id;\n}\n\n/** `SentrySpan`s can be sent as a standalone span rather than belonging to a transaction */\nfunction isStandaloneSpan(span: Span): boolean {\n  return span instanceof SentrySpan && span.isStandaloneSpan();\n}\n\n/**\n * Sends a `SpanEnvelope`.\n *\n * Note: If the envelope's spans are dropped, e.g. via `beforeSendSpan`,\n * the envelope will not be sent either.\n */\nfunction sendSpanEnvelope(envelope: SpanEnvelope): void {\n  const client = getClient();\n  if (!client) {\n    return;\n  }\n\n  const spanItems = envelope[1];\n  if (!spanItems || spanItems.length === 0) {\n    client.recordDroppedEvent('before_send', 'span');\n    return;\n  }\n\n  // sendEnvelope should not throw\n  // eslint-disable-next-line @typescript-eslint/no-floating-promises\n  client.sendEnvelope(envelope);\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { Span } from '../types-hoist/span';\nimport { debug } from '../utils/debug-logger';\nimport { getRootSpan, spanIsSampled, spanToJSON } from '../utils/spanUtils';\n\n/**\n * Print a log message for a started span.\n */\nexport function logSpanStart(span: Span): void {\n  if (!DEBUG_BUILD) return;\n\n  const { description = '< unknown name >', op = '< unknown op >', parent_span_id: parentSpanId } = spanToJSON(span);\n  const { spanId } = span.spanContext();\n\n  const sampled = spanIsSampled(span);\n  const rootSpan = getRootSpan(span);\n  const isRootSpan = rootSpan === span;\n\n  const header = `[Tracing] Starting ${sampled ? 'sampled' : 'unsampled'} ${isRootSpan ? 'root ' : ''}span`;\n\n  const infoParts: string[] = [`op: ${op}`, `name: ${description}`, `ID: ${spanId}`];\n\n  if (parentSpanId) {\n    infoParts.push(`parent ID: ${parentSpanId}`);\n  }\n\n  if (!isRootSpan) {\n    const { op, description } = spanToJSON(rootSpan);\n    infoParts.push(`root ID: ${rootSpan.spanContext().spanId}`);\n    if (op) {\n      infoParts.push(`root op: ${op}`);\n    }\n    if (description) {\n      infoParts.push(`root description: ${description}`);\n    }\n  }\n\n  debug.log(`${header}\n  ${infoParts.join('\\n  ')}`);\n}\n\n/**\n * Print a log message for an ended span.\n */\nexport function logSpanEnd(span: Span): void {\n  if (!DEBUG_BUILD) return;\n\n  const { description = '< unknown name >', op = '< unknown op >' } = spanToJSON(span);\n  const { spanId } = span.spanContext();\n  const rootSpan = getRootSpan(span);\n  const isRootSpan = rootSpan === span;\n\n  const msg = `[Tracing] Finishing \"${op}\" ${isRootSpan ? 'root ' : ''}span \"${description}\" with ID ${spanId}`;\n  debug.log(msg);\n}\n","import type { Client } from './client';\nimport { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext';\nimport type { SentrySpan } from './tracing/sentrySpan';\nimport type { LegacyCSPReport } from './types-hoist/csp';\nimport type { DsnComponents } from './types-hoist/dsn';\nimport type {\n  DynamicSamplingContext,\n  EventEnvelope,\n  EventItem,\n  RawSecurityEnvelope,\n  RawSecurityItem,\n  SessionEnvelope,\n  SessionItem,\n  SpanEnvelope,\n  SpanItem,\n} from './types-hoist/envelope';\nimport type { Event } from './types-hoist/event';\nimport type { SdkInfo } from './types-hoist/sdkinfo';\nimport type { SdkMetadata } from './types-hoist/sdkmetadata';\nimport type { Session, SessionAggregates } from './types-hoist/session';\nimport { dsnToString } from './utils/dsn';\nimport {\n  createEnvelope,\n  createEventEnvelopeHeaders,\n  createSpanEnvelopeItem,\n  getSdkMetadataForEnvelopeHeader,\n} from './utils/envelope';\nimport { uuid4 } from './utils/misc';\nimport { shouldIgnoreSpan } from './utils/should-ignore-span';\nimport { showSpanDropWarning, spanToJSON } from './utils/spanUtils';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n *\n * @internal, exported only for testing\n **/\nexport function _enhanceEventWithSdkInfo(event: Event, newSdkInfo?: SdkInfo): Event {\n  if (!newSdkInfo) {\n    return event;\n  }\n\n  const eventSdkInfo = event.sdk || {};\n\n  event.sdk = {\n    ...eventSdkInfo,\n    name: eventSdkInfo.name || newSdkInfo.name,\n    version: eventSdkInfo.version || newSdkInfo.version,\n    integrations: [...(event.sdk?.integrations || []), ...(newSdkInfo.integrations || [])],\n    packages: [...(event.sdk?.packages || []), ...(newSdkInfo.packages || [])],\n    settings:\n      event.sdk?.settings || newSdkInfo.settings\n        ? {\n            ...event.sdk?.settings,\n            ...newSdkInfo.settings,\n          }\n        : undefined,\n  };\n\n  return event;\n}\n\n/** Creates an envelope from a Session */\nexport function createSessionEnvelope(\n  session: Session | SessionAggregates,\n  dsn?: DsnComponents,\n  metadata?: SdkMetadata,\n  tunnel?: string,\n): SessionEnvelope {\n  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n  const envelopeHeaders = {\n    sent_at: new Date().toISOString(),\n    ...(sdkInfo && { sdk: sdkInfo }),\n    ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n  };\n\n  const envelopeItem: SessionItem =\n    'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session.toJSON()];\n\n  return createEnvelope<SessionEnvelope>(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nexport function createEventEnvelope(\n  event: Event,\n  dsn?: DsnComponents,\n  metadata?: SdkMetadata,\n  tunnel?: string,\n): EventEnvelope {\n  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n  /*\n    Note: Due to TS, event.type may be `replay_event`, theoretically.\n    In practice, we never call `createEventEnvelope` with `replay_event` type,\n    and we'd have to adjust a looot of types to make this work properly.\n    We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n    So the safe choice is to really guard against the replay_event type here.\n  */\n  const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n  _enhanceEventWithSdkInfo(event, metadata?.sdk);\n\n  const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n  // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n  // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n  // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n  // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n  delete event.sdkProcessingMetadata;\n\n  const eventItem: EventItem = [{ type: eventType }, event];\n  return createEnvelope<EventEnvelope>(envelopeHeaders, [eventItem]);\n}\n\n/**\n * Create envelope from Span item.\n *\n * Takes an optional client and runs spans through `beforeSendSpan` if available.\n */\nexport function createSpanEnvelope(spans: [SentrySpan, ...SentrySpan[]], client?: Client): SpanEnvelope {\n  function dscHasRequiredProps(dsc: Partial<DynamicSamplingContext>): dsc is DynamicSamplingContext {\n    return !!dsc.trace_id && !!dsc.public_key;\n  }\n\n  // For the moment we'll obtain the DSC from the first span in the array\n  // This might need to be changed if we permit sending multiple spans from\n  // different segments in one envelope\n  const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n\n  const dsn = client?.getDsn();\n  const tunnel = client?.getOptions().tunnel;\n\n  const headers: SpanEnvelope[0] = {\n    sent_at: new Date().toISOString(),\n    ...(dscHasRequiredProps(dsc) && { trace: dsc }),\n    ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n  };\n\n  const { beforeSendSpan, ignoreSpans } = client?.getOptions() || {};\n\n  const filteredSpans = ignoreSpans?.length\n    ? spans.filter(span => !shouldIgnoreSpan(spanToJSON(span), ignoreSpans))\n    : spans;\n  const droppedSpans = spans.length - filteredSpans.length;\n\n  if (droppedSpans) {\n    client?.recordDroppedEvent('before_send', 'span', droppedSpans);\n  }\n\n  const convertToSpanJSON = beforeSendSpan\n    ? (span: SentrySpan) => {\n        const spanJson = spanToJSON(span);\n        const processedSpan = beforeSendSpan(spanJson);\n\n        if (!processedSpan) {\n          showSpanDropWarning();\n          return spanJson;\n        }\n\n        return processedSpan;\n      }\n    : spanToJSON;\n\n  const items: SpanItem[] = [];\n  for (const span of filteredSpans) {\n    const spanJson = convertToSpanJSON(span);\n    if (spanJson) {\n      items.push(createSpanEnvelopeItem(spanJson));\n    }\n  }\n\n  return createEnvelope<SpanEnvelope>(headers, items);\n}\n\n/**\n * Create an Envelope from a CSP report.\n */\nexport function createRawSecurityEnvelope(\n  report: LegacyCSPReport,\n  dsn: DsnComponents,\n  tunnel?: string,\n  release?: string,\n  environment?: string,\n): RawSecurityEnvelope {\n  const envelopeHeaders = {\n    event_id: uuid4(),\n    ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n  };\n\n  const eventItem: RawSecurityItem = [\n    { type: 'raw_security', sentry_release: release, sentry_environment: environment },\n    report,\n  ];\n\n  return createEnvelope<RawSecurityEnvelope>(envelopeHeaders, [eventItem]);\n}\n","/* eslint-disable max-lines */\n\nimport { getAsyncContextStrategy } from '../asyncContext';\nimport type { AsyncContextStrategy } from '../asyncContext/types';\nimport { getMainCarrier } from '../carrier';\nimport { getClient, getCurrentScope, getIsolationScope, withScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Scope } from '../scope';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport type { ClientOptions } from '../types-hoist/options';\nimport type { SentrySpanArguments, Span, SpanTimeInput } from '../types-hoist/span';\nimport type { StartSpanOptions } from '../types-hoist/startSpanOptions';\nimport { baggageHeaderToDynamicSamplingContext } from '../utils/baggage';\nimport { debug } from '../utils/debug-logger';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled';\nimport { parseSampleRate } from '../utils/parseSampleRate';\nimport { generateTraceId } from '../utils/propagationContext';\nimport { _getSpanForScope, _setSpanForScope } from '../utils/spanOnScope';\nimport { addChildSpanToSpan, getRootSpan, spanIsSampled, spanTimeInputToSeconds, spanToJSON } from '../utils/spanUtils';\nimport { propagationContextFromHeaders, shouldContinueTrace } from '../utils/tracing';\nimport { freezeDscOnSpan, getDynamicSamplingContextFromSpan } from './dynamicSamplingContext';\nimport { logSpanStart } from './logSpans';\nimport { sampleSpan } from './sampling';\nimport { SentryNonRecordingSpan } from './sentryNonRecordingSpan';\nimport { SentrySpan } from './sentrySpan';\nimport { SPAN_STATUS_ERROR } from './spanstatus';\nimport { setCapturedScopesOnSpan } from './utils';\n\nconst SUPPRESS_TRACING_KEY = '__SENTRY_SUPPRESS_TRACING__';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nexport function startSpan<T>(options: StartSpanOptions, callback: (span: Span) => T): T {\n  const acs = getAcs();\n  if (acs.startSpan) {\n    return acs.startSpan(options, callback);\n  }\n\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n\n  // We still need to fork a potentially passed scope, as we set the active span on it\n  // and we need to ensure that it is cleaned up properly once the span ends.\n  const customForkedScope = customScope?.clone();\n\n  return withScope(customForkedScope, () => {\n    // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n    const wrapper = getActiveSpanWrapper<T>(customParentSpan);\n\n    return wrapper(() => {\n      const scope = getCurrentScope();\n      const parentSpan = getParentSpan(scope, customParentSpan);\n\n      const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n      const activeSpan = shouldSkipSpan\n        ? new SentryNonRecordingSpan()\n        : createChildOrRootSpan({\n            parentSpan,\n            spanArguments,\n            forceTransaction,\n            scope,\n          });\n\n      _setSpanForScope(scope, activeSpan);\n\n      return handleCallbackErrors(\n        () => callback(activeSpan),\n        () => {\n          // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n          const { status } = spanToJSON(activeSpan);\n          if (activeSpan.isRecording() && (!status || status === 'ok')) {\n            activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n          }\n        },\n        () => {\n          activeSpan.end();\n        },\n      );\n    });\n  });\n}\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically. Use `span.end()` to end the span.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nexport function startSpanManual<T>(options: StartSpanOptions, callback: (span: Span, finish: () => void) => T): T {\n  const acs = getAcs();\n  if (acs.startSpanManual) {\n    return acs.startSpanManual(options, callback);\n  }\n\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n\n  const customForkedScope = customScope?.clone();\n\n  return withScope(customForkedScope, () => {\n    // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n    const wrapper = getActiveSpanWrapper<T>(customParentSpan);\n\n    return wrapper(() => {\n      const scope = getCurrentScope();\n      const parentSpan = getParentSpan(scope, customParentSpan);\n\n      const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n      const activeSpan = shouldSkipSpan\n        ? new SentryNonRecordingSpan()\n        : createChildOrRootSpan({\n            parentSpan,\n            spanArguments,\n            forceTransaction,\n            scope,\n          });\n\n      _setSpanForScope(scope, activeSpan);\n\n      return handleCallbackErrors(\n        // We pass the `finish` function to the callback, so the user can finish the span manually\n        // this is mainly here for historic purposes because previously, we instructed users to call\n        // `finish` instead of `span.end()` to also clean up the scope. Nowadays, calling `span.end()`\n        // or `finish` has the same effect and we simply leave it here to avoid breaking user code.\n        () => callback(activeSpan, () => activeSpan.end()),\n        () => {\n          // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n          const { status } = spanToJSON(activeSpan);\n          if (activeSpan.isRecording() && (!status || status === 'ok')) {\n            activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n          }\n        },\n      );\n    });\n  });\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getActiveSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * This function will always return a span,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nexport function startInactiveSpan(options: StartSpanOptions): Span {\n  const acs = getAcs();\n  if (acs.startInactiveSpan) {\n    return acs.startInactiveSpan(options);\n  }\n\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan } = options;\n\n  // If `options.scope` is defined, we use this as as a wrapper,\n  // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n  const wrapper = options.scope\n    ? (callback: () => Span) => withScope(options.scope, callback)\n    : customParentSpan !== undefined\n      ? (callback: () => Span) => withActiveSpan(customParentSpan, callback)\n      : (callback: () => Span) => callback();\n\n  return wrapper(() => {\n    const scope = getCurrentScope();\n    const parentSpan = getParentSpan(scope, customParentSpan);\n\n    const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n\n    if (shouldSkipSpan) {\n      return new SentryNonRecordingSpan();\n    }\n\n    return createChildOrRootSpan({\n      parentSpan,\n      spanArguments,\n      forceTransaction,\n      scope,\n    });\n  });\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from `<meta name=\"sentry-trace\">`\n * and `<meta name=\"baggage\">` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n */\nexport const continueTrace = <V>(\n  options: {\n    sentryTrace: Parameters<typeof propagationContextFromHeaders>[0];\n    baggage: Parameters<typeof propagationContextFromHeaders>[1];\n  },\n  callback: () => V,\n): V => {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.continueTrace) {\n    return acs.continueTrace(options, callback);\n  }\n\n  const { sentryTrace, baggage } = options;\n\n  const client = getClient();\n  const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n  if (client && !shouldContinueTrace(client, incomingDsc?.org_id)) {\n    return startNewTrace(callback);\n  }\n\n  return withScope(scope => {\n    const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n    scope.setPropagationContext(propagationContext);\n    return callback();\n  });\n};\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback. Can be\n * passed `null` to start an entirely new span tree.\n *\n * @param span Spans started in the context of the provided callback will be children of this span. If `null` is passed,\n * spans started within the callback will not be attached to a parent span.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nexport function withActiveSpan<T>(span: Span | null, callback: (scope: Scope) => T): T {\n  const acs = getAcs();\n  if (acs.withActiveSpan) {\n    return acs.withActiveSpan(span, callback);\n  }\n\n  return withScope(scope => {\n    _setSpanForScope(scope, span || undefined);\n    return callback(scope);\n  });\n}\n\n/** Suppress tracing in the given callback, ensuring no spans are generated inside of it. */\nexport function suppressTracing<T>(callback: () => T): T {\n  const acs = getAcs();\n\n  if (acs.suppressTracing) {\n    return acs.suppressTracing(callback);\n  }\n\n  return withScope(scope => {\n    // Note: We do not wait for the callback to finish before we reset the metadata\n    // the reason for this is that otherwise, in the browser this can lead to very weird behavior\n    // as there is only a single top scope, if the callback takes longer to finish,\n    // other, unrelated spans may also be suppressed, which we do not want\n    // so instead, we only suppress tracing synchronoysly in the browser\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n    const res = callback();\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: undefined });\n    return res;\n  });\n}\n\n/**\n * Starts a new trace for the duration of the provided callback. Spans started within the\n * callback will be part of the new trace instead of a potentially previously started trace.\n *\n * Important: Only use this function if you want to override the default trace lifetime and\n * propagation mechanism of the SDK for the duration and scope of the provided callback.\n * The newly created trace will also be the root of a new distributed trace, for example if\n * you make http requests within the callback.\n * This function might be useful if the operation you want to instrument should not be part\n * of a potentially ongoing trace.\n *\n * Default behavior:\n * - Server-side: A new trace is started for each incoming request.\n * - Browser: A new trace is started for each page our route. Navigating to a new route\n *            or page will automatically create a new trace.\n */\nexport function startNewTrace<T>(callback: () => T): T {\n  return withScope(scope => {\n    scope.setPropagationContext({\n      traceId: generateTraceId(),\n      sampleRand: Math.random(),\n    });\n    DEBUG_BUILD && debug.log(`Starting a new trace with id ${scope.getPropagationContext().traceId}`);\n    return withActiveSpan(null, callback);\n  });\n}\n\nfunction createChildOrRootSpan({\n  parentSpan,\n  spanArguments,\n  forceTransaction,\n  scope,\n}: {\n  parentSpan: SentrySpan | undefined;\n  spanArguments: SentrySpanArguments;\n  forceTransaction?: boolean;\n  scope: Scope;\n}): Span {\n  if (!hasSpansEnabled()) {\n    const span = new SentryNonRecordingSpan();\n\n    // If this is a root span, we ensure to freeze a DSC\n    // So we can have at least partial data here\n    if (forceTransaction || !parentSpan) {\n      const dsc = {\n        sampled: 'false',\n        sample_rate: '0',\n        transaction: spanArguments.name,\n        ...getDynamicSamplingContextFromSpan(span),\n      } satisfies Partial<DynamicSamplingContext>;\n      freezeDscOnSpan(span, dsc);\n    }\n\n    return span;\n  }\n\n  const isolationScope = getIsolationScope();\n\n  let span: Span;\n  if (parentSpan && !forceTransaction) {\n    span = _startChildSpan(parentSpan, scope, spanArguments);\n    addChildSpanToSpan(parentSpan, span);\n  } else if (parentSpan) {\n    // If we forced a transaction but have a parent span, make sure to continue from the parent span, not the scope\n    const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n    const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n    const parentSampled = spanIsSampled(parentSpan);\n\n    span = _startRootSpan(\n      {\n        traceId,\n        parentSpanId,\n        ...spanArguments,\n      },\n      scope,\n      parentSampled,\n    );\n\n    freezeDscOnSpan(span, dsc);\n  } else {\n    const {\n      traceId,\n      dsc,\n      parentSpanId,\n      sampled: parentSampled,\n    } = {\n      ...isolationScope.getPropagationContext(),\n      ...scope.getPropagationContext(),\n    };\n\n    span = _startRootSpan(\n      {\n        traceId,\n        parentSpanId,\n        ...spanArguments,\n      },\n      scope,\n      parentSampled,\n    );\n\n    if (dsc) {\n      freezeDscOnSpan(span, dsc);\n    }\n  }\n\n  logSpanStart(span);\n\n  setCapturedScopesOnSpan(span, scope, isolationScope);\n\n  return span;\n}\n\n/**\n * This converts StartSpanOptions to SentrySpanArguments.\n * For the most part (for now) we accept the same options,\n * but some of them need to be transformed.\n */\nfunction parseSentrySpanArguments(options: StartSpanOptions): SentrySpanArguments {\n  const exp = options.experimental || {};\n  const initialCtx: SentrySpanArguments = {\n    isStandalone: exp.standalone,\n    ...options,\n  };\n\n  if (options.startTime) {\n    const ctx: SentrySpanArguments & { startTime?: SpanTimeInput } = { ...initialCtx };\n    ctx.startTimestamp = spanTimeInputToSeconds(options.startTime);\n    delete ctx.startTime;\n    return ctx;\n  }\n\n  return initialCtx;\n}\n\nfunction getAcs(): AsyncContextStrategy {\n  const carrier = getMainCarrier();\n  return getAsyncContextStrategy(carrier);\n}\n\nfunction _startRootSpan(spanArguments: SentrySpanArguments, scope: Scope, parentSampled?: boolean): SentrySpan {\n  const client = getClient();\n  const options: Partial<ClientOptions> = client?.getOptions() || {};\n\n  const { name = '' } = spanArguments;\n\n  const mutableSpanSamplingData = { spanAttributes: { ...spanArguments.attributes }, spanName: name, parentSampled };\n\n  // we don't care about the decision for the moment; this is just a placeholder\n  client?.emit('beforeSampling', mutableSpanSamplingData, { decision: false });\n\n  // If hook consumers override the parentSampled flag, we will use that value instead of the actual one\n  const finalParentSampled = mutableSpanSamplingData.parentSampled ?? parentSampled;\n  const finalAttributes = mutableSpanSamplingData.spanAttributes;\n\n  const currentPropagationContext = scope.getPropagationContext();\n  const [sampled, sampleRate, localSampleRateWasApplied] = scope.getScopeData().sdkProcessingMetadata[\n    SUPPRESS_TRACING_KEY\n  ]\n    ? [false]\n    : sampleSpan(\n        options,\n        {\n          name,\n          parentSampled: finalParentSampled,\n          attributes: finalAttributes,\n          parentSampleRate: parseSampleRate(currentPropagationContext.dsc?.sample_rate),\n        },\n        currentPropagationContext.sampleRand,\n      );\n\n  const rootSpan = new SentrySpan({\n    ...spanArguments,\n    attributes: {\n      [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n      [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]:\n        sampleRate !== undefined && localSampleRateWasApplied ? sampleRate : undefined,\n      ...finalAttributes,\n    },\n    sampled,\n  });\n\n  if (!sampled && client) {\n    DEBUG_BUILD && debug.log('[Tracing] Discarding root span because its trace was not chosen to be sampled.');\n    client.recordDroppedEvent('sample_rate', 'transaction');\n  }\n\n  if (client) {\n    client.emit('spanStart', rootSpan);\n  }\n\n  return rootSpan;\n}\n\n/**\n * Creates a new `Span` while setting the current `Span.id` as `parentSpanId`.\n * This inherits the sampling decision from the parent span.\n */\nfunction _startChildSpan(parentSpan: Span, scope: Scope, spanArguments: SentrySpanArguments): Span {\n  const { spanId, traceId } = parentSpan.spanContext();\n  const sampled = scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] ? false : spanIsSampled(parentSpan);\n\n  const childSpan = sampled\n    ? new SentrySpan({\n        ...spanArguments,\n        parentSpanId: spanId,\n        traceId,\n        sampled,\n      })\n    : new SentryNonRecordingSpan({ traceId });\n\n  addChildSpanToSpan(parentSpan, childSpan);\n\n  const client = getClient();\n  if (client) {\n    client.emit('spanStart', childSpan);\n    // If it has an endTimestamp, it's already ended\n    if (spanArguments.endTimestamp) {\n      client.emit('spanEnd', childSpan);\n    }\n  }\n\n  return childSpan;\n}\n\nfunction getParentSpan(scope: Scope, customParentSpan: Span | null | undefined): SentrySpan | undefined {\n  // always use the passed in span directly\n  if (customParentSpan) {\n    return customParentSpan as SentrySpan;\n  }\n\n  // This is different from `undefined` as it means the user explicitly wants no parent span\n  if (customParentSpan === null) {\n    return undefined;\n  }\n\n  const span = _getSpanForScope(scope) as SentrySpan | undefined;\n\n  if (!span) {\n    return undefined;\n  }\n\n  const client = getClient();\n  const options: Partial<ClientOptions> = client ? client.getOptions() : {};\n  if (options.parentSpanIsAlwaysRootSpan) {\n    return getRootSpan(span) as SentrySpan;\n  }\n\n  return span;\n}\n\nfunction getActiveSpanWrapper<T>(parentSpan: Span | undefined | null): (callback: () => T) => T {\n  return parentSpan !== undefined\n    ? (callback: () => T) => {\n        return withActiveSpan(parentSpan, callback);\n      }\n    : (callback: () => T) => callback();\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { Options } from '../types-hoist/options';\nimport type { SamplingContext } from '../types-hoist/samplingcontext';\nimport { debug } from '../utils/debug-logger';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled';\nimport { parseSampleRate } from '../utils/parseSampleRate';\n\n/**\n * Makes a sampling decision for the given options.\n *\n * Called every time a root span is created. Only root spans which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n */\nexport function sampleSpan(\n  options: Pick<Options, 'tracesSampleRate' | 'tracesSampler'>,\n  samplingContext: SamplingContext,\n  sampleRand: number,\n): [sampled: boolean, sampleRate?: number, localSampleRateWasApplied?: boolean] {\n  // nothing to do if span recording is not enabled\n  if (!hasSpansEnabled(options)) {\n    return [false];\n  }\n\n  let localSampleRateWasApplied = undefined;\n\n  // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n  // work; prefer the hook if so\n  let sampleRate;\n  if (typeof options.tracesSampler === 'function') {\n    sampleRate = options.tracesSampler({\n      ...samplingContext,\n      inheritOrSampleWith: fallbackSampleRate => {\n        // If we have an incoming parent sample rate, we'll just use that one.\n        // The sampling decision will be inherited because of the sample_rand that was generated when the trace reached the incoming boundaries of the SDK.\n        if (typeof samplingContext.parentSampleRate === 'number') {\n          return samplingContext.parentSampleRate;\n        }\n\n        // Fallback if parent sample rate is not on the incoming trace (e.g. if there is no baggage)\n        // This is to provide backwards compatibility if there are incoming traces from older SDKs that don't send a parent sample rate or a sample rand. In these cases we just want to force either a sampling decision on the downstream traces via the sample rate.\n        if (typeof samplingContext.parentSampled === 'boolean') {\n          return Number(samplingContext.parentSampled);\n        }\n\n        return fallbackSampleRate;\n      },\n    });\n    localSampleRateWasApplied = true;\n  } else if (samplingContext.parentSampled !== undefined) {\n    sampleRate = samplingContext.parentSampled;\n  } else if (typeof options.tracesSampleRate !== 'undefined') {\n    sampleRate = options.tracesSampleRate;\n    localSampleRateWasApplied = true;\n  }\n\n  // Since this is coming from the user (or from a function provided by the user), who knows what we might get.\n  // (The only valid values are booleans or numbers between 0 and 1.)\n  const parsedSampleRate = parseSampleRate(sampleRate);\n\n  if (parsedSampleRate === undefined) {\n    DEBUG_BUILD &&\n      debug.warn(\n        `[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n          sampleRate,\n        )} of type ${JSON.stringify(typeof sampleRate)}.`,\n      );\n    return [false];\n  }\n\n  // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n  if (!parsedSampleRate) {\n    DEBUG_BUILD &&\n      debug.log(\n        `[Tracing] Discarding transaction because ${\n          typeof options.tracesSampler === 'function'\n            ? 'tracesSampler returned 0 or false'\n            : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n        }`,\n      );\n    return [false, parsedSampleRate, localSampleRateWasApplied];\n  }\n\n  // We always compare the sample rand for the current execution context against the chosen sample rate.\n  // Read more: https://develop.sentry.dev/sdk/telemetry/traces/#propagated-random-value\n  const shouldSample = sampleRand < parsedSampleRate;\n\n  // if we're not going to keep it, we're done\n  if (!shouldSample) {\n    DEBUG_BUILD &&\n      debug.log(\n        `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n          sampleRate,\n        )})`,\n      );\n  }\n\n  return [shouldSample, parsedSampleRate, localSampleRateWasApplied];\n}\n","import { getClient, getCurrentScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON } from '../semanticAttributes';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport type { Span } from '../types-hoist/span';\nimport type { StartSpanOptions } from '../types-hoist/startSpanOptions';\nimport { debug } from '../utils/debug-logger';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled';\nimport { _setSpanForScope } from '../utils/spanOnScope';\nimport {\n  getActiveSpan,\n  getSpanDescendants,\n  removeChildSpanFromSpan,\n  spanTimeInputToSeconds,\n  spanToJSON,\n} from '../utils/spanUtils';\nimport { timestampInSeconds } from '../utils/time';\nimport { freezeDscOnSpan, getDynamicSamplingContextFromSpan } from './dynamicSamplingContext';\nimport { SentryNonRecordingSpan } from './sentryNonRecordingSpan';\nimport { SentrySpan } from './sentrySpan';\nimport { SPAN_STATUS_ERROR } from './spanstatus';\nimport { startInactiveSpan } from './trace';\n\nexport const TRACING_DEFAULTS = {\n  idleTimeout: 1_000,\n  finalTimeout: 30_000,\n  childSpanTimeout: 15_000,\n};\n\nconst FINISH_REASON_HEARTBEAT_FAILED = 'heartbeatFailed';\nconst FINISH_REASON_IDLE_TIMEOUT = 'idleTimeout';\nconst FINISH_REASON_FINAL_TIMEOUT = 'finalTimeout';\nconst FINISH_REASON_EXTERNAL_FINISH = 'externalFinish';\nconst FINISH_REASON_CANCELLED = 'cancelled';\n\n// unused\nconst FINISH_REASON_DOCUMENT_HIDDEN = 'documentHidden';\n\n// unused in this file, but used in BrowserTracing\nconst FINISH_REASON_INTERRUPTED = 'interactionInterrupted';\n\ntype IdleSpanFinishReason =\n  | typeof FINISH_REASON_CANCELLED\n  | typeof FINISH_REASON_DOCUMENT_HIDDEN\n  | typeof FINISH_REASON_EXTERNAL_FINISH\n  | typeof FINISH_REASON_FINAL_TIMEOUT\n  | typeof FINISH_REASON_HEARTBEAT_FAILED\n  | typeof FINISH_REASON_IDLE_TIMEOUT\n  | typeof FINISH_REASON_INTERRUPTED;\n\ninterface IdleSpanOptions {\n  /**\n   * The time that has to pass without any span being created.\n   * If this time is exceeded, the idle span will finish.\n   */\n  idleTimeout: number;\n  /**\n   * The max. time an idle span may run.\n   * If this time is exceeded, the idle span will finish no matter what.\n   */\n  finalTimeout: number;\n  /**\n   * The max. time a child span may run.\n   * If the time since the last span was started exceeds this time, the idle span will finish.\n   */\n  childSpanTimeout?: number;\n  /**\n   * When set to `true`, will disable the idle timeout and child timeout\n   * until the `idleSpanEnableAutoFinish` hook is emitted for the idle span.\n   * The final timeout mechanism will not be affected by this option,\n   * meaning the idle span will definitely be finished when the final timeout is\n   * reached, no matter what this option is configured to.\n   *\n   * Defaults to `false`.\n   */\n  disableAutoFinish?: boolean;\n  /** Allows to configure a hook that is called when the idle span is ended, before it is processed. */\n  beforeSpanEnd?: (span: Span) => void;\n}\n\n/**\n * An idle span is a span that automatically finishes. It does this by tracking child spans as activities.\n * An idle span is always the active span.\n */\nexport function startIdleSpan(startSpanOptions: StartSpanOptions, options: Partial<IdleSpanOptions> = {}): Span {\n  // Activities store a list of active spans\n  const activities = new Map<string, boolean>();\n\n  // We should not use heartbeat if we finished a span\n  let _finished = false;\n\n  // Timer that tracks idleTimeout\n  let _idleTimeoutID: ReturnType<typeof setTimeout> | undefined;\n\n  // Timer that tracks maxSpanTime for child spans\n  let _childSpanTimeoutID: ReturnType<typeof setTimeout> | undefined;\n\n  // The reason why the span was finished\n  let _finishReason: IdleSpanFinishReason = FINISH_REASON_EXTERNAL_FINISH;\n\n  let _autoFinishAllowed: boolean = !options.disableAutoFinish;\n\n  const _cleanupHooks: (() => void)[] = [];\n\n  const {\n    idleTimeout = TRACING_DEFAULTS.idleTimeout,\n    finalTimeout = TRACING_DEFAULTS.finalTimeout,\n    childSpanTimeout = TRACING_DEFAULTS.childSpanTimeout,\n    beforeSpanEnd,\n  } = options;\n\n  const client = getClient();\n\n  if (!client || !hasSpansEnabled()) {\n    const span = new SentryNonRecordingSpan();\n\n    const dsc = {\n      sample_rate: '0',\n      sampled: 'false',\n      ...getDynamicSamplingContextFromSpan(span),\n    } satisfies Partial<DynamicSamplingContext>;\n    freezeDscOnSpan(span, dsc);\n\n    return span;\n  }\n\n  const scope = getCurrentScope();\n  const previousActiveSpan = getActiveSpan();\n  const span = _startIdleSpan(startSpanOptions);\n\n  // We patch span.end to ensure we can run some things before the span is ended\n  // eslint-disable-next-line @typescript-eslint/unbound-method\n  span.end = new Proxy(span.end, {\n    apply(target, thisArg, args: Parameters<Span['end']>) {\n      if (beforeSpanEnd) {\n        beforeSpanEnd(span);\n      }\n\n      // If the span is non-recording, nothing more to do here...\n      // This is the case if tracing is enabled but this specific span was not sampled\n      if (thisArg instanceof SentryNonRecordingSpan) {\n        return;\n      }\n\n      // Just ensuring that this keeps working, even if we ever have more arguments here\n      const [definedEndTimestamp, ...rest] = args;\n      const timestamp = definedEndTimestamp || timestampInSeconds();\n      const spanEndTimestamp = spanTimeInputToSeconds(timestamp);\n\n      // Ensure we end with the last span timestamp, if possible\n      const spans = getSpanDescendants(span).filter(child => child !== span);\n\n      // If we have no spans, we just end, nothing else to do here\n      if (!spans.length) {\n        onIdleSpanEnded(spanEndTimestamp);\n        return Reflect.apply(target, thisArg, [spanEndTimestamp, ...rest]);\n      }\n\n      const childEndTimestamps = spans\n        .map(span => spanToJSON(span).timestamp)\n        .filter(timestamp => !!timestamp) as number[];\n      const latestSpanEndTimestamp = childEndTimestamps.length ? Math.max(...childEndTimestamps) : undefined;\n\n      // In reality this should always exist here, but type-wise it may be undefined...\n      const spanStartTimestamp = spanToJSON(span).start_timestamp;\n\n      // The final endTimestamp should:\n      // * Never be before the span start timestamp\n      // * Be the latestSpanEndTimestamp, if there is one, and it is smaller than the passed span end timestamp\n      // * Otherwise be the passed end timestamp\n      // Final timestamp can never be after finalTimeout\n      const endTimestamp = Math.min(\n        spanStartTimestamp ? spanStartTimestamp + finalTimeout / 1000 : Infinity,\n        Math.max(spanStartTimestamp || -Infinity, Math.min(spanEndTimestamp, latestSpanEndTimestamp || Infinity)),\n      );\n\n      onIdleSpanEnded(endTimestamp);\n      return Reflect.apply(target, thisArg, [endTimestamp, ...rest]);\n    },\n  });\n\n  /**\n   * Cancels the existing idle timeout, if there is one.\n   */\n  function _cancelIdleTimeout(): void {\n    if (_idleTimeoutID) {\n      clearTimeout(_idleTimeoutID);\n      _idleTimeoutID = undefined;\n    }\n  }\n\n  /**\n   * Cancels the existing child span timeout, if there is one.\n   */\n  function _cancelChildSpanTimeout(): void {\n    if (_childSpanTimeoutID) {\n      clearTimeout(_childSpanTimeoutID);\n      _childSpanTimeoutID = undefined;\n    }\n  }\n\n  /**\n   * Restarts idle timeout, if there is no running idle timeout it will start one.\n   */\n  function _restartIdleTimeout(endTimestamp?: number): void {\n    _cancelIdleTimeout();\n    _idleTimeoutID = setTimeout(() => {\n      if (!_finished && activities.size === 0 && _autoFinishAllowed) {\n        _finishReason = FINISH_REASON_IDLE_TIMEOUT;\n        span.end(endTimestamp);\n      }\n    }, idleTimeout);\n  }\n\n  /**\n   * Restarts child span timeout, if there is none running it will start one.\n   */\n  function _restartChildSpanTimeout(endTimestamp?: number): void {\n    _cancelChildSpanTimeout();\n    _idleTimeoutID = setTimeout(() => {\n      if (!_finished && _autoFinishAllowed) {\n        _finishReason = FINISH_REASON_HEARTBEAT_FAILED;\n        span.end(endTimestamp);\n      }\n    }, childSpanTimeout);\n  }\n\n  /**\n   * Start tracking a specific activity.\n   * @param spanId The span id that represents the activity\n   */\n  function _pushActivity(spanId: string): void {\n    _cancelIdleTimeout();\n    activities.set(spanId, true);\n\n    const endTimestamp = timestampInSeconds();\n    // We need to add the timeout here to have the real endtimestamp of the idle span\n    // Remember timestampInSeconds is in seconds, timeout is in ms\n    _restartChildSpanTimeout(endTimestamp + childSpanTimeout / 1000);\n  }\n\n  /**\n   * Remove an activity from usage\n   * @param spanId The span id that represents the activity\n   */\n  function _popActivity(spanId: string): void {\n    if (activities.has(spanId)) {\n      activities.delete(spanId);\n    }\n\n    if (activities.size === 0) {\n      const endTimestamp = timestampInSeconds();\n      // We need to add the timeout here to have the real endtimestamp of the idle span\n      // Remember timestampInSeconds is in seconds, timeout is in ms\n      _restartIdleTimeout(endTimestamp + idleTimeout / 1000);\n      _cancelChildSpanTimeout();\n    }\n  }\n\n  function onIdleSpanEnded(endTimestamp: number): void {\n    _finished = true;\n    activities.clear();\n\n    _cleanupHooks.forEach(cleanup => cleanup());\n\n    _setSpanForScope(scope, previousActiveSpan);\n\n    const spanJSON = spanToJSON(span);\n\n    const { start_timestamp: startTimestamp } = spanJSON;\n    // This should never happen, but to make TS happy...\n    if (!startTimestamp) {\n      return;\n    }\n\n    const attributes = spanJSON.data;\n    if (!attributes[SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON]) {\n      span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, _finishReason);\n    }\n\n    debug.log(`[Tracing] Idle span \"${spanJSON.op}\" finished`);\n\n    const childSpans = getSpanDescendants(span).filter(child => child !== span);\n\n    let discardedSpans = 0;\n    childSpans.forEach(childSpan => {\n      // We cancel all pending spans with status \"cancelled\" to indicate the idle span was finished early\n      if (childSpan.isRecording()) {\n        childSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'cancelled' });\n        childSpan.end(endTimestamp);\n        DEBUG_BUILD &&\n          debug.log('[Tracing] Cancelling span since span ended early', JSON.stringify(childSpan, undefined, 2));\n      }\n\n      const childSpanJSON = spanToJSON(childSpan);\n      const { timestamp: childEndTimestamp = 0, start_timestamp: childStartTimestamp = 0 } = childSpanJSON;\n\n      const spanStartedBeforeIdleSpanEnd = childStartTimestamp <= endTimestamp;\n\n      // Add a delta with idle timeout so that we prevent false positives\n      const timeoutWithMarginOfError = (finalTimeout + idleTimeout) / 1000;\n      const spanEndedBeforeFinalTimeout = childEndTimestamp - childStartTimestamp <= timeoutWithMarginOfError;\n\n      if (DEBUG_BUILD) {\n        const stringifiedSpan = JSON.stringify(childSpan, undefined, 2);\n        if (!spanStartedBeforeIdleSpanEnd) {\n          debug.log('[Tracing] Discarding span since it happened after idle span was finished', stringifiedSpan);\n        } else if (!spanEndedBeforeFinalTimeout) {\n          debug.log('[Tracing] Discarding span since it finished after idle span final timeout', stringifiedSpan);\n        }\n      }\n\n      if (!spanEndedBeforeFinalTimeout || !spanStartedBeforeIdleSpanEnd) {\n        removeChildSpanFromSpan(span, childSpan);\n        discardedSpans++;\n      }\n    });\n\n    if (discardedSpans > 0) {\n      span.setAttribute('sentry.idle_span_discarded_spans', discardedSpans);\n    }\n  }\n\n  _cleanupHooks.push(\n    client.on('spanStart', startedSpan => {\n      // If we already finished the idle span,\n      // or if this is the idle span itself being started,\n      // or if the started span has already been closed,\n      // we don't care about it for activity\n      if (\n        _finished ||\n        startedSpan === span ||\n        !!spanToJSON(startedSpan).timestamp ||\n        (startedSpan instanceof SentrySpan && startedSpan.isStandaloneSpan())\n      ) {\n        return;\n      }\n\n      const allSpans = getSpanDescendants(span);\n\n      // If the span that was just started is a child of the idle span, we should track it\n      if (allSpans.includes(startedSpan)) {\n        _pushActivity(startedSpan.spanContext().spanId);\n      }\n    }),\n  );\n\n  _cleanupHooks.push(\n    client.on('spanEnd', endedSpan => {\n      if (_finished) {\n        return;\n      }\n\n      _popActivity(endedSpan.spanContext().spanId);\n    }),\n  );\n\n  _cleanupHooks.push(\n    client.on('idleSpanEnableAutoFinish', spanToAllowAutoFinish => {\n      if (spanToAllowAutoFinish === span) {\n        _autoFinishAllowed = true;\n        _restartIdleTimeout();\n\n        if (activities.size) {\n          _restartChildSpanTimeout();\n        }\n      }\n    }),\n  );\n\n  // We only start the initial idle timeout if we are not delaying the auto finish\n  if (!options.disableAutoFinish) {\n    _restartIdleTimeout();\n  }\n\n  setTimeout(() => {\n    if (!_finished) {\n      span.setStatus({ code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' });\n      _finishReason = FINISH_REASON_FINAL_TIMEOUT;\n      span.end();\n    }\n  }, finalTimeout);\n\n  return span;\n}\n\nfunction _startIdleSpan(options: StartSpanOptions): Span {\n  const span = startInactiveSpan(options);\n\n  _setSpanForScope(getCurrentScope(), span);\n\n  DEBUG_BUILD && debug.log('[Tracing] Started span is an idle span');\n\n  return span;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { debug } from '../utils/debug-logger';\nimport { getFunctionName } from '../utils/stacktrace';\n\nexport type InstrumentHandlerType =\n  | 'console'\n  | 'dom'\n  | 'fetch'\n  | 'fetch-body-resolved'\n  | 'history'\n  | 'xhr'\n  | 'error'\n  | 'unhandledrejection';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type InstrumentHandlerCallback = (data: any) => void;\n\n// We keep the handlers globally\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Add a handler function. */\nexport function addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n  handlers[type] = handlers[type] || [];\n  (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nexport function resetInstrumentationHandlers(): void {\n  Object.keys(handlers).forEach(key => {\n    handlers[key as InstrumentHandlerType] = undefined;\n  });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nexport function maybeInstrument(type: InstrumentHandlerType, instrumentFn: () => void): void {\n  if (!instrumented[type]) {\n    instrumented[type] = true;\n    try {\n      instrumentFn();\n    } catch (e) {\n      DEBUG_BUILD && debug.error(`Error while instrumenting ${type}`, e);\n    }\n  }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nexport function triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n  const typeHandlers = type && handlers[type];\n  if (!typeHandlers) {\n    return;\n  }\n\n  for (const handler of typeHandlers) {\n    try {\n      handler(data);\n    } catch (e) {\n      DEBUG_BUILD &&\n        debug.error(\n          `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n          e,\n        );\n    }\n  }\n}\n","import type { HandlerDataError } from '../types-hoist/instrument';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers';\n\nlet _oldOnErrorHandler: (typeof GLOBAL_OBJ)['onerror'] | null = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addGlobalErrorInstrumentationHandler(handler: (data: HandlerDataError) => void): void {\n  const type = 'error';\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError(): void {\n  _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n  // Note: The reason we are doing window.onerror instead of window.addEventListener('error')\n  // is that we are using this handler in the Loader Script, to handle buffered errors consistently\n  GLOBAL_OBJ.onerror = function (\n    msg: string | object,\n    url?: string,\n    line?: number,\n    column?: number,\n    error?: Error,\n  ): boolean {\n    const handlerData: HandlerDataError = {\n      column,\n      error,\n      line,\n      msg,\n      url,\n    };\n    triggerHandlers('error', handlerData);\n\n    if (_oldOnErrorHandler) {\n      // eslint-disable-next-line prefer-rest-params\n      return _oldOnErrorHandler.apply(this, arguments);\n    }\n\n    return false;\n  };\n\n  GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n","import type { HandlerDataUnhandledRejection } from '../types-hoist/instrument';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers';\n\nlet _oldOnUnhandledRejectionHandler: (typeof GLOBAL_OBJ)['onunhandledrejection'] | null = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addGlobalUnhandledRejectionInstrumentationHandler(\n  handler: (data: HandlerDataUnhandledRejection) => void,\n): void {\n  const type = 'unhandledrejection';\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection(): void {\n  _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n  // Note: The reason we are doing window.onunhandledrejection instead of window.addEventListener('unhandledrejection')\n  // is that we are using this handler in the Loader Script, to handle buffered rejections consistently\n  GLOBAL_OBJ.onunhandledrejection = function (e: unknown): boolean {\n    const handlerData: HandlerDataUnhandledRejection = e;\n    triggerHandlers('unhandledrejection', handlerData);\n\n    if (_oldOnUnhandledRejectionHandler) {\n      // eslint-disable-next-line prefer-rest-params\n      return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n    }\n\n    return true;\n  };\n\n  GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { addGlobalErrorInstrumentationHandler } from '../instrument/globalError';\nimport { addGlobalUnhandledRejectionInstrumentationHandler } from '../instrument/globalUnhandledRejection';\nimport { debug } from '../utils/debug-logger';\nimport { getActiveSpan, getRootSpan } from '../utils/spanUtils';\nimport { SPAN_STATUS_ERROR } from './spanstatus';\n\nlet errorsInstrumented = false;\n\n/**  Only exposed for testing */\nexport function _resetErrorsInstrumented(): void {\n  errorsInstrumented = false;\n}\n\n/**\n * Ensure that global errors automatically set the active span status.\n */\nexport function registerSpanErrorInstrumentation(): void {\n  if (errorsInstrumented) {\n    return;\n  }\n\n  /**\n   * If an error or unhandled promise occurs, we mark the active root span as failed\n   */\n  function errorCallback(): void {\n    const activeSpan = getActiveSpan();\n    const rootSpan = activeSpan && getRootSpan(activeSpan);\n    if (rootSpan) {\n      const message = 'internal_error';\n      DEBUG_BUILD && debug.log(`[Tracing] Root span: ${message} -> Global error occurred`);\n      rootSpan.setStatus({ code: SPAN_STATUS_ERROR, message });\n    }\n  }\n\n  // The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n  // node.js default exit behaviour\n  errorCallback.tag = 'sentry_tracingErrorCallback';\n\n  errorsInstrumented = true;\n  addGlobalErrorInstrumentationHandler(errorCallback);\n  addGlobalUnhandledRejectionInstrumentationHandler(errorCallback);\n}\n","import {\n  SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n  SEMANTIC_ATTRIBUTE_URL_FULL,\n} from '../semanticAttributes';\nimport type { SpanAttributes } from '../types-hoist/span';\n\ntype PartialURL = {\n  host?: string;\n  path?: string;\n  protocol?: string;\n  relative?: string;\n  search?: string;\n  hash?: string;\n};\n\ninterface URLwithCanParse extends URL {\n  canParse: (url: string, base?: string | URL | undefined) => boolean;\n}\n\n// A subset of the URL object that is valid for relative URLs\n// The URL object cannot handle relative URLs, so we need to handle them separately\ntype RelativeURL = {\n  isRelative: true;\n  pathname: URL['pathname'];\n  search: URL['search'];\n  hash: URL['hash'];\n};\n\ntype URLObject = RelativeURL | URL;\n\n// Curious about `thismessage:/`? See: https://www.rfc-editor.org/rfc/rfc2557.html\n//  > When the methods above do not yield an absolute URI, a base URL\n//  > of \"thismessage:/\" MUST be employed. This base URL has been\n//  > defined for the sole purpose of resolving relative references\n//  > within a multipart/related structure when no other base URI is\n//  > specified.\n//\n// We need to provide a base URL to `parseStringToURLObject` because the fetch API gives us a\n// relative URL sometimes.\n//\n// This is the only case where we need to provide a base URL to `parseStringToURLObject`\n// because the relative URL is not valid on its own.\nconst DEFAULT_BASE_URL = 'thismessage:/';\n\n/**\n * Checks if the URL object is relative\n *\n * @param url - The URL object to check\n * @returns True if the URL object is relative, false otherwise\n */\nexport function isURLObjectRelative(url: URLObject): url is RelativeURL {\n  return 'isRelative' in url;\n}\n\n/**\n * Parses string to a URL object\n *\n * @param url - The URL to parse\n * @returns The parsed URL object or undefined if the URL is invalid\n */\nexport function parseStringToURLObject(url: string, urlBase?: string | URL | undefined): URLObject | undefined {\n  const isRelative = url.indexOf('://') <= 0 && url.indexOf('//') !== 0;\n  const base = urlBase ?? (isRelative ? DEFAULT_BASE_URL : undefined);\n  try {\n    // Use `canParse` to short-circuit the URL constructor if it's not a valid URL\n    // This is faster than trying to construct the URL and catching the error\n    // Node 20+, Chrome 120+, Firefox 115+, Safari 17+\n    if ('canParse' in URL && !(URL as unknown as URLwithCanParse).canParse(url, base)) {\n      return undefined;\n    }\n\n    const fullUrlObject = new URL(url, base);\n    if (isRelative) {\n      // Because we used a fake base URL, we need to return a relative URL object.\n      // We cannot return anything about the origin, host, etc. because it will refer to the fake base URL.\n      return {\n        isRelative,\n        pathname: fullUrlObject.pathname,\n        search: fullUrlObject.search,\n        hash: fullUrlObject.hash,\n      };\n    }\n    return fullUrlObject;\n  } catch {\n    // empty body\n  }\n\n  return undefined;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nexport function getSanitizedUrlStringFromUrlObject(url: URLObject): string {\n  if (isURLObjectRelative(url)) {\n    return url.pathname;\n  }\n\n  const newUrl = new URL(url);\n  newUrl.search = '';\n  newUrl.hash = '';\n  if (['80', '443'].includes(newUrl.port)) {\n    newUrl.port = '';\n  }\n  if (newUrl.password) {\n    newUrl.password = '%filtered%';\n  }\n  if (newUrl.username) {\n    newUrl.username = '%filtered%';\n  }\n\n  return newUrl.toString();\n}\n\ntype PartialRequest = {\n  method?: string;\n};\n\nfunction getHttpSpanNameFromUrlObject(\n  urlObject: URLObject | undefined,\n  kind: 'server' | 'client',\n  request?: PartialRequest,\n  routeName?: string,\n): string {\n  const method = request?.method?.toUpperCase() ?? 'GET';\n  const route = routeName\n    ? routeName\n    : urlObject\n      ? kind === 'client'\n        ? getSanitizedUrlStringFromUrlObject(urlObject)\n        : urlObject.pathname\n      : '/';\n\n  return `${method} ${route}`;\n}\n\n/**\n * Takes a parsed URL object and returns a set of attributes for the span\n * that represents the HTTP request for that url. This is used for both server\n * and client http spans.\n *\n * Follows https://opentelemetry.io/docs/specs/semconv/http/.\n *\n * @param urlObject - see {@link parseStringToURLObject}\n * @param kind - The type of HTTP operation (server or client)\n * @param spanOrigin - The origin of the span\n * @param request - The request object, see {@link PartialRequest}\n * @param routeName - The name of the route, must be low cardinality\n * @returns The span name and attributes for the HTTP operation\n */\nexport function getHttpSpanDetailsFromUrlObject(\n  urlObject: URLObject | undefined,\n  kind: 'server' | 'client',\n  spanOrigin: string,\n  request?: PartialRequest,\n  routeName?: string,\n): [name: string, attributes: SpanAttributes] {\n  const attributes: SpanAttributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n    [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n  };\n\n  if (routeName) {\n    // This is based on https://opentelemetry.io/docs/specs/semconv/http/http-spans/#name\n    attributes[kind === 'server' ? 'http.route' : 'url.template'] = routeName;\n    attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'route';\n  }\n\n  if (request?.method) {\n    attributes[SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD] = request.method.toUpperCase();\n  }\n\n  if (urlObject) {\n    if (urlObject.search) {\n      attributes['url.query'] = urlObject.search;\n    }\n    if (urlObject.hash) {\n      attributes['url.fragment'] = urlObject.hash;\n    }\n    if (urlObject.pathname) {\n      attributes['url.path'] = urlObject.pathname;\n      if (urlObject.pathname === '/') {\n        attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'route';\n      }\n    }\n\n    if (!isURLObjectRelative(urlObject)) {\n      attributes[SEMANTIC_ATTRIBUTE_URL_FULL] = urlObject.href;\n      if (urlObject.port) {\n        attributes['url.port'] = urlObject.port;\n      }\n      if (urlObject.protocol) {\n        attributes['url.scheme'] = urlObject.protocol;\n      }\n      if (urlObject.hostname) {\n        attributes[kind === 'server' ? 'server.address' : 'url.domain'] = urlObject.hostname;\n      }\n    }\n  }\n\n  return [getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName), attributes];\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): PartialURL {\n  if (!url) {\n    return {};\n  }\n\n  const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n  if (!match) {\n    return {};\n  }\n\n  // coerce to undefined values to empty string so we don't get 'undefined'\n  const query = match[6] || '';\n  const fragment = match[8] || '';\n  return {\n    host: match[4],\n    path: match[5],\n    protocol: match[2],\n    search: query,\n    hash: fragment,\n    relative: match[5] + query + fragment, // everything minus origin\n  };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n  return (urlPath.split(/[?#]/, 1) as [string, ...string[]])[0];\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nexport function getSanitizedUrlString(url: PartialURL): string {\n  const { protocol, host, path } = url;\n\n  const filteredHost =\n    host\n      // Always filter out authority\n      ?.replace(/^.*@/, '[filtered]:[filtered]@')\n      // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n      // TODO: Use new URL global if it exists\n      .replace(/(:80)$/, '')\n      .replace(/(:443)$/, '') || '';\n\n  return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n","import type {\n  FetchBreadcrumbHint,\n  HandlerDataFetch,\n  SentryWrappedXMLHttpRequest,\n  XhrBreadcrumbHint,\n} from '@sentry/core';\nimport { GLOBAL_OBJ } from '@sentry/core';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ &\n  // document is not available in all browser environments (webworkers). We make it optional so you have to explicitly check for it\n  Omit<Window, 'document'> &\n  Partial<Pick<Window, 'document'>>;\n\nexport type NetworkMetaWarning =\n  | 'MAYBE_JSON_TRUNCATED'\n  | 'TEXT_TRUNCATED'\n  | 'URL_SKIPPED'\n  | 'BODY_PARSE_ERROR'\n  | 'BODY_PARSE_TIMEOUT'\n  | 'UNPARSEABLE_BODY_TYPE';\n\ntype RequestBody = null | Blob | BufferSource | FormData | URLSearchParams | string;\n\nexport type XhrHint = XhrBreadcrumbHint & {\n  xhr: XMLHttpRequest & SentryWrappedXMLHttpRequest;\n  input?: RequestBody;\n};\nexport type FetchHint = FetchBreadcrumbHint & {\n  input: HandlerDataFetch['args'];\n  response: Response;\n};\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { MetricRatingThresholds, MetricType } from '../types';\n\nconst getRating = (value: number, thresholds: MetricRatingThresholds): MetricType['rating'] => {\n  if (value > thresholds[1]) {\n    return 'poor';\n  }\n  if (value > thresholds[0]) {\n    return 'needs-improvement';\n  }\n  return 'good';\n};\n\nexport const bindReporter = <MetricName extends MetricType['name']>(\n  callback: (metric: Extract<MetricType, { name: MetricName }>) => void,\n  metric: Extract<MetricType, { name: MetricName }>,\n  thresholds: MetricRatingThresholds,\n  reportAllChanges?: boolean,\n) => {\n  let prevValue: number;\n  let delta: number;\n  return (forceReport?: boolean) => {\n    if (metric.value >= 0) {\n      if (forceReport || reportAllChanges) {\n        delta = metric.value - (prevValue ?? 0);\n\n        // Report the metric if there's a non-zero delta or if no previous\n        // value exists (which can happen in the case of the document becoming\n        // hidden when the metric value is 0).\n        // See: https://github.com/GoogleChrome/web-vitals/issues/14\n        if (delta || prevValue === undefined) {\n          prevValue = metric.value;\n          metric.delta = delta;\n          metric.rating = getRating(metric.value, thresholds);\n          callback(metric);\n        }\n      }\n    }\n  };\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../../types';\n\n// sentry-specific change:\n// add optional param to not check for responseStart (see comment below)\nexport const getNavigationEntry = (checkResponseStart = true): PerformanceNavigationTiming | void => {\n  const navigationEntry = WINDOW.performance?.getEntriesByType?.('navigation')[0];\n  // Check to ensure the `responseStart` property is present and valid.\n  // In some cases a zero value is reported by the browser (for\n  // privacy/security reasons), and in other cases (bugs) the value is\n  // negative or is larger than the current page time. Ignore these cases:\n  // - https://github.com/GoogleChrome/web-vitals/issues/137\n  // - https://github.com/GoogleChrome/web-vitals/issues/162\n  // - https://github.com/GoogleChrome/web-vitals/issues/275\n  if (\n    // sentry-specific change:\n    // We don't want to check for responseStart for our own use of `getNavigationEntry`\n    !checkResponseStart ||\n    (navigationEntry && navigationEntry.responseStart > 0 && navigationEntry.responseStart < performance.now())\n  ) {\n    return navigationEntry;\n  }\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const getActivationStart = (): number => {\n  const navEntry = getNavigationEntry();\n  return navEntry?.activationStart ?? 0;\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../../types';\nimport type { MetricType } from '../types';\nimport { generateUniqueID } from './generateUniqueID';\nimport { getActivationStart } from './getActivationStart';\nimport { getNavigationEntry } from './getNavigationEntry';\n\nexport const initMetric = <MetricName extends MetricType['name']>(name: MetricName, value: number = -1) => {\n  const navEntry = getNavigationEntry();\n  let navigationType: MetricType['navigationType'] = 'navigate';\n\n  if (navEntry) {\n    if (WINDOW.document?.prerendering || getActivationStart() > 0) {\n      navigationType = 'prerender';\n    } else if (WINDOW.document?.wasDiscarded) {\n      navigationType = 'restore';\n    } else if (navEntry.type) {\n      navigationType = navEntry.type.replace(/_/g, '-') as MetricType['navigationType'];\n    }\n  }\n\n  // Use `entries` type specific for the metric.\n  const entries: Extract<MetricType, { name: MetricName }>['entries'] = [];\n\n  return {\n    name,\n    value,\n    rating: 'good' as const, // If needed, will be updated when reported. `const` to keep the type from widening to `string`.\n    delta: 0,\n    entries,\n    id: generateUniqueID(),\n    navigationType,\n  };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport const generateUniqueID = () => {\n  return `v5-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n","/*\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst instanceMap: WeakMap<object, unknown> = new WeakMap();\n\n/**\n * A function that accepts and identity object and a class object and returns\n * either a new instance of that class or an existing instance, if the\n * identity object was previously used.\n */\nexport function initUnique<T>(identityObj: object, ClassObj: new () => T): T {\n  if (!instanceMap.get(identityObj)) {\n    instanceMap.set(identityObj, new ClassObj());\n  }\n  return instanceMap.get(identityObj)! as T;\n}\n","/* eslint-disable jsdoc/require-jsdoc */\n/*\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class LayoutShiftManager {\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n  _onAfterProcessingUnexpectedShift?: (entry: LayoutShift) => void;\n\n  // eslint-disable-next-line @sentry-internal/sdk/no-class-field-initializers, @typescript-eslint/explicit-member-accessibility\n  _sessionValue = 0;\n  // eslint-disable-next-line @sentry-internal/sdk/no-class-field-initializers, @typescript-eslint/explicit-member-accessibility\n  _sessionEntries: LayoutShift[] = [];\n\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n  _processEntry(entry: LayoutShift) {\n    // Only count layout shifts without recent user input.\n    if (entry.hadRecentInput) return;\n\n    const firstSessionEntry = this._sessionEntries[0];\n    // This previously used `this._sessionEntries.at(-1)` but that is ES2022. We support ES2021 and earlier.\n    const lastSessionEntry = this._sessionEntries[this._sessionEntries.length - 1];\n\n    // If the entry occurred less than 1 second after the previous entry\n    // and less than 5 seconds after the first entry in the session,\n    // include the entry in the current session. Otherwise, start a new\n    // session.\n    if (\n      this._sessionValue &&\n      firstSessionEntry &&\n      lastSessionEntry &&\n      entry.startTime - lastSessionEntry.startTime < 1000 &&\n      entry.startTime - firstSessionEntry.startTime < 5000\n    ) {\n      this._sessionValue += entry.value;\n      this._sessionEntries.push(entry);\n    } else {\n      this._sessionValue = entry.value;\n      this._sessionEntries = [entry];\n    }\n\n    this._onAfterProcessingUnexpectedShift?.(entry);\n  }\n}\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface PerformanceEntryMap {\n  event: PerformanceEventTiming[];\n  'first-input': PerformanceEventTiming[];\n  'layout-shift': LayoutShift[];\n  'largest-contentful-paint': LargestContentfulPaint[];\n  'long-animation-frame': PerformanceLongAnimationFrameTiming[];\n  paint: PerformancePaintTiming[];\n  navigation: PerformanceNavigationTiming[];\n  resource: PerformanceResourceTiming[];\n  // Sentry-specific change:\n  // We add longtask as a supported entry type as we use this in\n  // our `instrumentPerformanceObserver` function also observes 'longtask'\n  // entries.\n  longtask: PerformanceEntry[];\n  // Sentry-specific change:\n  // We add element as a supported entry type for ElementTiming API\n  element: PerformanceEntry[];\n}\n\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport const observe = <K extends keyof PerformanceEntryMap>(\n  type: K,\n  callback: (entries: PerformanceEntryMap[K]) => void,\n  opts: PerformanceObserverInit = {},\n): PerformanceObserver | undefined => {\n  try {\n    if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n      const po = new PerformanceObserver(list => {\n        // Delay by a microtask to workaround a bug in Safari where the\n        // callback is invoked immediately, rather than in a separate task.\n        // See: https://github.com/GoogleChrome/web-vitals/issues/277\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises\n        Promise.resolve().then(() => {\n          callback(list.getEntries() as PerformanceEntryMap[K]);\n        });\n      });\n      po.observe({ type, buffered: true, ...opts });\n      return po;\n    }\n  } catch {\n    // Do nothing.\n  }\n  return;\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const runOnce = (cb: () => void) => {\n  let called = false;\n  return () => {\n    if (!called) {\n      cb();\n      called = true;\n    }\n  };\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../../types';\nimport { getActivationStart } from './getActivationStart';\n\nlet firstHiddenTime = -1;\n\nconst initHiddenTime = () => {\n  // If the document is hidden when this code runs, assume it was always\n  // hidden and the page was loaded in the background, with the one exception\n  // that visibility state is always 'hidden' during prerendering, so we have\n  // to ignore that case until prerendering finishes (see: `prerenderingchange`\n  // event logic below).\n  return WINDOW.document?.visibilityState === 'hidden' && !WINDOW.document?.prerendering ? 0 : Infinity;\n};\n\nconst onVisibilityUpdate = (event: Event) => {\n  // If the document is 'hidden' and no previous hidden timestamp has been\n  // set, update it based on the current event data.\n  if (WINDOW.document!.visibilityState === 'hidden' && firstHiddenTime > -1) {\n    // If the event is a 'visibilitychange' event, it means the page was\n    // visible prior to this change, so the event timestamp is the first\n    // hidden time.\n    // However, if the event is not a 'visibilitychange' event, then it must\n    // be a 'prerenderingchange' event, and the fact that the document is\n    // still 'hidden' from the above check means the tab was activated\n    // in a background state and so has always been hidden.\n    firstHiddenTime = event.type === 'visibilitychange' ? event.timeStamp : 0;\n\n    // Remove all listeners now that a `firstHiddenTime` value has been set.\n    removeChangeListeners();\n  }\n};\n\nconst addChangeListeners = () => {\n  addEventListener('visibilitychange', onVisibilityUpdate, true);\n  // IMPORTANT: when a page is prerendering, its `visibilityState` is\n  // 'hidden', so in order to account for cases where this module checks for\n  // visibility during prerendering, an additional check after prerendering\n  // completes is also required.\n  addEventListener('prerenderingchange', onVisibilityUpdate, true);\n};\n\nconst removeChangeListeners = () => {\n  removeEventListener('visibilitychange', onVisibilityUpdate, true);\n  removeEventListener('prerenderingchange', onVisibilityUpdate, true);\n};\n\nexport const getVisibilityWatcher = () => {\n  if (WINDOW.document && firstHiddenTime < 0) {\n    // Check if we have a previous hidden `visibility-state` performance entry.\n    const activationStart = getActivationStart();\n    const firstVisibilityStateHiddenTime = !WINDOW.document.prerendering\n      ? globalThis.performance\n          .getEntriesByType('visibility-state')\n          .filter(e => e.name === 'hidden' && e.startTime > activationStart)[0]?.startTime\n      : undefined;\n\n    // Prefer that, but if it's not available and the document is hidden when\n    // this code runs, assume it was hidden since navigation start. This isn't\n    // a perfect heuristic, but it's the best we can do until the\n    // `visibility-state` performance entry becomes available in all browsers.\n    firstHiddenTime = firstVisibilityStateHiddenTime ?? initHiddenTime();\n    // We're still going to listen to for changes so we can handle things like\n    // bfcache restores and/or prerender without having to examine individual\n    // timestamps in detail.\n    addChangeListeners();\n  }\n  return {\n    get firstHiddenTime() {\n      return firstHiddenTime;\n    },\n  };\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../../types';\n\nexport const whenActivated = (callback: () => void) => {\n  if (WINDOW.document?.prerendering) {\n    addEventListener('prerenderingchange', () => callback(), true);\n  } else {\n    callback();\n  }\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { whenActivated } from './lib/whenActivated';\nimport type { FCPMetric, MetricRatingThresholds, ReportOpts } from './types';\n\n/** Thresholds for FCP. See https://web.dev/articles/fcp#what_is_a_good_fcp_score */\nexport const FCPThresholds: MetricRatingThresholds = [1800, 3000];\n\n/**\n * Calculates the [FCP](https://web.dev/articles/fcp) value for the current page and\n * calls the `callback` function once the value is ready, along with the\n * relevant `paint` performance entry used to determine the value. The reported\n * value is a `DOMHighResTimeStamp`.\n */\nexport const onFCP = (onReport: (metric: FCPMetric) => void, opts: ReportOpts = {}) => {\n  whenActivated(() => {\n    const visibilityWatcher = getVisibilityWatcher();\n    const metric = initMetric('FCP');\n    let report: ReturnType<typeof bindReporter>;\n\n    const handleEntries = (entries: FCPMetric['entries']) => {\n      for (const entry of entries) {\n        if (entry.name === 'first-contentful-paint') {\n          po!.disconnect();\n\n          // Only report if the page wasn't hidden prior to the first paint.\n          if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n            // The activationStart reference is used because FCP should be\n            // relative to page activation rather than navigation start if the\n            // page was prerendered. But in cases where `activationStart` occurs\n            // after the FCP, this time should be clamped at 0.\n            metric.value = Math.max(entry.startTime - getActivationStart(), 0);\n            metric.entries.push(entry);\n            report(true);\n          }\n        }\n      }\n    };\n\n    const po = observe('paint', handleEntries);\n\n    if (po) {\n      report = bindReporter(onReport, metric, FCPThresholds, opts.reportAllChanges);\n    }\n  });\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { initUnique } from './lib/initUnique';\nimport { LayoutShiftManager } from './lib/LayoutShiftManager';\nimport { observe } from './lib/observe';\nimport { runOnce } from './lib/runOnce';\nimport { onFCP } from './onFCP';\nimport type { CLSMetric, MetricRatingThresholds, ReportOpts } from './types';\n\n/** Thresholds for CLS. See https://web.dev/articles/cls#what_is_a_good_cls_score */\nexport const CLSThresholds: MetricRatingThresholds = [0.1, 0.25];\n\n/**\n * Calculates the [CLS](https://web.dev/articles/cls) value for the current page and\n * calls the `callback` function once the value is ready to be reported, along\n * with all `layout-shift` performance entries that were used in the metric\n * value calculation. The reported value is a `double` (corresponding to a\n * [layout shift score](https://web.dev/articles/cls#layout_shift_score)).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** CLS should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nexport const onCLS = (onReport: (metric: CLSMetric) => void, opts: ReportOpts = {}) => {\n  // Start monitoring FCP so we can only report CLS if FCP is also reported.\n  // Note: this is done to match the current behavior of CrUX.\n  onFCP(\n    runOnce(() => {\n      const metric = initMetric('CLS', 0);\n      let report: ReturnType<typeof bindReporter>;\n\n      const layoutShiftManager = initUnique(opts, LayoutShiftManager);\n\n      const handleEntries = (entries: LayoutShift[]) => {\n        for (const entry of entries) {\n          layoutShiftManager._processEntry(entry);\n        }\n\n        // If the current session value is larger than the current CLS value,\n        // update CLS and the entries contributing to it.\n        if (layoutShiftManager._sessionValue > metric.value) {\n          metric.value = layoutShiftManager._sessionValue;\n          metric.entries = layoutShiftManager._sessionEntries;\n          report();\n        }\n      };\n\n      const po = observe('layout-shift', handleEntries);\n      if (po) {\n        report = bindReporter(onReport, metric, CLSThresholds, opts!.reportAllChanges);\n\n        WINDOW.document?.addEventListener('visibilitychange', () => {\n          if (WINDOW.document?.visibilityState === 'hidden') {\n            handleEntries(po.takeRecords() as CLSMetric['entries']);\n            report(true);\n          }\n        });\n\n        // Queue a task to report (if nothing else triggers a report first).\n        // This allows CLS to be reported as soon as FCP fires when\n        // `reportAllChanges` is true.\n        WINDOW?.setTimeout?.(report);\n      }\n    }),\n  );\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { observe } from '../observe';\n\ndeclare global {\n  interface Performance {\n    interactionCount: number;\n  }\n}\n\nlet interactionCountEstimate = 0;\nlet minKnownInteractionId = Infinity;\nlet maxKnownInteractionId = 0;\n\nconst updateEstimate = (entries: PerformanceEventTiming[]) => {\n  entries.forEach(e => {\n    if (e.interactionId) {\n      minKnownInteractionId = Math.min(minKnownInteractionId, e.interactionId);\n      maxKnownInteractionId = Math.max(maxKnownInteractionId, e.interactionId);\n\n      interactionCountEstimate = maxKnownInteractionId ? (maxKnownInteractionId - minKnownInteractionId) / 7 + 1 : 0;\n    }\n  });\n};\n\nlet po: PerformanceObserver | undefined;\n\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport const getInteractionCount = (): number => {\n  return po ? interactionCountEstimate : performance.interactionCount || 0;\n};\n\n/**\n * Feature detects native support or initializes the polyfill if needed.\n */\nexport const initInteractionCountPolyfill = (): void => {\n  if ('interactionCount' in performance || po) return;\n\n  po = observe('event', updateEstimate, {\n    type: 'event',\n    buffered: true,\n    durationThreshold: 0,\n  } as PerformanceObserverInit);\n};\n","/*\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getInteractionCount } from './polyfills/interactionCountPolyfill.js';\n\nexport interface Interaction {\n  _latency: number;\n  // While the `id` and `entries` properties are also internal and could be\n  // mangled by prefixing with an underscore, since they correspond to public\n  // symbols there is no need to mangle them as the library will compress\n  // better if we reuse the existing names.\n  id: number;\n  entries: PerformanceEventTiming[];\n}\n\n// To prevent unnecessary memory usage on pages with lots of interactions,\n// store at most 10 of the longest interactions to consider as INP candidates.\nconst MAX_INTERACTIONS_TO_CONSIDER = 10;\n\n// Used to store the interaction count after a bfcache restore, since p98\n// interaction latencies should only consider the current navigation.\nlet prevInteractionCount = 0;\n\n/**\n * Returns the interaction count since the last bfcache restore (or for the\n * full page lifecycle if there were no bfcache restores).\n */\nconst getInteractionCountForNavigation = () => {\n  return getInteractionCount() - prevInteractionCount;\n};\n\n/**\n *\n */\nexport class InteractionManager {\n  /**\n   * A list of longest interactions on the page (by latency) sorted so the\n   * longest one is first. The list is at most MAX_INTERACTIONS_TO_CONSIDER\n   * long.\n   */\n  // eslint-disable-next-line @sentry-internal/sdk/no-class-field-initializers, @typescript-eslint/explicit-member-accessibility\n  _longestInteractionList: Interaction[] = [];\n\n  /**\n   * A mapping of longest interactions by their interaction ID.\n   * This is used for faster lookup.\n   */\n  // eslint-disable-next-line @sentry-internal/sdk/no-class-field-initializers, @typescript-eslint/explicit-member-accessibility\n  _longestInteractionMap: Map<number, Interaction> = new Map();\n\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n  _onBeforeProcessingEntry?: (entry: PerformanceEventTiming) => void;\n\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n  _onAfterProcessingINPCandidate?: (interaction: Interaction) => void;\n\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility, jsdoc/require-jsdoc\n  _resetInteractions() {\n    prevInteractionCount = getInteractionCount();\n    this._longestInteractionList.length = 0;\n    this._longestInteractionMap.clear();\n  }\n\n  /**\n   * Returns the estimated p98 longest interaction based on the stored\n   * interaction candidates and the interaction count for the current page.\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n  _estimateP98LongestInteraction() {\n    const candidateInteractionIndex = Math.min(\n      this._longestInteractionList.length - 1,\n      Math.floor(getInteractionCountForNavigation() / 50),\n    );\n\n    return this._longestInteractionList[candidateInteractionIndex];\n  }\n\n  /**\n   * Takes a performance entry and adds it to the list of worst interactions\n   * if its duration is long enough to make it among the worst. If the\n   * entry is part of an existing interaction, it is merged and the latency\n   * and entries list is updated as needed.\n   */\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n  _processEntry(entry: PerformanceEventTiming) {\n    this._onBeforeProcessingEntry?.(entry);\n\n    // Skip further processing for entries that cannot be INP candidates.\n    if (!(entry.interactionId || entry.entryType === 'first-input')) return;\n\n    // The least-long of the 10 longest interactions.\n    const minLongestInteraction = this._longestInteractionList.at(-1);\n\n    let interaction = this._longestInteractionMap.get(entry.interactionId!);\n\n    // Only process the entry if it's possibly one of the ten longest,\n    // or if it's part of an existing interaction.\n    if (\n      interaction ||\n      this._longestInteractionList.length < MAX_INTERACTIONS_TO_CONSIDER ||\n      // If the above conditions are false, `minLongestInteraction` will be set.\n      entry.duration > minLongestInteraction!._latency\n    ) {\n      // If the interaction already exists, update it. Otherwise create one.\n      if (interaction) {\n        // If the new entry has a longer duration, replace the old entries,\n        // otherwise add to the array.\n        if (entry.duration > interaction._latency) {\n          interaction.entries = [entry];\n          interaction._latency = entry.duration;\n        } else if (entry.duration === interaction._latency && entry.startTime === interaction.entries[0]!.startTime) {\n          interaction.entries.push(entry);\n        }\n      } else {\n        interaction = {\n          id: entry.interactionId!,\n          entries: [entry],\n          _latency: entry.duration,\n        };\n        this._longestInteractionMap.set(interaction.id, interaction);\n        this._longestInteractionList.push(interaction);\n      }\n\n      // Sort the entries by latency (descending) and keep only the top ten.\n      this._longestInteractionList.sort((a, b) => b._latency - a._latency);\n      if (this._longestInteractionList.length > MAX_INTERACTIONS_TO_CONSIDER) {\n        const removedInteractions = this._longestInteractionList.splice(MAX_INTERACTIONS_TO_CONSIDER);\n\n        for (const interaction of removedInteractions) {\n          this._longestInteractionMap.delete(interaction.id);\n        }\n      }\n\n      // Call any post-processing on the interaction\n      this._onAfterProcessingINPCandidate?.(interaction);\n    }\n  }\n}\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../../types';\n\nexport interface OnHiddenCallback {\n  (event: Event): void;\n}\n\n// Sentry-specific change:\n// This function's logic was NOT updated to web-vitals 4.2.4 or 5.x but we continue\n// to use the web-vitals 3.5.2 versiondue to us having stricter browser support.\n// PR with context that made the changes: https://github.com/GoogleChrome/web-vitals/pull/442/files#r1530492402\n// The PR removed listening to the `pagehide` event, in favour of only listening to `visibilitychange` event.\n// This is \"more correct\" but some browsers we still support (Safari <14.4) don't fully support `visibilitychange`\n// or have known bugs w.r.t the `visibilitychange` event.\n// TODO (v11): If we decide to drop support for Safari 14.4, we can use the logic from web-vitals 4.2.4\n// In this case, we also need to update the integration tests that currently trigger the `pagehide` event to\n// simulate the page being hidden.\nexport const onHidden = (cb: OnHiddenCallback) => {\n  const onHiddenOrPageHide = (event: Event) => {\n    if (event.type === 'pagehide' || WINDOW.document?.visibilityState === 'hidden') {\n      cb(event);\n    }\n  };\n\n  if (WINDOW.document) {\n    addEventListener('visibilitychange', onHiddenOrPageHide, true);\n    // Some browsers have buggy implementations of visibilitychange,\n    // so we use pagehide in addition, just to be safe.\n    addEventListener('pagehide', onHiddenOrPageHide, true);\n  }\n};\n","/*\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../../types.js';\nimport { onHidden } from './onHidden.js';\nimport { runOnce } from './runOnce.js';\n\n/**\n * Runs the passed callback during the next idle period, or immediately\n * if the browser's visibility state is (or becomes) hidden.\n */\nexport const whenIdleOrHidden = (cb: () => void) => {\n  const rIC = WINDOW.requestIdleCallback || WINDOW.setTimeout;\n\n  // If the document is hidden, run the callback immediately, otherwise\n  // race an idle callback with the next `visibilitychange` event.\n  if (WINDOW.document?.visibilityState === 'hidden') {\n    cb();\n  } else {\n    // eslint-disable-next-line no-param-reassign\n    cb = runOnce(cb);\n    rIC(cb);\n    // sentry: we use onHidden instead of directly listening to visibilitychange\n    // because some browsers we still support (Safari <14.4) don't fully support\n    // `visibilitychange` or have known bugs w.r.t the `visibilitychange` event.\n    onHidden(cb);\n  }\n};\n","/*\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { initUnique } from './lib/initUnique';\nimport { InteractionManager } from './lib/InteractionManager';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nimport { initInteractionCountPolyfill } from './lib/polyfills/interactionCountPolyfill';\nimport { whenActivated } from './lib/whenActivated';\nimport { whenIdleOrHidden } from './lib/whenIdleOrHidden';\nimport type { INPMetric, INPReportOpts, MetricRatingThresholds } from './types';\n\n/** Thresholds for INP. See https://web.dev/articles/inp#what_is_a_good_inp_score */\nexport const INPThresholds: MetricRatingThresholds = [200, 500];\n\n// The default `durationThreshold` used across this library for observing\n// `event` entries via PerformanceObserver.\nconst DEFAULT_DURATION_THRESHOLD = 40;\n\n/**\n * Calculates the [INP](https://web.dev/articles/inp) value for the current\n * page and calls the `callback` function once the value is ready, along with\n * the `event` performance entries reported for that interaction. The reported\n * value is a `DOMHighResTimeStamp`.\n *\n * A custom `durationThreshold` configuration option can optionally be passed\n * to control what `event-timing` entries are considered for INP reporting. The\n * default threshold is `40`, which means INP scores of less than 40 will not\n * be reported. To avoid reporting no interactions in these cases, the library\n * will fall back to the input delay of the first interaction. Note that this\n * will not affect your 75th percentile INP value unless that value is also\n * less than 40 (well below the recommended\n * [good](https://web.dev/articles/inp#what_is_a_good_inp_score) threshold).\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called as soon as the value is initially\n * determined as well as any time the value changes throughout the page\n * lifespan.\n *\n * _**Important:** INP should be continually monitored for changes throughout\n * the entire lifespan of a page—including if the user returns to the page after\n * it's been hidden/backgrounded. However, since browsers often [will not fire\n * additional callbacks once the user has backgrounded a\n * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),\n * `callback` is always called when the page's visibility state changes to\n * hidden. As a result, the `callback` function might be called multiple times\n * during the same page load._\n */\nexport const onINP = (onReport: (metric: INPMetric) => void, opts: INPReportOpts = {}) => {\n  // Return if the browser doesn't support all APIs needed to measure INP.\n  if (!(globalThis.PerformanceEventTiming && 'interactionId' in PerformanceEventTiming.prototype)) {\n    return;\n  }\n\n  whenActivated(() => {\n    // TODO(philipwalton): remove once the polyfill is no longer needed.\n    initInteractionCountPolyfill();\n\n    const metric = initMetric('INP');\n    // eslint-disable-next-line prefer-const\n    let report: ReturnType<typeof bindReporter>;\n\n    const interactionManager = initUnique(opts, InteractionManager);\n\n    const handleEntries = (entries: INPMetric['entries']) => {\n      // Queue the `handleEntries()` callback in the next idle task.\n      // This is needed to increase the chances that all event entries that\n      // occurred between the user interaction and the next paint\n      // have been dispatched. Note: there is currently an experiment\n      // running in Chrome (EventTimingKeypressAndCompositionInteractionId)\n      // 123+ that if rolled out fully may make this no longer necessary.\n      whenIdleOrHidden(() => {\n        for (const entry of entries) {\n          interactionManager._processEntry(entry);\n        }\n\n        const inp = interactionManager._estimateP98LongestInteraction();\n\n        if (inp && inp._latency !== metric.value) {\n          metric.value = inp._latency;\n          metric.entries = inp.entries;\n          report();\n        }\n      });\n    };\n\n    const po = observe('event', handleEntries, {\n      // Event Timing entries have their durations rounded to the nearest 8ms,\n      // so a duration of 40ms would be any event that spans 2.5 or more frames\n      // at 60Hz. This threshold is chosen to strike a balance between usefulness\n      // and performance. Running this callback for any interaction that spans\n      // just one or two frames is likely not worth the insight that could be\n      // gained.\n      durationThreshold: opts.durationThreshold ?? DEFAULT_DURATION_THRESHOLD,\n    });\n\n    report = bindReporter(onReport, metric, INPThresholds, opts.reportAllChanges);\n\n    if (po) {\n      // Also observe entries of type `first-input`. This is useful in cases\n      // where the first interaction is less than the `durationThreshold`.\n      po.observe({ type: 'first-input', buffered: true });\n\n      // sentry: we use onHidden instead of directly listening to visibilitychange\n      // because some browsers we still support (Safari <14.4) don't fully support\n      // `visibilitychange` or have known bugs w.r.t the `visibilitychange` event.\n      onHidden(() => {\n        handleEntries(po.takeRecords() as INPMetric['entries']);\n        report(true);\n      });\n    }\n  });\n};\n","/*\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport class LCPEntryManager {\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n  _onBeforeProcessingEntry?: (entry: LargestContentfulPaint) => void;\n\n  // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility, jsdoc/require-jsdoc\n  _processEntry(entry: LargestContentfulPaint) {\n    this._onBeforeProcessingEntry?.(entry);\n  }\n}\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { initUnique } from './lib/initUnique';\nimport { LCPEntryManager } from './lib/LCPEntryManager';\nimport { observe } from './lib/observe';\nimport { runOnce } from './lib/runOnce';\nimport { whenActivated } from './lib/whenActivated';\nimport { whenIdleOrHidden } from './lib/whenIdleOrHidden';\nimport type { LCPMetric, MetricRatingThresholds, ReportOpts } from './types';\n\n/** Thresholds for LCP. See https://web.dev/articles/lcp#what_is_a_good_lcp_score */\nexport const LCPThresholds: MetricRatingThresholds = [2500, 4000];\n\n/**\n * Calculates the [LCP](https://web.dev/articles/lcp) value for the current page and\n * calls the `callback` function once the value is ready (along with the\n * relevant `largest-contentful-paint` performance entry used to determine the\n * value). The reported value is a `DOMHighResTimeStamp`.\n *\n * If the `reportAllChanges` configuration option is set to `true`, the\n * `callback` function will be called any time a new `largest-contentful-paint`\n * performance entry is dispatched, or once the final value of the metric has\n * been determined.\n */\nexport const onLCP = (onReport: (metric: LCPMetric) => void, opts: ReportOpts = {}) => {\n  whenActivated(() => {\n    const visibilityWatcher = getVisibilityWatcher();\n    const metric = initMetric('LCP');\n    let report: ReturnType<typeof bindReporter>;\n\n    const lcpEntryManager = initUnique(opts, LCPEntryManager);\n\n    const handleEntries = (entries: LCPMetric['entries']) => {\n      // If reportAllChanges is set then call this function for each entry,\n      // otherwise only consider the last one.\n      if (!opts!.reportAllChanges) {\n        // eslint-disable-next-line no-param-reassign\n        entries = entries.slice(-1);\n      }\n\n      for (const entry of entries) {\n        lcpEntryManager._processEntry(entry);\n\n        // Only report if the page wasn't hidden prior to LCP.\n        if (entry.startTime < visibilityWatcher.firstHiddenTime) {\n          // The startTime attribute returns the value of the renderTime if it is\n          // not 0, and the value of the loadTime otherwise. The activationStart\n          // reference is used because LCP should be relative to page activation\n          // rather than navigation start if the page was prerendered. But in cases\n          // where `activationStart` occurs after the LCP, this time should be\n          // clamped at 0.\n          metric.value = Math.max(entry.startTime - getActivationStart(), 0);\n          metric.entries = [entry];\n          report();\n        }\n      }\n    };\n\n    const po = observe('largest-contentful-paint', handleEntries);\n\n    if (po) {\n      report = bindReporter(onReport, metric, LCPThresholds, opts.reportAllChanges);\n\n      // Ensure this logic only runs once, since it can be triggered from\n      // any of three different event listeners below.\n      const stopListening = runOnce(() => {\n        handleEntries(po.takeRecords() as LCPMetric['entries']);\n        po.disconnect();\n        report(true);\n      });\n\n      // Stop listening after input or visibilitychange.\n      // Note: while scrolling is an input that stops LCP observation, it's\n      // unreliable since it can be programmatically generated.\n      // See: https://github.com/GoogleChrome/web-vitals/issues/75\n      for (const type of ['keydown', 'click', 'visibilitychange']) {\n        // Wrap the listener in an idle callback so it's run in a separate\n        // task to reduce potential INP impact.\n        // https://github.com/GoogleChrome/web-vitals/issues/383\n        if (WINDOW.document) {\n          addEventListener(type, () => whenIdleOrHidden(stopListening), {\n            capture: true,\n            once: true,\n          });\n        }\n      }\n    }\n  });\n};\n","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WINDOW } from '../../types';\nimport { bindReporter } from './lib/bindReporter';\nimport { getActivationStart } from './lib/getActivationStart';\nimport { getNavigationEntry } from './lib/getNavigationEntry';\nimport { initMetric } from './lib/initMetric';\nimport { whenActivated } from './lib/whenActivated';\nimport type { MetricRatingThresholds, ReportOpts, TTFBMetric } from './types';\n\n/** Thresholds for TTFB. See https://web.dev/articles/ttfb#what_is_a_good_ttfb_score */\nexport const TTFBThresholds: MetricRatingThresholds = [800, 1800];\n\n/**\n * Runs in the next task after the page is done loading and/or prerendering.\n * @param callback\n */\nconst whenReady = (callback: () => void) => {\n  if (WINDOW.document?.prerendering) {\n    whenActivated(() => whenReady(callback));\n  } else if (WINDOW.document?.readyState !== 'complete') {\n    addEventListener('load', () => whenReady(callback), true);\n  } else {\n    // Queue a task so the callback runs after `loadEventEnd`.\n    setTimeout(callback);\n  }\n};\n\n/**\n * Calculates the [TTFB](https://web.dev/articles/ttfb) value for the\n * current page and calls the `callback` function once the page has loaded,\n * along with the relevant `navigation` performance entry used to determine the\n * value. The reported value is a `DOMHighResTimeStamp`.\n *\n * Note, this function waits until after the page is loaded to call `callback`\n * in order to ensure all properties of the `navigation` entry are populated.\n * This is useful if you want to report on other metrics exposed by the\n * [Navigation Timing API](https://w3c.github.io/navigation-timing/). For\n * example, the TTFB metric starts from the page's [time\n * origin](https://www.w3.org/TR/hr-time-2/#sec-time-origin), which means it\n * includes time spent on DNS lookup, connection negotiation, network latency,\n * and server processing time.\n */\nexport const onTTFB = (onReport: (metric: TTFBMetric) => void, opts: ReportOpts = {}) => {\n  const metric = initMetric('TTFB');\n  const report = bindReporter(onReport, metric, TTFBThresholds, opts.reportAllChanges);\n\n  whenReady(() => {\n    const navigationEntry = getNavigationEntry();\n\n    if (navigationEntry) {\n      // The activationStart reference is used because TTFB should be\n      // relative to page activation rather than navigation start if the\n      // page was prerendered. But in cases where `activationStart` occurs\n      // after the first byte is received, this time should be clamped at 0.\n      metric.value = Math.max(navigationEntry.responseStart - getActivationStart(), 0);\n\n      metric.entries = [navigationEntry];\n      report(true);\n    }\n  });\n};\n","import { debug, getFunctionName } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { onCLS } from './web-vitals/getCLS';\nimport { onINP } from './web-vitals/getINP';\nimport { onLCP } from './web-vitals/getLCP';\nimport { observe } from './web-vitals/lib/observe';\nimport { onTTFB } from './web-vitals/onTTFB';\n\ntype InstrumentHandlerTypePerformanceObserver =\n  | 'longtask'\n  | 'event'\n  | 'navigation'\n  | 'paint'\n  | 'resource'\n  | 'element'\n  // fist-input is still needed for INP\n  | 'first-input';\n\ntype InstrumentHandlerTypeMetric = 'cls' | 'lcp' | 'ttfb' | 'inp';\n\n// We provide this here manually instead of relying on a global, as this is not available in non-browser environements\n// And we do not want to expose such types\ninterface PerformanceEntry {\n  readonly duration: number;\n  readonly entryType: string;\n  readonly name: string;\n  readonly startTime: number;\n  toJSON(): Record<string, unknown>;\n}\ninterface PerformanceEventTiming extends PerformanceEntry {\n  processingStart: number;\n  processingEnd: number;\n  duration: number;\n  cancelable?: boolean;\n  target?: unknown | null;\n  interactionId?: number;\n}\n\ninterface PerformanceScriptTiming extends PerformanceEntry {\n  sourceURL: string;\n  sourceFunctionName: string;\n  sourceCharPosition: number;\n  invoker: string;\n  invokerType: string;\n}\nexport interface PerformanceLongAnimationFrameTiming extends PerformanceEntry {\n  scripts: PerformanceScriptTiming[];\n}\n\ninterface Metric {\n  /**\n   * The name of the metric (in acronym form).\n   */\n  name: 'CLS' | 'FCP' | 'INP' | 'LCP' | 'TTFB';\n\n  /**\n   * The current value of the metric.\n   */\n  value: number;\n\n  /**\n   * The rating as to whether the metric value is within the \"good\",\n   * \"needs improvement\", or \"poor\" thresholds of the metric.\n   */\n  rating: 'good' | 'needs-improvement' | 'poor';\n\n  /**\n   * The delta between the current value and the last-reported value.\n   * On the first report, `delta` and `value` will always be the same.\n   */\n  delta: number;\n\n  /**\n   * A unique ID representing this particular metric instance. This ID can\n   * be used by an analytics tool to dedupe multiple values sent for the same\n   * metric instance, or to group multiple deltas together and calculate a\n   * total. It can also be used to differentiate multiple different metric\n   * instances sent from the same page, which can happen if the page is\n   * restored from the back/forward cache (in that case new metrics object\n   * get created).\n   */\n  id: string;\n\n  /**\n   * Any performance entries relevant to the metric value calculation.\n   * The array may also be empty if the metric value was not based on any\n   * entries (e.g. a CLS value of 0 given no layout shifts).\n   */\n  entries: PerformanceEntry[];\n\n  /**\n   * The type of navigation\n   *\n   * Navigation Timing API (or `undefined` if the browser doesn't\n   * support that API). For pages that are restored from the bfcache, this\n   * value will be 'back-forward-cache'.\n   */\n  navigationType: 'navigate' | 'reload' | 'back-forward' | 'back-forward-cache' | 'prerender' | 'restore';\n}\n\ntype InstrumentHandlerType = InstrumentHandlerTypeMetric | InstrumentHandlerTypePerformanceObserver;\n\ntype StopListening = undefined | void | (() => void);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype InstrumentHandlerCallback = (data: any) => void;\n\ntype CleanupHandlerCallback = () => void;\n\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\nlet _previousCls: Metric | undefined;\nlet _previousLcp: Metric | undefined;\nlet _previousTtfb: Metric | undefined;\nlet _previousInp: Metric | undefined;\n\n/**\n * Add a callback that will be triggered when a CLS metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for CLS when the cleanup callback is called.\n * This will lead to the CLS being finalized and frozen.\n */\nexport function addClsInstrumentationHandler(\n  callback: (data: { metric: Metric }) => void,\n  stopOnCallback = false,\n): CleanupHandlerCallback {\n  return addMetricObserver('cls', callback, instrumentCls, _previousCls, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a LCP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n *\n * Pass `stopOnCallback = true` to stop listening for LCP when the cleanup callback is called.\n * This will lead to the LCP being finalized and frozen.\n */\nexport function addLcpInstrumentationHandler(\n  callback: (data: { metric: Metric }) => void,\n  stopOnCallback = false,\n): CleanupHandlerCallback {\n  return addMetricObserver('lcp', callback, instrumentLcp, _previousLcp, stopOnCallback);\n}\n\n/**\n * Add a callback that will be triggered when a TTFD metric is available.\n */\nexport function addTtfbInstrumentationHandler(callback: (data: { metric: Metric }) => void): CleanupHandlerCallback {\n  return addMetricObserver('ttfb', callback, instrumentTtfb, _previousTtfb);\n}\n\nexport type InstrumentationHandlerCallback = (data: {\n  metric: Omit<Metric, 'entries'> & {\n    entries: PerformanceEventTiming[];\n  };\n}) => void;\n\n/**\n * Add a callback that will be triggered when a INP metric is available.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addInpInstrumentationHandler(callback: InstrumentationHandlerCallback): CleanupHandlerCallback {\n  return addMetricObserver('inp', callback, instrumentInp, _previousInp);\n}\n\nexport function addPerformanceInstrumentationHandler(\n  type: 'event',\n  callback: (data: { entries: ((PerformanceEntry & { target?: unknown | null }) | PerformanceEventTiming)[] }) => void,\n): CleanupHandlerCallback;\nexport function addPerformanceInstrumentationHandler(\n  type: InstrumentHandlerTypePerformanceObserver,\n  callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback;\n\n/**\n * Add a callback that will be triggered when a performance observer is triggered,\n * and receives the entries of the observer.\n * Returns a cleanup callback which can be called to remove the instrumentation handler.\n */\nexport function addPerformanceInstrumentationHandler(\n  type: InstrumentHandlerTypePerformanceObserver,\n  callback: (data: { entries: PerformanceEntry[] }) => void,\n): CleanupHandlerCallback {\n  addHandler(type, callback);\n\n  if (!instrumented[type]) {\n    instrumentPerformanceObserver(type);\n    instrumented[type] = true;\n  }\n\n  return getCleanupCallback(type, callback);\n}\n\n/** Trigger all handlers of a given type. */\nfunction triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n  const typeHandlers = handlers[type];\n\n  if (!typeHandlers?.length) {\n    return;\n  }\n\n  for (const handler of typeHandlers) {\n    try {\n      handler(data);\n    } catch (e) {\n      DEBUG_BUILD &&\n        debug.error(\n          `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n          e,\n        );\n    }\n  }\n}\n\nfunction instrumentCls(): StopListening {\n  return onCLS(\n    metric => {\n      triggerHandlers('cls', {\n        metric,\n      });\n      _previousCls = metric;\n    },\n    // We want the callback to be called whenever the CLS value updates.\n    // By default, the callback is only called when the tab goes to the background.\n    { reportAllChanges: true },\n  );\n}\n\nfunction instrumentLcp(): StopListening {\n  return onLCP(\n    metric => {\n      triggerHandlers('lcp', {\n        metric,\n      });\n      _previousLcp = metric;\n    },\n    // We want the callback to be called whenever the LCP value updates.\n    // By default, the callback is only called when the tab goes to the background.\n    { reportAllChanges: true },\n  );\n}\n\nfunction instrumentTtfb(): StopListening {\n  return onTTFB(metric => {\n    triggerHandlers('ttfb', {\n      metric,\n    });\n    _previousTtfb = metric;\n  });\n}\n\nfunction instrumentInp(): void {\n  return onINP(metric => {\n    triggerHandlers('inp', {\n      metric,\n    });\n    _previousInp = metric;\n  });\n}\n\nfunction addMetricObserver(\n  type: InstrumentHandlerTypeMetric,\n  callback: InstrumentHandlerCallback,\n  instrumentFn: () => StopListening,\n  previousValue: Metric | undefined,\n  stopOnCallback = false,\n): CleanupHandlerCallback {\n  addHandler(type, callback);\n\n  let stopListening: StopListening | undefined;\n\n  if (!instrumented[type]) {\n    stopListening = instrumentFn();\n    instrumented[type] = true;\n  }\n\n  if (previousValue) {\n    callback({ metric: previousValue });\n  }\n\n  return getCleanupCallback(type, callback, stopOnCallback ? stopListening : undefined);\n}\n\nfunction instrumentPerformanceObserver(type: InstrumentHandlerTypePerformanceObserver): void {\n  const options: PerformanceObserverInit = {};\n\n  // Special per-type options we want to use\n  if (type === 'event') {\n    options.durationThreshold = 0;\n  }\n\n  observe(\n    type,\n    entries => {\n      triggerHandlers(type, { entries });\n    },\n    options,\n  );\n}\n\nfunction addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n  handlers[type] = handlers[type] || [];\n  (handlers[type] as InstrumentHandlerCallback[]).push(handler);\n}\n\n// Get a callback which can be called to remove the instrumentation handler\nfunction getCleanupCallback(\n  type: InstrumentHandlerType,\n  callback: InstrumentHandlerCallback,\n  stopListening: StopListening,\n): CleanupHandlerCallback {\n  return () => {\n    if (stopListening) {\n      stopListening();\n    }\n\n    const typeHandlers = handlers[type];\n\n    if (!typeHandlers) {\n      return;\n    }\n\n    const index = typeHandlers.indexOf(callback);\n    if (index !== -1) {\n      typeHandlers.splice(index, 1);\n    }\n  };\n}\n\n/**\n * Check if a PerformanceEntry is a PerformanceEventTiming by checking for the `duration` property.\n */\nexport function isPerformanceEventTiming(entry: PerformanceEntry): entry is PerformanceEventTiming {\n  return 'duration' in entry;\n}\n","import type {\n  Client,\n  Integration,\n  SentrySpan,\n  Span,\n  SpanAttributes,\n  SpanTimeInput,\n  StartSpanOptions,\n} from '@sentry/core';\nimport { getClient, getCurrentScope, spanToJSON, startInactiveSpan, withActiveSpan } from '@sentry/core';\nimport { WINDOW } from '../types';\nimport { onHidden } from './web-vitals/lib/onHidden';\n\nexport type WebVitalReportEvent = 'pagehide' | 'navigation';\n\n/**\n * Checks if a given value is a valid measurement value.\n */\nexport function isMeasurementValue(value: unknown): value is number {\n  return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nexport function startAndEndSpan(\n  parentSpan: Span,\n  startTimeInSeconds: number,\n  endTime: SpanTimeInput,\n  { ...ctx }: StartSpanOptions,\n): Span | undefined {\n  const parentStartTime = spanToJSON(parentSpan).start_timestamp;\n  if (parentStartTime && parentStartTime > startTimeInSeconds) {\n    // We can only do this for SentrySpans...\n    if (typeof (parentSpan as Partial<SentrySpan>).updateStartTime === 'function') {\n      (parentSpan as SentrySpan).updateStartTime(startTimeInSeconds);\n    }\n  }\n\n  // The return value only exists for tests\n  return withActiveSpan(parentSpan, () => {\n    const span = startInactiveSpan({\n      startTime: startTimeInSeconds,\n      ...ctx,\n    });\n\n    if (span) {\n      span.end(endTime);\n    }\n\n    return span;\n  });\n}\n\ninterface StandaloneWebVitalSpanOptions {\n  name: string;\n  transaction?: string;\n  attributes: SpanAttributes;\n  startTime: number;\n}\n\n/**\n * Starts an inactive, standalone span used to send web vital values to Sentry.\n * DO NOT use this for arbitrary spans, as these spans require special handling\n * during ingestion to extract metrics.\n *\n * This function adds a bunch of attributes and data to the span that's shared\n * by all web vital standalone spans. However, you need to take care of adding\n * the actual web vital value as an event to the span. Also, you need to assign\n * a transaction name and some other values that are specific to the web vital.\n *\n * Ultimately, you also need to take care of ending the span to send it off.\n *\n * @param options\n *\n * @returns an inactive, standalone and NOT YET ended span\n */\nexport function startStandaloneWebVitalSpan(options: StandaloneWebVitalSpanOptions): Span | undefined {\n  const client = getClient();\n  if (!client) {\n    return;\n  }\n\n  const { name, transaction, attributes: passedAttributes, startTime } = options;\n\n  const { release, environment, sendDefaultPii } = client.getOptions();\n  // We need to get the replay, user, and activeTransaction from the current scope\n  // so that we can associate replay id, profile id, and a user display to the span\n  const replay = client.getIntegrationByName<Integration & { getReplayId: () => string }>('Replay');\n  const replayId = replay?.getReplayId();\n\n  const scope = getCurrentScope();\n\n  const user = scope.getUser();\n  const userDisplay = user !== undefined ? user.email || user.id || user.ip_address : undefined;\n\n  let profileId: string | undefined;\n  try {\n    // @ts-expect-error skip optional chaining to save bundle size with try catch\n    profileId = scope.getScopeData().contexts.profile.profile_id;\n  } catch {\n    // do nothing\n  }\n\n  const attributes: SpanAttributes = {\n    release,\n    environment,\n\n    user: userDisplay || undefined,\n    profile_id: profileId || undefined,\n    replay_id: replayId || undefined,\n\n    transaction,\n\n    // Web vital score calculation relies on the user agent to account for different\n    // browsers setting different thresholds for what is considered a good/meh/bad value.\n    // For example: Chrome vs. Chrome Mobile\n    'user_agent.original': WINDOW.navigator?.userAgent,\n\n    // This tells Sentry to infer the IP address from the request\n    'client.address': sendDefaultPii ? '{{auto}}' : undefined,\n\n    ...passedAttributes,\n  };\n\n  return startInactiveSpan({\n    name,\n    attributes,\n    startTime,\n    experimental: {\n      standalone: true,\n    },\n  });\n}\n\n/** Get the browser performance API. */\nexport function getBrowserPerformanceAPI(): Performance | undefined {\n  // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n  return WINDOW.addEventListener && WINDOW.performance;\n}\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nexport function msToSec(time: number): number {\n  return time / 1000;\n}\n\n/**\n * Converts ALPN protocol ids to name and version.\n *\n * (https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids)\n * @param nextHopProtocol PerformanceResourceTiming.nextHopProtocol\n */\nexport function extractNetworkProtocol(nextHopProtocol: string): { name: string; version: string } {\n  let name = 'unknown';\n  let version = 'unknown';\n  let _name = '';\n  for (const char of nextHopProtocol) {\n    // http/1.1 etc.\n    if (char === '/') {\n      [name, version] = nextHopProtocol.split('/') as [string, string];\n      break;\n    }\n    // h2, h3 etc.\n    if (!isNaN(Number(char))) {\n      name = _name === 'h' ? 'http' : _name;\n      version = nextHopProtocol.split(_name)[1] as string;\n      break;\n    }\n    _name += char;\n  }\n  if (_name === nextHopProtocol) {\n    // webrtc, ftp, etc.\n    name = _name;\n  }\n  return { name, version };\n}\n\n/**\n * Generic support check for web vitals\n */\nexport function supportsWebVital(entryType: 'layout-shift' | 'largest-contentful-paint'): boolean {\n  try {\n    return PerformanceObserver.supportedEntryTypes.includes(entryType);\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Listens for events on which we want to collect a previously accumulated web vital value.\n * Currently, this includes:\n *\n * - pagehide (i.e. user minimizes browser window, hides tab, etc)\n * - soft navigation (we only care about the vital of the initially loaded route)\n *\n * As a \"side-effect\", this function will also collect the span id of the pageload span.\n *\n * @param collectorCallback the callback to be called when the first of these events is triggered. Parameters:\n * - event: the event that triggered the reporting of the web vital value.\n * - pageloadSpanId: the span id of the pageload span. This is used to link the web vital span to the pageload span.\n */\nexport function listenForWebVitalReportEvents(\n  client: Client,\n  collectorCallback: (event: WebVitalReportEvent, pageloadSpanId: string) => void,\n) {\n  let pageloadSpanId: string | undefined;\n\n  let collected = false;\n  function _runCollectorCallbackOnce(event: WebVitalReportEvent) {\n    if (!collected && pageloadSpanId) {\n      collectorCallback(event, pageloadSpanId);\n    }\n    collected = true;\n  }\n\n  onHidden(() => {\n    _runCollectorCallbackOnce('pagehide');\n  });\n\n  const unsubscribeStartNavigation = client.on('beforeStartNavigationSpan', (_, options) => {\n    // we only want to collect LCP if we actually navigate. Redirects should be ignored.\n    if (!options?.isRedirect) {\n      _runCollectorCallbackOnce('navigation');\n      safeUnsubscribe(unsubscribeStartNavigation, unsubscribeAfterStartPageLoadSpan);\n    }\n  });\n\n  const unsubscribeAfterStartPageLoadSpan = client.on('afterStartPageLoadSpan', span => {\n    pageloadSpanId = span.spanContext().spanId;\n    safeUnsubscribe(unsubscribeAfterStartPageLoadSpan);\n  });\n}\n\n/**\n * Invoke a list of unsubscribers in a safe way, by deferring the invocation to the next tick.\n * This is necessary because unsubscribing in sync can lead to other callbacks no longer being invoked\n * due to in-place array mutation of the subscribers array on the client.\n */\nfunction safeUnsubscribe(...unsubscribers: (() => void | undefined)[]): void {\n  unsubscribers.forEach(u => u && setTimeout(u, 0));\n}\n","/* eslint-disable max-lines */\nimport type { Client, Measurements, Span, SpanAttributes, SpanAttributeValue, StartSpanOptions } from '@sentry/core';\nimport {\n  browserPerformanceTimeOrigin,\n  getActiveSpan,\n  getComponentName,\n  htmlTreeAsString,\n  isPrimitive,\n  parseUrl,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  setMeasurement,\n  spanToJSON,\n  stringMatchesSomePattern,\n} from '@sentry/core';\nimport { WINDOW } from '../types';\nimport { trackClsAsStandaloneSpan } from './cls';\nimport {\n  type PerformanceLongAnimationFrameTiming,\n  addClsInstrumentationHandler,\n  addLcpInstrumentationHandler,\n  addPerformanceInstrumentationHandler,\n  addTtfbInstrumentationHandler,\n} from './instrument';\nimport { trackLcpAsStandaloneSpan } from './lcp';\nimport {\n  extractNetworkProtocol,\n  getBrowserPerformanceAPI,\n  isMeasurementValue,\n  msToSec,\n  startAndEndSpan,\n} from './utils';\nimport { getActivationStart } from './web-vitals/lib/getActivationStart';\nimport { getNavigationEntry } from './web-vitals/lib/getNavigationEntry';\nimport { getVisibilityWatcher } from './web-vitals/lib/getVisibilityWatcher';\n\ninterface NavigatorNetworkInformation {\n  readonly connection?: NetworkInformation;\n}\n\n// http://wicg.github.io/netinfo/#connection-types\ntype ConnectionType = 'bluetooth' | 'cellular' | 'ethernet' | 'mixed' | 'none' | 'other' | 'unknown' | 'wifi' | 'wimax';\n\n// http://wicg.github.io/netinfo/#effectiveconnectiontype-enum\ntype EffectiveConnectionType = '2g' | '3g' | '4g' | 'slow-2g';\n\n// http://wicg.github.io/netinfo/#dom-megabit\ntype Megabit = number;\n// http://wicg.github.io/netinfo/#dom-millisecond\ntype Millisecond = number;\n\n// http://wicg.github.io/netinfo/#networkinformation-interface\ninterface NetworkInformation extends EventTarget {\n  // http://wicg.github.io/netinfo/#type-attribute\n  readonly type?: ConnectionType;\n  // http://wicg.github.io/netinfo/#effectivetype-attribute\n  readonly effectiveType?: EffectiveConnectionType;\n  // http://wicg.github.io/netinfo/#downlinkmax-attribute\n  readonly downlinkMax?: Megabit;\n  // http://wicg.github.io/netinfo/#downlink-attribute\n  readonly downlink?: Megabit;\n  // http://wicg.github.io/netinfo/#rtt-attribute\n  readonly rtt?: Millisecond;\n  // http://wicg.github.io/netinfo/#savedata-attribute\n  readonly saveData?: boolean;\n  // http://wicg.github.io/netinfo/#handling-changes-to-the-underlying-connection\n  onchange?: EventListener;\n}\n\n// https://w3c.github.io/device-memory/#sec-device-memory-js-api\ninterface NavigatorDeviceMemory {\n  readonly deviceMemory?: number;\n}\n\nconst MAX_INT_AS_BYTES = 2147483647;\n\nlet _performanceCursor: number = 0;\n\nlet _measurements: Measurements = {};\nlet _lcpEntry: LargestContentfulPaint | undefined;\nlet _clsEntry: LayoutShift | undefined;\n\ninterface StartTrackingWebVitalsOptions {\n  recordClsStandaloneSpans: boolean;\n  recordLcpStandaloneSpans: boolean;\n  client: Client;\n}\n\n/**\n * Start tracking web vitals.\n * The callback returned by this function can be used to stop tracking & ensure all measurements are final & captured.\n *\n * @returns A function that forces web vitals collection\n */\nexport function startTrackingWebVitals({\n  recordClsStandaloneSpans,\n  recordLcpStandaloneSpans,\n  client,\n}: StartTrackingWebVitalsOptions): () => void {\n  const performance = getBrowserPerformanceAPI();\n  if (performance && browserPerformanceTimeOrigin()) {\n    // @ts-expect-error we want to make sure all of these are available, even if TS is sure they are\n    if (performance.mark) {\n      WINDOW.performance.mark('sentry-tracing-init');\n    }\n    const lcpCleanupCallback = recordLcpStandaloneSpans ? trackLcpAsStandaloneSpan(client) : _trackLCP();\n    const ttfbCleanupCallback = _trackTtfb();\n    const clsCleanupCallback = recordClsStandaloneSpans ? trackClsAsStandaloneSpan(client) : _trackCLS();\n\n    return (): void => {\n      lcpCleanupCallback?.();\n      ttfbCleanupCallback();\n      clsCleanupCallback?.();\n    };\n  }\n\n  return () => undefined;\n}\n\n/**\n * Start tracking long tasks.\n */\nexport function startTrackingLongTasks(): void {\n  addPerformanceInstrumentationHandler('longtask', ({ entries }) => {\n    const parent = getActiveSpan();\n    if (!parent) {\n      return;\n    }\n\n    const { op: parentOp, start_timestamp: parentStartTimestamp } = spanToJSON(parent);\n\n    for (const entry of entries) {\n      const startTime = msToSec((browserPerformanceTimeOrigin() as number) + entry.startTime);\n      const duration = msToSec(entry.duration);\n\n      if (parentOp === 'navigation' && parentStartTimestamp && startTime < parentStartTimestamp) {\n        // Skip adding a span if the long task started before the navigation started.\n        // `startAndEndSpan` will otherwise adjust the parent's start time to the span's start\n        // time, potentially skewing the duration of the actual navigation as reported via our\n        // routing instrumentations\n        continue;\n      }\n\n      startAndEndSpan(parent, startTime, startTime + duration, {\n        name: 'Main UI thread blocked',\n        op: 'ui.long-task',\n        attributes: {\n          [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n        },\n      });\n    }\n  });\n}\n\n/**\n * Start tracking long animation frames.\n */\nexport function startTrackingLongAnimationFrames(): void {\n  // NOTE: the current web-vitals version (3.5.2) does not support long-animation-frame, so\n  // we directly observe `long-animation-frame` events instead of through the web-vitals\n  // `observe` helper function.\n  const observer = new PerformanceObserver(list => {\n    const parent = getActiveSpan();\n    if (!parent) {\n      return;\n    }\n    for (const entry of list.getEntries() as PerformanceLongAnimationFrameTiming[]) {\n      if (!entry.scripts[0]) {\n        continue;\n      }\n\n      const startTime = msToSec((browserPerformanceTimeOrigin() as number) + entry.startTime);\n\n      const { start_timestamp: parentStartTimestamp, op: parentOp } = spanToJSON(parent);\n\n      if (parentOp === 'navigation' && parentStartTimestamp && startTime < parentStartTimestamp) {\n        // Skip adding the span if the long animation frame started before the navigation started.\n        // `startAndEndSpan` will otherwise adjust the parent's start time to the span's start\n        // time, potentially skewing the duration of the actual navigation as reported via our\n        // routing instrumentations\n        continue;\n      }\n      const duration = msToSec(entry.duration);\n\n      const attributes: SpanAttributes = {\n        [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n      };\n\n      const initialScript = entry.scripts[0];\n      const { invoker, invokerType, sourceURL, sourceFunctionName, sourceCharPosition } = initialScript;\n      attributes['browser.script.invoker'] = invoker;\n      attributes['browser.script.invoker_type'] = invokerType;\n      if (sourceURL) {\n        attributes['code.filepath'] = sourceURL;\n      }\n      if (sourceFunctionName) {\n        attributes['code.function'] = sourceFunctionName;\n      }\n      if (sourceCharPosition !== -1) {\n        attributes['browser.script.source_char_position'] = sourceCharPosition;\n      }\n\n      startAndEndSpan(parent, startTime, startTime + duration, {\n        name: 'Main UI thread blocked',\n        op: 'ui.long-animation-frame',\n        attributes,\n      });\n    }\n  });\n\n  observer.observe({ type: 'long-animation-frame', buffered: true });\n}\n\n/**\n * Start tracking interaction events.\n */\nexport function startTrackingInteractions(): void {\n  addPerformanceInstrumentationHandler('event', ({ entries }) => {\n    const parent = getActiveSpan();\n    if (!parent) {\n      return;\n    }\n    for (const entry of entries) {\n      if (entry.name === 'click') {\n        const startTime = msToSec((browserPerformanceTimeOrigin() as number) + entry.startTime);\n        const duration = msToSec(entry.duration);\n\n        const spanOptions: StartSpanOptions & Required<Pick<StartSpanOptions, 'attributes'>> = {\n          name: htmlTreeAsString(entry.target),\n          op: `ui.interaction.${entry.name}`,\n          startTime: startTime,\n          attributes: {\n            [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n          },\n        };\n\n        const componentName = getComponentName(entry.target);\n        if (componentName) {\n          spanOptions.attributes['ui.component_name'] = componentName;\n        }\n\n        startAndEndSpan(parent, startTime, startTime + duration, spanOptions);\n      }\n    }\n  });\n}\n\nexport { registerInpInteractionListener, startTrackingINP } from './inp';\n\n/**\n * Starts tracking the Cumulative Layout Shift on the current page and collects the value and last entry\n * to the `_measurements` object which ultimately is applied to the pageload span's measurements.\n */\nfunction _trackCLS(): () => void {\n  return addClsInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1] as LayoutShift | undefined;\n    if (!entry) {\n      return;\n    }\n    _measurements['cls'] = { value: metric.value, unit: '' };\n    _clsEntry = entry;\n  }, true);\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP(): () => void {\n  return addLcpInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1];\n    if (!entry) {\n      return;\n    }\n\n    _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n    _lcpEntry = entry as LargestContentfulPaint;\n  }, true);\n}\n\nfunction _trackTtfb(): () => void {\n  return addTtfbInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1];\n    if (!entry) {\n      return;\n    }\n\n    _measurements['ttfb'] = { value: metric.value, unit: 'millisecond' };\n  });\n}\n\ninterface AddPerformanceEntriesOptions {\n  /**\n   * Flag to determine if CLS should be recorded as a measurement on the pageload span or\n   * sent as a standalone span instead.\n   * Sending it as a standalone span will yield more accurate LCP values.\n   *\n   * Default: `false` for backwards compatibility.\n   */\n  recordClsOnPageloadSpan: boolean;\n\n  /**\n   * Flag to determine if LCP should be recorded as a measurement on the pageload span or\n   * sent as a standalone span instead.\n   * Sending it as a standalone span will yield more accurate LCP values.\n   *\n   * Default: `false` for backwards compatibility.\n   */\n  recordLcpOnPageloadSpan: boolean;\n\n  /**\n   * Resource spans with `op`s matching strings in the array will not be emitted.\n   *\n   * Default: []\n   */\n  ignoreResourceSpans: Array<'resouce.script' | 'resource.css' | 'resource.img' | 'resource.other' | string>;\n\n  /**\n   * Performance spans created from browser Performance APIs,\n   * `performance.mark(...)` nand `performance.measure(...)`\n   * with `name`s matching strings in the array will not be emitted.\n   *\n   * Default: []\n   */\n  ignorePerformanceApiSpans: Array<string | RegExp>;\n}\n\n/** Add performance related spans to a transaction */\nexport function addPerformanceEntries(span: Span, options: AddPerformanceEntriesOptions): void {\n  const performance = getBrowserPerformanceAPI();\n  const origin = browserPerformanceTimeOrigin();\n  if (!performance?.getEntries || !origin) {\n    // Gatekeeper if performance API not available\n    return;\n  }\n\n  const timeOrigin = msToSec(origin);\n\n  const performanceEntries = performance.getEntries();\n\n  const { op, start_timestamp: transactionStartTime } = spanToJSON(span);\n\n  performanceEntries.slice(_performanceCursor).forEach(entry => {\n    const startTime = msToSec(entry.startTime);\n    const duration = msToSec(\n      // Inexplicably, Chrome sometimes emits a negative duration. We need to work around this.\n      // There is a SO post attempting to explain this, but it leaves one with open questions: https://stackoverflow.com/questions/23191918/peformance-getentries-and-negative-duration-display\n      // The way we clamp the value is probably not accurate, since we have observed this happen for things that may take a while to load, like for example the replay worker.\n      // TODO: Investigate why this happens and how to properly mitigate. For now, this is a workaround to prevent transactions being dropped due to negative duration spans.\n      Math.max(0, entry.duration),\n    );\n\n    if (op === 'navigation' && transactionStartTime && timeOrigin + startTime < transactionStartTime) {\n      return;\n    }\n\n    switch (entry.entryType) {\n      case 'navigation': {\n        _addNavigationSpans(span, entry as PerformanceNavigationTiming, timeOrigin);\n        break;\n      }\n      case 'mark':\n      case 'paint':\n      case 'measure': {\n        _addMeasureSpans(span, entry, startTime, duration, timeOrigin, options.ignorePerformanceApiSpans);\n\n        // capture web vitals\n        const firstHidden = getVisibilityWatcher();\n        // Only report if the page wasn't hidden prior to the web vital.\n        const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n        if (entry.name === 'first-paint' && shouldRecord) {\n          _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n        }\n        if (entry.name === 'first-contentful-paint' && shouldRecord) {\n          _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n        }\n        break;\n      }\n      case 'resource': {\n        _addResourceSpans(\n          span,\n          entry as PerformanceResourceTiming,\n          entry.name,\n          startTime,\n          duration,\n          timeOrigin,\n          options.ignoreResourceSpans,\n        );\n        break;\n      }\n      // Ignore other entry types.\n    }\n  });\n\n  _performanceCursor = Math.max(performanceEntries.length - 1, 0);\n\n  _trackNavigator(span);\n\n  // Measurements are only available for pageload transactions\n  if (op === 'pageload') {\n    _addTtfbRequestTimeToMeasurements(_measurements);\n\n    // If CLS standalone spans are enabled, don't record CLS as a measurement\n    if (!options.recordClsOnPageloadSpan) {\n      delete _measurements.cls;\n    }\n\n    // If LCP standalone spans are enabled, don't record LCP as a measurement\n    if (!options.recordLcpOnPageloadSpan) {\n      delete _measurements.lcp;\n    }\n\n    Object.entries(_measurements).forEach(([measurementName, measurement]) => {\n      setMeasurement(measurementName, measurement.value, measurement.unit);\n    });\n\n    // Set timeOrigin which denotes the timestamp which to base the LCP/FCP/FP/TTFB measurements on\n    span.setAttribute('performance.timeOrigin', timeOrigin);\n\n    // In prerendering scenarios, where a page might be prefetched and pre-rendered before the user clicks the link,\n    // the navigation starts earlier than when the user clicks it. Web Vitals should always be based on the\n    // user-perceived time, so they are not reported from the actual start of the navigation, but rather from the\n    // time where the user actively started the navigation, for example by clicking a link.\n    // This is user action is called \"activation\" and the time between navigation and activation is stored in\n    // the `activationStart` attribute of the \"navigation\" PerformanceEntry.\n    span.setAttribute('performance.activationStart', getActivationStart());\n\n    _setWebVitalAttributes(span, options);\n  }\n\n  _lcpEntry = undefined;\n  _clsEntry = undefined;\n  _measurements = {};\n}\n\n/**\n * Create measure related spans.\n * Exported only for tests.\n */\nexport function _addMeasureSpans(\n  span: Span,\n  entry: PerformanceEntry,\n  startTime: number,\n  duration: number,\n  timeOrigin: number,\n  ignorePerformanceApiSpans: AddPerformanceEntriesOptions['ignorePerformanceApiSpans'],\n): void {\n  if (\n    ['mark', 'measure'].includes(entry.entryType) &&\n    stringMatchesSomePattern(entry.name, ignorePerformanceApiSpans)\n  ) {\n    return;\n  }\n\n  const navEntry = getNavigationEntry(false);\n  const requestTime = msToSec(navEntry ? navEntry.requestStart : 0);\n  // Because performance.measure accepts arbitrary timestamps it can produce\n  // spans that happen before the browser even makes a request for the page.\n  //\n  // An example of this is the automatically generated Next.js-before-hydration\n  // spans created by the Next.js framework.\n  //\n  // To prevent this we will pin the start timestamp to the request start time\n  // This does make duration inaccurate, so if this does happen, we will add\n  // an attribute to the span\n  const measureStartTimestamp = timeOrigin + Math.max(startTime, requestTime);\n  const startTimeStamp = timeOrigin + startTime;\n  const measureEndTimestamp = startTimeStamp + duration;\n\n  const attributes: SpanAttributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.resource.browser.metrics',\n  };\n\n  if (measureStartTimestamp !== startTimeStamp) {\n    attributes['sentry.browser.measure_happened_before_request'] = true;\n    attributes['sentry.browser.measure_start_time'] = measureStartTimestamp;\n  }\n\n  _addDetailToSpanAttributes(attributes, entry as PerformanceMeasure);\n\n  // Measurements from third parties can be off, which would create invalid spans, dropping transactions in the process.\n  if (measureStartTimestamp <= measureEndTimestamp) {\n    startAndEndSpan(span, measureStartTimestamp, measureEndTimestamp, {\n      name: entry.name as string,\n      op: entry.entryType as string,\n      attributes,\n    });\n  }\n}\n\nfunction _addDetailToSpanAttributes(attributes: SpanAttributes, performanceMeasure: PerformanceMeasure): void {\n  try {\n    // Accessing detail might throw in some browsers (e.g., Firefox) due to security restrictions\n    const detail = performanceMeasure.detail;\n\n    if (!detail) {\n      return;\n    }\n\n    // Process detail based on its type\n    if (typeof detail === 'object') {\n      // Handle object details\n      for (const [key, value] of Object.entries(detail)) {\n        if (value && isPrimitive(value)) {\n          attributes[`sentry.browser.measure.detail.${key}`] = value as SpanAttributeValue;\n        } else if (value !== undefined) {\n          try {\n            // This is user defined so we can't guarantee it's serializable\n            attributes[`sentry.browser.measure.detail.${key}`] = JSON.stringify(value);\n          } catch {\n            // Skip values that can't be stringified\n          }\n        }\n      }\n      return;\n    }\n\n    if (isPrimitive(detail)) {\n      // Handle primitive details\n      attributes['sentry.browser.measure.detail'] = detail as SpanAttributeValue;\n      return;\n    }\n\n    try {\n      attributes['sentry.browser.measure.detail'] = JSON.stringify(detail);\n    } catch {\n      // Skip if stringification fails\n    }\n  } catch {\n    // Silently ignore any errors when accessing detail\n    // This handles the Firefox \"Permission denied to access object\" error\n  }\n}\n\n/**\n * Instrument navigation entries\n * exported only for tests\n */\nexport function _addNavigationSpans(span: Span, entry: PerformanceNavigationTiming, timeOrigin: number): void {\n  (['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'] as const).forEach(event => {\n    _addPerformanceNavigationTiming(span, entry, event, timeOrigin);\n  });\n  _addPerformanceNavigationTiming(span, entry, 'secureConnection', timeOrigin, 'TLS/SSL');\n  _addPerformanceNavigationTiming(span, entry, 'fetch', timeOrigin, 'cache');\n  _addPerformanceNavigationTiming(span, entry, 'domainLookup', timeOrigin, 'DNS');\n\n  _addRequest(span, entry, timeOrigin);\n}\n\ntype StartEventName =\n  | 'secureConnection'\n  | 'fetch'\n  | 'domainLookup'\n  | 'unloadEvent'\n  | 'redirect'\n  | 'connect'\n  | 'domContentLoadedEvent'\n  | 'loadEvent';\n\ntype EndEventName =\n  | 'connectEnd'\n  | 'domainLookupStart'\n  | 'domainLookupEnd'\n  | 'unloadEventEnd'\n  | 'redirectEnd'\n  | 'connectEnd'\n  | 'domContentLoadedEventEnd'\n  | 'loadEventEnd';\n\n/** Create performance navigation related spans */\nfunction _addPerformanceNavigationTiming(\n  span: Span,\n  entry: PerformanceNavigationTiming,\n  event: StartEventName,\n  timeOrigin: number,\n  name: string = event,\n): void {\n  const eventEnd = _getEndPropertyNameForNavigationTiming(event) satisfies keyof PerformanceNavigationTiming;\n  const end = entry[eventEnd];\n  const start = entry[`${event}Start`];\n  if (!start || !end) {\n    return;\n  }\n  startAndEndSpan(span, timeOrigin + msToSec(start), timeOrigin + msToSec(end), {\n    op: `browser.${name}`,\n    name: entry.name,\n    attributes: {\n      [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n      ...(event === 'redirect' && entry.redirectCount != null ? { 'http.redirect_count': entry.redirectCount } : {}),\n    },\n  });\n}\n\nfunction _getEndPropertyNameForNavigationTiming(event: StartEventName): EndEventName {\n  if (event === 'secureConnection') {\n    return 'connectEnd';\n  }\n  if (event === 'fetch') {\n    return 'domainLookupStart';\n  }\n  return `${event}End`;\n}\n\n/** Create request and response related spans */\nfunction _addRequest(span: Span, entry: PerformanceNavigationTiming, timeOrigin: number): void {\n  const requestStartTimestamp = timeOrigin + msToSec(entry.requestStart as number);\n  const responseEndTimestamp = timeOrigin + msToSec(entry.responseEnd as number);\n  const responseStartTimestamp = timeOrigin + msToSec(entry.responseStart as number);\n  if (entry.responseEnd) {\n    // It is possible that we are collecting these metrics when the page hasn't finished loading yet, for example when the HTML slowly streams in.\n    // In this case, ie. when the document request hasn't finished yet, `entry.responseEnd` will be 0.\n    // In order not to produce faulty spans, where the end timestamp is before the start timestamp, we will only collect\n    // these spans when the responseEnd value is available. The backend (Relay) would drop the entire span if it contained faulty spans.\n    startAndEndSpan(span, requestStartTimestamp, responseEndTimestamp, {\n      op: 'browser.request',\n      name: entry.name,\n      attributes: {\n        [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n      },\n    });\n\n    startAndEndSpan(span, responseStartTimestamp, responseEndTimestamp, {\n      op: 'browser.response',\n      name: entry.name,\n      attributes: {\n        [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics',\n      },\n    });\n  }\n}\n\n/**\n * Create resource-related spans.\n * Exported only for tests.\n */\nexport function _addResourceSpans(\n  span: Span,\n  entry: PerformanceResourceTiming,\n  resourceUrl: string,\n  startTime: number,\n  duration: number,\n  timeOrigin: number,\n  ignoreResourceSpans?: Array<string>,\n): void {\n  // we already instrument based on fetch and xhr, so we don't need to\n  // duplicate spans here.\n  if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n    return;\n  }\n\n  const op = entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource.other';\n  if (ignoreResourceSpans?.includes(op)) {\n    return;\n  }\n\n  const parsedUrl = parseUrl(resourceUrl);\n\n  const attributes: SpanAttributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.resource.browser.metrics',\n  };\n  setResourceEntrySizeData(attributes, entry, 'transferSize', 'http.response_transfer_size');\n  setResourceEntrySizeData(attributes, entry, 'encodedBodySize', 'http.response_content_length');\n  setResourceEntrySizeData(attributes, entry, 'decodedBodySize', 'http.decoded_response_content_length');\n\n  // `deliveryType` is experimental and does not exist everywhere\n  const deliveryType = (entry as { deliveryType?: 'cache' | 'navigational-prefetch' | '' }).deliveryType;\n  if (deliveryType != null) {\n    attributes['http.response_delivery_type'] = deliveryType;\n  }\n\n  // Types do not reflect this property yet\n  const renderBlockingStatus = (entry as { renderBlockingStatus?: 'render-blocking' | 'non-render-blocking' })\n    .renderBlockingStatus;\n  if (renderBlockingStatus) {\n    attributes['resource.render_blocking_status'] = renderBlockingStatus;\n  }\n\n  if (parsedUrl.protocol) {\n    attributes['url.scheme'] = parsedUrl.protocol.split(':').pop(); // the protocol returned by parseUrl includes a :, but OTEL spec does not, so we remove it.\n  }\n\n  if (parsedUrl.host) {\n    attributes['server.address'] = parsedUrl.host;\n  }\n\n  attributes['url.same_origin'] = resourceUrl.includes(WINDOW.location.origin);\n\n  // Checking for only `undefined` and `null` is intentional because it's\n  // valid for `nextHopProtocol` to be an empty string.\n  if (entry.nextHopProtocol != null) {\n    const { name, version } = extractNetworkProtocol(entry.nextHopProtocol);\n    attributes['network.protocol.name'] = name;\n    attributes['network.protocol.version'] = version;\n  }\n\n  const startTimestamp = timeOrigin + startTime;\n  const endTimestamp = startTimestamp + duration;\n\n  startAndEndSpan(span, startTimestamp, endTimestamp, {\n    name: resourceUrl.replace(WINDOW.location.origin, ''),\n    op,\n    attributes,\n  });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(span: Span): void {\n  const navigator = WINDOW.navigator as null | (Navigator & NavigatorNetworkInformation & NavigatorDeviceMemory);\n  if (!navigator) {\n    return;\n  }\n\n  // track network connectivity\n  const connection = navigator.connection;\n  if (connection) {\n    if (connection.effectiveType) {\n      span.setAttribute('effectiveConnectionType', connection.effectiveType);\n    }\n\n    if (connection.type) {\n      span.setAttribute('connectionType', connection.type);\n    }\n\n    if (isMeasurementValue(connection.rtt)) {\n      _measurements['connection.rtt'] = { value: connection.rtt, unit: 'millisecond' };\n    }\n  }\n\n  if (isMeasurementValue(navigator.deviceMemory)) {\n    span.setAttribute('deviceMemory', `${navigator.deviceMemory} GB`);\n  }\n\n  if (isMeasurementValue(navigator.hardwareConcurrency)) {\n    span.setAttribute('hardwareConcurrency', String(navigator.hardwareConcurrency));\n  }\n}\n\n/** Add LCP / CLS data to span to allow debugging */\nfunction _setWebVitalAttributes(span: Span, options: AddPerformanceEntriesOptions): void {\n  // Only add LCP attributes if LCP is being recorded on the pageload span\n  if (_lcpEntry && options.recordLcpOnPageloadSpan) {\n    // Capture Properties of the LCP element that contributes to the LCP.\n\n    if (_lcpEntry.element) {\n      span.setAttribute('lcp.element', htmlTreeAsString(_lcpEntry.element));\n    }\n\n    if (_lcpEntry.id) {\n      span.setAttribute('lcp.id', _lcpEntry.id);\n    }\n\n    if (_lcpEntry.url) {\n      // Trim URL to the first 200 characters.\n      span.setAttribute('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n    }\n\n    if (_lcpEntry.loadTime != null) {\n      // loadTime is the time of LCP that's related to receiving the LCP element response..\n      span.setAttribute('lcp.loadTime', _lcpEntry.loadTime);\n    }\n\n    if (_lcpEntry.renderTime != null) {\n      // renderTime is loadTime + rendering time\n      // it's 0 if the LCP element is loaded from a 3rd party origin that doesn't send the\n      // `Timing-Allow-Origin` header.\n      span.setAttribute('lcp.renderTime', _lcpEntry.renderTime);\n    }\n\n    span.setAttribute('lcp.size', _lcpEntry.size);\n  }\n\n  // Only add CLS attributes if CLS is being recorded on the pageload span\n  if (_clsEntry?.sources && options.recordClsOnPageloadSpan) {\n    _clsEntry.sources.forEach((source, index) =>\n      span.setAttribute(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n    );\n  }\n}\n\nfunction setResourceEntrySizeData(\n  attributes: SpanAttributes,\n  entry: PerformanceResourceTiming,\n  key: keyof Pick<PerformanceResourceTiming, 'transferSize' | 'encodedBodySize' | 'decodedBodySize'>,\n  dataKey: 'http.response_transfer_size' | 'http.response_content_length' | 'http.decoded_response_content_length',\n): void {\n  const entryVal = entry[key];\n  if (entryVal != null && entryVal < MAX_INT_AS_BYTES) {\n    attributes[dataKey] = entryVal;\n  }\n}\n\n/**\n * Add ttfb request time information to measurements.\n *\n * ttfb information is added via vendored web vitals library.\n */\nfunction _addTtfbRequestTimeToMeasurements(_measurements: Measurements): void {\n  const navEntry = getNavigationEntry(false);\n  if (!navEntry) {\n    return;\n  }\n\n  const { responseStart, requestStart } = navEntry;\n\n  if (requestStart <= responseStart) {\n    _measurements['ttfb.requestTime'] = {\n      value: responseStart - requestStart,\n      unit: 'millisecond',\n    };\n  }\n}\n","import type { Client, SpanAttributes } from '@sentry/core';\nimport {\n  browserPerformanceTimeOrigin,\n  debug,\n  getCurrentScope,\n  htmlTreeAsString,\n  SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME,\n  SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT,\n  SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { addLcpInstrumentationHandler } from './instrument';\nimport type { WebVitalReportEvent } from './utils';\nimport { listenForWebVitalReportEvents, msToSec, startStandaloneWebVitalSpan, supportsWebVital } from './utils';\n\n/**\n * Starts tracking the Largest Contentful Paint on the current page and collects the value once\n *\n * - the page visibility is hidden\n * - a navigation span is started (to stop LCP measurement for SPA soft navigations)\n *\n * Once either of these events triggers, the LCP value is sent as a standalone span and we stop\n * measuring LCP for subsequent routes.\n */\nexport function trackLcpAsStandaloneSpan(client: Client): void {\n  let standaloneLcpValue = 0;\n  let standaloneLcpEntry: LargestContentfulPaint | undefined;\n\n  if (!supportsWebVital('largest-contentful-paint')) {\n    return;\n  }\n\n  const cleanupLcpHandler = addLcpInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1] as LargestContentfulPaint | undefined;\n    if (!entry) {\n      return;\n    }\n    standaloneLcpValue = metric.value;\n    standaloneLcpEntry = entry;\n  }, true);\n\n  listenForWebVitalReportEvents(client, (reportEvent, pageloadSpanId) => {\n    _sendStandaloneLcpSpan(standaloneLcpValue, standaloneLcpEntry, pageloadSpanId, reportEvent);\n    cleanupLcpHandler();\n  });\n}\n\n/**\n * Exported only for testing!\n */\nexport function _sendStandaloneLcpSpan(\n  lcpValue: number,\n  entry: LargestContentfulPaint | undefined,\n  pageloadSpanId: string,\n  reportEvent: WebVitalReportEvent,\n) {\n  DEBUG_BUILD && debug.log(`Sending LCP span (${lcpValue})`);\n\n  const startTime = msToSec((browserPerformanceTimeOrigin() || 0) + (entry?.startTime || 0));\n  const routeName = getCurrentScope().getScopeData().transactionName;\n\n  const name = entry ? htmlTreeAsString(entry.element) : 'Largest contentful paint';\n\n  const attributes: SpanAttributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser.lcp',\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.webvital.lcp',\n    [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: 0, // LCP is a point-in-time metric\n    // attach the pageload span id to the LCP span so that we can link them in the UI\n    'sentry.pageload.span_id': pageloadSpanId,\n    // describes what triggered the web vital to be reported\n    'sentry.report_event': reportEvent,\n  };\n\n  if (entry) {\n    entry.element && (attributes['lcp.element'] = htmlTreeAsString(entry.element));\n    entry.id && (attributes['lcp.id'] = entry.id);\n\n    // Trim URL to the first 200 characters.\n    entry.url && (attributes['lcp.url'] = entry.url.trim().slice(0, 200));\n\n    // loadTime is the time of LCP that's related to receiving the LCP element response..\n    entry.loadTime != null && (attributes['lcp.loadTime'] = entry.loadTime);\n\n    // renderTime is loadTime + rendering time\n    // it's 0 if the LCP element is loaded from a 3rd party origin that doesn't send the\n    // `Timing-Allow-Origin` header.\n    entry.renderTime != null && (attributes['lcp.renderTime'] = entry.renderTime);\n\n    entry.size != null && (attributes['lcp.size'] = entry.size);\n  }\n\n  const span = startStandaloneWebVitalSpan({\n    name,\n    transaction: routeName,\n    attributes,\n    startTime,\n  });\n\n  if (span) {\n    span.addEvent('lcp', {\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: 'millisecond',\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: lcpValue,\n    });\n\n    // LCP is a point-in-time metric, so we end the span immediately\n    span.end(startTime);\n  }\n}\n","import type { Client, SpanAttributes } from '@sentry/core';\nimport {\n  browserPerformanceTimeOrigin,\n  debug,\n  getCurrentScope,\n  htmlTreeAsString,\n  SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME,\n  SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT,\n  SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { addClsInstrumentationHandler } from './instrument';\nimport type { WebVitalReportEvent } from './utils';\nimport { listenForWebVitalReportEvents, msToSec, startStandaloneWebVitalSpan, supportsWebVital } from './utils';\n\n/**\n * Starts tracking the Cumulative Layout Shift on the current page and collects the value once\n *\n * - the page visibility is hidden\n * - a navigation span is started (to stop CLS measurement for SPA soft navigations)\n *\n * Once either of these events triggers, the CLS value is sent as a standalone span and we stop\n * measuring CLS.\n */\nexport function trackClsAsStandaloneSpan(client: Client): void {\n  let standaloneCLsValue = 0;\n  let standaloneClsEntry: LayoutShift | undefined;\n\n  if (!supportsWebVital('layout-shift')) {\n    return;\n  }\n\n  const cleanupClsHandler = addClsInstrumentationHandler(({ metric }) => {\n    const entry = metric.entries[metric.entries.length - 1] as LayoutShift | undefined;\n    if (!entry) {\n      return;\n    }\n    standaloneCLsValue = metric.value;\n    standaloneClsEntry = entry;\n  }, true);\n\n  listenForWebVitalReportEvents(client, (reportEvent, pageloadSpanId) => {\n    sendStandaloneClsSpan(standaloneCLsValue, standaloneClsEntry, pageloadSpanId, reportEvent);\n    cleanupClsHandler();\n  });\n}\n\nfunction sendStandaloneClsSpan(\n  clsValue: number,\n  entry: LayoutShift | undefined,\n  pageloadSpanId: string,\n  reportEvent: WebVitalReportEvent,\n) {\n  DEBUG_BUILD && debug.log(`Sending CLS span (${clsValue})`);\n\n  const startTime = msToSec((browserPerformanceTimeOrigin() || 0) + (entry?.startTime || 0));\n  const routeName = getCurrentScope().getScopeData().transactionName;\n\n  const name = entry ? htmlTreeAsString(entry.sources[0]?.node) : 'Layout shift';\n\n  const attributes: SpanAttributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser.cls',\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.webvital.cls',\n    [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: entry?.duration || 0,\n    // attach the pageload span id to the CLS span so that we can link them in the UI\n    'sentry.pageload.span_id': pageloadSpanId,\n    // describes what triggered the web vital to be reported\n    'sentry.report_event': reportEvent,\n  };\n\n  // Add CLS sources as span attributes to help with debugging layout shifts\n  // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift/sources\n  if (entry?.sources) {\n    entry.sources.forEach((source, index) => {\n      attributes[`cls.source.${index + 1}`] = htmlTreeAsString(source.node);\n    });\n  }\n\n  const span = startStandaloneWebVitalSpan({\n    name,\n    transaction: routeName,\n    attributes,\n    startTime,\n  });\n\n  if (span) {\n    span.addEvent('cls', {\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: '',\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: clsValue,\n    });\n\n    // LayoutShift performance entries always have a duration of 0, so we don't need to add `entry.duration` here\n    // see: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry/duration\n    span.end(startTime);\n  }\n}\n","import type { Span, SpanAttributes } from '@sentry/core';\nimport {\n  browserPerformanceTimeOrigin,\n  getActiveSpan,\n  getCurrentScope,\n  getRootSpan,\n  htmlTreeAsString,\n  SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME,\n  SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT,\n  SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  spanToJSON,\n} from '@sentry/core';\nimport type { InstrumentationHandlerCallback } from './instrument';\nimport {\n  addInpInstrumentationHandler,\n  addPerformanceInstrumentationHandler,\n  isPerformanceEventTiming,\n} from './instrument';\nimport { getBrowserPerformanceAPI, msToSec, startStandaloneWebVitalSpan } from './utils';\n\nconst LAST_INTERACTIONS: number[] = [];\nconst INTERACTIONS_SPAN_MAP = new Map<number, Span>();\n\n/**\n * 60 seconds is the maximum for a plausible INP value\n * (source: Me)\n */\nconst MAX_PLAUSIBLE_INP_DURATION = 60;\n/**\n * Start tracking INP webvital events.\n */\nexport function startTrackingINP(): () => void {\n  const performance = getBrowserPerformanceAPI();\n  if (performance && browserPerformanceTimeOrigin()) {\n    const inpCallback = _trackINP();\n\n    return (): void => {\n      inpCallback();\n    };\n  }\n\n  return () => undefined;\n}\n\nconst INP_ENTRY_MAP: Record<string, 'click' | 'hover' | 'drag' | 'press'> = {\n  click: 'click',\n  pointerdown: 'click',\n  pointerup: 'click',\n  mousedown: 'click',\n  mouseup: 'click',\n  touchstart: 'click',\n  touchend: 'click',\n  mouseover: 'hover',\n  mouseout: 'hover',\n  mouseenter: 'hover',\n  mouseleave: 'hover',\n  pointerover: 'hover',\n  pointerout: 'hover',\n  pointerenter: 'hover',\n  pointerleave: 'hover',\n  dragstart: 'drag',\n  dragend: 'drag',\n  drag: 'drag',\n  dragenter: 'drag',\n  dragleave: 'drag',\n  dragover: 'drag',\n  drop: 'drag',\n  keydown: 'press',\n  keyup: 'press',\n  keypress: 'press',\n  input: 'press',\n};\n\n/** Starts tracking the Interaction to Next Paint on the current page. #\n * exported only for testing\n */\nexport function _trackINP(): () => void {\n  return addInpInstrumentationHandler(_onInp);\n}\n\n/**\n * exported only for testing\n */\nexport const _onInp: InstrumentationHandlerCallback = ({ metric }) => {\n  if (metric.value == undefined) {\n    return;\n  }\n\n  const duration = msToSec(metric.value);\n\n  // We received occasional reports of hour-long INP values.\n  // Therefore, we add a sanity check to avoid creating spans for\n  // unrealistically long INP durations.\n  if (duration > MAX_PLAUSIBLE_INP_DURATION) {\n    return;\n  }\n\n  const entry = metric.entries.find(entry => entry.duration === metric.value && INP_ENTRY_MAP[entry.name]);\n\n  if (!entry) {\n    return;\n  }\n\n  const { interactionId } = entry;\n  const interactionType = INP_ENTRY_MAP[entry.name];\n\n  /** Build the INP span, create an envelope from the span, and then send the envelope */\n  const startTime = msToSec((browserPerformanceTimeOrigin() as number) + entry.startTime);\n  const activeSpan = getActiveSpan();\n  const rootSpan = activeSpan ? getRootSpan(activeSpan) : undefined;\n\n  // We first try to lookup the span from our INTERACTIONS_SPAN_MAP,\n  // where we cache the route per interactionId\n  const cachedSpan = interactionId != null ? INTERACTIONS_SPAN_MAP.get(interactionId) : undefined;\n\n  const spanToUse = cachedSpan || rootSpan;\n\n  // Else, we try to use the active span.\n  // Finally, we fall back to look at the transactionName on the scope\n  const routeName = spanToUse ? spanToJSON(spanToUse).description : getCurrentScope().getScopeData().transactionName;\n\n  const name = htmlTreeAsString(entry.target);\n  const attributes: SpanAttributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser.inp',\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `ui.interaction.${interactionType}`,\n    [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: entry.duration,\n  };\n\n  const span = startStandaloneWebVitalSpan({\n    name,\n    transaction: routeName,\n    attributes,\n    startTime,\n  });\n\n  if (span) {\n    span.addEvent('inp', {\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: 'millisecond',\n      [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: metric.value,\n    });\n\n    span.end(startTime + duration);\n  }\n};\n\n/**\n * Register a listener to cache route information for INP interactions.\n */\nexport function registerInpInteractionListener(): void {\n  const handleEntries = ({ entries }: { entries: PerformanceEntry[] }): void => {\n    const activeSpan = getActiveSpan();\n    const activeRootSpan = activeSpan && getRootSpan(activeSpan);\n\n    entries.forEach(entry => {\n      if (!isPerformanceEventTiming(entry) || !activeRootSpan) {\n        return;\n      }\n\n      const interactionId = entry.interactionId;\n      if (interactionId == null) {\n        return;\n      }\n\n      // If the interaction was already recorded before, nothing more to do\n      if (INTERACTIONS_SPAN_MAP.has(interactionId)) {\n        return;\n      }\n\n      // We keep max. 10 interactions in the list, then remove the oldest one & clean up\n      if (LAST_INTERACTIONS.length > 10) {\n        const last = LAST_INTERACTIONS.shift() as number;\n        INTERACTIONS_SPAN_MAP.delete(last);\n      }\n\n      // We add the interaction to the list of recorded interactions\n      // and store the span for this interaction\n      LAST_INTERACTIONS.push(interactionId);\n      INTERACTIONS_SPAN_MAP.set(interactionId, activeRootSpan);\n    });\n  };\n\n  addPerformanceInstrumentationHandler('event', handleEntries);\n  addPerformanceInstrumentationHandler('first-input', handleEntries);\n}\n","import type { SpanAttributes } from '@sentry/core';\nimport {\n  browserPerformanceTimeOrigin,\n  getActiveSpan,\n  getCurrentScope,\n  getRootSpan,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n  spanToJSON,\n  startSpan,\n  timestampInSeconds,\n} from '@sentry/core';\nimport { addPerformanceInstrumentationHandler } from './instrument';\nimport { getBrowserPerformanceAPI, msToSec } from './utils';\n\n// ElementTiming interface based on the W3C spec\ninterface PerformanceElementTiming extends PerformanceEntry {\n  renderTime: number;\n  loadTime: number;\n  intersectionRect: DOMRectReadOnly;\n  identifier: string;\n  naturalWidth: number;\n  naturalHeight: number;\n  id: string;\n  element: Element | null;\n  url?: string;\n}\n\n/**\n * Start tracking ElementTiming performance entries.\n */\nexport function startTrackingElementTiming(): () => void {\n  const performance = getBrowserPerformanceAPI();\n  if (performance && browserPerformanceTimeOrigin()) {\n    return addPerformanceInstrumentationHandler('element', _onElementTiming);\n  }\n\n  return () => undefined;\n}\n\n/**\n * exported only for testing\n */\nexport const _onElementTiming = ({ entries }: { entries: PerformanceEntry[] }): void => {\n  const activeSpan = getActiveSpan();\n  const rootSpan = activeSpan ? getRootSpan(activeSpan) : undefined;\n  const transactionName = rootSpan\n    ? spanToJSON(rootSpan).description\n    : getCurrentScope().getScopeData().transactionName;\n\n  entries.forEach(entry => {\n    const elementEntry = entry as PerformanceElementTiming;\n\n    // Skip entries without identifier (elementtiming attribute)\n    if (!elementEntry.identifier) {\n      return;\n    }\n\n    // `name` contains the type of the element paint. Can be `'image-paint'` or `'text-paint'`.\n    // https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming#instance_properties\n    const paintType = elementEntry.name as 'image-paint' | 'text-paint' | undefined;\n\n    const renderTime = elementEntry.renderTime;\n    const loadTime = elementEntry.loadTime;\n\n    // starting the span at:\n    // - `loadTime` if available (should be available for all \"image-paint\" entries, 0 otherwise)\n    // - `renderTime` if available (available for all entries, except 3rd party images, but these should be covered by `loadTime`, 0 otherwise)\n    // - `timestampInSeconds()` as a safeguard\n    // see https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming/renderTime#cross-origin_image_render_time\n    const [spanStartTime, spanStartTimeSource] = loadTime\n      ? [msToSec(loadTime), 'load-time']\n      : renderTime\n        ? [msToSec(renderTime), 'render-time']\n        : [timestampInSeconds(), 'entry-emission'];\n\n    const duration =\n      paintType === 'image-paint'\n        ? // for image paints, we can acually get a duration because image-paint entries also have a `loadTime`\n          // and `renderTime`. `loadTime` is the time when the image finished loading and `renderTime` is the\n          // time when the image finished rendering.\n          msToSec(Math.max(0, (renderTime ?? 0) - (loadTime ?? 0)))\n        : // for `'text-paint'` entries, we can't get a duration because the `loadTime` is always zero.\n          0;\n\n    const attributes: SpanAttributes = {\n      [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.elementtiming',\n      [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'ui.elementtiming',\n      // name must be user-entered, so we can assume low cardinality\n      [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'component',\n      // recording the source of the span start time, as it varies depending on available data\n      'sentry.span_start_time_source': spanStartTimeSource,\n      'sentry.transaction_name': transactionName,\n      'element.id': elementEntry.id,\n      'element.type': elementEntry.element?.tagName?.toLowerCase() || 'unknown',\n      'element.size':\n        elementEntry.naturalWidth && elementEntry.naturalHeight\n          ? `${elementEntry.naturalWidth}x${elementEntry.naturalHeight}`\n          : undefined,\n      'element.render_time': renderTime,\n      'element.load_time': loadTime,\n      // `url` is `0`(number) for text paints (hence we fall back to undefined)\n      'element.url': elementEntry.url || undefined,\n      'element.identifier': elementEntry.identifier,\n      'element.paint_type': paintType,\n    };\n\n    startSpan(\n      {\n        name: `element[${elementEntry.identifier}]`,\n        attributes,\n        startTime: spanStartTime,\n        onlyIfParent: true,\n      },\n      span => {\n        span.end(spanStartTime + duration);\n      },\n    );\n  });\n};\n","import { isThenable } from '../utils/is';\n\n/**\n * Wrap a callback function with error handling.\n * If an error is thrown, it will be passed to the `onError` callback and re-thrown.\n *\n * If the return value of the function is a promise, it will be handled with `maybeHandlePromiseRejection`.\n *\n * If an `onFinally` callback is provided, this will be called when the callback has finished\n * - so if it returns a promise, once the promise resolved/rejected,\n * else once the callback has finished executing.\n * The `onFinally` callback will _always_ be called, no matter if an error was thrown or not.\n */\nexport function handleCallbackErrors<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  Fn extends () => any,\n>(fn: Fn, onError: (error: unknown) => void, onFinally: () => void = () => {}): ReturnType<Fn> {\n  let maybePromiseResult: ReturnType<Fn>;\n  try {\n    maybePromiseResult = fn();\n  } catch (e) {\n    onError(e);\n    onFinally();\n    throw e;\n  }\n\n  return maybeHandlePromiseRejection(maybePromiseResult, onError, onFinally);\n}\n\n/**\n * Maybe handle a promise rejection.\n * This expects to be given a value that _may_ be a promise, or any other value.\n * If it is a promise, and it rejects, it will call the `onError` callback.\n * Other than this, it will generally return the given value as-is.\n */\nfunction maybeHandlePromiseRejection<MaybePromise>(\n  value: MaybePromise,\n  onError: (error: unknown) => void,\n  onFinally: () => void,\n): MaybePromise {\n  if (isThenable(value)) {\n    // @ts-expect-error - the isThenable check returns the \"wrong\" type here\n    return value.then(\n      res => {\n        onFinally();\n        return res;\n      },\n      e => {\n        onError(e);\n        onFinally();\n        throw e;\n      },\n    );\n  }\n\n  onFinally();\n  return value;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { debug } from './debug-logger';\nimport { GLOBAL_OBJ } from './worldwide';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\ndeclare const EdgeRuntime: string | undefined;\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n  try {\n    new ErrorEvent('');\n    return true;\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n  try {\n    // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n    // 1 argument required, but only 0 present.\n    // @ts-expect-error It really needs 1 argument, not 0.\n    new DOMError('');\n    return true;\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n  try {\n    new DOMException('');\n    return true;\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n  return 'history' in WINDOW && !!WINDOW.history;\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n * @deprecated This is no longer used and will be removed in a future major version.\n */\nexport const supportsFetch = _isFetchSupported;\n\nfunction _isFetchSupported(): boolean {\n  if (!('fetch' in WINDOW)) {\n    return false;\n  }\n\n  try {\n    new Headers();\n    new Request('http://www.example.com');\n    new Response();\n    return true;\n  } catch {\n    return false;\n  }\n}\n\n/**\n * isNative checks if the given function is a native implementation\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFunction(func: Function): boolean {\n  return func && /^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n  if (typeof EdgeRuntime === 'string') {\n    return true;\n  }\n\n  if (!_isFetchSupported()) {\n    return false;\n  }\n\n  // Fast path to avoid DOM I/O\n  // eslint-disable-next-line @typescript-eslint/unbound-method\n  if (isNativeFunction(WINDOW.fetch)) {\n    return true;\n  }\n\n  // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n  // so create a \"pure\" iframe to see if that has native fetch\n  let result = false;\n  const doc = WINDOW.document;\n  // eslint-disable-next-line deprecation/deprecation\n  if (doc && typeof (doc.createElement as unknown) === 'function') {\n    try {\n      const sandbox = doc.createElement('iframe');\n      sandbox.hidden = true;\n      doc.head.appendChild(sandbox);\n      if (sandbox.contentWindow?.fetch) {\n        // eslint-disable-next-line @typescript-eslint/unbound-method\n        result = isNativeFunction(sandbox.contentWindow.fetch);\n      }\n      doc.head.removeChild(sandbox);\n    } catch (err) {\n      DEBUG_BUILD && debug.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n    }\n  }\n\n  return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n  return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n * @deprecated This is no longer used and will be removed in a future major version.\n */\nexport function supportsReferrerPolicy(): boolean {\n  // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n  // (see https://caniuse.com/#feat=referrer-policy),\n  // it doesn't. And it throws an exception instead of ignoring this parameter...\n  // REF: https://github.com/getsentry/raven-js/issues/1233\n\n  if (!_isFetchSupported()) {\n    return false;\n  }\n\n  try {\n    new Request('_', {\n      referrerPolicy: 'origin' as ReferrerPolicy,\n    });\n    return true;\n  } catch {\n    return false;\n  }\n}\n","import type { HandlerDataHistory } from '@sentry/core';\nimport { addHandler, fill, maybeInstrument, supportsHistory, triggerHandlers } from '@sentry/core';\nimport { WINDOW } from '../types';\n\nlet lastHref: string | undefined;\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addHistoryInstrumentationHandler(handler: (data: HandlerDataHistory) => void): void {\n  const type = 'history';\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentHistory);\n}\n\n/**\n * Exported just for testing\n */\nexport function instrumentHistory(): void {\n  // The `popstate` event may also be triggered on `pushState`, but it may not always reliably be emitted by the browser\n  // Which is why we also monkey-patch methods below, in addition to this\n  WINDOW.addEventListener('popstate', () => {\n    const to = WINDOW.location.href;\n    // keep track of the current URL state, as we always receive only the updated state\n    const from = lastHref;\n    lastHref = to;\n\n    if (from === to) {\n      return;\n    }\n\n    const handlerData = { from, to } satisfies HandlerDataHistory;\n    triggerHandlers('history', handlerData);\n  });\n\n  // Just guard against this not being available, in weird environments\n  if (!supportsHistory()) {\n    return;\n  }\n\n  function historyReplacementFunction(originalHistoryFunction: () => void): () => void {\n    return function (this: History, ...args: unknown[]): void {\n      const url = args.length > 2 ? args[2] : undefined;\n      if (url) {\n        const from = lastHref;\n\n        // Ensure the URL is absolute\n        // this can be either a path, then it is relative to the current origin\n        // or a full URL of the current origin - other origins are not allowed\n        // See: https://developer.mozilla.org/en-US/docs/Web/API/History/pushState#url\n        // coerce to string (this is what pushState does)\n        const to = getAbsoluteUrl(String(url));\n\n        // keep track of the current URL state, as we always receive only the updated state\n        lastHref = to;\n\n        if (from === to) {\n          return originalHistoryFunction.apply(this, args);\n        }\n\n        const handlerData = { from, to } satisfies HandlerDataHistory;\n        triggerHandlers('history', handlerData);\n      }\n      return originalHistoryFunction.apply(this, args);\n    };\n  }\n\n  fill(WINDOW.history, 'pushState', historyReplacementFunction);\n  fill(WINDOW.history, 'replaceState', historyReplacementFunction);\n}\n\nfunction getAbsoluteUrl(urlOrPath: string): string {\n  try {\n    const url = new URL(urlOrPath, WINDOW.location.origin);\n    return url.toString();\n  } catch {\n    // fallback, just do nothing\n    return urlOrPath;\n  }\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import type { Mechanism, WrappedFunction } from '@sentry/core';\nimport {\n  addExceptionMechanism,\n  addExceptionTypeValue,\n  addNonEnumerableProperty,\n  captureException,\n  getLocationHref,\n  getOriginalFunction,\n  GLOBAL_OBJ,\n  markFunctionWrapped,\n  withScope,\n} from '@sentry/core';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nlet ignoreOnError: number = 0;\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(): boolean {\n  return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n  // onerror should trigger before setTimeout\n  ignoreOnError++;\n  setTimeout(() => {\n    ignoreOnError--;\n  });\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype WrappableFunction = Function;\n\nexport function wrap<T extends WrappableFunction>(\n  fn: T,\n  options?: {\n    mechanism?: Mechanism;\n  },\n): WrappedFunction<T>;\nexport function wrap<NonFunction>(\n  fn: NonFunction,\n  options?: {\n    mechanism?: Mechanism;\n  },\n): NonFunction;\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap<T extends WrappableFunction, NonFunction>(\n  fn: T | NonFunction,\n  options: {\n    mechanism?: Mechanism;\n  } = {},\n): NonFunction | WrappedFunction<T> {\n  // for future readers what this does is wrap a function and then create\n  // a bi-directional wrapping between them.\n  //\n  // example: wrapped = wrap(original);\n  //  original.__sentry_wrapped__ -> wrapped\n  //  wrapped.__sentry_original__ -> original\n\n  function isFunction(fn: T | NonFunction): fn is T {\n    return typeof fn === 'function';\n  }\n\n  if (!isFunction(fn)) {\n    return fn;\n  }\n\n  try {\n    // if we're dealing with a function that was previously wrapped, return\n    // the original wrapper.\n    const wrapper = (fn as WrappedFunction<T>).__sentry_wrapped__;\n    if (wrapper) {\n      if (typeof wrapper === 'function') {\n        return wrapper;\n      } else {\n        // If we find that the `__sentry_wrapped__` function is not a function at the time of accessing it, it means\n        // that something messed with it. In that case we want to return the originally passed function.\n        return fn;\n      }\n    }\n\n    // We don't wanna wrap it twice\n    if (getOriginalFunction(fn)) {\n      return fn;\n    }\n  } catch {\n    // Just accessing custom props in some Selenium environments\n    // can cause a \"Permission denied\" exception (see raven-js#495).\n    // Bail on wrapping and return the function as-is (defers to window.onerror).\n    return fn;\n  }\n\n  // Wrap the function itself\n  // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n  const sentryWrapped = function (this: unknown, ...args: unknown[]): unknown {\n    try {\n      // Also wrap arguments that are themselves functions\n      const wrappedArguments = args.map(arg => wrap(arg, options));\n\n      // Attempt to invoke user-land function\n      // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n      //       means the sentry.javascript SDK caught an error invoking your application code. This\n      //       is expected behavior and NOT indicative of a bug with sentry.javascript.\n      return fn.apply(this, wrappedArguments);\n    } catch (ex) {\n      ignoreNextOnError();\n\n      withScope(scope => {\n        scope.addEventProcessor(event => {\n          if (options.mechanism) {\n            addExceptionTypeValue(event, undefined, undefined);\n            addExceptionMechanism(event, options.mechanism);\n          }\n\n          event.extra = {\n            ...event.extra,\n            arguments: args,\n          };\n\n          return event;\n        });\n\n        captureException(ex);\n      });\n\n      throw ex;\n    }\n  } as unknown as WrappedFunction<T>;\n\n  // Wrap the wrapped function in a proxy, to ensure any other properties of the original function remain available\n  try {\n    for (const property in fn) {\n      if (Object.prototype.hasOwnProperty.call(fn, property)) {\n        sentryWrapped[property as keyof T] = fn[property as keyof T];\n      }\n    }\n  } catch {\n    // Accessing some objects may throw\n    // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n  }\n\n  // Signal that this function has been wrapped/filled already\n  // for both debugging and to prevent it to being wrapped/filled twice\n  markFunctionWrapped(sentryWrapped, fn);\n\n  addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n  // Restore original function name (not all browsers allow that)\n  try {\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name')!;\n    if (descriptor.configurable) {\n      Object.defineProperty(sentryWrapped, 'name', {\n        get(): string {\n          return fn.name;\n        },\n      });\n    }\n  } catch {\n    // This may throw if e.g. the descriptor does not exist, or a browser does not allow redefining `name`.\n    // to save some bytes we simply try-catch this\n  }\n\n  return sentryWrapped;\n}\n\n/**\n * Get HTTP request data from the current page.\n */\nexport function getHttpRequestData(): { url: string; headers: Record<string, string> } {\n  // grab as much info as exists and add it to the event\n  const url = getLocationHref();\n  const { referrer } = WINDOW.document || {};\n  const { userAgent } = WINDOW.navigator || {};\n\n  const headers = {\n    ...(referrer && { Referer: referrer }),\n    ...(userAgent && { 'User-Agent': userAgent }),\n  };\n  const request = {\n    url,\n    headers,\n  };\n\n  return request;\n}\n","import type { Client, PropagationContext, Span } from '@sentry/core';\nimport {\n  type SpanContextData,\n  debug,\n  getCurrentScope,\n  getRootSpan,\n  SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE,\n  SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE,\n  SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE,\n  spanToJSON,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../exports';\n\nexport interface PreviousTraceInfo {\n  /**\n   * Span context of the previous trace's local root span\n   */\n  spanContext: SpanContextData;\n\n  /**\n   * Timestamp in seconds when the previous trace was started\n   */\n  startTimestamp: number;\n\n  /**\n   * sample rate of the previous trace\n   */\n  sampleRate: number;\n\n  /**\n   * The sample rand of the previous trace\n   */\n  sampleRand: number;\n}\n\n// 1h in seconds\nexport const PREVIOUS_TRACE_MAX_DURATION = 3600;\n\n// session storage key\nexport const PREVIOUS_TRACE_KEY = 'sentry_previous_trace';\n\nexport const PREVIOUS_TRACE_TMP_SPAN_ATTRIBUTE = 'sentry.previous_trace';\n\n/**\n * Takes care of linking traces and applying the (consistent) sampling behavoiour based on the passed options\n * @param options - options for linking traces and consistent trace sampling (@see BrowserTracingOptions)\n * @param client - Sentry client\n */\nexport function linkTraces(\n  client: Client,\n  {\n    linkPreviousTrace,\n    consistentTraceSampling,\n  }: {\n    linkPreviousTrace: 'session-storage' | 'in-memory';\n    consistentTraceSampling: boolean;\n  },\n): void {\n  const useSessionStorage = linkPreviousTrace === 'session-storage';\n\n  let inMemoryPreviousTraceInfo = useSessionStorage ? getPreviousTraceFromSessionStorage() : undefined;\n\n  client.on('spanStart', span => {\n    if (getRootSpan(span) !== span) {\n      return;\n    }\n\n    const oldPropagationContext = getCurrentScope().getPropagationContext();\n    inMemoryPreviousTraceInfo = addPreviousTraceSpanLink(inMemoryPreviousTraceInfo, span, oldPropagationContext);\n\n    if (useSessionStorage) {\n      storePreviousTraceInSessionStorage(inMemoryPreviousTraceInfo);\n    }\n  });\n\n  let isFirstTraceOnPageload = true;\n  if (consistentTraceSampling) {\n    /*\n    When users opt into `consistentTraceSampling`, we need to ensure that we propagate\n    the previous trace's sample rate and rand to the current trace. This is necessary because otherwise, span\n    metric extrapolation is inaccurate, as we'd propagate too high of a sample rate for the subsequent traces.\n\n    So therefore, we pretend that the previous trace was the parent trace of the newly started trace. To do that,\n    we mutate the propagation context of the current trace and set the sample rate and sample rand of the previous trace.\n    Timing-wise, it is fine because it happens before we even sample the root span.\n\n    @see https://github.com/getsentry/sentry-javascript/issues/15754\n    */\n    client.on('beforeSampling', mutableSamplingContextData => {\n      if (!inMemoryPreviousTraceInfo) {\n        return;\n      }\n\n      const scope = getCurrentScope();\n      const currentPropagationContext = scope.getPropagationContext();\n\n      // We do not want to force-continue the sampling decision if we continue a trace\n      // that was started on the backend. Most prominently, this will happen in MPAs where\n      // users hard-navigate between pages. In this case, the sampling decision of a potentially\n      // started trace on the server takes precedence.\n      // Why? We want to prioritize inter-trace consistency over intra-trace consistency.\n      if (isFirstTraceOnPageload && currentPropagationContext.parentSpanId) {\n        isFirstTraceOnPageload = false;\n        return;\n      }\n\n      scope.setPropagationContext({\n        ...currentPropagationContext,\n        dsc: {\n          ...currentPropagationContext.dsc,\n          sample_rate: String(inMemoryPreviousTraceInfo.sampleRate),\n          sampled: String(spanContextSampled(inMemoryPreviousTraceInfo.spanContext)),\n        },\n        sampleRand: inMemoryPreviousTraceInfo.sampleRand,\n      });\n\n      mutableSamplingContextData.parentSampled = spanContextSampled(inMemoryPreviousTraceInfo.spanContext);\n      mutableSamplingContextData.parentSampleRate = inMemoryPreviousTraceInfo.sampleRate;\n\n      mutableSamplingContextData.spanAttributes = {\n        ...mutableSamplingContextData.spanAttributes,\n        [SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE]: inMemoryPreviousTraceInfo.sampleRate,\n      };\n    });\n  }\n}\n\n/**\n * Adds a previous_trace span link to the passed span if the passed\n * previousTraceInfo is still valid.\n *\n * @returns the updated previous trace info (based on the current span/trace) to\n * be used on the next call\n */\nexport function addPreviousTraceSpanLink(\n  previousTraceInfo: PreviousTraceInfo | undefined,\n  span: Span,\n  oldPropagationContext: PropagationContext,\n): PreviousTraceInfo {\n  const spanJson = spanToJSON(span);\n\n  function getSampleRate(): number {\n    try {\n      return (\n        Number(oldPropagationContext.dsc?.sample_rate) ?? Number(spanJson.data?.[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE])\n      );\n    } catch {\n      return 0;\n    }\n  }\n\n  const updatedPreviousTraceInfo = {\n    spanContext: span.spanContext(),\n    startTimestamp: spanJson.start_timestamp,\n    sampleRate: getSampleRate(),\n    sampleRand: oldPropagationContext.sampleRand,\n  };\n\n  if (!previousTraceInfo) {\n    return updatedPreviousTraceInfo;\n  }\n\n  const previousTraceSpanCtx = previousTraceInfo.spanContext;\n  if (previousTraceSpanCtx.traceId === spanJson.trace_id) {\n    // This means, we're still in the same trace so let's not update the previous trace info\n    // or add a link to the current span.\n    // Once we move away from the long-lived, route-based trace model, we can remove this cases\n    return previousTraceInfo;\n  }\n\n  // Only add the link if the startTimeStamp of the previous trace's root span is within\n  // PREVIOUS_TRACE_MAX_DURATION (1h) of the current root span's startTimestamp\n  // This is done to\n  // - avoid adding links to \"stale\" traces\n  // - enable more efficient querying for previous/next traces in Sentry\n  if (Date.now() / 1000 - previousTraceInfo.startTimestamp <= PREVIOUS_TRACE_MAX_DURATION) {\n    if (DEBUG_BUILD) {\n      debug.log(\n        `Adding previous_trace ${previousTraceSpanCtx} link to span ${{\n          op: spanJson.op,\n          ...span.spanContext(),\n        }}`,\n      );\n    }\n\n    span.addLink({\n      context: previousTraceSpanCtx,\n      attributes: {\n        [SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE]: 'previous_trace',\n      },\n    });\n\n    // TODO: Remove this once EAP can store span links. We currently only set this attribute so that we\n    // can obtain the previous trace information from the EAP store. Long-term, EAP will handle\n    // span links and then we should remove this again. Also throwing in a TODO(v11), to remind us\n    // to check this at v11 time :)\n    span.setAttribute(\n      PREVIOUS_TRACE_TMP_SPAN_ATTRIBUTE,\n      `${previousTraceSpanCtx.traceId}-${previousTraceSpanCtx.spanId}-${\n        spanContextSampled(previousTraceSpanCtx) ? 1 : 0\n      }`,\n    );\n  }\n\n  return updatedPreviousTraceInfo;\n}\n\n/**\n * Stores @param previousTraceInfo in sessionStorage.\n */\nexport function storePreviousTraceInSessionStorage(previousTraceInfo: PreviousTraceInfo): void {\n  try {\n    WINDOW.sessionStorage.setItem(PREVIOUS_TRACE_KEY, JSON.stringify(previousTraceInfo));\n  } catch (e) {\n    // Ignore potential errors (e.g. if sessionStorage is not available)\n    DEBUG_BUILD && debug.warn('Could not store previous trace in sessionStorage', e);\n  }\n}\n\n/**\n * Retrieves the previous trace from sessionStorage if available.\n */\nexport function getPreviousTraceFromSessionStorage(): PreviousTraceInfo | undefined {\n  try {\n    const previousTraceInfo = WINDOW.sessionStorage?.getItem(PREVIOUS_TRACE_KEY);\n    // @ts-expect-error - intentionally risking JSON.parse throwing when previousTraceInfo is null to save bundle size\n    return JSON.parse(previousTraceInfo);\n  } catch {\n    return undefined;\n  }\n}\n\n/**\n * see {@link import('@sentry/core').spanIsSampled}\n */\nexport function spanContextSampled(ctx: SpanContextData): boolean {\n  return ctx.traceFlags === 0x1;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { HandlerDataFetch } from '../types-hoist/instrument';\nimport type { WebFetchHeaders } from '../types-hoist/webfetchapi';\nimport { isError, isRequest } from '../utils/is';\nimport { addNonEnumerableProperty, fill } from '../utils/object';\nimport { supportsNativeFetch } from '../utils/supports';\nimport { timestampInSeconds } from '../utils/time';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers';\n\ntype FetchResource = string | { toString(): string } | { url: string };\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addFetchInstrumentationHandler(\n  handler: (data: HandlerDataFetch) => void,\n  skipNativeFetchCheck?: boolean,\n): void {\n  const type = 'fetch';\n  addHandler(type, handler);\n  maybeInstrument(type, () => instrumentFetch(undefined, skipNativeFetchCheck));\n}\n\n/**\n * Add an instrumentation handler for long-lived fetch requests, like consuming server-sent events (SSE) via fetch.\n * The handler will resolve the request body and emit the actual `endTimestamp`, so that the\n * span can be updated accordingly.\n *\n * Only used internally\n * @hidden\n */\nexport function addFetchEndInstrumentationHandler(handler: (data: HandlerDataFetch) => void): void {\n  const type = 'fetch-body-resolved';\n  addHandler(type, handler);\n  maybeInstrument(type, () => instrumentFetch(streamHandler));\n}\n\nfunction instrumentFetch(onFetchResolved?: (response: Response) => void, skipNativeFetchCheck: boolean = false): void {\n  if (skipNativeFetchCheck && !supportsNativeFetch()) {\n    return;\n  }\n\n  fill(GLOBAL_OBJ, 'fetch', function (originalFetch: () => void): () => void {\n    return function (...args: any[]): void {\n      // We capture the error right here and not in the Promise error callback because Safari (and probably other\n      // browsers too) will wipe the stack trace up to this point, only leaving us with this file which is useless.\n\n      // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n      //       it means the error, that was caused by your fetch call did not\n      //       have a stack trace, so the SDK backfilled the stack trace so\n      //       you can see which fetch call failed.\n      const virtualError = new Error();\n\n      const { method, url } = parseFetchArgs(args);\n      const handlerData: HandlerDataFetch = {\n        args,\n        fetchData: {\n          method,\n          url,\n        },\n        startTimestamp: timestampInSeconds() * 1000,\n        // // Adding the error to be able to fingerprint the failed fetch event in HttpClient instrumentation\n        virtualError,\n        headers: getHeadersFromFetchArgs(args),\n      };\n\n      // if there is no callback, fetch is instrumented directly\n      if (!onFetchResolved) {\n        triggerHandlers('fetch', {\n          ...handlerData,\n        });\n      }\n\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n      return originalFetch.apply(GLOBAL_OBJ, args).then(\n        async (response: Response) => {\n          if (onFetchResolved) {\n            onFetchResolved(response);\n          } else {\n            triggerHandlers('fetch', {\n              ...handlerData,\n              endTimestamp: timestampInSeconds() * 1000,\n              response,\n            });\n          }\n\n          return response;\n        },\n        (error: Error) => {\n          triggerHandlers('fetch', {\n            ...handlerData,\n            endTimestamp: timestampInSeconds() * 1000,\n            error,\n          });\n\n          if (isError(error) && error.stack === undefined) {\n            // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n            //       it means the error, that was caused by your fetch call did not\n            //       have a stack trace, so the SDK backfilled the stack trace so\n            //       you can see which fetch call failed.\n            error.stack = virtualError.stack;\n            addNonEnumerableProperty(error, 'framesToPop', 1);\n          }\n\n          // We enhance the not-so-helpful \"Failed to fetch\" error messages with the host\n          // Possible messages we handle here:\n          // * \"Failed to fetch\" (chromium)\n          // * \"Load failed\" (webkit)\n          // * \"NetworkError when attempting to fetch resource.\" (firefox)\n          if (\n            error instanceof TypeError &&\n            (error.message === 'Failed to fetch' ||\n              error.message === 'Load failed' ||\n              error.message === 'NetworkError when attempting to fetch resource.')\n          ) {\n            try {\n              const url = new URL(handlerData.fetchData.url);\n              error.message = `${error.message} (${url.host})`;\n            } catch {\n              // ignore it if errors happen here\n            }\n          }\n\n          // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n          //       it means the sentry.javascript SDK caught an error invoking your application code.\n          //       This is expected behavior and NOT indicative of a bug with sentry.javascript.\n          throw error;\n        },\n      );\n    };\n  });\n}\n\nasync function resolveResponse(res: Response | undefined, onFinishedResolving: () => void): Promise<void> {\n  if (res?.body) {\n    const body = res.body;\n    const responseReader = body.getReader();\n\n    // Define a maximum duration after which we just cancel\n    const maxFetchDurationTimeout = setTimeout(\n      () => {\n        body.cancel().then(null, () => {\n          // noop\n        });\n      },\n      90 * 1000, // 90s\n    );\n\n    let readingActive = true;\n    while (readingActive) {\n      let chunkTimeout;\n      try {\n        // abort reading if read op takes more than 5s\n        chunkTimeout = setTimeout(() => {\n          body.cancel().then(null, () => {\n            // noop on error\n          });\n        }, 5000);\n\n        // This .read() call will reject/throw when we abort due to timeouts through `body.cancel()`\n        const { done } = await responseReader.read();\n\n        clearTimeout(chunkTimeout);\n\n        if (done) {\n          onFinishedResolving();\n          readingActive = false;\n        }\n      } catch {\n        readingActive = false;\n      } finally {\n        clearTimeout(chunkTimeout);\n      }\n    }\n\n    clearTimeout(maxFetchDurationTimeout);\n\n    responseReader.releaseLock();\n    body.cancel().then(null, () => {\n      // noop on error\n    });\n  }\n}\n\nfunction streamHandler(response: Response): void {\n  // clone response for awaiting stream\n  let clonedResponseForResolving: Response;\n  try {\n    clonedResponseForResolving = response.clone();\n  } catch {\n    return;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-floating-promises\n  resolveResponse(clonedResponseForResolving, () => {\n    triggerHandlers('fetch-body-resolved', {\n      endTimestamp: timestampInSeconds() * 1000,\n      response,\n    });\n  });\n}\n\nfunction hasProp<T extends string>(obj: unknown, prop: T): obj is Record<string, string> {\n  return !!obj && typeof obj === 'object' && !!(obj as Record<string, string>)[prop];\n}\n\nfunction getUrlFromResource(resource: FetchResource): string {\n  if (typeof resource === 'string') {\n    return resource;\n  }\n\n  if (!resource) {\n    return '';\n  }\n\n  if (hasProp(resource, 'url')) {\n    return resource.url;\n  }\n\n  if (resource.toString) {\n    return resource.toString();\n  }\n\n  return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request.\n * Exported for tests only.\n */\nexport function parseFetchArgs(fetchArgs: unknown[]): { method: string; url: string } {\n  if (fetchArgs.length === 0) {\n    return { method: 'GET', url: '' };\n  }\n\n  if (fetchArgs.length === 2) {\n    const [url, options] = fetchArgs as [FetchResource, object];\n\n    return {\n      url: getUrlFromResource(url),\n      method: hasProp(options, 'method') ? String(options.method).toUpperCase() : 'GET',\n    };\n  }\n\n  const arg = fetchArgs[0];\n  return {\n    url: getUrlFromResource(arg as FetchResource),\n    method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n  };\n}\n\nfunction getHeadersFromFetchArgs(fetchArgs: unknown[]): WebFetchHeaders | undefined {\n  const [requestArgument, optionsArgument] = fetchArgs;\n\n  try {\n    if (\n      typeof optionsArgument === 'object' &&\n      optionsArgument !== null &&\n      'headers' in optionsArgument &&\n      optionsArgument.headers\n    ) {\n      return new Headers(optionsArgument.headers as any);\n    }\n\n    if (isRequest(requestArgument)) {\n      return new Headers(requestArgument.headers);\n    }\n  } catch {\n    // noop\n  }\n\n  return;\n}\n","import { getAsyncContextStrategy } from '../asyncContext';\nimport { getMainCarrier } from '../carrier';\nimport type { Client } from '../client';\nimport { getClient, getCurrentScope } from '../currentScopes';\nimport { isEnabled } from '../exports';\nimport type { Scope } from '../scope';\nimport { getDynamicSamplingContextFromScope, getDynamicSamplingContextFromSpan } from '../tracing';\nimport type { Span } from '../types-hoist/span';\nimport type { SerializedTraceData } from '../types-hoist/tracing';\nimport { dynamicSamplingContextToSentryBaggageHeader } from './baggage';\nimport { debug } from './debug-logger';\nimport { getActiveSpan, spanToTraceHeader } from './spanUtils';\nimport { generateSentryTraceHeader, TRACEPARENT_REGEXP } from './tracing';\n\n/**\n * Extracts trace propagation data from the current span or from the client's scope (via transaction or propagation\n * context) and serializes it to `sentry-trace` and `baggage` values to strings. These values can be used to propagate\n * a trace via our tracing Http headers or Html `<meta>` tags.\n *\n * This function also applies some validation to the generated sentry-trace and baggage values to ensure that\n * only valid strings are returned.\n *\n * @returns an object with the tracing data values. The object keys are the name of the tracing key to be used as header\n * or meta tag name.\n */\nexport function getTraceData(options: { span?: Span; scope?: Scope; client?: Client } = {}): SerializedTraceData {\n  const client = options.client || getClient();\n  if (!isEnabled() || !client) {\n    return {};\n  }\n\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.getTraceData) {\n    return acs.getTraceData(options);\n  }\n\n  const scope = options.scope || getCurrentScope();\n  const span = options.span || getActiveSpan();\n  const sentryTrace = span ? spanToTraceHeader(span) : scopeToTraceHeader(scope);\n  const dsc = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n  const baggage = dynamicSamplingContextToSentryBaggageHeader(dsc);\n\n  const isValidSentryTraceHeader = TRACEPARENT_REGEXP.test(sentryTrace);\n  if (!isValidSentryTraceHeader) {\n    debug.warn('Invalid sentry-trace data. Cannot generate trace data');\n    return {};\n  }\n\n  return {\n    'sentry-trace': sentryTrace,\n    baggage,\n  };\n}\n\n/**\n * Get a sentry-trace header value for the given scope.\n */\nfunction scopeToTraceHeader(scope: Scope): string {\n  const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n  return generateSentryTraceHeader(traceId, propagationSpanId, sampled);\n}\n","import { getClient } from './currentScopes';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from './semanticAttributes';\nimport { setHttpStatus, SPAN_STATUS_ERROR, startInactiveSpan } from './tracing';\nimport { SentryNonRecordingSpan } from './tracing/sentryNonRecordingSpan';\nimport type { FetchBreadcrumbHint } from './types-hoist/breadcrumb';\nimport type { HandlerDataFetch } from './types-hoist/instrument';\nimport type { Span, SpanAttributes, SpanOrigin } from './types-hoist/span';\nimport { SENTRY_BAGGAGE_KEY_PREFIX } from './utils/baggage';\nimport { hasSpansEnabled } from './utils/hasSpansEnabled';\nimport { isInstanceOf, isRequest } from './utils/is';\nimport { getActiveSpan } from './utils/spanUtils';\nimport { getTraceData } from './utils/traceData';\nimport { getSanitizedUrlStringFromUrlObject, isURLObjectRelative, parseStringToURLObject } from './utils/url';\n\ntype PolymorphicRequestHeaders =\n  | Record<string, string | undefined>\n  | Array<[string, string]>\n  // the below is not precisely the Header type used in Request, but it'll pass duck-typing\n  | {\n      append: (key: string, value: string) => void;\n      get: (key: string) => string | null | undefined;\n    };\n\n/**\n * Create and track fetch request spans for usage in combination with `addFetchInstrumentationHandler`.\n *\n * @returns Span if a span was created, otherwise void.\n */\nexport function instrumentFetchRequest(\n  handlerData: HandlerDataFetch,\n  shouldCreateSpan: (url: string) => boolean,\n  shouldAttachHeaders: (url: string) => boolean,\n  spans: Record<string, Span>,\n  spanOrigin: SpanOrigin = 'auto.http.browser',\n): Span | undefined {\n  if (!handlerData.fetchData) {\n    return undefined;\n  }\n\n  const { method, url } = handlerData.fetchData;\n\n  const shouldCreateSpanResult = hasSpansEnabled() && shouldCreateSpan(url);\n\n  if (handlerData.endTimestamp && shouldCreateSpanResult) {\n    const spanId = handlerData.fetchData.__span;\n    if (!spanId) return;\n\n    const span = spans[spanId];\n    if (span) {\n      endSpan(span, handlerData);\n\n      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n      delete spans[spanId];\n    }\n    return undefined;\n  }\n\n  const hasParent = !!getActiveSpan();\n\n  const span =\n    shouldCreateSpanResult && hasParent\n      ? startInactiveSpan(getSpanStartOptions(url, method, spanOrigin))\n      : new SentryNonRecordingSpan();\n\n  handlerData.fetchData.__span = span.spanContext().spanId;\n  spans[span.spanContext().spanId] = span;\n\n  if (shouldAttachHeaders(handlerData.fetchData.url)) {\n    const request: string | Request = handlerData.args[0];\n\n    const options: { [key: string]: unknown } = handlerData.args[1] || {};\n\n    const headers = _addTracingHeadersToFetchRequest(\n      request,\n      options,\n      // If performance is disabled (TWP) or there's no active root span (pageload/navigation/interaction),\n      // we do not want to use the span as base for the trace headers,\n      // which means that the headers will be generated from the scope and the sampling decision is deferred\n      hasSpansEnabled() && hasParent ? span : undefined,\n    );\n    if (headers) {\n      // Ensure this is actually set, if no options have been passed previously\n      handlerData.args[1] = options;\n      options.headers = headers;\n    }\n  }\n\n  const client = getClient();\n\n  if (client) {\n    const fetchHint = {\n      input: handlerData.args,\n      response: handlerData.response,\n      startTimestamp: handlerData.startTimestamp,\n      endTimestamp: handlerData.endTimestamp,\n    } satisfies FetchBreadcrumbHint;\n\n    client.emit('beforeOutgoingRequestSpan', span, fetchHint);\n  }\n\n  return span;\n}\n\n/**\n * Adds sentry-trace and baggage headers to the various forms of fetch headers.\n * exported only for testing purposes\n *\n * When we determine if we should add a baggage header, there are 3 cases:\n * 1. No previous baggage header -> add baggage\n * 2. Previous baggage header has no sentry baggage values -> add our baggage\n * 3. Previous baggage header has sentry baggage values -> do nothing (might have been added manually by users)\n */\n// eslint-disable-next-line complexity -- yup it's this complicated :(\nexport function _addTracingHeadersToFetchRequest(\n  request: string | Request,\n  fetchOptionsObj: {\n    headers?:\n      | {\n          [key: string]: string[] | string | undefined;\n        }\n      | PolymorphicRequestHeaders;\n  },\n  span?: Span,\n): PolymorphicRequestHeaders | undefined {\n  const traceHeaders = getTraceData({ span });\n  const sentryTrace = traceHeaders['sentry-trace'];\n  const baggage = traceHeaders.baggage;\n\n  // Nothing to do, when we return undefined here, the original headers will be used\n  if (!sentryTrace) {\n    return undefined;\n  }\n\n  const originalHeaders = fetchOptionsObj.headers || (isRequest(request) ? request.headers : undefined);\n\n  if (!originalHeaders) {\n    return { ...traceHeaders };\n  } else if (isHeaders(originalHeaders)) {\n    const newHeaders = new Headers(originalHeaders);\n\n    // We don't want to override manually added sentry headers\n    if (!newHeaders.get('sentry-trace')) {\n      newHeaders.set('sentry-trace', sentryTrace);\n    }\n\n    if (baggage) {\n      const prevBaggageHeader = newHeaders.get('baggage');\n\n      if (!prevBaggageHeader) {\n        newHeaders.set('baggage', baggage);\n      } else if (!baggageHeaderHasSentryBaggageValues(prevBaggageHeader)) {\n        newHeaders.set('baggage', `${prevBaggageHeader},${baggage}`);\n      }\n    }\n\n    return newHeaders;\n  } else if (Array.isArray(originalHeaders)) {\n    const newHeaders = [...originalHeaders];\n\n    if (!originalHeaders.find(header => header[0] === 'sentry-trace')) {\n      newHeaders.push(['sentry-trace', sentryTrace]);\n    }\n\n    const prevBaggageHeaderWithSentryValues = originalHeaders.find(\n      header => header[0] === 'baggage' && baggageHeaderHasSentryBaggageValues(header[1]),\n    );\n\n    if (baggage && !prevBaggageHeaderWithSentryValues) {\n      // If there are multiple entries with the same key, the browser will merge the values into a single request header.\n      // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n      newHeaders.push(['baggage', baggage]);\n    }\n\n    return newHeaders as PolymorphicRequestHeaders;\n  } else {\n    const existingSentryTraceHeader = 'sentry-trace' in originalHeaders ? originalHeaders['sentry-trace'] : undefined;\n\n    const existingBaggageHeader = 'baggage' in originalHeaders ? originalHeaders.baggage : undefined;\n    const newBaggageHeaders: string[] = existingBaggageHeader\n      ? Array.isArray(existingBaggageHeader)\n        ? [...existingBaggageHeader]\n        : [existingBaggageHeader]\n      : [];\n\n    const prevBaggageHeaderWithSentryValues =\n      existingBaggageHeader &&\n      (Array.isArray(existingBaggageHeader)\n        ? existingBaggageHeader.find(headerItem => baggageHeaderHasSentryBaggageValues(headerItem))\n        : baggageHeaderHasSentryBaggageValues(existingBaggageHeader));\n\n    if (baggage && !prevBaggageHeaderWithSentryValues) {\n      newBaggageHeaders.push(baggage);\n    }\n\n    return {\n      ...(originalHeaders as Exclude<typeof originalHeaders, Headers>),\n      'sentry-trace': (existingSentryTraceHeader as string | undefined) ?? sentryTrace,\n      baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined,\n    };\n  }\n}\n\nfunction endSpan(span: Span, handlerData: HandlerDataFetch): void {\n  if (handlerData.response) {\n    setHttpStatus(span, handlerData.response.status);\n\n    const contentLength = handlerData.response?.headers?.get('content-length');\n\n    if (contentLength) {\n      const contentLengthNum = parseInt(contentLength);\n      if (contentLengthNum > 0) {\n        span.setAttribute('http.response_content_length', contentLengthNum);\n      }\n    }\n  } else if (handlerData.error) {\n    span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n  }\n  span.end();\n}\n\nfunction baggageHeaderHasSentryBaggageValues(baggageHeader: string): boolean {\n  return baggageHeader.split(',').some(baggageEntry => baggageEntry.trim().startsWith(SENTRY_BAGGAGE_KEY_PREFIX));\n}\n\nfunction isHeaders(headers: unknown): headers is Headers {\n  return typeof Headers !== 'undefined' && isInstanceOf(headers, Headers);\n}\n\nfunction getSpanStartOptions(\n  url: string,\n  method: string,\n  spanOrigin: SpanOrigin,\n): Parameters<typeof startInactiveSpan>[0] {\n  const parsedUrl = parseStringToURLObject(url);\n  return {\n    name: parsedUrl ? `${method} ${getSanitizedUrlStringFromUrlObject(parsedUrl)}` : method,\n    attributes: getFetchSpanAttributes(url, parsedUrl, method, spanOrigin),\n  };\n}\n\nfunction getFetchSpanAttributes(\n  url: string,\n  parsedUrl: ReturnType<typeof parseStringToURLObject>,\n  method: string,\n  spanOrigin: SpanOrigin,\n): SpanAttributes {\n  const attributes: SpanAttributes = {\n    url,\n    type: 'fetch',\n    'http.method': method,\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.client',\n  };\n  if (parsedUrl) {\n    if (!isURLObjectRelative(parsedUrl)) {\n      attributes['http.url'] = parsedUrl.href;\n      attributes['server.address'] = parsedUrl.host;\n    }\n    if (parsedUrl.search) {\n      attributes['http.query'] = parsedUrl.search;\n    }\n    if (parsedUrl.hash) {\n      attributes['http.fragment'] = parsedUrl.hash;\n    }\n  }\n  return attributes;\n}\n","import type { HandlerDataXhr, SentryWrappedXMLHttpRequest } from '@sentry/core';\nimport { addHandler, isString, maybeInstrument, timestampInSeconds, triggerHandlers } from '@sentry/core';\nimport { WINDOW } from '../types';\n\nexport const SENTRY_XHR_DATA_KEY = '__sentry_xhr_v3__';\n\ntype WindowWithXhr = Window & { XMLHttpRequest?: typeof XMLHttpRequest };\n\n/**\n * Add an instrumentation handler for when an XHR request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addXhrInstrumentationHandler(handler: (data: HandlerDataXhr) => void): void {\n  const type = 'xhr';\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentXHR);\n}\n\n/** Exported only for tests. */\nexport function instrumentXHR(): void {\n  if (!(WINDOW as WindowWithXhr).XMLHttpRequest) {\n    return;\n  }\n\n  const xhrproto = XMLHttpRequest.prototype;\n\n  // eslint-disable-next-line @typescript-eslint/unbound-method\n  xhrproto.open = new Proxy(xhrproto.open, {\n    apply(\n      originalOpen,\n      xhrOpenThisArg: XMLHttpRequest & SentryWrappedXMLHttpRequest,\n      xhrOpenArgArray:\n        | [method: string, url: string | URL]\n        | [method: string, url: string | URL, async: boolean, username?: string | null, password?: string | null],\n    ) {\n      // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n      //       it means the error, that was caused by your XHR call did not\n      //       have a stack trace. If you are using HttpClient integration,\n      //       this is the expected behavior, as we are using this virtual error to capture\n      //       the location of your XHR call, and group your HttpClient events accordingly.\n      const virtualError = new Error();\n\n      const startTimestamp = timestampInSeconds() * 1000;\n\n      // open() should always be called with two or more arguments\n      // But to be on the safe side, we actually validate this and bail out if we don't have a method & url\n      const method = isString(xhrOpenArgArray[0]) ? xhrOpenArgArray[0].toUpperCase() : undefined;\n      const url = parseXhrUrlArg(xhrOpenArgArray[1]);\n\n      if (!method || !url) {\n        return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n      }\n\n      xhrOpenThisArg[SENTRY_XHR_DATA_KEY] = {\n        method,\n        url,\n        request_headers: {},\n      };\n\n      // if Sentry key appears in URL, don't capture it as a request\n      if (method === 'POST' && url.match(/sentry_key/)) {\n        xhrOpenThisArg.__sentry_own_request__ = true;\n      }\n\n      const onreadystatechangeHandler: () => void = () => {\n        // For whatever reason, this is not the same instance here as from the outer method\n        const xhrInfo = xhrOpenThisArg[SENTRY_XHR_DATA_KEY];\n\n        if (!xhrInfo) {\n          return;\n        }\n\n        if (xhrOpenThisArg.readyState === 4) {\n          try {\n            // touching statusCode in some platforms throws\n            // an exception\n            xhrInfo.status_code = xhrOpenThisArg.status;\n          } catch {\n            /* do nothing */\n          }\n\n          const handlerData: HandlerDataXhr = {\n            endTimestamp: timestampInSeconds() * 1000,\n            startTimestamp,\n            xhr: xhrOpenThisArg,\n            virtualError,\n          };\n          triggerHandlers('xhr', handlerData);\n        }\n      };\n\n      if ('onreadystatechange' in xhrOpenThisArg && typeof xhrOpenThisArg.onreadystatechange === 'function') {\n        xhrOpenThisArg.onreadystatechange = new Proxy(xhrOpenThisArg.onreadystatechange, {\n          apply(originalOnreadystatechange, onreadystatechangeThisArg, onreadystatechangeArgArray: unknown[]) {\n            onreadystatechangeHandler();\n            return originalOnreadystatechange.apply(onreadystatechangeThisArg, onreadystatechangeArgArray);\n          },\n        });\n      } else {\n        xhrOpenThisArg.addEventListener('readystatechange', onreadystatechangeHandler);\n      }\n\n      // Intercepting `setRequestHeader` to access the request headers of XHR instance.\n      // This will only work for user/library defined headers, not for the default/browser-assigned headers.\n      // Request cookies are also unavailable for XHR, as `Cookie` header can't be defined by `setRequestHeader`.\n      xhrOpenThisArg.setRequestHeader = new Proxy(xhrOpenThisArg.setRequestHeader, {\n        apply(\n          originalSetRequestHeader,\n          setRequestHeaderThisArg: SentryWrappedXMLHttpRequest,\n          setRequestHeaderArgArray: unknown[],\n        ) {\n          const [header, value] = setRequestHeaderArgArray;\n\n          const xhrInfo = setRequestHeaderThisArg[SENTRY_XHR_DATA_KEY];\n\n          if (xhrInfo && isString(header) && isString(value)) {\n            xhrInfo.request_headers[header.toLowerCase()] = value;\n          }\n\n          return originalSetRequestHeader.apply(setRequestHeaderThisArg, setRequestHeaderArgArray);\n        },\n      });\n\n      return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n    },\n  });\n\n  // eslint-disable-next-line @typescript-eslint/unbound-method\n  xhrproto.send = new Proxy(xhrproto.send, {\n    apply(originalSend, sendThisArg: XMLHttpRequest & SentryWrappedXMLHttpRequest, sendArgArray: unknown[]) {\n      const sentryXhrData = sendThisArg[SENTRY_XHR_DATA_KEY];\n\n      if (!sentryXhrData) {\n        return originalSend.apply(sendThisArg, sendArgArray);\n      }\n\n      if (sendArgArray[0] !== undefined) {\n        sentryXhrData.body = sendArgArray[0];\n      }\n\n      const handlerData: HandlerDataXhr = {\n        startTimestamp: timestampInSeconds() * 1000,\n        xhr: sendThisArg,\n      };\n      triggerHandlers('xhr', handlerData);\n\n      return originalSend.apply(sendThisArg, sendArgArray);\n    },\n  });\n}\n\n/**\n * Parses the URL argument of a XHR method to a string.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open#url\n * url: A string or any other object with a stringifier — including a URL object — that provides the URL of the resource to send the request to.\n *\n * @param url - The URL argument of an XHR method\n * @returns The parsed URL string or undefined if the URL is invalid\n */\nfunction parseXhrUrlArg(url: unknown): string | undefined {\n  if (isString(url)) {\n    return url;\n  }\n\n  try {\n    // If the passed in argument is not a string, it should have a `toString` method as a stringifier.\n    // If that fails, we just return undefined (like in IE11 where URL is not available)\n    return (url as URL).toString();\n  } catch {} // eslint-disable-line no-empty\n\n  return undefined;\n}\n","import type { Span } from '@sentry/core';\nimport { browserPerformanceTimeOrigin } from '@sentry/core';\nimport { extractNetworkProtocol } from '@sentry-internal/browser-utils';\n\nfunction getAbsoluteTime(time: number = 0): number {\n  return ((browserPerformanceTimeOrigin() || performance.timeOrigin) + time) / 1000;\n}\n\n/**\n * Converts a PerformanceResourceTiming entry to span data for the resource span.\n *\n * @param resourceTiming\n * @returns An array where the first element is the attribute name and the second element is the attribute value.\n */\nexport function resourceTimingToSpanAttributes(\n  resourceTiming: PerformanceResourceTiming,\n): Array<Parameters<Span['setAttribute']>> {\n  const timingSpanData: Array<Parameters<Span['setAttribute']>> = [];\n  // Checking for only `undefined` and `null` is intentional because it's\n  // valid for `nextHopProtocol` to be an empty string.\n  if (resourceTiming.nextHopProtocol != undefined) {\n    const { name, version } = extractNetworkProtocol(resourceTiming.nextHopProtocol);\n    timingSpanData.push(['network.protocol.version', version], ['network.protocol.name', name]);\n  }\n  if (!browserPerformanceTimeOrigin()) {\n    return timingSpanData;\n  }\n  return [\n    ...timingSpanData,\n    ['http.request.redirect_start', getAbsoluteTime(resourceTiming.redirectStart)],\n    ['http.request.fetch_start', getAbsoluteTime(resourceTiming.fetchStart)],\n    ['http.request.domain_lookup_start', getAbsoluteTime(resourceTiming.domainLookupStart)],\n    ['http.request.domain_lookup_end', getAbsoluteTime(resourceTiming.domainLookupEnd)],\n    ['http.request.connect_start', getAbsoluteTime(resourceTiming.connectStart)],\n    ['http.request.secure_connection_start', getAbsoluteTime(resourceTiming.secureConnectionStart)],\n    ['http.request.connection_end', getAbsoluteTime(resourceTiming.connectEnd)],\n    ['http.request.request_start', getAbsoluteTime(resourceTiming.requestStart)],\n    ['http.request.response_start', getAbsoluteTime(resourceTiming.responseStart)],\n    ['http.request.response_end', getAbsoluteTime(resourceTiming.responseEnd)],\n  ];\n}\n","import type { Client, HandlerDataXhr, SentryWrappedXMLHttpRequest, Span, WebFetchHeaders } from '@sentry/core';\nimport {\n  addFetchEndInstrumentationHandler,\n  addFetchInstrumentationHandler,\n  getActiveSpan,\n  getClient,\n  getLocationHref,\n  getTraceData,\n  hasSpansEnabled,\n  instrumentFetchRequest,\n  parseUrl,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  SentryNonRecordingSpan,\n  setHttpStatus,\n  spanToJSON,\n  startInactiveSpan,\n  stringMatchesSomePattern,\n  stripUrlQueryAndFragment,\n} from '@sentry/core';\nimport type { XhrHint } from '@sentry-internal/browser-utils';\nimport {\n  addPerformanceInstrumentationHandler,\n  addXhrInstrumentationHandler,\n  SENTRY_XHR_DATA_KEY,\n} from '@sentry-internal/browser-utils';\nimport { WINDOW } from '../helpers';\nimport { resourceTimingToSpanAttributes } from './resource-timing';\n\n/** Options for Request Instrumentation */\nexport interface RequestInstrumentationOptions {\n  /**\n   * List of strings and/or Regular Expressions used to determine which outgoing requests will have `sentry-trace` and `baggage`\n   * headers attached.\n   *\n   * **Default:** If this option is not provided, tracing headers will be attached to all outgoing requests.\n   * If you are using a browser SDK, by default, tracing headers will only be attached to outgoing requests to the same origin.\n   *\n   * **Disclaimer:** Carelessly setting this option in browser environments may result into CORS errors!\n   * Only attach tracing headers to requests to the same origin, or to requests to services you can control CORS headers of.\n   * Cross-origin requests, meaning requests to a different domain, for example a request to `https://api.example.com/` while you're on `https://example.com/`, take special care.\n   * If you are attaching headers to cross-origin requests, make sure the backend handling the request returns a `\"Access-Control-Allow-Headers: sentry-trace, baggage\"` header to ensure your requests aren't blocked.\n   *\n   * If you provide a `tracePropagationTargets` array, the entries you provide will be matched against the entire URL of the outgoing request.\n   * If you are using a browser SDK, the entries will also be matched against the pathname of the outgoing requests.\n   * This is so you can have matchers for relative requests, for example, `/^\\/api/` if you want to trace requests to your `/api` routes on the same domain.\n   *\n   * If any of the two match any of the provided values, tracing headers will be attached to the outgoing request.\n   * Both, the string values, and the RegExes you provide in the array will match if they partially match the URL or pathname.\n   *\n   * Examples:\n   * - `tracePropagationTargets: [/^\\/api/]` and request to `https://same-origin.com/api/posts`:\n   *   - Tracing headers will be attached because the request is sent to the same origin and the regex matches the pathname \"/api/posts\".\n   * - `tracePropagationTargets: [/^\\/api/]` and request to `https://different-origin.com/api/posts`:\n   *   - Tracing headers will not be attached because the pathname will only be compared when the request target lives on the same origin.\n   * - `tracePropagationTargets: [/^\\/api/, 'https://external-api.com']` and request to `https://external-api.com/v1/data`:\n   *   - Tracing headers will be attached because the request URL matches the string `'https://external-api.com'`.\n   */\n  tracePropagationTargets?: Array<string | RegExp>;\n\n  /**\n   * Flag to disable patching all together for fetch requests.\n   *\n   * Default: true\n   */\n  traceFetch: boolean;\n\n  /**\n   * Flag to disable patching all together for xhr requests.\n   *\n   * Default: true\n   */\n  traceXHR: boolean;\n\n  /**\n   * Flag to disable tracking of long-lived streams, like server-sent events (SSE) via fetch.\n   * Do not enable this in case you have live streams or very long running streams.\n   *\n   * Disabled by default since it can lead to issues with streams using the `cancel()` api\n   * (https://github.com/getsentry/sentry-javascript/issues/13950)\n   *\n   * Default: false\n   */\n  trackFetchStreamPerformance: boolean;\n\n  /**\n   * If true, Sentry will capture http timings and add them to the corresponding http spans.\n   *\n   * Default: true\n   */\n  enableHTTPTimings: boolean;\n\n  /**\n   * This function will be called before creating a span for a request with the given url.\n   * Return false if you don't want a span for the given url.\n   *\n   * Default: (url: string) => true\n   */\n  shouldCreateSpanForRequest?(this: void, url: string): boolean;\n\n  /**\n   * Is called when spans are started for outgoing requests.\n   */\n  onRequestSpanStart?(span: Span, requestInformation: { headers?: WebFetchHeaders }): void;\n}\n\nconst responseToSpanId = new WeakMap<object, string>();\nconst spanIdToEndTimestamp = new Map<string, number>();\n\nexport const defaultRequestInstrumentationOptions: RequestInstrumentationOptions = {\n  traceFetch: true,\n  traceXHR: true,\n  enableHTTPTimings: true,\n  trackFetchStreamPerformance: false,\n};\n\n/** Registers span creators for xhr and fetch requests  */\nexport function instrumentOutgoingRequests(client: Client, _options?: Partial<RequestInstrumentationOptions>): void {\n  const {\n    traceFetch,\n    traceXHR,\n    trackFetchStreamPerformance,\n    shouldCreateSpanForRequest,\n    enableHTTPTimings,\n    tracePropagationTargets,\n    onRequestSpanStart,\n  } = {\n    ...defaultRequestInstrumentationOptions,\n    ..._options,\n  };\n\n  const shouldCreateSpan =\n    typeof shouldCreateSpanForRequest === 'function' ? shouldCreateSpanForRequest : (_: string) => true;\n\n  const shouldAttachHeadersWithTargets = (url: string): boolean => shouldAttachHeaders(url, tracePropagationTargets);\n\n  const spans: Record<string, Span> = {};\n\n  if (traceFetch) {\n    // Keeping track of http requests, whose body payloads resolved later than the initial resolved request\n    // e.g. streaming using server sent events (SSE)\n    client.addEventProcessor(event => {\n      if (event.type === 'transaction' && event.spans) {\n        event.spans.forEach(span => {\n          if (span.op === 'http.client') {\n            const updatedTimestamp = spanIdToEndTimestamp.get(span.span_id);\n            if (updatedTimestamp) {\n              span.timestamp = updatedTimestamp / 1000;\n              spanIdToEndTimestamp.delete(span.span_id);\n            }\n          }\n        });\n      }\n      return event;\n    });\n\n    if (trackFetchStreamPerformance) {\n      addFetchEndInstrumentationHandler(handlerData => {\n        if (handlerData.response) {\n          const span = responseToSpanId.get(handlerData.response);\n          if (span && handlerData.endTimestamp) {\n            spanIdToEndTimestamp.set(span, handlerData.endTimestamp);\n          }\n        }\n      });\n    }\n\n    addFetchInstrumentationHandler(handlerData => {\n      const createdSpan = instrumentFetchRequest(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n\n      if (handlerData.response && handlerData.fetchData.__span) {\n        responseToSpanId.set(handlerData.response, handlerData.fetchData.__span);\n      }\n\n      // We cannot use `window.location` in the generic fetch instrumentation,\n      // but we need it for reliable `server.address` attribute.\n      // so we extend this in here\n      if (createdSpan) {\n        const fullUrl = getFullURL(handlerData.fetchData.url);\n        const host = fullUrl ? parseUrl(fullUrl).host : undefined;\n        createdSpan.setAttributes({\n          'http.url': fullUrl,\n          'server.address': host,\n        });\n\n        if (enableHTTPTimings) {\n          addHTTPTimings(createdSpan);\n        }\n\n        onRequestSpanStart?.(createdSpan, { headers: handlerData.headers });\n      }\n    });\n  }\n\n  if (traceXHR) {\n    addXhrInstrumentationHandler(handlerData => {\n      const createdSpan = xhrCallback(handlerData, shouldCreateSpan, shouldAttachHeadersWithTargets, spans);\n      if (createdSpan) {\n        if (enableHTTPTimings) {\n          addHTTPTimings(createdSpan);\n        }\n\n        let headers;\n        try {\n          headers = new Headers(handlerData.xhr.__sentry_xhr_v3__?.request_headers);\n        } catch {\n          // noop\n        }\n        onRequestSpanStart?.(createdSpan, { headers });\n      }\n    });\n  }\n}\n\nfunction isPerformanceResourceTiming(entry: PerformanceEntry): entry is PerformanceResourceTiming {\n  return (\n    entry.entryType === 'resource' &&\n    'initiatorType' in entry &&\n    typeof (entry as PerformanceResourceTiming).nextHopProtocol === 'string' &&\n    (entry.initiatorType === 'fetch' || entry.initiatorType === 'xmlhttprequest')\n  );\n}\n\n/**\n * Creates a temporary observer to listen to the next fetch/xhr resourcing timings,\n * so that when timings hit their per-browser limit they don't need to be removed.\n *\n * @param span A span that has yet to be finished, must contain `url` on data.\n */\nfunction addHTTPTimings(span: Span): void {\n  const { url } = spanToJSON(span).data;\n\n  if (!url || typeof url !== 'string') {\n    return;\n  }\n\n  const cleanup = addPerformanceInstrumentationHandler('resource', ({ entries }) => {\n    entries.forEach(entry => {\n      if (isPerformanceResourceTiming(entry) && entry.name.endsWith(url)) {\n        const spanAttributes = resourceTimingToSpanAttributes(entry);\n        spanAttributes.forEach(attributeArray => span.setAttribute(...attributeArray));\n        // In the next tick, clean this handler up\n        // We have to wait here because otherwise this cleans itself up before it is fully done\n        setTimeout(cleanup);\n      }\n    });\n  });\n}\n\n/**\n * A function that determines whether to attach tracing headers to a request.\n * We only export this function for testing purposes.\n */\nexport function shouldAttachHeaders(\n  targetUrl: string,\n  tracePropagationTargets: (string | RegExp)[] | undefined,\n): boolean {\n  // window.location.href not being defined is an edge case in the browser but we need to handle it.\n  // Potentially dangerous situations where it may not be defined: Browser Extensions, Web Workers, patching of the location obj\n  const href = getLocationHref();\n\n  if (!href) {\n    // If there is no window.location.origin, we default to only attaching tracing headers to relative requests, i.e. ones that start with `/`\n    // BIG DISCLAIMER: Users can call URLs with a double slash (fetch(\"//example.com/api\")), this is a shorthand for \"send to the same protocol\",\n    // so we need a to exclude those requests, because they might be cross origin.\n    const isRelativeSameOriginRequest = !!targetUrl.match(/^\\/(?!\\/)/);\n    if (!tracePropagationTargets) {\n      return isRelativeSameOriginRequest;\n    } else {\n      return stringMatchesSomePattern(targetUrl, tracePropagationTargets);\n    }\n  } else {\n    let resolvedUrl;\n    let currentOrigin;\n\n    // URL parsing may fail, we default to not attaching trace headers in that case.\n    try {\n      resolvedUrl = new URL(targetUrl, href);\n      currentOrigin = new URL(href).origin;\n    } catch {\n      return false;\n    }\n\n    const isSameOriginRequest = resolvedUrl.origin === currentOrigin;\n    if (!tracePropagationTargets) {\n      return isSameOriginRequest;\n    } else {\n      return (\n        stringMatchesSomePattern(resolvedUrl.toString(), tracePropagationTargets) ||\n        (isSameOriginRequest && stringMatchesSomePattern(resolvedUrl.pathname, tracePropagationTargets))\n      );\n    }\n  }\n}\n\n/**\n * Create and track xhr request spans\n *\n * @returns Span if a span was created, otherwise void.\n */\nexport function xhrCallback(\n  handlerData: HandlerDataXhr,\n  shouldCreateSpan: (url: string) => boolean,\n  shouldAttachHeaders: (url: string) => boolean,\n  spans: Record<string, Span>,\n): Span | undefined {\n  const xhr = handlerData.xhr;\n  const sentryXhrData = xhr?.[SENTRY_XHR_DATA_KEY];\n\n  if (!xhr || xhr.__sentry_own_request__ || !sentryXhrData) {\n    return undefined;\n  }\n\n  const { url, method } = sentryXhrData;\n\n  const shouldCreateSpanResult = hasSpansEnabled() && shouldCreateSpan(url);\n\n  // check first if the request has finished and is tracked by an existing span which should now end\n  if (handlerData.endTimestamp && shouldCreateSpanResult) {\n    const spanId = xhr.__sentry_xhr_span_id__;\n    if (!spanId) return;\n\n    const span = spans[spanId];\n    if (span && sentryXhrData.status_code !== undefined) {\n      setHttpStatus(span, sentryXhrData.status_code);\n      span.end();\n\n      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n      delete spans[spanId];\n    }\n    return undefined;\n  }\n\n  const fullUrl = getFullURL(url);\n  const parsedUrl = fullUrl ? parseUrl(fullUrl) : parseUrl(url);\n\n  const urlForSpanName = stripUrlQueryAndFragment(url);\n\n  const hasParent = !!getActiveSpan();\n\n  const span =\n    shouldCreateSpanResult && hasParent\n      ? startInactiveSpan({\n          name: `${method} ${urlForSpanName}`,\n          attributes: {\n            url,\n            type: 'xhr',\n            'http.method': method,\n            'http.url': fullUrl,\n            'server.address': parsedUrl?.host,\n            [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.browser',\n            [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.client',\n            ...(parsedUrl?.search && { 'http.query': parsedUrl?.search }),\n            ...(parsedUrl?.hash && { 'http.fragment': parsedUrl?.hash }),\n          },\n        })\n      : new SentryNonRecordingSpan();\n\n  xhr.__sentry_xhr_span_id__ = span.spanContext().spanId;\n  spans[xhr.__sentry_xhr_span_id__] = span;\n\n  if (shouldAttachHeaders(url)) {\n    addTracingHeadersToXhrRequest(\n      xhr,\n      // If performance is disabled (TWP) or there's no active root span (pageload/navigation/interaction),\n      // we do not want to use the span as base for the trace headers,\n      // which means that the headers will be generated from the scope and the sampling decision is deferred\n      hasSpansEnabled() && hasParent ? span : undefined,\n    );\n  }\n\n  const client = getClient();\n  if (client) {\n    client.emit('beforeOutgoingRequestSpan', span, handlerData as XhrHint);\n  }\n\n  return span;\n}\n\nfunction addTracingHeadersToXhrRequest(xhr: SentryWrappedXMLHttpRequest, span?: Span): void {\n  const { 'sentry-trace': sentryTrace, baggage } = getTraceData({ span });\n\n  if (sentryTrace) {\n    setHeaderOnXhr(xhr, sentryTrace, baggage);\n  }\n}\n\nfunction setHeaderOnXhr(\n  xhr: SentryWrappedXMLHttpRequest,\n  sentryTraceHeader: string,\n  sentryBaggageHeader: string | undefined,\n): void {\n  const originalHeaders = xhr.__sentry_xhr_v3__?.request_headers;\n\n  if (originalHeaders?.['sentry-trace']) {\n    // bail if a sentry-trace header is already set\n    return;\n  }\n\n  try {\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    xhr.setRequestHeader!('sentry-trace', sentryTraceHeader);\n    if (sentryBaggageHeader) {\n      // only add our headers if\n      // - no pre-existing baggage header exists\n      // - or it is set and doesn't yet contain sentry values\n      const originalBaggageHeader = originalHeaders?.['baggage'];\n      if (!originalBaggageHeader || !baggageHeaderHasSentryValues(originalBaggageHeader)) {\n        // From MDN: \"If this method is called several times with the same header, the values are merged into one single request header.\"\n        // We can therefore simply set a baggage header without checking what was there before\n        // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        xhr.setRequestHeader!('baggage', sentryBaggageHeader);\n      }\n    }\n  } catch {\n    // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n  }\n}\n\nfunction baggageHeaderHasSentryValues(baggageHeader: string): boolean {\n  return baggageHeader.split(',').some(value => value.trim().startsWith('sentry-'));\n}\n\nfunction getFullURL(url: string): string | undefined {\n  try {\n    // By adding a base URL to new URL(), this will also work for relative urls\n    // If `url` is a full URL, the base URL is ignored anyhow\n    const parsed = new URL(url, WINDOW.location.origin);\n    return parsed.href;\n  } catch {\n    return undefined;\n  }\n}\n","/* eslint-disable max-lines */\nimport type { Client, IntegrationFn, Span, StartSpanOptions, TransactionSource, WebFetchHeaders } from '@sentry/core';\nimport {\n  addNonEnumerableProperty,\n  browserPerformanceTimeOrigin,\n  dateTimestampInSeconds,\n  debug,\n  generateTraceId,\n  getClient,\n  getCurrentScope,\n  getDynamicSamplingContextFromSpan,\n  getIsolationScope,\n  getLocationHref,\n  GLOBAL_OBJ,\n  parseStringToURLObject,\n  propagationContextFromHeaders,\n  registerSpanErrorInstrumentation,\n  SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n  spanIsSampled,\n  spanToJSON,\n  startIdleSpan,\n  startInactiveSpan,\n  timestampInSeconds,\n  TRACING_DEFAULTS,\n} from '@sentry/core';\nimport {\n  addHistoryInstrumentationHandler,\n  addPerformanceEntries,\n  registerInpInteractionListener,\n  startTrackingElementTiming,\n  startTrackingINP,\n  startTrackingInteractions,\n  startTrackingLongAnimationFrames,\n  startTrackingLongTasks,\n  startTrackingWebVitals,\n} from '@sentry-internal/browser-utils';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { getHttpRequestData, WINDOW } from '../helpers';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { linkTraces } from './linkedTraces';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request';\n\nexport const BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\ninterface RouteInfo {\n  name: string | undefined;\n  source: TransactionSource | undefined;\n}\n\n/** Options for Browser Tracing integration */\nexport interface BrowserTracingOptions {\n  /**\n   * The time that has to pass without any span being created.\n   * If this time is exceeded, the idle span will finish.\n   *\n   * Default: 1000 (ms)\n   */\n  idleTimeout: number;\n\n  /**\n   * The max. time an idle span may run.\n   * If this time is exceeded, the idle span will finish no matter what.\n   *\n   * Default: 30000 (ms)\n   */\n  finalTimeout: number;\n\n  /**\n   The max. time an idle span may run.\n   * If this time is exceeded, the idle span will finish no matter what.\n   *\n   * Default: 15000 (ms)\n   */\n  childSpanTimeout: number;\n\n  /**\n   * If a span should be created on page load.\n   * If this is set to `false`, this integration will not start the default page load span.\n   * Default: true\n   */\n  instrumentPageLoad: boolean;\n\n  /**\n   * If a span should be created on navigation (history change).\n   * If this is set to `false`, this integration will not start the default navigation spans.\n   * Default: true\n   */\n  instrumentNavigation: boolean;\n\n  /**\n   * Flag spans where tabs moved to background with \"cancelled\". Browser background tab timing is\n   * not suited towards doing precise measurements of operations. By default, we recommend that this option\n   * be enabled as background transactions can mess up your statistics in nondeterministic ways.\n   *\n   * Default: true\n   */\n  markBackgroundSpan: boolean;\n\n  /**\n   * If true, Sentry will capture long tasks and add them to the corresponding transaction.\n   *\n   * Default: true\n   */\n  enableLongTask: boolean;\n\n  /**\n   * If true, Sentry will capture long animation frames and add them to the corresponding transaction.\n   *\n   * Default: false\n   */\n  enableLongAnimationFrame: boolean;\n\n  /**\n   * If true, Sentry will capture first input delay and add it to the corresponding transaction.\n   *\n   * Default: true\n   */\n  enableInp: boolean;\n\n  /**\n   * If true, Sentry will capture [element timing](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming)\n   * information and add it to the corresponding transaction.\n   *\n   * Default: true\n   */\n  enableElementTiming: boolean;\n\n  /**\n   * Flag to disable patching all together for fetch requests.\n   *\n   * Default: true\n   */\n  traceFetch: boolean;\n\n  /**\n   * Flag to disable patching all together for xhr requests.\n   *\n   * Default: true\n   */\n  traceXHR: boolean;\n\n  /**\n   * Flag to disable tracking of long-lived streams, like server-sent events (SSE) via fetch.\n   * Do not enable this in case you have live streams or very long running streams.\n   *\n   * Default: false\n   */\n  trackFetchStreamPerformance: boolean;\n\n  /**\n   * If true, Sentry will capture http timings and add them to the corresponding http spans.\n   *\n   * Default: true\n   */\n  enableHTTPTimings: boolean;\n\n  /**\n   * Resource spans with `op`s matching strings in the array will not be emitted.\n   *\n   * Default: []\n   */\n  ignoreResourceSpans: Array<'resouce.script' | 'resource.css' | 'resource.img' | 'resource.other' | string>;\n\n  /**\n   * Spans created from the following browser Performance APIs,\n   *\n   * - [`performance.mark(...)`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/mark)\n   * - [`performance.measure(...)`](https://developer.mozilla.org/en-US/docs/Web/API/Performance/measure)\n   *\n   * will not be emitted if their names match strings in this array.\n   *\n   * This is useful, if you come across `mark` or `measure` spans in your Sentry traces\n   * that you want to ignore. For example, sometimes, browser extensions or libraries\n   * emit these entries on their own, which might not be relevant to your application.\n   *\n   * * @example\n   * ```ts\n   * Sentry.init({\n   *   integrations: [\n   *     Sentry.browserTracingIntegration({\n   *      ignorePerformanceApiSpans: ['myMeasurement', /myMark/],\n   *     }),\n   *   ],\n   * });\n   *\n   * // no spans will be created for these:\n   * performance.mark('myMark');\n   * performance.measure('myMeasurement');\n   *\n   * // spans will be created for these:\n   * performance.mark('authenticated');\n   * performance.measure('input-duration', ...);\n   * ```\n   *\n   * Default: [] - By default, all `mark` and `measure` entries are sent as spans.\n   */\n  ignorePerformanceApiSpans: Array<string | RegExp>;\n\n  /**\n   * By default, the SDK will try to detect redirects and avoid creating separate spans for them.\n   * If you want to opt-out of this behavior, you can set this option to `false`.\n   *\n   * Default: true\n   */\n  detectRedirects: boolean;\n\n  /**\n   * Link the currently started trace to a previous trace (e.g. a prior pageload, navigation or\n   * manually started span). When enabled, this option will allow you to navigate between traces\n   * in the Sentry UI.\n   *\n   * You can set this option to the following values:\n   *\n   * - `'in-memory'`: The previous trace data will be stored in memory.\n   *   This is useful for single-page applications and enabled by default.\n   *\n   * - `'session-storage'`: The previous trace data will be stored in the `sessionStorage`.\n   *   This is useful for multi-page applications or static sites but it means that the\n   *   Sentry SDK writes to the browser's `sessionStorage`.\n   *\n   * - `'off'`: The previous trace data will not be stored or linked.\n   *\n   * You can also use {@link BrowserTracingOptions.consistentTraceSampling} to get\n   * consistent trace sampling of subsequent traces. Otherwise, by default, your\n   * `tracesSampleRate` or `tracesSampler` config significantly influences how often\n   * traces will be linked.\n   *\n   * @default 'in-memory' - see explanation above\n   */\n  linkPreviousTrace: 'in-memory' | 'session-storage' | 'off';\n\n  /**\n   * If true, Sentry will consistently sample subsequent traces based on the\n   * sampling decision of the initial trace. For example, if the initial page\n   * load trace was sampled positively, all subsequent traces (e.g. navigations)\n   * are also sampled positively. In case the initial trace was sampled negatively,\n   * all subsequent traces are also sampled negatively.\n   *\n   * This option allows you to get consistent, linked traces within a user journey\n   * while maintaining an overall quota based on your trace sampling settings.\n   *\n   * This option is only effective if {@link BrowserTracingOptions.linkPreviousTrace}\n   * is enabled (i.e. not set to `'off'`).\n   *\n   * @default `false` - this is an opt-in feature.\n   */\n  consistentTraceSampling: boolean;\n\n  /**\n   * _experiments allows the user to send options to define how this integration works.\n   *\n   * Default: undefined\n   */\n  _experiments: Partial<{\n    enableInteractions: boolean;\n    enableStandaloneClsSpans: boolean;\n    enableStandaloneLcpSpans: boolean;\n  }>;\n\n  /**\n   * A callback which is called before a span for a pageload or navigation is started.\n   * It receives the options passed to `startSpan`, and expects to return an updated options object.\n   */\n  beforeStartSpan?: (options: StartSpanOptions) => StartSpanOptions;\n\n  /**\n   * This function will be called before creating a span for a request with the given url.\n   * Return false if you don't want a span for the given url.\n   *\n   * Default: (url: string) => true\n   */\n  shouldCreateSpanForRequest?(this: void, url: string): boolean;\n\n  /**\n   * This callback is invoked directly after a span is started for an outgoing fetch or XHR request.\n   * You can use it to annotate the span with additional data or attributes, for example by setting\n   * attributes based on the passed request headers.\n   */\n  onRequestSpanStart?(span: Span, requestInformation: { headers?: WebFetchHeaders }): void;\n}\n\nconst DEFAULT_BROWSER_TRACING_OPTIONS: BrowserTracingOptions = {\n  ...TRACING_DEFAULTS,\n  instrumentNavigation: true,\n  instrumentPageLoad: true,\n  markBackgroundSpan: true,\n  enableLongTask: true,\n  enableLongAnimationFrame: true,\n  enableInp: true,\n  enableElementTiming: true,\n  ignoreResourceSpans: [],\n  ignorePerformanceApiSpans: [],\n  detectRedirects: true,\n  linkPreviousTrace: 'in-memory',\n  consistentTraceSampling: false,\n  _experiments: {},\n  ...defaultRequestInstrumentationOptions,\n};\n\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library.\n *\n * We explicitly export the proper type here, as this has to be extended in some cases.\n */\nexport const browserTracingIntegration = ((_options: Partial<BrowserTracingOptions> = {}) => {\n  const latestRoute: RouteInfo = {\n    name: undefined,\n    source: undefined,\n  };\n\n  /**\n   * This is just a small wrapper that makes `document` optional.\n   * We want to be extra-safe and always check that this exists, to ensure weird environments do not blow up.\n   */\n  const optionalWindowDocument = WINDOW.document as (typeof WINDOW)['document'] | undefined;\n\n  const {\n    enableInp,\n    enableElementTiming,\n    enableLongTask,\n    enableLongAnimationFrame,\n    _experiments: { enableInteractions, enableStandaloneClsSpans, enableStandaloneLcpSpans },\n    beforeStartSpan,\n    idleTimeout,\n    finalTimeout,\n    childSpanTimeout,\n    markBackgroundSpan,\n    traceFetch,\n    traceXHR,\n    trackFetchStreamPerformance,\n    shouldCreateSpanForRequest,\n    enableHTTPTimings,\n    ignoreResourceSpans,\n    ignorePerformanceApiSpans,\n    instrumentPageLoad,\n    instrumentNavigation,\n    detectRedirects,\n    linkPreviousTrace,\n    consistentTraceSampling,\n    onRequestSpanStart,\n  } = {\n    ...DEFAULT_BROWSER_TRACING_OPTIONS,\n    ..._options,\n  };\n\n  let _collectWebVitals: undefined | (() => void);\n  let lastInteractionTimestamp: number | undefined;\n\n  /** Create routing idle transaction. */\n  function _createRouteSpan(client: Client, startSpanOptions: StartSpanOptions, makeActive = true): void {\n    const isPageloadTransaction = startSpanOptions.op === 'pageload';\n\n    const finalStartSpanOptions: StartSpanOptions = beforeStartSpan\n      ? beforeStartSpan(startSpanOptions)\n      : startSpanOptions;\n\n    const attributes = finalStartSpanOptions.attributes || {};\n\n    // If `finalStartSpanOptions.name` is different than `startSpanOptions.name`\n    // it is because `beforeStartSpan` set a custom name. Therefore we set the source to 'custom'.\n    if (startSpanOptions.name !== finalStartSpanOptions.name) {\n      attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'custom';\n      finalStartSpanOptions.attributes = attributes;\n    }\n\n    if (!makeActive) {\n      // We want to ensure this has 0s duration\n      const now = dateTimestampInSeconds();\n      startInactiveSpan({\n        ...finalStartSpanOptions,\n        startTime: now,\n      }).end(now);\n      return;\n    }\n\n    latestRoute.name = finalStartSpanOptions.name;\n    latestRoute.source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n    const idleSpan = startIdleSpan(finalStartSpanOptions, {\n      idleTimeout,\n      finalTimeout,\n      childSpanTimeout,\n      // should wait for finish signal if it's a pageload transaction\n      disableAutoFinish: isPageloadTransaction,\n      beforeSpanEnd: span => {\n        // This will generally always be defined here, because it is set in `setup()` of the integration\n        // but technically, it is optional, so we guard here to be extra safe\n        _collectWebVitals?.();\n        addPerformanceEntries(span, {\n          recordClsOnPageloadSpan: !enableStandaloneClsSpans,\n          recordLcpOnPageloadSpan: !enableStandaloneLcpSpans,\n          ignoreResourceSpans,\n          ignorePerformanceApiSpans,\n        });\n        setActiveIdleSpan(client, undefined);\n\n        // A trace should stay consistent over the entire timespan of one route - even after the pageload/navigation ended.\n        // Only when another navigation happens, we want to create a new trace.\n        // This way, e.g. errors that occur after the pageload span ended are still associated to the pageload trace.\n        const scope = getCurrentScope();\n        const oldPropagationContext = scope.getPropagationContext();\n\n        scope.setPropagationContext({\n          ...oldPropagationContext,\n          traceId: idleSpan.spanContext().traceId,\n          sampled: spanIsSampled(idleSpan),\n          dsc: getDynamicSamplingContextFromSpan(span),\n        });\n      },\n    });\n\n    setActiveIdleSpan(client, idleSpan);\n\n    function emitFinish(): void {\n      if (optionalWindowDocument && ['interactive', 'complete'].includes(optionalWindowDocument.readyState)) {\n        client.emit('idleSpanEnableAutoFinish', idleSpan);\n      }\n    }\n\n    if (isPageloadTransaction && optionalWindowDocument) {\n      optionalWindowDocument.addEventListener('readystatechange', () => {\n        emitFinish();\n      });\n\n      emitFinish();\n    }\n  }\n\n  return {\n    name: BROWSER_TRACING_INTEGRATION_ID,\n    setup(client) {\n      registerSpanErrorInstrumentation();\n\n      _collectWebVitals = startTrackingWebVitals({\n        recordClsStandaloneSpans: enableStandaloneClsSpans || false,\n        recordLcpStandaloneSpans: enableStandaloneLcpSpans || false,\n        client,\n      });\n\n      if (enableInp) {\n        startTrackingINP();\n      }\n\n      if (enableElementTiming) {\n        startTrackingElementTiming();\n      }\n\n      if (\n        enableLongAnimationFrame &&\n        GLOBAL_OBJ.PerformanceObserver &&\n        PerformanceObserver.supportedEntryTypes &&\n        PerformanceObserver.supportedEntryTypes.includes('long-animation-frame')\n      ) {\n        startTrackingLongAnimationFrames();\n      } else if (enableLongTask) {\n        startTrackingLongTasks();\n      }\n\n      if (enableInteractions) {\n        startTrackingInteractions();\n      }\n\n      if (detectRedirects && optionalWindowDocument) {\n        const interactionHandler = (): void => {\n          lastInteractionTimestamp = timestampInSeconds();\n        };\n        addEventListener('click', interactionHandler, { capture: true });\n        addEventListener('keydown', interactionHandler, { capture: true, passive: true });\n      }\n\n      function maybeEndActiveSpan(): void {\n        const activeSpan = getActiveIdleSpan(client);\n\n        if (activeSpan && !spanToJSON(activeSpan).timestamp) {\n          DEBUG_BUILD && debug.log(`[Tracing] Finishing current active span with op: ${spanToJSON(activeSpan).op}`);\n          // If there's an open active span, we need to finish it before creating an new one.\n          activeSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, 'cancelled');\n          activeSpan.end();\n        }\n      }\n\n      client.on('startNavigationSpan', (startSpanOptions, navigationOptions) => {\n        if (getClient() !== client) {\n          return;\n        }\n\n        if (navigationOptions?.isRedirect) {\n          DEBUG_BUILD &&\n            debug.warn('[Tracing] Detected redirect, navigation span will not be the root span, but a child span.');\n          _createRouteSpan(\n            client,\n            {\n              op: 'navigation.redirect',\n              ...startSpanOptions,\n            },\n            false,\n          );\n          return;\n        }\n\n        // Reset the last interaction timestamp since we now start a new navigation.\n        // Any subsequent navigation span starts could again be a redirect, so we\n        // should reset our heuristic detectors.\n        lastInteractionTimestamp = undefined;\n\n        maybeEndActiveSpan();\n\n        getIsolationScope().setPropagationContext({ traceId: generateTraceId(), sampleRand: Math.random() });\n\n        const scope = getCurrentScope();\n        scope.setPropagationContext({ traceId: generateTraceId(), sampleRand: Math.random() });\n        // We reset this to ensure we do not have lingering incorrect data here\n        // places that call this hook may set this where appropriate - else, the URL at span sending time is used\n        scope.setSDKProcessingMetadata({\n          normalizedRequest: undefined,\n        });\n\n        _createRouteSpan(client, {\n          op: 'navigation',\n          ...startSpanOptions,\n        });\n      });\n\n      client.on('startPageLoadSpan', (startSpanOptions, traceOptions = {}) => {\n        if (getClient() !== client) {\n          return;\n        }\n        maybeEndActiveSpan();\n\n        const sentryTrace = traceOptions.sentryTrace || getMetaContent('sentry-trace');\n        const baggage = traceOptions.baggage || getMetaContent('baggage');\n\n        const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n\n        const scope = getCurrentScope();\n        scope.setPropagationContext(propagationContext);\n\n        // We store the normalized request data on the scope, so we get the request data at time of span creation\n        // otherwise, the URL etc. may already be of the following navigation, and we'd report the wrong URL\n        scope.setSDKProcessingMetadata({\n          normalizedRequest: getHttpRequestData(),\n        });\n\n        _createRouteSpan(client, {\n          op: 'pageload',\n          ...startSpanOptions,\n        });\n      });\n    },\n    afterAllSetup(client) {\n      let startingUrl: string | undefined = getLocationHref();\n\n      if (linkPreviousTrace !== 'off') {\n        linkTraces(client, { linkPreviousTrace, consistentTraceSampling });\n      }\n\n      if (WINDOW.location) {\n        if (instrumentPageLoad) {\n          const origin = browserPerformanceTimeOrigin();\n          startBrowserTracingPageLoadSpan(client, {\n            name: WINDOW.location.pathname,\n            // pageload should always start at timeOrigin (and needs to be in s, not ms)\n            startTime: origin ? origin / 1000 : undefined,\n            attributes: {\n              [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n              [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.pageload.browser',\n            },\n          });\n        }\n\n        if (instrumentNavigation) {\n          addHistoryInstrumentationHandler(({ to, from }) => {\n            /**\n             * This early return is there to account for some cases where a navigation transaction starts right after\n             * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n             * create an uneccessary navigation transaction.\n             *\n             * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n             * only be caused in certain development environments where the usage of a hot module reloader is causing\n             * errors.\n             */\n            if (from === undefined && startingUrl?.indexOf(to) !== -1) {\n              startingUrl = undefined;\n              return;\n            }\n\n            startingUrl = undefined;\n            const parsed = parseStringToURLObject(to);\n            const activeSpan = getActiveIdleSpan(client);\n            const navigationIsRedirect =\n              activeSpan && detectRedirects && isRedirect(activeSpan, lastInteractionTimestamp);\n\n            startBrowserTracingNavigationSpan(\n              client,\n              {\n                name: parsed?.pathname || WINDOW.location.pathname,\n                attributes: {\n                  [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n                  [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.navigation.browser',\n                },\n              },\n              { url: to, isRedirect: navigationIsRedirect },\n            );\n          });\n        }\n      }\n\n      if (markBackgroundSpan) {\n        registerBackgroundTabDetection();\n      }\n\n      if (enableInteractions) {\n        registerInteractionListener(client, idleTimeout, finalTimeout, childSpanTimeout, latestRoute);\n      }\n\n      if (enableInp) {\n        registerInpInteractionListener();\n      }\n\n      instrumentOutgoingRequests(client, {\n        traceFetch,\n        traceXHR,\n        trackFetchStreamPerformance,\n        tracePropagationTargets: client.getOptions().tracePropagationTargets,\n        shouldCreateSpanForRequest,\n        enableHTTPTimings,\n        onRequestSpanStart,\n      });\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Manually start a page load span.\n * This will only do something if a browser tracing integration integration has been setup.\n *\n * If you provide a custom `traceOptions` object, it will be used to continue the trace\n * instead of the default behavior, which is to look it up on the <meta> tags.\n */\nexport function startBrowserTracingPageLoadSpan(\n  client: Client,\n  spanOptions: StartSpanOptions,\n  traceOptions?: { sentryTrace?: string | undefined; baggage?: string | undefined },\n): Span | undefined {\n  client.emit('startPageLoadSpan', spanOptions, traceOptions);\n  getCurrentScope().setTransactionName(spanOptions.name);\n\n  const pageloadSpan = getActiveIdleSpan(client);\n\n  if (pageloadSpan) {\n    client.emit('afterStartPageLoadSpan', pageloadSpan);\n  }\n\n  return pageloadSpan;\n}\n\n/**\n * Manually start a navigation span.\n * This will only do something if a browser tracing integration has been setup.\n */\nexport function startBrowserTracingNavigationSpan(\n  client: Client,\n  spanOptions: StartSpanOptions,\n  options?: { url?: string; isRedirect?: boolean },\n): Span | undefined {\n  const { url, isRedirect } = options || {};\n  client.emit('beforeStartNavigationSpan', spanOptions, { isRedirect });\n  client.emit('startNavigationSpan', spanOptions, { isRedirect });\n\n  const scope = getCurrentScope();\n  scope.setTransactionName(spanOptions.name);\n\n  // We store the normalized request data on the scope, so we get the request data at time of span creation\n  // otherwise, the URL etc. may already be of the following navigation, and we'd report the wrong URL\n  if (url && !isRedirect) {\n    scope.setSDKProcessingMetadata({\n      normalizedRequest: {\n        ...getHttpRequestData(),\n        url,\n      },\n    });\n  }\n\n  return getActiveIdleSpan(client);\n}\n\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName: string): string | undefined {\n  /**\n   * This is just a small wrapper that makes `document` optional.\n   * We want to be extra-safe and always check that this exists, to ensure weird environments do not blow up.\n   */\n  const optionalWindowDocument = WINDOW.document as (typeof WINDOW)['document'] | undefined;\n\n  const metaTag = optionalWindowDocument?.querySelector(`meta[name=${metaName}]`);\n  return metaTag?.getAttribute('content') || undefined;\n}\n\n/** Start listener for interaction transactions */\nfunction registerInteractionListener(\n  client: Client,\n  idleTimeout: BrowserTracingOptions['idleTimeout'],\n  finalTimeout: BrowserTracingOptions['finalTimeout'],\n  childSpanTimeout: BrowserTracingOptions['childSpanTimeout'],\n  latestRoute: RouteInfo,\n): void {\n  /**\n   * This is just a small wrapper that makes `document` optional.\n   * We want to be extra-safe and always check that this exists, to ensure weird environments do not blow up.\n   */\n  const optionalWindowDocument = WINDOW.document as (typeof WINDOW)['document'] | undefined;\n\n  let inflightInteractionSpan: Span | undefined;\n  const registerInteractionTransaction = (): void => {\n    const op = 'ui.action.click';\n\n    const activeIdleSpan = getActiveIdleSpan(client);\n    if (activeIdleSpan) {\n      const currentRootSpanOp = spanToJSON(activeIdleSpan).op;\n      if (['navigation', 'pageload'].includes(currentRootSpanOp as string)) {\n        DEBUG_BUILD &&\n          debug.warn(`[Tracing] Did not create ${op} span because a pageload or navigation span is in progress.`);\n        return undefined;\n      }\n    }\n\n    if (inflightInteractionSpan) {\n      inflightInteractionSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, 'interactionInterrupted');\n      inflightInteractionSpan.end();\n      inflightInteractionSpan = undefined;\n    }\n\n    if (!latestRoute.name) {\n      DEBUG_BUILD && debug.warn(`[Tracing] Did not create ${op} transaction because _latestRouteName is missing.`);\n      return undefined;\n    }\n\n    inflightInteractionSpan = startIdleSpan(\n      {\n        name: latestRoute.name,\n        op,\n        attributes: {\n          [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: latestRoute.source || 'url',\n        },\n      },\n      {\n        idleTimeout,\n        finalTimeout,\n        childSpanTimeout,\n      },\n    );\n  };\n\n  if (optionalWindowDocument) {\n    addEventListener('click', registerInteractionTransaction, { capture: true });\n  }\n}\n\n// We store the active idle span on the client object, so we can access it from exported functions\nconst ACTIVE_IDLE_SPAN_PROPERTY = '_sentry_idleSpan';\nfunction getActiveIdleSpan(client: Client): Span | undefined {\n  return (client as { [ACTIVE_IDLE_SPAN_PROPERTY]?: Span })[ACTIVE_IDLE_SPAN_PROPERTY];\n}\n\nfunction setActiveIdleSpan(client: Client, span: Span | undefined): void {\n  addNonEnumerableProperty(client, ACTIVE_IDLE_SPAN_PROPERTY, span);\n}\n\n// The max. time in seconds between two pageload/navigation spans that makes us consider the second one a redirect\nconst REDIRECT_THRESHOLD = 1.5;\n\nfunction isRedirect(activeSpan: Span, lastInteractionTimestamp: number | undefined): boolean {\n  const spanData = spanToJSON(activeSpan);\n\n  const now = dateTimestampInSeconds();\n\n  // More than REDIRECT_THRESHOLD seconds since last navigation/pageload span?\n  // --> never consider this a redirect\n  const startTimestamp = spanData.start_timestamp;\n  if (now - startTimestamp > REDIRECT_THRESHOLD) {\n    return false;\n  }\n\n  // A click happened in the last REDIRECT_THRESHOLD seconds?\n  // --> never consider this a redirect\n  if (lastInteractionTimestamp && now - lastInteractionTimestamp <= REDIRECT_THRESHOLD) {\n    return false;\n  }\n\n  return true;\n}\n","import { debug, getActiveSpan, getRootSpan, SPAN_STATUS_ERROR, spanToJSON } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nexport function registerBackgroundTabDetection(): void {\n  if (WINDOW.document) {\n    WINDOW.document.addEventListener('visibilitychange', () => {\n      const activeSpan = getActiveSpan();\n      if (!activeSpan) {\n        return;\n      }\n\n      const rootSpan = getRootSpan(activeSpan);\n\n      if (WINDOW.document.hidden && rootSpan) {\n        const cancelledStatus = 'cancelled';\n\n        const { op, status } = spanToJSON(rootSpan);\n\n        if (DEBUG_BUILD) {\n          debug.log(`[Tracing] Transaction: ${cancelledStatus} -> since tab moved to the background, op: ${op}`);\n        }\n\n        // We should not set status if it is already set, this prevent important statuses like\n        // error or data loss from being overwritten on transaction.\n        if (!status) {\n          rootSpan.setStatus({ code: SPAN_STATUS_ERROR, message: cancelledStatus });\n        }\n\n        rootSpan.setAttribute('sentry.cancellation_reason', 'document.hidden');\n        rootSpan.end();\n      }\n    });\n  } else {\n    DEBUG_BUILD && debug.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n  }\n}\n","/* eslint-disable max-lines */\nimport type { DebugImage, Envelope, Event, EventEnvelope, Profile, Span, ThreadCpuProfile } from '@sentry/core';\nimport {\n  browserPerformanceTimeOrigin,\n  debug,\n  DEFAULT_ENVIRONMENT,\n  forEachEnvelopeItem,\n  getClient,\n  getDebugImagesForResources,\n  spanToJSON,\n  timestampInSeconds,\n  uuid4,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\nimport type { JSSelfProfile, JSSelfProfiler, JSSelfProfilerConstructor, JSSelfProfileStack } from './jsSelfProfiling';\n\nconst MS_TO_NS = 1e6;\n// Use 0 as main thread id which is identical to threadId in node:worker_threads\n// where main logs 0 and workers seem to log in increments of 1\nconst THREAD_ID_STRING = String(0);\nconst THREAD_NAME = 'main';\n\n// We force make this optional to be on the safe side...\nconst navigator = WINDOW.navigator as typeof WINDOW.navigator | undefined;\n\n// Machine properties (eval only once)\nlet OS_PLATFORM = '';\nlet OS_PLATFORM_VERSION = '';\nlet OS_ARCH = '';\nlet OS_BROWSER = navigator?.userAgent || '';\nlet OS_MODEL = '';\nconst OS_LOCALE = navigator?.language || navigator?.languages?.[0] || '';\n\ntype UAData = {\n  platform?: string;\n  architecture?: string;\n  model?: string;\n  platformVersion?: string;\n  fullVersionList?: {\n    brand: string;\n    version: string;\n  }[];\n};\n\ninterface UserAgentData {\n  getHighEntropyValues: (keys: string[]) => Promise<UAData>;\n}\n\nfunction isUserAgentData(data: unknown): data is UserAgentData {\n  return typeof data === 'object' && data !== null && 'getHighEntropyValues' in data;\n}\n\n// @ts-expect-error userAgentData is not part of the navigator interface yet\nconst userAgentData = navigator?.userAgentData;\n\nif (isUserAgentData(userAgentData)) {\n  userAgentData\n    .getHighEntropyValues(['architecture', 'model', 'platform', 'platformVersion', 'fullVersionList'])\n    .then((ua: UAData) => {\n      OS_PLATFORM = ua.platform || '';\n      OS_ARCH = ua.architecture || '';\n      OS_MODEL = ua.model || '';\n      OS_PLATFORM_VERSION = ua.platformVersion || '';\n\n      if (ua.fullVersionList?.length) {\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        const firstUa = ua.fullVersionList[ua.fullVersionList.length - 1]!;\n        OS_BROWSER = `${firstUa.brand} ${firstUa.version}`;\n      }\n    })\n    .catch(e => void e);\n}\n\nfunction isProcessedJSSelfProfile(profile: ThreadCpuProfile | JSSelfProfile): profile is JSSelfProfile {\n  return !('thread_metadata' in profile);\n}\n\n// Enriches the profile with threadId of the current thread.\n// This is done in node as we seem to not be able to get the info from C native code.\n/**\n *\n */\nexport function enrichWithThreadInformation(profile: ThreadCpuProfile | JSSelfProfile): ThreadCpuProfile {\n  if (!isProcessedJSSelfProfile(profile)) {\n    return profile;\n  }\n\n  return convertJSSelfProfileToSampledFormat(profile);\n}\n\n// Profile is marked as optional because it is deleted from the metadata\n// by the integration before the event is processed by other integrations.\nexport interface ProfiledEvent extends Event {\n  sdkProcessingMetadata: {\n    profile?: JSSelfProfile;\n  };\n}\n\nfunction getTraceId(event: Event): string {\n  const traceId: unknown = event.contexts?.trace?.trace_id;\n  // Log a warning if the profile has an invalid traceId (should be uuidv4).\n  // All profiles and transactions are rejected if this is the case and we want to\n  // warn users that this is happening if they enable debug flag\n  if (typeof traceId === 'string' && traceId.length !== 32) {\n    if (DEBUG_BUILD) {\n      debug.log(`[Profiling] Invalid traceId: ${traceId} on profiled event`);\n    }\n  }\n  if (typeof traceId !== 'string') {\n    return '';\n  }\n\n  return traceId;\n}\n/**\n * Creates a profiling event envelope from a Sentry event. If profile does not pass\n * validation, returns null.\n * @param event\n * @param dsn\n * @param metadata\n * @param tunnel\n * @returns {EventEnvelope | null}\n */\n\n/**\n * Creates a profiling event envelope from a Sentry event.\n */\nexport function createProfilePayload(\n  profile_id: string,\n  start_timestamp: number | undefined,\n  processed_profile: JSSelfProfile,\n  event: ProfiledEvent,\n): Profile {\n  if (event.type !== 'transaction') {\n    // createProfilingEventEnvelope should only be called for transactions,\n    // we type guard this behavior with isProfiledTransactionEvent.\n    throw new TypeError('Profiling events may only be attached to transactions, this should never occur.');\n  }\n\n  if (processed_profile === undefined || processed_profile === null) {\n    throw new TypeError(\n      `Cannot construct profiling event envelope without a valid profile. Got ${processed_profile} instead.`,\n    );\n  }\n\n  const traceId = getTraceId(event);\n  const enrichedThreadProfile = enrichWithThreadInformation(processed_profile);\n  const transactionStartMs = start_timestamp\n    ? start_timestamp\n    : typeof event.start_timestamp === 'number'\n      ? event.start_timestamp * 1000\n      : timestampInSeconds() * 1000;\n  const transactionEndMs = typeof event.timestamp === 'number' ? event.timestamp * 1000 : timestampInSeconds() * 1000;\n\n  const profile: Profile = {\n    event_id: profile_id,\n    timestamp: new Date(transactionStartMs).toISOString(),\n    platform: 'javascript',\n    version: '1',\n    release: event.release || '',\n    environment: event.environment || DEFAULT_ENVIRONMENT,\n    runtime: {\n      name: 'javascript',\n      version: WINDOW.navigator.userAgent,\n    },\n    os: {\n      name: OS_PLATFORM,\n      version: OS_PLATFORM_VERSION,\n      build_number: OS_BROWSER,\n    },\n    device: {\n      locale: OS_LOCALE,\n      model: OS_MODEL,\n      manufacturer: OS_BROWSER,\n      architecture: OS_ARCH,\n      is_emulator: false,\n    },\n    debug_meta: {\n      images: applyDebugMetadata(processed_profile.resources),\n    },\n    profile: enrichedThreadProfile,\n    transactions: [\n      {\n        name: event.transaction || '',\n        id: event.event_id || uuid4(),\n        trace_id: traceId,\n        active_thread_id: THREAD_ID_STRING,\n        relative_start_ns: '0',\n        relative_end_ns: ((transactionEndMs - transactionStartMs) * 1e6).toFixed(0),\n      },\n    ],\n  };\n\n  return profile;\n}\n\n/**\n *\n */\nexport function isProfiledTransactionEvent(event: Event): event is ProfiledEvent {\n  return !!event.sdkProcessingMetadata?.profile;\n}\n\n/*\n  See packages/browser-utils/src/browser/router.ts\n*/\n/**\n *\n */\nexport function isAutomatedPageLoadSpan(span: Span): boolean {\n  return spanToJSON(span).op === 'pageload';\n}\n\n/**\n * Converts a JSSelfProfile to a our sampled format.\n * Does not currently perform stack indexing.\n */\nexport function convertJSSelfProfileToSampledFormat(input: JSSelfProfile): Profile['profile'] {\n  let EMPTY_STACK_ID: undefined | number = undefined;\n  let STACK_ID = 0;\n\n  // Initialize the profile that we will fill with data\n  const profile: Profile['profile'] = {\n    samples: [],\n    stacks: [],\n    frames: [],\n    thread_metadata: {\n      [THREAD_ID_STRING]: { name: THREAD_NAME },\n    },\n  };\n\n  const firstSample = input.samples[0];\n  if (!firstSample) {\n    return profile;\n  }\n\n  // We assert samples.length > 0 above and timestamp should always be present\n  const start = firstSample.timestamp;\n  // The JS SDK might change it's time origin based on some heuristic (see See packages/utils/src/time.ts)\n  // when that happens, we need to ensure we are correcting the profile timings so the two timelines stay in sync.\n  // Since JS self profiling time origin is always initialized to performance.timeOrigin, we need to adjust for\n  // the drift between the SDK selected value and our profile time origin.\n  const perfOrigin = browserPerformanceTimeOrigin();\n  const origin = typeof performance.timeOrigin === 'number' ? performance.timeOrigin : perfOrigin || 0;\n  const adjustForOriginChange = origin - (perfOrigin || origin);\n\n  input.samples.forEach((jsSample, i) => {\n    // If sample has no stack, add an empty sample\n    if (jsSample.stackId === undefined) {\n      if (EMPTY_STACK_ID === undefined) {\n        EMPTY_STACK_ID = STACK_ID;\n        profile.stacks[EMPTY_STACK_ID] = [];\n        STACK_ID++;\n      }\n\n      profile['samples'][i] = {\n        // convert ms timestamp to ns\n        elapsed_since_start_ns: ((jsSample.timestamp + adjustForOriginChange - start) * MS_TO_NS).toFixed(0),\n        stack_id: EMPTY_STACK_ID,\n        thread_id: THREAD_ID_STRING,\n      };\n      return;\n    }\n\n    let stackTop: JSSelfProfileStack | undefined = input.stacks[jsSample.stackId];\n\n    // Functions in top->down order (root is last)\n    // We follow the stackTop.parentId trail and collect each visited frameId\n    const stack: number[] = [];\n\n    while (stackTop) {\n      stack.push(stackTop.frameId);\n\n      const frame = input.frames[stackTop.frameId];\n\n      // If our frame has not been indexed yet, index it\n      if (frame && profile.frames[stackTop.frameId] === undefined) {\n        profile.frames[stackTop.frameId] = {\n          function: frame.name,\n          abs_path: typeof frame.resourceId === 'number' ? input.resources[frame.resourceId] : undefined,\n          lineno: frame.line,\n          colno: frame.column,\n        };\n      }\n\n      stackTop = stackTop.parentId === undefined ? undefined : input.stacks[stackTop.parentId];\n    }\n\n    const sample: Profile['profile']['samples'][0] = {\n      // convert ms timestamp to ns\n      elapsed_since_start_ns: ((jsSample.timestamp + adjustForOriginChange - start) * MS_TO_NS).toFixed(0),\n      stack_id: STACK_ID,\n      thread_id: THREAD_ID_STRING,\n    };\n\n    profile['stacks'][STACK_ID] = stack;\n    profile['samples'][i] = sample;\n    STACK_ID++;\n  });\n\n  return profile;\n}\n\n/**\n * Adds items to envelope if they are not already present - mutates the envelope.\n * @param envelope\n */\nexport function addProfilesToEnvelope(envelope: EventEnvelope, profiles: Profile[]): Envelope {\n  if (!profiles.length) {\n    return envelope;\n  }\n\n  for (const profile of profiles) {\n    envelope[1].push([{ type: 'profile' }, profile]);\n  }\n  return envelope;\n}\n\n/**\n * Finds transactions with profile_id context in the envelope\n * @param envelope\n * @returns\n */\nexport function findProfiledTransactionsFromEnvelope(envelope: Envelope): Event[] {\n  const events: Event[] = [];\n\n  forEachEnvelopeItem(envelope, (item, type) => {\n    if (type !== 'transaction') {\n      return;\n    }\n\n    for (let j = 1; j < item.length; j++) {\n      const event = item[j] as Event;\n\n      if (event?.contexts?.profile?.profile_id) {\n        events.push(item[j] as Event);\n      }\n    }\n  });\n\n  return events;\n}\n\n/**\n * Applies debug meta data to an event from a list of paths to resources (sourcemaps)\n */\nexport function applyDebugMetadata(resource_paths: ReadonlyArray<string>): DebugImage[] {\n  const client = getClient();\n  const options = client?.getOptions();\n  const stackParser = options?.stackParser;\n\n  if (!stackParser) {\n    return [];\n  }\n\n  return getDebugImagesForResources(stackParser, resource_paths);\n}\n\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nexport function isValidSampleRate(rate: unknown): boolean {\n  // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n  if ((typeof rate !== 'number' && typeof rate !== 'boolean') || (typeof rate === 'number' && isNaN(rate))) {\n    DEBUG_BUILD &&\n      debug.warn(\n        `[Profiling] Invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n          rate,\n        )} of type ${JSON.stringify(typeof rate)}.`,\n      );\n    return false;\n  }\n\n  // Boolean sample rates are always valid\n  if (rate === true || rate === false) {\n    return true;\n  }\n\n  // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n  if (rate < 0 || rate > 1) {\n    DEBUG_BUILD && debug.warn(`[Profiling] Invalid sample rate. Sample rate must be between 0 and 1. Got ${rate}.`);\n    return false;\n  }\n  return true;\n}\n\nfunction isValidProfile(profile: JSSelfProfile): profile is JSSelfProfile & { profile_id: string } {\n  if (profile.samples.length < 2) {\n    if (DEBUG_BUILD) {\n      // Log a warning if the profile has less than 2 samples so users can know why\n      // they are not seeing any profiling data and we cant avoid the back and forth\n      // of asking them to provide us with a dump of the profile data.\n      debug.log('[Profiling] Discarding profile because it contains less than 2 samples');\n    }\n    return false;\n  }\n\n  if (!profile.frames.length) {\n    if (DEBUG_BUILD) {\n      debug.log('[Profiling] Discarding profile because it contains no frames');\n    }\n    return false;\n  }\n\n  return true;\n}\n\n// Keep a flag value to avoid re-initializing the profiler constructor. If it fails\n// once, it will always fail and this allows us to early return.\nlet PROFILING_CONSTRUCTOR_FAILED: boolean = false;\nexport const MAX_PROFILE_DURATION_MS = 30_000;\n\n/**\n * Check if profiler constructor is available.\n * @param maybeProfiler\n */\nfunction isJSProfilerSupported(maybeProfiler: unknown): maybeProfiler is typeof JSSelfProfilerConstructor {\n  return typeof maybeProfiler === 'function';\n}\n\n/**\n * Starts the profiler and returns the profiler instance.\n */\nexport function startJSSelfProfile(): JSSelfProfiler | undefined {\n  // Feature support check first\n  const JSProfilerConstructor = WINDOW.Profiler;\n\n  if (!isJSProfilerSupported(JSProfilerConstructor)) {\n    if (DEBUG_BUILD) {\n      debug.log('[Profiling] Profiling is not supported by this browser, Profiler interface missing on window object.');\n    }\n    return;\n  }\n\n  // From initial testing, it seems that the minimum value for sampleInterval is 10ms.\n  const samplingIntervalMS = 10;\n  // Start the profiler\n  const maxSamples = Math.floor(MAX_PROFILE_DURATION_MS / samplingIntervalMS);\n\n  // Attempt to initialize the profiler constructor, if it fails, we disable profiling for the current user session.\n  // This is likely due to a missing 'Document-Policy': 'js-profiling' header. We do not want to throw an error if this happens\n  // as we risk breaking the user's application, so just disable profiling and log an error.\n  try {\n    return new JSProfilerConstructor({ sampleInterval: samplingIntervalMS, maxBufferSize: maxSamples });\n  } catch (e) {\n    if (DEBUG_BUILD) {\n      debug.log(\n        \"[Profiling] Failed to initialize the Profiling constructor, this is likely due to a missing 'Document-Policy': 'js-profiling' header.\",\n      );\n      debug.log('[Profiling] Disabling profiling for current user session.');\n    }\n    PROFILING_CONSTRUCTOR_FAILED = true;\n  }\n\n  return;\n}\n\n/**\n * Determine if a profile should be profiled.\n */\nexport function shouldProfileSpan(span: Span): boolean {\n  // If constructor failed once, it will always fail, so we can early return.\n  if (PROFILING_CONSTRUCTOR_FAILED) {\n    if (DEBUG_BUILD) {\n      debug.log('[Profiling] Profiling has been disabled for the duration of the current user session.');\n    }\n    return false;\n  }\n\n  if (!span.isRecording()) {\n    if (DEBUG_BUILD) {\n      debug.log('[Profiling] Discarding profile because transaction was not sampled.');\n    }\n    return false;\n  }\n\n  const client = getClient();\n  const options = client?.getOptions();\n  if (!options) {\n    DEBUG_BUILD && debug.log('[Profiling] Profiling disabled, no options found.');\n    return false;\n  }\n\n  // @ts-expect-error profilesSampleRate is not part of the browser options yet\n  const profilesSampleRate: number | boolean | undefined = options.profilesSampleRate;\n\n  // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n  // only valid values are booleans or numbers between 0 and 1.)\n  if (!isValidSampleRate(profilesSampleRate)) {\n    DEBUG_BUILD && debug.warn('[Profiling] Discarding profile because of invalid sample rate.');\n    return false;\n  }\n\n  // if the function returned 0 (or false), or if `profileSampleRate` is 0, it's a sign the profile should be dropped\n  if (!profilesSampleRate) {\n    DEBUG_BUILD &&\n      debug.log(\n        '[Profiling] Discarding profile because a negative sampling decision was inherited or profileSampleRate is set to 0',\n      );\n    return false;\n  }\n\n  // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n  // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n  const sampled = profilesSampleRate === true ? true : Math.random() < profilesSampleRate;\n  // Check if we should sample this profile\n  if (!sampled) {\n    DEBUG_BUILD &&\n      debug.log(\n        `[Profiling] Discarding profile because it's not included in the random sample (sampling rate = ${Number(\n          profilesSampleRate,\n        )})`,\n      );\n    return false;\n  }\n\n  return true;\n}\n\n/**\n * Creates a profiling envelope item, if the profile does not pass validation, returns null.\n * @param event\n * @returns {Profile | null}\n */\nexport function createProfilingEvent(\n  profile_id: string,\n  start_timestamp: number | undefined,\n  profile: JSSelfProfile,\n  event: ProfiledEvent,\n): Profile | null {\n  if (!isValidProfile(profile)) {\n    return null;\n  }\n\n  return createProfilePayload(profile_id, start_timestamp, profile, event);\n}\n\n// TODO (v8): We need to obtain profile ids in @sentry-internal/tracing,\n// but we don't have access to this map because importing this map would\n// cause a circular dependency. We need to resolve this in v8.\nconst PROFILE_MAP: Map<string, JSSelfProfile> = new Map();\n/**\n *\n */\nexport function getActiveProfilesCount(): number {\n  return PROFILE_MAP.size;\n}\n\n/**\n * Retrieves profile from global cache and removes it.\n */\nexport function takeProfileFromGlobalCache(profile_id: string): JSSelfProfile | undefined {\n  const profile = PROFILE_MAP.get(profile_id);\n  if (profile) {\n    PROFILE_MAP.delete(profile_id);\n  }\n  return profile;\n}\n/**\n * Adds profile to global cache and evicts the oldest profile if the cache is full.\n */\nexport function addProfileToGlobalCache(profile_id: string, profile: JSSelfProfile): void {\n  PROFILE_MAP.set(profile_id, profile);\n\n  if (PROFILE_MAP.size > 30) {\n    const last: string = PROFILE_MAP.keys().next().value;\n    PROFILE_MAP.delete(last);\n  }\n}\n","import type { Span } from '@sentry/core';\nimport { debug, getCurrentScope, spanToJSON, timestampInSeconds, uuid4 } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\nimport type { JSSelfProfile } from './jsSelfProfiling';\nimport { addProfileToGlobalCache, isAutomatedPageLoadSpan, MAX_PROFILE_DURATION_MS, startJSSelfProfile } from './utils';\n\n/**\n * Wraps startTransaction and stopTransaction with profiling related logic.\n * startProfileForTransaction is called after the call to startTransaction in order to avoid our own code from\n * being profiled. Because of that same reason, stopProfiling is called before the call to stopTransaction.\n */\nexport function startProfileForSpan(span: Span): void {\n  // Start the profiler and get the profiler instance.\n  let startTimestamp: number | undefined;\n  if (isAutomatedPageLoadSpan(span)) {\n    startTimestamp = timestampInSeconds() * 1000;\n  }\n\n  const profiler = startJSSelfProfile();\n\n  // We failed to construct the profiler, so we skip.\n  // No need to log anything as this has already been logged in startProfile.\n  if (!profiler) {\n    return;\n  }\n\n  if (DEBUG_BUILD) {\n    debug.log(`[Profiling] started profiling span: ${spanToJSON(span).description}`);\n  }\n\n  // We create \"unique\" span names to avoid concurrent spans with same names\n  // from being ignored by the profiler. From here on, only this span name should be used when\n  // calling the profiler methods. Note: we log the original name to the user to avoid confusion.\n  const profileId = uuid4();\n\n  // A couple of important things to note here:\n  // `CpuProfilerBindings.stopProfiling` will be scheduled to run in 30seconds in order to exceed max profile duration.\n  // Whichever of the two (span.finish/timeout) is first to run, the profiling will be stopped and the gathered profile\n  // will be processed when the original span is finished. Since onProfileHandler can be invoked multiple times in the\n  // event of an error or user mistake (calling span.finish multiple times), it is important that the behavior of onProfileHandler\n  // is idempotent as we do not want any timings or profiles to be overridden by the last call to onProfileHandler.\n  // After the original finish method is called, the event will be reported through the integration and delegated to transport.\n  const processedProfile: JSSelfProfile | null = null;\n\n  getCurrentScope().setContext('profile', {\n    profile_id: profileId,\n    start_timestamp: startTimestamp,\n  });\n\n  /**\n   * Idempotent handler for profile stop\n   */\n  async function onProfileHandler(): Promise<void> {\n    // Check if the profile exists and return it the behavior has to be idempotent as users may call span.finish multiple times.\n    if (!span) {\n      return;\n    }\n    // Satisfy the type checker, but profiler will always be defined here.\n    if (!profiler) {\n      return;\n    }\n    if (processedProfile) {\n      if (DEBUG_BUILD) {\n        debug.log('[Profiling] profile for:', spanToJSON(span).description, 'already exists, returning early');\n      }\n      return;\n    }\n\n    return profiler\n      .stop()\n      .then((profile: JSSelfProfile): void => {\n        if (maxDurationTimeoutID) {\n          WINDOW.clearTimeout(maxDurationTimeoutID);\n          maxDurationTimeoutID = undefined;\n        }\n\n        if (DEBUG_BUILD) {\n          debug.log(`[Profiling] stopped profiling of span: ${spanToJSON(span).description}`);\n        }\n\n        // In case of an overlapping span, stopProfiling may return null and silently ignore the overlapping profile.\n        if (!profile) {\n          if (DEBUG_BUILD) {\n            debug.log(\n              `[Profiling] profiler returned null profile for: ${spanToJSON(span).description}`,\n              'this may indicate an overlapping span or a call to stopProfiling with a profile title that was never started',\n            );\n          }\n          return;\n        }\n\n        addProfileToGlobalCache(profileId, profile);\n      })\n      .catch(error => {\n        if (DEBUG_BUILD) {\n          debug.log('[Profiling] error while stopping profiler:', error);\n        }\n      });\n  }\n\n  // Enqueue a timeout to prevent profiles from running over max duration.\n  let maxDurationTimeoutID: number | undefined = WINDOW.setTimeout(() => {\n    if (DEBUG_BUILD) {\n      debug.log('[Profiling] max profile duration elapsed, stopping profiling for:', spanToJSON(span).description);\n    }\n    // If the timeout exceeds, we want to stop profiling, but not finish the span\n    // eslint-disable-next-line @typescript-eslint/no-floating-promises\n    onProfileHandler();\n  }, MAX_PROFILE_DURATION_MS);\n\n  // We need to reference the original end call to avoid creating an infinite loop\n  const originalEnd = span.end.bind(span);\n\n  /**\n   * Wraps span `end()` with profiling related logic.\n   * startProfiling is called after the call to spanStart in order to avoid our own code from\n   * being profiled. Because of that same reason, stopProfiling is called before the call to spanEnd.\n   */\n  function profilingWrappedSpanEnd(): Span {\n    if (!span) {\n      return originalEnd();\n    }\n    // onProfileHandler should always return the same profile even if this is called multiple times.\n    // Always call onProfileHandler to ensure stopProfiling is called and the timeout is cleared.\n    void onProfileHandler().then(\n      () => {\n        originalEnd();\n      },\n      () => {\n        // If onProfileHandler fails, we still want to call the original finish method.\n        originalEnd();\n      },\n    );\n\n    return span;\n  }\n\n  span.end = profilingWrappedSpanEnd;\n}\n","import type { Event } from '../types-hoist/event';\n\n/**\n * Get a list of possible event messages from a Sentry event.\n */\nexport function getPossibleEventMessages(event: Event): string[] {\n  const possibleMessages: string[] = [];\n\n  if (event.message) {\n    possibleMessages.push(event.message);\n  }\n\n  try {\n    // @ts-expect-error Try catching to save bundle size\n    const lastException = event.exception.values[event.exception.values.length - 1];\n    if (lastException?.value) {\n      possibleMessages.push(lastException.value);\n      if (lastException.type) {\n        possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n      }\n    }\n  } catch {\n    // ignore errors here\n  }\n\n  return possibleMessages;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { defineIntegration } from '../integration';\nimport type { Event } from '../types-hoist/event';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport { debug } from '../utils/debug-logger';\nimport { getPossibleEventMessages } from '../utils/eventUtils';\nimport { getEventDescription } from '../utils/misc';\nimport { stringMatchesSomePattern } from '../utils/string';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [\n  /^Script error\\.?$/,\n  /^Javascript error: Script error\\.? on line 0$/,\n  /^ResizeObserver loop completed with undelivered notifications.$/, // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n  /^Cannot redefine property: googletag$/, // This is thrown when google tag manager is used in combination with an ad blocker\n  /^Can't find variable: gmo$/, // Error from Google Search App https://issuetracker.google.com/issues/396043331\n  /^undefined is not an object \\(evaluating 'a\\.[A-Z]'\\)$/, // Random error that happens but not actionable or noticeable to end-users.\n  'can\\'t redefine non-configurable property \"solana\"', // Probably a browser extension or custom browser (Brave) throwing this error\n  \"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)\", // Error thrown by GTM, seemingly not affecting end-users\n  \"Can't find variable: _AutofillCallbackHandler\", // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n  /^Non-Error promise rejection captured with value: Object Not Found Matching Id:\\d+, MethodName:simulateEvent, ParamCount:\\d+$/, // unactionable error from CEFSharp, a .NET library that embeds chromium in .NET apps\n  /^Java exception was raised during method invocation$/, // error from Facebook Mobile browser (https://github.com/getsentry/sentry-javascript/issues/15065)\n];\n\n/** Options for the EventFilters integration */\nexport interface EventFiltersOptions {\n  allowUrls: Array<string | RegExp>;\n  denyUrls: Array<string | RegExp>;\n  ignoreErrors: Array<string | RegExp>;\n  ignoreTransactions: Array<string | RegExp>;\n  ignoreInternal: boolean;\n  disableErrorDefaults: boolean;\n}\n\nconst INTEGRATION_NAME = 'EventFilters';\n\n/**\n * An integration that filters out events (errors and transactions) based on:\n *\n * - (Errors) A curated list of known low-value or irrelevant errors (see {@link DEFAULT_IGNORE_ERRORS})\n * - (Errors) A list of error messages or urls/filenames passed in via\n *   - Top level Sentry.init options (`ignoreErrors`, `denyUrls`, `allowUrls`)\n *   - The same options passed to the integration directly via @param options\n * - (Transactions/Spans) A list of root span (transaction) names passed in via\n *   - Top level Sentry.init option (`ignoreTransactions`)\n *   - The same option passed to the integration directly via @param options\n *\n * Events filtered by this integration will not be sent to Sentry.\n */\nexport const eventFiltersIntegration = defineIntegration((options: Partial<EventFiltersOptions> = {}) => {\n  let mergedOptions: Partial<EventFiltersOptions> | undefined;\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      const clientOptions = client.getOptions();\n      mergedOptions = _mergeOptions(options, clientOptions);\n    },\n    processEvent(event, _hint, client) {\n      if (!mergedOptions) {\n        const clientOptions = client.getOptions();\n        mergedOptions = _mergeOptions(options, clientOptions);\n      }\n      return _shouldDropEvent(event, mergedOptions) ? null : event;\n    },\n  };\n});\n\n/**\n * An integration that filters out events (errors and transactions) based on:\n *\n * - (Errors) A curated list of known low-value or irrelevant errors (see {@link DEFAULT_IGNORE_ERRORS})\n * - (Errors) A list of error messages or urls/filenames passed in via\n *   - Top level Sentry.init options (`ignoreErrors`, `denyUrls`, `allowUrls`)\n *   - The same options passed to the integration directly via @param options\n * - (Transactions/Spans) A list of root span (transaction) names passed in via\n *   - Top level Sentry.init option (`ignoreTransactions`)\n *   - The same option passed to the integration directly via @param options\n *\n * Events filtered by this integration will not be sent to Sentry.\n *\n * @deprecated this integration was renamed and will be removed in a future major version.\n * Use `eventFiltersIntegration` instead.\n */\nexport const inboundFiltersIntegration = defineIntegration(((options: Partial<EventFiltersOptions> = {}) => {\n  return {\n    ...eventFiltersIntegration(options),\n    name: 'InboundFilters',\n  };\n}) satisfies IntegrationFn);\n\nfunction _mergeOptions(\n  internalOptions: Partial<EventFiltersOptions> = {},\n  clientOptions: Partial<EventFiltersOptions> = {},\n): Partial<EventFiltersOptions> {\n  return {\n    allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n    denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n    ignoreErrors: [\n      ...(internalOptions.ignoreErrors || []),\n      ...(clientOptions.ignoreErrors || []),\n      ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n    ],\n    ignoreTransactions: [...(internalOptions.ignoreTransactions || []), ...(clientOptions.ignoreTransactions || [])],\n  };\n}\n\nfunction _shouldDropEvent(event: Event, options: Partial<EventFiltersOptions>): boolean {\n  if (!event.type) {\n    // Filter errors\n    if (_isIgnoredError(event, options.ignoreErrors)) {\n      DEBUG_BUILD &&\n        debug.warn(\n          `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n        );\n      return true;\n    }\n    if (_isUselessError(event)) {\n      DEBUG_BUILD &&\n        debug.warn(\n          `Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${getEventDescription(\n            event,\n          )}`,\n        );\n      return true;\n    }\n    if (_isDeniedUrl(event, options.denyUrls)) {\n      DEBUG_BUILD &&\n        debug.warn(\n          `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n            event,\n          )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n        );\n      return true;\n    }\n    if (!_isAllowedUrl(event, options.allowUrls)) {\n      DEBUG_BUILD &&\n        debug.warn(\n          `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n            event,\n          )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n        );\n      return true;\n    }\n  } else if (event.type === 'transaction') {\n    // Filter transactions\n\n    if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n      DEBUG_BUILD &&\n        debug.warn(\n          `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n        );\n      return true;\n    }\n  }\n  return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array<string | RegExp>): boolean {\n  if (!ignoreErrors?.length) {\n    return false;\n  }\n\n  return getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event: Event, ignoreTransactions?: Array<string | RegExp>): boolean {\n  if (!ignoreTransactions?.length) {\n    return false;\n  }\n\n  const name = event.transaction;\n  return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array<string | RegExp>): boolean {\n  if (!denyUrls?.length) {\n    return false;\n  }\n  const url = _getEventFilterUrl(event);\n  return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array<string | RegExp>): boolean {\n  if (!allowUrls?.length) {\n    return true;\n  }\n  const url = _getEventFilterUrl(event);\n  return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n  for (let i = frames.length - 1; i >= 0; i--) {\n    const frame = frames[i];\n\n    if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {\n      return frame.filename || null;\n    }\n  }\n\n  return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n  try {\n    // If there are linked exceptions or exception aggregates we only want to match against the top frame of the \"root\" (the main exception)\n    // The root always comes last in linked exceptions\n    const rootException = [...(event.exception?.values ?? [])]\n      .reverse()\n      .find(value => value.mechanism?.parent_id === undefined && value.stacktrace?.frames?.length);\n    const frames = rootException?.stacktrace?.frames;\n    return frames ? _getLastValidUrl(frames) : null;\n  } catch {\n    DEBUG_BUILD && debug.error(`Cannot extract url for event ${getEventDescription(event)}`);\n    return null;\n  }\n}\n\nfunction _isUselessError(event: Event): boolean {\n  // We only want to consider events for dropping that actually have recorded exception values.\n  if (!event.exception?.values?.length) {\n    return false;\n  }\n\n  return (\n    // No top-level message\n    !event.message &&\n    // There are no exception values that have a stacktrace, a non-generic-Error type or value\n    !event.exception.values.some(value => value.stacktrace || (value.type && value.type !== 'Error') || value.value)\n  );\n}\n","import type { Client } from '../client';\nimport { getClient } from '../currentScopes';\nimport { defineIntegration } from '../integration';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport type { WrappedFunction } from '../types-hoist/wrappedfunction';\nimport { getOriginalFunction } from '../utils/object';\n\nlet originalFunctionToString: () => void;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap<Client, boolean>();\n\nconst _functionToStringIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      // eslint-disable-next-line @typescript-eslint/unbound-method\n      originalFunctionToString = Function.prototype.toString;\n\n      // intrinsics (like Function.prototype) might be immutable in some environments\n      // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n      try {\n        Function.prototype.toString = function (this: WrappedFunction, ...args: unknown[]): string {\n          const originalFunction = getOriginalFunction(this);\n          const context =\n            SETUP_CLIENTS.has(getClient() as Client) && originalFunction !== undefined ? originalFunction : this;\n          return originalFunctionToString.apply(context, args);\n        };\n      } catch {\n        // ignore errors here, just don't patch this\n      }\n    },\n    setup(client) {\n      SETUP_CLIENTS.set(client, true);\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n *   integrations: [\n *     functionToStringIntegration(),\n *   ],\n * });\n * ```\n */\nexport const functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n","import { DEBUG_BUILD } from '../debug-build';\nimport { defineIntegration } from '../integration';\nimport type { Event } from '../types-hoist/event';\nimport type { Exception } from '../types-hoist/exception';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport { debug } from '../utils/debug-logger';\nimport { getFramesFromEvent } from '../utils/stacktrace';\n\nconst INTEGRATION_NAME = 'Dedupe';\n\nconst _dedupeIntegration = (() => {\n  let previousEvent: Event | undefined;\n\n  return {\n    name: INTEGRATION_NAME,\n    processEvent(currentEvent) {\n      // We want to ignore any non-error type events, e.g. transactions or replays\n      // These should never be deduped, and also not be compared against as _previousEvent.\n      if (currentEvent.type) {\n        return currentEvent;\n      }\n\n      // Juuust in case something goes wrong\n      try {\n        if (_shouldDropEvent(currentEvent, previousEvent)) {\n          DEBUG_BUILD && debug.warn('Event dropped due to being a duplicate of previously captured event.');\n          return null;\n        }\n      } catch {} // eslint-disable-line no-empty\n\n      return (previousEvent = currentEvent);\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Deduplication filter.\n */\nexport const dedupeIntegration = defineIntegration(_dedupeIntegration);\n\n/** only exported for tests. */\nexport function _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n  if (!previousEvent) {\n    return false;\n  }\n\n  if (_isSameMessageEvent(currentEvent, previousEvent)) {\n    return true;\n  }\n\n  if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n  const currentMessage = currentEvent.message;\n  const previousMessage = previousEvent.message;\n\n  // If neither event has a message property, they were both exceptions, so bail out\n  if (!currentMessage && !previousMessage) {\n    return false;\n  }\n\n  // If only one event has a stacktrace, but not the other one, they are not the same\n  if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n    return false;\n  }\n\n  if (currentMessage !== previousMessage) {\n    return false;\n  }\n\n  if (!_isSameFingerprint(currentEvent, previousEvent)) {\n    return false;\n  }\n\n  if (!_isSameStacktrace(currentEvent, previousEvent)) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n  const previousException = _getExceptionFromEvent(previousEvent);\n  const currentException = _getExceptionFromEvent(currentEvent);\n\n  if (!previousException || !currentException) {\n    return false;\n  }\n\n  if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n    return false;\n  }\n\n  if (!_isSameFingerprint(currentEvent, previousEvent)) {\n    return false;\n  }\n\n  if (!_isSameStacktrace(currentEvent, previousEvent)) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n  let currentFrames = getFramesFromEvent(currentEvent);\n  let previousFrames = getFramesFromEvent(previousEvent);\n\n  // If neither event has a stacktrace, they are assumed to be the same\n  if (!currentFrames && !previousFrames) {\n    return true;\n  }\n\n  // If only one event has a stacktrace, but not the other one, they are not the same\n  if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n    return false;\n  }\n\n  currentFrames = currentFrames as StackFrame[];\n  previousFrames = previousFrames as StackFrame[];\n\n  // If number of frames differ, they are not the same\n  if (previousFrames.length !== currentFrames.length) {\n    return false;\n  }\n\n  // Otherwise, compare the two\n  for (let i = 0; i < previousFrames.length; i++) {\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    const frameA = previousFrames[i]!;\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    const frameB = currentFrames[i]!;\n\n    if (\n      frameA.filename !== frameB.filename ||\n      frameA.lineno !== frameB.lineno ||\n      frameA.colno !== frameB.colno ||\n      frameA.function !== frameB.function\n    ) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n  let currentFingerprint = currentEvent.fingerprint;\n  let previousFingerprint = previousEvent.fingerprint;\n\n  // If neither event has a fingerprint, they are assumed to be the same\n  if (!currentFingerprint && !previousFingerprint) {\n    return true;\n  }\n\n  // If only one event has a fingerprint, but not the other one, they are not the same\n  if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n    return false;\n  }\n\n  currentFingerprint = currentFingerprint as string[];\n  previousFingerprint = previousFingerprint as string[];\n\n  // Otherwise, compare the two\n  try {\n    return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n  } catch {\n    return false;\n  }\n}\n\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n  return event.exception?.values?.[0];\n}\n","import type { ReportDialogOptions } from './report-dialog';\nimport type { DsnComponents, DsnLike } from './types-hoist/dsn';\nimport type { SdkInfo } from './types-hoist/sdkinfo';\nimport { dsnToString, makeDsn } from './utils/dsn';\n\nconst SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n  const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n  const port = dsn.port ? `:${dsn.port}` : '';\n  return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents): string {\n  return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents, sdkInfo: SdkInfo | undefined): string {\n  const params: Record<string, string> = {\n    sentry_version: SENTRY_API_VERSION,\n  };\n\n  if (dsn.publicKey) {\n    // We send only the minimum set of required information. See\n    // https://github.com/getsentry/sentry-javascript/issues/2572.\n    params.sentry_key = dsn.publicKey;\n  }\n\n  if (sdkInfo) {\n    params.sentry_client = `${sdkInfo.name}/${sdkInfo.version}`;\n  }\n\n  return new URLSearchParams(params).toString();\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(dsn: DsnComponents, tunnel?: string, sdkInfo?: SdkInfo): string {\n  return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(dsnLike: DsnLike, dialogOptions: ReportDialogOptions): string {\n  const dsn = makeDsn(dsnLike);\n  if (!dsn) {\n    return '';\n  }\n\n  const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n  let encodedOptions = `dsn=${dsnToString(dsn)}`;\n  for (const key in dialogOptions) {\n    if (key === 'dsn') {\n      continue;\n    }\n\n    if (key === 'onClose') {\n      continue;\n    }\n\n    if (key === 'user') {\n      const user = dialogOptions.user;\n      if (!user) {\n        continue;\n      }\n      if (user.name) {\n        encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n      }\n      if (user.email) {\n        encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n      }\n    } else {\n      encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n    }\n  }\n\n  return `${endpoint}?${encodedOptions}`;\n}\n","/* eslint-disable max-lines */\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api';\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { getCurrentScope, getIsolationScope, getTraceContextFromScope, withScope } from './currentScopes';\nimport { DEBUG_BUILD } from './debug-build';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope';\nimport type { IntegrationIndex } from './integration';\nimport { afterSetupIntegrations, setupIntegration, setupIntegrations } from './integration';\nimport type { Scope } from './scope';\nimport { updateSession } from './session';\nimport {\n  getDynamicSamplingContextFromScope,\n  getDynamicSamplingContextFromSpan,\n} from './tracing/dynamicSamplingContext';\nimport type { Breadcrumb, BreadcrumbHint, FetchBreadcrumbHint, XhrBreadcrumbHint } from './types-hoist/breadcrumb';\nimport type { CheckIn, MonitorConfig } from './types-hoist/checkin';\nimport type { EventDropReason, Outcome } from './types-hoist/clientreport';\nimport type { TraceContext } from './types-hoist/context';\nimport type { DataCategory } from './types-hoist/datacategory';\nimport type { DsnComponents } from './types-hoist/dsn';\nimport type { DynamicSamplingContext, Envelope } from './types-hoist/envelope';\nimport type { ErrorEvent, Event, EventHint, TransactionEvent } from './types-hoist/event';\nimport type { EventProcessor } from './types-hoist/eventprocessor';\nimport type { FeedbackEvent } from './types-hoist/feedback';\nimport type { Integration } from './types-hoist/integration';\nimport type { Log } from './types-hoist/log';\nimport type { ClientOptions } from './types-hoist/options';\nimport type { ParameterizedString } from './types-hoist/parameterize';\nimport type { SdkMetadata } from './types-hoist/sdkmetadata';\nimport type { Session, SessionAggregates } from './types-hoist/session';\nimport type { SeverityLevel } from './types-hoist/severity';\nimport type { Span, SpanAttributes, SpanContextData, SpanJSON } from './types-hoist/span';\nimport type { StartSpanOptions } from './types-hoist/startSpanOptions';\nimport type { Transport, TransportMakeRequestResponse } from './types-hoist/transport';\nimport { createClientReportEnvelope } from './utils/clientreport';\nimport { debug } from './utils/debug-logger';\nimport { dsnToString, makeDsn } from './utils/dsn';\nimport { addItemToEnvelope, createAttachmentEnvelopeItem } from './utils/envelope';\nimport { getPossibleEventMessages } from './utils/eventUtils';\nimport { isParameterizedString, isPlainObject, isPrimitive, isThenable } from './utils/is';\nimport { merge } from './utils/merge';\nimport { checkOrSetAlreadyCaught, uuid4 } from './utils/misc';\nimport { parseSampleRate } from './utils/parseSampleRate';\nimport { prepareEvent } from './utils/prepareEvent';\nimport { reparentChildSpans, shouldIgnoreSpan } from './utils/should-ignore-span';\nimport { getActiveSpan, showSpanDropWarning, spanToTraceContext } from './utils/spanUtils';\nimport { rejectedSyncPromise, resolvedSyncPromise, SyncPromise } from './utils/syncpromise';\nimport { convertSpanJsonToTransactionEvent, convertTransactionEventToSpanJson } from './utils/transactionEvent';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\nconst MISSING_RELEASE_FOR_SESSION_ERROR = 'Discarded session because of missing or non-string release';\n\nconst INTERNAL_ERROR_SYMBOL = Symbol.for('SentryInternalError');\nconst DO_NOT_SEND_EVENT_SYMBOL = Symbol.for('SentryDoNotSendEventError');\n\ninterface InternalError {\n  message: string;\n  [INTERNAL_ERROR_SYMBOL]: true;\n}\n\ninterface DoNotSendEventError {\n  message: string;\n  [DO_NOT_SEND_EVENT_SYMBOL]: true;\n}\n\nfunction _makeInternalError(message: string): InternalError {\n  return {\n    message,\n    [INTERNAL_ERROR_SYMBOL]: true,\n  };\n}\n\nfunction _makeDoNotSendEventError(message: string): DoNotSendEventError {\n  return {\n    message,\n    [DO_NOT_SEND_EVENT_SYMBOL]: true,\n  };\n}\n\nfunction _isInternalError(error: unknown): error is InternalError {\n  return !!error && typeof error === 'object' && INTERNAL_ERROR_SYMBOL in error;\n}\n\nfunction _isDoNotSendEventError(error: unknown): error is DoNotSendEventError {\n  return !!error && typeof error === 'object' && DO_NOT_SEND_EVENT_SYMBOL in error;\n}\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link Client._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends Client<NodeOptions> {\n *   public constructor(options: NodeOptions) {\n *     super(options);\n *   }\n *\n *   // ...\n * }\n */\nexport abstract class Client<O extends ClientOptions = ClientOptions> {\n  /** Options passed to the SDK. */\n  protected readonly _options: O;\n\n  /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n  protected readonly _dsn?: DsnComponents;\n\n  protected readonly _transport?: Transport;\n\n  /** Array of set up integrations. */\n  protected _integrations: IntegrationIndex;\n\n  /** Number of calls being processed */\n  protected _numProcessing: number;\n\n  protected _eventProcessors: EventProcessor[];\n\n  /** Holds flushable  */\n  private _outcomes: { [key: string]: number };\n\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  private _hooks: Record<string, Function[]>;\n\n  /**\n   * Initializes this client instance.\n   *\n   * @param options Options for the client.\n   */\n  protected constructor(options: O) {\n    this._options = options;\n    this._integrations = {};\n    this._numProcessing = 0;\n    this._outcomes = {};\n    this._hooks = {};\n    this._eventProcessors = [];\n\n    if (options.dsn) {\n      this._dsn = makeDsn(options.dsn);\n    } else {\n      DEBUG_BUILD && debug.warn('No DSN provided, client will not send events.');\n    }\n\n    if (this._dsn) {\n      const url = getEnvelopeEndpointWithUrlEncodedAuth(\n        this._dsn,\n        options.tunnel,\n        options._metadata ? options._metadata.sdk : undefined,\n      );\n      this._transport = options.transport({\n        tunnel: this._options.tunnel,\n        recordDroppedEvent: this.recordDroppedEvent.bind(this),\n        ...options.transportOptions,\n        url,\n      });\n    }\n  }\n\n  /**\n   * Captures an exception event and sends it to Sentry.\n   *\n   * Unlike `captureException` exported from every SDK, this method requires that you pass it the current scope.\n   */\n  public captureException(exception: unknown, hint?: EventHint, scope?: Scope): string {\n    const eventId = uuid4();\n\n    // ensure we haven't captured this very object before\n    if (checkOrSetAlreadyCaught(exception)) {\n      DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n      return eventId;\n    }\n\n    const hintWithEventId = {\n      event_id: eventId,\n      ...hint,\n    };\n\n    this._process(\n      this.eventFromException(exception, hintWithEventId).then(event =>\n        this._captureEvent(event, hintWithEventId, scope),\n      ),\n    );\n\n    return hintWithEventId.event_id;\n  }\n\n  /**\n   * Captures a message event and sends it to Sentry.\n   *\n   * Unlike `captureMessage` exported from every SDK, this method requires that you pass it the current scope.\n   */\n  public captureMessage(\n    message: ParameterizedString,\n    level?: SeverityLevel,\n    hint?: EventHint,\n    currentScope?: Scope,\n  ): string {\n    const hintWithEventId = {\n      event_id: uuid4(),\n      ...hint,\n    };\n\n    const eventMessage = isParameterizedString(message) ? message : String(message);\n\n    const promisedEvent = isPrimitive(message)\n      ? this.eventFromMessage(eventMessage, level, hintWithEventId)\n      : this.eventFromException(message, hintWithEventId);\n\n    this._process(promisedEvent.then(event => this._captureEvent(event, hintWithEventId, currentScope)));\n\n    return hintWithEventId.event_id;\n  }\n\n  /**\n   * Captures a manually created event and sends it to Sentry.\n   *\n   * Unlike `captureEvent` exported from every SDK, this method requires that you pass it the current scope.\n   */\n  public captureEvent(event: Event, hint?: EventHint, currentScope?: Scope): string {\n    const eventId = uuid4();\n\n    // ensure we haven't captured this very object before\n    if (hint?.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n      DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n      return eventId;\n    }\n\n    const hintWithEventId = {\n      event_id: eventId,\n      ...hint,\n    };\n\n    const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n    const capturedSpanScope: Scope | undefined = sdkProcessingMetadata.capturedSpanScope;\n    const capturedSpanIsolationScope: Scope | undefined = sdkProcessingMetadata.capturedSpanIsolationScope;\n\n    this._process(\n      this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope, capturedSpanIsolationScope),\n    );\n\n    return hintWithEventId.event_id;\n  }\n\n  /**\n   * Captures a session.\n   */\n  public captureSession(session: Session): void {\n    this.sendSession(session);\n    // After sending, we set init false to indicate it's not the first occurrence\n    updateSession(session, { init: false });\n  }\n\n  /**\n   * Create a cron monitor check in and send it to Sentry. This method is not available on all clients.\n   *\n   * @param checkIn An object that describes a check in.\n   * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n   * to create a monitor automatically when sending a check in.\n   * @param scope An optional scope containing event metadata.\n   * @returns A string representing the id of the check in.\n   */\n  public captureCheckIn?(checkIn: CheckIn, monitorConfig?: MonitorConfig, scope?: Scope): string;\n\n  /**\n   * Get the current Dsn.\n   */\n  public getDsn(): DsnComponents | undefined {\n    return this._dsn;\n  }\n\n  /**\n   * Get the current options.\n   */\n  public getOptions(): O {\n    return this._options;\n  }\n\n  /**\n   * Get the SDK metadata.\n   * @see SdkMetadata\n   */\n  public getSdkMetadata(): SdkMetadata | undefined {\n    return this._options._metadata;\n  }\n\n  /**\n   * Returns the transport that is used by the client.\n   * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n   */\n  public getTransport(): Transport | undefined {\n    return this._transport;\n  }\n\n  /**\n   * Wait for all events to be sent or the timeout to expire, whichever comes first.\n   *\n   * @param timeout Maximum time in ms the client should wait for events to be flushed. Omitting this parameter will\n   *   cause the client to wait until all events are sent before resolving the promise.\n   * @returns A promise that will resolve with `true` if all events are sent before the timeout, or `false` if there are\n   * still events in the queue when the timeout is reached.\n   */\n  public flush(timeout?: number): PromiseLike<boolean> {\n    const transport = this._transport;\n    if (transport) {\n      this.emit('flush');\n      return this._isClientDoneProcessing(timeout).then(clientFinished => {\n        return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n      });\n    } else {\n      return resolvedSyncPromise(true);\n    }\n  }\n\n  /**\n   * Flush the event queue and set the client to `enabled = false`. See {@link Client.flush}.\n   *\n   * @param {number} timeout Maximum time in ms the client should wait before shutting down. Omitting this parameter will cause\n   *   the client to wait until all events are sent before disabling itself.\n   * @returns {Promise<boolean>} A promise which resolves to `true` if the flush completes successfully before the timeout, or `false` if\n   * it doesn't.\n   */\n  public close(timeout?: number): PromiseLike<boolean> {\n    return this.flush(timeout).then(result => {\n      this.getOptions().enabled = false;\n      this.emit('close');\n      return result;\n    });\n  }\n\n  /**\n   * Get all installed event processors.\n   */\n  public getEventProcessors(): EventProcessor[] {\n    return this._eventProcessors;\n  }\n\n  /**\n   * Adds an event processor that applies to any event processed by this client.\n   */\n  public addEventProcessor(eventProcessor: EventProcessor): void {\n    this._eventProcessors.push(eventProcessor);\n  }\n\n  /**\n   * Initialize this client.\n   * Call this after the client was set on a scope.\n   */\n  public init(): void {\n    if (\n      this._isEnabled() ||\n      // Force integrations to be setup even if no DSN was set when we have\n      // Spotlight enabled. This is particularly important for browser as we\n      // don't support the `spotlight` option there and rely on the users\n      // adding the `spotlightBrowserIntegration()` to their integrations which\n      // wouldn't get initialized with the check below when there's no DSN set.\n      this._options.integrations.some(({ name }) => name.startsWith('Spotlight'))\n    ) {\n      this._setupIntegrations();\n    }\n  }\n\n  /**\n   * Gets an installed integration by its name.\n   *\n   * @returns {Integration|undefined} The installed integration or `undefined` if no integration with that `name` was installed.\n   */\n  public getIntegrationByName<T extends Integration = Integration>(integrationName: string): T | undefined {\n    return this._integrations[integrationName] as T | undefined;\n  }\n\n  /**\n   * Add an integration to the client.\n   * This can be used to e.g. lazy load integrations.\n   * In most cases, this should not be necessary,\n   * and you're better off just passing the integrations via `integrations: []` at initialization time.\n   * However, if you find the need to conditionally load & add an integration, you can use `addIntegration` to do so.\n   */\n  public addIntegration(integration: Integration): void {\n    const isAlreadyInstalled = this._integrations[integration.name];\n\n    // This hook takes care of only installing if not already installed\n    setupIntegration(this, integration, this._integrations);\n    // Here we need to check manually to make sure to not run this multiple times\n    if (!isAlreadyInstalled) {\n      afterSetupIntegrations(this, [integration]);\n    }\n  }\n\n  /**\n   * Send a fully prepared event to Sentry.\n   */\n  public sendEvent(event: Event, hint: EventHint = {}): void {\n    this.emit('beforeSendEvent', event, hint);\n\n    let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n    for (const attachment of hint.attachments || []) {\n      env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n    }\n\n    const promise = this.sendEnvelope(env);\n    if (promise) {\n      promise.then(sendResponse => this.emit('afterSendEvent', event, sendResponse), null);\n    }\n  }\n\n  /**\n   * Send a session or session aggregrates to Sentry.\n   */\n  public sendSession(session: Session | SessionAggregates): void {\n    // Backfill release and environment on session\n    const { release: clientReleaseOption, environment: clientEnvironmentOption = DEFAULT_ENVIRONMENT } = this._options;\n    if ('aggregates' in session) {\n      const sessionAttrs = session.attrs || {};\n      if (!sessionAttrs.release && !clientReleaseOption) {\n        DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n        return;\n      }\n      sessionAttrs.release = sessionAttrs.release || clientReleaseOption;\n      sessionAttrs.environment = sessionAttrs.environment || clientEnvironmentOption;\n      session.attrs = sessionAttrs;\n    } else {\n      if (!session.release && !clientReleaseOption) {\n        DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n        return;\n      }\n      session.release = session.release || clientReleaseOption;\n      session.environment = session.environment || clientEnvironmentOption;\n    }\n\n    this.emit('beforeSendSession', session);\n\n    const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n    // sendEnvelope should not throw\n    // eslint-disable-next-line @typescript-eslint/no-floating-promises\n    this.sendEnvelope(env);\n  }\n\n  /**\n   * Record on the client that an event got dropped (ie, an event that will not be sent to Sentry).\n   */\n  public recordDroppedEvent(reason: EventDropReason, category: DataCategory, count: number = 1): void {\n    if (this._options.sendClientReports) {\n      // We want to track each category (error, transaction, session, replay_event) separately\n      // but still keep the distinction between different type of outcomes.\n      // We could use nested maps, but it's much easier to read and type this way.\n      // A correct type for map-based implementation if we want to go that route\n      // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n      // With typescript 4.1 we could even use template literal types\n      const key = `${reason}:${category}`;\n      DEBUG_BUILD && debug.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n      this._outcomes[key] = (this._outcomes[key] || 0) + count;\n    }\n  }\n\n  /* eslint-disable @typescript-eslint/unified-signatures */\n  /**\n   * Register a callback for whenever a span is started.\n   * Receives the span as argument.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'spanStart', callback: (span: Span) => void): () => void;\n\n  /**\n   * Register a callback before span sampling runs. Receives a `samplingDecision` object argument with a `decision`\n   * property that can be used to make a sampling decision that will be enforced, before any span sampling runs.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(\n    hook: 'beforeSampling',\n    callback: (\n      samplingData: {\n        spanAttributes: SpanAttributes;\n        spanName: string;\n        parentSampled?: boolean;\n        parentSampleRate?: number;\n        parentContext?: SpanContextData;\n      },\n      samplingDecision: { decision: boolean },\n    ) => void,\n  ): void;\n\n  /**\n   * Register a callback for after a span is ended.\n   * NOTE: The span cannot be mutated anymore in this callback.\n   * Receives the span as argument.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'spanEnd', callback: (span: Span) => void): () => void;\n\n  /**\n   * Register a callback for when an idle span is allowed to auto-finish.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'idleSpanEnableAutoFinish', callback: (span: Span) => void): () => void;\n\n  /**\n   * Register a callback for transaction start and finish.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'beforeEnvelope', callback: (envelope: Envelope) => void): () => void;\n\n  /**\n   * Register a callback that runs when stack frame metadata should be applied to an event.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'applyFrameMetadata', callback: (event: Event) => void): () => void;\n\n  /**\n   * Register a callback for before sending an event.\n   * This is called right before an event is sent and should not be used to mutate the event.\n   * Receives an Event & EventHint as arguments.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'beforeSendEvent', callback: (event: Event, hint?: EventHint | undefined) => void): () => void;\n\n  /**\n   * Register a callback for before sending a session or session aggregrates..\n   * Receives the session/aggregate as second argument.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'beforeSendSession', callback: (session: Session | SessionAggregates) => void): () => void;\n\n  /**\n   * Register a callback for preprocessing an event,\n   * before it is passed to (global) event processors.\n   * Receives an Event & EventHint as arguments.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'preprocessEvent', callback: (event: Event, hint?: EventHint | undefined) => void): () => void;\n\n  /**\n   * Register a callback for postprocessing an event,\n   * after it was passed to (global) event processors, before it is being sent.\n   * Receives an Event & EventHint as arguments.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'postprocessEvent', callback: (event: Event, hint?: EventHint | undefined) => void): () => void;\n\n  /**\n   * Register a callback for when an event has been sent.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(\n    hook: 'afterSendEvent',\n    callback: (event: Event, sendResponse: TransportMakeRequestResponse) => void,\n  ): () => void;\n\n  /**\n   * Register a callback before a breadcrumb is added.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'beforeAddBreadcrumb', callback: (breadcrumb: Breadcrumb, hint?: BreadcrumbHint) => void): () => void;\n\n  /**\n   * Register a callback when a DSC (Dynamic Sampling Context) is created.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'createDsc', callback: (dsc: DynamicSamplingContext, rootSpan?: Span) => void): () => void;\n\n  /**\n   * Register a callback when a Feedback event has been prepared.\n   * This should be used to mutate the event. The options argument can hint\n   * about what kind of mutation it expects.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(\n    hook: 'beforeSendFeedback',\n    callback: (feedback: FeedbackEvent, options?: { includeReplay?: boolean }) => void,\n  ): () => void;\n\n  /**\n   * Register a callback when the feedback widget is opened in a user's browser\n   */\n  public on(hook: 'openFeedbackWidget', callback: () => void): () => void;\n\n  /**\n   * A hook for the browser tracing integrations to trigger a span start for a page load.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(\n    hook: 'startPageLoadSpan',\n    callback: (\n      options: StartSpanOptions,\n      traceOptions?: { sentryTrace?: string | undefined; baggage?: string | undefined },\n    ) => void,\n  ): () => void;\n\n  /**\n   * A hook for the browser tracing integrations to trigger after the pageload span was started.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'afterStartPageLoadSpan', callback: (span: Span) => void): () => void;\n\n  /**\n   * A hook for triggering right before a navigation span is started.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(\n    hook: 'beforeStartNavigationSpan',\n    callback: (options: StartSpanOptions, navigationOptions?: { isRedirect?: boolean }) => void,\n  ): () => void;\n\n  /**\n   * A hook for browser tracing integrations to trigger a span for a navigation.\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(\n    hook: 'startNavigationSpan',\n    callback: (options: StartSpanOptions, navigationOptions?: { isRedirect?: boolean }) => void,\n  ): () => void;\n\n  /**\n   * A hook for GraphQL client integration to enhance a span with request data.\n   * @returns A function that, when executed, removes the registered callback.\n   */\n  public on(\n    hook: 'beforeOutgoingRequestSpan',\n    callback: (span: Span, hint: XhrBreadcrumbHint | FetchBreadcrumbHint) => void,\n  ): () => void;\n\n  /**\n   * A hook for GraphQL client integration to enhance a breadcrumb with request data.\n   * @returns A function that, when executed, removes the registered callback.\n   */\n  public on(\n    hook: 'beforeOutgoingRequestBreadcrumb',\n    callback: (breadcrumb: Breadcrumb, hint: XhrBreadcrumbHint | FetchBreadcrumbHint) => void,\n  ): () => void;\n\n  /**\n   * A hook that is called when the client is flushing\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'flush', callback: () => void): () => void;\n\n  /**\n   * A hook that is called when the client is closing\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'close', callback: () => void): () => void;\n\n  /**\n   * A hook that is called before a log is captured. This hooks runs before `beforeSendLog` is fired.\n   *\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'beforeCaptureLog', callback: (log: Log) => void): () => void;\n\n  /**\n   * A hook that is called after a log is captured\n   *\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'afterCaptureLog', callback: (log: Log) => void): () => void;\n\n  /**\n   * A hook that is called when the client is flushing logs\n   *\n   * @returns {() => void} A function that, when executed, removes the registered callback.\n   */\n  public on(hook: 'flushLogs', callback: () => void): () => void;\n\n  /**\n   * Register a hook on this client.\n   */\n  public on(hook: string, callback: unknown): () => void {\n    const hooks = (this._hooks[hook] = this._hooks[hook] || []);\n\n    // @ts-expect-error We assume the types are correct\n    hooks.push(callback);\n\n    // This function returns a callback execution handler that, when invoked,\n    // deregisters a callback. This is crucial for managing instances where callbacks\n    // need to be unregistered to prevent self-referencing in callback closures,\n    // ensuring proper garbage collection.\n    return () => {\n      // @ts-expect-error We assume the types are correct\n      const cbIndex = hooks.indexOf(callback);\n      if (cbIndex > -1) {\n        hooks.splice(cbIndex, 1);\n      }\n    };\n  }\n\n  /** Fire a hook whenever a span starts. */\n  public emit(hook: 'spanStart', span: Span): void;\n\n  /** A hook that is called every time before a span is sampled. */\n  public emit(\n    hook: 'beforeSampling',\n    samplingData: {\n      spanAttributes: SpanAttributes;\n      spanName: string;\n      parentSampled?: boolean;\n      parentSampleRate?: number;\n      parentContext?: SpanContextData;\n    },\n    samplingDecision: { decision: boolean },\n  ): void;\n\n  /** Fire a hook whenever a span ends. */\n  public emit(hook: 'spanEnd', span: Span): void;\n\n  /**\n   * Fire a hook indicating that an idle span is allowed to auto finish.\n   */\n  public emit(hook: 'idleSpanEnableAutoFinish', span: Span): void;\n\n  /*\n   * Fire a hook event for envelope creation and sending. Expects to be given an envelope as the\n   * second argument.\n   */\n  public emit(hook: 'beforeEnvelope', envelope: Envelope): void;\n\n  /*\n   * Fire a hook indicating that stack frame metadata should be applied to the event passed to the hook.\n   */\n  public emit(hook: 'applyFrameMetadata', event: Event): void;\n\n  /**\n   * Fire a hook event before sending an event.\n   * This is called right before an event is sent and should not be used to mutate the event.\n   * Expects to be given an Event & EventHint as the second/third argument.\n   */\n  public emit(hook: 'beforeSendEvent', event: Event, hint?: EventHint): void;\n\n  /**\n   * Fire a hook event before sending a session/aggregates.\n   * Expects to be given the prepared session/aggregates as second argument.\n   */\n  public emit(hook: 'beforeSendSession', session: Session | SessionAggregates): void;\n\n  /**\n   * Fire a hook event to process events before they are passed to (global) event processors.\n   * Expects to be given an Event & EventHint as the second/third argument.\n   */\n  public emit(hook: 'preprocessEvent', event: Event, hint?: EventHint): void;\n\n  /**\n   * Fire a hook event to process a user on an event before it is sent to Sentry, after all other processors have run.\n   * Expects to be given an Event & EventHint as the second/third argument.\n   */\n  public emit(hook: 'postprocessEvent', event: Event, hint?: EventHint): void;\n\n  /*\n   * Fire a hook event after sending an event. Expects to be given an Event as the\n   * second argument.\n   */\n  public emit(hook: 'afterSendEvent', event: Event, sendResponse: TransportMakeRequestResponse): void;\n\n  /**\n   * Fire a hook for when a breadcrumb is added. Expects the breadcrumb as second argument.\n   */\n  public emit(hook: 'beforeAddBreadcrumb', breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void;\n\n  /**\n   * Fire a hook for when a DSC (Dynamic Sampling Context) is created. Expects the DSC as second argument.\n   */\n  public emit(hook: 'createDsc', dsc: DynamicSamplingContext, rootSpan?: Span): void;\n\n  /**\n   * Fire a hook event for after preparing a feedback event. Events to be given\n   * a feedback event as the second argument, and an optional options object as\n   * third argument.\n   */\n  public emit(hook: 'beforeSendFeedback', feedback: FeedbackEvent, options?: { includeReplay?: boolean }): void;\n\n  /**\n   * Fire a hook event for when the feedback widget is opened in a user's browser\n   */\n  public emit(hook: 'openFeedbackWidget'): void;\n\n  /**\n   * Emit a hook event for browser tracing integrations to trigger a span start for a page load.\n   */\n  public emit(\n    hook: 'startPageLoadSpan',\n    options: StartSpanOptions,\n    traceOptions?: { sentryTrace?: string | undefined; baggage?: string | undefined },\n  ): void;\n\n  /**\n   * Emit a hook event for browser tracing integrations to trigger aafter the pageload span was started.\n   */\n  public emit(hook: 'afterStartPageLoadSpan', span: Span): void;\n\n  /**\n   * Emit a hook event for triggering right before a navigation span is started.\n   */\n  public emit(\n    hook: 'beforeStartNavigationSpan',\n    options: StartSpanOptions,\n    navigationOptions?: { isRedirect?: boolean },\n  ): void;\n\n  /**\n   * Emit a hook event for browser tracing integrations to trigger a span for a navigation.\n   */\n  public emit(\n    hook: 'startNavigationSpan',\n    options: StartSpanOptions,\n    navigationOptions?: { isRedirect?: boolean },\n  ): void;\n\n  /**\n   * Emit a hook event for GraphQL client integration to enhance a span with request data.\n   */\n  public emit(hook: 'beforeOutgoingRequestSpan', span: Span, hint: XhrBreadcrumbHint | FetchBreadcrumbHint): void;\n\n  /**\n   * Emit a hook event for GraphQL client integration to enhance a breadcrumb with request data.\n   */\n  public emit(\n    hook: 'beforeOutgoingRequestBreadcrumb',\n    breadcrumb: Breadcrumb,\n    hint: XhrBreadcrumbHint | FetchBreadcrumbHint,\n  ): void;\n\n  /**\n   * Emit a hook event for client flush\n   */\n  public emit(hook: 'flush'): void;\n\n  /**\n   * Emit a hook event for client close\n   */\n  public emit(hook: 'close'): void;\n\n  /**\n   * Emit a hook event for client before capturing a log. This hooks runs before `beforeSendLog` is fired.\n   */\n  public emit(hook: 'beforeCaptureLog', log: Log): void;\n\n  /**\n   * Emit a hook event for client after capturing a log.\n   */\n  public emit(hook: 'afterCaptureLog', log: Log): void;\n\n  /**\n   * Emit a hook event for client flush logs\n   */\n  public emit(hook: 'flushLogs'): void;\n\n  /**\n   * Emit a hook that was previously registered via `on()`.\n   */\n  public emit(hook: string, ...rest: unknown[]): void {\n    const callbacks = this._hooks[hook];\n    if (callbacks) {\n      callbacks.forEach(callback => callback(...rest));\n    }\n  }\n\n  /**\n   * Send an envelope to Sentry.\n   */\n  public sendEnvelope(envelope: Envelope): PromiseLike<TransportMakeRequestResponse> {\n    this.emit('beforeEnvelope', envelope);\n\n    if (this._isEnabled() && this._transport) {\n      return this._transport.send(envelope).then(null, reason => {\n        DEBUG_BUILD && debug.error('Error while sending envelope:', reason);\n        return reason;\n      });\n    }\n\n    DEBUG_BUILD && debug.error('Transport disabled');\n\n    return resolvedSyncPromise({});\n  }\n\n  /* eslint-enable @typescript-eslint/unified-signatures */\n\n  /** Setup integrations for this client. */\n  protected _setupIntegrations(): void {\n    const { integrations } = this._options;\n    this._integrations = setupIntegrations(this, integrations);\n    afterSetupIntegrations(this, integrations);\n  }\n\n  /** Updates existing session based on the provided event */\n  protected _updateSessionFromEvent(session: Session, event: Event): void {\n    let crashed = event.level === 'fatal';\n    let errored = false;\n    const exceptions = event.exception?.values;\n\n    if (exceptions) {\n      errored = true;\n\n      for (const ex of exceptions) {\n        const mechanism = ex.mechanism;\n        if (mechanism?.handled === false) {\n          crashed = true;\n          break;\n        }\n      }\n    }\n\n    // A session is updated and that session update is sent in only one of the two following scenarios:\n    // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n    // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n    const sessionNonTerminal = session.status === 'ok';\n    const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n    if (shouldUpdateAndSend) {\n      updateSession(session, {\n        ...(crashed && { status: 'crashed' }),\n        errors: session.errors || Number(errored || crashed),\n      });\n      this.captureSession(session);\n    }\n  }\n\n  /**\n   * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n   * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n   *\n   * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n   * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n   * `true`.\n   * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n   * `false` otherwise\n   */\n  protected _isClientDoneProcessing(timeout?: number): PromiseLike<boolean> {\n    return new SyncPromise(resolve => {\n      let ticked: number = 0;\n      const tick: number = 1;\n\n      const interval = setInterval(() => {\n        if (this._numProcessing == 0) {\n          clearInterval(interval);\n          resolve(true);\n        } else {\n          ticked += tick;\n          if (timeout && ticked >= timeout) {\n            clearInterval(interval);\n            resolve(false);\n          }\n        }\n      }, tick);\n    });\n  }\n\n  /** Determines whether this SDK is enabled and a transport is present. */\n  protected _isEnabled(): boolean {\n    return this.getOptions().enabled !== false && this._transport !== undefined;\n  }\n\n  /**\n   * Adds common information to events.\n   *\n   * The information includes release and environment from `options`,\n   * breadcrumbs and context (extra, tags and user) from the scope.\n   *\n   * Information that is already present in the event is never overwritten. For\n   * nested objects, such as the context, keys are merged.\n   *\n   * @param event The original event.\n   * @param hint May contain additional information about the original exception.\n   * @param currentScope A scope containing event metadata.\n   * @returns A new event with more information.\n   */\n  protected _prepareEvent(\n    event: Event,\n    hint: EventHint,\n    currentScope: Scope,\n    isolationScope: Scope,\n  ): PromiseLike<Event | null> {\n    const options = this.getOptions();\n    const integrations = Object.keys(this._integrations);\n    if (!hint.integrations && integrations?.length) {\n      hint.integrations = integrations;\n    }\n\n    this.emit('preprocessEvent', event, hint);\n\n    if (!event.type) {\n      isolationScope.setLastEventId(event.event_id || hint.event_id);\n    }\n\n    return prepareEvent(options, event, hint, currentScope, this, isolationScope).then(evt => {\n      if (evt === null) {\n        return evt;\n      }\n\n      this.emit('postprocessEvent', evt, hint);\n\n      evt.contexts = {\n        trace: getTraceContextFromScope(currentScope),\n        ...evt.contexts,\n      };\n\n      const dynamicSamplingContext = getDynamicSamplingContextFromScope(this, currentScope);\n\n      evt.sdkProcessingMetadata = {\n        dynamicSamplingContext,\n        ...evt.sdkProcessingMetadata,\n      };\n\n      return evt;\n    });\n  }\n\n  /**\n   * Processes the event and logs an error in case of rejection\n   * @param event\n   * @param hint\n   * @param scope\n   */\n  protected _captureEvent(\n    event: Event,\n    hint: EventHint = {},\n    currentScope = getCurrentScope(),\n    isolationScope = getIsolationScope(),\n  ): PromiseLike<string | undefined> {\n    if (DEBUG_BUILD && isErrorEvent(event)) {\n      debug.log(`Captured error event \\`${getPossibleEventMessages(event)[0] || '<unknown>'}\\``);\n    }\n\n    return this._processEvent(event, hint, currentScope, isolationScope).then(\n      finalEvent => {\n        return finalEvent.event_id;\n      },\n      reason => {\n        if (DEBUG_BUILD) {\n          if (_isDoNotSendEventError(reason)) {\n            debug.log(reason.message);\n          } else if (_isInternalError(reason)) {\n            debug.warn(reason.message);\n          } else {\n            debug.warn(reason);\n          }\n        }\n        return undefined;\n      },\n    );\n  }\n\n  /**\n   * Processes an event (either error or message) and sends it to Sentry.\n   *\n   * This also adds breadcrumbs and context information to the event. However,\n   * platform specific meta data (such as the User's IP address) must be added\n   * by the SDK implementor.\n   *\n   *\n   * @param event The event to send to Sentry.\n   * @param hint May contain additional information about the original exception.\n   * @param currentScope A scope containing event metadata.\n   * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n   */\n  protected _processEvent(\n    event: Event,\n    hint: EventHint,\n    currentScope: Scope,\n    isolationScope: Scope,\n  ): PromiseLike<Event> {\n    const options = this.getOptions();\n    const { sampleRate } = options;\n\n    const isTransaction = isTransactionEvent(event);\n    const isError = isErrorEvent(event);\n    const eventType = event.type || 'error';\n    const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n    // 1.0 === 100% events are sent\n    // 0.0 === 0% events are sent\n    // Sampling for transaction happens somewhere else\n    const parsedSampleRate = typeof sampleRate === 'undefined' ? undefined : parseSampleRate(sampleRate);\n    if (isError && typeof parsedSampleRate === 'number' && Math.random() > parsedSampleRate) {\n      this.recordDroppedEvent('sample_rate', 'error');\n      return rejectedSyncPromise(\n        _makeDoNotSendEventError(\n          `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n        ),\n      );\n    }\n\n    const dataCategory = (eventType === 'replay_event' ? 'replay' : eventType) satisfies DataCategory;\n\n    return this._prepareEvent(event, hint, currentScope, isolationScope)\n      .then(prepared => {\n        if (prepared === null) {\n          this.recordDroppedEvent('event_processor', dataCategory);\n          throw _makeDoNotSendEventError('An event processor returned `null`, will not send event.');\n        }\n\n        const isInternalException = hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n        if (isInternalException) {\n          return prepared;\n        }\n\n        const result = processBeforeSend(this, options, prepared, hint);\n        return _validateBeforeSendResult(result, beforeSendLabel);\n      })\n      .then(processedEvent => {\n        if (processedEvent === null) {\n          this.recordDroppedEvent('before_send', dataCategory);\n          if (isTransaction) {\n            const spans = event.spans || [];\n            // the transaction itself counts as one span, plus all the child spans that are added\n            const spanCount = 1 + spans.length;\n            this.recordDroppedEvent('before_send', 'span', spanCount);\n          }\n          throw _makeDoNotSendEventError(`${beforeSendLabel} returned \\`null\\`, will not send event.`);\n        }\n\n        const session = currentScope.getSession() || isolationScope.getSession();\n        if (isError && session) {\n          this._updateSessionFromEvent(session, processedEvent);\n        }\n\n        if (isTransaction) {\n          const spanCountBefore = processedEvent.sdkProcessingMetadata?.spanCountBeforeProcessing || 0;\n          const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n          const droppedSpanCount = spanCountBefore - spanCountAfter;\n          if (droppedSpanCount > 0) {\n            this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n          }\n        }\n\n        // None of the Sentry built event processor will update transaction name,\n        // so if the transaction name has been changed by an event processor, we know\n        // it has to come from custom event processor added by a user\n        const transactionInfo = processedEvent.transaction_info;\n        if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n          const source = 'custom';\n          processedEvent.transaction_info = {\n            ...transactionInfo,\n            source,\n          };\n        }\n\n        this.sendEvent(processedEvent, hint);\n        return processedEvent;\n      })\n      .then(null, reason => {\n        if (_isDoNotSendEventError(reason) || _isInternalError(reason)) {\n          throw reason;\n        }\n\n        this.captureException(reason, {\n          mechanism: {\n            handled: false,\n            type: 'internal',\n          },\n          data: {\n            __sentry__: true,\n          },\n          originalException: reason,\n        });\n        throw _makeInternalError(\n          `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n        );\n      });\n  }\n\n  /**\n   * Occupies the client with processing and event\n   */\n  protected _process<T>(promise: PromiseLike<T>): void {\n    this._numProcessing++;\n    void promise.then(\n      value => {\n        this._numProcessing--;\n        return value;\n      },\n      reason => {\n        this._numProcessing--;\n        return reason;\n      },\n    );\n  }\n\n  /**\n   * Clears outcomes on this client and returns them.\n   */\n  protected _clearOutcomes(): Outcome[] {\n    const outcomes = this._outcomes;\n    this._outcomes = {};\n    return Object.entries(outcomes).map(([key, quantity]) => {\n      const [reason, category] = key.split(':') as [EventDropReason, DataCategory];\n      return {\n        reason,\n        category,\n        quantity,\n      };\n    });\n  }\n\n  /**\n   * Sends client reports as an envelope.\n   */\n  protected _flushOutcomes(): void {\n    DEBUG_BUILD && debug.log('Flushing outcomes...');\n\n    const outcomes = this._clearOutcomes();\n\n    if (outcomes.length === 0) {\n      DEBUG_BUILD && debug.log('No outcomes to send');\n      return;\n    }\n\n    // This is really the only place where we want to check for a DSN and only send outcomes then\n    if (!this._dsn) {\n      DEBUG_BUILD && debug.log('No dsn provided, will not send outcomes');\n      return;\n    }\n\n    DEBUG_BUILD && debug.log('Sending outcomes:', outcomes);\n\n    const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n    // sendEnvelope should not throw\n    // eslint-disable-next-line @typescript-eslint/no-floating-promises\n    this.sendEnvelope(envelope);\n  }\n\n  /**\n   * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n   */\n  public abstract eventFromException(_exception: unknown, _hint?: EventHint): PromiseLike<Event>;\n\n  /**\n   * Creates an {@link Event} from primitive inputs to `captureMessage`.\n   */\n  public abstract eventFromMessage(\n    _message: ParameterizedString,\n    _level?: SeverityLevel,\n    _hint?: EventHint,\n  ): PromiseLike<Event>;\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n  beforeSendResult: PromiseLike<Event | null> | Event | null,\n  beforeSendLabel: string,\n): PromiseLike<Event | null> | Event | null {\n  const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n  if (isThenable(beforeSendResult)) {\n    return beforeSendResult.then(\n      event => {\n        if (!isPlainObject(event) && event !== null) {\n          throw _makeInternalError(invalidValueError);\n        }\n        return event;\n      },\n      e => {\n        throw _makeInternalError(`${beforeSendLabel} rejected with ${e}`);\n      },\n    );\n  } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n    throw _makeInternalError(invalidValueError);\n  }\n  return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n  client: Client,\n  options: ClientOptions,\n  event: Event,\n  hint: EventHint,\n): PromiseLike<Event | null> | Event | null {\n  const { beforeSend, beforeSendTransaction, beforeSendSpan, ignoreSpans } = options;\n  let processedEvent = event;\n\n  if (isErrorEvent(processedEvent) && beforeSend) {\n    return beforeSend(processedEvent, hint);\n  }\n\n  if (isTransactionEvent(processedEvent)) {\n    // Avoid processing if we don't have to\n    if (beforeSendSpan || ignoreSpans) {\n      // 1. Process root span\n      const rootSpanJson = convertTransactionEventToSpanJson(processedEvent);\n\n      // 1.1 If the root span should be ignored, drop the whole transaction\n      if (ignoreSpans?.length && shouldIgnoreSpan(rootSpanJson, ignoreSpans)) {\n        // dropping the whole transaction!\n        return null;\n      }\n\n      // 1.2 If a `beforeSendSpan` callback is defined, process the root span\n      if (beforeSendSpan) {\n        const processedRootSpanJson = beforeSendSpan(rootSpanJson);\n        if (!processedRootSpanJson) {\n          showSpanDropWarning();\n        } else {\n          // update event with processed root span values\n          processedEvent = merge(event, convertSpanJsonToTransactionEvent(processedRootSpanJson));\n        }\n      }\n\n      // 2. Process child spans\n      if (processedEvent.spans) {\n        const processedSpans: SpanJSON[] = [];\n\n        const initialSpans = processedEvent.spans;\n\n        for (const span of initialSpans) {\n          // 2.a If the child span should be ignored, reparent it to the root span\n          if (ignoreSpans?.length && shouldIgnoreSpan(span, ignoreSpans)) {\n            reparentChildSpans(initialSpans, span);\n            continue;\n          }\n\n          // 2.b If a `beforeSendSpan` callback is defined, process the child span\n          if (beforeSendSpan) {\n            const processedSpan = beforeSendSpan(span);\n            if (!processedSpan) {\n              showSpanDropWarning();\n              processedSpans.push(span);\n            } else {\n              processedSpans.push(processedSpan);\n            }\n          } else {\n            processedSpans.push(span);\n          }\n        }\n\n        const droppedSpans = processedEvent.spans.length - processedSpans.length;\n        if (droppedSpans) {\n          client.recordDroppedEvent('before_send', 'span', droppedSpans);\n        }\n        processedEvent.spans = processedSpans;\n      }\n    }\n\n    if (beforeSendTransaction) {\n      if (processedEvent.spans) {\n        // We store the # of spans before processing in SDK metadata,\n        // so we can compare it afterwards to determine how many spans were dropped\n        const spanCountBefore = processedEvent.spans.length;\n        processedEvent.sdkProcessingMetadata = {\n          ...event.sdkProcessingMetadata,\n          spanCountBeforeProcessing: spanCountBefore,\n        };\n      }\n      return beforeSendTransaction(processedEvent as TransactionEvent, hint);\n    }\n  }\n\n  return processedEvent;\n}\n\nfunction isErrorEvent(event: Event): event is ErrorEvent {\n  return event.type === undefined;\n}\n\nfunction isTransactionEvent(event: Event): event is TransactionEvent {\n  return event.type === 'transaction';\n}\n\n/** Extract trace information from scope */\nexport function _getTraceInfoFromScope(\n  client: Client,\n  scope: Scope | undefined,\n): [dynamicSamplingContext: Partial<DynamicSamplingContext> | undefined, traceContext: TraceContext | undefined] {\n  if (!scope) {\n    return [undefined, undefined];\n  }\n\n  return withScope(scope, () => {\n    const span = getActiveSpan();\n    const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n    const dynamicSamplingContext = span\n      ? getDynamicSamplingContextFromSpan(span)\n      : getDynamicSamplingContextFromScope(client, scope);\n    return [dynamicSamplingContext, traceContext];\n  });\n}\n","import { SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID } from '../semanticAttributes';\nimport type { TransactionEvent } from '../types-hoist/event';\nimport type { SpanJSON } from '../types-hoist/span';\n\n/**\n * Converts a transaction event to a span JSON object.\n */\nexport function convertTransactionEventToSpanJson(event: TransactionEvent): SpanJSON {\n  const { trace_id, parent_span_id, span_id, status, origin, data, op } = event.contexts?.trace ?? {};\n\n  return {\n    data: data ?? {},\n    description: event.transaction,\n    op,\n    parent_span_id,\n    span_id: span_id ?? '',\n    start_timestamp: event.start_timestamp ?? 0,\n    status,\n    timestamp: event.timestamp,\n    trace_id: trace_id ?? '',\n    origin,\n    profile_id: data?.[SEMANTIC_ATTRIBUTE_PROFILE_ID] as string | undefined,\n    exclusive_time: data?.[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] as number | undefined,\n    measurements: event.measurements,\n    is_segment: true,\n  };\n}\n\n/**\n * Converts a span JSON object to a transaction event.\n */\nexport function convertSpanJsonToTransactionEvent(span: SpanJSON): TransactionEvent {\n  return {\n    type: 'transaction',\n    timestamp: span.timestamp,\n    start_timestamp: span.start_timestamp,\n    transaction: span.description,\n    contexts: {\n      trace: {\n        trace_id: span.trace_id,\n        span_id: span.span_id,\n        parent_span_id: span.parent_span_id,\n        op: span.op,\n        status: span.status,\n        origin: span.origin,\n        data: {\n          ...span.data,\n          ...(span.profile_id && { [SEMANTIC_ATTRIBUTE_PROFILE_ID]: span.profile_id }),\n          ...(span.exclusive_time && { [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: span.exclusive_time }),\n        },\n      },\n    },\n    measurements: span.measurements,\n  };\n}\n","import type { ClientReport } from '../types-hoist/clientreport';\nimport type { ClientReportEnvelope, ClientReportItem } from '../types-hoist/envelope';\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n  discarded_events: ClientReport['discarded_events'],\n  dsn?: string,\n  timestamp?: number,\n): ClientReportEnvelope {\n  const clientReportItem: ClientReportItem = [\n    { type: 'client_report' },\n    {\n      timestamp: timestamp || dateTimestampInSeconds(),\n      discarded_events,\n    },\n  ];\n  return createEnvelope<ClientReportEnvelope>(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","import type { Options } from '../types-hoist/options';\nimport { SDK_VERSION } from '../utils/version';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nexport function applySdkMetadata(options: Options, name: string, names = [name], source = 'npm'): void {\n  const metadata = options._metadata || {};\n\n  if (!metadata.sdk) {\n    metadata.sdk = {\n      name: `sentry.javascript.${name}`,\n      packages: names.map(name => ({\n        name: `${source}:@sentry/${name}`,\n        version: SDK_VERSION,\n      })),\n      version: SDK_VERSION,\n    };\n  }\n\n  options._metadata = metadata;\n}\n","import { getGlobalSingleton } from '../carrier';\nimport type { Client } from '../client';\nimport { _getTraceInfoFromScope } from '../client';\nimport { getClient, getCurrentScope, getGlobalScope, getIsolationScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Scope, ScopeData } from '../scope';\nimport type { Log, SerializedLog, SerializedLogAttributeValue } from '../types-hoist/log';\nimport { mergeScopeData } from '../utils/applyScopeDataToEvent';\nimport { consoleSandbox, debug } from '../utils/debug-logger';\nimport { isParameterizedString } from '../utils/is';\nimport { _getSpanForScope } from '../utils/spanOnScope';\nimport { timestampInSeconds } from '../utils/time';\nimport { SEVERITY_TEXT_TO_SEVERITY_NUMBER } from './constants';\nimport { createLogEnvelope } from './envelope';\n\nconst MAX_LOG_BUFFER_SIZE = 100;\n\n/**\n * Converts a log attribute to a serialized log attribute.\n *\n * @param key - The key of the log attribute.\n * @param value - The value of the log attribute.\n * @returns The serialized log attribute.\n */\nexport function logAttributeToSerializedLogAttribute(value: unknown): SerializedLogAttributeValue {\n  switch (typeof value) {\n    case 'number':\n      if (Number.isInteger(value)) {\n        return {\n          value,\n          type: 'integer',\n        };\n      }\n      return {\n        value,\n        type: 'double',\n      };\n    case 'boolean':\n      return {\n        value,\n        type: 'boolean',\n      };\n    case 'string':\n      return {\n        value,\n        type: 'string',\n      };\n    default: {\n      let stringValue = '';\n      try {\n        stringValue = JSON.stringify(value) ?? '';\n      } catch {\n        // Do nothing\n      }\n      return {\n        value: stringValue,\n        type: 'string',\n      };\n    }\n  }\n}\n\n/**\n * Sets a log attribute if the value exists and the attribute key is not already present.\n *\n * @param logAttributes - The log attributes object to modify.\n * @param key - The attribute key to set.\n * @param value - The value to set (only sets if truthy and key not present).\n * @param setEvenIfPresent - Whether to set the attribute if it is present. Defaults to true.\n */\nfunction setLogAttribute(\n  logAttributes: Record<string, unknown>,\n  key: string,\n  value: unknown,\n  setEvenIfPresent = true,\n): void {\n  if (value && (!logAttributes[key] || setEvenIfPresent)) {\n    logAttributes[key] = value;\n  }\n}\n\n/**\n * Captures a serialized log event and adds it to the log buffer for the given client.\n *\n * @param client - A client. Uses the current client if not provided.\n * @param serializedLog - The serialized log event to capture.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nexport function _INTERNAL_captureSerializedLog(client: Client, serializedLog: SerializedLog): void {\n  const bufferMap = _getBufferMap();\n\n  const logBuffer = _INTERNAL_getLogBuffer(client);\n  if (logBuffer === undefined) {\n    bufferMap.set(client, [serializedLog]);\n  } else {\n    bufferMap.set(client, [...logBuffer, serializedLog]);\n    if (logBuffer.length >= MAX_LOG_BUFFER_SIZE) {\n      _INTERNAL_flushLogsBuffer(client, logBuffer);\n    }\n  }\n}\n\n/**\n * Captures a log event and sends it to Sentry.\n *\n * @param log - The log event to capture.\n * @param scope - A scope. Uses the current scope if not provided.\n * @param client - A client. Uses the current client if not provided.\n * @param captureSerializedLog - A function to capture the serialized log.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nexport function _INTERNAL_captureLog(\n  beforeLog: Log,\n  client: Client | undefined = getClient(),\n  currentScope = getCurrentScope(),\n  captureSerializedLog: (client: Client, log: SerializedLog) => void = _INTERNAL_captureSerializedLog,\n): void {\n  if (!client) {\n    DEBUG_BUILD && debug.warn('No client available to capture log.');\n    return;\n  }\n\n  const { release, environment, enableLogs = false, beforeSendLog } = client.getOptions();\n  if (!enableLogs) {\n    DEBUG_BUILD && debug.warn('logging option not enabled, log will not be captured.');\n    return;\n  }\n\n  const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n\n  const processedLogAttributes = {\n    ...beforeLog.attributes,\n  };\n\n  const {\n    user: { id, email, username },\n  } = getMergedScopeData(currentScope);\n  setLogAttribute(processedLogAttributes, 'user.id', id, false);\n  setLogAttribute(processedLogAttributes, 'user.email', email, false);\n  setLogAttribute(processedLogAttributes, 'user.name', username, false);\n\n  setLogAttribute(processedLogAttributes, 'sentry.release', release);\n  setLogAttribute(processedLogAttributes, 'sentry.environment', environment);\n\n  const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n  setLogAttribute(processedLogAttributes, 'sentry.sdk.name', name);\n  setLogAttribute(processedLogAttributes, 'sentry.sdk.version', version);\n\n  const beforeLogMessage = beforeLog.message;\n  if (isParameterizedString(beforeLogMessage)) {\n    const { __sentry_template_string__, __sentry_template_values__ = [] } = beforeLogMessage;\n    processedLogAttributes['sentry.message.template'] = __sentry_template_string__;\n    __sentry_template_values__.forEach((param, index) => {\n      processedLogAttributes[`sentry.message.parameter.${index}`] = param;\n    });\n  }\n\n  const span = _getSpanForScope(currentScope);\n  // Add the parent span ID to the log attributes for trace context\n  setLogAttribute(processedLogAttributes, 'sentry.trace.parent_span_id', span?.spanContext().spanId);\n\n  const processedLog = { ...beforeLog, attributes: processedLogAttributes };\n\n  client.emit('beforeCaptureLog', processedLog);\n\n  // We need to wrap this in `consoleSandbox` to avoid recursive calls to `beforeSendLog`\n  const log = beforeSendLog ? consoleSandbox(() => beforeSendLog(processedLog)) : processedLog;\n  if (!log) {\n    client.recordDroppedEvent('before_send', 'log_item', 1);\n    DEBUG_BUILD && debug.warn('beforeSendLog returned null, log will not be captured.');\n    return;\n  }\n\n  const { level, message, attributes = {}, severityNumber } = log;\n\n  const serializedLog: SerializedLog = {\n    timestamp: timestampInSeconds(),\n    level,\n    body: message,\n    trace_id: traceContext?.trace_id,\n    severity_number: severityNumber ?? SEVERITY_TEXT_TO_SEVERITY_NUMBER[level],\n    attributes: Object.keys(attributes).reduce(\n      (acc, key) => {\n        acc[key] = logAttributeToSerializedLogAttribute(attributes[key]);\n        return acc;\n      },\n      {} as Record<string, SerializedLogAttributeValue>,\n    ),\n  };\n\n  captureSerializedLog(client, serializedLog);\n\n  client.emit('afterCaptureLog', log);\n}\n\n/**\n * Flushes the logs buffer to Sentry.\n *\n * @param client - A client.\n * @param maybeLogBuffer - A log buffer. Uses the log buffer for the given client if not provided.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nexport function _INTERNAL_flushLogsBuffer(client: Client, maybeLogBuffer?: Array<SerializedLog>): void {\n  const logBuffer = maybeLogBuffer ?? _INTERNAL_getLogBuffer(client) ?? [];\n  if (logBuffer.length === 0) {\n    return;\n  }\n\n  const clientOptions = client.getOptions();\n  const envelope = createLogEnvelope(logBuffer, clientOptions._metadata, clientOptions.tunnel, client.getDsn());\n\n  // Clear the log buffer after envelopes have been constructed.\n  _getBufferMap().set(client, []);\n\n  client.emit('flushLogs');\n\n  // sendEnvelope should not throw\n  // eslint-disable-next-line @typescript-eslint/no-floating-promises\n  client.sendEnvelope(envelope);\n}\n\n/**\n * Returns the log buffer for a given client.\n *\n * Exported for testing purposes.\n *\n * @param client - The client to get the log buffer for.\n * @returns The log buffer for the given client.\n */\nexport function _INTERNAL_getLogBuffer(client: Client): Array<SerializedLog> | undefined {\n  return _getBufferMap().get(client);\n}\n\n/**\n * Get the scope data for the current scope after merging with the\n * global scope and isolation scope.\n *\n * @param currentScope - The current scope.\n * @returns The scope data.\n */\nfunction getMergedScopeData(currentScope: Scope): ScopeData {\n  const scopeData = getGlobalScope().getScopeData();\n  mergeScopeData(scopeData, getIsolationScope().getScopeData());\n  mergeScopeData(scopeData, currentScope.getScopeData());\n  return scopeData;\n}\n\nfunction _getBufferMap(): WeakMap<Client, Array<SerializedLog>> {\n  // The reference to the Client <> LogBuffer map is stored on the carrier to ensure it's always the same\n  return getGlobalSingleton('clientToLogBufferMap', () => new WeakMap<Client, Array<SerializedLog>>());\n}\n","import type { DsnComponents } from '../types-hoist/dsn';\nimport type { LogContainerItem, LogEnvelope } from '../types-hoist/envelope';\nimport type { SerializedLog } from '../types-hoist/log';\nimport type { SdkMetadata } from '../types-hoist/sdkmetadata';\nimport { dsnToString } from '../utils/dsn';\nimport { createEnvelope } from '../utils/envelope';\n\n/**\n * Creates a log container envelope item for a list of logs.\n *\n * @param items - The logs to include in the envelope.\n * @returns The created log container envelope item.\n */\nexport function createLogContainerEnvelopeItem(items: Array<SerializedLog>): LogContainerItem {\n  return [\n    {\n      type: 'log',\n      item_count: items.length,\n      content_type: 'application/vnd.sentry.items.log+json',\n    },\n    {\n      items,\n    },\n  ];\n}\n\n/**\n * Creates an envelope for a list of logs.\n *\n * Logs from multiple traces can be included in the same envelope.\n *\n * @param logs - The logs to include in the envelope.\n * @param metadata - The metadata to include in the envelope.\n * @param tunnel - The tunnel to include in the envelope.\n * @param dsn - The DSN to include in the envelope.\n * @returns The created envelope.\n */\nexport function createLogEnvelope(\n  logs: Array<SerializedLog>,\n  metadata?: SdkMetadata,\n  tunnel?: string,\n  dsn?: DsnComponents,\n): LogEnvelope {\n  const headers: LogEnvelope[0] = {};\n\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version,\n    };\n  }\n\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n\n  return createEnvelope<LogEnvelope>(headers, [createLogContainerEnvelopeItem(logs)]);\n}\n","import type { Session, SessionAggregates } from '../types-hoist/session';\nimport type { User } from '../types-hoist/user';\n\n// By default, we want to infer the IP address, unless this is explicitly set to `null`\n// We do this after all other processing is done\n// If `ip_address` is explicitly set to `null` or a value, we leave it as is\n\n/**\n * @internal\n * @deprecated -- set ip inferral via via SDK metadata options on client instead.\n */\nexport function addAutoIpAddressToUser(objWithMaybeUser: { user?: User | null }): void {\n  if (objWithMaybeUser.user?.ip_address === undefined) {\n    objWithMaybeUser.user = {\n      ...objWithMaybeUser.user,\n      ip_address: '{{auto}}',\n    };\n  }\n}\n\n/**\n * @internal\n */\nexport function addAutoIpAddressToSession(session: Session | SessionAggregates): void {\n  if ('aggregates' in session) {\n    if (session.attrs?.['ip_address'] === undefined) {\n      session.attrs = {\n        ...session.attrs,\n        ip_address: '{{auto}}',\n      };\n    }\n  } else {\n    if (session.ipAddress === undefined) {\n      session.ipAddress = '{{auto}}';\n    }\n  }\n}\n","import type {\n  Event,\n  EventHint,\n  Exception,\n  ParameterizedString,\n  SeverityLevel,\n  StackFrame,\n  StackParser,\n} from '@sentry/core';\nimport {\n  addExceptionMechanism,\n  addExceptionTypeValue,\n  extractExceptionKeysForMessage,\n  getClient,\n  isDOMError,\n  isDOMException,\n  isError,\n  isErrorEvent,\n  isEvent,\n  isParameterizedString,\n  isPlainObject,\n  normalizeToSize,\n  resolvedSyncPromise,\n} from '@sentry/core';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nexport function exceptionFromError(stackParser: StackParser, ex: Error): Exception {\n  // Get the frames first since Opera can lose the stack if we touch anything else first\n  const frames = parseStackFrames(stackParser, ex);\n\n  const exception: Exception = {\n    type: extractType(ex),\n    value: extractMessage(ex),\n  };\n\n  if (frames.length) {\n    exception.stacktrace = { frames };\n  }\n\n  if (exception.type === undefined && exception.value === '') {\n    exception.value = 'Unrecoverable error caught';\n  }\n\n  return exception;\n}\n\nfunction eventFromPlainObject(\n  stackParser: StackParser,\n  exception: Record<string, unknown>,\n  syntheticException?: Error,\n  isUnhandledRejection?: boolean,\n): Event {\n  const client = getClient();\n  const normalizeDepth = client?.getOptions().normalizeDepth;\n\n  // If we can, we extract an exception from the object properties\n  const errorFromProp = getErrorPropertyFromObject(exception);\n\n  const extra = {\n    __serialized__: normalizeToSize(exception, normalizeDepth),\n  };\n\n  if (errorFromProp) {\n    return {\n      exception: {\n        values: [exceptionFromError(stackParser, errorFromProp)],\n      },\n      extra,\n    };\n  }\n\n  const event = {\n    exception: {\n      values: [\n        {\n          type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n          value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n        } as Exception,\n      ],\n    },\n    extra,\n  } satisfies Event;\n\n  if (syntheticException) {\n    const frames = parseStackFrames(stackParser, syntheticException);\n    if (frames.length) {\n      // event.exception.values[0] has been set above\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      event.exception.values[0]!.stacktrace = { frames };\n    }\n  }\n\n  return event;\n}\n\nfunction eventFromError(stackParser: StackParser, ex: Error): Event {\n  return {\n    exception: {\n      values: [exceptionFromError(stackParser, ex)],\n    },\n  };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n  stackParser: StackParser,\n  ex: Error & { framesToPop?: number; stacktrace?: string },\n): StackFrame[] {\n  // Access and store the stacktrace property before doing ANYTHING\n  // else to it because Opera is not very good at providing it\n  // reliably in other circumstances.\n  const stacktrace = ex.stacktrace || ex.stack || '';\n\n  const skipLines = getSkipFirstStackStringLines(ex);\n  const framesToPop = getPopFirstTopFrames(ex);\n\n  try {\n    return stackParser(stacktrace, skipLines, framesToPop);\n  } catch {\n    // no-empty\n  }\n\n  return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\n/**\n * Certain known React errors contain links that would be falsely\n * parsed as frames. This function check for these errors and\n * returns number of the stack string lines to skip.\n */\nfunction getSkipFirstStackStringLines(ex: Error): number {\n  if (ex && reactMinifiedRegexp.test(ex.message)) {\n    return 1;\n  }\n\n  return 0;\n}\n\n/**\n * If error has `framesToPop` property, it means that the\n * creator tells us the first x frames will be useless\n * and should be discarded. Typically error from wrapper function\n * which don't point to the actual location in the developer's code.\n *\n * Example: https://github.com/zertosh/invariant/blob/master/invariant.js#L46\n */\nfunction getPopFirstTopFrames(ex: Error & { framesToPop?: unknown }): number {\n  if (typeof ex.framesToPop === 'number') {\n    return ex.framesToPop;\n  }\n\n  return 0;\n}\n\n// https://developer.mozilla.org/en-US/docs/WebAssembly/JavaScript_interface/Exception\n// @ts-expect-error - WebAssembly.Exception is a valid class\nfunction isWebAssemblyException(exception: unknown): exception is WebAssembly.Exception {\n  // Check for support\n  // @ts-expect-error - WebAssembly.Exception is a valid class\n  if (typeof WebAssembly !== 'undefined' && typeof WebAssembly.Exception !== 'undefined') {\n    // @ts-expect-error - WebAssembly.Exception is a valid class\n    return exception instanceof WebAssembly.Exception;\n  } else {\n    return false;\n  }\n}\n\n/**\n * Extracts from errors what we use as the exception `type` in error events.\n *\n * Usually, this is the `name` property on Error objects but WASM errors need to be treated differently.\n */\nexport function extractType(ex: Error & { message: { error?: Error } }): string | undefined {\n  const name = ex?.name;\n\n  // The name for WebAssembly.Exception Errors needs to be extracted differently.\n  // Context: https://github.com/getsentry/sentry-javascript/issues/13787\n  if (!name && isWebAssemblyException(ex)) {\n    // Emscripten sets array[type, message] to the \"message\" property on the WebAssembly.Exception object\n    const hasTypeInMessage = ex.message && Array.isArray(ex.message) && ex.message.length == 2;\n    return hasTypeInMessage ? ex.message[0] : 'WebAssembly.Exception';\n  }\n\n  return name;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nexport function extractMessage(ex: Error & { message: { error?: Error } }): string {\n  const message = ex?.message;\n\n  if (isWebAssemblyException(ex)) {\n    // For Node 18, Emscripten sets array[type, message] to the \"message\" property on the WebAssembly.Exception object\n    if (Array.isArray(ex.message) && ex.message.length == 2) {\n      return ex.message[1];\n    }\n    return 'wasm exception';\n  }\n\n  if (!message) {\n    return 'No error message';\n  }\n\n  if (message.error && typeof message.error.message === 'string') {\n    return message.error.message;\n  }\n\n  return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n  stackParser: StackParser,\n  exception: unknown,\n  hint?: EventHint,\n  attachStacktrace?: boolean,\n): PromiseLike<Event> {\n  const syntheticException = hint?.syntheticException || undefined;\n  const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n  addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n  event.level = 'error';\n  if (hint?.event_id) {\n    event.event_id = hint.event_id;\n  }\n  return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n  stackParser: StackParser,\n  message: ParameterizedString,\n  level: SeverityLevel = 'info',\n  hint?: EventHint,\n  attachStacktrace?: boolean,\n): PromiseLike<Event> {\n  const syntheticException = hint?.syntheticException || undefined;\n  const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n  event.level = level;\n  if (hint?.event_id) {\n    event.event_id = hint.event_id;\n  }\n  return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n  stackParser: StackParser,\n  exception: unknown,\n  syntheticException?: Error,\n  attachStacktrace?: boolean,\n  isUnhandledRejection?: boolean,\n): Event {\n  let event: Event;\n\n  if (isErrorEvent(exception as ErrorEvent) && (exception as ErrorEvent).error) {\n    // If it is an ErrorEvent with `error` property, extract it to get actual Error\n    const errorEvent = exception as ErrorEvent;\n    return eventFromError(stackParser, errorEvent.error as Error);\n  }\n\n  // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n  // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n  // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n  //\n  // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n  // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n  // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n  if (isDOMError(exception) || isDOMException(exception as DOMException)) {\n    const domException = exception as DOMException;\n\n    if ('stack' in (exception as Error)) {\n      event = eventFromError(stackParser, exception as Error);\n    } else {\n      const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n      const message = domException.message ? `${name}: ${domException.message}` : name;\n      event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n      addExceptionTypeValue(event, message);\n    }\n    if ('code' in domException) {\n      // eslint-disable-next-line deprecation/deprecation\n      event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n    }\n\n    return event;\n  }\n  if (isError(exception)) {\n    // we have a real Error object, do nothing\n    return eventFromError(stackParser, exception);\n  }\n  if (isPlainObject(exception) || isEvent(exception)) {\n    // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n    // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n    // group on any key/value change.\n    const objectException = exception as Record<string, unknown>;\n    event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n    addExceptionMechanism(event, {\n      synthetic: true,\n    });\n    return event;\n  }\n\n  // If none of previous checks were valid, then it means that it's not:\n  // - an instance of DOMError\n  // - an instance of DOMException\n  // - an instance of Event\n  // - an instance of Error\n  // - a valid ErrorEvent (one with an error property)\n  // - a plain Object\n  //\n  // So bail out and capture it as a simple message:\n  event = eventFromString(stackParser, exception as string, syntheticException, attachStacktrace);\n  addExceptionTypeValue(event, `${exception}`, undefined);\n  addExceptionMechanism(event, {\n    synthetic: true,\n  });\n\n  return event;\n}\n\nfunction eventFromString(\n  stackParser: StackParser,\n  message: ParameterizedString,\n  syntheticException?: Error,\n  attachStacktrace?: boolean,\n): Event {\n  const event: Event = {};\n\n  if (attachStacktrace && syntheticException) {\n    const frames = parseStackFrames(stackParser, syntheticException);\n    if (frames.length) {\n      event.exception = {\n        values: [{ value: message, stacktrace: { frames } }],\n      };\n    }\n    addExceptionMechanism(event, { synthetic: true });\n  }\n\n  if (isParameterizedString(message)) {\n    const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n    event.logentry = {\n      message: __sentry_template_string__,\n      params: __sentry_template_values__,\n    };\n    return event;\n  }\n\n  event.message = message;\n  return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n  exception: Record<string, unknown>,\n  { isUnhandledRejection }: { isUnhandledRejection?: boolean },\n): string {\n  const keys = extractExceptionKeysForMessage(exception);\n  const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n  // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n  // We still want to try to get a decent message for these cases\n  if (isErrorEvent(exception)) {\n    return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n  }\n\n  if (isEvent(exception)) {\n    const className = getObjectClassName(exception);\n    return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n  }\n\n  return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj: unknown): string | undefined | void {\n  try {\n    const prototype: Prototype | null = Object.getPrototypeOf(obj);\n    return prototype ? prototype.constructor.name : undefined;\n  } catch {\n    // ignore errors here\n  }\n}\n\n/** If a plain object has a property that is an `Error`, return this error. */\nfunction getErrorPropertyFromObject(obj: Record<string, unknown>): Error | undefined {\n  for (const prop in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n      const value = obj[prop];\n      if (value instanceof Error) {\n        return value;\n      }\n    }\n  }\n\n  return undefined;\n}\n","import type {\n  BrowserClientProfilingOptions,\n  BrowserClientReplayOptions,\n  ClientOptions,\n  Event,\n  EventHint,\n  Options,\n  ParameterizedString,\n  Scope,\n  SeverityLevel,\n} from '@sentry/core';\nimport {\n  _INTERNAL_flushLogsBuffer,\n  addAutoIpAddressToSession,\n  applySdkMetadata,\n  Client,\n  getSDKSource,\n} from '@sentry/core';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { WINDOW } from './helpers';\nimport type { BrowserTransportOptions } from './transports/types';\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\ndeclare const __SENTRY_RELEASE__: string | undefined;\n\nconst DEFAULT_FLUSH_INTERVAL = 5000;\n\ntype BrowserSpecificOptions = BrowserClientReplayOptions &\n  BrowserClientProfilingOptions & {\n    /** If configured, this URL will be used as base URL for lazy loading integration. */\n    cdnBaseUrl?: string;\n  };\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/core Options for more information.\n */\nexport type BrowserOptions = Options<BrowserTransportOptions> &\n  BrowserSpecificOptions & {\n    /**\n     * Important: Only set this option if you know what you are doing!\n     *\n     * By default, the SDK will check if `Sentry.init` is called in a browser extension.\n     * In case it is, it will stop initialization and log a warning\n     * because browser extensions require a different Sentry initialization process:\n     * https://docs.sentry.io/platforms/javascript/best-practices/shared-environments/\n     *\n     * Setting up the SDK in a browser extension with global error monitoring is not recommended\n     * and will likely flood you with errors from other web sites or extensions. This can heavily\n     * impact your quota and cause interference with your and other Sentry SDKs in shared environments.\n     *\n     * If this check wrongfully flags your setup as a browser extension, you can set this\n     * option to `true` to skip the check.\n     *\n     * @default false\n     */\n    skipBrowserExtensionCheck?: boolean;\n  };\n\n/**\n * Configuration options for the Sentry Browser SDK Client class\n * @see BrowserClient for more information.\n */\nexport type BrowserClientOptions = ClientOptions<BrowserTransportOptions> & BrowserSpecificOptions;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends Client<BrowserClientOptions> {\n  private _logFlushIdleTimeout: ReturnType<typeof setTimeout> | undefined;\n  /**\n   * Creates a new Browser SDK instance.\n   *\n   * @param options Configuration options for this SDK.\n   */\n  public constructor(options: BrowserClientOptions) {\n    const opts = applyDefaultOptions(options);\n    const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n    applySdkMetadata(opts, 'browser', ['browser'], sdkSource);\n\n    // Only allow IP inferral by Relay if sendDefaultPii is true\n    if (opts._metadata?.sdk) {\n      opts._metadata.sdk.settings = {\n        infer_ip: opts.sendDefaultPii ? 'auto' : 'never',\n        // purposefully allowing already passed settings to override the default\n        ...opts._metadata.sdk.settings,\n      };\n    }\n\n    super(opts);\n\n    const { sendDefaultPii, sendClientReports, enableLogs } = this._options;\n\n    if (WINDOW.document && (sendClientReports || enableLogs)) {\n      WINDOW.document.addEventListener('visibilitychange', () => {\n        if (WINDOW.document.visibilityState === 'hidden') {\n          if (sendClientReports) {\n            this._flushOutcomes();\n          }\n          if (enableLogs) {\n            _INTERNAL_flushLogsBuffer(this);\n          }\n        }\n      });\n    }\n\n    if (enableLogs) {\n      this.on('flush', () => {\n        _INTERNAL_flushLogsBuffer(this);\n      });\n\n      this.on('afterCaptureLog', () => {\n        if (this._logFlushIdleTimeout) {\n          clearTimeout(this._logFlushIdleTimeout);\n        }\n\n        this._logFlushIdleTimeout = setTimeout(() => {\n          _INTERNAL_flushLogsBuffer(this);\n        }, DEFAULT_FLUSH_INTERVAL);\n      });\n    }\n\n    if (sendDefaultPii) {\n      this.on('beforeSendSession', addAutoIpAddressToSession);\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n  public eventFromException(exception: unknown, hint?: EventHint): PromiseLike<Event> {\n    return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n  }\n\n  /**\n   * @inheritDoc\n   */\n  public eventFromMessage(\n    message: ParameterizedString,\n    level: SeverityLevel = 'info',\n    hint?: EventHint,\n  ): PromiseLike<Event> {\n    return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n  }\n\n  /**\n   * @inheritDoc\n   */\n  protected _prepareEvent(\n    event: Event,\n    hint: EventHint,\n    currentScope: Scope,\n    isolationScope: Scope,\n  ): PromiseLike<Event | null> {\n    event.platform = event.platform || 'javascript';\n\n    return super._prepareEvent(event, hint, currentScope, isolationScope);\n  }\n}\n\n/** Exported only for tests. */\nexport function applyDefaultOptions<T extends Partial<BrowserClientOptions>>(optionsArg: T): T {\n  return {\n    release:\n      typeof __SENTRY_RELEASE__ === 'string' // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n        ? __SENTRY_RELEASE__\n        : WINDOW.SENTRY_RELEASE?.id, // This supports the variable that sentry-webpack-plugin injects\n    sendClientReports: true,\n    // We default this to true, as it is the safer scenario\n    parentSpanIsAlwaysRootSpan: true,\n    ...optionsArg,\n  };\n}\n","/*\n * This module exists for optimizations in the build process through rollup and terser.  We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `debug` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\nexport type SdkSource = 'npm' | 'cdn' | 'loader' | 'aws-lambda-layer';\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n  return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nexport function getSDKSource(): SdkSource {\n  // This comment is used to identify this line in the CDN bundle build step and replace this with \"return 'cdn';\"\n  /* __SENTRY_SDK_SOURCE__ */ return 'npm';\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { ConsoleLevel, HandlerDataConsole } from '../types-hoist/instrument';\nimport { CONSOLE_LEVELS, originalConsoleMethods } from '../utils/debug-logger';\nimport { fill } from '../utils/object';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addConsoleInstrumentationHandler(handler: (data: HandlerDataConsole) => void): void {\n  const type = 'console';\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole(): void {\n  if (!('console' in GLOBAL_OBJ)) {\n    return;\n  }\n\n  CONSOLE_LEVELS.forEach(function (level: ConsoleLevel): void {\n    if (!(level in GLOBAL_OBJ.console)) {\n      return;\n    }\n\n    fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod: () => any): Function {\n      originalConsoleMethods[level] = originalConsoleMethod;\n\n      return function (...args: any[]): void {\n        const handlerData: HandlerDataConsole = { args, level };\n        triggerHandlers('console', handlerData);\n\n        const log = originalConsoleMethods[level];\n        log?.apply(GLOBAL_OBJ.console, args);\n      };\n    });\n  });\n}\n","import { getClient, getIsolationScope } from './currentScopes';\nimport type { Breadcrumb, BreadcrumbHint } from './types-hoist/breadcrumb';\nimport { consoleSandbox } from './utils/debug-logger';\nimport { dateTimestampInSeconds } from './utils/time';\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n */\nexport function addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n  const client = getClient();\n  const isolationScope = getIsolationScope();\n\n  if (!client) return;\n\n  const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n\n  if (maxBreadcrumbs <= 0) return;\n\n  const timestamp = dateTimestampInSeconds();\n  const mergedBreadcrumb = { timestamp, ...breadcrumb };\n  const finalBreadcrumb = beforeBreadcrumb\n    ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) as Breadcrumb | null)\n    : mergedBreadcrumb;\n\n  if (finalBreadcrumb === null) return;\n\n  if (client.emit) {\n    client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n  }\n\n  isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n","import type { SeverityLevel } from '../types-hoist/severity';\n\n/**\n * Determine a breadcrumb's log level (only `warning` or `error`) based on an HTTP status code.\n */\nexport function getBreadcrumbLogLevelFromHttpStatusCode(statusCode: number | undefined): SeverityLevel | undefined {\n  // NOTE: undefined defaults to 'info' in Sentry\n  if (statusCode === undefined) {\n    return undefined;\n  } else if (statusCode >= 400 && statusCode < 500) {\n    return 'warning';\n  } else if (statusCode >= 500) {\n    return 'error';\n  } else {\n    return undefined;\n  }\n}\n","import type { HandlerDataDom } from '@sentry/core';\nimport { addHandler, addNonEnumerableProperty, fill, maybeInstrument, triggerHandlers, uuid4 } from '@sentry/core';\nimport { WINDOW } from '../types';\n\ntype SentryWrappedTarget = HTMLElement & { _sentryId?: string };\n\ntype AddEventListener = (\n  type: string,\n  listener: EventListenerOrEventListenerObject,\n  options?: boolean | AddEventListenerOptions,\n) => void;\ntype RemoveEventListener = (\n  type: string,\n  listener: EventListenerOrEventListenerObject,\n  options?: boolean | EventListenerOptions,\n) => void;\n\ntype InstrumentedElement = Element & {\n  __sentry_instrumentation_handlers__?: {\n    [key in 'click' | 'keypress']?: {\n      handler?: unknown;\n      /** The number of custom listeners attached to this element */\n      refCount: number;\n    };\n  };\n};\n\nconst DEBOUNCE_DURATION = 1000;\n\nlet debounceTimerID: number | undefined;\nlet lastCapturedEventType: string | undefined;\nlet lastCapturedEventTargetId: string | undefined;\n\n/**\n * Add an instrumentation handler for when a click or a keypress happens.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addClickKeypressInstrumentationHandler(handler: (data: HandlerDataDom) => void): void {\n  const type = 'dom';\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentDOM);\n}\n\n/** Exported for tests only. */\nexport function instrumentDOM(): void {\n  if (!WINDOW.document) {\n    return;\n  }\n\n  // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n  // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n  // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n  const triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n  const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n  WINDOW.document.addEventListener('click', globalDOMEventHandler, false);\n  WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n  // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n  // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n  // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n  // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n  // guaranteed to fire at least once.)\n  ['EventTarget', 'Node'].forEach((target: string) => {\n    const globalObject = WINDOW as unknown as Record<string, { prototype?: object }>;\n    const proto = globalObject[target]?.prototype;\n\n    // eslint-disable-next-line no-prototype-builtins\n    if (!proto?.hasOwnProperty?.('addEventListener')) {\n      return;\n    }\n\n    fill(proto, 'addEventListener', function (originalAddEventListener: AddEventListener): AddEventListener {\n      return function (this: InstrumentedElement, type, listener, options): AddEventListener {\n        if (type === 'click' || type == 'keypress') {\n          try {\n            const handlers = (this.__sentry_instrumentation_handlers__ =\n              this.__sentry_instrumentation_handlers__ || {});\n            const handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n            if (!handlerForType.handler) {\n              const handler = makeDOMEventHandler(triggerDOMHandler);\n              handlerForType.handler = handler;\n              originalAddEventListener.call(this, type, handler, options);\n            }\n\n            handlerForType.refCount++;\n          } catch {\n            // Accessing dom properties is always fragile.\n            // Also allows us to skip `addEventListeners` calls with no proper `this` context.\n          }\n        }\n\n        return originalAddEventListener.call(this, type, listener, options);\n      };\n    });\n\n    fill(\n      proto,\n      'removeEventListener',\n      function (originalRemoveEventListener: RemoveEventListener): RemoveEventListener {\n        return function (this: InstrumentedElement, type, listener, options): () => void {\n          if (type === 'click' || type == 'keypress') {\n            try {\n              const handlers = this.__sentry_instrumentation_handlers__ || {};\n              const handlerForType = handlers[type];\n\n              if (handlerForType) {\n                handlerForType.refCount--;\n                // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n                if (handlerForType.refCount <= 0) {\n                  originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n                  handlerForType.handler = undefined;\n                  delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n                }\n\n                // If there are no longer any custom handlers of any type on this element, cleanup everything.\n                if (Object.keys(handlers).length === 0) {\n                  delete this.__sentry_instrumentation_handlers__;\n                }\n              }\n            } catch {\n              // Accessing dom properties is always fragile.\n              // Also allows us to skip `addEventListeners` calls with no proper `this` context.\n            }\n          }\n\n          return originalRemoveEventListener.call(this, type, listener, options);\n        };\n      },\n    );\n  });\n}\n\n/**\n * Check whether the event is similar to the last captured one. For example, two click events on the same button.\n */\nfunction isSimilarToLastCapturedEvent(event: Event): boolean {\n  // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n  if (event.type !== lastCapturedEventType) {\n    return false;\n  }\n\n  try {\n    // If both events have the same type, it's still possible that actions were performed on different targets.\n    // e.g. 2 clicks on different buttons.\n    if (!event.target || (event.target as SentryWrappedTarget)._sentryId !== lastCapturedEventTargetId) {\n      return false;\n    }\n  } catch {\n    // just accessing `target` property can throw an exception in some rare circumstances\n    // see: https://github.com/getsentry/sentry-javascript/issues/838\n  }\n\n  // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n  // to which an event listener was attached), we treat them as the same action, as we want to capture\n  // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n  return true;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(eventType: string, target: SentryWrappedTarget | null): boolean {\n  // We are only interested in filtering `keypress` events for now.\n  if (eventType !== 'keypress') {\n    return false;\n  }\n\n  if (!target?.tagName) {\n    return true;\n  }\n\n  // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n  // e.g.tabbing through elements, hotkeys, etc.\n  if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n    return false;\n  }\n\n  return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n */\nfunction makeDOMEventHandler(\n  handler: (data: HandlerDataDom) => void,\n  globalListener: boolean = false,\n): (event: Event) => void {\n  return (event: Event & { _sentryCaptured?: true }): void => {\n    // It's possible this handler might trigger multiple times for the same\n    // event (e.g. event propagation through node ancestors).\n    // Ignore if we've already captured that event.\n    if (!event || event['_sentryCaptured']) {\n      return;\n    }\n\n    const target = getEventTarget(event);\n\n    // We always want to skip _some_ events.\n    if (shouldSkipDOMEvent(event.type, target)) {\n      return;\n    }\n\n    // Mark event as \"seen\"\n    addNonEnumerableProperty(event, '_sentryCaptured', true);\n\n    if (target && !target._sentryId) {\n      // Add UUID to event target so we can identify if\n      addNonEnumerableProperty(target, '_sentryId', uuid4());\n    }\n\n    const name = event.type === 'keypress' ? 'input' : event.type;\n\n    // If there is no last captured event, it means that we can safely capture the new event and store it for future comparisons.\n    // If there is a last captured event, see if the new event is different enough to treat it as a unique one.\n    // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n    if (!isSimilarToLastCapturedEvent(event)) {\n      const handlerData: HandlerDataDom = { event, name, global: globalListener };\n      handler(handlerData);\n      lastCapturedEventType = event.type;\n      lastCapturedEventTargetId = target ? target._sentryId : undefined;\n    }\n\n    // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n    clearTimeout(debounceTimerID);\n    debounceTimerID = WINDOW.setTimeout(() => {\n      lastCapturedEventTargetId = undefined;\n      lastCapturedEventType = undefined;\n    }, DEBOUNCE_DURATION);\n  };\n}\n\nfunction getEventTarget(event: Event): SentryWrappedTarget | null {\n  try {\n    return event.target as SentryWrappedTarget | null;\n  } catch {\n    // just accessing `target` property can throw an exception in some rare circumstances\n    // see: https://github.com/getsentry/sentry-javascript/issues/838\n    return null;\n  }\n}\n","/* eslint-disable max-lines */\n\nimport type {\n  Breadcrumb,\n  Client,\n  Event as SentryEvent,\n  FetchBreadcrumbData,\n  FetchBreadcrumbHint,\n  HandlerDataConsole,\n  HandlerDataDom,\n  HandlerDataFetch,\n  HandlerDataHistory,\n  HandlerDataXhr,\n  IntegrationFn,\n  XhrBreadcrumbData,\n  XhrBreadcrumbHint,\n} from '@sentry/core';\nimport {\n  addBreadcrumb,\n  addConsoleInstrumentationHandler,\n  addFetchInstrumentationHandler,\n  debug,\n  defineIntegration,\n  getBreadcrumbLogLevelFromHttpStatusCode,\n  getClient,\n  getComponentName,\n  getEventDescription,\n  htmlTreeAsString,\n  parseUrl,\n  safeJoin,\n  severityLevelFromString,\n} from '@sentry/core';\nimport type { FetchHint, XhrHint } from '@sentry-internal/browser-utils';\nimport {\n  addClickKeypressInstrumentationHandler,\n  addHistoryInstrumentationHandler,\n  addXhrInstrumentationHandler,\n  SENTRY_XHR_DATA_KEY,\n} from '@sentry-internal/browser-utils';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\ninterface BreadcrumbsOptions {\n  console: boolean;\n  dom:\n    | boolean\n    | {\n        serializeAttribute?: string | string[];\n        maxStringLength?: number;\n      };\n  fetch: boolean;\n  history: boolean;\n  sentry: boolean;\n  xhr: boolean;\n}\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst INTEGRATION_NAME = 'Breadcrumbs';\n\nconst _breadcrumbsIntegration = ((options: Partial<BreadcrumbsOptions> = {}) => {\n  const _options = {\n    console: true,\n    dom: true,\n    fetch: true,\n    history: true,\n    sentry: true,\n    xhr: true,\n    ...options,\n  };\n\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      // TODO(v11): Remove this functionality and use `consoleIntegration` from @sentry/core instead.\n      if (_options.console) {\n        addConsoleInstrumentationHandler(_getConsoleBreadcrumbHandler(client));\n      }\n      if (_options.dom) {\n        addClickKeypressInstrumentationHandler(_getDomBreadcrumbHandler(client, _options.dom));\n      }\n      if (_options.xhr) {\n        addXhrInstrumentationHandler(_getXhrBreadcrumbHandler(client));\n      }\n      if (_options.fetch) {\n        addFetchInstrumentationHandler(_getFetchBreadcrumbHandler(client));\n      }\n      if (_options.history) {\n        addHistoryInstrumentationHandler(_getHistoryBreadcrumbHandler(client));\n      }\n      if (_options.sentry) {\n        client.on('beforeSendEvent', _getSentryBreadcrumbHandler(client));\n      }\n    },\n  };\n}) satisfies IntegrationFn;\n\nexport const breadcrumbsIntegration = defineIntegration(_breadcrumbsIntegration);\n\n/**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\nfunction _getSentryBreadcrumbHandler(client: Client): (event: SentryEvent) => void {\n  return function addSentryBreadcrumb(event: SentryEvent): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    addBreadcrumb(\n      {\n        category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n        event_id: event.event_id,\n        level: event.level,\n        message: getEventDescription(event),\n      },\n      {\n        event,\n      },\n    );\n  };\n}\n\n/**\n * A HOC that creates a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _getDomBreadcrumbHandler(\n  client: Client,\n  dom: BreadcrumbsOptions['dom'],\n): (handlerData: HandlerDataDom) => void {\n  return function _innerDomBreadcrumb(handlerData: HandlerDataDom): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    let target;\n    let componentName;\n    let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n    let maxStringLength =\n      typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n    if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n      DEBUG_BUILD &&\n        debug.warn(\n          `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n        );\n      maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n    }\n\n    if (typeof keyAttrs === 'string') {\n      keyAttrs = [keyAttrs];\n    }\n\n    // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n    try {\n      const event = handlerData.event as Event | Node;\n      const element = _isEvent(event) ? event.target : event;\n\n      target = htmlTreeAsString(element, { keyAttrs, maxStringLength });\n      componentName = getComponentName(element);\n    } catch {\n      target = '<unknown>';\n    }\n\n    if (target.length === 0) {\n      return;\n    }\n\n    const breadcrumb: Breadcrumb = {\n      category: `ui.${handlerData.name}`,\n      message: target,\n    };\n\n    if (componentName) {\n      breadcrumb.data = { 'ui.component_name': componentName };\n    }\n\n    addBreadcrumb(breadcrumb, {\n      event: handlerData.event,\n      name: handlerData.name,\n      global: handlerData.global,\n    });\n  };\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _getConsoleBreadcrumbHandler(client: Client): (handlerData: HandlerDataConsole) => void {\n  return function _consoleBreadcrumb(handlerData: HandlerDataConsole): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    const breadcrumb = {\n      category: 'console',\n      data: {\n        arguments: handlerData.args,\n        logger: 'console',\n      },\n      level: severityLevelFromString(handlerData.level),\n      message: safeJoin(handlerData.args, ' '),\n    };\n\n    if (handlerData.level === 'assert') {\n      if (handlerData.args[0] === false) {\n        breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n        breadcrumb.data.arguments = handlerData.args.slice(1);\n      } else {\n        // Don't capture a breadcrumb for passed assertions\n        return;\n      }\n    }\n\n    addBreadcrumb(breadcrumb, {\n      input: handlerData.args,\n      level: handlerData.level,\n    });\n  };\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _getXhrBreadcrumbHandler(client: Client): (handlerData: HandlerDataXhr) => void {\n  return function _xhrBreadcrumb(handlerData: HandlerDataXhr): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    const { startTimestamp, endTimestamp } = handlerData;\n\n    const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n    // We only capture complete, non-sentry requests\n    if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n      return;\n    }\n\n    const { method, url, status_code, body } = sentryXhrData;\n\n    const data: XhrBreadcrumbData = {\n      method,\n      url,\n      status_code,\n    };\n\n    const hint: XhrBreadcrumbHint = {\n      xhr: handlerData.xhr,\n      input: body,\n      startTimestamp,\n      endTimestamp,\n    };\n\n    const breadcrumb = {\n      category: 'xhr',\n      data,\n      type: 'http',\n      level: getBreadcrumbLogLevelFromHttpStatusCode(status_code),\n    };\n\n    client.emit('beforeOutgoingRequestBreadcrumb', breadcrumb, hint as XhrHint);\n\n    addBreadcrumb(breadcrumb, hint);\n  };\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _getFetchBreadcrumbHandler(client: Client): (handlerData: HandlerDataFetch) => void {\n  return function _fetchBreadcrumb(handlerData: HandlerDataFetch): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    const { startTimestamp, endTimestamp } = handlerData;\n\n    // We only capture complete fetch requests\n    if (!endTimestamp) {\n      return;\n    }\n\n    if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n      // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n      return;\n    }\n\n    const breadcrumbData: FetchBreadcrumbData = {\n      method: handlerData.fetchData.method,\n      url: handlerData.fetchData.url,\n    };\n\n    if (handlerData.error) {\n      const data: FetchBreadcrumbData = handlerData.fetchData;\n      const hint: FetchBreadcrumbHint = {\n        data: handlerData.error,\n        input: handlerData.args,\n        startTimestamp,\n        endTimestamp,\n      };\n\n      const breadcrumb = {\n        category: 'fetch',\n        data,\n        level: 'error',\n        type: 'http',\n      } satisfies Breadcrumb;\n\n      client.emit('beforeOutgoingRequestBreadcrumb', breadcrumb, hint as FetchHint);\n\n      addBreadcrumb(breadcrumb, hint);\n    } else {\n      const response = handlerData.response as Response | undefined;\n      const data: FetchBreadcrumbData = {\n        ...handlerData.fetchData,\n        status_code: response?.status,\n      };\n\n      breadcrumbData.request_body_size = handlerData.fetchData.request_body_size;\n      breadcrumbData.response_body_size = handlerData.fetchData.response_body_size;\n      breadcrumbData.status_code = response?.status;\n\n      const hint: FetchBreadcrumbHint = {\n        input: handlerData.args,\n        response,\n        startTimestamp,\n        endTimestamp,\n      };\n\n      const breadcrumb = {\n        category: 'fetch',\n        data,\n        type: 'http',\n        level: getBreadcrumbLogLevelFromHttpStatusCode(data.status_code),\n      };\n\n      client.emit('beforeOutgoingRequestBreadcrumb', breadcrumb, hint as FetchHint);\n\n      addBreadcrumb(breadcrumb, hint);\n    }\n  };\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _getHistoryBreadcrumbHandler(client: Client): (handlerData: HandlerDataHistory) => void {\n  return function _historyBreadcrumb(handlerData: HandlerDataHistory): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    let from: string | undefined = handlerData.from;\n    let to: string | undefined = handlerData.to;\n    const parsedLoc = parseUrl(WINDOW.location.href);\n    let parsedFrom = from ? parseUrl(from) : undefined;\n    const parsedTo = parseUrl(to);\n\n    // Initial pushState doesn't provide `from` information\n    if (!parsedFrom?.path) {\n      parsedFrom = parsedLoc;\n    }\n\n    // Use only the path component of the URL if the URL matches the current\n    // document (almost all the time when using pushState)\n    if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n      to = parsedTo.relative;\n    }\n    if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n      from = parsedFrom.relative;\n    }\n\n    addBreadcrumb({\n      category: 'navigation',\n      data: {\n        from,\n        to,\n      },\n    });\n  };\n}\n\nfunction _isEvent(event: unknown): event is Event {\n  return !!event && !!(event as Record<string, unknown>).target;\n}\n","import type { SeverityLevel } from '../types-hoist/severity';\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nexport function severityLevelFromString(level: SeverityLevel | string): SeverityLevel {\n  return (\n    level === 'warn' ? 'warning' : ['fatal', 'error', 'warning', 'log', 'info', 'debug'].includes(level) ? level : 'log'\n  ) as SeverityLevel;\n}\n","import type { IntegrationFn, WrappedFunction } from '@sentry/core';\nimport { defineIntegration, fill, getFunctionName, getOriginalFunction } from '@sentry/core';\nimport { WINDOW, wrap } from '../helpers';\n\nconst DEFAULT_EVENT_TARGET = [\n  'EventTarget',\n  'Window',\n  'Node',\n  'ApplicationCache',\n  'AudioTrackList',\n  'BroadcastChannel',\n  'ChannelMergerNode',\n  'CryptoOperation',\n  'EventSource',\n  'FileReader',\n  'HTMLUnknownElement',\n  'IDBDatabase',\n  'IDBRequest',\n  'IDBTransaction',\n  'KeyOperation',\n  'MediaController',\n  'MessagePort',\n  'ModalWindow',\n  'Notification',\n  'SVGElementInstance',\n  'Screen',\n  'SharedWorker',\n  'TextTrack',\n  'TextTrackCue',\n  'TextTrackList',\n  'WebSocket',\n  'WebSocketWorker',\n  'Worker',\n  'XMLHttpRequest',\n  'XMLHttpRequestEventTarget',\n  'XMLHttpRequestUpload',\n];\n\nconst INTEGRATION_NAME = 'BrowserApiErrors';\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\ninterface BrowserApiErrorsOptions {\n  setTimeout: boolean;\n  setInterval: boolean;\n  requestAnimationFrame: boolean;\n  XMLHttpRequest: boolean;\n  eventTarget: boolean | string[];\n\n  /**\n   * If you experience issues with this integration causing double-invocations of event listeners,\n   * try setting this option to `true`. It will unregister the original callbacks from the event targets\n   * before adding the instrumented callback.\n   *\n   * @default false\n   */\n  unregisterOriginalCallbacks: boolean;\n}\n\nconst _browserApiErrorsIntegration = ((options: Partial<BrowserApiErrorsOptions> = {}) => {\n  const _options = {\n    XMLHttpRequest: true,\n    eventTarget: true,\n    requestAnimationFrame: true,\n    setInterval: true,\n    setTimeout: true,\n    unregisterOriginalCallbacks: false,\n    ...options,\n  };\n\n  return {\n    name: INTEGRATION_NAME,\n    // TODO: This currently only works for the first client this is setup\n    // We may want to adjust this to check for client etc.\n    setupOnce() {\n      if (_options.setTimeout) {\n        fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n      }\n\n      if (_options.setInterval) {\n        fill(WINDOW, 'setInterval', _wrapTimeFunction);\n      }\n\n      if (_options.requestAnimationFrame) {\n        fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n      }\n\n      if (_options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n        fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n      }\n\n      const eventTargetOption = _options.eventTarget;\n      if (eventTargetOption) {\n        const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n        eventTarget.forEach(target => _wrapEventTarget(target, _options));\n      }\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Wrap timer functions and event targets to catch errors and provide better meta data.\n */\nexport const browserApiErrorsIntegration = defineIntegration(_browserApiErrorsIntegration);\n\nfunction _wrapTimeFunction(original: () => void): () => number {\n  return function (this: unknown, ...args: unknown[]): number {\n    const originalCallback = args[0];\n    args[0] = wrap(originalCallback, {\n      mechanism: {\n        data: { function: getFunctionName(original) },\n        handled: false,\n        type: 'instrument',\n      },\n    });\n    return original.apply(this, args);\n  };\n}\n\nfunction _wrapRAF(original: () => void): (callback: () => void) => unknown {\n  return function (this: unknown, callback: () => void): () => void {\n    return original.apply(this, [\n      wrap(callback, {\n        mechanism: {\n          data: {\n            function: 'requestAnimationFrame',\n            handler: getFunctionName(original),\n          },\n          handled: false,\n          type: 'instrument',\n        },\n      }),\n    ]);\n  };\n}\n\nfunction _wrapXHR(originalSend: () => void): () => void {\n  return function (this: XMLHttpRequest, ...args: unknown[]): void {\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const xhr = this;\n    const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n    xmlHttpRequestProps.forEach(prop => {\n      if (prop in xhr && typeof xhr[prop] === 'function') {\n        fill(xhr, prop, function (original) {\n          const wrapOptions = {\n            mechanism: {\n              data: {\n                function: prop,\n                handler: getFunctionName(original),\n              },\n              handled: false,\n              type: 'instrument',\n            },\n          };\n\n          // If Instrument integration has been called before BrowserApiErrors, get the name of original function\n          const originalFunction = getOriginalFunction(original);\n          if (originalFunction) {\n            wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n          }\n\n          // Otherwise wrap directly\n          return wrap(original, wrapOptions);\n        });\n      }\n    });\n\n    return originalSend.apply(this, args);\n  };\n}\n\nfunction _wrapEventTarget(target: string, integrationOptions: BrowserApiErrorsOptions): void {\n  const globalObject = WINDOW as unknown as Record<string, { prototype?: object }>;\n  const proto = globalObject[target]?.prototype;\n\n  // eslint-disable-next-line no-prototype-builtins\n  if (!proto?.hasOwnProperty?.('addEventListener')) {\n    return;\n  }\n\n  fill(proto, 'addEventListener', function (original: VoidFunction): (\n    ...args: Parameters<typeof WINDOW.addEventListener>\n  ) => ReturnType<typeof WINDOW.addEventListener> {\n    return function (this: unknown, eventName, fn, options): VoidFunction {\n      try {\n        if (isEventListenerObject(fn)) {\n          // ESlint disable explanation:\n          //  First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n          //  introduce a bug here, because bind returns a new function that doesn't have our\n          //  flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n          //  Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n          // eslint-disable-next-line @typescript-eslint/unbound-method\n          fn.handleEvent = wrap(fn.handleEvent, {\n            mechanism: {\n              data: {\n                function: 'handleEvent',\n                handler: getFunctionName(fn),\n                target,\n              },\n              handled: false,\n              type: 'instrument',\n            },\n          });\n        }\n      } catch {\n        // can sometimes get 'Permission denied to access property \"handle Event'\n      }\n\n      if (integrationOptions.unregisterOriginalCallbacks) {\n        unregisterOriginalCallback(this, eventName, fn);\n      }\n\n      return original.apply(this, [\n        eventName,\n        wrap(fn, {\n          mechanism: {\n            data: {\n              function: 'addEventListener',\n              handler: getFunctionName(fn),\n              target,\n            },\n            handled: false,\n            type: 'instrument',\n          },\n        }),\n        options,\n      ]);\n    };\n  });\n\n  fill(proto, 'removeEventListener', function (originalRemoveEventListener: VoidFunction): (\n    this: unknown,\n    ...args: Parameters<typeof WINDOW.removeEventListener>\n  ) => ReturnType<typeof WINDOW.removeEventListener> {\n    return function (this: unknown, eventName, fn, options): VoidFunction {\n      /**\n       * There are 2 possible scenarios here:\n       *\n       * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n       * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n       * as a pass-through, and call original `removeEventListener` with it.\n       *\n       * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n       * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n       * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n       * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n       * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n       *\n       * When someone adds a handler prior to initialization, and then do it again, but after,\n       * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n       * to get rid of the initial handler and it'd stick there forever.\n       */\n      try {\n        const originalEventHandler = (fn as WrappedFunction).__sentry_wrapped__;\n        if (originalEventHandler) {\n          originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n        }\n      } catch {\n        // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n      }\n      return originalRemoveEventListener.call(this, eventName, fn, options);\n    };\n  });\n}\n\nfunction isEventListenerObject(obj: unknown): obj is EventListenerObject {\n  return typeof (obj as EventListenerObject).handleEvent === 'function';\n}\n\nfunction unregisterOriginalCallback(target: unknown, eventName: string, fn: EventListenerOrEventListenerObject): void {\n  if (\n    target &&\n    typeof target === 'object' &&\n    'removeEventListener' in target &&\n    typeof target.removeEventListener === 'function'\n  ) {\n    target.removeEventListener(eventName, fn);\n  }\n}\n","import type { Client, Event, IntegrationFn, Primitive, StackParser } from '@sentry/core';\nimport {\n  addGlobalErrorInstrumentationHandler,\n  addGlobalUnhandledRejectionInstrumentationHandler,\n  captureEvent,\n  debug,\n  defineIntegration,\n  getClient,\n  getLocationHref,\n  isPrimitive,\n  isString,\n  UNKNOWN_FUNCTION,\n} from '@sentry/core';\nimport type { BrowserClient } from '../client';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\ntype GlobalHandlersIntegrations = Record<GlobalHandlersIntegrationsOptionKeys, boolean>;\n\nconst INTEGRATION_NAME = 'GlobalHandlers';\n\nconst _globalHandlersIntegration = ((options: Partial<GlobalHandlersIntegrations> = {}) => {\n  const _options = {\n    onerror: true,\n    onunhandledrejection: true,\n    ...options,\n  };\n\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      Error.stackTraceLimit = 50;\n    },\n    setup(client) {\n      if (_options.onerror) {\n        _installGlobalOnErrorHandler(client);\n        globalHandlerLog('onerror');\n      }\n      if (_options.onunhandledrejection) {\n        _installGlobalOnUnhandledRejectionHandler(client);\n        globalHandlerLog('onunhandledrejection');\n      }\n    },\n  };\n}) satisfies IntegrationFn;\n\nexport const globalHandlersIntegration = defineIntegration(_globalHandlersIntegration);\n\nfunction _installGlobalOnErrorHandler(client: Client): void {\n  addGlobalErrorInstrumentationHandler(data => {\n    const { stackParser, attachStacktrace } = getOptions();\n\n    if (getClient() !== client || shouldIgnoreOnError()) {\n      return;\n    }\n\n    const { msg, url, line, column, error } = data;\n\n    const event = _enhanceEventWithInitialFrame(\n      eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n      url,\n      line,\n      column,\n    );\n\n    event.level = 'error';\n\n    captureEvent(event, {\n      originalException: error,\n      mechanism: {\n        handled: false,\n        type: 'auto.browser.global_handlers.onerror',\n      },\n    });\n  });\n}\n\nfunction _installGlobalOnUnhandledRejectionHandler(client: Client): void {\n  addGlobalUnhandledRejectionInstrumentationHandler(e => {\n    const { stackParser, attachStacktrace } = getOptions();\n\n    if (getClient() !== client || shouldIgnoreOnError()) {\n      return;\n    }\n\n    const error = _getUnhandledRejectionError(e as unknown);\n\n    const event = isPrimitive(error)\n      ? _eventFromRejectionWithPrimitive(error)\n      : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n    event.level = 'error';\n\n    captureEvent(event, {\n      originalException: error,\n      mechanism: {\n        handled: false,\n        type: 'auto.browser.global_handlers.onunhandledrejection',\n      },\n    });\n  });\n}\n\nfunction _getUnhandledRejectionError(error: unknown): unknown {\n  if (isPrimitive(error)) {\n    return error;\n  }\n\n  // dig the object of the rejection out of known event types\n  try {\n    type ErrorWithReason = { reason: unknown };\n    // PromiseRejectionEvents store the object of the rejection under 'reason'\n    // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n    if ('reason' in (error as ErrorWithReason)) {\n      return (error as ErrorWithReason).reason;\n    }\n\n    type CustomEventWithDetail = { detail: { reason: unknown } };\n    // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n    // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n    // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n    // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n    // https://github.com/getsentry/sentry-javascript/issues/2380\n    if ('detail' in (error as CustomEventWithDetail) && 'reason' in (error as CustomEventWithDetail).detail) {\n      return (error as CustomEventWithDetail).detail.reason;\n    }\n  } catch {} // eslint-disable-line no-empty\n\n  return error;\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n  return {\n    exception: {\n      values: [\n        {\n          type: 'UnhandledRejection',\n          // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n          value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n        },\n      ],\n    },\n  };\n}\n\nfunction _enhanceEventWithInitialFrame(\n  event: Event,\n  url: string | undefined,\n  line: number | undefined,\n  column: number | undefined,\n): Event {\n  // event.exception\n  const e = (event.exception = event.exception || {});\n  // event.exception.values\n  const ev = (e.values = e.values || []);\n  // event.exception.values[0]\n  const ev0 = (ev[0] = ev[0] || {});\n  // event.exception.values[0].stacktrace\n  const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n  // event.exception.values[0].stacktrace.frames\n  const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n  const colno = column;\n  const lineno = line;\n  const filename = getFilenameFromUrl(url) ?? getLocationHref();\n\n  // event.exception.values[0].stacktrace.frames\n  if (ev0sf.length === 0) {\n    ev0sf.push({\n      colno,\n      filename,\n      function: UNKNOWN_FUNCTION,\n      in_app: true,\n      lineno,\n    });\n  }\n\n  return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n  DEBUG_BUILD && debug.log(`Global Handler attached: ${type}`);\n}\n\nfunction getOptions(): { stackParser: StackParser; attachStacktrace?: boolean } {\n  const client = getClient<BrowserClient>();\n  const options = client?.getOptions() || {\n    stackParser: () => [],\n    attachStacktrace: false,\n  };\n  return options;\n}\n\nfunction getFilenameFromUrl(url: string | undefined): string | undefined {\n  if (!isString(url) || url.length === 0) {\n    return undefined;\n  }\n\n  // stack frame urls can be data urls, for example when initializing a Worker with a base64 encoded script\n  // in this case we just show the data prefix and mime type to avoid too long raw data urls\n  if (url.startsWith('data:')) {\n    const match = url.match(/^data:([^;]+)/);\n    const mimeType = match ? match[1] : 'text/javascript';\n    const isBase64 = url.includes('base64,');\n    return `<data:${mimeType}${isBase64 ? ',base64' : ''}>`;\n  }\n\n  return url.slice(0, 1024);\n}\n","import type { ExtendedError } from '../types-hoist/error';\nimport type { Event, EventHint } from '../types-hoist/event';\nimport type { Exception } from '../types-hoist/exception';\nimport type { StackParser } from '../types-hoist/stacktrace';\nimport { isInstanceOf } from './is';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nexport function applyAggregateErrorsToEvent(\n  exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n  parser: StackParser,\n  key: string,\n  limit: number,\n  event: Event,\n  hint?: EventHint,\n): void {\n  if (!event.exception?.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n    return;\n  }\n\n  // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n  const originalException: Exception | undefined =\n    event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n  // We only create exception grouping if there is an exception in the event.\n  if (originalException) {\n    event.exception.values = aggregateExceptionsFromError(\n      exceptionFromErrorImplementation,\n      parser,\n      limit,\n      hint.originalException as ExtendedError,\n      key,\n      event.exception.values,\n      originalException,\n      0,\n    );\n  }\n}\n\nfunction aggregateExceptionsFromError(\n  exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n  parser: StackParser,\n  limit: number,\n  error: ExtendedError,\n  key: string,\n  prevExceptions: Exception[],\n  exception: Exception,\n  exceptionId: number,\n): Exception[] {\n  if (prevExceptions.length >= limit + 1) {\n    return prevExceptions;\n  }\n\n  let newExceptions = [...prevExceptions];\n\n  // Recursively call this function in order to walk down a chain of errors\n  if (isInstanceOf(error[key], Error)) {\n    applyExceptionGroupFieldsForParentException(exception, exceptionId);\n    const newException = exceptionFromErrorImplementation(parser, error[key]);\n    const newExceptionId = newExceptions.length;\n    applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n    newExceptions = aggregateExceptionsFromError(\n      exceptionFromErrorImplementation,\n      parser,\n      limit,\n      error[key],\n      key,\n      [newException, ...newExceptions],\n      newException,\n      newExceptionId,\n    );\n  }\n\n  // This will create exception grouping for AggregateErrors\n  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n  if (Array.isArray(error.errors)) {\n    error.errors.forEach((childError, i) => {\n      if (isInstanceOf(childError, Error)) {\n        applyExceptionGroupFieldsForParentException(exception, exceptionId);\n        const newException = exceptionFromErrorImplementation(parser, childError);\n        const newExceptionId = newExceptions.length;\n        applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n        newExceptions = aggregateExceptionsFromError(\n          exceptionFromErrorImplementation,\n          parser,\n          limit,\n          childError,\n          key,\n          [newException, ...newExceptions],\n          newException,\n          newExceptionId,\n        );\n      }\n    });\n  }\n\n  return newExceptions;\n}\n\nfunction applyExceptionGroupFieldsForParentException(exception: Exception, exceptionId: number): void {\n  // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n  exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n  exception.mechanism = {\n    ...exception.mechanism,\n    ...(exception.type === 'AggregateError' && { is_exception_group: true }),\n    exception_id: exceptionId,\n  };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n  exception: Exception,\n  source: string,\n  exceptionId: number,\n  parentId: number | undefined,\n): void {\n  // Don't know if this default makes sense. The protocol requires us to set these values so we pick *some* default.\n  exception.mechanism = exception.mechanism || { type: 'generic', handled: true };\n\n  exception.mechanism = {\n    ...exception.mechanism,\n    type: 'chained',\n    source,\n    exception_id: exceptionId,\n    parent_id: parentId,\n  };\n}\n","import type { IntegrationFn } from '@sentry/core';\nimport { applyAggregateErrorsToEvent, defineIntegration } from '@sentry/core';\nimport { exceptionFromError } from '../eventbuilder';\n\ninterface LinkedErrorsOptions {\n  key?: string;\n  limit?: number;\n}\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options: LinkedErrorsOptions = {}) => {\n  const limit = options.limit || DEFAULT_LIMIT;\n  const key = options.key || DEFAULT_KEY;\n\n  return {\n    name: INTEGRATION_NAME,\n    preprocessEvent(event, hint, client) {\n      const options = client.getOptions();\n\n      applyAggregateErrorsToEvent(\n        // This differs from the LinkedErrors integration in core by using a different exceptionFromError function\n        exceptionFromError,\n        options.stackParser,\n        key,\n        limit,\n        event,\n        hint,\n      );\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Aggregrate linked errors in an event.\n */\nexport const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n","// This was originally forked from https://github.com/csnover/TraceKit, and was largely\n// re - written as part of raven - js.\n//\n// This code was later copied to the JavaScript mono - repo and further modified and\n// refactored over the years.\n\n// Copyright (c) 2013 Onur Can Cakmak onur.cakmak@gmail.com and all TraceKit contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this\n// software and associated documentation files(the 'Software'), to deal in the Software\n// without restriction, including without limitation the rights to use, copy, modify,\n// merge, publish, distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to the following\n// conditions:\n//\n// The above copyright notice and this permission notice shall be included in all copies\n// or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\n// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\n// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport type { StackFrame, StackLineParser, StackLineParserFn } from '@sentry/core';\nimport { createStackParser, UNKNOWN_FUNCTION } from '@sentry/core';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n  const frame: StackFrame = {\n    filename,\n    function: func === '<anonymous>' ? UNKNOWN_FUNCTION : func,\n    in_app: true, // All browser frames are considered in_app\n  };\n\n  if (lineno !== undefined) {\n    frame.lineno = lineno;\n  }\n\n  if (colno !== undefined) {\n    frame.colno = colno;\n  }\n\n  return frame;\n}\n\n// This regex matches frames that have no function name (ie. are at the top level of a module).\n// For example \"at http://localhost:5000//script.js:1:126\"\n// Frames _with_ function names usually look as follows: \"at commitLayoutEffects (react-dom.development.js:23426:1)\"\nconst chromeRegexNoFnName = /^\\s*at (\\S+?)(?::(\\d+))(?::(\\d+))\\s*$/i;\n\n// This regex matches all the frames that have a function name.\nconst chromeRegex =\n  /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\n// Matches stack frames with data URIs instead of filename so we can still get the function name\n// Example: \"at dynamicFn (data:application/javascript,export function dynamicFn() {...\"\nconst chromeDataUriRegex = /at (.+?) ?\\(data:(.+?),/;\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\n// We cannot call this variable `chrome` because it can conflict with global `chrome` variable in certain environments\n// See: https://github.com/getsentry/sentry-javascript/issues/6880\nconst chromeStackParserFn: StackLineParserFn = line => {\n  const dataUriMatch = line.match(chromeDataUriRegex);\n  if (dataUriMatch) {\n    return {\n      filename: `<data:${dataUriMatch[2]}>`,\n      function: dataUriMatch[1],\n    };\n  }\n\n  // If the stack line has no function name, we need to parse it differently\n  const noFnParts = chromeRegexNoFnName.exec(line) as null | [string, string, string, string];\n\n  if (noFnParts) {\n    const [, filename, line, col] = noFnParts;\n    return createFrame(filename, UNKNOWN_FUNCTION, +line, +col);\n  }\n\n  const parts = chromeRegex.exec(line) as null | [string, string, string, string, string];\n\n  if (parts) {\n    const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n    if (isEval) {\n      const subMatch = chromeEvalRegex.exec(parts[2]) as null | [string, string, string, string];\n\n      if (subMatch) {\n        // throw out eval line/column and use top-most line/column number\n        parts[2] = subMatch[1]; // url\n        parts[3] = subMatch[2]; // line\n        parts[4] = subMatch[3]; // column\n      }\n    }\n\n    // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n    // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n    const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n    return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n  }\n\n  return;\n};\n\nexport const chromeStackLineParser: StackLineParser = [CHROME_PRIORITY, chromeStackParserFn];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n  /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n  const parts = geckoREgex.exec(line) as null | [string, string, string, string, string, string];\n\n  if (parts) {\n    const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n    if (isEval) {\n      const subMatch = geckoEvalRegex.exec(parts[3]) as null | [string, string, string];\n\n      if (subMatch) {\n        // throw out eval line/column and use top-most line number\n        parts[1] = parts[1] || 'eval';\n        parts[3] = subMatch[1];\n        parts[4] = subMatch[2];\n        parts[5] = ''; // no column when eval\n      }\n    }\n\n    let filename = parts[3];\n    let func = parts[1] || UNKNOWN_FUNCTION;\n    [func, filename] = extractSafariExtensionDetails(func, filename);\n\n    return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n  }\n\n  return;\n};\n\nexport const geckoStackLineParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n  const parts = winjsRegex.exec(line) as null | [string, string, string, string, string];\n\n  return parts\n    ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n    : undefined;\n};\n\nexport const winjsStackLineParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n  const parts = opera10Regex.exec(line) as null | [string, string, string, string];\n  return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackLineParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n  / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n  const parts = opera11Regex.exec(line) as null | [string, string, string, string, string, string];\n  return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackLineParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\nexport const defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser];\n\nexport const defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n *   at function@url:row:col\n *   at function@url:row:col\n *   at function@url:row:col\n *\n * it produces something like:\n *\n *   function@url:row:col\n *   function@url:row:col\n *   function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n  const isSafariExtension = func.indexOf('safari-extension') !== -1;\n  const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n  return isSafariExtension || isSafariWebExtension\n    ? [\n        func.indexOf('@') !== -1 ? (func.split('@')[0] as string) : UNKNOWN_FUNCTION,\n        isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n      ]\n    : [func, filename];\n};\n","import { rejectedSyncPromise, resolvedSyncPromise, SyncPromise } from './syncpromise';\n\nexport interface PromiseBuffer<T> {\n  // exposes the internal array so tests can assert on the state of it.\n  // XXX: this really should not be public api.\n  $: Array<PromiseLike<T>>;\n  add(taskProducer: () => PromiseLike<T>): PromiseLike<T>;\n  drain(timeout?: number): PromiseLike<boolean>;\n}\n\nexport const SENTRY_BUFFER_FULL_ERROR = Symbol.for('SentryBufferFullError');\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer<T>(limit?: number): PromiseBuffer<T> {\n  const buffer: Array<PromiseLike<T>> = [];\n\n  function isReady(): boolean {\n    return limit === undefined || buffer.length < limit;\n  }\n\n  /**\n   * Remove a promise from the queue.\n   *\n   * @param task Can be any PromiseLike<T>\n   * @returns Removed promise.\n   */\n  function remove(task: PromiseLike<T>): PromiseLike<T | void> {\n    return buffer.splice(buffer.indexOf(task), 1)[0] || Promise.resolve(undefined);\n  }\n\n  /**\n   * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n   *\n   * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:\n   *        PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor\n   *        functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n   *        requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n   *        limit check.\n   * @returns The original promise.\n   */\n  function add(taskProducer: () => PromiseLike<T>): PromiseLike<T> {\n    if (!isReady()) {\n      return rejectedSyncPromise(SENTRY_BUFFER_FULL_ERROR);\n    }\n\n    // start the task and add its promise to the queue\n    const task = taskProducer();\n    if (buffer.indexOf(task) === -1) {\n      buffer.push(task);\n    }\n    void task\n      .then(() => remove(task))\n      // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n      // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n      // have promises, so TS has to polyfill when down-compiling.)\n      .then(null, () =>\n        remove(task).then(null, () => {\n          // We have to add another catch here because `remove()` starts a new promise chain.\n        }),\n      );\n    return task;\n  }\n\n  /**\n   * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n   *\n   * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n   * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n   * `true`.\n   * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n   * `false` otherwise\n   */\n  function drain(timeout?: number): PromiseLike<boolean> {\n    return new SyncPromise<boolean>((resolve, reject) => {\n      let counter = buffer.length;\n\n      if (!counter) {\n        return resolve(true);\n      }\n\n      // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n      const capturedSetTimeout = setTimeout(() => {\n        if (timeout && timeout > 0) {\n          resolve(false);\n        }\n      }, timeout);\n\n      // if all promises resolve in time, cancel the timer and resolve to `true`\n      buffer.forEach(item => {\n        void resolvedSyncPromise(item).then(() => {\n          if (!--counter) {\n            clearTimeout(capturedSetTimeout);\n            resolve(true);\n          }\n        }, reject);\n      });\n    });\n  }\n\n  return {\n    $: buffer,\n    add,\n    drain,\n  };\n}\n","import type { DataCategory } from '../types-hoist/datacategory';\nimport type { TransportMakeRequestResponse } from '../types-hoist/transport';\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\nexport type RateLimits = Record<string, number>;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = Date.now()): number {\n  const headerDelay = parseInt(`${header}`, 10);\n  if (!isNaN(headerDelay)) {\n    return headerDelay * 1000;\n  }\n\n  const headerDate = Date.parse(`${header}`);\n  if (!isNaN(headerDate)) {\n    return headerDate - now;\n  }\n\n  return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nexport function disabledUntil(limits: RateLimits, dataCategory: DataCategory): number {\n  return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, dataCategory: DataCategory, now: number = Date.now()): boolean {\n  return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nexport function updateRateLimits(\n  limits: RateLimits,\n  { statusCode, headers }: TransportMakeRequestResponse,\n  now: number = Date.now(),\n): RateLimits {\n  const updatedRateLimits: RateLimits = {\n    ...limits,\n  };\n\n  // \"The name is case-insensitive.\"\n  // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n  const rateLimitHeader = headers?.['x-sentry-rate-limits'];\n  const retryAfterHeader = headers?.['retry-after'];\n\n  if (rateLimitHeader) {\n    /**\n     * rate limit headers are of the form\n     *     <header>,<header>,..\n     * where each <header> is of the form\n     *     <retry_after>: <categories>: <scope>: <reason_code>: <namespaces>\n     * where\n     *     <retry_after> is a delay in seconds\n     *     <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n     *         <category>;<category>;...\n     *     <scope> is what's being limited (org, project, or key) - ignored by SDK\n     *     <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n     *     <namespaces> Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n     *         Only present if rate limit applies to the metric_bucket data category.\n     */\n    for (const limit of rateLimitHeader.trim().split(',')) {\n      const [retryAfter, categories, , , namespaces] = limit.split(':', 5) as [string, ...string[]];\n      const headerDelay = parseInt(retryAfter, 10);\n      const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n      if (!categories) {\n        updatedRateLimits.all = now + delay;\n      } else {\n        for (const category of categories.split(';')) {\n          if (category === 'metric_bucket') {\n            // namespaces will be present when category === 'metric_bucket'\n            if (!namespaces || namespaces.split(';').includes('custom')) {\n              updatedRateLimits[category] = now + delay;\n            }\n          } else {\n            updatedRateLimits[category] = now + delay;\n          }\n        }\n      }\n    }\n  } else if (retryAfterHeader) {\n    updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n  } else if (statusCode === 429) {\n    updatedRateLimits.all = now + 60 * 1000;\n  }\n\n  return updatedRateLimits;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { EventDropReason } from '../types-hoist/clientreport';\nimport type { Envelope, EnvelopeItem } from '../types-hoist/envelope';\nimport type {\n  InternalBaseTransportOptions,\n  Transport,\n  TransportMakeRequestResponse,\n  TransportRequestExecutor,\n} from '../types-hoist/transport';\nimport { debug } from '../utils/debug-logger';\nimport {\n  createEnvelope,\n  envelopeItemTypeToDataCategory,\n  forEachEnvelopeItem,\n  serializeEnvelope,\n} from '../utils/envelope';\nimport { type PromiseBuffer, makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from '../utils/promisebuffer';\nimport { type RateLimits, isRateLimited, updateRateLimits } from '../utils/ratelimit';\nimport { resolvedSyncPromise } from '../utils/syncpromise';\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n  options: InternalBaseTransportOptions,\n  makeRequest: TransportRequestExecutor,\n  buffer: PromiseBuffer<TransportMakeRequestResponse> = makePromiseBuffer(\n    options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n  ),\n): Transport {\n  let rateLimits: RateLimits = {};\n  const flush = (timeout?: number): PromiseLike<boolean> => buffer.drain(timeout);\n\n  function send(envelope: Envelope): PromiseLike<TransportMakeRequestResponse> {\n    const filteredEnvelopeItems: EnvelopeItem[] = [];\n\n    // Drop rate limited items from envelope\n    forEachEnvelopeItem(envelope, (item, type) => {\n      const dataCategory = envelopeItemTypeToDataCategory(type);\n      if (isRateLimited(rateLimits, dataCategory)) {\n        options.recordDroppedEvent('ratelimit_backoff', dataCategory);\n      } else {\n        filteredEnvelopeItems.push(item);\n      }\n    });\n\n    // Skip sending if envelope is empty after filtering out rate limited events\n    if (filteredEnvelopeItems.length === 0) {\n      return resolvedSyncPromise({});\n    }\n\n    const filteredEnvelope: Envelope = createEnvelope(envelope[0], filteredEnvelopeItems as (typeof envelope)[1]);\n\n    // Creates client report for each item in an envelope\n    const recordEnvelopeLoss = (reason: EventDropReason): void => {\n      forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n        options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n      });\n    };\n\n    const requestTask = (): PromiseLike<TransportMakeRequestResponse> =>\n      makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n        response => {\n          // We don't want to throw on NOK responses, but we want to at least log them\n          if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n            DEBUG_BUILD && debug.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n          }\n\n          rateLimits = updateRateLimits(rateLimits, response);\n          return response;\n        },\n        error => {\n          recordEnvelopeLoss('network_error');\n          DEBUG_BUILD && debug.error('Encountered error running transport request:', error);\n          throw error;\n        },\n      );\n\n    return buffer.add(requestTask).then(\n      result => result,\n      error => {\n        if (error === SENTRY_BUFFER_FULL_ERROR) {\n          DEBUG_BUILD && debug.error('Skipped sending event because buffer is full.');\n          recordEnvelopeLoss('queue_overflow');\n          return resolvedSyncPromise({});\n        } else {\n          throw error;\n        }\n      },\n    );\n  }\n\n  return {\n    send,\n    flush,\n  };\n}\n","import { debug, isNativeFunction } from '@sentry/core';\nimport { DEBUG_BUILD } from './debug-build';\nimport { WINDOW } from './types';\n\n/**\n * We generally want to use window.fetch / window.setTimeout.\n * However, in some cases this may be wrapped (e.g. by Zone.js for Angular),\n * so we try to get an unpatched version of this from a sandboxed iframe.\n */\n\ninterface CacheableImplementations {\n  setTimeout: typeof WINDOW.setTimeout;\n  fetch: typeof WINDOW.fetch;\n}\n\nconst cachedImplementations: Partial<CacheableImplementations> = {};\n\n/**\n * Get the native implementation of a browser function.\n *\n * This can be used to ensure we get an unwrapped version of a function, in cases where a wrapped function can lead to problems.\n *\n * The following methods can be retrieved:\n * - `setTimeout`: This can be wrapped by e.g. Angular, causing change detection to be triggered.\n * - `fetch`: This can be wrapped by e.g. ad-blockers, causing an infinite loop when a request is blocked.\n */\nexport function getNativeImplementation<T extends keyof CacheableImplementations>(\n  name: T,\n): CacheableImplementations[T] {\n  const cached = cachedImplementations[name];\n  if (cached) {\n    return cached;\n  }\n\n  let impl = WINDOW[name] as CacheableImplementations[T];\n\n  // Fast path to avoid DOM I/O\n  if (isNativeFunction(impl)) {\n    return (cachedImplementations[name] = impl.bind(WINDOW) as CacheableImplementations[T]);\n  }\n\n  const document = WINDOW.document;\n  // eslint-disable-next-line deprecation/deprecation\n  if (document && typeof document.createElement === 'function') {\n    try {\n      const sandbox = document.createElement('iframe');\n      sandbox.hidden = true;\n      document.head.appendChild(sandbox);\n      const contentWindow = sandbox.contentWindow;\n      if (contentWindow?.[name]) {\n        impl = contentWindow[name] as CacheableImplementations[T];\n      }\n      document.head.removeChild(sandbox);\n    } catch (e) {\n      // Could not create sandbox iframe, just use window.xxx\n      DEBUG_BUILD && debug.warn(`Could not create sandbox iframe for ${name} check, bailing to window.${name}: `, e);\n    }\n  }\n\n  // Sanity check: This _should_ not happen, but if it does, we just skip caching...\n  // This can happen e.g. in tests where fetch may not be available in the env, or similar.\n  if (!impl) {\n    return impl;\n  }\n\n  return (cachedImplementations[name] = impl.bind(WINDOW) as CacheableImplementations[T]);\n}\n\n/** Clear a cached implementation. */\nexport function clearCachedImplementation(name: keyof CacheableImplementations): void {\n  cachedImplementations[name] = undefined;\n}\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n *   const p = f.apply(this, arguments);\n *\n *   p.then(function() {\n *     console.log('hi.');\n *   });\n *\n *   return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome:  Failed to fetch\n * Edge:    Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari:  resource blocked by content blocker\n */\nexport function fetch(...rest: Parameters<typeof WINDOW.fetch>): ReturnType<typeof WINDOW.fetch> {\n  return getNativeImplementation('fetch')(...rest);\n}\n\n/**\n * Get an unwrapped `setTimeout` method.\n * This ensures that even if e.g. Angular wraps `setTimeout`, we get the native implementation,\n * avoiding triggering change detection.\n */\nexport function setTimeout(...rest: Parameters<typeof WINDOW.setTimeout>): ReturnType<typeof WINDOW.setTimeout> {\n  return getNativeImplementation('setTimeout')(...rest);\n}\n","import type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/core';\nimport { createTransport, rejectedSyncPromise } from '@sentry/core';\nimport { clearCachedImplementation, getNativeImplementation } from '@sentry-internal/browser-utils';\nimport type { WINDOW } from '../helpers';\nimport type { BrowserTransportOptions } from './types';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeFetchTransport(\n  options: BrowserTransportOptions,\n  nativeFetch: typeof WINDOW.fetch | undefined = getNativeImplementation('fetch'),\n): Transport {\n  let pendingBodySize = 0;\n  let pendingCount = 0;\n\n  function makeRequest(request: TransportRequest): PromiseLike<TransportMakeRequestResponse> {\n    const requestSize = request.body.length;\n    pendingBodySize += requestSize;\n    pendingCount++;\n\n    const requestOptions: RequestInit = {\n      body: request.body,\n      method: 'POST',\n      referrerPolicy: 'strict-origin',\n      headers: options.headers,\n      // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n      // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n      // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n      // frequently sending events right before the user is switching pages (eg. when finishing navigation transactions).\n      // Gotchas:\n      // - `keepalive` isn't supported by Firefox\n      // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n      //   If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n      //   We will therefore only activate the flag when we're below that limit.\n      // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n      // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n      keepalive: pendingBodySize <= 60_000 && pendingCount < 15,\n      ...options.fetchOptions,\n    };\n\n    if (!nativeFetch) {\n      clearCachedImplementation('fetch');\n      return rejectedSyncPromise('No fetch implementation available');\n    }\n\n    try {\n      // Note: We do not need to suppress tracing here, becasue we are using the native fetch, instead of our wrapped one.\n      return nativeFetch(options.url, requestOptions).then(response => {\n        pendingBodySize -= requestSize;\n        pendingCount--;\n        return {\n          statusCode: response.status,\n          headers: {\n            'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n            'retry-after': response.headers.get('Retry-After'),\n          },\n        };\n      });\n    } catch (e) {\n      clearCachedImplementation('fetch');\n      pendingBodySize -= requestSize;\n      pendingCount--;\n      return rejectedSyncPromise(e);\n    }\n  }\n\n  return createTransport(options, makeRequest);\n}\n","import type { BrowserOptions } from '@sentry/browser';\nimport { init as browserInit, setContext } from '@sentry/browser';\nimport type { Client } from '@sentry/core';\nimport { applySdkMetadata } from '@sentry/core';\nimport { version } from 'react';\n\n/**\n * Inits the React SDK\n */\nexport function init(options: BrowserOptions): Client | undefined {\n  const opts = {\n    ...options,\n  };\n\n  applySdkMetadata(opts, 'react');\n  setContext('react', { version });\n  return browserInit(opts);\n}\n","import type { Client, Integration, Options } from '@sentry/core';\nimport {\n  dedupeIntegration,\n  functionToStringIntegration,\n  getIntegrationsToSetup,\n  inboundFiltersIntegration,\n  initAndBind,\n  stackParserFromStackParserOptions,\n} from '@sentry/core';\nimport type { BrowserClientOptions, BrowserOptions } from './client';\nimport { BrowserClient } from './client';\nimport { breadcrumbsIntegration } from './integrations/breadcrumbs';\nimport { browserApiErrorsIntegration } from './integrations/browserapierrors';\nimport { browserSessionIntegration } from './integrations/browsersession';\nimport { globalHandlersIntegration } from './integrations/globalhandlers';\nimport { httpContextIntegration } from './integrations/httpcontext';\nimport { linkedErrorsIntegration } from './integrations/linkederrors';\nimport { defaultStackParser } from './stack-parsers';\nimport { makeFetchTransport } from './transports/fetch';\nimport { checkAndWarnIfIsEmbeddedBrowserExtension } from './utils/detectBrowserExtension';\n\n/** Get the default integrations for the browser SDK. */\nexport function getDefaultIntegrations(_options: Options): Integration[] {\n  /**\n   * Note: Please make sure this stays in sync with Angular SDK, which re-exports\n   * `getDefaultIntegrations` but with an adjusted set of integrations.\n   */\n  return [\n    // TODO(v11): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`\n    // eslint-disable-next-line deprecation/deprecation\n    inboundFiltersIntegration(),\n    functionToStringIntegration(),\n    browserApiErrorsIntegration(),\n    breadcrumbsIntegration(),\n    globalHandlersIntegration(),\n    linkedErrorsIntegration(),\n    dedupeIntegration(),\n    httpContextIntegration(),\n    browserSessionIntegration(),\n  ];\n}\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n *   dsn: '__DSN__',\n *   // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n *   message: 'My Breadcrumb',\n *   // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n *   message: 'Manual',\n *   stacktrace: [\n *     // ...\n *   ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): Client | undefined {\n  const shouldDisableBecauseIsBrowserExtenstion =\n    !options.skipBrowserExtensionCheck && checkAndWarnIfIsEmbeddedBrowserExtension();\n\n  const clientOptions: BrowserClientOptions = {\n    ...options,\n    enabled: shouldDisableBecauseIsBrowserExtenstion ? false : options.enabled,\n    stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n    integrations: getIntegrationsToSetup({\n      integrations: options.integrations,\n      defaultIntegrations:\n        options.defaultIntegrations == null ? getDefaultIntegrations(options) : options.defaultIntegrations,\n    }),\n    transport: options.transport || makeFetchTransport,\n  };\n  return initAndBind(BrowserClient, clientOptions);\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n  // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n  callback();\n}\n","import { consoleSandbox, getLocationHref } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\ntype ExtensionRuntime = {\n  runtime?: {\n    id?: string;\n  };\n};\ntype ExtensionProperties = {\n  chrome?: ExtensionRuntime;\n  browser?: ExtensionRuntime;\n  nw?: unknown;\n};\n\n/**\n * Returns true if the SDK is running in an embedded browser extension.\n * Stand-alone browser extensions (which do not share the same data as the main browser page) are fine.\n */\nexport function checkAndWarnIfIsEmbeddedBrowserExtension(): boolean {\n  if (_isEmbeddedBrowserExtension()) {\n    if (DEBUG_BUILD) {\n      consoleSandbox(() => {\n        // eslint-disable-next-line no-console\n        console.error(\n          '[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/',\n        );\n      });\n    }\n\n    return true;\n  }\n\n  return false;\n}\n\nfunction _isEmbeddedBrowserExtension(): boolean {\n  if (typeof WINDOW.window === 'undefined') {\n    // No need to show the error if we're not in a browser window environment (e.g. service workers)\n    return false;\n  }\n\n  const _window = WINDOW as typeof WINDOW & ExtensionProperties;\n\n  // Running the SDK in NW.js, which appears like a browser extension but isn't, is also fine\n  // see: https://github.com/getsentry/sentry-javascript/issues/12668\n  if (_window.nw) {\n    return false;\n  }\n\n  const extensionObject = _window['chrome'] || _window['browser'];\n\n  if (!extensionObject?.runtime?.id) {\n    return false;\n  }\n\n  const href = getLocationHref();\n  const extensionProtocols = ['chrome-extension', 'moz-extension', 'ms-browser-extension', 'safari-web-extension'];\n\n  // Running the SDK in a dedicated extension page and calling Sentry.init is fine; no risk of data leakage\n  const isDedicatedExtensionPage =\n    WINDOW === WINDOW.top && extensionProtocols.some(protocol => href.startsWith(`${protocol}://`));\n\n  return !isDedicatedExtensionPage;\n}\n","import { defineIntegration } from '@sentry/core';\nimport { getHttpRequestData, WINDOW } from '../helpers';\n\n/**\n * Collects information about HTTP request headers and\n * attaches them to the event.\n */\nexport const httpContextIntegration = defineIntegration(() => {\n  return {\n    name: 'HttpContext',\n    preprocessEvent(event) {\n      // if none of the information we want exists, don't bother\n      if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n        return;\n      }\n\n      const reqData = getHttpRequestData();\n      const headers = {\n        ...reqData.headers,\n        ...event.request?.headers,\n      };\n\n      event.request = {\n        ...reqData,\n        ...event.request,\n        headers,\n      };\n    },\n  };\n});\n","import { captureSession, debug, defineIntegration, startSession } from '@sentry/core';\nimport { addHistoryInstrumentationHandler } from '@sentry-internal/browser-utils';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\n/**\n * When added, automatically creates sessions which allow you to track adoption and crashes (crash free rate) in your Releases in Sentry.\n * More information: https://docs.sentry.io/product/releases/health/\n *\n * Note: In order for session tracking to work, you need to set up Releases: https://docs.sentry.io/product/releases/\n */\nexport const browserSessionIntegration = defineIntegration(() => {\n  return {\n    name: 'BrowserSession',\n    setupOnce() {\n      if (typeof WINDOW.document === 'undefined') {\n        DEBUG_BUILD &&\n          debug.warn('Using the `browserSessionIntegration` in non-browser environments is not supported.');\n        return;\n      }\n\n      // The session duration for browser sessions does not track a meaningful\n      // concept that can be used as a metric.\n      // Automatically captured sessions are akin to page views, and thus we\n      // discard their duration.\n      startSession({ ignoreDuration: true });\n      captureSession();\n\n      // We want to create a session for every navigation as well\n      addHistoryInstrumentationHandler(({ from, to }) => {\n        // Don't create an additional session for the initial route or if the location did not change\n        if (from !== undefined && from !== to) {\n          startSession({ ignoreDuration: true });\n          captureSession();\n        }\n      });\n    },\n  };\n});\n","import type { Client } from './client';\nimport { getCurrentScope } from './currentScopes';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { ClientOptions } from './types-hoist/options';\nimport { consoleSandbox, debug } from './utils/debug-logger';\n\n/** A class object that can instantiate Client objects. */\nexport type ClientClass<F extends Client, O extends ClientOptions> = new (options: O) => F;\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind<F extends Client, O extends ClientOptions>(\n  clientClass: ClientClass<F, O>,\n  options: O,\n): Client {\n  if (options.debug === true) {\n    if (DEBUG_BUILD) {\n      debug.enable();\n    } else {\n      // use `console.warn` rather than `debug.warn` since by non-debug bundles have all `debug.x` statements stripped\n      consoleSandbox(() => {\n        // eslint-disable-next-line no-console\n        console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n      });\n    }\n  }\n  const scope = getCurrentScope();\n  scope.update(options.initialScope);\n\n  const client = new clientClass(options);\n  setCurrentClient(client);\n  client.init();\n  return client;\n}\n\n/**\n * Make the given client the current client.\n */\nexport function setCurrentClient(client: Client): void {\n  getCurrentScope().setClient(client);\n}\n","import { getEnvelopeEndpointWithUrlEncodedAuth } from '../api';\nimport type { Envelope, EnvelopeItemType, EventItem } from '../types-hoist/envelope';\nimport type { Event } from '../types-hoist/event';\nimport type { BaseTransportOptions, Transport, TransportMakeRequestResponse } from '../types-hoist/transport';\nimport { dsnFromString } from '../utils/dsn';\nimport { createEnvelope, forEachEnvelopeItem } from '../utils/envelope';\n\ninterface MatchParam {\n  /** The envelope to be sent */\n  envelope: Envelope;\n  /**\n   * A function that returns an event from the envelope if one exists. You can optionally pass an array of envelope item\n   * types to filter by - only envelopes matching the given types will be multiplexed.\n   * Allowed values are: 'event', 'transaction', 'profile', 'replay_event'\n   *\n   * @param types Defaults to ['event']\n   */\n  getEvent(types?: EnvelopeItemType[]): Event | undefined;\n}\n\ntype RouteTo = { dsn: string; release: string };\ntype Matcher = (param: MatchParam) => (string | RouteTo)[];\n\n/**\n * Gets an event from an envelope.\n *\n * This is only exported for use in the tests\n */\nexport function eventFromEnvelope(env: Envelope, types: EnvelopeItemType[]): Event | undefined {\n  let event: Event | undefined;\n\n  forEachEnvelopeItem(env, (item, type) => {\n    if (types.includes(type)) {\n      event = Array.isArray(item) ? (item as EventItem)[1] : undefined;\n    }\n    // bail out if we found an event\n    return !!event;\n  });\n\n  return event;\n}\n\n/**\n * Creates a transport that overrides the release on all events.\n */\nfunction makeOverrideReleaseTransport<TO extends BaseTransportOptions>(\n  createTransport: (options: TO) => Transport,\n  release: string,\n): (options: TO) => Transport {\n  return options => {\n    const transport = createTransport(options);\n\n    return {\n      ...transport,\n      send: async (envelope: Envelope): Promise<TransportMakeRequestResponse> => {\n        const event = eventFromEnvelope(envelope, ['event', 'transaction', 'profile', 'replay_event']);\n\n        if (event) {\n          event.release = release;\n        }\n        return transport.send(envelope);\n      },\n    };\n  };\n}\n\n/** Overrides the DSN in the envelope header  */\nfunction overrideDsn(envelope: Envelope, dsn: string): Envelope {\n  return createEnvelope(\n    dsn\n      ? {\n          ...envelope[0],\n          dsn,\n        }\n      : envelope[0],\n    envelope[1],\n  );\n}\n\n/**\n * Creates a transport that can send events to different DSNs depending on the envelope contents.\n */\nexport function makeMultiplexedTransport<TO extends BaseTransportOptions>(\n  createTransport: (options: TO) => Transport,\n  matcher: Matcher,\n): (options: TO) => Transport {\n  return options => {\n    const fallbackTransport = createTransport(options);\n    const otherTransports: Map<string, Transport> = new Map();\n\n    function getTransport(dsn: string, release: string | undefined): [string, Transport] | undefined {\n      // We create a transport for every unique dsn/release combination as there may be code from multiple releases in\n      // use at the same time\n      const key = release ? `${dsn}:${release}` : dsn;\n\n      let transport = otherTransports.get(key);\n\n      if (!transport) {\n        const validatedDsn = dsnFromString(dsn);\n        if (!validatedDsn) {\n          return undefined;\n        }\n        const url = getEnvelopeEndpointWithUrlEncodedAuth(validatedDsn, options.tunnel);\n\n        transport = release\n          ? makeOverrideReleaseTransport(createTransport, release)({ ...options, url })\n          : createTransport({ ...options, url });\n\n        otherTransports.set(key, transport);\n      }\n\n      return [dsn, transport];\n    }\n\n    async function send(envelope: Envelope): Promise<TransportMakeRequestResponse> {\n      function getEvent(types?: EnvelopeItemType[]): Event | undefined {\n        const eventTypes: EnvelopeItemType[] = types?.length ? types : ['event'];\n        return eventFromEnvelope(envelope, eventTypes);\n      }\n\n      const transports = matcher({ envelope, getEvent })\n        .map(result => {\n          if (typeof result === 'string') {\n            return getTransport(result, undefined);\n          } else {\n            return getTransport(result.dsn, result.release);\n          }\n        })\n        .filter((t): t is [string, Transport] => !!t);\n\n      // If we have no transports to send to, use the fallback transport\n      // Don't override the DSN in the header for the fallback transport. '' is falsy\n      const transportsWithFallback: [string, Transport][] = transports.length ? transports : [['', fallbackTransport]];\n\n      const results = (await Promise.all(\n        transportsWithFallback.map(([dsn, transport]) => transport.send(overrideDsn(envelope, dsn))),\n      )) as [TransportMakeRequestResponse, ...TransportMakeRequestResponse[]];\n\n      return results[0];\n    }\n\n    async function flush(timeout: number | undefined): Promise<boolean> {\n      const allTransports = [...otherTransports.values(), fallbackTransport];\n      const results = await Promise.all(allTransports.map(transport => transport.flush(timeout)));\n      return results.every(r => r);\n    }\n\n    return {\n      send,\n      flush,\n    };\n  };\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { Envelope } from '../types-hoist/envelope';\nimport type { InternalBaseTransportOptions, Transport, TransportMakeRequestResponse } from '../types-hoist/transport';\nimport { debug } from '../utils/debug-logger';\nimport { envelopeContainsItemType } from '../utils/envelope';\nimport { parseRetryAfterHeader } from '../utils/ratelimit';\n\nexport const MIN_DELAY = 100; // 100 ms\nexport const START_DELAY = 5_000; // 5 seconds\nconst MAX_DELAY = 3.6e6; // 1 hour\n\nexport interface OfflineStore {\n  push(env: Envelope): Promise<void>;\n  unshift(env: Envelope): Promise<void>;\n  shift(): Promise<Envelope | undefined>;\n}\n\nexport type CreateOfflineStore = (options: OfflineTransportOptions) => OfflineStore;\n\nexport interface OfflineTransportOptions extends InternalBaseTransportOptions {\n  /**\n   * A function that creates the offline store instance.\n   */\n  createStore?: CreateOfflineStore;\n\n  /**\n   * Flush the offline store shortly after startup.\n   *\n   * Defaults: false\n   */\n  flushAtStartup?: boolean;\n\n  /**\n   * Called before an event is stored.\n   *\n   * Return false to drop the envelope rather than store it.\n   *\n   * @param envelope The envelope that failed to send.\n   * @param error The error that occurred.\n   * @param retryDelay The current retry delay in milliseconds.\n   * @returns Whether the envelope should be stored.\n   */\n  shouldStore?: (envelope: Envelope, error: Error, retryDelay: number) => boolean | Promise<boolean>;\n\n  /**\n   * Should an attempt be made to send the envelope to Sentry.\n   *\n   * If this function is supplied and returns false, `shouldStore` will be called to determine if the envelope should be stored.\n   *\n   * @param envelope The envelope that will be sent.\n   * @returns Whether we should attempt to send the envelope\n   */\n  shouldSend?: (envelope: Envelope) => boolean | Promise<boolean>;\n}\n\ntype Timer = number | { unref?: () => void };\n\n/**\n * Wraps a transport and stores and retries events when they fail to send.\n *\n * @param createTransport The transport to wrap.\n */\nexport function makeOfflineTransport<TO>(\n  createTransport: (options: TO) => Transport,\n): (options: TO & OfflineTransportOptions) => Transport {\n  function log(...args: unknown[]): void {\n    DEBUG_BUILD && debug.log('[Offline]:', ...args);\n  }\n\n  return options => {\n    const transport = createTransport(options);\n\n    if (!options.createStore) {\n      throw new Error('No `createStore` function was provided');\n    }\n\n    const store = options.createStore(options);\n\n    let retryDelay = START_DELAY;\n    let flushTimer: Timer | undefined;\n\n    function shouldQueue(env: Envelope, error: Error, retryDelay: number): boolean | Promise<boolean> {\n      // We want to drop client reports because they can be generated when we retry sending events while offline.\n      if (envelopeContainsItemType(env, ['client_report'])) {\n        return false;\n      }\n\n      if (options.shouldStore) {\n        return options.shouldStore(env, error, retryDelay);\n      }\n\n      return true;\n    }\n\n    function flushIn(delay: number): void {\n      if (flushTimer) {\n        clearTimeout(flushTimer as ReturnType<typeof setTimeout>);\n      }\n\n      flushTimer = setTimeout(async () => {\n        flushTimer = undefined;\n\n        const found = await store.shift();\n        if (found) {\n          log('Attempting to send previously queued event');\n\n          // We should to update the sent_at timestamp to the current time.\n          found[0].sent_at = new Date().toISOString();\n\n          void send(found, true).catch(e => {\n            log('Failed to retry sending', e);\n          });\n        }\n      }, delay) as Timer;\n\n      // We need to unref the timer in node.js, otherwise the node process never exit.\n      if (typeof flushTimer !== 'number' && flushTimer.unref) {\n        flushTimer.unref();\n      }\n    }\n\n    function flushWithBackOff(): void {\n      if (flushTimer) {\n        return;\n      }\n\n      flushIn(retryDelay);\n\n      retryDelay = Math.min(retryDelay * 2, MAX_DELAY);\n    }\n\n    async function send(envelope: Envelope, isRetry: boolean = false): Promise<TransportMakeRequestResponse> {\n      // We queue all replay envelopes to avoid multiple replay envelopes being sent at the same time. If one fails, we\n      // need to retry them in order.\n      if (!isRetry && envelopeContainsItemType(envelope, ['replay_event', 'replay_recording'])) {\n        await store.push(envelope);\n        flushIn(MIN_DELAY);\n        return {};\n      }\n\n      try {\n        if (options.shouldSend && (await options.shouldSend(envelope)) === false) {\n          throw new Error('Envelope not sent because `shouldSend` callback returned false');\n        }\n\n        const result = await transport.send(envelope);\n\n        let delay = MIN_DELAY;\n\n        if (result) {\n          // If there's a retry-after header, use that as the next delay.\n          if (result.headers?.['retry-after']) {\n            delay = parseRetryAfterHeader(result.headers['retry-after']);\n          } else if (result.headers?.['x-sentry-rate-limits']) {\n            delay = 60_000; // 60 seconds\n          } // If we have a server error, return now so we don't flush the queue.\n          else if ((result.statusCode || 0) >= 400) {\n            return result;\n          }\n        }\n\n        flushIn(delay);\n        retryDelay = START_DELAY;\n        return result;\n      } catch (e) {\n        if (await shouldQueue(envelope, e as Error, retryDelay)) {\n          // If this envelope was a retry, we want to add it to the front of the queue so it's retried again first.\n          if (isRetry) {\n            await store.unshift(envelope);\n          } else {\n            await store.push(envelope);\n          }\n          flushWithBackOff();\n          log('Error sending. Event queued.', e as Error);\n          return {};\n        } else {\n          throw e;\n        }\n      }\n    }\n\n    if (options.flushAtStartup) {\n      flushWithBackOff();\n    }\n\n    return {\n      send,\n      flush: timeout => {\n        // If there's no timeout, we should attempt to flush the offline queue.\n        if (timeout === undefined) {\n          retryDelay = START_DELAY;\n          flushIn(MIN_DELAY);\n        }\n\n        return transport.flush(timeout);\n      },\n    };\n  };\n}\n","import type { BaseTransportOptions, Envelope, OfflineStore, OfflineTransportOptions, Transport } from '@sentry/core';\nimport { makeOfflineTransport, parseEnvelope, serializeEnvelope } from '@sentry/core';\nimport { WINDOW } from '../helpers';\nimport { makeFetchTransport } from './fetch';\n\n// 'Store', 'promisifyRequest' and 'createStore' were originally copied from the 'idb-keyval' package before being\n// modified and simplified: https://github.com/jakearchibald/idb-keyval\n//\n// At commit: 0420a704fd6cbb4225429c536b1f61112d012fca\n// Original license:\n\n// Copyright 2016, Jake Archibald\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ntype Store = <T>(callback: (store: IDBObjectStore) => T | PromiseLike<T>) => Promise<T>;\n\nfunction promisifyRequest<T = undefined>(request: IDBRequest<T> | IDBTransaction): Promise<T> {\n  return new Promise<T>((resolve, reject) => {\n    // @ts-expect-error - file size hacks\n    request.oncomplete = request.onsuccess = () => resolve(request.result);\n    // @ts-expect-error - file size hacks\n    request.onabort = request.onerror = () => reject(request.error);\n  });\n}\n\n/** Create or open an IndexedDb store */\nexport function createStore(dbName: string, storeName: string): Store {\n  const request = indexedDB.open(dbName);\n  request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n  const dbp = promisifyRequest(request);\n\n  return callback => dbp.then(db => callback(db.transaction(storeName, 'readwrite').objectStore(storeName)));\n}\n\nfunction keys(store: IDBObjectStore): Promise<number[]> {\n  return promisifyRequest(store.getAllKeys() as IDBRequest<number[]>);\n}\n\n/** Insert into the end of the store */\nexport function push(store: Store, value: Uint8Array | string, maxQueueSize: number): Promise<void> {\n  return store(store => {\n    return keys(store).then(keys => {\n      if (keys.length >= maxQueueSize) {\n        return;\n      }\n\n      // We insert with an incremented key so that the entries are popped in order\n      store.put(value, Math.max(...keys, 0) + 1);\n      return promisifyRequest(store.transaction);\n    });\n  });\n}\n\n/** Insert into the front of the store */\nexport function unshift(store: Store, value: Uint8Array | string, maxQueueSize: number): Promise<void> {\n  return store(store => {\n    return keys(store).then(keys => {\n      if (keys.length >= maxQueueSize) {\n        return;\n      }\n\n      // We insert with an decremented key so that the entries are popped in order\n      store.put(value, Math.min(...keys, 0) - 1);\n      return promisifyRequest(store.transaction);\n    });\n  });\n}\n\n/** Pop the oldest value from the store */\nexport function shift(store: Store): Promise<Uint8Array | string | undefined> {\n  return store(store => {\n    return keys(store).then(keys => {\n      const firstKey = keys[0];\n      if (firstKey == null) {\n        return undefined;\n      }\n\n      return promisifyRequest(store.get(firstKey)).then(value => {\n        store.delete(firstKey);\n        return promisifyRequest(store.transaction).then(() => value);\n      });\n    });\n  });\n}\n\nexport interface BrowserOfflineTransportOptions extends Omit<OfflineTransportOptions, 'createStore'> {\n  /**\n   * Name of indexedDb database to store envelopes in\n   * Default: 'sentry-offline'\n   */\n  dbName?: string;\n  /**\n   * Name of indexedDb object store to store envelopes in\n   * Default: 'queue'\n   */\n  storeName?: string;\n  /**\n   * Maximum number of envelopes to store\n   * Default: 30\n   */\n  maxQueueSize?: number;\n}\n\nfunction createIndexedDbStore(options: BrowserOfflineTransportOptions): OfflineStore {\n  let store: Store | undefined;\n\n  // Lazily create the store only when it's needed\n  function getStore(): Store {\n    if (store == undefined) {\n      store = createStore(options.dbName || 'sentry-offline', options.storeName || 'queue');\n    }\n\n    return store;\n  }\n\n  return {\n    push: async (env: Envelope) => {\n      try {\n        const serialized = await serializeEnvelope(env);\n        await push(getStore(), serialized, options.maxQueueSize || 30);\n      } catch {\n        //\n      }\n    },\n    unshift: async (env: Envelope) => {\n      try {\n        const serialized = await serializeEnvelope(env);\n        await unshift(getStore(), serialized, options.maxQueueSize || 30);\n      } catch {\n        //\n      }\n    },\n    shift: async () => {\n      try {\n        const deserialized = await shift(getStore());\n        if (deserialized) {\n          return parseEnvelope(deserialized);\n        }\n      } catch {\n        //\n      }\n\n      return undefined;\n    },\n  };\n}\n\nfunction makeIndexedDbOfflineTransport<T>(\n  createTransport: (options: T) => Transport,\n): (options: T & BrowserOfflineTransportOptions) => Transport {\n  return options => {\n    const transport = createTransport({ ...options, createStore: createIndexedDbStore });\n\n    WINDOW.addEventListener('online', async _ => {\n      await transport.flush();\n    });\n\n    return transport;\n  };\n}\n\n/**\n * Creates a transport that uses IndexedDb to store events when offline.\n */\nexport function makeBrowserOfflineTransport<T extends BaseTransportOptions>(\n  createTransport: (options: T) => Transport = makeFetchTransport,\n): (options: T & BrowserOfflineTransportOptions) => Transport {\n  return makeIndexedDbOfflineTransport<T>(makeOfflineTransport(createTransport));\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ComponentLoaderGlobal, IAUPSDK } from '@ccx-public/component-types';\nimport type InitOptions from '@csc/common/@types/ComponentLoaderInitOptions';\nimport { basename } from 'path';\nimport type { Integration } from '@sentry/core';\nimport * as Sentry from '@sentry/react';\nimport type { FeatureFlagsIntegration } from '@sentry/react';\nimport { inferEnvironment } from '@ccx-public/component-shared/sentry';\n\n// Enable Sentry only in CI builds or when enableSentry=1 is specified at build time\nconst enableSentry = process.env.IS_CI || process.env.ENABLE_SENTRY ? true : false;\n\nconst AUP_SDK_DSN =\n    'https://0ce6081fbaabb00f554bd1173c6d6ae2@o1383653.ingest.us.sentry.io/4509476881498112';\nconst UAB_DSN =\n    'https://bc3c982eaf9a4a37bf00dda22c2db2b1@o1383653.ingest.sentry.io/4505427539460097';\n\nconst inAppStackPattern =\n    process.env.NODE_ENV === 'development'\n        ? /webpack-internal:\\/\\/\\/\\.\\.\\/cdo|uap|projects|collection-view|classrooms|asset-browser|uab\\//\n        : /(?!.*sentry.*).*asset-browser|uab.*/;\n\nconst sharedComponentsPattern = /^(?!.*(shared-components|ims|typekit)).*$/i;\n\nfunction isCollaborationSdk(config: IAUPSDK | InitOptions): config is IAUPSDK {\n    return typeof (config as IAUPSDK).getConfig === 'function';\n}\n\n// Guard against multiple initializations\nlet sentryInitialized = false;\n\nexport function initSentry(sdkOrConfig?: IAUPSDK | InitOptions) {\n    if (sentryInitialized) {\n        return;\n    }\n\n    sentryInitialized = true;\n\n    const integrations: Integration[] = [\n        // @sentry/integrations v7 returns IntegrationFnResult (from @sentry/types),\n        // while init() expects Integration (from @sentry/core). Cast locally.\n        Sentry.rewriteFramesIntegration({\n            iteratee: (frame) => {\n                const filename = frame.filename?.toLowerCase() || '';\n                const inlineScript = !filename.match(/.js[x?]?$/);\n                frame.in_app = !inlineScript && inAppStackPattern.test(filename);\n                frame.filename = `/${basename(frame.filename || '')}`;\n                return frame;\n            },\n        }),\n        Sentry.featureFlagsIntegration(),\n    ];\n\n    let isProfilingEnabled = false;\n    try {\n        isProfilingEnabled = !!localStorage.getItem('__aupsdk_profiling__');\n\n        if (globalThis.cc_asset_browser || isProfilingEnabled) {\n            integrations.push(Sentry.browserTracingIntegration());\n        }\n\n        if (isProfilingEnabled) {\n            integrations.push(Sentry.browserProfilingIntegration());\n        }\n    } catch {\n        // Ignore localStorage errors\n    }\n\n    if (process.env.NODE_ENV === 'development') {\n        integrations.push(\n            Sentry.captureConsoleIntegration({\n                levels: ['error', 'warn'],\n            }),\n        );\n    }\n\n    const ignoreErrors = [\n        /.*\\w\\.closest\\(\\/adobe-profile\\..*/,\n        /adobe-profile\\.min.*\\w\\.closest is not a function/,\n    ];\n\n    if (enableSentry) {\n        const release = `universal-asset-browser@${process.env.VERSION}`;\n        const environment = inferEnvironment({\n            version: process.env.VERSION,\n            hostname: window?.location.hostname,\n            environment: process.env.IS_CI ? 'production' : 'development',\n        });\n\n        // Calculate tracesSampleRate based on environment\n        const SPANS_BUDGET_TOTAL = 100_000_000;\n        const BUDGET_SCALE = 0.1;\n        const SPANS_BUDGET = SPANS_BUDGET_TOTAL * BUDGET_SCALE;\n        const AVG_SPANS_PER_TRACE = 100;\n\n        let tracesSampleRate: number;\n        if (isProfilingEnabled) {\n            tracesSampleRate = 1.0;\n        } else if (environment === 'production') {\n            tracesSampleRate = (SPANS_BUDGET * 0.88) / (1_000_000_000 * AVG_SPANS_PER_TRACE);\n        } else if (environment === 'stage') {\n            tracesSampleRate = (SPANS_BUDGET * 0.02) / (20_000_000 * AVG_SPANS_PER_TRACE);\n        } else {\n            tracesSampleRate = 1.0;\n        }\n\n        Sentry.init({\n            dsn: AUP_SDK_DSN,\n            enabled: enableSentry,\n            ignoreErrors,\n            environment,\n            release,\n            tracesSampleRate,\n            profilesSampleRate: 1.0,\n            tracePropagationTargets: [],\n            integrations,\n            ignoreSpans: [\n                { op: 'mark' },\n                { op: 'resource.link' },\n                { op: 'resource.beacon' },\n                { op: 'resource.script', name: sharedComponentsPattern },\n                { op: 'resource.css', name: sharedComponentsPattern },\n                { op: 'resource.other', name: sharedComponentsPattern },\n                { name: /\\.adobe\\.io\\/ons/i },\n                { name: /\\.adobe\\.io\\/ingest/i },\n                { name: /\\.adobe\\.io\\/ans\\/.*\\/notifications/i },\n                { name: /\\.adobe\\.io\\/.*\\/log/i },\n                { name: /\\.adobess\\.com\\/api\\/.*\\/notifications/i },\n                { name: /\\.adobedtm\\.com/i },\n                { name: /sstats\\.adobe\\.com\\/ee\\/.*\\/.*\\/collect/i },\n                { name: /service\\.\\w+\\.account\\.adobe\\.com\\/log/i },\n                { name: /hz-telemetry-\\w+\\.adobe\\.io/i },\n                { name: /idg\\.adobe\\.com\\/v\\d+\\/api\\/bfp_capture/i },\n                { name: /\\.nr-data\\.net/i },\n            ],\n            transport: Sentry.makeMultiplexedTransport(\n                Sentry.makeBrowserOfflineTransport(Sentry.makeFetchTransport),\n                ({ getEvent }) => {\n                    const event = getEvent(['event', 'transaction']);\n\n                    if (event?.type === undefined) {\n                        return [{ dsn: UAB_DSN, release }];\n                    }\n\n                    return [{ dsn: AUP_SDK_DSN, release }];\n                },\n            ),\n            beforeSend(event) {\n                if (event.exception) {\n                    const frames = event.exception.values?.[0]?.stacktrace?.frames || [];\n                    if (!frames.some((frame) => frame.in_app)) {\n                        return null;\n                    }\n                }\n\n                const message = event.message?.toLowerCase();\n                if (\n                    event.level === 'warning' &&\n                    !message?.includes('reactjs.org') &&\n                    !message?.includes('fb.me') &&\n                    !message?.includes('failed prop type')\n                ) {\n                    return null;\n                }\n\n                // Transfer scope tags to the event\n                const scope = Sentry.getCurrentScope();\n                if (scope) {\n                    const scopeTags = (scope as any)._tags || {};\n                    Object.keys(scopeTags).forEach((key) => {\n                        const value = scopeTags[key];\n                        if (\n                            value != null &&\n                            !event.tags?.[key] &&\n                            (typeof value === 'string' ||\n                                typeof value === 'number' ||\n                                typeof value === 'boolean')\n                        ) {\n                            if (!event.tags) {\n                                event.tags = {};\n                            }\n                            event.tags[key] = value;\n                        }\n                    });\n                }\n\n                return event;\n            },\n            beforeSendSpan(span) {\n                const scope = Sentry.getCurrentScope();\n                if (scope) {\n                    const scopeTags = (scope as any)._tags || {};\n                    Object.keys(scopeTags).forEach((key) => {\n                        const value = scopeTags[key];\n                        if (\n                            value != null &&\n                            !span.data[key] &&\n                            (typeof value === 'string' ||\n                                typeof value === 'number' ||\n                                typeof value === 'boolean')\n                        ) {\n                            span.data[key] = value;\n                        }\n                    });\n                }\n                return span;\n            },\n            beforeBreadcrumb(breadcrumb, hint) {\n                try {\n                    if (breadcrumb.category == 'ui.click') {\n                        if (hint?.event?.target?.dataset) {\n                            const { target } = hint.event;\n                            const dataTestId = target.dataset.testId;\n                            const tagInnerText = target.innerText;\n                            const defaultMessage = breadcrumb.message;\n                            breadcrumb.message = '';\n\n                            if (dataTestId) {\n                                breadcrumb.message += `${dataTestId} `;\n                            }\n                            if (tagInnerText) {\n                                breadcrumb.message += `>> ${tagInnerText} `;\n                            }\n                            breadcrumb.message += `[${defaultMessage}]`;\n                        }\n                    } else if (breadcrumb.category === 'xhr' || breadcrumb.category === 'fetch') {\n                        if (hint) {\n                            const xhr = hint.xhr;\n                            const input = hint.input;\n                            const requestId = (_requestId) => {\n                                if (_requestId && breadcrumb.data) {\n                                    breadcrumb.data['x-request-id'] = `${_requestId}`;\n                                }\n                            };\n                            if (xhr?._cdtXHR) {\n                                requestId(xhr._cdtXHR.headers['x-request-id']);\n                            } else if (input?.length >= 2 && input[1]?.headers) {\n                                requestId(input[1].headers['X-Request-Id']);\n                            }\n                        }\n                    }\n                } catch (e) {\n                    console.error(e);\n                }\n\n                return breadcrumb;\n            },\n        });\n\n        // Set tags on the scope after initialization\n        const scope = Sentry.getCurrentScope();\n        if (scope) {\n            // Add component loader versions as tags\n            const componentVersions = (globalThis as unknown as ComponentLoaderGlobal)\n                .__component_loader_versions__;\n            if (componentVersions) {\n                Object.entries(componentVersions).forEach(([component, data]) => {\n                    scope.setTag(`version.${component}`, data.version);\n                });\n            }\n\n            // Add component loader overrides as tags\n            const loaderOverrides = (globalThis as unknown as ComponentLoaderGlobal)\n                .__component_loader_override__;\n            // @ts-expect-error - _overrides is internal\n            const overrides = loaderOverrides?._overrides;\n            if (overrides) {\n                Object.entries(overrides).forEach(([component, data]) => {\n                    if (data && typeof data === 'object' && 'version' in data) {\n                        scope.setTag(`version_override.${component}`, data.version as string);\n                    }\n                });\n            }\n\n            // Add feature flags as tags\n            const flagsIntegration =\n                Sentry.getClient()?.getIntegrationByName<FeatureFlagsIntegration>('FeatureFlags');\n            if (flagsIntegration && sdkOrConfig) {\n                const config = isCollaborationSdk(sdkOrConfig)\n                    ? sdkOrConfig.getConfig()\n                    : sdkOrConfig;\n\n                if (config.featureFlags) {\n                    Object.entries(config.featureFlags).forEach(([flag, value]) => {\n                        flagsIntegration.addFeatureFlag(flag, value);\n                        scope.setTag(`feature_flag.${flag}`, value);\n                    });\n                }\n            }\n        }\n    }\n\n    const sentryInitState = enableSentry ? 'initialized...' : 'not enabled';\n    console.log(`[UAB v${process.env.VERSION}] sentry.io ${sentryInitState}`);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * Simple matchMedia polyfill for UXP environment\n * Handles basic media queries needed for the desktop.js bundle\n */\n\nconst createMatchMediaPolyfill = () => {\n    const parseQuery = (query: string): boolean => {\n        // Clean up the query string\n        const cleanQuery = query.trim().toLowerCase();\n\n        // Handle pointer:coarse query (most common case for touch detection)\n        if (cleanQuery.includes('pointer:coarse') || cleanQuery.includes('pointer: coarse')) {\n            // In UXP desktop environment, we assume non-touch (pointer:fine)\n            // Touch devices would typically have pointer:coarse\n            return false;\n        }\n\n        // Handle pointer:fine query\n        if (cleanQuery.includes('pointer:fine') || cleanQuery.includes('pointer: fine')) {\n            // In UXP desktop environment, we assume fine pointer (mouse)\n            return true;\n        }\n\n        // Handle width queries\n        const widthMatch = cleanQuery.match(/\\((?:max-width|min-width|width)\\s*:\\s*(\\d+)px\\)/);\n        if (widthMatch) {\n            const targetWidth = parseInt(widthMatch[1], 10);\n            const currentWidth = window.screen?.width || window.innerWidth || 1920;\n\n            if (cleanQuery.includes('max-width')) {\n                return currentWidth <= targetWidth;\n            } else if (cleanQuery.includes('min-width')) {\n                return currentWidth >= targetWidth;\n            } else {\n                return currentWidth === targetWidth;\n            }\n        }\n\n        // Handle height queries\n        const heightMatch = cleanQuery.match(/\\((?:max-height|min-height|height)\\s*:\\s*(\\d+)px\\)/);\n        if (heightMatch) {\n            const targetHeight = parseInt(heightMatch[1], 10);\n            const currentHeight = window.screen?.height || window.innerHeight || 1080;\n\n            if (cleanQuery.includes('max-height')) {\n                return currentHeight <= targetHeight;\n            } else if (cleanQuery.includes('min-height')) {\n                return currentHeight >= targetHeight;\n            } else {\n                return currentHeight === targetHeight;\n            }\n        }\n\n        // Handle orientation queries\n        if (\n            cleanQuery.includes('orientation:landscape') ||\n            cleanQuery.includes('orientation: landscape')\n        ) {\n            const width = window.screen?.width || window.innerWidth || 1920;\n            const height = window.screen?.height || window.innerHeight || 1080;\n            return width > height;\n        }\n\n        if (\n            cleanQuery.includes('orientation:portrait') ||\n            cleanQuery.includes('orientation: portrait')\n        ) {\n            const width = window.screen?.width || window.innerWidth || 1920;\n            const height = window.screen?.height || window.innerHeight || 1080;\n            return height > width;\n        }\n\n        // Handle media types\n        if (cleanQuery.includes('screen')) {\n            return true; // UXP is screen-like\n        }\n\n        if (cleanQuery.includes('print')) {\n            return false; // UXP is not print\n        }\n\n        if (cleanQuery.includes('all')) {\n            return true; // 'all' matches everything\n        }\n\n        // Default case - return false for unknown queries\n        console.warn(`matchMedia polyfill: Unknown query \"${query}\", returning false`);\n        return false;\n    };\n\n    return (query: string) => {\n        const matches = parseQuery(query);\n\n        // Return a simple object that satisfies the basic matchMedia usage\n        return {\n            matches,\n            media: query,\n            addListener: () => {}, // No-op for UXP\n            removeListener: () => {}, // No-op for UXP\n            addEventListener: () => {}, // No-op for UXP\n            removeEventListener: () => {}, // No-op for UXP\n            dispatchEvent: () => false, // No-op for UXP\n            onchange: null,\n        } as MediaQueryList;\n    };\n};\n\n/**\n * Load matchMedia polyfill if needed\n */\nexport const loadMatchMediaPolyfillIfNeeded = (): void => {\n    if (typeof window !== 'undefined' && !window.matchMedia) {\n        console.log('Loading matchMedia polyfill for UXP environment (UAB fallback)');\n        window.matchMedia = createMatchMediaPolyfill();\n    }\n};\n\n// Force side effect\n//This condition help prevent tree-shaking\nif (typeof window !== 'undefined') {\n    loadMatchMediaPolyfillIfNeeded();\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconCircle } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCircle.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\n\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Circle: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Circle')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-circle'], async () => {\n        \n        const { IconCircle } = await import(\n            /* webpackChunkName: \"SpIconCircle\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconCircle'\n        );\n        return [IconCircle];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconCircle, RS2IconProps>({\n            displayName: 'Circle',\n            fallback: RS2Circle,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-circle',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nexport enum LOCAL_STORAGE_KEY {\n    SORT_DIR = 'cdo:sort-direction',\n    SORT_ORDER = 'cdo:sort-order',\n    SEEN_ONBOARD_CDO = 'cdo:seen-onboard',\n    PLACE_EMBED_WARNING = 'cdp:place-embed-warning',\n    PLACE_LINK_WARNING = 'cdp:place-link-warning',\n    VIEW_STATE = 'cdo:view-state',\n    INIT_LOGGED = 'cdo:init-logged',\n}\n\nexport function getStorage(key: string): string | null | undefined {\n    try {\n        return localStorage.getItem(key);\n    } catch (_) {\n        console.error('Utils/storage: localStorage is not supported');\n    }\n}\n\nexport function setStorage(key: string, value: any): void {\n    try {\n        localStorage.setItem(key, value);\n    } catch (_) {\n        console.error('Utils/storage: localStorage is not supported');\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\n\nenum MimeTypeVariants {\n    ReviewLink = 'reviewLink',\n    TeamLib = 'teamLib',\n}\n\ntype IFileCapabilitiesConfig = { [mimetype: string]: AssetBrowser.Capability[] };\n\nclass FileCapabilities {\n    private readonly mimeTypeToCapabilities: Map<string, AssetBrowser.Capability[]> = new Map();\n    private readonly mimeTypeToSharingCapabilities: Map<string, AssetBrowser.IShareSheetConfig[]> =\n        new Map();\n\n    constructor(capabilities: IFileCapabilitiesConfig | AssetBrowser.IFileSharingCapabilities) {\n        if (!capabilities) {\n            return;\n        }\n        if (Array.isArray(capabilities)) {\n            capabilities.forEach((capability) => {\n                capability.mimeTypes.forEach((mimeType) => {\n                    if (this.mimeTypeToSharingCapabilities.has(mimeType)) {\n                        this.mimeTypeToSharingCapabilities\n                            ?.get(mimeType)\n                            ?.push(capability.shareSheetConfig);\n                        return;\n                    }\n                    this.mimeTypeToSharingCapabilities.set(mimeType, [capability.shareSheetConfig]);\n                });\n            });\n            return;\n        }\n\n        Object.entries(capabilities).forEach(([key, value]) => {\n            if (key && value) {\n                this.mimeTypeToCapabilities.set(key, value);\n            }\n        });\n    }\n\n    /**\n     *\n     * Checks if the fileType is supported by the capability\n     *\n     * @param {string} fileType\n     * @param {IItemCapability} capability\n     */\n    public isCapable(fileType: string, capability: AssetBrowser.Capability): boolean {\n        const capabilites = this.mimeTypeToCapabilities.get(fileType);\n        return capabilites ? capabilites.includes(capability) : false;\n    }\n\n    public isSharingCapable(\n        fileType: string,\n        capability: AssetBrowser.Capability,\n        variant?: MimeTypeVariants,\n    ): boolean {\n        const sharingCapabilities = this.getSharingCapabilities(fileType, variant);\n        const capabilities = sharingCapabilities?.capabilities;\n        return capabilities ? capabilities.includes(capability) : false;\n    }\n\n    public getSharingCapabilities(\n        fileType: string,\n        variant?: MimeTypeVariants,\n    ): AssetBrowser.IShareSheetConfig | null {\n        const sharingConfigs = this.mimeTypeToSharingCapabilities.get(fileType);\n        if (!sharingConfigs) {\n            return null;\n        }\n        let sharingCapabilities;\n        switch (variant) {\n            case MimeTypeVariants.ReviewLink:\n                sharingCapabilities = sharingConfigs.find((config) => config.isReview === true);\n                break;\n            case MimeTypeVariants.TeamLib:\n                sharingCapabilities = sharingConfigs.find((config) => config.isTeamLib === true);\n                break;\n            default:\n                sharingCapabilities = sharingConfigs.find(\n                    (config) => !config.isTeamLib && !config.isReview,\n                );\n                break;\n        }\n        return sharingCapabilities;\n    }\n\n    /**\n     *\n     * Gets all the supported capabilites for a filetype.\n     *\n     * @param {string} fileType\n     */\n    public getCapabilities(fileType: string): string[] {\n        return this.mimeTypeToCapabilities.get(fileType) || [];\n    }\n}\n\nconst Capability = AssetBrowser.Capability;\nexport default FileCapabilities;\nexport { Capability, MimeTypeVariants };\nexport type { IFileCapabilitiesConfig };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\n\n// For temporary debugging, use the logpoint trick in Chrome to get a reference to Logger class,\n// then use Logger.setLogLevel to override. If you need to catch earlier log messages, modify\n// LOG_LEVEL map: either change the entry for 'default' to LogLevel.DEBUG, or add entries for\n// the classes you want to monitor (e.g., ['FolderCollection', LogLevel.DEBUG], ['Collection', LogLevel.DEBUG]).\nconst LOG_LEVEL: Map<string, AssetBrowser.CDOLogLevel> = new Map([\n    ['default', AssetBrowser.CDOLogLevel.INFO],\n]);\nconst LAST_ID = new Map();\nconst LOG_METHOD = {\n    [AssetBrowser.CDOLogLevel.DEBUG]: 'debug',\n    [AssetBrowser.CDOLogLevel.INFO]: 'log',\n    [AssetBrowser.CDOLogLevel.WARN]: 'warn',\n    [AssetBrowser.CDOLogLevel.ERROR]: 'error',\n};\n\n// For testing, swap out default LOG_LEVEL for a different instance so that\n// logging can be disabled by default for tests, but the prod instance can\n// be inspected by Logger.test.ts\nlet LOG_LEVEL_ENV: Map<string, AssetBrowser.CDOLogLevel> = LOG_LEVEL;\nif (process.env.NODE_ENV === 'test') {\n    LOG_LEVEL_ENV = new Map([['default', AssetBrowser.CDOLogLevel.DISABLED]]);\n}\n\n/**\n * Logging class to respect loglevels for debugging\n *\n * @example\n * class Collection {\n *    private logger = new Logger(this.constructor.name);  // subclasses will use their own name for logging\n *    public doIt() {\n *      this.logger.log('doing it');\n *    }\n * }\n *\n * class FolderCollection extends Collection { }\n * c = new Collection();\n * f = new FolderCollection();\n * c.doIt(); // console: [Collection-1] doing it\n * f.doIt(); // console: [FolderCollection-1] doing it\n */\nclass Logger {\n    className: string;\n    instanceId: number;\n\n    static setLogLevel(logLevel: AssetBrowser.CDOLogLevel, className: string = 'default'): void {\n        LOG_LEVEL_ENV.set(className, logLevel);\n    }\n\n    constructor(className: string) {\n        this.className = className;\n        this.instanceId = (LAST_ID.get(className) || 0) + 1;\n        LAST_ID.set(className, this.instanceId);\n    }\n\n    private out(logLevel: AssetBrowser.CDOLogLevel, msg: string, ...args: any[]): void {\n        const currentLevel = LOG_LEVEL_ENV.has(this.className)\n            ? LOG_LEVEL_ENV.get(this.className)\n            : LOG_LEVEL_ENV.get('default');\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Handle undefined/null\n        if (currentLevel! <= logLevel) {\n            console[LOG_METHOD[logLevel]](`[${this.className}-${this.instanceId}] ${msg}`, ...args);\n        }\n    }\n\n    debug(msg: string, ...args: any[]): void {\n        this.out(AssetBrowser.CDOLogLevel.DEBUG, msg, ...args);\n    }\n\n    log(msg: string, ...args: any[]): void {\n        this.out(AssetBrowser.CDOLogLevel.INFO, msg, ...args);\n    }\n\n    warn(msg: string, ...args: any[]): void {\n        this.out(AssetBrowser.CDOLogLevel.WARN, msg, ...args);\n    }\n\n    error(msg: string, ...args: any[]): void {\n        this.out(AssetBrowser.CDOLogLevel.ERROR, msg, ...args);\n    }\n}\n\nlet internalForTests;\nif (process.env.NODE_ENV === 'test') {\n    internalForTests = {\n        LOG_LEVEL,\n        LOG_LEVEL_ENV,\n    };\n}\n\nconst LogLevel = AssetBrowser.CDOLogLevel;\n\nexport { Logger, LogLevel, internalForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nexport enum NotificationType {\n    authentication = 'authentication',\n    network = 'network',\n    coreSync = 'coreSync',\n    quota = 'quota',\n}\n\nexport enum NotificationStatus {\n    ACPL_USER_REGISTERED = 'acplUserRegistered',\n    ACPL_USER_NOT_REGISTERED = 'acplUserNotRegistered',\n    // /**\n    //  * @deprecated\n    //  */\n    // ACPL_AUTHENTICATED = 'acplAuthenticated',\n    // /**\n    //  * @deprecated\n    //  */\n    // ACPL_NOT_AUTHENTICATED = 'acplNotAuthenticated',\n    CORESYNC_REACHABLE_AND_COMPATIBLE = 'coreSyncReachableAndCompatible',\n    CORESYNC_REACHABLE_NOT_COMPATIBLE = 'coreSyncReachableNotCompatible',\n    CORESYNC_NOT_REACHABLE = 'coreSyncNotReachable',\n    HAS_INTERNET_ACCESS = 'online',\n    NO_INTERNET_ACCESS = 'offline',\n    QUOTA_AVAILABLE = 'quotaAvailable',\n    QUOTA_EXCEEDED = 'quotaExceeded',\n    CLOUD_STORAGE_DISABLED = 'cloudStorageDisabled',\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { NotificationStatus } from '../types/NotificationStatus';\nimport type { ProcessingState } from '@csc/collection-view';\nimport { UXSortBy } from '@csc/collection-view';\n\n/*\n * In order to keep views agnostic of the data sources (e.g., Cloud Docs vs. Recents vs. Resources),\n * separate UX sorting enum from API sorting parameters.\n */\n\nexport enum HTTPStatusCodes {\n    Conflict = 409,\n    FileNotFound = 404,\n    PreconditionFailed = 412,\n    UnprocessableEntity = 422,\n}\n\n/**\n * Sort options that area only available on views that use ACP data.\n * (Currently everything but shareDate)\n */\nexport type UXSortByForACP = Exclude<UXSortBy, UXSortBy.shareDate>;\n\n/**\n * Sort options that are only available on views that use Resources data.\n * (Currently only shareDate)\n */\nexport type UXSortByForResources = Extract<UXSortBy, UXSortBy.shareDate | UXSortBy.title>;\n\n/**\n * Sort options that are  available on ReviewLinks.\n * */\nexport type UXSortByForReviewLinks = Extract<UXSortBy, UXSortBy.modifiedDate | UXSortBy.title>;\n\n// When true, share status will come from Storage API, otherwise it comes from collaborators API\nexport const SHARE_STATUS_FROM_CLOUD_CONTENTS = false;\n\n/**\n * Map of UXSortBy keys to values used for ingest metrics\n */\nexport const UX_SORT_TO_INGEST: { [key: string]: string } = {\n    [UXSortBy.accessDate]: 'Date Opened',\n    [UXSortBy.createDate]: 'Date Created',\n    [UXSortBy.modifiedDate]: 'Date Modified',\n    [UXSortBy.shareDate]: 'Date Shared',\n    [UXSortBy.size]: 'Size',\n    [UXSortBy.title]: 'Name',\n};\n\n/**\n * Lookup table for UXSortBy date columns\n */\nexport const UX_SORT_BY_DATE: { [key: string]: boolean } = {\n    [UXSortBy.accessDate]: true,\n    [UXSortBy.createDate]: true,\n    [UXSortBy.modifiedDate]: true,\n    [UXSortBy.shareDate]: true,\n};\n\nexport const CCD_CONTENTVIEW_RESIZE_EVENT = 'ccd-contentview-resize';\n\nexport const CDO_UPDATE_SCROLL_POSITION = 'cdo-update-scroll-position';\n\nexport const CDO_CURRENT_PATH_CHANGE_EVENT = 'cdo-current-path-change';\n\nexport type OperationState = Extract<\n    ProcessingState,\n    | ProcessingState.Processing\n    | ProcessingState.Idle\n    | ProcessingState.Pending\n    | ProcessingState.ReadyToExecute\n>;\n\nexport type AcplRegistrationState = Extract<\n    NotificationStatus,\n    NotificationStatus.ACPL_USER_REGISTERED | NotificationStatus.ACPL_USER_NOT_REGISTERED\n>;\nexport const ACPL_REGISTRATION_STATES = [\n    NotificationStatus.ACPL_USER_REGISTERED,\n    NotificationStatus.ACPL_USER_NOT_REGISTERED,\n];\n\nexport type CoreSyncState = Extract<\n    NotificationStatus,\n    | NotificationStatus.CORESYNC_REACHABLE_AND_COMPATIBLE\n    | NotificationStatus.CORESYNC_REACHABLE_NOT_COMPATIBLE\n    | NotificationStatus.CORESYNC_NOT_REACHABLE\n>;\nexport const CORESYNC_STATES = [\n    NotificationStatus.CORESYNC_REACHABLE_AND_COMPATIBLE,\n    NotificationStatus.CORESYNC_REACHABLE_NOT_COMPATIBLE,\n    NotificationStatus.CORESYNC_NOT_REACHABLE,\n];\n\nexport type ConnectionState = Extract<\n    NotificationStatus,\n    NotificationStatus.HAS_INTERNET_ACCESS | NotificationStatus.NO_INTERNET_ACCESS\n>;\nexport const CONNECTION_STATES = [\n    NotificationStatus.HAS_INTERNET_ACCESS,\n    NotificationStatus.NO_INTERNET_ACCESS,\n];\n\nexport type QuotaState = Extract<\n    NotificationStatus,\n    | NotificationStatus.QUOTA_AVAILABLE\n    | NotificationStatus.QUOTA_EXCEEDED\n    | NotificationStatus.CLOUD_STORAGE_DISABLED\n>;\nexport const QUOTA_STATES = [\n    NotificationStatus.QUOTA_AVAILABLE,\n    NotificationStatus.QUOTA_EXCEEDED,\n    NotificationStatus.CLOUD_STORAGE_DISABLED,\n];\n\n// For reference:\n// https://git.corp.adobe.com/pages/ACPLocal/acp-local/docs/html/_notification_request_8h_source.html\nexport enum AssetChangeOperation {\n    ADD = 1,\n    UPDATE = 2,\n    // NOTE: 4 is now also \"permanent delete\" when the assetPath is /cloud-content/cloud-content-archive\n    DELETE = 4,\n    RESTORE = 8,\n    CONFLICT = 16,\n    MOVE = 32,\n    PURGE = 128,\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\n\nimport { action, computed, observable, runInAction } from 'mobx';\nimport { Logger } from '../utils/Logger';\nimport type IAssetChangeNotification from '../types/IAssetChangeNotification';\nimport { Subscribable } from '@csc/collection-view';\nimport { AssetChangeOperation } from './constants';\n\n// Regardless of network speed SyncProgress notifications seems to reliably\n// fire at least every couple of seconds, so 10 seconds should be fine.\n//\n// TODO: When Cancel Download sends a notification, we can remove this.\n// (https://jira.corp.adobe.com/browse/ACPL-8755)\nconst SYNC_TIMEOUT = 10 * 1000;\n\ninterface IAssetRef {\n    cloudID?: string;\n    localID?: string;\n    path: string;\n    displayName: string;\n}\n\ninterface IAssetSyncEventPayload {\n    assetRef: IAssetRef;\n    syncStatus: SyncStatus;\n    cloudAssetId?: string;\n}\n\n/**\n * https://git.corp.adobe.com/ACPLocal/acp-local/blob/581076908c358be896482cfc74fde8f284586cec/acp.local/public/include/notification/NotificationRequest.h#L429\n */\nenum SyncDirection {\n    NONE = 0x0,\n    UPLOAD = 0x2,\n    DOWNLOAD = 0x4,\n}\n\ntype ISyncProgressEventPayload = IAssetSyncEventPayload & {\n    bytesTransferredEx?: number;\n    bytesTotalEx?: number;\n    transferDirection: SyncDirection;\n};\n\ninterface ISyncProgress {\n    bytesTransferred: number;\n    bytesTotal: number;\n    transferDirection: SyncDirection;\n}\n\nexport type IAssetSyncState = IAssetSyncEventPayload & Partial<ISyncProgress>;\n\ntype ElementIds = Pick<SAM.AdobeAsset, 'cloudID' | 'localID' | 'repoPath'> & {\n    path: string; // backward-compatibility from pre-AdobeAsset switch\n};\n\n/**\n * This enum is a representation of ACPLocal's SyncStatus enum, which can be found here:\n * https://git.corp.adobe.com/ACPLocal/acp-local/blob/development/acp.local/public/include/notification/AssetSyncNotification.h\n */\nenum SyncStatus {\n    syncing = 0,\n    complete = 1,\n    error = 2,\n}\n\ntype AssetSyncStateStoreCallbacks = {\n    onAssetSyncComplete: Map<string, (syncPayload: IAssetSyncEventPayload) => void>;\n    onAssetSyncFail: Map<string, (error: string) => void>;\n    onAssetSyncTimeout: Map<string, (syncPayload?: IAssetSyncState) => void>;\n};\n\n/**\n * MobX Store that maintains the state of syncing assets\n *\n * @info\n * This was implemented separately from the DocumentStore and DocumentModel for the\n * following reasons:\n *   - An element may take longer to sync than its DocumentModel instance persists. We create\n *     new DocumentModels every time a collection is marked dirty\n *   - An element may be syncing that hasn't been loaded into our document collection by the user yet.\n */\nclass AssetSyncStateStore extends Subscribable<AssetSyncStateStoreCallbacks> {\n    private logger: Logger = new Logger(this.constructor.name);\n\n    @observable syncState = new Map<string, IAssetSyncState>();\n    syncTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n    @observable documentsPendingSync = new Set<string>();\n\n    constructor() {\n        super();\n    }\n\n    /** Assets which are actively syncing. Once sync finishes or times out, they're removed */\n    @computed get syncingAssets() {\n        return [...this.syncState.values()];\n    }\n\n    /**\n     * Returns true if the element is currently syncing, otherwise returns false\n     * @param element\n     */\n    isSyncing(element: SAM.AdobeAsset) {\n        return computed(() => {\n            // SAM assets track their own sync status.\n            // TODO: only check SAM sync status here in AssetSyncStateStore, so we can ensure\n            //       parity between ACPL and SAM models. Once ACPF models are removed, also refactor\n            //       to remove AssetSyncStateStore.\n            // https://jira.corp.adobe.com/browse/CCXCD-4801\n            if (element.syncStatus === SAM.AssetSyncStatus.Syncing) {\n                return true;\n            }\n            const elementSyncKey = this.getElementSyncKey(element);\n            const syncPayload = this.syncState.get(elementSyncKey);\n            if (!syncPayload) {\n                return false;\n            }\n\n            return syncPayload.syncStatus === SyncStatus.syncing;\n        });\n    }\n\n    /**\n     * Returns true if the element is pending syncing, otherwise returns false\n     * @param element\n     */\n    isPendingSync(element: SAM.AdobeAsset) {\n        return computed(() => {\n            // SAM assets track their own sync status.\n            // TODO: only check SAM sync status here in AssetSyncStateStore, so we can ensure\n            //       parity between ACPL and SAM models. Once ACPF models are removed, also refactor\n            //       to remove AssetSyncStateStore.\n            // https://jira.corp.adobe.com/browse/CCXCD-4801\n            if (element.syncStatus === SAM.AssetSyncStatus.OutOfSync) {\n                return true;\n            }\n\n            return this.documentsPendingSync.has(element.id);\n        });\n    }\n\n    private resetSyncTimeout(key: string) {\n        this.clearSyncTimeout(key);\n        const timeoutId = setTimeout(\n            () =>\n                runInAction(() => {\n                    this.logger.debug(`sync timed out for ${key}`);\n                    const syncPayload = this.syncState.get(key);\n                    this.notifySubscribers('onAssetSyncTimeout', syncPayload);\n                    this.syncState.delete(key);\n                }),\n            SYNC_TIMEOUT,\n        );\n        this.syncTimeouts.set(key, timeoutId);\n    }\n\n    private clearSyncTimeout(key: string) {\n        const timeoutId = this.syncTimeouts.get(key);\n        if (timeoutId) {\n            clearTimeout(timeoutId);\n        }\n        this.syncTimeouts.delete(key);\n    }\n\n    /**\n     * Used to listen for asset sync events from samSyncingAssets\n     *\n     * @info\n     * This shouldn't be called manually\n     *\n     * @param syncPayload - asset sync event payload\n     */\n    @action\n    onAssetSyncEvent = (syncPayload: IAssetSyncEventPayload, error?: string) => {\n        const { assetRef, syncStatus, cloudAssetId } = syncPayload;\n        this.logger.debug('onAssetSyncEvent', cloudAssetId, syncStatus, syncPayload);\n        if (syncStatus === SyncStatus.syncing) {\n            this.setAssetIsSyncing(syncPayload);\n        } else if (syncStatus === SyncStatus.complete) {\n            this.setAssetIsComplete(syncPayload);\n        } else if (syncStatus === SyncStatus.error) {\n            this.logger.debug('...SyncStatus error', assetRef);\n            this.notifySubscribers('onAssetSyncFail', error ?? '');\n            this.removeSyncingAsset(syncPayload);\n        }\n    };\n\n    @action\n    private setAssetIsSyncing = (syncPayload: IAssetSyncEventPayload): void => {\n        const elementSyncKey = AssetSyncStateStore.determineElementSyncKey(syncPayload);\n        if (!elementSyncKey || this.syncState.has(elementSyncKey)) {\n            // if we're not given cloudID/localID/path or we already know\n            // the asset is syncing (sometimes SyncProgress notifs fire first)\n            // then ignore\n            return;\n        }\n\n        this.logger.debug('...sync start', elementSyncKey);\n        this.resetSyncTimeout(elementSyncKey);\n        this.syncState.set(elementSyncKey, syncPayload);\n    };\n\n    @action\n    private setAssetIsComplete = (syncPayload: IAssetSyncEventPayload): void => {\n        const { assetRef } = syncPayload;\n\n        const elementSyncKey = this.getElementSyncKey(assetRef);\n        this.logger.debug('...sync complete', elementSyncKey);\n\n        this.clearSyncTimeout(elementSyncKey);\n        if (assetRef.cloudID) {\n            this.documentsPendingSync.delete(assetRef.cloudID);\n        }\n        if (assetRef.localID) {\n            this.documentsPendingSync.delete(assetRef.localID);\n        }\n\n        this.removeSyncingAsset(syncPayload);\n        this.notifySubscribers('onAssetSyncComplete', syncPayload);\n    };\n\n    @action\n    private removeSyncingAsset = (syncPayload: IAssetSyncEventPayload): void => {\n        const { assetRef } = syncPayload;\n        const elementSyncKey = this.getElementSyncKey(assetRef);\n        this.logger.debug('...removing sync', elementSyncKey);\n        this.syncState.delete(elementSyncKey);\n    };\n\n    /**\n     * Used to listen for sync progress events from samSyncingAssets\n     *\n     * @info\n     * This shouldn't be called manually\n     *\n     * @param syncPayload - sync progress event payload\n     */\n    @action\n    onSyncProgressEvent = (syncPayload: ISyncProgressEventPayload) => {\n        const { cloudAssetId, assetRef, bytesTotalEx, bytesTransferredEx, transferDirection } =\n            syncPayload;\n        this.logger.debug('onSyncProgressEvent', cloudAssetId, syncPayload);\n\n        const elementSyncKey = this.getElementSyncKey(assetRef);\n\n        if (assetRef.cloudID) {\n            this.documentsPendingSync.delete(assetRef.cloudID);\n        }\n\n        const newSyncState = (prevState: IAssetSyncEventPayload): IAssetSyncState => ({\n            // can assume syncing because SyncProgress notif\n            syncStatus: SyncStatus.syncing,\n            assetRef: prevState.assetRef,\n            bytesTransferred: bytesTransferredEx,\n            bytesTotal: bytesTotalEx,\n            transferDirection,\n        });\n\n        if (elementSyncKey) {\n            // don't update already-completed items\n            if (this.syncState.get(elementSyncKey)?.syncStatus !== SyncStatus.complete) {\n                this.resetSyncTimeout(elementSyncKey);\n                const syncState = newSyncState(this.syncState.get(elementSyncKey) ?? syncPayload);\n                this.syncState.set(elementSyncKey, syncState);\n            }\n        } else {\n            // Sync Progress events sometimes fire before Asset Sync events\n            const syncState = newSyncState(syncPayload);\n            this.setAssetIsSyncing(syncState);\n        }\n    };\n\n    /**\n     * We should only listen to notifications onAssetChange OFFLINE here since we are checking\n     * if a document is being modified offline to show the pending sync status\n     *\n     * @param changeOperation {ChangeOperation} numeric representation of the operation\n     * @param cloudAssetId {String} cloud id of the document modified\n     * @param localAssetId {String} local id of the document created\n     */\n    @action\n    onAssetChange = ({\n        changeOperation,\n        cloudAssetId,\n        localAssetId,\n    }: Partial<IAssetChangeNotification>) => {\n        if (changeOperation === AssetChangeOperation.UPDATE && cloudAssetId) {\n            this.documentsPendingSync.add(cloudAssetId);\n        }\n        if (changeOperation === AssetChangeOperation.ADD && localAssetId) {\n            this.documentsPendingSync.add(localAssetId);\n        }\n    };\n\n    @action\n    clear = () => {\n        this.syncState.clear();\n    };\n\n    /**\n     * Retrieves the ID of an element used as the key to the syncStatus Map. Returns\n     * undefined if the element is not syncing\n     *\n     * We have to do this because new documents may not have a cloud ID when they begin\n     * syncing, but they will have a cloud ID when syncing is complete.\n     */\n    private getElementSyncKey(element: Partial<ElementIds>): string {\n        let inCacheKey: string = '';\n        if (this.syncState.has(element.cloudID ?? '')) {\n            inCacheKey = element.cloudID ?? '';\n        } else if (this.syncState.has(element.localID ?? '')) {\n            inCacheKey = element.localID ?? '';\n        } else if (this.syncState.has(element.repoPath ?? '')) {\n            inCacheKey = element.repoPath ?? '';\n        } else if (this.syncState.has(element.path ?? '')) {\n            inCacheKey = element.path ?? '';\n        }\n        return inCacheKey;\n    }\n\n    /**\n     * Determines which assetRef component to use for SyncState cache key\n     */\n    private static determineElementSyncKey(syncPayload: { assetRef: IAssetRef }): string {\n        const { cloudID, localID, path } = syncPayload.assetRef;\n\n        let inCacheKey: string = '';\n        if (cloudID) {\n            inCacheKey = cloudID;\n        } else if (localID) {\n            inCacheKey = localID;\n        } else if (path) {\n            inCacheKey = path;\n        }\n        return inCacheKey;\n    }\n}\n\nexport default AssetSyncStateStore;\nexport {\n    SyncStatus,\n    SyncDirection,\n    type IAssetSyncEventPayload,\n    type ISyncProgress,\n    type ISyncProgressEventPayload,\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { NotificationStatus } from '../types/NotificationStatus';\nimport throttle from 'lodash-es/throttle';\nimport { action, autorun, computed, flow, observable, when } from 'mobx';\n\nimport type AAVMetrics from '@csc/adobe-assets-view/dist/src/utils/metrics/aav-metrics';\nimport { Logger } from '../utils/Logger';\nimport { ProcessingState, TOAST_EXCEEDED_QUOTA_DELAY } from '@csc/collection-view';\nimport type { QuotaState } from './constants';\nimport { QUOTA_STATES } from './constants';\nimport type { ICDCStores } from './CDCGlobalStore';\nimport { getExistingCDCGlobalStore } from './CDCGlobalStore';\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport type { IntlShape } from 'react-intl';\n\n/**\n * Global var for more aggressive fetch retrying the first time any of\n * CDO/UAP/Sync Status fetches quota to compensate for ACPL initialization.\n *\n * @info\n * ACPL's StorageMetadata API \"is an expensive operation as it makes system calls\n * to fetch the size of each file in the rendition cache to calculate the rendition\n * cache size. Depending on the number of renditions in the cache, fetching the\n * rendition folder size could be an I/O intensive operation and multiple parallel\n * requests can lead to higher CPU usage.\"\n */\nlet isFirstGlobalQuotaFetch = true;\n\nconst FETCH_THROTTLE = 1000 * 60 * 3; // 3 minutes\n\n/**\n * MobX store that maintains user quota state\n */\nclass QuotaStore implements ICDCStores {\n    @observable usedCloudQuota: number | undefined = undefined;\n    @observable maxCloudQuota: number | undefined = undefined;\n    @observable fetchState: ProcessingState = ProcessingState.Pending;\n    @observable quotaState: QuotaState | undefined = undefined;\n    @observable private SAMAssetContext: SAM.AssetContext;\n    showToast?: AssetBrowser.ShowToastFn;\n    intl?: IntlShape;\n\n    private logger: Logger = new Logger(this.constructor.name);\n    private cdoMetrics: AAVMetrics;\n    refreshEnabled: boolean = false;\n    private imsData: AssetBrowser.IIMSData | undefined = undefined;\n\n    constructor(config: Partial<QuotaStore>) {\n        this.refreshEnabled = config.refreshEnabled ?? false;\n        this.showToast = config.showToast;\n        this.intl = config.intl;\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        this.init();\n    }\n\n    async init() {\n        const globalStore = getExistingCDCGlobalStore();\n        if (!globalStore) {\n            throw new Error('[cdo] QuotaStore requires a CDCGlobalStore');\n        }\n        const { imsData, cdoMetrics } = globalStore;\n        this.imsData = imsData;\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        this.initSAMAssetContext();\n        this.cdoMetrics = cdoMetrics;\n    }\n\n    @computed get isReady(): boolean {\n        return Boolean(this.SAMAssetContext) && Boolean(this.cdoMetrics);\n    }\n\n    @action async initSAMAssetContext() {\n        const globalStore = getExistingCDCGlobalStore();\n        if (!globalStore) {\n            throw new Error('[cdo] QuotaStore requires a CDCGlobalStore');\n        }\n        const sam = await globalStore.waitForSAMInit();\n        if (!sam) {\n            throw new Error('[cdo] QuotaStore requires a SAMAssetContext');\n        }\n        this.SAMAssetContext = sam;\n        this.logger.debug('initSAMAssetContext');\n        if (this.SAMAssetContext.cloudSyncStatus !== undefined) {\n            autorun(() => {\n                // do not fetch quota when cloud sync status is \"not started\"\n                if (\n                    navigator.onLine &&\n                    this.SAMAssetContext.cloudSyncStatus !== undefined &&\n                    this.SAMAssetContext.cloudSyncStatus !== SAM.CloudSyncStatus.NotStarted\n                ) {\n                    this.onSAMCloudSyncStatusChange(this.SAMAssetContext.cloudSyncStatus);\n                }\n            });\n        }\n    }\n\n    private displayQuotaExceededToast = () => {\n        const quotaErrorMsgId =\n            this.imsData?.accountType === AssetBrowser.AccountType.Personal\n                ? 'exceedsQuota.personal'\n                : 'exceedsQuota.enterprise';\n        setTimeout(() => {\n            this.showToast?.({\n                content: this.intl?.formatMessage({ id: `error.${quotaErrorMsgId}` }) ?? '',\n                variant: 'negative',\n            });\n            // while we solely relying on notifications for the timing of our\n            // toast UI, adding a delay to the 'EXCEEDS_QUOTA' toast ends up\n            // being the most consistent display of OPs toast + QUOTA toast\n        }, TOAST_EXCEEDED_QUOTA_DELAY);\n    };\n\n    /**\n     * @info\n     * This should cover the same cases as onAssetSyncComplete, which\n     * is fired for everything except Permanent Delete. Will need to\n     * either file a SAM bug to update cloudSyncStatus for Perm Delete\n     * or cover Perm Delete with some other SAM API\n     */\n    private onSAMCloudSyncStatusChange(status: SAM.CloudSyncStatus) {\n        const { Synchronized, ErrorQuotaExceeded } = SAM.CloudSyncStatus;\n        this.logger.debug('onSAMCloudSyncStatusChange status=%s', status);\n        if (status === ErrorQuotaExceeded) {\n            // SAM sets this when it encounters an \"over quota\" error, so we can\n            // eagerly assume cloud storage is exceeded without needing to fetch\n            // quota data first, which is a throttled process\n            this.onNotificationStatusChange(NotificationStatus.QUOTA_EXCEEDED);\n            this.displayQuotaExceededToast();\n        }\n\n        if (\n            // SAM sets this when it encounters an \"over quota\" error, not by checking quota\n            // so it should be a prompt to get actual used/max quota\n            status === ErrorQuotaExceeded ||\n            // SAM finished transitioning from InProgress/etc to Synchronized, refetch\n            status === Synchronized\n        ) {\n            // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n            this.fetch();\n        }\n    }\n\n    /**\n     * @info\n     * To be used for notifications or error handling\n     * on individual asset sync errors\n     */\n    public onAssetSyncFail(status: string): void {\n        this.logger.debug('onAssetSyncFail status=%s', status);\n    }\n\n    /**\n     * @info\n     * This shouldn't be called manually, initCDOStores() hooks this up to\n     * AssetSyncStateStore's onAssetSyncComplete() callback\n     */\n    public onAssetSyncComplete(): void {\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        this.fetch();\n    }\n\n    // using a function to mock in tests\n\n    private isFirstGlobalQuotaFetch() {\n        return isFirstGlobalQuotaFetch;\n    }\n\n    // eslint-disable-next-line @typescript-eslint/unbound-method -- Leaving this alone to avoid causing problems\n    public fetch = throttle(flow(this._fetch), FETCH_THROTTLE); // throttle to every 3 minutes at most\n\n    @action\n    private *_fetch(): Generator<Promise<any>, void, SAM.IQuotaInfo> {\n        if (!this.refreshEnabled && this.maxCloudQuota !== undefined) {\n            // CDO/UAP shouldn't need to fetch after the first time, which is only used to establish\n            // if the account is cloud-disabled or not. SyncStatus will fetch continuously as needed\n            // when assets change\n            return;\n        }\n\n        // Assume that any in-flight request will return results that are fresh enough, so no\n        // need to queue another fetch, regardless of what prompted it.\n        if (this.fetchState === ProcessingState.Fetching) {\n            return;\n        }\n\n        this.fetchState = ProcessingState.Fetching;\n        yield when(() => this.isReady);\n\n        try {\n            this.logger.debug('fetching quota');\n            isFirstGlobalQuotaFetch = false;\n\n            const quotaData: SAM.IQuotaInfo = yield this.SAMAssetContext.getCloudQuotaUsedAndMax();\n            this.updateQuotaState(quotaData);\n\n            this.fetchState = ProcessingState.Done;\n            this.logger.debug('fetching quota succeeded');\n        } catch (error) {\n            let msg = 'Failed to fetch user quota data -- ';\n\n            if (error?.code === SAM.SAMErrorCode.INVALID_OPERATION) {\n                this.updateQuotaState({ used: 0, total: 0 });\n                msg = 'Error getting home directory for quota, assuming user storage is disabled';\n                this.fetchState = ProcessingState.Done;\n            } else {\n                this.fetchState = ProcessingState.Error;\n            }\n            this.logger.warn(msg, error);\n        }\n    }\n\n    @action\n    private updateQuotaState({ used, total }: SAM.IQuotaInfo) {\n        this.usedCloudQuota = used;\n        this.maxCloudQuota = total;\n\n        if (this.maxCloudQuota === 0) {\n            // Assuming when max is 0GB user is enterprise with cloud storage disabled. There aren't\n            // any ACPL notifications for this state, so this is the only way to determine it\n            this.logger.log('max quota 0, cloud storage disabled');\n            this.onNotificationStatusChange(NotificationStatus.CLOUD_STORAGE_DISABLED);\n        } else if (this.usedCloudQuota < this.maxCloudQuota) {\n            this.logger.log('quota available');\n            this.onNotificationStatusChange(NotificationStatus.QUOTA_AVAILABLE);\n        } else if (this.usedCloudQuota >= this.maxCloudQuota) {\n            this.logger.log('quota exceeded');\n            this.onNotificationStatusChange(NotificationStatus.QUOTA_EXCEEDED);\n        }\n    }\n\n    @action\n    public onNotificationStatusChange(status: NotificationStatus): void {\n        this.logger.debug('onNotificationStatusChange', status);\n        if (!QUOTA_STATES.includes(status) || this.quotaState === status) {\n            return;\n        }\n\n        this.quotaState = status as QuotaState;\n    }\n\n    @computed get isCloudStorageDisabled() {\n        return this.quotaState === NotificationStatus.CLOUD_STORAGE_DISABLED;\n    }\n\n    @computed get isSyncDisabled() {\n        return (\n            this.quotaState === NotificationStatus.QUOTA_EXCEEDED ||\n            this.quotaState === NotificationStatus.CLOUD_STORAGE_DISABLED\n        );\n    }\n}\nexport default QuotaStore;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport ChevronRight from '@react/react-spectrum/Icon/ChevronRight';\nimport Wait from '@react/react-spectrum/Wait';\nimport React from 'react';\nimport type { GenericTileView, Tile, TileButton } from './Tile';\n\nimport '../styles/GenericTile.css';\n\ninterface IGenericTileProps {\n    tile: Tile;\n    onClick?: (tileId: string) => void;\n}\n\nconst GenericTile = ({ tile, onClick }: IGenericTileProps) => {\n    const { id } = tile;\n    const { icon, title, body, progress, buttons = [] } = (tile.view as GenericTileView)();\n\n    const enterButton: TileButton = {\n        icon: <ChevronRight size=\"S\" />,\n        action: async () => {}, // handled by container div onClick\n    };\n    const canEnterTile = tile.subTiles?.tiles?.()?.length && !tile.subTiles?.disabled?.();\n\n    const allButtons = [...buttons, canEnterTile && enterButton].filter((b): b is TileButton =>\n        Boolean(b),\n    );\n\n    return (\n        // eslint-disable-next-line jsx-a11y/click-events-have-key-events -- TODO: Add keyboard support\n        <div\n            className=\"cdo-GenericTile\"\n            role=\"button\"\n            tabIndex={0}\n            onClick={() => canEnterTile && onClick?.(id)}\n        >\n            <div className=\"cdo-icon\">{icon}</div>\n            <div className=\"cdo-msg\">\n                <div className=\"cdo-title\">{title}</div>\n                {body && <div className=\"cdo-body\">{body}</div>}\n            </div>\n            {progress && (\n                <div className=\"cdo-spinner\">\n                    <Wait size=\"S\" />\n                </div>\n            )}\n            <div className=\"cdo-buttons\">\n                {allButtons.map((button, i) => (\n                    // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions -- TODO: Add keyboard support\n                    <div\n                        className=\"cdo-button\"\n                        onClick={() => {\n                            // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n                            button?.action();\n                        }}\n                        key={`button-${i}`}\n                    >\n                        {button?.icon}\n                    </div>\n                ))}\n            </div>\n        </div>\n    );\n};\n\nexport default GenericTile;\nexport { type IGenericTileProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport ChevronLeft from '@react/react-spectrum/Icon/ChevronLeft';\nimport { FormattedMessage } from 'react-intl';\nimport GenericTile from './GenericTile';\nimport { ErrorBoundary } from '@csc/collection-view';\n\nexport type GenericTileConfig = {\n    icon?: React.JSX.Element; // TODO: Support a `TileIcon` enum similar to CCD's `IconType`\n    title: string | React.JSX.Element; // To support <FormattedMessage />\n    body?: string | React.JSX.Element;\n    progress?: number; // If provided, renders a spinner instead of `icon`. Represents a percentage\n    buttons?: TileButton[];\n};\nexport type GenericTileView = () => GenericTileConfig;\nexport type TileView = GenericTileView | React.JSX.Element;\n\nexport type SubTile = Pick<Tile, 'id' | 'view'>;\nexport type SubTiles = {\n    disabled?: () => boolean;\n    header: string;\n    tiles: () => SubTile[];\n};\n\nexport interface Tile {\n    id: string;\n    view: TileView;\n    /** The highest-priority status between all Tiles will be used to determine the Cloud Icon and tooltip */\n    getStatus: () => {\n        status: TileStatus;\n        tooltip: string;\n        reasonSuffix?: string;\n    };\n    /**\n     * If provided, a chevron will be visible and expandable on the tile\n     * Supported when Tile view is GenericTileConfig\n     */\n    subTiles?: SubTiles;\n    /** called when you click on a tile and enter the subtiles view */\n    onEnter?: () => void;\n    /** called when exiting the subtiles view of this tile (including when the popdown is closed) */\n    onExit?: () => void;\n    /** called when the popdown is shown. does not apply to subtiles */\n    onShow?: () => void;\n    /** called when the popdown is hidden */\n    onHide?: () => void;\n}\n\nexport interface TileButton {\n    icon: React.JSX.Element; // We could expand this into a default set of\n    // 'button types' like CCD, but not sure if it's necessary\n    action: () => Promise<void>;\n}\n\n// In priority order. Each of these maps to a Cloud Icon, with some overlap.\nexport enum TileStatus {\n    Critical, // In case of events like SAM init failure, so any other statuses are unreliable\n    Offline,\n    Disabled,\n    Error,\n    Progress, // CCD uses this today while CC File are syncing\n    Paused, // CCD uses this today if you have syncing paused for CC Files\n    Default,\n}\n\nexport enum CloudIcon {\n    Error = 'ERROR',\n    Disconnected = 'DISCONNECTED',\n    /** TODO: Support for this will be added later */\n    SlowConnection = 'SLOW_CONNECTION',\n    Paused = 'PAUSED',\n    Progress = 'PROGRESS',\n    Cloud = 'CLOUD',\n}\n\nexport function highestPriorityStatus<T>(arr: T[], getStatus: (o: T) => TileStatus): T {\n    if (!arr?.length) {\n        /** This should never happen, but reduce() needs an initial value */\n        throw new Error('No statuses to determine priority status from');\n    }\n\n    /**\n     * Find the tile with the highest priority status (by finding the status which is\n     * numerically the lowest value due to how TS enums work).\n     *\n     * When multiple tiles have equal statuses, prefer the earliest tile.\n     * This way built-in tiles are prioritized\n     */\n    return arr.reduce(\n        (highest, current) => (getStatus(current) < getStatus(highest) ? current : highest),\n        arr[0],\n    );\n}\n\nexport function highestPriorityTile(tiles: Tile[]): Tile {\n    return highestPriorityStatus(tiles, (t) => t.getStatus().status);\n}\n\nexport function renderTiles(allTiles: Tile[], onClick: (tileId: string) => void) {\n    const errorMessage = (id: Tile['id']) => `Tile ${id} has failed to render`;\n\n    return (\n        <>\n            {allTiles?.map((tile) => {\n                const { id, view } = tile;\n\n                const render =\n                    typeof view === 'function' ? (\n                        <GenericTile tile={tile} onClick={onClick} />\n                    ) : (\n                        tile.view\n                    );\n\n                return (\n                    <ErrorBoundary message={errorMessage(id)} key={id}>\n                        {render}\n                    </ErrorBoundary>\n                );\n            })}\n        </>\n    );\n}\n\nexport function renderSubtiles(tile: Tile, onClick: (tileId: string) => void) {\n    const { onExit, subTiles } = tile;\n    return (\n        <div>\n            <div\n                className=\"cdo-CloudSyncStatus_itemsHeader\"\n                onClick={() => {\n                    onClick('');\n                    onExit?.();\n                }}\n                onKeyDown={(e) => {\n                    if (e.key === 'Enter') {\n                        onClick('');\n                        onExit?.();\n                    }\n                }}\n                role=\"button\"\n                tabIndex={0}\n            >\n                <ChevronLeft size=\"S\" className=\"cdo-linkIndicator\" />\n                {subTiles?.header && <FormattedMessage id={subTiles.header} />}\n            </div>\n            {subTiles?.tiles && renderTiles(subTiles.tiles() as Tile[], () => {})}\n        </div>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { action, observable, when } from 'mobx';\nimport type { IntlShape } from 'react-intl';\nimport { createIntl, createIntlCache } from 'react-intl';\nimport { importMessages as importAAVMessages } from '@csc/adobe-assets-view/dist/src/i18n';\nimport type { MessageLoader, FireflySupportedLocale } from '@csc/common';\nimport { localePolyfill } from '@csc/common';\nimport { Logger } from './Logger';\n\nconst DEFAULT_LANGUAGE = 'en';\n\nimport type Messages from '../../locale/en.json';\n\nexport type LocaleMessages = typeof Messages;\nexport type LocaleKey = keyof LocaleMessages;\n\nexport type SupportedLocale = FireflySupportedLocale;\n\nconst MESSAGE_LOADERS: Record<SupportedLocale, MessageLoader> = {\n    en: () => import('../../locale/en.json'),\n    bn: () => import('../../locale/bn.json'),\n    cs: () => import('../../locale/cs.json'),\n    cy: () => import('../../locale/cy.json'),\n    da: () => import('../../locale/da.json'),\n    de: () => import('../../locale/de.json'),\n    el: () => import('../../locale/el.json'),\n    es: () => import('../../locale/es.json'),\n    fi: () => import('../../locale/fi.json'),\n    fil: () => import('../../locale/fil.json'),\n    fr: () => import('../../locale/fr.json'),\n    hi: () => import('../../locale/hi.json'),\n    hu: () => import('../../locale/hu.json'),\n    id: () => import('../../locale/id.json'),\n    it: () => import('../../locale/it.json'),\n    ja: () => import('../../locale/ja.json'),\n    ko: () => import('../../locale/ko.json'),\n    ms: () => import('../../locale/ms.json'),\n    nb: () => import('../../locale/nb.json'),\n    nl: () => import('../../locale/nl.json'),\n    pl: () => import('../../locale/pl.json'),\n    pt: () => import('../../locale/pt.json'),\n    ro: () => import('../../locale/ro.json'),\n    ru: () => import('../../locale/ru.json'),\n    sv: () => import('../../locale/sv.json'),\n    ta: () => import('../../locale/ta.json'),\n    th: () => import('../../locale/th.json'),\n    tr: () => import('../../locale/tr.json'),\n    vi: () => import('../../locale/vi.json'),\n    uk: () => import('../../locale/uk.json'),\n    'zh-Hans': () => import('../../locale/zh-Hans.json'),\n    'zh-Hant': () => import('../../locale/zh-Hant.json'),\n    zu: () => import('../../locale/zu.json'),\n    zz: () => import('../../locale/zz.json'),\n};\n\nexport const SUPPORTED_LOCALES = Object.keys(MESSAGE_LOADERS);\n\nexport const importMessages = async (locale: SupportedLocale): Promise<LocaleMessages> => {\n    let loader = MESSAGE_LOADERS[locale];\n\n    if (!loader) {\n        console.warn('Unsupported locale', locale, \"falling back to 'en'\");\n        loader = MESSAGE_LOADERS.en;\n    }\n\n    const [, messages] = await Promise.all([localePolyfill(locale), loader()]);\n    return (messages as { default: LocaleMessages }).default;\n};\n\nconst APP_LOCALE_REMAPPING_TABLE: { [key: string]: string } = {\n    fil: 'fil',\n    fil_ph: 'fil',\n    zh_cn: 'zh-Hans',\n    zh_tw: 'zh-Hant',\n    // If a new locale with hyphens is supported earlier in this list, it must also have\n    // an entry in this table with the '_' below.  NormalizedLocale converts\n    // the locale to have an '_' and then searches this list\n    // and if not found truncates the locale to two letters.\n    // Otherwise zh-Hans could get clipped to be zh\n    // and there is no zh locale support at this time.\n    zh_hans: 'zh-Hans',\n    zh_hant: 'zh-Hant',\n};\n\n/**\n * Master string table container.\n */\nclass I18NCDO {\n    static async getLazyStringsForLocale(\n        locale: SupportedLocale,\n    ): Promise<{ [id: string]: string }> {\n        return await importMessages(locale);\n    }\n\n    static getSupportedSystemLocale(locale: string): string {\n        const languageCode = this.normalizeLocale(locale);\n        if (SUPPORTED_LOCALES.includes(languageCode)) {\n            return languageCode;\n        }\n        return DEFAULT_LANGUAGE;\n    }\n\n    /**\n     * Get the locale mapped to a supported one.\n     *\n     * @param {String} locale     locale specifier\n     * @return {String} with the remapped locale code if necessary.\n     */\n    static normalizeLocale(locale: string = DEFAULT_LANGUAGE): SupportedLocale {\n        const lower = locale?.toLowerCase();\n        // CDO mainly supports two-character locales ('en', 'es', 'ru', etc) but also\n        // supports some hyphenated (flavored) locales ('zh-Hans', etc).\n        //\n        // react-intl appears to be using this standard\n        // https://www.unicode.org/reports/tr35/tr35.html#Identifiers\n        //\n        // Any unexpected variants of 'en' get mapped to 'en'.\n        // What isn't currently supported is truncating variants of\n        // hyphenated locales.  So if, per the standard, a locale is\n        // passed in like zh-Hant-HK it will not be normalized to\n        // zh-Hant\n        const [main, variant, _subvariant] = lower.split('-');\n        const remapped =\n            APP_LOCALE_REMAPPING_TABLE[lower] ??\n            APP_LOCALE_REMAPPING_TABLE[lower.replace(/-/g, '_')] ??\n            APP_LOCALE_REMAPPING_TABLE[`${main}_${variant}`] ??\n            APP_LOCALE_REMAPPING_TABLE[DEFAULT_LANGUAGE];\n\n        const normalized = remapped || lower.substring(0, 2);\n\n        // default to english in case of errors\n        if (!normalized || !normalized.length) {\n            return DEFAULT_LANGUAGE;\n        }\n        return normalized as SupportedLocale;\n    }\n\n    /**\n     * Get locale for external helpx/web links based on UI locale setting.\n     *\n     * @param {String} uiLocale       UI's language display\n     * @return {String} with the abbreviated locale id.\n     */\n    static getExternalLinkLocale(uiLocale: string): string {\n        // for Chinese variants, just set 'cn'\n        return uiLocale.startsWith('zh') ? 'cn' : this.getSupportedSystemLocale(uiLocale);\n    }\n\n    static isMessageDefined(intl: IntlShape, id: string): boolean {\n        return intl && Object.prototype.hasOwnProperty.call(intl.messages, id);\n    }\n\n    /**\n     * Returns product-specific message id if it exists, or the default id if it exists,\n     * or empty string if none exists.\n     *\n     * @param {IntlShape} intl\n     * @param {string} id\n     * @param {string} productId\n     * @returns {string} the message id, or empty string if none found\n     */\n    static getApplicationSpecificMsgId(intl: IntlShape, id: string, productId: string): string {\n        const productMsgId = `${id}.${productId.toLowerCase()}`;\n        if (I18NCDO.isMessageDefined(intl, productMsgId)) {\n            return productMsgId;\n        }\n        if (I18NCDO.isMessageDefined(intl, id)) {\n            return id;\n        }\n        return '';\n    }\n}\n\nclass IntlStore {\n    @observable public loaded: boolean;\n    @observable public setLocaleCalled: boolean;\n    @observable public intl: IntlShape;\n    @observable public locale: SupportedLocale;\n    @observable didIntlLoadingFail: boolean = false;\n\n    private logger: Logger = new Logger(`CDO_${this.constructor.name}`);\n    private cachedMessages: { [id: string]: string } = {};\n\n    @action async setLocale(locale: string, msgs?: { [id: string]: string }) {\n        // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-base-to-string -- TODO: Check if this is logging objects correctly\n        this.logger.debug(`setLocale: ${locale}, ${msgs}`);\n        this.loaded = false;\n        this.didIntlLoadingFail = false;\n        this.locale = I18NCDO.normalizeLocale(locale);\n        this.setLocaleCalled = true;\n        this.cachedMessages = { ...this.cachedMessages, ...(msgs ?? {}) };\n\n        try {\n            const [cdoMessages, aavMessages] = await Promise.all([\n                I18NCDO.getLazyStringsForLocale(this.locale),\n                importAAVMessages(this.locale),\n            ]);\n            const messages = {\n                ...aavMessages,\n                ...cdoMessages,\n                ...this.cachedMessages,\n            };\n\n            this.intl = createIntl({ locale: this.locale, messages }, createIntlCache());\n            // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-base-to-string -- TODO: Check if this is logging objects correctly\n            this.logger.debug(`intl created: ${this.intl}`);\n            this.loaded = true;\n        } catch (e) {\n            this.logger.debug(`Error loading locale ${this.locale}`, e);\n            this.didIntlLoadingFail = true;\n            throw e;\n        }\n    }\n\n    private setIntlForTests(intl: IntlShape) {\n        this.intl = intl;\n        this.loaded = true;\n    }\n\n    async waitForLoaded() {\n        if (this.didIntlLoadingFail) {\n            return false;\n        }\n        await when(() => this.loaded);\n        return true;\n    }\n}\nlet intlStore = new IntlStore();\n\nlet internalForTests;\nif (process.env.NODE_ENV === 'test') {\n    internalForTests = {\n        SUPPORTED_LOCALES,\n        resetIntlStore: () => (intlStore = new IntlStore()),\n    };\n}\nexport default I18NCDO;\nexport { internalForTests, intlStore, IntlStore };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { observer } from 'mobx-react';\nimport React, { cloneElement } from 'react';\nimport { RawIntlProvider } from 'react-intl';\nimport { intlStore } from '../utils/i18n';\n\n/**\n * This component abstracts react-intl's provider into an easy-to-use wrapper for placing an intl\n * context anywhere in your app without having to import intl or translation message objects.\n * react-intl's context normally works out of the box by placing an IntlProvider at the top of your\n * app, however overlays in react-spectrum v2 disrupt the context passing mechanism due to their use\n * of `unstable_renderSubtreeIntoContainer` which is deprecated and lacks support for the new\n * context API (https://github.com/facebook/react/issues/16721#issuecomment-529815485)\n *\n * This bug was reported to the React Spectrum team, and they declined to accept a fix:\n * https://git.corp.adobe.com/React/react-spectrum-v2/issues/761\n *\n * Moving forward in order to support translation in overlaid elements, developers can splice an\n * <IntlWrapper> component between the OverlayTrigger component and the overlay child needing\n * translation.\n *\n * @example An OverlayTrigger / Tooltip implementation\n * NOTE: Child component sequence is important in RS2. The first component inside OverlayTrigger\n * is the element that listens for the action which would trigger an overlay, AKA the `triggerChild`.\n * The second component (`overlayChild`) represents the UI that will be shown when the trigger\n * condition is met.\n *\n * The context bug only affects the overlayChild, so it's contained in an <IntlWrapper> seen below\n *\n * <OverlayTrigger trigger={['hover]}>\n *     <Button><FormattedMessage id=\"button.hoverMe\" /></Button>\n *     <IntlWrapper>\n *         <Tooltip>\n *             <FormattedMessage id=\"translated.string.id\" />\n *         </Tooltip>\n *     </IntlWrapper>\n * </OverlayTrigger>\n */\nexport const IntlWrapper = observer((props) => {\n    const { children, intl, ...otherProps } = props;\n    return (\n        <RawIntlProvider value={intl ?? intlStore.intl}>\n            {cloneElement(children, otherProps)}\n        </RawIntlProvider>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nexport const ADOBE_SERVICE_ENDPOINTS = {\n    hosts: {\n        prod: {\n            search: 'adobesearch.adobe.io',\n            storage: 'cc-api-storage.adobe.io',\n        },\n        stage: {\n            search: 'adobesearch-stage.adobe.io',\n            storage: 'cc-api-storage-stage.adobe.io',\n        },\n    },\n    protocol: 'https',\n};\n\nexport const DEFAULTS = {\n    LOCALE: 'en',\n    MESSAGES: {},\n    SERVICE_ENVIRONMENT: 'stage', // default service API environment\n};\n\nexport const CANVAS_MIMETYPE = 'application/vnd.adobe.hz.canvas+dcx';\nexport const EXPRESS_MIMETYPE = 'application/vnd.adobe.hz.express+dcx';\nexport const EXPRESS_PAGE_MIMETYPE = 'application/vnd.adobe.hztemp.page+dcx';\nexport const FOLDER_MIMETYPE = 'application/vnd.adobe.directory+json';\nexport const RAPI_FOLDER_MIMETYPE = 'application/vnd.adobecloud.directory+json';\nexport const FIREFLY_STYLE_KIT_MIMETYPE = 'application/vnd.adobe.firefly-template+dcx';\nexport const FIREFLY_RECIPE_MIMETYPE = 'application/vnd.adobe.firefly-recipe+dcx';\nexport const FIREFLY_MIMETYPES = [FIREFLY_STYLE_KIT_MIMETYPE, FIREFLY_RECIPE_MIMETYPE];\nexport const USDCX_PROJECT_MIMETYPE = 'application/vnd.adobe.usdcx+dcx';\nexport const USDCX_ASSET_MIMETYPE = 'application/vnd.adobe.usdcx.asset+dcx';\nexport const USDCX_MIMETYPES = [USDCX_PROJECT_MIMETYPE, USDCX_ASSET_MIMETYPE];\nexport const FOLDER_MIMETYPES = [FOLDER_MIMETYPE, RAPI_FOLDER_MIMETYPE];\nexport const CLOUD_ONLY_MIMETYPES = [CANVAS_MIMETYPE, EXPRESS_MIMETYPE, EXPRESS_PAGE_MIMETYPE];\n\nexport const DEFAULT_TOOLTIP_DELAY = 500;\nexport const SAMLIST_REFRESH_INTERVAL = 60000;\n\nexport const INGEST_PROJECT_VALUE = 'cdo-service';\n\nexport const MAX_RECENTS = 15;\n\n// matching Assets Web 'BYTE_CONVERSION_BASE'\n// (https://git.corp.adobe.com/CCX/assets/blob/kodiak/src/utils/byteConversion.tsx)\nexport const BYTE_CONVERSION_BASE = 1024;\n\n/**\n * The setTimeout amount for this component.\n */\nexport const MINIMUM_ACCEPTED_TIMEOUT = 100;\n\nexport const FOCUS_ITEM_CLASS = 'cdo-focusItem';\nexport const ENTER_KEY_CODE = 13;\nexport const SPACE_KEY_CODE = 32;\n\nexport enum EmptyViewType {\n    unfilteredEmpty = 'trueEmpty', // no assets, including unfiltered MIME types\n    filteredEmpty = 'empty', // no filtered assets displayed, but user has other assets that are filtered by MIME type\n}\n\n/* host app theme type as per spectrum-web-components*/\nexport enum ThemeTypes {\n    spectrum = 'spectrum',\n    spectrumTwo = 'spectrum-two',\n    express = 'express',\n}\n\n/* UI component scale value as per spectrum-web-components */\nexport enum Scales {\n    medium = 'medium',\n    large = 'large',\n}\n\n/* SAM log levels */\nexport enum SAMLogLevel {\n    Off,\n    Medium,\n    High,\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport SpectrumProvider from '@react/react-spectrum/Provider';\nimport CoreSpectrumProvider from '@ccx-public/spectrum-wrapper/dist/Provider';\n\nimport { IntlWrapper } from '../contexts/IntlWrapper';\nimport type { Tile } from './Tile';\nimport { renderSubtiles, renderTiles } from './Tile';\nimport type { ICommonCDCConfiguration } from '../stores/CDCGlobalStore';\nimport type CDCGlobalStore from '../stores/CDCGlobalStore';\nimport { getCDCGlobalStore, getExistingCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport type { Themes } from '@csc/common';\nimport { Scales, ThemeTypes } from '../utils/constants';\nimport type { GlobalProps } from './tiles/global';\nimport type CloudStatusStore from '../stores/CloudStatusStore';\n\nimport '../styles/CloudSyncStatus.css';\n\nexport const CLOUD_SYNC_STATUS_INGEST_SUBCATEGORY = 'Cloud Sync Status';\n\nexport enum CloudSyncType {\n    GLOBAL = 'global',\n}\n\ninterface BaseCloudSyncStatusProps {\n    callbacks?: AssetBrowser.CDO.ICloudSyncStatusCallbacks;\n    type?: CloudSyncType;\n    theme: Themes;\n    themeType?: ThemeTypes;\n    scale?: Scales;\n    tiles?: Tile[];\n    width?: number;\n    onDialogStateChange?: (newState: boolean) => void;\n}\n\nexport type ICloudSyncStatusPopdownProps = ICommonCDCConfiguration &\n    BaseCloudSyncStatusProps &\n    GlobalProps;\n\ntype ICloudSyncStatusPopdownState = {\n    currentTileId: string;\n    cloudStore: CloudStatusStore | null;\n};\n\n@observer\nexport default class CloudSyncStatusPopdown extends React.Component<\n    ICloudSyncStatusPopdownProps,\n    ICloudSyncStatusPopdownState\n> {\n    static defaultProps = {\n        tiles: [] as Tile[],\n        callbacks: {},\n        type: CloudSyncType.GLOBAL,\n        onDialogStateChange: () => {},\n    };\n\n    constructor(props: ICloudSyncStatusPopdownProps) {\n        super(props);\n        this.state = {\n            currentTileId: '',\n            cloudStore: null,\n        };\n    }\n\n    componentDidMount(): void {\n        const { tiles } = this.props;\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        getExistingCDCGlobalStore()?.cloudStore?.setExternalTiles(undefined, tiles ?? []);\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        this.onShow();\n    }\n\n    componentDidUpdate(prevProps: Readonly<ICloudSyncStatusPopdownProps>): void {\n        const { tiles: prevTiles } = prevProps;\n        const { tiles } = this.props;\n\n        // Watch for prop updates to make sure we reset our monitoring to no longer monitor\n        // tiles that don't exist anymore and start monitoring new tiles passed to us\n\n        // new tiles that weren't previously passed to us\n        const newTiles = (tiles ?? []).filter((tile) => !prevTiles?.find((t) => t.id === tile.id));\n        // tiles which we used to have passed to us but no longer do\n        const goneTiles = (prevTiles ?? []).filter((tile) => !tiles?.find((t) => t.id === tile.id));\n\n        if (!newTiles.length && !goneTiles.length) {\n            // if our tiles are the same as before, do nothing. we're already monitoring\n            return;\n        }\n\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        getExistingCDCGlobalStore()?.cloudStore?.setExternalTiles(undefined, tiles ?? []);\n    }\n\n    componentWillUnmount(): void {\n        this.onHide();\n    }\n\n    get globalStore(): CDCGlobalStore {\n        const { hostProductData, imsData } = this.props;\n        return getCDCGlobalStore({\n            hostProductData: hostProductData,\n            imsData: imsData,\n        });\n    }\n\n    @computed get allTiles(): Tile[] {\n        const { callbacks } = this.props;\n        return (\n            getExistingCDCGlobalStore()?.cloudStore?.getAllTiles(undefined, {\n                callbacks:\n                    callbacks ??\n                    ({\n                        onOpenExternalLink: () => Promise.resolve(),\n                    } satisfies AssetBrowser.CDO.ICloudSyncStatusCallbacks),\n                onClickTile: this.handleToggle,\n                getCurrentTile: () => this.currentTile ?? ({} as Tile),\n            }) ?? []\n        );\n    }\n\n    @computed get currentTile() {\n        const { currentTileId } = this.state;\n        return this.allTiles?.find((tile) => tile.id === currentTileId);\n    }\n\n    logViewMetric() {\n        const { currentTileId } = this.state;\n        this.globalStore.cdoMetrics.fireEvent({\n            event: {\n                subcategory: CLOUD_SYNC_STATUS_INGEST_SUBCATEGORY,\n                type: 'view',\n                subtype: currentTileId || 'main',\n            },\n        });\n    }\n\n    handleToggle = (tileId: string) => {\n        this.setState({ currentTileId: tileId }, () => {\n            this.logViewMetric();\n        });\n    };\n\n    onHide = () => {\n        const { onDialogStateChange } = this.props;\n\n        this.currentTile?.onExit?.();\n        this.allTiles?.forEach((tile) => tile.onHide?.());\n\n        onDialogStateChange?.(false);\n    };\n\n    onShow = async () => {\n        const { onDialogStateChange } = this.props;\n        onDialogStateChange?.(true);\n\n        this.allTiles?.forEach((tile) => tile.onShow?.());\n        const cdoMetrics = this.globalStore.cdoMetrics;\n        cdoMetrics.fireEvent({\n            event: {\n                subcategory: CLOUD_SYNC_STATUS_INGEST_SUBCATEGORY,\n                type: 'open',\n            },\n        });\n        this.logViewMetric();\n    };\n\n    render() {\n        // TODO: https://jira.corp.adobe.com/browse/CCXCD-6188\n        // CloudSyncStatus messaging/icon does not match doc when a document is pending sync\n        const { theme, themeType, scale, width } = this.props;\n\n        const providerProps = {\n            theme: theme,\n            spectrumTheme: themeType ?? ThemeTypes.spectrum,\n            scale: scale ?? Scales.medium,\n        };\n\n        const tiles = this.currentTile\n            ? renderSubtiles(this.currentTile, this.handleToggle)\n            : renderTiles(this.allTiles, this.handleToggle);\n\n        return (\n            <div className=\"cdo-CloudSyncStatus_popdown\" style={{ width: width ?? 'auto' }}>\n                <IntlWrapper>\n                    {theme ? (\n                        // Once we have migrated all RSv2 to come from spectrum-wrapper the double providers should be collapsed\n                        <CoreSpectrumProvider {...providerProps}>\n                            <SpectrumProvider {...providerProps}>{tiles}</SpectrumProvider>\n                        </CoreSpectrumProvider>\n                    ) : (\n                        tiles\n                    )}\n                </IntlWrapper>\n            </div>\n        );\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IntlShape } from 'react-intl';\n\nimport { BYTE_CONVERSION_BASE } from './constants';\n\nconst platform = global && global.process && global.process.platform;\n\n/**\n * Simple utility container.\n */\nclass Utils {\n    /**\n     * Function to return the correct file path separator based on OS.\n     *\n     * @returns {String} value of the query param\n     */\n    static getPlatformPathSeparator() {\n        return platform === 'win32' ? '\\\\' : '/';\n    }\n\n    /**\n     * Function to return the value of a requested query param.\n     *\n     * @param {String} name      containing the name of the query param\n     * @returns {String} value of the query param\n     */\n    static getParameterByName(name: string) {\n        if (!window.location) {\n            return null;\n        }\n        const url = window.location.href;\n        const curName = name.replace(/[[\\]]/g, '\\\\$&');\n        const regex = new RegExp(`[?&]${curName}(=([^&#]*)|&|#|$)`);\n        const results = regex.exec(url);\n\n        if (!results) {\n            return null;\n        }\n\n        return results[2] ? decodeURIComponent(results[2].replace(/\\+/g, ' ')) : '';\n    }\n\n    /**\n     * Replace specified occurances of a pattern in a templated string.\n     *\n     * @param {String} template \ttemplated format string\n     * @param {Object} replaceMap \tkey/val map of replacements\n     * @return {String} representing the formatted string\n     */\n    static replaceInTemplateString(template: string, replaceMap: { [key: string]: string }) {\n        const regex = new RegExp(Object.keys(replaceMap).join('|'), 'gi');\n\n        return template.replace(regex, (matched) => replaceMap[matched]);\n    }\n\n    /**\n     * Convert the file size into a formatted size object.\n     *\n     * @param {Number} isize  integer value of file size\n     * @param intl\n     * @return {object} the formatted size and MB/GB/KB etc. specifier\n     */\n    static formatFileSize(\n        isize: number | undefined,\n        intl: IntlShape,\n    ): { displayValue: string; value: number; abbrev: string } {\n        const sizeAbbrev = [\n            'abbreviations.fileSize.byte',\n            'abbreviations.fileSize.kilobyte',\n            'abbreviations.fileSize.megabyte',\n            'abbreviations.fileSize.gigabyte',\n            'abbreviations.fileSize.terabyte',\n        ];\n        // Round B, KB, MB, GB, TB size numbers to 0, 0, 1, 2, 3 decimal place(s) respectively.\n        const precision = [0, 0, 1, 2, 3];\n\n        if (isize === undefined) {\n            return { displayValue: 'NaN', value: NaN, abbrev: '–' };\n        }\n\n        const index = isize > 0 ? Math.floor(Math.log(isize) / Math.log(BYTE_CONVERSION_BASE)) : 0;\n        const multiplier = 10 ** (precision[index] || 0);\n        const value = Math.round((isize / BYTE_CONVERSION_BASE ** index) * multiplier) / multiplier;\n        const abbrev = intl.formatMessage({ id: `${sizeAbbrev[index]}` });\n        const displayValue = intl.formatNumber(value);\n\n        return { displayValue, value, abbrev };\n    }\n\n    static formatFileSizeDisplay(elementSize: number | undefined, intl: IntlShape): string {\n        const { displayValue, abbrev } = this.formatFileSize(elementSize, intl);\n\n        return elementSize !== undefined ? `${displayValue} ${abbrev}` : `${abbrev}`;\n    }\n\n    /**\n     * Create a new url by appending a string to the current path.\n     *\n     * @param  {string} path       current path\n     * @param  {string} addString  appended string\n     * @returns string\n     */\n    static createUrlString(path: string, addString: string): string {\n        return path.endsWith('/') ? `${path}${addString}` : `${path}/${addString}`;\n    }\n\n    /**\n     * Determine if we're currently running on UXP\n     * @returns {boolean}\n     */\n    static usingUXP() {\n        return Boolean(window.navigator.userAgent.indexOf('UXP') > -1);\n    }\n\n    static getResizeElement() {\n        // UXP currently does not bubble up the resize event to the window but\n        // it does dispatch the event to every DOM node up to document.\n        return Utils.usingUXP() ? document : window;\n    }\n\n    static formatLongDateTime(date: Date, intl: IntlShape): string {\n        return intl.formatDate(date, {\n            month: 'numeric',\n            day: 'numeric',\n            year: 'numeric',\n            hour: 'numeric',\n            minute: 'numeric',\n        });\n    }\n\n    /**\n     * Used to sanitize urls to get rid of the protocol and decode it\n     * @param path Path that XD gives us from recents search.\n     * @param protocolToRemove The protocol to remove from the URL for example xdcloud:///\n     */\n    static sanitizeCloudDocPath(path: string, protocolToRemove: string): string {\n        return decodeURIComponent(path.replace(protocolToRemove, ''));\n    }\n\n    static extractUrn(url: string): string {\n        if (!url) {\n            return '';\n        }\n        try {\n            const { pathname: path } = new URL(url);\n            const urnPosition = path.indexOf('urn');\n            return urnPosition === -1 ? '' : path.slice(urnPosition);\n        } catch (_) {\n            return '';\n        }\n    }\n\n    static filterBooleanAttributes<T extends Record<string, unknown>>(attributes: T): Partial<T> {\n        const result: Partial<T> = {};\n        for (const key in attributes) {\n            if (attributes[key] && attributes[key] !== 'false') {\n                result[key] = attributes[key];\n            }\n        }\n        return result;\n    }\n}\n\nexport default Utils;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_ICON_SIZE = 18;\n\nconst CheckmarkCircle = ({\n    height = DEFAULT_ICON_SIZE,\n    width = DEFAULT_ICON_SIZE,\n    className = '',\n    primaryColor = '#fff',\n    secondaryColor = '#2b9d7a',\n}) => (\n    <svg\n        xmlns=\"http://www.w3.org/2000/svg\"\n        className={classNames('cdo-CheckmarkCircle', className)}\n        width={width}\n        height={height}\n        viewBox={`0 0 ${width} ${height}`}\n    >\n        <circle fill={primaryColor} cx=\"9\" cy=\"9\" r=\"8.95\" />\n        <path\n            fill={secondaryColor}\n            className=\"cdo-a\"\n            d=\"M9,1a8,8,0,1,0,8,8A8,8,0,0,0,9,1Zm5.333,4.54L8.009,13.6705a.603.603,0,0,1-.4375.2305H7.535a.6.6,0,0,1-.4245-.1755L3.218,9.829a.6.6,0,0,1-.00147-.84853L3.218,8.979l.663-.6625A.6.6,0,0,1,4.72953,8.315L4.731,8.3165,7.4,10.991l5.257-6.7545a.6.6,0,0,1,.8419-.10586L13.5,4.1315l.7275.5685A.6.6,0,0,1,14.333,5.54Z\"\n        />\n    </svg>\n);\n\nexport default CheckmarkCircle;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ReactElement } from 'react';\nimport React, { PureComponent } from 'react';\nimport Wait from '@react/react-spectrum/Wait';\nimport ArrowUp from '@react/react-spectrum/Icon/ArrowUp';\nimport ArrowDown from '@react/react-spectrum/Icon/ArrowDown';\n\nimport { SyncStatus, SyncDirection } from '../stores/AssetSyncStateStore';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { injectIntl, FormattedMessage } from 'react-intl';\nimport Utils from '../utils/utils';\n\nimport CheckmarkCircle from './svgs/CheckmarkCircle';\nimport '../styles/ItemSyncStatus.css';\n\ninterface ItemSyncStatusProps {\n    status: SyncStatus;\n    name: string;\n    bytesTransferred?: number;\n    bytesTotal?: number;\n    transferDirection: SyncDirection;\n}\n\nclass ItemSyncStatus extends PureComponent<ItemSyncStatusProps & WrappedComponentProps> {\n    get statusIcon(): ReactElement {\n        const { status } = this.props;\n        switch (status) {\n            case SyncStatus.syncing:\n                return <Wait size=\"S\" className=\"cdo-syncingIndicator\" />;\n            default:\n                return <CheckmarkCircle className=\"cdo-syncingIndicator\" />;\n        }\n    }\n\n    renderStatusMessage(status: SyncStatus) {\n        const { bytesTransferred, bytesTotal, transferDirection, intl } = this.props;\n        const bytesTransferredString = Utils.formatFileSizeDisplay(bytesTransferred, intl);\n        const bytesTotalString = Utils.formatFileSizeDisplay(bytesTotal, intl);\n        const isSyncing = status === SyncStatus.syncing;\n\n        // item complete status\n        let syncMsg: any = <FormattedMessage id=\"cloudsync.item.complete\" />;\n        // item syncing status\n        if (isSyncing) {\n            const hasProgress = bytesTransferred !== undefined && bytesTotal !== undefined;\n            syncMsg = hasProgress ? (\n                <FormattedMessage\n                    id=\"cloudsync.item.progress.determinate\"\n                    values={{ progress: bytesTransferredString, total: bytesTotalString }}\n                />\n            ) : (\n                <FormattedMessage id=\"cloudsync.item.progress.indeterminate\" />\n            );\n        }\n\n        let syncArrow;\n        if (transferDirection === SyncDirection.UPLOAD) {\n            syncArrow = <ArrowUp size=\"XS\" />;\n        } else if (transferDirection === SyncDirection.DOWNLOAD) {\n            syncArrow = <ArrowDown size=\"XS\" />;\n        }\n        return (\n            <div className=\"cdo-ItemSyncStatus_syncStatus\">\n                {isSyncing && <div className=\"cdo-icon\">{syncArrow}</div>}\n                <div className=\"cdo-message\">{syncMsg}</div>\n            </div>\n        );\n    }\n\n    render() {\n        const { status, name } = this.props;\n\n        return (\n            <div className=\"cdo-ItemSyncStatus\">\n                {this.statusIcon}\n                <div className=\"cdo-ItemSyncStatus_info\">\n                    <div className=\"cdo-ItemSyncStatus_name\">{name}</div>\n                    {this.renderStatusMessage(status)}\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default injectIntl(ItemSyncStatus);\nexport { type ItemSyncStatusProps, ItemSyncStatus as ItemSyncStatusForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_ICON_SIZE = 18;\n\nconst CheckmarkCircleBorderless = ({\n    height = DEFAULT_ICON_SIZE,\n    width = DEFAULT_ICON_SIZE,\n    className = '',\n    primaryColor = '#fff',\n    secondaryColor = '#2b9d7a',\n}) => (\n    <svg\n        xmlns=\"http://www.w3.org/2000/svg\"\n        className={classNames('cdo-CheckmarkCircle', className)}\n        width={width}\n        height={height}\n        viewBox={`0 0 ${width} ${height}`}\n    >\n        <path fill={secondaryColor} d=\"M9,1a8,8,0,1,0,8,8A8.00007,8.00007,0,0,0,9,1Z\" />\n        <path\n            fill={primaryColor}\n            d=\"M7.62024,13.18327,4.15377,9.7637a.5.5,0,0,1-.00485-.70706l.7021-.71186a.5.5,0,0,1,.70712-.00486l2.26754,2.23674,4.23091-5.42075a.5.5,0,0,1,.70183-.08648l.78793.61511a.5.5,0,0,1,.08648.70176L8.36553,13.135A.5.5,0,0,1,7.62024,13.18327Z\"\n        />\n    </svg>\n);\n\nexport default CheckmarkCircleBorderless;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport Wait from '@react/react-spectrum/Wait';\nimport { FormattedMessage } from 'react-intl';\n\nimport type AssetSyncStateStore from '../../stores/AssetSyncStateStore';\nimport { SyncDirection } from '../../stores/AssetSyncStateStore';\nimport ItemSyncStatus from '../ItemSyncStatus';\nimport CheckmarkCircleBorderless from '../svgs/CheckmarkCircleBorderless';\nimport type { GenericTileConfig, Tile } from '../Tile';\nimport { TileStatus } from '../Tile';\nimport type CloudStatusStore from '../../stores/CloudStatusStore';\nimport { getTileStatus } from '../../stores/CloudStatusStore';\n\nconst statusMap: {\n    [key: string]: {\n        suffix: string;\n        showBody: boolean;\n        icon?: React.JSX.Element;\n    };\n} = {\n    [TileStatus.Critical]: {\n        suffix: 'disabled',\n        showBody: true,\n        icon: undefined,\n    },\n    [TileStatus.Disabled]: {\n        suffix: 'disabled',\n        showBody: true,\n        icon: undefined,\n    },\n    [TileStatus.Error]: {\n        suffix: 'disabled',\n        showBody: true,\n        icon: undefined,\n    },\n\n    [TileStatus.Offline]: {\n        suffix: 'offline',\n        showBody: true,\n        icon: undefined,\n    },\n    [TileStatus.Progress]: {\n        suffix: 'syncing',\n        showBody: true,\n        icon: <Wait size=\"S\" />,\n    },\n    [TileStatus.Default]: {\n        suffix: 'complete',\n        showBody: false,\n        icon: <CheckmarkCircleBorderless />,\n    },\n};\n\nexport default function cloudDocsSyncingTileFactory({\n    onClickTile,\n    getCurrentTile,\n    assetSyncStateStore,\n    cloudStore,\n}: {\n    onClickTile: (id: string) => void;\n    getCurrentTile?: () => Tile;\n    assetSyncStateStore: AssetSyncStateStore;\n    cloudStore: CloudStatusStore;\n}): Tile {\n    const getStatus = () => {\n        const statuses = [cloudStore.getCloudStatus(), cloudStore.getCloudDocsSyncingStatus()];\n        return getTileStatus(\n            cloudStore.intl,\n            statuses.filter((s) => !!s),\n        );\n    };\n\n    const { allAssets, syncingAssets, finishedAssets } = cloudStore;\n    const view = (): GenericTileConfig => {\n        const { suffix, showBody, icon } = statusMap[getStatus()?.status ?? TileStatus.Default];\n        const ROOT = 'cloudsync.status';\n        const LOCALE_BASE = `${ROOT}.${suffix}`;\n\n        const title = <FormattedMessage id={`${LOCALE_BASE}.title`} />;\n        const body = (\n            <FormattedMessage\n                id={`${LOCALE_BASE}.descr`}\n                values={{ progress: finishedAssets.length, total: allAssets.length }}\n            />\n        );\n\n        return {\n            title,\n            icon,\n            body: showBody ? body : undefined,\n        };\n    };\n\n    const clearCompletedAssets = () => cloudStore.clearCompletedAssets();\n\n    const TILE_ID = 'syncing-assets';\n    return {\n        id: TILE_ID,\n        view,\n        getStatus: () =>\n            getStatus() ?? {\n                status: TileStatus.Default,\n                tooltip: `idk.default`,\n            },\n        subTiles: {\n            disabled: () => !syncingAssets.length,\n            header: cloudStore.intl.formatMessage({ id: 'cloudsync.items.header' }),\n            tiles: () =>\n                allAssets.map((a) => ({\n                    id: a.cloudAssetId ?? '',\n                    view: (\n                        <ItemSyncStatus\n                            status={a.syncStatus}\n                            name={a.assetRef.displayName}\n                            key={a.assetRef.displayName}\n                            bytesTransferred={a.bytesTransferred}\n                            bytesTotal={a.bytesTotal}\n                            transferDirection={a.transferDirection ?? SyncDirection.UPLOAD}\n                        />\n                    ),\n                })),\n        },\n        onExit: clearCompletedAssets,\n        onShow: () => {\n            // if we're showing the syncing assets while the last one times out, we need to close it\n            // so we don't have an empty list of subtiles\n            assetSyncStateStore.subscribe('onAssetSyncTimeout', TILE_ID, () => {\n                if (allAssets.length === 1 && getCurrentTile?.()?.id === TILE_ID) {\n                    // exit the subTiles view\n                    onClickTile('');\n                }\n            });\n            // clear any items that completed between now and the last time sync status closed\n            // so we don't display a leftover item for every sync that's happened between then and now\n            clearCompletedAssets();\n        },\n        onHide: () => {\n            // cleanup\n            assetSyncStateStore.unsubscribe('onAssetSyncTimeout', TILE_ID);\n        },\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { getLocalizedURL } from '@intl/adobe-locales';\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\nconst HELPX = 'https://helpx.adobe.com';\nconst GOURL = 'https://www.adobe.com/go';\nconst GOURL_LOCALEMAP = {\n    'zh-hans': 'zh-Hans',\n    'zh-hant': 'zh-Hant',\n};\nfunction mapGoURLLocale(locale: string): string {\n    const mappedLocale = GOURL_LOCALEMAP[locale] ?? locale;\n    return mappedLocale;\n}\nexport const ASSETS_WEB = {\n    stage: 'https://assets-stage.adobecc.com',\n    prod: 'https://assets.adobe.com',\n};\nexport function permDeleteWarningUrl(locale: string) {\n    const localizedUrl = localizedGoUrl(`/deleted-files-retention`, locale);\n    return localizedUrl;\n}\n\nexport function cloudDocsFaqUrl(locale: string, productName: string) {\n    const product = productName.toLowerCase();\n    const localizedURL = getLocalizedURL(\n        `${HELPX}/${product}/using/cloud-documents-faq.html`,\n        locale,\n    );\n    return localizedURL;\n}\n\nexport function cloudDocsHelpUrl(locale: string, productName: string) {\n    const product = productName.toLowerCase();\n    return getLocalizedURL(`${HELPX}/${product}/help/cloud-documents.html`, locale);\n}\n\nexport function cloudDocsFaqGoUrl(goUrlJumpToken: string) {\n    return `${GOURL}/${goUrlJumpToken}`;\n}\n\nexport function knownIssuesUrl(locale: string, hostProductData: AssetBrowser.ICDOHostProductData) {\n    const { knownIssuesLink, productName } = hostProductData;\n    if (knownIssuesLink) {\n        if (knownIssuesLink.startsWith(GOURL)) {\n            return knownIssuesLink;\n        }\n\n        return getLocalizedURL(knownIssuesLink, locale);\n    }\n\n    const product = productName?.toLowerCase();\n    const localizedURL = getLocalizedURL(\n        `${HELPX}/${product}/kb/known-issues.html#Clouddocuments`,\n        locale,\n    );\n\n    return localizedURL;\n}\n\nexport function localizedGoUrl(\n    baseToken: string,\n    locale: string,\n    queryParams?: { [key: string]: string },\n): string {\n    // Not using URL() because UXP didn't fully implement. :/\n    let url = `${GOURL}/${baseToken}_${mapGoURLLocale(locale)}`;\n    if (queryParams) {\n        url +=\n            '?' +\n            [...Object.entries(queryParams)]\n                .map(([param, val]) => `${param}=${encodeURIComponent(val)}`)\n                .join('&');\n    }\n    return url;\n}\n\nexport function coreSyncTroubleshootUrl(locale: string) {\n    return localizedGoUrl('help_restart-cloud-syncing', locale);\n}\n\nexport function cloudQuotaUrl(locale: string) {\n    return getLocalizedURL(`${HELPX}/creative-cloud/kb/file-storage-quota.html`, locale);\n}\n\nexport function createReviewLinksUrl(locale: string) {\n    return localizedGoUrl(`review-links`, locale);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { MouseEvent } from 'react';\nimport React, { Component } from 'react';\nimport Link from '@react/react-spectrum/Link';\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\ninterface CDOLinkProps {\n    className?: string;\n    href?: string;\n    variant?: string;\n    id?: string;\n    onClick?: (href: string) => void;\n    onOpenExternalLink?: AssetBrowser.CDO.ICloudSyncStatusCallbacks['onOpenExternalLink'];\n}\n\nclass CDOLink extends Component<CDOLinkProps> {\n    private openExternal = (e: MouseEvent<HTMLAnchorElement>) => {\n        const { href, onOpenExternalLink } = this.props;\n        if (!href) {\n            return;\n        }\n        e.preventDefault();\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        onOpenExternalLink?.(href);\n    };\n\n    render() {\n        const { className, href, variant, onClick, id, onOpenExternalLink, children } = this.props;\n\n        // If onClick is provided, then there is custom click behavior for this link.\n        // If callbacks.onOpenExternalLink is provided, then use host's method of opening\n        // external links. Otherwise, use the normal behavior for links.\n        const onClickHandler = onClick || (onOpenExternalLink && this.openExternal);\n\n        return (\n            <Link\n                className={className}\n                href={href}\n                target=\"_blank\"\n                variant={variant}\n                onClick={onClickHandler}\n                id={id}\n            >\n                {children}\n            </Link>\n        );\n    }\n}\n\nexport default CDOLink;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_ICON_SIZE = 18;\n\nconst AlertIconBorderless = ({\n    height = DEFAULT_ICON_SIZE,\n    width = DEFAULT_ICON_SIZE,\n    className = '',\n    primaryColor = '#e34850',\n    secondaryColor = '#fff',\n}) => (\n    <svg\n        className={classNames('cdo-AlertIcon', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={height}\n        height={width}\n        viewBox={`0 0 ${height} ${width}`}\n    >\n        <path fill={primaryColor} d=\"M9,1.2A7.8,7.8,0,1,0,16.8,9,7.8,7.8,0,0,0,9,1.2Z\" />\n        <path\n            fill={secondaryColor}\n            d=\"M7.851,3.646a.242.242,0,0,1,.114-.24,3.042,3.042,0,0,1,1.049-.212,3.311,3.311,0,0,1,1.061.16.272.272,0,0,1,.136.241v1.22c0,1.439-.287,5.413-.34,5.936,0,.1-.063.157-.18.157H8.336a.171.171,0,0,1-.178-.149c-.049-.663-.307-4.52-.307-5.893Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"M9.014,14.772a1.175,1.175,0,0,1-1.281-1.2,1.214,1.214,0,0,1,1.281-1.23,1.2,1.2,0,0,1,1.281,1.23A1.163,1.163,0,0,1,9.014,14.772Z\"\n        />\n    </svg>\n);\n\nexport default AlertIconBorderless;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { PureComponent } from 'react';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport Progress from '@react/react-spectrum/Progress';\nimport Wait from '@react/react-spectrum/Wait';\nimport Button from '@react/react-spectrum/Button';\nimport { NotificationStatus } from '../types/NotificationStatus';\n\nimport Utils from '../utils/utils';\nimport { ProcessingState } from '@csc/collection-view';\nimport type { QuotaState } from '../stores/constants';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { injectIntl, FormattedMessage } from 'react-intl';\nimport { cloudQuotaUrl } from '../utils/urls';\nimport { getExistingCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport '../styles/CloudQuotaStatus.css';\n\nconst LOCALE_BASE = 'cloudsync.quota';\n\nenum ReactSpectrumProgressState {\n    positive = 'positive',\n    warning = 'warning',\n    critical = 'critical',\n}\n\ninterface ICloudQuotaStatusProps {\n    usedCloudQuota: number;\n    maxCloudQuota: number;\n    fetchState: ProcessingState;\n    quotaState: QuotaState;\n    accountType: AssetBrowser.IIMSData['accountType'];\n    callbacks: AssetBrowser.CDO.ICloudSyncStatusCallbacks;\n}\n\nclass CloudQuotaStatus extends PureComponent<ICloudQuotaStatusProps & WrappedComponentProps> {\n    getPercentage() {\n        const { usedCloudQuota, maxCloudQuota } = this.props;\n        const base = 100;\n        const percentage = (usedCloudQuota / maxCloudQuota) * base;\n        return Math.round(percentage < base ? percentage : base);\n    }\n\n    get upgradeUrl() {\n        const { intl } = this.props;\n        return cloudQuotaUrl(intl.locale);\n    }\n\n    onUpgradeClicked(e: React.MouseEvent) {\n        const { callbacks } = this.props;\n        if (callbacks.onOpenExternalLink) {\n            // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n            callbacks.onOpenExternalLink(this.upgradeUrl);\n            e.preventDefault();\n        }\n    }\n\n    renderStorageInfo() {\n        const { usedCloudQuota, maxCloudQuota, quotaState, fetchState, accountType, intl } =\n            this.props;\n\n        // quota data error, return correct message\n        if (fetchState === ProcessingState.Error) {\n            return <FormattedMessage id={`${LOCALE_BASE}.error`} />;\n        }\n\n        const usedCloudQuotaString = Utils.formatFileSizeDisplay(usedCloudQuota, intl);\n        const maxCloudQuotaString = Utils.formatFileSizeDisplay(maxCloudQuota, intl);\n\n        // quota data available, return storage info\n        return (\n            <>\n                <div>\n                    <FormattedMessage\n                        id={`${LOCALE_BASE}.usage`}\n                        values={{ usedCloudQuotaString, maxCloudQuotaString }}\n                    />\n                </div>\n                {quotaState === NotificationStatus.QUOTA_EXCEEDED &&\n                    accountType === AssetBrowser.AccountType.Personal && (\n                        <div className=\"cdo-upgrade_wrapper\">\n                            <a href={this.upgradeUrl}>\n                                <Button\n                                    variant=\"primary\"\n                                    label={intl.formatMessage({ id: `${LOCALE_BASE}.upgrade` })}\n                                    onClick={(e: React.MouseEvent) => this.onUpgradeClicked(e)}\n                                />\n                            </a>\n                        </div>\n                    )}\n            </>\n        );\n    }\n\n    render() {\n        const { fetchState, quotaState } = this.props as ICloudQuotaStatusProps;\n        const percentageUsed = this.getPercentage();\n        let currentQuotaStatus = ReactSpectrumProgressState.positive;\n        if (quotaState === NotificationStatus.QUOTA_EXCEEDED) {\n            currentQuotaStatus = ReactSpectrumProgressState.critical;\n        }\n\n        // haven't finished fetching quota\n        if (\n            getExistingCDCGlobalStore()?.didSAMInitFail ||\n            fetchState === undefined ||\n            fetchState === ProcessingState.Pending ||\n            (fetchState === ProcessingState.Fetching && quotaState === undefined)\n        ) {\n            return (\n                <div className=\"cdo-CloudQuotaStatus\">\n                    <div className=\"cdo-CloudQuotaStatus_waiting\">\n                        <Wait size=\"S\" />\n                    </div>\n                </div>\n            );\n        }\n\n        return (\n            <div className=\"cdo-CloudQuotaStatus\">\n                <div className=\"cdo-CloudQuotaStatus_progress\">\n                    <div className=\"cdo-CloudQuotaStatus_percentage_label\">\n                        <div className=\"cdo-CloudQuotaStatus_label\">\n                            <FormattedMessage id={`${LOCALE_BASE}.title`} />\n                        </div>\n                        {fetchState === ProcessingState.Done && (\n                            <div className=\"cdo-CloudQuotaStatus_percentage\">\n                                <FormattedMessage\n                                    id={`${LOCALE_BASE}.percentage`}\n                                    values={{ percentageUsed }}\n                                />\n                            </div>\n                        )}\n                    </div>\n                    {currentQuotaStatus === ReactSpectrumProgressState.critical && (\n                        <div className=\"cdo-CloudQuotaStatus_warning\">\n                            <FormattedMessage id={`${LOCALE_BASE}.warning`} />\n                        </div>\n                    )}\n                    <Progress\n                        className=\"cdo-progress\"\n                        size=\"S\"\n                        value={percentageUsed}\n                        variant={currentQuotaStatus}\n                    />\n                    <div className=\"cdo-CloudQuotaStatus_storageInfo\">\n                        {this.renderStorageInfo()}\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default injectIntl(CloudQuotaStatus);\nexport { CloudQuotaStatus as CloudQuotaStatusForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport type AssetSyncStateStore from '../../stores/AssetSyncStateStore';\nimport type QuotaStore from '../../stores/QuotaStore';\nimport type { Tile } from '../Tile';\nimport { TileStatus } from '../Tile';\nimport cloudDocsSyncingTileFactory from '../tiles/cloudDocsSyncingTile';\nimport alertTileFactory from '../tiles/alertTile';\nimport cloudQuotaTileFactory from '../tiles/cloudQuotaTile';\nimport type CloudStatusStore from '../../stores/CloudStatusStore';\nimport Wait from '@ccx-public/spectrum-wrapper/dist/Wait';\nimport { intlStore } from '../../utils/i18n';\n\nimport '../../styles/CloudSyncStatus.css';\nimport networkStatusTileFactory from '../tiles/networkStatusTile';\n\n/**\n * Additional props needed at the top level for Global version of CloudSyncStatus\n */\nexport interface GlobalProps {}\n\nexport interface globalTilesConfig {\n    callbacks: AssetBrowser.CDO.ICloudSyncStatusCallbacks;\n    imsData: AssetBrowser.IIMSData;\n    quotaStore: QuotaStore;\n    assetSyncStateStore: AssetSyncStateStore;\n    cloudStore: CloudStatusStore;\n    onClickTile: (id: string) => void;\n    getCurrentTile?: () => Tile;\n}\n\nexport default function globalTiles({\n    callbacks,\n    imsData,\n    quotaStore,\n    assetSyncStateStore,\n    onClickTile,\n    getCurrentTile,\n    cloudStore,\n}: globalTilesConfig): Tile[] {\n    // This will never really be visible. Its main purpose is to be a placeholder tile for\n    // CloudSyncStatus to render so we don't get MobX errors, CCXCD-14617.\n    if (!intlStore.loaded) {\n        return [\n            {\n                id: 'loading-tile',\n                view: <Wait />,\n                getStatus: () => ({\n                    status: TileStatus.Default,\n                    tooltip: '',\n                }),\n            },\n        ];\n    }\n\n    const alert = alertTileFactory({\n        callbacks,\n        cloudStore,\n    });\n    const cloudQuota = cloudQuotaTileFactory({\n        imsData,\n        callbacks,\n        quotaStore,\n        cloudStore,\n    });\n\n    const cloudDocsSyncing = cloudDocsSyncingTileFactory({\n        assetSyncStateStore,\n        onClickTile,\n        getCurrentTile,\n        cloudStore,\n    });\n\n    const showAlertTile = alert.getStatus().status < TileStatus.Default;\n    const networkStatusTile = networkStatusTileFactory({\n        cloudStore,\n    });\n\n    if (!cloudStore.isOnline) {\n        return [networkStatusTile];\n    }\n\n    return [networkStatusTile, showAlertTile && alert, cloudQuota, cloudDocsSyncing].filter(\n        (tile) => !!tile,\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport type CloudStatusStore from '../../stores/CloudStatusStore';\nimport { getTileStatus } from '../../stores/CloudStatusStore';\nimport { coreSyncTroubleshootUrl } from '../../utils/urls';\nimport CDOLink from '../CDOLink';\nimport AlertIconBorderless from '../svgs/AlertIconBorderless';\nimport type { Tile } from '../Tile';\n\nexport default function alertTileFactory({\n    callbacks,\n    cloudStore,\n}: {\n    callbacks: AssetBrowser.CDO.ICloudSyncStatusCallbacks;\n    cloudStore: CloudStatusStore;\n}): Tile {\n    const learnMoreUrl = coreSyncTroubleshootUrl(cloudStore.intl.locale);\n\n    return {\n        id: 'alert',\n        view: () => ({\n            title: <FormattedMessage id=\"cloudsync.alert.title.coresync.down\" />,\n            body: (\n                <>\n                    <FormattedMessage id=\"cloudsync.alert.subtext.coresync.down\" />\n                    <br />\n                    <CDOLink onOpenExternalLink={callbacks.onOpenExternalLink} href={learnMoreUrl}>\n                        <FormattedMessage id=\"cloudsync.alert.subtext.coresync.down.learnmore\" />\n                    </CDOLink>\n                </>\n            ),\n            icon: <AlertIconBorderless />,\n        }),\n        getStatus: () => {\n            const errorStatus = cloudStore.getCloudNotificationErrorStatus();\n            return getTileStatus(cloudStore.intl, errorStatus ? [errorStatus] : []);\n        },\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport type QuotaStore from '../../stores/QuotaStore';\nimport CloudQuotaStatus from '../CloudQuotaStatus';\nimport type { Tile } from '../Tile';\nimport type CloudStatusStore from '../../stores/CloudStatusStore';\nimport { getTileStatus } from '../../stores/CloudStatusStore';\n\nexport default function cloudQuotaTileFactory({\n    imsData,\n    callbacks,\n    quotaStore,\n    cloudStore,\n}: {\n    imsData: AssetBrowser.IIMSData;\n    callbacks: AssetBrowser.CDO.ICloudSyncStatusCallbacks;\n    quotaStore: QuotaStore;\n    cloudStore: CloudStatusStore;\n}): Tile {\n    const { usedCloudQuota, maxCloudQuota, quotaState, fetchState } = quotaStore ?? {};\n    const getStatus = () => {\n        const status = cloudStore.getCloudQuotaStatus();\n        return getTileStatus(cloudStore.intl, status ? [status] : []);\n    };\n\n    return {\n        id: 'quota',\n        // TODO: Can we convert to GenericTile instead?\n        view: quotaState ? (\n            <CloudQuotaStatus\n                usedCloudQuota={usedCloudQuota ?? 0}\n                maxCloudQuota={maxCloudQuota ?? 0}\n                fetchState={fetchState}\n                quotaState={quotaState}\n                accountType={imsData.accountType}\n                callbacks={callbacks}\n            />\n        ) : (\n            <></>\n        ),\n        getStatus,\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type CloudStatusStore from '../../stores/CloudStatusStore';\nimport { getTileStatus } from '../../stores/CloudStatusStore';\nimport type { Tile } from '../Tile';\nimport { TileStatus } from '../Tile';\n\nexport default function networkStatusTileFactory({\n    cloudStore,\n}: {\n    cloudStore: CloudStatusStore;\n}): Tile {\n    const ROOT = 'cloudsync.networkStatus';\n    const STATUS_BASE = `${ROOT}.${!cloudStore.isOnline ? 'offline' : 'online'}`;\n    const status = {\n        status: !cloudStore.isOnline ? TileStatus.Offline : TileStatus.Default,\n        tooltip: `${STATUS_BASE}.title`,\n    };\n    return {\n        id: 'networkStatus',\n        view: () => ({\n            title: <FormattedMessage id={`${STATUS_BASE}.title`} />,\n            body: <FormattedMessage id={`${STATUS_BASE}.descr`} />,\n            icon: undefined,\n        }),\n        getStatus: () => getTileStatus(cloudStore.intl, [status]),\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IReactionDisposer } from 'mobx';\nimport { action, computed, observable, reaction, when } from 'mobx';\nimport type { IntlShape } from 'react-intl';\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { NotificationStatus } from '../types/NotificationStatus';\nimport { SAM } from '@ccx-public/component-types';\n\nimport type { Tile } from '../components/Tile';\nimport {\n    CloudIcon,\n    highestPriorityTile,\n    highestPriorityStatus,\n    TileStatus,\n} from '../components/Tile';\nimport type { IAssetSyncState } from './AssetSyncStateStore';\nimport type AssetSyncStateStore from './AssetSyncStateStore';\nimport { SyncStatus } from './AssetSyncStateStore';\nimport type QuotaStore from './QuotaStore';\nimport { CloudSyncType } from '../components/CloudSyncStatusPopdown';\nimport globalTiles from '../components/tiles/global';\nimport { Logger } from '../utils/Logger';\nimport type { ICDCStores } from './CDCGlobalStore';\nimport type CDCGlobalStore from './CDCGlobalStore';\nimport { getExistingCDCGlobalStore } from './CDCGlobalStore';\nimport { Subscribable } from '@csc/collection-view';\nimport { intlStore } from '../utils/i18n';\n\nexport type IUpdateCloudIcon = (icon: CloudIcon, tooltip: string) => Promise<void>;\n\nconst TOOLTIP_BASE = 'cloudsync.tooltip';\ntype BuiltInTileStatus = ReturnType<Tile['getStatus']> & { reasonSuffix?: string };\n\ntype CloudStatusStoreCallbacks = {\n    updateCloudIcon: Map<string, IUpdateCloudIcon>;\n};\n\n// Global Store for the CloudSyncStatus component\nexport default class CloudStatusStore\n    extends Subscribable<CloudStatusStoreCallbacks>\n    implements ICDCStores\n{\n    private logger: Logger = new Logger(this.constructor.name);\n\n    @observable isOnline: boolean = navigator.onLine;\n    @observable private readonly imsData: AssetBrowser.IIMSData;\n    @observable private SAMAssetContext: SAM.AssetContext;\n    @observable private assetSyncStateStore: AssetSyncStateStore;\n    @observable private quotaStore: QuotaStore;\n    @observable private completedSyncAssets: IAssetSyncState[] = [];\n    private globalStore: CDCGlobalStore;\n    @observable private openAssets: Map<\n        SAM.AdobeAsset['id'] | undefined,\n        {\n            type: CloudSyncType;\n            externalTiles: Tile[];\n            asset: SAM.AdobeAsset | undefined;\n            reactionDisposer: IReactionDisposer;\n        }\n    > = new Map();\n\n    constructor() {\n        super();\n        const globalStore = getExistingCDCGlobalStore();\n        if (!globalStore) {\n            throw new Error('globalStore not found');\n        }\n        this.globalStore = globalStore;\n        const { imsData, waitForAssetSyncStateStore, waitForQuotaStore } = this.globalStore;\n        this.imsData = imsData;\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        this.initSAMAssetContext();\n        // eslint-disable-next-line promise/catch-or-return, @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        waitForAssetSyncStateStore().then((store) => {\n            this.assetSyncStateStore = store;\n            this.assetSyncStateStore.subscribe(\n                'onAssetSyncComplete',\n                'cloud-status-store',\n                (syncPayload) => {\n                    this.completedSyncAssets.push(syncPayload);\n                },\n            );\n            return undefined;\n        });\n        // eslint-disable-next-line promise/catch-or-return, @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        waitForQuotaStore().then((store) => (this.quotaStore = store));\n\n        this.logger.debug('monitoring global tiles');\n        this.monitorAssetTileUpdates(CloudSyncType.GLOBAL, undefined, undefined, []);\n\n        window.addEventListener('offline', () => {\n            this.isOnline = false;\n        });\n\n        window.addEventListener('online', () => {\n            this.isOnline = true;\n        });\n    }\n\n    @computed get isReady(): boolean {\n        return Boolean(this.SAMAssetContext && this.quotaStore && this.assetSyncStateStore);\n    }\n\n    @computed get allAssets() {\n        return [...this.completedSyncAssets, ...(this.assetSyncStateStore?.syncingAssets ?? [])];\n    }\n\n    @computed get finishedAssets() {\n        return this.completedSyncAssets;\n    }\n\n    @computed get syncingAssets() {\n        return this.allAssets.filter((x) => x.syncStatus === SyncStatus.syncing);\n    }\n\n    @action clearCompletedAssets() {\n        this.completedSyncAssets = [];\n    }\n\n    @action public initSAMAssetContext = async () => {\n        this.logger.debug('waiting for SAMAssetContext');\n        const globalStore = getExistingCDCGlobalStore();\n        await when(() => Boolean(globalStore?.hostAssetContext));\n        if (!globalStore?.hostAssetContext) {\n            throw new Error('SAMAssetContext not found');\n        }\n        this.SAMAssetContext = globalStore.hostAssetContext;\n        this.logger.debug('SAMAssetContext ready');\n    };\n\n    @action private monitorAssetTileUpdates = (\n        type: CloudSyncType,\n        assetId: string | undefined,\n        asset: SAM.AdobeAsset | undefined,\n        externalTiles: Tile[],\n    ) => {\n        this.logger.debug(`monitoring tiles for asset: ${assetId} (${type})`);\n        this.openAssets.set(assetId, {\n            type,\n            asset,\n            externalTiles,\n            reactionDisposer: reaction(\n                () => highestPriorityTile(this.getAllTiles(assetId)),\n                (tile) => this.updateCloudIcon(tile),\n                // don't let the cloud icon/tooltip be stale until the first status change\n                { fireImmediately: true },\n            ),\n        });\n    };\n\n    @computed\n    public get intl() {\n        return intlStore.intl;\n    }\n\n    public getAllTiles = (\n        assetId: string | undefined,\n        rendering?: {\n            callbacks: AssetBrowser.CDO.ICloudSyncStatusCallbacks;\n            onClickTile: (id: string) => void;\n            getCurrentTile: () => Tile;\n        },\n    ): Tile[] => {\n        const openAsset = this.openAssets.get(assetId);\n        const { type, externalTiles } = openAsset ?? {\n            type: CloudSyncType.GLOBAL,\n        };\n        const { callbacks, getCurrentTile } = rendering ?? {};\n        const commonBuiltInTileConfig = {\n            cloudStore: this,\n            callbacks: callbacks ?? {\n                onOpenExternalLink: () => Promise.resolve(),\n            },\n        };\n\n        const builtInTiles: { [type in CloudSyncType]: Tile[] } = {\n            [CloudSyncType.GLOBAL]: globalTiles({\n                ...commonBuiltInTileConfig,\n                assetSyncStateStore: this.assetSyncStateStore,\n                quotaStore: this.quotaStore,\n                imsData: this.imsData,\n                onClickTile: rendering?.onClickTile ?? (() => {}),\n                getCurrentTile: getCurrentTile ?? (() => ({}) as unknown as Tile),\n            }),\n        };\n\n        return [...(builtInTiles[type] ?? []), ...(externalTiles ?? [])];\n    };\n\n    @action public setExternalTiles = async (assetId: string | undefined, tiles: Tile[]) => {\n        this.logger.debug(\n            `setExternalTiles(${assetId}, ${JSON.stringify(tiles.map((t) => t.id).join(','))})`,\n        );\n        await intlStore.waitForLoaded();\n        const openAsset = this.openAssets.get(assetId);\n        if (openAsset) {\n            this.logger.debug('updating monitoring of tiles');\n            const { type, asset, reactionDisposer } = openAsset;\n            reactionDisposer();\n            this.monitorAssetTileUpdates(type, assetId, asset, tiles);\n        } else {\n            this.logger.debug(\n                'setExternalTiles called before asset exists in openAssets. awaiting onAssetOpened...',\n            );\n            await this.setExternalTiles(assetId, tiles);\n        }\n    };\n\n    public getCloudNotificationErrorStatus = (): BuiltInTileStatus | undefined => {\n        if (\n            this.quotaStore?.quotaState === NotificationStatus.CLOUD_STORAGE_DISABLED ||\n            this.globalStore.didSAMInitFail\n        ) {\n            return {\n                status: TileStatus.Error,\n                tooltip: `${TOOLTIP_BASE}.error`,\n            };\n        }\n    };\n\n    public getCloudQuotaStatus = (): BuiltInTileStatus | undefined => {\n        if (this.quotaStore?.isSyncDisabled) {\n            return {\n                status: TileStatus.Disabled,\n                tooltip: `${TOOLTIP_BASE}.error`,\n                reasonSuffix: 'quotaExceeded',\n            };\n        }\n    };\n\n    public getCloudStatus = (): BuiltInTileStatus | undefined => {\n        if (this.globalStore.didSAMInitFail) {\n            return {\n                status: TileStatus.Critical,\n                tooltip: `${TOOLTIP_BASE}.error`,\n                reasonSuffix: 'samInitFail',\n            };\n        }\n        if (!this.isOnline) {\n            return {\n                status: TileStatus.Offline,\n                tooltip: `${TOOLTIP_BASE}.offline`,\n            };\n        }\n        const quotaStatus = this.getCloudQuotaStatus();\n        if (quotaStatus) {\n            return quotaStatus;\n        }\n    };\n\n    public getCloudDocsSyncingStatus = (): BuiltInTileStatus | undefined => {\n        if (this.assetSyncStateStore?.syncingAssets.length) {\n            return {\n                status: TileStatus.Progress,\n                tooltip: `${TOOLTIP_BASE}.syncing`,\n            };\n        }\n    };\n\n    public getAssetSyncStatus = (assetId: SAM.AdobeAsset['id']): BuiltInTileStatus | undefined => {\n        if (!assetId) {\n            // GLOBAL variant has no associated assetId\n            return;\n        }\n\n        const { asset } = this.openAssets.get(assetId) ?? {};\n\n        if (!asset) {\n            return;\n        }\n\n        if (this.assetSyncStateStore?.isSyncing(asset).get()) {\n            return {\n                status: TileStatus.Progress,\n                tooltip: `${TOOLTIP_BASE}.syncing`,\n            };\n        }\n        if (\n            asset.syncSuspensionReason !== undefined &&\n            asset.syncSuspensionReason !== SAM.AssetSyncSuspensionReason.None\n        ) {\n            return {\n                status: TileStatus.Error,\n                tooltip: `${TOOLTIP_BASE}.error`,\n                reasonSuffix: 'syncSuspended',\n            };\n        }\n    };\n\n    @action private updateCloudIcon = (tile: Tile) => {\n        const STATUS_ICON_MAP = {\n            [TileStatus.Critical]: CloudIcon.Error,\n            [TileStatus.Disabled]: CloudIcon.Error,\n            [TileStatus.Error]: CloudIcon.Error,\n            [TileStatus.Offline]: CloudIcon.Disconnected,\n            [TileStatus.Progress]: CloudIcon.Progress,\n            [TileStatus.Paused]: CloudIcon.Paused,\n            [TileStatus.Default]: CloudIcon.Cloud,\n        };\n\n        const { status, tooltip } = tile?.getStatus() ?? {};\n        const icon = STATUS_ICON_MAP[status];\n\n        this.logger.debug(`updateCloudIcon(${icon}, ${tooltip}) (from tile: ${tile.id})`);\n        this.notifySubscribers('updateCloudIcon', icon, tooltip);\n    };\n}\n\n/** Convenience function for built-in CloudSyncStatus tiles that rely on CloudStatusStore */\nexport function getTileStatus(\n    intl: IntlShape,\n    statuses: Array<BuiltInTileStatus>,\n    defaultStatus: BuiltInTileStatus = {\n        status: TileStatus.Default,\n        tooltip: `${TOOLTIP_BASE}.default`,\n    },\n): BuiltInTileStatus {\n    const { status, tooltip, reasonSuffix } = highestPriorityStatus(\n        [...statuses.filter((x) => !!x), defaultStatus],\n        (x) => x.status,\n    );\n\n    return {\n        status,\n        tooltip: intl.formatMessage({ id: tooltip }),\n        reasonSuffix,\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\n\nimport { autorun, reaction } from 'mobx';\nimport { Logger } from '../utils/Logger';\nimport type { IAssetSyncEventPayload } from './AssetSyncStateStore';\nimport type AssetSyncStateStore from './AssetSyncStateStore';\nimport { SyncDirection, SyncStatus } from './AssetSyncStateStore';\n\ninterface TransferStatus {\n    bytesTransferred?: number;\n    bytesTotal?: number;\n    hadError?: boolean;\n    errorType?: string;\n}\ninterface SamCppAsset {\n    id: string;\n    repoPath: string;\n    cloudID?: string;\n    localID?: string;\n    name?: string;\n    downloadStatus?: TransferStatus;\n    uploadStatus?: TransferStatus;\n    syncStatus?: SAM.AssetSyncStatus;\n}\n\nexport default class SAMSyncingAssets {\n    private logger: Logger = new Logger(this.constructor.name);\n\n    constructor(\n        private readonly assetContext: SAM.AssetContext,\n        private readonly onAssetSyncEvent?: AssetSyncStateStore['onAssetSyncEvent'],\n        private readonly onSyncProgressEvent?: AssetSyncStateStore['onSyncProgressEvent'],\n    ) {\n        if (!assetContext.localRecentsSource) {\n            return;\n        }\n\n        // for async\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        this.init();\n    }\n\n    syncingAssets() {\n        if (!this.assetContext.localRecentsSource) {\n            return [];\n        }\n\n        return this.assetContext.localRecentsSource\n            .getList(this.assetContext.getAdobeAssetOrder('descending', 'modified'))\n            .items.filter((asset) => asset.syncStatus === SAM.AssetSyncStatus.Syncing);\n    }\n\n    getSyncEventPayload(asset: SAM.AdobeAsset, syncStatus: SyncStatus): IAssetSyncEventPayload {\n        return {\n            assetRef: {\n                cloudID: asset.cloudID,\n                localID: asset.localID,\n                path: asset.repoPath,\n                displayName: asset.name ?? '',\n            },\n            syncStatus,\n            cloudAssetId: asset.cloudID,\n        };\n    }\n\n    sendAssetSyncEvent(asset: SAM.AdobeAsset, syncStatus: SyncStatus, error?: string) {\n        this.logger.debug('onAssetSyncEvent', asset, SyncStatus[syncStatus]);\n        this.onAssetSyncEvent?.(this.getSyncEventPayload(asset, syncStatus), error);\n    }\n\n    sendSyncProgressEvent(asset: SAM.AdobeAsset | SamCppAsset) {\n        const transferStatus = asset.downloadStatus || asset.uploadStatus;\n        const transferDirection = asset.downloadStatus\n            ? SyncDirection.DOWNLOAD\n            : SyncDirection.UPLOAD;\n\n        this.logger.debug('onSyncProgressEvent', asset, SyncStatus[SyncStatus.syncing]);\n        this.onSyncProgressEvent?.({\n            bytesTransferredEx: transferStatus?.bytesTransferred,\n            bytesTotalEx: transferStatus?.bytesTotal,\n            transferDirection,\n            ...this.getSyncEventPayload(asset as SAM.AdobeAsset, SyncStatus.syncing),\n        });\n    }\n\n    public async init() {\n        let prevSyncingAssets: SAM.AdobeAsset[] = [];\n        const handleSyncingEventChange = (syncingAssets: SAM.AdobeAsset[]) => {\n            this.logger.debug('total syncing assets', syncingAssets);\n\n            const newlySyncing = syncingAssets.filter(\n                (asset) => !prevSyncingAssets.find((a) => a.id === asset.id),\n            );\n            const doneSyncing = prevSyncingAssets.filter(\n                (asset) => !syncingAssets.find((a) => a.id === asset.id),\n            );\n            const stillSyncing = prevSyncingAssets.filter(\n                (asset) => !doneSyncing.find((a) => a.id === asset.id),\n            );\n            this.logger.debug('newly syncing assets', newlySyncing);\n            this.logger.debug('done syncing assets', doneSyncing);\n            this.logger.debug('still syncing assets', stillSyncing);\n\n            newlySyncing.forEach((asset) => {\n                this.sendAssetSyncEvent(asset, SyncStatus.syncing);\n                // watch for sync errors\n                autorun(() => {\n                    if (\n                        (asset.downloadStatus && asset.downloadStatus.hadError) ||\n                        (asset.uploadStatus && asset.uploadStatus.hadError)\n                    ) {\n                        const error = (asset.downloadStatus ?? asset.uploadStatus)?.errorType;\n                        this.sendAssetSyncEvent(asset, SyncStatus.error, error);\n                    }\n                });\n            });\n            doneSyncing.forEach((asset) => this.sendAssetSyncEvent(asset, SyncStatus.complete));\n\n            // update prevSyncingAssets to match new total set (remove doneSyncing)\n            // maintain references to existing objects in memory\n            prevSyncingAssets = [...newlySyncing, ...stillSyncing];\n        };\n\n        reaction(\n            () => this.syncingAssets(),\n            (syncingAssets) => {\n                handleSyncingEventChange(syncingAssets);\n            },\n        );\n\n        // we supplement the localRecentsSource (syncingSource) updates with event monitoring\n        // specifically for the case of downloading uncached assets,\n        // because they don't exist in localRecentsSource until they're done downloading\n        if (window.acplModel) {\n            const { applicationAssetContext } = window.acplModel as any;\n            applicationAssetContext?.on('changedAssets', ({ status }) => {\n                status.forEach((asset: SamCppAsset) => {\n                    this.sendSyncProgressEvent(asset);\n                });\n            });\n        }\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Utils from './utils';\n\nexport enum Platform {\n    mac = 'mac',\n    win = 'win',\n    web = 'web',\n    unset = 'unset',\n}\n\n/**\n * Utility for checking if windows\n */\nexport function isWindows() {\n    // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Use other browser data\n    return normalizePlatform(navigator.platform) === Platform.win;\n}\n\n/**\n * Get the normalized platform enum based on a provided platform string.\n *\n * @param platformString        platform string to check\n * @return normalized Platform enum.\n */\nexport function normalizePlatform(platformString: string): Platform {\n    if (!platformString) {\n        // '' is falsey\n        return Platform.unset;\n    }\n    const platform = platformString.toLowerCase();\n\n    // UXP can return `darwin` when platform is queried by accessing\n    // the .navigator property; or global.process.platform however,\n    // host data will usually return 'mac' for the platform - so we\n    // need to normalize it for use so we dont have multiple checks\n    if (platform.indexOf('darwin') > -1 || platform.indexOf('mac') > -1) {\n        return Platform.mac;\n    }\n    if (platform.indexOf('win') > -1 || platform.indexOf('uwp') > -1) {\n        return Platform.win;\n    }\n    return Platform.web;\n}\n\n/**\n * Get the platform OS version.\n *\n * @return {String} containing the plaform's OS version.\n */\nexport function platformOsVersion(): string {\n    let osVer = 'Unknown';\n    const wdow = window as any; // get by TypeScript warnings\n    if (Utils.usingUXP() && wdow && wdow.require) {\n        // pull in the UXP 'os' bindings\n        osVer = wdow.require('os').release();\n    }\n    return osVer;\n}\n\n// determine if its a touch device\nexport function isTouchDevice() {\n    const wdow = window as any; // get by TypeScript warnings\n    return (\n        !!(\n            typeof window !== 'undefined' &&\n            ('ontouchstart' in window ||\n                (wdow.DocumentTouch &&\n                    typeof document !== 'undefined' &&\n                    document instanceof wdow.DocumentTouch))\n        ) ||\n        !!(\n            typeof navigator !== 'undefined' &&\n            (window.navigator.maxTouchPoints || wdow.navigator.msMaxTouchPoints)\n        )\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { UABSAMCore } from '@csc/sam-utils';\nimport { initializeSAM } from '@csc/sam-utils';\nimport { ProductLocation } from '@csc/common';\n\ndeclare global {\n    interface Window {\n        acplModel?: unknown;\n    }\n}\n\nexport let SAM_CACHE: UABSAMCore;\n\ntype Params = Omit<Parameters<typeof initializeSAM>[0], 'productLocation'>;\n\nexport async function getSAMCore(options: Params) {\n    if (SAM_CACHE) {\n        return SAM_CACHE;\n    }\n\n    SAM_CACHE = await initializeSAM({\n        ...options,\n        productLocation: ProductLocation.CDO,\n    });\n\n    return SAM_CACHE;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { observable, action, computed, createAtom, when } from 'mobx';\n\nimport AssetSyncStateStore from './AssetSyncStateStore';\nimport QuotaStore from './QuotaStore';\n\nimport CloudStatusStore from './CloudStatusStore';\nimport I18N, { intlStore } from '../utils/i18n';\nimport { Logger } from '../utils/Logger';\nimport type { IAnalyticsData } from '@csc/collection-view';\nimport { sleep } from '@csc/collection-view';\nimport AAVIngest, { AAVComponentId } from '@csc/adobe-assets-view/dist/src/utils/ingest';\nimport type IOnAnalyticsEvent from '../types/IOnAnalyticsEvent';\nimport { merge } from 'lodash-es';\nimport { SAM } from '@ccx-public/component-types';\nimport SAMSyncingAssets from '../stores/SAMSyncingAssets';\nimport { platformOsVersion } from '../utils/platform';\nimport {\n    configureSentry,\n    transformers,\n    ChunkLoadErrorEvent,\n    createPerformanceUtil,\n} from '@csc/common';\nimport { getSAMCore, SAM_CACHE } from '../utils/sam-utils';\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport type { UABSAMCore } from '@csc/sam-utils';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport type { IIngestOptions } from '@ccx-public/ccx-ingest';\n\nexport interface ICDCStores {\n    isReady: boolean;\n}\n\nexport interface IIndexable {\n    [key: string]: any;\n}\nexport interface ICommonCDCConfiguration {\n    hostProductData: AssetBrowser.ICDOHostProductData;\n    imsData: AssetBrowser.IIMSData;\n    analyticsData?: IAnalyticsData;\n    __assetContext_forTestingOnly?: SAM.AssetContext;\n    showToast?: AssetBrowser.ShowToastFn;\n}\n\ninterface ICDCGlobalStoreConfiguration extends ICommonCDCConfiguration {\n    disableAnalytics?: boolean;\n    dispatchEvent?: HostConfig['dispatchEvent'];\n}\n\n// key for the global store\nexport const $CDC_GLOBAL_STORE = Symbol.for('com.adobe.ccac.cdc.global-cloud-store');\n\ndeclare global {\n    interface Window {\n        [$CDC_GLOBAL_STORE]?: CDCGlobalStore;\n    }\n}\n\ntype CDOMetaFlag = Extract<AssetBrowser.CDOFeatureFlag, ''>;\n\nexport const META_FLAGS: { [metaFlag in CDOMetaFlag]: AssetBrowser.CDOFeatureFlag[] } = {};\n\nconst PERFORMANCE_MARK_NAME = 'cdo:init-cdc-global-stores';\n\nexport default class CDCGlobalStore {\n    private logger: Logger = new Logger(this.constructor.name);\n\n    @observable didSAMInitFail: boolean = false;\n    @observable accessToken: string | undefined;\n\n    isFeatureFlagEnabled = (flag: AssetBrowser.CDOFeatureFlag): boolean => {\n        return this.hostProductData?.featureFlags?.[flag] === true;\n    };\n\n    @computed get quotaStore(): QuotaStore {\n        return this._quotaStore;\n    }\n\n    waitForQuotaStore = async (): Promise<QuotaStore> => {\n        if (!this._quotaStore) {\n            this._quotaStore = new QuotaStore({\n                refreshEnabled: true,\n                showToast: this.showToast,\n                intl: this.intl,\n            });\n        }\n        await when(() => this._quotaStore.isReady);\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        this._quotaStore.fetch();\n        return Promise.resolve(this._quotaStore);\n    };\n\n    @computed get cdoMetrics() {\n        return this.aavIngest.metrics;\n    }\n\n    @computed get assetSyncStateStore(): AssetSyncStateStore {\n        return this._assetSyncStateStore;\n    }\n\n    waitForAssetSyncStateStore = async (): Promise<AssetSyncStateStore> => {\n        if (!this._assetSyncStateStore) {\n            this._assetSyncStateStore = new AssetSyncStateStore();\n            // eslint-disable-next-line promise/catch-or-return, @typescript-eslint/no-floating-promises -- TODO: Add error handling\n            this.waitForQuotaStore().then((store) =>\n                this._assetSyncStateStore.subscribe(\n                    'onAssetSyncComplete',\n                    'quota-store',\n                    store.onAssetSyncComplete.bind(store),\n                ),\n            );\n\n            // Do not delete. This isn't referenced anywhere, but internally uses mobx to react to changes\n            await this.waitForSAMInit();\n\n            // Since SAMjs does not include a syncingSource, we instead use localRecentSource,\n            // and filter the listing down to only the assets that are syncing.\n            if (this.hostAssetContext?.localRecentsSource) {\n                new SAMSyncingAssets(\n                    this.hostAssetContext,\n                    (...args) => this._assetSyncStateStore.onAssetSyncEvent(...args),\n                    (payload) => this._assetSyncStateStore.onSyncProgressEvent(payload),\n                );\n            } else {\n                this.logger.warn(\n                    '[cdo] localRecentsSource is not available; SAM syncing assets will not be initialized',\n                );\n            }\n        }\n        return Promise.resolve(this._assetSyncStateStore);\n    };\n\n    // CloudStore is a synchronous store because it's responsible for surfacing messaging to the\n    // user about their cloudSync/etc status, including if SAM isn't able to initialize. So it needs to\n    // be immediately accessible and function without SAM. Internally it knows how to await\n    // SAM init as needed\n    @computed get cloudStore(): CloudStatusStore {\n        if (!this._cloudStore) {\n            this._cloudStore = new CloudStatusStore();\n        }\n        return this._cloudStore;\n    }\n\n    @computed get samGenerationHistoryContext() {\n        return this.generationHistoryContext;\n    }\n\n    @action\n    setSAMInitFailed(errDesc: string) {\n        this.didSAMInitFail = true;\n        const message = `Failed to create/get SAMAssetContext: ${errDesc}`;\n        this.cdoMetrics.fireEvent({\n            event: {\n                error_code: SAM.SAMErrorCode.UNKNOWN,\n                error_desc: message,\n            },\n        });\n        this.logger.error(message);\n    }\n\n    @action\n    resetSAMInitFailed() {\n        this.didSAMInitFail = false;\n    }\n\n    waitForSAMInit = async () => {\n        // eslint-disable-next-line promise/catch-or-return, @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        sleep(10 * 1000).then(() => {\n            // this will ensure that if assetContext comes before 10sec don't do anything\n            // eslint-disable-next-line promise/always-return -- TODO: Modify this handler to return or refactor\n            if (!this.sam) {\n                this.setSAMInitFailed('SAM init timed out');\n                // eslint-disable-next-line promise/no-return-wrap -- TODO: Modify this handler to return or refactor\n                return Promise.reject('SAM init timed out');\n            }\n        });\n\n        if (!this.hostAssetContext) {\n            try {\n                const perf = createPerformanceUtil(\n                    'ace-cdo',\n                    true,\n                    this.dispatchEvent,\n                    (measureName, duration) => {\n                        // Track performance metrics through CDO's metrics system\n                        this.cdoMetrics.fireEvent({\n                            event: {\n                                category: 'performance',\n                                subcategory: measureName,\n                                value: duration,\n                            },\n                        });\n                    },\n                );\n\n                // Start measuring\n                const endSAMMeasure = perf.startMeasure('getSAMCore');\n\n                const clientId = this.hostProductData.clientId || this.hostProductData.apiKey;\n                if (!clientId) {\n                    console.warn('[cdo] waitForSAMInit: clientId is empty');\n                }\n                const productId = this.hostProductData.productId;\n                if (!productId) {\n                    console.warn('[cdo] waitForSAMInit: productId is empty');\n                }\n\n                const samCore = await getSAMCore({\n                    clientId: clientId ?? '',\n                    environment: this.imsData.environment,\n                    productId: productId ?? '',\n                    refreshToken: (failedToken: string) => this.imsData.fetchToken(failedToken),\n                    userId: this.imsData.fetchUserId(),\n                });\n\n                endSAMMeasure();\n\n                await samCore.getAssetContext();\n                this.resetSAMInitFailed(); // this ensures that if assetcontext comes after 10sec, we reset the didSAMInit flag\n                this.sam = samCore;\n            } catch (e) {\n                this.setSAMInitFailed(e); // in case sam init goes into error for some reason\n                return Promise.reject(e);\n            }\n        }\n        await when(() => Boolean(this.hostAssetContext));\n        return Promise.resolve(this.hostAssetContext);\n    };\n\n    @observable imsData: AssetBrowser.IIMSData;\n    @observable.ref hostProductData: AssetBrowser.ICDOHostProductData;\n    @observable locale: string;\n    @observable aavIngest: AAVIngest;\n    @observable _quotaStore: QuotaStore;\n    @observable _assetSyncStateStore: AssetSyncStateStore;\n    @observable private _cloudStore: CloudStatusStore;\n    @observable assetContext: Promise<SAM.AssetContext>;\n    @observable sam: UABSAMCore = SAM_CACHE;\n    showToast: AssetBrowser.ShowToastFn;\n    get hostAssetContext(): SAM.AssetContext | undefined {\n        return this.sam?.hostAssetContext;\n    }\n    get generationHistoryContext(): Promise<SAM.GenerationHistoryContext> | undefined {\n        return this.sam?.getGenerationHistoryContext();\n    }\n    featureFlags: any;\n    onAnalyticsEvent: IOnAnalyticsEvent;\n    dispatchEvent?: HostConfig['dispatchEvent'];\n    disableAnalytics?: boolean;\n\n    constructor(config: ICDCGlobalStoreConfiguration) {\n        const {\n            hostProductData,\n            imsData,\n            __assetContext_forTestingOnly,\n            analyticsData,\n            dispatchEvent,\n            showToast,\n            disableAnalytics,\n        } = config;\n        this.dispatchEvent = dispatchEvent;\n        this.imsData = imsData;\n        this.hostProductData = hostProductData;\n        this.featureFlags = hostProductData.featureFlags || {};\n        this.disableAnalytics = disableAnalytics;\n\n        // TODO - Remove once UAP mobile enhancements are complete - CCPROJ-13218\n        if (localStorage.getItem('enableMobileView')) {\n            this.featureFlags.enableMobileView = true;\n        }\n\n        // used in quota store\n        if (showToast) {\n            this.showToast = showToast;\n        } else {\n            this.logger.warn('[cdo] showToast is not provided; Toast will not be shown');\n        }\n\n        Object.keys(META_FLAGS).forEach((metaFlag) => {\n            const metaFlagValue = hostProductData?.featureFlags?.[metaFlag];\n\n            if (metaFlagValue !== undefined) {\n                const relatedFlags = META_FLAGS[metaFlag].map((flag) => ({\n                    [flag]: !!metaFlagValue,\n                }));\n                Object.assign(this.featureFlags, ...relatedFlags);\n            }\n        });\n\n        if (this.hostProductData.uiLocale) {\n            this.locale = I18N.normalizeLocale(this.hostProductData.uiLocale);\n        } else {\n            this.logger.warn('[cdo] uiLocale is not provided; Locale will not be set');\n        }\n\n        if (__assetContext_forTestingOnly) {\n            this.sam = {\n                hostAssetContext: __assetContext_forTestingOnly,\n            } as UABSAMCore;\n        }\n        // the CDC Harness SAM Mock implements this hook\n        __assetContext_forTestingOnly?.['makeObservable']?.(createAtom);\n\n        configureSentry(transformers.fromCDO(this.hostProductData, this.imsData));\n\n        const { cdoLogLevel } = hostProductData;\n        if (cdoLogLevel !== undefined) {\n            Logger.setLogLevel(cdoLogLevel);\n        }\n\n        this.logger.debug('initCDCGlobalStore()');\n\n        const capturePerformanceData = this.featureFlags.enablePerformanceMetrics;\n        if (capturePerformanceData) {\n            // we only care about the main init, not the quota init right now\n            window?.performance?.measure('cdo:init-cdc-global-stores-invocation');\n            window?.performance?.mark(PERFORMANCE_MARK_NAME);\n        }\n\n        // Convert CDO data to HostConfig format and create AAVIngest\n        const hostConfig = this.createHostConfigFromCDOData(hostProductData, imsData);\n\n        // Override the default data with CDO-specific data\n        const customData = getIngestProviderData(\n            hostProductData,\n            imsData,\n            this.locale,\n            analyticsData,\n        );\n\n        // Initialize the CDO metrics instance\n        this.aavIngest = new AAVIngest(AAVComponentId.CDO, hostConfig as HostConfig, customData);\n\n        // Set ingest options on the CDO metrics instance after initialization\n        if (hostProductData.analyticsProjectKey && hostProductData.analyticsProjectKey !== '') {\n            const ingestOptions: IIngestOptions = {\n                ANALYTICS_PROJECT: hostProductData.analyticsProjectKey,\n            };\n            this.aavIngest.metrics.ingestOptions = ingestOptions;\n        }\n\n        if (hostProductData.allowedToSendAnalyticsEvents !== undefined) {\n            this.aavIngest.metrics.controller._ingestApi.enable(\n                hostProductData.allowedToSendAnalyticsEvents,\n            );\n        }\n    }\n\n    @computed get intl() {\n        return intlStore.intl;\n    }\n\n    /**\n     * Convert CDO-specific data to HostConfig format for AAVIngest\n     */\n    private createHostConfigFromCDOData(\n        hostProductData: AssetBrowser.ICDOHostProductData,\n        imsData: AssetBrowser.IIMSData,\n    ): Partial<HostConfig> {\n        return {\n            // Essential properties for AAVIngest\n            locale: hostProductData.uiLocale,\n            productId: hostProductData.productId,\n            environment: imsData.environment,\n            userId: imsData.fetchUserId(),\n            disableAnalytics: this.disableAnalytics,\n            platform: hostProductData.platform,\n            platformOSVersion: hostProductData.platformVersion || platformOsVersion(),\n            clientId: hostProductData.productId,\n            appName: hostProductData.productName,\n            appVersion: hostProductData.productVersion,\n        };\n    }\n\n    async setLocale(messages?: { [id: string]: string }) {\n        try {\n            // TODO: SWC errors coming from spectrum-wrapper fallback components\n            // when retry mechanism happens. For now, we're just going to dispatch\n            // the event on error. When we can fix the SWC issue on retry, we'll\n            // use withOnlineRetry again.\n            // return await withOnlineRetry(() => intlStore.setLocale(this.locale, messages))();\n            await intlStore.setLocale(this.locale, messages);\n        } catch {\n            console.error('[ccx-cdo] Failed to load locale', this.locale);\n            // technically this is an assumption that the chunk failed\n            // to load, but otherwise we're wrapping each internal loader\n            // and passing dispatchEvent down\n            this.dispatchEvent?.(new ChunkLoadErrorEvent());\n        }\n    }\n}\n\n// ! Should only be used in tests\nexport function deleteCDCGlobalStore() {\n    delete window[$CDC_GLOBAL_STORE];\n}\n\nexport function createCDCGlobalStore(config: ICDCGlobalStoreConfiguration) {\n    window[$CDC_GLOBAL_STORE] = new CDCGlobalStore(config);\n    return window[$CDC_GLOBAL_STORE];\n}\n\nexport function getCDCGlobalStore(config: ICDCGlobalStoreConfiguration) {\n    return window[$CDC_GLOBAL_STORE] ?? createCDCGlobalStore(config);\n}\n\n/**\n * Some components need to access stuff from the store, but don't\n * have easy access to ICommonCDCConfiguration fields and can\n * rely on some other entity having created the global store.\n * This API waits for some other entity to create the global store.\n * @returns {CDCGlobalStore}\n */\nexport async function waitForExistingCDCGlobalStore(): Promise<CDCGlobalStore> {\n    while (!window[$CDC_GLOBAL_STORE]) {\n        await sleep(200);\n    }\n    return window[$CDC_GLOBAL_STORE];\n}\n\nexport function getExistingCDCGlobalStore(): CDCGlobalStore | undefined {\n    return window[$CDC_GLOBAL_STORE];\n}\n\n/**\n * Get the base data set for ingest events\n * @return {object} base data set for ingest event\n */\nfunction getIngestProviderData(\n    hostProductData: AssetBrowser.ICDOHostProductData,\n    imsData: AssetBrowser.IIMSData,\n    locale: string,\n    analyticsData: IAnalyticsData = {},\n): IAnalyticsData {\n    const userId = imsData.fetchUserId();\n\n    const defaultAnalyticsData: IAnalyticsData = {\n        custom: {\n            country_code: imsData.countryCode,\n            user_type: imsData.accountType,\n        },\n        event: {\n            context_guid: hostProductData.sessionGuid,\n            language: locale,\n            user_guid: userId,\n            user_agent: navigator.userAgent,\n            build: hostProductData.productBuildNumber,\n        },\n        source: {\n            client_id: hostProductData.productId,\n            name: hostProductData.productName,\n            platform: hostProductData.platform,\n            // TODO: using platformOsVersion for backward compatibility until all clients\n            //       provide it.\n            os_version: hostProductData.platformVersion || platformOsVersion(),\n            version: hostProductData.productVersion,\n        },\n        user: {\n            service_code: imsData.serviceCode,\n            service_level: imsData.serviceLevel,\n        },\n    };\n\n    return merge(defaultAnalyticsData, analyticsData);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { observable, action, computed } from 'mobx';\nimport { LOCAL_STORAGE_KEY, setStorage } from '../utils/storage';\nimport type { ISelectionBehavior, Themes } from '@csc/collection-view';\nimport { ModeType, ViewMode } from '@csc/collection-view';\nimport type { IFileCapabilitiesConfig } from '../utils/FileCapabilities';\nimport FileCapabilities from '../utils/FileCapabilities';\nimport { getExistingCDCGlobalStore } from './CDCGlobalStore';\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\nclass CDOStore {\n    hostProductData: AssetBrowser.ICDOHostProductData | undefined;\n    imsData: AssetBrowser.IIMSData | undefined;\n    @observable mode: ModeType;\n    @observable view: ViewMode;\n    // TODO: hopefully temporary and will get encapsulated with CCD actions\n    // Jira ticket: https://jira.corp.adobe.com/browse/CCXCD-11690\n    @observable fileCapabilities?: FileCapabilities;\n    @observable documentFilter: string[] = [];\n    @observable documentFilterOverride: string[] | undefined;\n    @observable documentExclusionFilter: string[] = [];\n    @observable theme: Themes;\n    @observable hasSeenCdoOnboardBanner: boolean = false;\n    @observable selectionBehavior: ISelectionBehavior;\n\n    constructor(config: Partial<CDOStore>) {\n        Object.assign(this, config);\n        const { hostProductData, imsData } = getExistingCDCGlobalStore() ?? {};\n        this.hostProductData = config.hostProductData ?? hostProductData;\n        this.documentExclusionFilter =\n            config.documentExclusionFilter ?? this.documentExclusionFilter;\n        this.imsData = imsData;\n    }\n\n    static create(config: Partial<CDOStore>) {\n        return new CDOStore(config);\n    }\n\n    @action setSelectionBehavior(selectionBehavior: ISelectionBehavior) {\n        this.selectionBehavior = selectionBehavior;\n    }\n\n    @action setHasSeenCdoOnboardBanner(seenBanner: boolean) {\n        setStorage(LOCAL_STORAGE_KEY.SEEN_ONBOARD_CDO, seenBanner);\n        this.hasSeenCdoOnboardBanner = seenBanner;\n    }\n\n    @computed\n    get isOrganizer() {\n        return this.mode === ModeType.organizer;\n    }\n\n    @computed\n    get isTabViewPicker() {\n        return (\n            this.mode === ModeType.open ||\n            this.mode === ModeType.linkAssets ||\n            this.mode === ModeType.place ||\n            this.mode === ModeType.placeLinkOrEmbed\n        );\n    }\n\n    @action setFileCapabilites(\n        fileCapabilites: IFileCapabilitiesConfig | AssetBrowser.IFileSharingCapabilities,\n    ) {\n        this.fileCapabilities = new FileCapabilities(fileCapabilites);\n    }\n\n    @computed\n    get isSaveToFolderPicker() {\n        return this.mode === ModeType.saveToFolder;\n    }\n\n    @computed\n    get isChooseDirMode() {\n        // modes where user selects a destination directory, not an asset\n        return (\n            this.mode === ModeType.saveAs ||\n            this.mode === ModeType.saveAsCopy ||\n            this.mode === ModeType.saveToFolder ||\n            this.mode === ModeType.export ||\n            this.mode === ModeType.copy ||\n            this.mode === ModeType.move\n        );\n    }\n\n    @computed\n    get isPlaceOrPlaceLinkOrEmbedPicker() {\n        return this.mode === ModeType.place || this.mode === ModeType.placeLinkOrEmbed;\n    }\n\n    @computed\n    get isPlaceLinkOrEmbedPicker() {\n        return this.mode === ModeType.placeLinkOrEmbed;\n    }\n\n    @computed\n    get isOpenItemPicker() {\n        return this.mode === ModeType.open;\n    }\n\n    @action setTheme = (theme: Themes) => {\n        this.theme = theme;\n    };\n\n    @action setViewState = (state: ViewMode) => {\n        this.view = state;\n        setStorage('cdo:view-state', state);\n    };\n\n    @action updateModeState(mode: ModeType) {\n        this.mode = mode;\n    }\n\n    @action setDocumentFilterOverride(mimeTypes: string[]) {\n        this.documentFilterOverride = mimeTypes;\n    }\n\n    @action clearDocumentFilterOverride() {\n        // undefined means revert to default filters from initialization\n        this.documentFilterOverride = undefined;\n    }\n\n    @action setDocumentFilter(mimeTypes: string[]) {\n        this.documentFilter = mimeTypes;\n    }\n}\n\n// aliasing for clients who still use the old TS types when we had MST stores\ntype CDOStoreType = CDOStore;\nexport { CDOStore, type CDOStoreType, ViewMode };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SpectrumConfig, Themes } from '@csc/common';\nimport { Scales, ThemeTypes } from '../utils/constants';\nimport { useMemo } from 'react';\nimport I18N from '../utils/i18n';\n\nexport interface IUseProviderProps {\n    disableNativeControls?: boolean;\n    locale?: string;\n    scale?: Scales;\n    theme?: Themes;\n    themeType?: ThemeTypes;\n}\n\nexport interface IProvidersProps extends SpectrumConfig {\n    disableNativeControls: boolean;\n    locale: string;\n}\n\nexport default function useSpectrumProviderProps({\n    themeType,\n    scale,\n    disableNativeControls,\n    locale,\n    theme,\n}: IUseProviderProps): IProvidersProps {\n    return useMemo(\n        () => ({\n            locale: I18N.normalizeLocale(locale),\n            spectrumTheme: themeType ?? ThemeTypes.spectrum,\n            scale: scale ?? Scales.medium,\n            style: { height: '100%', width: '100%' },\n            disableNativeControls: disableNativeControls ?? false,\n            theme: theme ?? ('light' as const),\n        }),\n        [locale, themeType, scale, disableNativeControls, theme],\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport type { Scales, ThemeTypes } from '../utils/constants';\nimport type { UABSAMCore } from '@csc/sam-utils';\nimport { SAMProvider } from '@csc/sam-utils';\nimport type { SpectrumConfig, Themes } from '@csc/common';\nimport { HostConfigOverrides, SpectrumProvider, useHostConfig } from '@csc/common';\nimport { IntlWrapper } from '../contexts/IntlWrapper';\nimport useSpectrumProviderProps from '../hooks/useSpectrumProviderProps';\n\nexport interface IProvidersProps {\n    disableNativeControls: boolean;\n    locale: string;\n    spectrumTheme: ThemeTypes;\n    scale: Scales;\n    style: React.CSSProperties;\n    theme: SpectrumConfig['theme'];\n}\n\ninterface IRawProvidersProps {\n    disableNativeControls?: boolean;\n    hostConfigOverrides: Partial<HostConfig>;\n    sam: UABSAMCore;\n}\n\nexport const RawProvidersWrapper = observer(\n    (props: React.PropsWithChildren<IRawProvidersProps>) => {\n        const { children, disableNativeControls, hostConfigOverrides, sam } = props;\n        const { locale, scale, spectrumTheme, theme } = useHostConfig();\n\n        const providerProps = useSpectrumProviderProps({\n            disableNativeControls,\n            locale,\n            scale: scale as Scales,\n            theme: theme as Themes,\n            themeType: spectrumTheme as ThemeTypes,\n        });\n\n        return (\n            <HostConfigOverrides {...hostConfigOverrides}>\n                <SAMProvider value={sam ?? null}>\n                    <IntlWrapper>\n                        <SpectrumProvider {...providerProps}>{children}</SpectrumProvider>\n                    </IntlWrapper>\n                </SAMProvider>\n            </HostConfigOverrides>\n        );\n    },\n);\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { Component, forwardRef } from 'react';\nimport { reaction } from 'mobx';\nimport type { ToastStore } from '@csc/collection-view';\n\ninterface IToastOverlayProps {\n    toastStore: ToastStore;\n    innerRef?: any;\n}\n\nclass ToastOverlay extends Component<IToastOverlayProps> {\n    private disposer;\n\n    state = {\n        toastCoords: {\n            toastBottomOffset: undefined,\n            toastLeftOffset: undefined,\n            toastWidth: undefined,\n        },\n    };\n\n    private toastStore: ToastStore;\n\n    constructor(props) {\n        super(props);\n        this.toastStore = props.toastStore;\n    }\n\n    componentDidMount() {\n        this.disposer = reaction(\n            () => this.toastStore.toastCoords,\n            (coords) => {\n                this.setState({\n                    toastCoords: {\n                        ...this.state.toastCoords,\n                        ...coords,\n                    },\n                });\n            },\n        );\n    }\n\n    componentWillUnmount() {\n        this.disposer();\n    }\n\n    render() {\n        const { toastCoords } = this.state;\n        const { innerRef } = this.props;\n        return (\n            <div\n                ref={innerRef}\n                className=\"cdo-ToastOverlay\"\n                data-testid=\"cdo-ToastOverlay\"\n                style={{\n                    bottom: toastCoords.toastBottomOffset,\n                    left: toastCoords.toastLeftOffset,\n                    width: toastCoords.toastWidth,\n                }}\n            />\n        );\n    }\n}\n\nconst ToastOverlayRef = forwardRef<HTMLDivElement, IToastOverlayProps>((props, ref) => {\n    return <ToastOverlay innerRef={ref} {...props} />;\n});\n\nToastOverlayRef.displayName = 'ToastOverlayRef';\n\nexport default ToastOverlayRef;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { useRef, useState, useEffect, useCallback, useMemo } from 'react';\n\nimport { Provider as MobXProvider, observer } from 'mobx-react';\nimport type { SAM } from '@ccx-public/component-types';\n\nimport type { IAnalyticsData } from '@csc/collection-view';\nimport { ModeType, Themes, ViewMode, ToastStore, Busy } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport {\n    SpectrumProvider,\n    ChunkLoadErrorEvent,\n    useToasts,\n    useLoadPerformance,\n    useHostConfig,\n    NetworkProvider,\n} from '@csc/common';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport preload from '@ccx-public/spectrum-wrapper/dist/preload';\n\nimport { CDOStore } from '../stores/CDOStore';\nimport type { ThemeTypes, Scales } from '../utils/constants';\nimport { DEFAULTS } from '../utils/constants';\nimport type CDCGlobalStore from '../stores/CDCGlobalStore';\nimport { getCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport { setStorage, getStorage, LOCAL_STORAGE_KEY } from '../utils/storage';\nimport { RawProvidersWrapper } from '../contexts/RawProvidersWrapper';\nimport ToastOverlayRef from '../containers/ToastOverlay';\nimport { intlStore } from '../utils/i18n';\nimport { IntlWrapper } from '../contexts/IntlWrapper';\nimport type { IUseProviderProps } from '../hooks/useSpectrumProviderProps';\nimport useSpectrumProviderProps from '../hooks/useSpectrumProviderProps';\n\nexport function useInit(\n    globalStore: CDCGlobalStore,\n    messages: { [id: string]: string },\n    scale: Scales,\n    themeType: ThemeTypes,\n    theme: Themes,\n    dispatchEvent: (event: CustomEvent) => void,\n    mode: ModeType,\n    disableAnalytics?: boolean,\n) {\n    const cdoInitEnded = useLoadPerformance({\n        measureName: `CDOInit-${mode}`,\n        view: mode,\n        prefix: 'ace-cdo',\n        enablePerformanceMeasurement: true,\n        dispatchEvent,\n        trackPerformanceAnalytics: (measureName, duration) => {\n            globalStore.cdoMetrics.fireEvent({\n                event: {\n                    category: 'performance',\n                    subcategory: measureName,\n                    value: duration,\n                },\n            });\n        },\n    });\n\n    const [samInitialized, setSamInitialized] = useState(Boolean(globalStore.sam));\n    const [localeLoaded, setLocaleLoaded] = useState(intlStore.loaded);\n    const [swcLoaded, setSwcLoaded] = useState(false);\n\n    const fireInitEvent = useCallback(() => {\n        const featureFlags = JSON.stringify(globalStore.hostProductData.featureFlags) || '{}'; // [GLOW-1278] Prevent undefined featureFlags\n        globalStore.cdoMetrics.fireEvent({\n            event: {\n                subcategory: 'init',\n                value: JSON.parse(featureFlags.replace(/\\r?\\n|\\r/g, '')),\n            },\n        });\n        setStorage(LOCAL_STORAGE_KEY.INIT_LOGGED, true);\n    }, [globalStore.cdoMetrics, globalStore.hostProductData.featureFlags]);\n\n    const initSam = useCallback(async () => {\n        try {\n            await globalStore.waitForSAMInit();\n            setSamInitialized(true);\n        } catch (error) {\n            console.error('SAM initialization failed:', error);\n        }\n    }, [globalStore]);\n\n    const loadLocale = useCallback(async () => {\n        try {\n            // CDCGlobalStore calls `setLocale` first, but we do it again here\n            // to include the `messages` coming from props.\n            await globalStore.setLocale(messages);\n            setLocaleLoaded(true);\n        } catch (error) {\n            console.error('Locale initialization failed:', error);\n        }\n    }, [globalStore, messages]);\n\n    const preloadSWC = useCallback(async () => {\n        setSwcLoaded(false);\n        try {\n            await preload({ scale, spectrumTheme: themeType, theme });\n            setSwcLoaded(true);\n        } catch (error) {\n            console.error('SWC initialization failed:', error);\n            dispatchEvent(new ChunkLoadErrorEvent());\n        }\n    }, [dispatchEvent, scale, theme, themeType]);\n\n    const swcPromise = useMemo(() => preloadSWC(), [preloadSWC]);\n    const localePromise = useMemo(() => loadLocale(), [loadLocale]);\n    const samPromise = useMemo(() => initSam(), [initSam]);\n\n    const init = useCallback(async () => {\n        await Promise.all([samPromise, localePromise, swcPromise]);\n\n        if (!getStorage(LOCAL_STORAGE_KEY.INIT_LOGGED) && !disableAnalytics) {\n            fireInitEvent();\n        }\n    }, [samPromise, localePromise, swcPromise, fireInitEvent, disableAnalytics]);\n\n    useEffect(() => {\n        let performanceAlreadyMeasured = false;\n        const measure = () => {\n            if (performanceAlreadyMeasured) {\n                return;\n            }\n            cdoInitEnded();\n            performanceAlreadyMeasured = true;\n        };\n\n        // eslint-disable-next-line promise/catch-or-return, @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        init().finally(measure);\n\n        const handleOnline = () => void init().finally(measure);\n\n        window.addEventListener('online', handleOnline);\n\n        return () => {\n            window.removeEventListener('online', handleOnline);\n        };\n    }, [cdoInitEnded, init]);\n\n    return { samInitialized, localeLoaded, swcLoaded };\n}\n\nexport interface ICDOProviderProps {\n    hostProductData: AssetBrowser.ICDOHostProductData;\n    imsData: AssetBrowser.IIMSData;\n    mode?: ModeType;\n    analyticsData?: IAnalyticsData;\n    messages?: { [id: string]: string };\n    callbacks?: AssetBrowser.ICDOCallbacks;\n    maxRecents?: number;\n    documentFilterOverride?: string[];\n    hostToastOverlay?: HTMLDivElement;\n    disableNativeControls?: boolean;\n    __assetContext_forTestingOnly?: SAM.AssetContext;\n    children?: React.ReactNode;\n    // For testing only\n    __cdoStoreForTests?: CDOStore;\n}\n\n/**\n * Minimal, \"thin\" version of CDOProvider that does not init SAM, fetch locale, preload SWC, and\n * only renders IntlWrapper & SpectrumProvider.\n *\n * Intended for use only within FMHS Recents (via CDOReactComponent)\n */\nexport const ThinCDOProvider = observer(function ThinCDOProvider(\n    props: React.PropsWithChildren<IUseProviderProps>,\n) {\n    const { children, disableNativeControls, locale, scale, theme, themeType } = props;\n\n    const providerProps = useSpectrumProviderProps({\n        disableNativeControls,\n        locale,\n        scale,\n        theme,\n        themeType,\n    });\n\n    return (\n        <IntlWrapper>\n            <NetworkProvider>\n                <SpectrumProvider {...providerProps}>{children}</SpectrumProvider>\n            </NetworkProvider>\n        </IntlWrapper>\n    );\n});\n\nexport default observer(function CDOProvider(props: ICDOProviderProps) {\n    const {\n        hostProductData,\n        imsData,\n        mode = ModeType.organizer,\n        callbacks,\n        messages = DEFAULTS.MESSAGES,\n        documentFilterOverride,\n        __assetContext_forTestingOnly,\n        disableNativeControls,\n        children,\n        __cdoStoreForTests,\n    } = props;\n    const {\n        disableAnalytics,\n        dispatchEvent,\n        scale,\n        showModal: hostShowModal,\n        showToast: hostShowToast,\n        spectrumTheme,\n        theme,\n    } = useHostConfig();\n    const toastOverlayRef = useRef<any>(null);\n\n    const [toastContainer, fallbackShowToast] = useToasts({\n        scale,\n        spectrumTheme: spectrumTheme === 'default' ? undefined : spectrumTheme,\n        theme,\n    });\n\n    // Use external showToast if provided, otherwise use internal\n    const showToast = useMemo(\n        () => hostShowToast ?? fallbackShowToast,\n        [hostShowToast, fallbackShowToast],\n    );\n\n    const globalStore = getCDCGlobalStore({\n        hostProductData,\n        __assetContext_forTestingOnly,\n        imsData,\n        dispatchEvent,\n        showToast,\n        disableAnalytics,\n    });\n\n    // Use the provided test store or create a new one\n    const cdoStore = useRef<CDOStore>(\n        __cdoStoreForTests ??\n            new CDOStore({\n                theme: theme as Themes,\n                hostProductData,\n                documentFilter: hostProductData.documentFilter,\n                documentExclusionFilter: hostProductData.documentExclusionFilter ?? [],\n                mode: mode,\n                view: (getStorage(LOCAL_STORAGE_KEY.VIEW_STATE) as ViewMode) || ViewMode.Grid,\n            }),\n    ).current;\n\n    const toastStore = useRef(new ToastStore({})).current;\n\n    const showModal = useCallback<ShowModalFn>(\n        async (element, options) => {\n            const modalContent = (\n                <>\n                    <RawProvidersWrapper\n                        disableNativeControls={disableNativeControls}\n                        hostConfigOverrides={{\n                            showToast,\n                            showModal,\n                            platform: hostProductData.platform ?? '',\n                            platformOSVersion: hostProductData.platformVersion ?? '',\n                        }}\n                        sam={globalStore.sam}\n                    >\n                        {element}\n                    </RawProvidersWrapper>\n                </>\n            );\n\n            const showModalResult = await (hostShowModal?.(modalContent, options) ??\n                Promise.reject({ type: AssetBrowser.ShowModalResultType.NotImplemented }));\n            return showModalResult;\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Add missing dependencies\n        [\n            showToast,\n            hostProductData.platform,\n            hostProductData.platformVersion,\n            globalStore.sam,\n            hostShowModal,\n        ],\n    );\n\n    useEffect(() => {\n        globalStore.cdoMetrics.setGetView(() => cdoStore.view);\n    }, [globalStore.cdoMetrics, cdoStore]);\n\n    useEffect(() => {\n        const fileSharingCapabilities = callbacks?.getFileSharingCapabilities?.();\n        if (fileSharingCapabilities) {\n            cdoStore.setFileCapabilites(fileSharingCapabilities);\n        }\n    }, [callbacks, cdoStore]);\n\n    useEffect(() => {\n        cdoStore.updateModeState(mode);\n    }, [cdoStore, mode]);\n\n    useEffect(() => {\n        if (!documentFilterOverride) {\n            cdoStore.clearDocumentFilterOverride();\n        } else {\n            cdoStore.setDocumentFilterOverride(documentFilterOverride);\n        }\n    }, [cdoStore, documentFilterOverride]);\n\n    useEffect(() => {\n        cdoStore.setTheme(theme as Themes);\n    }, [cdoStore, theme]);\n\n    useEffect(() => {\n        if (hostProductData.documentFilter) {\n            cdoStore.setDocumentFilter(hostProductData.documentFilter);\n        }\n    }, [cdoStore, hostProductData.documentFilter]);\n\n    const { samInitialized, localeLoaded } = useInit(\n        globalStore,\n        messages,\n        scale as Scales,\n        spectrumTheme as ThemeTypes,\n        theme as Themes,\n        dispatchEvent,\n        mode,\n        disableAnalytics,\n    );\n\n    // TODO: We need to handle failure to init SAM, load locale, or preload SWC\n    // instead of showing busy, we should show a relevant emptyview\n    if (!samInitialized || !localeLoaded /* || !swcLoaded */) {\n        // intentionally bypass busy spinner even if SWC fails to load\n        // because a broken UI signals \"something went wrong outside of UAB\"\n        // whereas an indefinite busy spinner signals \"something went wrong within UAB\".\n        // we dispatch a ChunkLoadErrorEvent to track this failure anyway, so\n        // hosts can show a different view in that case and this broken UI should\n        // never be shown to the user.\n        return (\n            <SpectrumProvider theme={theme ?? Themes.light}>\n                <Busy data-testid=\"cdoprovider-busy-spinner\" />\n            </SpectrumProvider>\n        );\n    }\n\n    return (\n        <>\n            <RawProvidersWrapper\n                hostConfigOverrides={{\n                    showToast,\n                    showModal,\n                    platform: hostProductData.platform ?? '',\n                    platformOSVersion: hostProductData.platformVersion ?? '',\n                }}\n                sam={globalStore.sam}\n            >\n                <NetworkProvider>\n                    <MobXProvider cdoStore={cdoStore} toastStore={toastStore} callbacks={callbacks}>\n                        <>\n                            <ToastOverlayRef ref={toastOverlayRef} toastStore={toastStore} />\n                            {children}\n                        </>\n                    </MobXProvider>\n                </NetworkProvider>\n            </RawProvidersWrapper>\n            {/* fallback showToast if host doesn't provide one */}\n            {!hostShowToast && toastContainer}\n        </>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_SIZE = {\n    width: 136,\n    height: 120,\n};\n\nconst NoConnection = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    primaryColor = '#b1b1b1',\n    className = '',\n}) => (\n    <svg\n        className={classNames('cdo-NoConnection', className)}\n        width={width}\n        height={height}\n        viewBox={`0 0 ${width} ${height}`}\n        fill=\"none\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        style={{ marginLeft: '8px' }}\n    >\n        <g\n            clipPath=\"url(#clip0_3341_9329)\"\n            id=\"no_cloud_internet_connection_lg\"\n            data-name=\"no cloud internet connection lg\"\n        >\n            <path\n                fill={primaryColor}\n                d=\"M91.7001 79.3622C91.4036 79.362 91.1139 79.2739 90.8674 79.109C90.621 78.9442 90.4289 78.71 90.3155 78.4361C90.2021 78.1621 90.1724 77.8607 90.2302 77.57C90.2879 77.2792 90.4306 77.012 90.6401 76.8022C96.9516 70.4897 100.497 61.9287 100.497 53.0022C100.497 44.0757 96.9516 35.5147 90.6401 29.2022C90.3669 28.9193 90.2157 28.5404 90.2191 28.1471C90.2225 27.7538 90.3803 27.3776 90.6584 27.0995C90.9365 26.8214 91.3127 26.6636 91.706 26.6602C92.0993 26.6568 92.4782 26.808 92.7611 27.0812C99.6359 33.9563 103.498 43.2806 103.498 53.0032C103.498 62.7258 99.6359 72.0502 92.7611 78.9252C92.4793 79.2058 92.0977 79.3629 91.7001 79.3622Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M100.765 88.8684C100.468 88.8683 100.179 88.7804 99.932 88.6156C99.6854 88.4509 99.4932 88.2167 99.3797 87.9427C99.2661 87.6688 99.2363 87.3673 99.2941 87.0764C99.3518 86.7855 99.4945 86.5182 99.7041 86.3084C104.078 81.9347 107.548 76.7421 109.916 71.0273C112.283 65.3124 113.502 59.1872 113.502 53.0014C113.502 46.8156 112.283 40.6904 109.916 34.9755C107.548 29.2607 104.078 24.0681 99.7041 19.6944C99.4308 19.4115 99.2796 19.0326 99.2831 18.6393C99.2865 18.246 99.4442 17.8698 99.7223 17.5917C100 17.3136 100.377 17.1558 100.77 17.1524C101.163 17.149 101.542 17.3002 101.825 17.5734C106.478 22.2257 110.169 27.7489 112.687 33.8277C115.205 39.9065 116.501 46.4217 116.501 53.0014C116.501 59.5811 115.205 66.0964 112.687 72.1751C110.169 78.2539 106.478 83.7771 101.825 88.4294C101.544 88.7104 101.163 88.8683 100.765 88.8684Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M67 104C66.6022 104 66.2206 103.842 65.9393 103.561C65.658 103.279 65.5 102.898 65.5 102.5V53.5C65.5 53.1022 65.658 52.7206 65.9393 52.4393C66.2206 52.158 66.6022 52 67 52C67.3978 52 67.7794 52.158 68.0607 52.4393C68.342 52.7206 68.5 53.1022 68.5 53.5V102.5C68.5 102.898 68.342 103.279 68.0607 103.561C67.7794 103.842 67.3978 104 67 104Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M32.877 68H7.12303C6.48814 68.0005 5.86431 67.8338 5.31427 67.5168C4.76423 67.1997 4.30736 66.7434 3.98961 66.1937C3.67186 65.6441 3.50443 65.0205 3.50415 64.3856C3.50387 63.7507 3.67076 63.1269 3.98803 62.577L16.865 40.307C17.1834 39.7574 17.6406 39.3012 18.1908 38.9841C18.741 38.6669 19.3649 38.5 20 38.5C20.6351 38.5 21.259 38.6669 21.8093 38.9841C22.3595 39.3012 22.8167 39.7574 23.135 40.307L36.012 62.577C36.3296 63.1269 36.4968 63.7507 36.4966 64.3857C36.4965 65.0207 36.3291 65.6445 36.0113 66.1942C35.6935 66.744 35.2365 67.2003 34.6863 67.5173C34.136 67.8343 33.512 68.0008 32.877 68ZM19.463 41.809L6.58503 64.079C6.53151 64.1729 6.50365 64.2792 6.50422 64.3873C6.5048 64.4954 6.5338 64.6014 6.58832 64.6947C6.64283 64.788 6.72094 64.8654 6.81479 64.9189C6.90865 64.9725 7.01495 65.0005 7.12303 65H32.877C32.9851 65.0006 33.0915 64.9727 33.1854 64.9191C33.2793 64.8656 33.3574 64.7882 33.4118 64.6948C33.4663 64.6014 33.4952 64.4953 33.4956 64.3872C33.4959 64.2791 33.4678 64.1728 33.414 64.079L20.537 41.809C20.4824 41.715 20.4041 41.6369 20.3098 41.5827C20.2156 41.5284 20.1088 41.4999 20 41.4999C19.8913 41.4999 19.7845 41.5284 19.6902 41.5827C19.596 41.6369 19.5176 41.715 19.463 41.809Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M20 57.0195C19.6022 57.0195 19.2206 56.8615 18.9393 56.5802C18.658 56.2989 18.5 55.9174 18.5 55.5195V50.5195C18.5 50.1217 18.658 49.7402 18.9393 49.4589C19.2206 49.1776 19.6022 49.0195 20 49.0195C20.3978 49.0195 20.7794 49.1776 21.0607 49.4589C21.342 49.7402 21.5 50.1217 21.5 50.5195V55.5195C21.5 55.9174 21.342 56.2989 21.0607 56.5802C20.7794 56.8615 20.3978 57.0195 20 57.0195Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M20 62C20.9665 62 21.75 61.2165 21.75 60.25C21.75 59.2835 20.9665 58.5 20 58.5C19.0335 58.5 18.25 59.2835 18.25 60.25C18.25 61.2165 19.0335 62 20 62Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M82.483 70.2309C82.1865 70.2307 81.8968 70.1426 81.6504 69.9777C81.4039 69.8129 81.2119 69.5787 81.0984 69.3048C80.985 69.0309 80.9553 68.7295 81.0131 68.4387C81.0709 68.1479 81.2135 67.8807 81.423 67.6709C85.314 63.7799 87.4999 58.5026 87.4999 52.9999C87.4999 47.4972 85.314 42.2199 81.423 38.3289C81.2797 38.1906 81.1655 38.025 81.0869 37.842C81.0083 37.659 80.9669 37.4622 80.9651 37.263C80.9634 37.0639 81.0014 36.8663 81.0768 36.682C81.1522 36.4977 81.2636 36.3302 81.4044 36.1893C81.5453 36.0485 81.7127 35.9371 81.8971 35.8617C82.0814 35.7863 82.279 35.7483 82.4781 35.7501C82.6773 35.7518 82.8741 35.7932 83.0571 35.8718C83.2401 35.9504 83.4056 36.0647 83.544 36.2079C85.7493 38.413 87.4987 41.0309 88.6923 43.912C89.8858 46.7932 90.5001 49.8813 90.5001 52.9999C90.5001 56.1185 89.8858 59.2066 88.6923 62.0878C87.4987 64.969 85.7493 67.5869 83.544 69.7919C83.4047 69.9312 83.2392 70.0416 83.0572 70.117C82.8751 70.1923 82.68 70.231 82.483 70.2309Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M51.5171 71.2292C51.3201 71.2293 51.125 71.1906 50.9429 71.1153C50.7609 71.0399 50.5954 70.9295 50.4561 70.7902C48.2508 68.5852 46.5014 65.9673 45.3078 63.0861C44.1143 60.2049 43.5 57.1168 43.5 53.9982C43.5 50.8796 44.1143 47.7915 45.3078 44.9103C46.5014 42.0292 48.2508 39.4113 50.4561 37.2062C50.739 36.933 51.1179 36.7818 51.5112 36.7852C51.9045 36.7886 52.2807 36.9464 52.5588 37.2245C52.8369 37.5026 52.9947 37.8788 52.9981 38.2721C53.0015 38.6654 52.8503 39.0443 52.5771 39.3272C48.6861 43.2182 46.5002 48.4955 46.5002 53.9982C46.5002 59.5009 48.6861 64.7782 52.5771 68.6692C52.7866 68.879 52.9292 69.1462 52.987 69.437C53.0448 69.7278 53.0151 70.0291 52.9017 70.3031C52.7882 70.577 52.5962 70.8112 52.3498 70.976C52.1033 71.1409 51.8136 71.229 51.5171 71.2292Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M42.428 80.361C42.231 80.3611 42.0359 80.3224 41.8539 80.2471C41.6718 80.1717 41.5064 80.0613 41.367 79.922C39.2299 77.7859 37.3651 75.3938 35.815 72.8C35.7141 72.6308 35.6475 72.4434 35.619 72.2484C35.5905 72.0535 35.6007 71.8548 35.649 71.6638C35.6973 71.4728 35.7827 71.2932 35.9005 71.1352C36.0182 70.9772 36.1658 70.8439 36.335 70.743C36.5043 70.6421 36.6917 70.5755 36.8866 70.547C37.0816 70.5185 37.2802 70.5287 37.4712 70.577C37.6623 70.6253 37.8419 70.7107 37.9999 70.8284C38.1579 70.9461 38.2911 71.0938 38.392 71.263C39.8154 73.6462 41.5285 75.8439 43.492 77.806C43.7016 78.0158 43.8442 78.283 43.902 78.5738C43.9597 78.8646 43.93 79.1659 43.8166 79.4399C43.7032 79.7138 43.5111 79.948 43.2647 80.1128C43.0183 80.2776 42.7285 80.3658 42.432 80.366L42.428 80.361Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M32.4999 50.4158C32.4266 50.4159 32.3534 50.4105 32.2809 50.3998C31.8876 50.3421 31.5332 50.1307 31.2956 49.812C31.058 49.4932 30.9567 49.0932 31.0139 48.6998C32.1716 40.8963 35.8001 33.6695 41.3669 28.0798C41.6483 27.7985 42.0299 27.6405 42.4278 27.6406C42.8256 27.6407 43.2071 27.7989 43.4884 28.0803C43.7697 28.3616 43.9276 28.7432 43.9275 29.1411C43.9274 29.539 43.7693 29.9205 43.4879 30.2018C38.3796 35.3352 35.0502 41.9701 33.9879 49.1338C33.9355 49.4907 33.7562 49.8167 33.4829 50.0522C33.2096 50.2876 32.8606 50.4167 32.4999 50.4158Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M33.0211 89.8671C32.6235 89.867 32.2423 89.7092 31.9611 89.4281C27.624 85.0955 24.122 80.0012 21.6301 74.4001C21.468 74.0368 21.457 73.624 21.5993 73.2524C21.7416 72.8809 22.0257 72.5812 22.3891 72.4191C22.7524 72.2571 23.1653 72.246 23.5368 72.3884C23.9083 72.5307 24.208 72.8148 24.3701 73.1781C26.7128 78.443 30.0051 83.2316 34.0821 87.3041C34.2916 87.514 34.4343 87.7812 34.4921 88.0721C34.5498 88.363 34.52 88.6645 34.4065 88.9384C34.2929 89.2124 34.1007 89.4466 33.8541 89.6113C33.6075 89.7761 33.3176 89.8641 33.0211 89.8641V89.8671Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"M23.0001 35.6992C22.7501 35.6991 22.5041 35.6364 22.2844 35.517C22.0648 35.3976 21.8785 35.2251 21.7425 35.0154C21.6064 34.8056 21.525 34.5652 21.5055 34.3159C21.4861 34.0667 21.5292 33.8165 21.6311 33.5882C24.1235 27.9909 27.6252 22.9004 31.9611 18.5712C32.0994 18.4279 32.2649 18.3137 32.448 18.2351C32.631 18.1564 32.8278 18.1151 33.027 18.1133C33.2261 18.1116 33.4236 18.1496 33.608 18.225C33.7923 18.3004 33.9598 18.4118 34.1007 18.5526C34.2415 18.6935 34.3529 18.8609 34.4283 19.0453C34.5037 19.2296 34.5417 19.4271 34.5399 19.6263C34.5382 19.8255 34.4968 20.0223 34.4182 20.2053C34.3396 20.3883 34.2253 20.5538 34.0821 20.6922C30.0059 24.7635 26.7143 29.5507 24.3721 34.8142C24.2533 35.0785 24.0605 35.3027 23.817 35.4597C23.5735 35.6168 23.2898 35.7 23.0001 35.6992Z\"\n            />\n        </g>\n        <defs>\n            <clipPath id=\"clip0_3341_9329\">\n                <rect width={width} height={height} fill=\"white\" transform=\"translate(0.5)\" />\n            </clipPath>\n        </defs>\n    </svg>\n);\n\nexport const SWYNoConnection = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    primaryColor = '#b1b1b1',\n    className = '',\n}) => (\n    <svg\n        width={width}\n        height={height}\n        viewBox=\"0 0 100 65\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        className={classNames('cdo-NoConnection', className)}\n        style={{ marginLeft: '12px' }}\n    >\n        <path\n            fillRule=\"evenodd\"\n            d=\"M50.9702 17.7C42.9421 17.7 36.109 22.7312 33.114 29.8482C31.9438 29.5363 30.7171 29.37 29.4502 29.37C21.2137 29.37 14.6902 36.3191 14.6902 44.7C14.6902 45.2793 14.7226 45.8474 14.7846 46.4052C10.1414 48.4837 6.9502 53.262 6.9502 58.77C6.9502 66.0539 12.5694 72.1102 19.7168 72.2297L19.7502 72.23H54.6002C55.7048 72.23 56.6002 71.3345 56.6002 70.23C56.6002 69.1254 55.7048 68.23 54.6002 68.23H19.7679C14.9622 68.1407 10.9502 64.0203 10.9502 58.77C10.9502 54.346 13.8038 50.7107 17.5791 49.6332C18.6002 49.3417 19.2155 48.3031 18.9807 47.2676C18.792 46.4356 18.6902 45.584 18.6902 44.7C18.6902 38.3608 23.5867 33.37 29.4502 33.37C30.8986 33.37 32.2685 33.6706 33.525 34.2151C34.0471 34.4413 34.6408 34.4345 35.1575 34.1962C35.6743 33.958 36.0651 33.511 36.2321 32.967C38.2563 26.3748 44.1317 21.7 50.9702 21.7C59.4442 21.7 66.4602 28.9013 66.4602 37.97V37.9707V37.9715V37.9722V37.973V37.9738V37.9745V37.9753V37.976V37.9768V37.9776V37.9783V37.9791V37.9799V37.9806V37.9814V37.9821V37.9829V37.9837V37.9844V37.9852V37.9859V37.9867V37.9875V37.9882V37.989V37.9898V37.9905V37.9913V37.992V37.9928V37.9936V37.9943V37.9951V37.9958V37.9966V37.9974V37.9981V37.9989V37.9997V38.0004V38.0012V38.0019V38.0027V38.0035V38.0042V38.005V38.0058V38.0065V38.0073V38.008V38.0088V38.0096V38.0103V38.0111V38.0118V38.0126V38.0134V38.0141V38.0149V38.0157V38.0164V38.0172V38.0179V38.0187V38.0195V38.0202V38.021V38.0217V38.0225V38.0233V38.024V38.0248V38.0256V38.0263V38.0271V38.0278V38.0286V38.0294V38.0301V38.0309V38.0317V38.0324V38.0332V38.0339V38.0347V38.0355V38.0362V38.037V38.0377V38.0385V38.0393V38.04V38.0408V38.0416V38.0423V38.0431V38.0438V38.0446V38.0454V38.0461V38.0469V38.0476V38.0484V38.0492V38.0499V38.0507V38.0515V38.0522V38.053V38.0537V38.0545V38.0553V38.056V38.0568V38.0575V38.0583V38.0591V38.0598V38.0606V38.0614V38.0621V38.0629V38.0636V38.0644V38.0652V38.0659V38.0667V38.0675V38.0682V38.069V38.0697V38.0705V38.0713V38.072V38.0728V38.0735V38.0743V38.0751V38.0758V38.0766V38.0774V38.0781V38.0789V38.0796V38.0804V38.0812V38.0819V38.0827V38.0834V38.0842V38.085V38.0857V38.0865V38.0873V38.088V38.0888V38.0895V38.0903V38.0911V38.0918V38.0926V38.0933V38.0941V38.0949V38.0956V38.0964V38.0972V38.0979V38.0987V38.0994V38.1002V38.101V38.1017V38.1025V38.1033V38.104V38.1048V38.1055V38.1063V38.1071V38.1078V38.1086V38.1093V38.1101V38.1109V38.1116V38.1124V38.1132V38.1139V38.1147V38.1154V38.1162V38.117V38.1177V38.1185V38.1192V38.12V38.1208V38.1215V38.1223V38.1231V38.1238V38.1246V38.1253V38.1261V38.1269V38.1276V38.1284V38.1292V38.1299V38.1307V38.1314V38.1322V38.133V38.1337V38.1345V38.1352V38.136V38.1368V38.1375V38.1383V38.1391V38.1398V38.1406V38.1413V38.1421V38.1429V38.1436V38.1444V38.1451V38.1459V38.1467V38.1474V38.1482V38.149V38.1497V38.1505V38.1512V38.152V38.1528V38.1535V38.1543V38.155V38.1558V38.1566V38.1573V38.1581V38.1589V38.1596V38.1604V38.1611V38.1619V38.1627V38.1634V38.1642V38.165V38.1657V38.1665V38.1672V38.168V38.1688V38.1695V38.1703V38.171V38.1718V38.1726V38.1733V38.1741V38.1749V38.1756V38.1764V38.1771V38.1779V38.1787V38.1794V38.1802V38.1809V38.1817V38.1825V38.1832V38.184V38.1848V38.1855V38.1863V38.187V38.1878V38.1886V38.1893V38.1901V38.1908V38.1916V38.1924V38.1931V38.1939V38.1947V38.1954V38.1962V38.1969V38.1977V38.1985V38.1992V38.2V38.2008V38.2015V38.2023V38.203V38.2038V38.2046V38.2053V38.2061V38.2068V38.2076V38.2084V38.2091V38.2099V38.2107V38.2114V38.2122V38.2129V38.2137V38.2145V38.2152V38.216V38.2167V38.2175V38.2183V38.219V38.2198V38.2206V38.2213V38.2221V38.2228V38.2236V38.2244V38.2251V38.2259V38.2267V38.2274V38.2282V38.2289V38.2297V38.2305V38.2312V38.232V38.2327V38.2335V38.2343V38.235V38.2358V38.2366V38.2373V38.2381V38.2388V38.2396V38.2404V38.2411V38.2419V38.2426V38.2434V38.2442V38.2449V38.2457V38.2465V38.2472V38.248V38.2487V38.2495V38.2503V38.251V38.2518V38.2525V38.2533V38.2541V38.2548V38.2556V38.2564V38.2571V38.2579V38.2586V38.2594V38.2602V38.2609V38.2617V38.2625V38.2632V38.264V38.2647V38.2655V38.2663V38.267V38.2678V38.2685V38.2693V38.2701V38.2708V38.2716V38.2724V38.2731V38.2739V38.2746V38.2754V38.2762V38.2769V38.2777V38.2784V38.2792V38.28V38.2807V38.2815V38.2823V38.283V38.2838V38.2845V38.2853V38.2861V38.2868V38.2876V38.2883V38.2891V38.2899V38.2906V38.2914V38.2922V38.2929V38.2937V38.2944V38.2952V38.296V38.2967V38.2975V38.2983V38.299V38.2998V38.3005V38.3013V38.3021V38.3028V38.3036V38.3043V38.3051V38.3059V38.3066V38.3074V38.3082V38.3089V38.3097V38.3104V38.3112V38.312V38.3127V38.3135V38.3142V38.315V38.3158V38.3165V38.3173V38.3181V38.3188V38.3196V38.3203V38.3211V38.3219V38.3226V38.3234V38.3242V38.3249V38.3257V38.3264V38.3272V38.328V38.3287V38.3295V38.3302V38.331V38.3318V38.3325V38.3333V38.3341V38.3348V38.3356V38.3363V38.3371V38.3379V38.3386V38.3394V38.3401V38.3409V38.3417V38.3424V38.3432V38.344V38.3447V38.3455V38.3462V38.347V38.3478V38.3485V38.3493V38.35V38.3508V38.3516V38.3523V38.3531V38.3539V38.3546V38.3554V38.3561V38.3569V38.3577V38.3584V38.3592V38.36C66.4602 39.4189 67.2856 40.2943 68.3428 40.3565C71.8571 40.5632 75.0138 42.2073 77.2968 44.7703C78.0315 45.595 79.2957 45.6681 80.1205 44.9334C80.9453 44.1987 81.0183 42.9344 80.2836 42.1096C77.74 39.2541 74.3065 37.2396 70.4145 36.5737C69.7264 26.1016 61.3583 17.7 50.9702 17.7ZM57.5996 61.57C57.5996 53.44 64.1896 46.85 72.3196 46.85C80.4496 46.85 87.0396 53.44 87.0396 61.57C87.0396 69.7 80.4496 76.29 72.3196 76.29C64.1896 76.29 57.5996 69.7 57.5996 61.57ZM78.5996 67.85C79.3796 67.07 79.3796 65.8 78.5996 65.02H78.6196L75.1696 61.57L78.6196 58.12C79.3996 57.34 79.3996 56.07 78.6196 55.29C77.8396 54.51 76.5696 54.51 75.7896 55.29L72.3396 58.74L68.8896 55.29C68.1096 54.51 66.8396 54.51 66.0596 55.29C65.2796 56.07 65.2796 57.34 66.0596 58.12L69.5096 61.57L66.0596 65.02C65.2796 65.8 65.2796 67.07 66.0596 67.85C66.4496 68.24 66.9596 68.44 67.4696 68.44C67.9796 68.44 68.4896 68.24 68.8796 67.85L72.3296 64.4L75.7796 67.85C76.1696 68.24 76.6796 68.44 77.1896 68.44C77.6996 68.44 78.2096 68.24 78.5996 67.85Z\"\n            fill={primaryColor}\n        />\n    </svg>\n);\n\nexport const DeletedNoConnection = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    primaryColor = '#b1b1b1',\n    className = '',\n}) => (\n    <svg\n        className={classNames('cdo-NoConnection', className)}\n        width={width}\n        height={height}\n        viewBox={`0 0 ${width} ${height}`}\n        fill=\"none\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        style={{ marginLeft: '8px' }}\n    >\n        <g\n            clipPath=\"url(#clip0_3341_37251)\"\n            id=\"no_cloud_internet_connection_lg\"\n            data-name=\"no cloud internet connection lg\"\n        >\n            <path\n                d=\"M95.55 63.025C95.1777 62.626 94.6567 62.3992 94.111 62.3984H46.7516C45.6654 62.3986 44.7851 63.2792 44.7853 64.3654C44.7853 64.4119 44.7869 64.4583 44.7902 64.5047L48.3059 113.725C48.5024 116.354 50.6885 118.39 53.325 118.398H87.5375C90.1743 118.39 92.3605 116.354 92.5567 113.724L96.0723 64.5047C96.1104 63.9604 95.9213 63.4247 95.55 63.025ZM90.1629 113.553C90.0603 114.929 88.9168 115.994 87.5375 115.998H53.325C51.946 115.994 50.8026 114.929 50.6996 113.554L47.2172 64.7984H93.6453L90.1629 113.553Z\"\n                fill={primaryColor}\n            />\n            <path\n                d=\"M45.5672 53.4949C46.1369 53.1563 46.3242 52.42 45.9856 51.8504C45.9856 51.8504 45.9856 51.8504 45.9856 51.8504L17.1152 3.29019C16.7765 2.72043 16.04 2.53313 15.4703 2.87183C14.9005 3.21054 14.7132 3.94699 15.0519 4.51675L23.5758 18.8539L21.2453 20.2402C18.5688 21.8308 17.6884 25.29 19.279 27.9666C19.2794 27.9672 19.2797 27.9677 19.2801 27.9683L25.4867 38.4074C26.248 39.6955 27.493 40.6255 28.9441 40.9902C29.4014 41.107 29.8714 41.1663 30.3433 41.1668C31.3548 41.1662 32.3473 40.8916 33.2152 40.3722L35.5455 38.9871L43.9223 53.0769C44.2609 53.6465 44.9976 53.8335 45.5672 53.4949C45.5673 53.4948 45.5671 53.495 45.5672 53.4949ZM31.9887 38.3097C30.4511 39.2234 28.4639 38.7181 27.5496 37.1808L21.3426 26.7418C20.4284 25.2044 20.9337 23.2171 22.471 22.303C22.4709 22.3031 22.4712 22.3029 22.471 22.303L24.802 20.9164L34.3192 36.9246L31.9887 38.3097Z\"\n                fill={primaryColor}\n            />\n            <path\n                d=\"M59.8727 109.651C59.8918 109.651 59.9109 109.65 59.9305 109.649C60.3711 109.617 60.7029 109.235 60.6715 108.794L58.0891 72.6415C58.0576 72.2008 57.6748 71.869 57.234 71.9005C56.7933 71.932 56.4615 72.3148 56.493 72.7556L59.0754 108.908C59.1054 109.326 59.4533 109.65 59.8727 109.651Z\"\n                fill={primaryColor}\n            />\n            <path\n                d=\"M80.025 109.649C80.0445 109.65 80.0637 109.651 80.0828 109.651C80.5022 109.65 80.8501 109.326 80.8801 108.908L83.4621 72.7556C83.4936 72.3148 83.1618 71.932 82.7211 71.9005C82.2804 71.869 81.8975 72.2008 81.866 72.6415L79.284 108.794C79.2526 109.235 79.5844 109.617 80.025 109.649Z\"\n                fill={primaryColor}\n            />\n            <path\n                d=\"M70.1 109.6C70.5417 109.6 70.8999 109.242 70.9 108.8C70.9 108.8 70.9 108.801 70.9 108.8V72.8C70.9 72.3582 70.5418 72 70.1 72C69.6582 72 69.3 72.3582 69.3 72.8V108.8C69.2999 109.242 69.6583 109.6 70.1 109.6C70.1001 109.6 70.0998 109.6 70.1 109.6Z\"\n                fill={primaryColor}\n            />\n            <path\n                d=\"M51.7098 41.9238L75.0516 54.1152C77.6448 55.4667 80.8426 54.4627 82.198 51.8715L95.3066 26.7707C96.0095 25.4338 96.1498 23.8717 95.6965 22.4309L93.173 14.3395C92.7177 12.8931 91.7091 11.6853 90.3672 10.9793L72.691 1.74806C70.0975 0.39911 66.9015 1.40254 65.5445 3.99181L49.4668 34.7777C48.1127 37.37 49.1163 40.5691 51.7085 41.9232L51.7098 41.9238ZM51.5941 35.8887L67.6719 5.10275C68.4125 3.685 70.1621 3.13589 71.5801 3.87619L89.2558 13.1067C90.0332 13.5159 90.6175 14.2156 90.8816 15.0535L93.4051 23.1449C93.6677 23.9798 93.5865 24.885 93.1793 25.6598L80.0707 50.7606C79.3299 52.1782 77.5805 52.7272 76.1625 51.9871L52.8207 39.7965C51.403 39.0565 50.8536 37.3074 51.5936 35.8897L51.5941 35.8887Z\"\n                fill={primaryColor}\n            />\n            <path\n                d=\"M80.1918 35.2964C80.6843 35.5642 81.236 35.7044 81.7965 35.7042C83.6737 35.7096 85.1998 34.1921 85.2051 32.3149C85.2105 30.4377 83.693 28.9116 81.8158 28.9063C79.9386 28.9009 78.4125 30.4184 78.4072 32.2956C78.4036 33.5483 79.0894 34.7014 80.1918 35.2964ZM80.2391 31.4222C80.5584 30.8294 81.1767 30.459 81.85 30.4574C82.1455 30.4571 82.4363 30.5307 82.6961 30.6714C83.5921 31.1395 83.9389 32.2452 83.4709 33.1412C83.0028 34.0371 81.897 34.384 81.0011 33.9159C80.1051 33.4478 79.7583 32.3421 80.2264 31.4461C80.2305 31.4381 80.2348 31.4301 80.2391 31.4222Z\"\n                fill={primaryColor}\n            />\n            <path\n                d=\"M56.6988 33.6056L78.4434 44.9087C78.8356 45.1124 79.3186 44.9596 79.5223 44.5674C79.6159 44.3873 79.6375 44.1783 79.5828 43.9829L77.0492 34.9165C76.8057 34.1056 75.9509 33.6456 75.14 33.8891C75.1366 33.8902 75.1331 33.8912 75.1297 33.8923L72.8269 34.6548L71.2746 29.1095C71.0616 28.3746 70.2932 27.9515 69.5583 28.1645C69.5508 28.1667 69.5434 28.1689 69.5359 28.1712L56.8301 32.1313C56.408 32.2629 56.1726 32.7117 56.3042 33.1338C56.3677 33.3373 56.5097 33.5071 56.6988 33.6056ZM75.5355 35.4431L77.5461 42.6384L74.6391 41.1274L73.259 36.197L75.5355 35.4431ZM69.7973 29.7657L72.6945 40.1165L59.1601 33.0813L69.7973 29.7657Z\"\n                fill={primaryColor}\n            />\n        </g>\n        <defs>\n            <clipPath id=\"clip0_3341_37251\">\n                <rect width={width} height={height} fill=\"white\" transform=\"translate(0.5)\" />\n            </clipPath>\n        </defs>\n    </svg>\n);\n\nexport default NoConnection;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_SIZE = {\n    width: 150,\n    height: 150,\n};\nconst EmptySharedDocs = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n    primaryColor = '#b1b1b1',\n}) => (\n    <svg\n        className={classNames('cdo-EmptySharedDocs', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={width}\n        height={height}\n        viewBox={`0 0 ${height} ${width}`}\n    >\n        <path\n            fill={primaryColor}\n            d=\"m98.891,76.246c-.828,0-1.5-.671-1.5-1.5v-3.449c0-1.919-1.562-3.48-3.48-3.48h-14.713c-.828,0-1.5-.671-1.5-1.5s.672-1.5,1.5-1.5h14.713c3.573,0,6.48,2.907,6.48,6.48v3.449c0,.829-.672,1.5-1.5,1.5Z\"\n        />\n        <path\n            fill={primaryColor}\n            d=\"m98.903,112.528h-9.555c-.828,0-1.5-.672-1.5-1.5s.672-1.5,1.5-1.5h9.555c1.649,0,3.138-1.041,3.704-2.59l8.594-23.5c.298-.802.188-1.659-.298-2.356-.485-.697-1.251-1.098-2.102-1.098h-52.079c-1.812,0-3.39,1.162-3.926,2.893l-8.204,26.458c-.613,1.915-2.368,3.193-4.371,3.193-2.529,0-4.588-2.059-4.588-4.588v-44.612c0-3.573,2.907-6.48,6.48-6.48h12.369c1.467,0,2.845.571,3.88,1.608l3.464,3.466c.585.586.585,1.536,0,2.121-.586.585-1.536.586-2.122,0l-3.464-3.467c-.469-.47-1.093-.728-1.757-.728h-12.369c-1.919,0-3.48,1.562-3.48,3.48v44.612c0,.876.712,1.588,1.588,1.588.693,0,1.3-.44,1.51-1.095l8.2-26.445c.928-2.993,3.656-5.004,6.791-5.004h52.079c1.818,0,3.525.891,4.564,2.384,1.038,1.492,1.282,3.401.651,5.106l-8.592,23.495c-.998,2.727-3.619,4.559-6.522,4.559Z\"\n        />\n        <path\n            fill={primaryColor}\n            d=\"m68.73,112.528h-21.603c-.828,0-1.5-.672-1.5-1.5s.672-1.5,1.5-1.5h21.603c.828,0,1.5.672,1.5,1.5s-.672,1.5-1.5,1.5Z\"\n        />\n        <path\n            fill={primaryColor}\n            d=\"m69.7,64.635c-1.738,0-3.374-1.074-4.002-2.799l-12.086-33.207c-.389-1.067-.339-2.223.142-3.252.48-1.029,1.333-1.811,2.4-2.199l6.915-2.517c.775-.28,1.639.118,1.922.896.284.779-.117,1.639-.896,1.923l-6.915,2.517c-.314.114-.565.345-.707.648s-.156.644-.042.958l12.087,33.208c.237.649.952.985,1.606.75l20.846-7.572c.778-.284,1.639.119,1.922.897.282.779-.119,1.639-.898,1.922l-20.846,7.572c-.478.174-.967.256-1.447.256Z\"\n        />\n        <path\n            fill={primaryColor}\n            d=\"m92.919,45.292h-17.756c-.553,0-1-.448-1-1s.447-1,1-1h17.756c.553,0,1,.448,1,1s-.447,1-1,1Z\"\n        />\n        <path\n            fill={primaryColor}\n            d=\"m92.919,39.117h-17.756c-.553,0-1-.448-1-1s.447-1,1-1h17.756c.553,0,1,.448,1,1s-.447,1-1,1Z\"\n        />\n        <path\n            fill={primaryColor}\n            d=\"m95.693,52.354h-23.562c-2.632,0-4.772-2.102-4.772-4.685v-30.684c0-2.583,2.141-4.686,4.772-4.686h9.003c.828,0,1.5.671,1.5,1.5s-.672,1.5-1.5,1.5h-9.003c-.978,0-1.772.756-1.772,1.686v30.684c0,.929.795,1.685,1.772,1.685h23.562c.978,0,1.772-.756,1.772-1.685v-15.23c0-.829.672-1.5,1.5-1.5s1.5.671,1.5,1.5v15.23c0,2.583-2.141,4.685-4.772,4.685Z\"\n        />\n        <g id=\"hand_folder_lg\" data-name=\"hand folder lg\">\n            <g id=\"hand_folder_lg-2\" data-name=\"hand folder lg\">\n                <path\n                    fill={primaryColor}\n                    d=\"m82.404,144.457c-.798,0-1.462-.628-1.497-1.434l-.249-5.583c-.004-.079,0-.16.008-.239.297-2.559.852-5.097,1.387-7.552.891-4.082,1.732-7.938,1.49-11.87-.107-1.738-.434-3.474-.77-5.09-.896-4.302-3.02-11.531-4.425-16.315l-.442-1.508c-.059-.2-.177-.456-.409-.546-.181-.071-.409-.033-.629.102-.446.275-.606.482-.645.539-.467.688-.416,1.815-.315,3.008.026.305.355,2.269.619,3.848.528,3.164.878,5.285.921,5.915.178,2.562-.616,5.045-2.235,6.991-1.242,1.494-1.736,2.4-1.932,2.896-.479,1.219-.646,2.295-.497,3.199.136.817-.418,1.589-1.235,1.724-.822.133-1.589-.419-1.724-1.235-.239-1.445-.016-3.056.665-4.785.4-1.021,1.214-2.271,2.416-3.717,1.123-1.351,1.673-3.079,1.55-4.867-.037-.532-.529-3.478-.888-5.627-.429-2.562-.619-3.725-.65-4.092-.11-1.321-.278-3.318.822-4.941.348-.514.871-.988,1.557-1.41,1.024-.629,2.221-.754,3.279-.346s1.863,1.319,2.209,2.502l.442,1.506c1.419,4.829,3.562,12.129,4.483,16.549.358,1.727.707,3.589.826,5.516.269,4.35-.658,8.593-1.554,12.695-.511,2.345-1.04,4.767-1.323,7.14l.243,5.462c.037.827-.604,1.528-1.432,1.564-.022.002-.045.002-.067.002Z\"\n                />\n                <path\n                    fill={primaryColor}\n                    d=\"m65.081,147.92c-.828,0-1.5-.672-1.5-1.5,0-8.78-.358-9.323-1.424-10.935-.358-.541-.803-1.215-1.322-2.219-.351-.679-.733-1.346-1.116-2.013-.496-.865-1.01-1.76-1.459-2.685-.852-1.756-1.302-3.737-1.302-5.73v-6.93c0-.828.672-1.5,1.5-1.5s1.5.672,1.5,1.5v6.93c0,1.542.346,3.07,1.001,4.421.404.832.869,1.643,1.361,2.501.405.706.81,1.411,1.18,2.128.445.861.824,1.436,1.159,1.942,1.492,2.256,1.922,3.319,1.922,12.589,0,.828-.672,1.5-1.5,1.5Z\"\n                />\n            </g>\n        </g>\n        <g>\n            <path\n                fill={primaryColor}\n                d=\"m98.965,27.521c-3.393,0-6.582-1.319-8.984-3.716-2.405-2.4-3.731-5.593-3.735-8.991-.004-3.397,1.315-6.593,3.716-8.999,2.399-2.405,5.593-3.732,8.99-3.736h.015c7.008,0,12.713,5.697,12.721,12.707-.021,6.993-5.719,12.701-12.702,12.734-.007,0-.013,0-.02,0Zm.013-1.5h.01-.01Zm-.012-20.941h-.011c-2.597.003-5.037,1.017-6.871,2.854-1.833,1.838-2.842,4.28-2.839,6.877.003,2.596,1.017,5.037,2.854,6.871,1.835,1.831,4.273,2.839,6.865,2.839h.009c5.34-.027,9.697-4.393,9.713-9.733-.006-5.354-4.366-9.708-9.721-9.708Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m91.189,23.843c-.053,0-.106-.004-.16-.013-.545-.088-.916-.601-.828-1.146.157-.978,1.007-4.119,5.378-4.792.065-.31.117-.745.127-1.015-.859-1.159-1.328-2.548-1.344-3.969,0-3.198,1.814-5.256,4.622-5.256,2.789,0,4.663,2.108,4.663,5.245-.04,1.457-.535,2.853-1.402,3.987.011.269.062.694.126.999,4.423.605,5.236,3.816,5.381,4.815.078.546-.301,1.054-.848,1.132-.552.078-1.054-.301-1.133-.847-.152-1.063-.892-2.888-4.118-3.168-.367-.047-.809-.243-1.071-.938-.009-.021-.716-2.288-.058-3.043.69-.82,1.094-1.877,1.123-2.965,0-2.005-.995-3.218-2.663-3.218-2.281,0-2.622,2.033-2.622,3.245.012,1.07.396,2.125,1.082,2.96.636.723-.068,3.011-.077,3.033-.265.692-.71.884-1.036.923-3.343.338-4.019,2.343-4.155,3.189-.079.491-.504.841-.986.841Zm4.684-6.749c.015.019.03.039.048.058-.017-.02-.032-.039-.048-.058Zm6.191.017c-.007.009-.015.018-.021.026.008-.008.015-.017.021-.026Z\"\n            />\n        </g>\n    </svg>\n);\n\nexport default EmptySharedDocs;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_SIZE = {\n    width: 150,\n    height: 150,\n};\nconst SomethingWentWrong = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n    primaryColor = 'b1b1b1',\n}) => (\n    <svg\n        className={classNames('cdo-SomethingWentWrong', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={width}\n        height={height}\n        viewBox={`0 0 ${height} ${width}`}\n    >\n        <g id=\"error_generic_lg\" data-name=\"error generic lg\">\n            <path\n                fill={primaryColor}\n                d=\"m49.272,117.513c-.086,0-.172-.011-.259-.034-.533-.142-.851-.689-.708-1.224l1.804-6.764c.143-.534.693-.852,1.224-.708.533.142.851.689.708,1.224l-1.804,6.764c-.119.447-.523.742-.965.742Zm3.35-12.561c-.086,0-.172-.011-.259-.034-.533-.142-.851-.689-.708-1.224l1.804-6.764c.143-.534.693-.852,1.224-.708.533.142.851.689.708,1.224l-1.804,6.764c-.119.447-.523.742-.965.742Zm3.351-12.562c-.086,0-.172-.011-.259-.034-.533-.142-.851-.689-.708-1.224l1.746-6.549c.143-.534.693-.849,1.224-.708.533.142.851.689.708,1.224l-1.746,6.549c-.119.447-.523.742-.965.742Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m77.203,126.033c-.091,0-.182-.012-.272-.037-.531-.15-.841-.703-.691-1.234l1.9-6.737c.15-.532.708-.839,1.234-.691.531.15.841.703.691,1.234l-1.9,6.737c-.125.44-.526.729-.962.729Zm3.529-12.512c-.091,0-.182-.012-.272-.037-.531-.15-.841-.703-.691-1.234l1.9-6.737c.15-.532.707-.841,1.234-.691.531.15.841.703.691,1.234l-1.9,6.737c-.125.44-.526.729-.962.729Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m88.333,123.847c-.08,0-.162-.01-.243-.03-.536-.134-.862-.677-.728-1.212l1.697-6.791c.133-.536.674-.864,1.212-.728.536.134.862.677.728,1.212l-1.697,6.791c-.113.455-.521.758-.969.758Zm3.153-12.612c-.08,0-.162-.01-.243-.03-.536-.134-.862-.677-.728-1.212l1.697-6.791c.134-.536.675-.864,1.212-.728.536.134.862.677.728,1.212l-1.697,6.791c-.113.455-.521.758-.969.758Zm3.152-12.611c-.08,0-.162-.01-.243-.03-.536-.134-.862-.677-.728-1.212l1.084-4.336c.133-.537.674-.865,1.212-.728.536.134.862.677.728,1.212l-1.084,4.336c-.113.455-.521.758-.969.758Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m70.387,117.513c-.087,0-.175-.011-.262-.034-.533-.145-.849-.693-.705-1.227l1.826-6.758c.145-.534.698-.848,1.227-.705.533.145.849.693.705,1.227l-1.826,6.758c-.121.446-.524.739-.965.739Zm3.392-12.55c-.087,0-.175-.011-.262-.034-.533-.145-.849-.693-.705-1.227l1.827-6.758c.145-.534.697-.848,1.227-.705.533.145.849.693.705,1.227l-1.827,6.758c-.121.446-.524.739-.965.739Zm3.393-12.55c-.087,0-.175-.011-.262-.034-.533-.145-.849-.693-.705-1.227l.293-1.084c.145-.534.696-.848,1.227-.705.533.145.849.693.705,1.227l-.293,1.084c-.121.446-.524.739-.965.739Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m56.418,129.994c-.088,0-.176-.011-.264-.035-.533-.146-.848-.695-.702-1.228l1.842-6.753c.146-.534.7-.85,1.228-.702.533.146.848.695.702,1.228l-1.842,6.753c-.121.445-.524.737-.964.737Zm3.421-12.542c-.088,0-.176-.011-.264-.035-.533-.146-.848-.695-.702-1.228l1.842-6.753c.146-.534.701-.85,1.228-.702.533.146.848.695.702,1.228l-1.842,6.753c-.121.445-.524.737-.964.737Zm3.421-12.542c-.088,0-.176-.011-.264-.035-.533-.146-.848-.695-.702-1.228l1.842-6.753c.145-.534.699-.85,1.228-.702.533.146.848.695.702,1.228l-1.842,6.753c-.121.445-.524.737-.964.737Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m117.076,102.299c-.303,0-.602-.008-.896-.024l-10.944.002c-.828,0-1.5-.672-1.5-1.5s.672-1.5,1.5-1.5h11.029c7.983.455,19.628-6.185,20.75-22.332.433-6.227-1.727-12.088-6.079-16.505-4.34-4.405-10.413-6.841-16.201-6.528-.466.021-.912-.166-1.217-.516-.304-.351-.428-.823-.336-1.278,1.391-6.892-.55-14.205-5.323-20.064-4.913-6.032-12.154-9.511-19.867-9.547-.055,0-.109,0-.164,0-17.667,0-25.957,13.318-28.073,21.21-.104.385-.355.713-.701.912s-.757.251-1.141.147c-9.34-2.536-18.464-.217-24.409,6.201-4.854,5.24-6.546,12.219-4.415,18.213.165.464.092.979-.195,1.379-.288.4-.75.642-1.246.623-4.873-.084-8.615,1.102-11.107,3.547-3.14,3.081-3.608,7.488-3.608,9.841,0,8.345,5.517,13.699,15.139,14.697h16.555c.828,0,1.5.672,1.5,1.5s-.672,1.5-1.5,1.5h-16.632c-.051,0-.101-.003-.151-.008-11.215-1.135-17.91-7.748-17.91-17.689,0-2.823.586-8.134,4.507-11.982,2.714-2.663,6.491-4.131,11.244-4.374-1.539-6.559.521-13.781,5.62-19.285,6.414-6.923,16.037-9.639,25.977-7.41,2.898-8.803,12.084-22.022,30.547-22.022.061,0,.119,0,.18,0,8.613.04,16.697,3.922,22.18,10.652,4.928,6.049,7.151,13.512,6.235,20.736,6.063.189,12.174,2.894,16.652,7.439,4.965,5.039,7.428,11.722,6.935,18.818-1.223,17.6-13.84,25.147-22.931,25.147Z\"\n            />\n        </g>\n    </svg>\n);\n\nexport default SomethingWentWrong;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport type { IEmptyProps } from '@csc/collection-view';\nimport { coreSyncTroubleshootUrl } from '../utils/urls';\nimport UserLoggedOut from '../components/svgs/UserLoggedOut';\nimport SomethingWentWrong from '../components/svgs/SomethingWentWrong';\nimport ExternalLink from '@csc/adobe-assets-view/dist/src/components/ExternalLink/ExternalLink';\n\nexport const EMPTYVIEW_PROPS_FOR_ERROR: IEmptyProps = {\n    image: <SomethingWentWrong />,\n    subtitleId: 'empty.subtext.error',\n    titleId: 'empty.title.error',\n};\nexport const EMPTYVIEW_PROPS_FOR_ERROR_WEB: IEmptyProps = {\n    image: <SomethingWentWrong />,\n    subtitleId: 'empty.subtext.error.web',\n    titleId: 'empty.title.error',\n};\nexport const coreSyncDownEmptyViewProps = (locale: string): IEmptyProps => {\n    const coreSyncErrorLink = <ExternalLink url={coreSyncTroubleshootUrl(locale)} />;\n\n    return {\n        subtitleId: 'empty.subtext.coresync.down',\n        titleId: 'empty.title.coresync.down',\n        link: coreSyncErrorLink,\n    };\n};\nexport const CORESYNC_INCOMPATIBLE_EMPTYVIEW_PROPS: IEmptyProps = {\n    subtitleId: 'empty.subtext.coresync.incompatible',\n    titleId: 'empty.title.coresync.incompatible',\n};\nexport const CLOUD_STORAGE_DISABLED_EMPTYVIEW_PROPS: IEmptyProps = {\n    subtitleId: 'empty.subtext.cloudStorageDisabled',\n    titleId: 'empty.title.cloudStorageDisabled',\n};\nexport const LOGGED_OUT_EMPTYVIEW_PROPS: IEmptyProps = {\n    image: <UserLoggedOut />,\n    titleId: 'empty.title.logout',\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { action, observable } from 'mobx';\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\nclass OnboardingStore {\n    @observable openUserOnboardingDialog: boolean = false;\n    @observable currentStep: number = 0;\n    @observable onboardingSteps: AssetBrowser.CDO.CDOOnboardingStepDetails[] = [];\n\n    @action setOpenUserOnboardingDialog(flag: boolean, delay: number = 500) {\n        if (this.openUserOnboardingDialog === flag) {\n            return;\n        }\n        setTimeout(() => {\n            this.openUserOnboardingDialog = flag;\n        }, delay);\n    }\n\n    @action setCurrentStep(step: number) {\n        this.currentStep = step;\n    }\n\n    @action setOnboardingSteps(steps: AssetBrowser.CDO.CDOOnboardingStepDetails[]) {\n        this.onboardingSteps = steps;\n    }\n}\n\nexport default OnboardingStore;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 150 150\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M73.46 89.48c-.61 0-1.22-.23-1.68-.69l-8.37-8.34a1.49 1.49 0 0 1 0-2.12 1.49 1.49 0 0 1 2.12 0l7.93 7.9 7.93-7.9c.59-.58 1.54-.58 2.12 0 .58.59.58 1.54 0 2.12l-8.37 8.34c-.46.46-1.07.69-1.68.69z\",\n  fill: \"#1d7de7\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M73.46 88.91c-.83 0-1.5-.67-1.5-1.5V61.55c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v25.86c0 .83-.67 1.5-1.5 1.5z\",\n  fill: \"#1d7de7\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M91.39 67.94H79.28c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5h12.11c2.32 0 4.2-1.89 4.2-4.2V23.11c0-1.61-.63-3.13-1.77-4.27l-7.81-7.81a6.007 6.007 0 0 0-4.27-1.77H55.53c-2.32 0-4.2 1.89-4.2 4.2v47.27c0 2.32 1.89 4.2 4.2 4.2h12.11c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5H55.53c-3.97 0-7.2-3.23-7.2-7.2V13.47c0-3.97 3.23-7.2 7.2-7.2h26.21c2.41 0 4.68.94 6.39 2.65l7.81 7.81a8.98 8.98 0 0 1 2.65 6.39v37.62c0 3.97-3.23 7.2-7.2 7.2z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M88.13 56.85H58.79c-.55 0-1-.45-1-1s.45-1 1-1h29.34c.55 0 1 .45 1 1s-.45 1-1 1z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M88.13 48.7H58.79c-.55 0-1-.45-1-1s.45-1 1-1h29.34c.55 0 1 .45 1 1s-.45 1-1 1z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"folder add files lg\",\n  fill: \"#b3b3b3\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M103.89 99.86c-.83 0-1.5-.67-1.5-1.5v-4.17c0-2.49-2.03-4.52-4.52-4.52H85.04c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5h12.83c4.15 0 7.52 3.38 7.52 7.52v4.17c0 .83-.67 1.5-1.5 1.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M103.91 143.73H41.3c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5h62.61c2.13 0 4.04-1.34 4.77-3.34l10.39-28.42c.39-1.07.25-2.21-.4-3.14s-1.67-1.46-2.8-1.46H52.89c-2.33 0-4.36 1.5-5.05 3.72l-9.92 32c-.7 2.18-2.7 3.64-4.99 3.64-2.89 0-5.23-2.35-5.23-5.23V84.55c0-4.15 3.38-7.52 7.52-7.52h14.96c1.69 0 3.28.66 4.47 1.85l5.92 5.92c.59.59.59 1.54 0 2.12-.58.58-1.54.58-2.12 0L52.53 81c-.63-.63-1.46-.97-2.35-.97H35.22c-2.49 0-4.52 2.03-4.52 4.52v53.95c0 1.23 1 2.23 2.23 2.23.98 0 1.83-.62 2.13-1.54l9.92-31.98a8.239 8.239 0 0 1 7.91-5.83h62.98a6.413 6.413 0 0 1 6.01 8.64l-10.39 28.41a8.116 8.116 0 0 1-7.59 5.31z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 150 150\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M114.672 121.494c-.289 0-.583-.05-.87-.151a2.536 2.536 0 0 1-1.71-2.418V83.816c0-1.047.626-1.979 1.596-2.374a2.553 2.553 0 0 1 2.802.579l25.047 25.54a2.53 2.53 0 0 1 .457 2.954 2.532 2.532 0 0 1-2.654 1.381l-14.046-2.025-8.644 10.669a2.533 2.533 0 0 1-1.978.955zm.42-36.614v32.816l8.407-10.377c.332-.41.861-.616 1.379-.54l13.616 1.964-23.402-23.863z\",\n  fill: \"#1d7de8\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M102.663 54.861a1.5 1.5 0 0 1-1.5-1.5v-2.364a7.21 7.21 0 0 0-7.203-7.203H17.878a1.5 1.5 0 1 1 0-3H93.96c5.626 0 10.203 4.577 10.203 10.203v2.364a1.5 1.5 0 0 1-1.5 1.5z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M93.96 113.006H17.93c-5.626 0-10.203-4.577-10.203-10.203V38.885c0-5.626 4.577-10.203 10.203-10.203h24.95c2.331 0 4.523.908 6.172 2.558.035.035.068.071.1.109l7.875 9.605a1.5 1.5 0 1 1-2.32 1.902l-7.825-9.544a5.69 5.69 0 0 0-4.001-1.63h-24.95a7.21 7.21 0 0 0-7.203 7.203v63.918a7.21 7.21 0 0 0 7.203 7.203h76.03c3.401 0 6.368-2.422 7.056-5.758a1.496 1.496 0 0 1 1.771-1.166c.812.167 1.334.96 1.166 1.771-.972 4.724-5.175 8.152-9.993 8.152z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M88.797 61.185a.998.998 0 0 0-.502.181c-.515.367-1.017.759-1.505 1.178l-.044.037v.002a.07.07 0 0 0-.01.008l-.032.029-.002.001a.065.065 0 0 1-.009.008l-.002.002a.065.065 0 0 0-.009.008h-.001l-.021.019-.003.002-.008.008c-.001 0-.002 0-.003.002l-.007.007c-.001 0-.002 0-.003.002l-.009.008h-.002l-.01.009-.002.002-.008.007-.003.003a.043.043 0 0 0-.007.006c-.002 0-.003.002-.004.004l-.008.006a.002.002 0 0 1-.002.002l-.01.009-.002.002-.008.007-.004.004-.007.005-.004.004-.006.006-.004.003-.008.007-.002.002-.01.009-.003.003-.007.006-.004.003-.006.006-.004.003-.007.006-.004.004-.009.008-.003.003a.043.043 0 0 0-.007.006c-.002 0-.003.003-.005.004l-.005.005a.018.018 0 0 1-.005.004l-.005.005a.018.018 0 0 1-.005.004l-.006.006-.007.006-.006.006c-.002 0-.004.003-.005.004l-.005.005-.005.004-.005.005a.022.022 0 0 0-.005.004l-.005.005c-.002 0-.004.003-.005.004l-.006.005-.008.008-.006.005-.005.004c0 .002-.003.003-.004.005-.002 0-.004.003-.006.005l-.004.004c-.002 0-.004.003-.006.005l-.004.004-.01.009c-.002 0-.003.002-.005.004l-.005.005-.004.004-.006.005-.004.004-.006.005-.004.004a.36.36 0 0 0-.021.019l-.003.003-.006.005-.004.004-.006.005-.004.004-.006.005-.004.004-.01.009-.005.005-.005.005-.004.004c-.002 0-.004.003-.006.005l-.004.004c-.002 0-.004.003-.006.005l-.004.004-.006.005-.002.003-.012.01c0 .002-.003.003-.004.004l-.006.005-.004.005c-.002 0-.004.003-.005.004l-.005.005a.012.012 0 0 0-.005.005c-.002 0-.003.003-.005.004l-.009.009c-.002 0-.003.003-.005.004l-.005.005c-.002 0-.004.003-.005.004l-.005.005a.018.018 0 0 1-.005.004l-.005.005-.005.005-.005.005-.009.008-.004.004-.006.005-.005.005-.005.005-.005.004-.005.005-.004.004-.007.007c-.002 0-.004.003-.006.005l-.006.007c-.002 0-.003.002-.005.004l-.005.005c-.002 0-.003.003-.005.004l-.005.006c-.002 0-.003.002-.005.004l-.006.005a.008.008 0 0 1-.004.004l-.009.009-.003.003a.043.043 0 0 0-.007.006l-.004.004-.006.006-.004.004-.007.006-.003.003-.01.009a.057.057 0 0 1-.011.011h-.001l-.011.011-.01.011-.002.001-.01.01-.002.002-.01.009s0 .002-.002.002a.047.047 0 0 1-.01.01l-.002.002-.01.009-.002.003-.009.009-.003.002-.009.009c-.002 0-.002.002-.003.003l-.009.009c-.001 0-.002 0-.003.002l-.009.01s-.002 0-.003.002l-.009.009-.003.002-.009.01-.002.002-.01.009-.002.003-.01.009-.002.002-.009.009-.003.003-.008.008-.004.003a.03.03 0 0 1-.008.008l-.003.004a.03.03 0 0 0-.008.008c-.002 0-.003.002-.004.003l-.008.008-.004.004-.008.008-.003.003-.008.008-.004.004-.008.008-.004.003a.03.03 0 0 1-.008.008.008.008 0 0 1-.004.004l-.007.008c-.002 0-.003.003-.005.004l-.007.008c-.002 0-.003.002-.004.004l-.008.007c0 .002-.003.003-.004.005a.023.023 0 0 0-.007.007c-.002 0-.004.003-.005.004l-.007.008c-.002 0-.003.003-.005.004l-.006.007c-.002 0-.004.004-.006.005l-.005.006-.007.006-.004.004-.007.008c-.002 0-.003.003-.005.004l-.007.008-.004.004a.03.03 0 0 0-.008.008l-.003.003-.009.009-.003.003-.009.009-.003.003-.009.009-.002.002-.01.01-.002.002a.047.047 0 0 1-.01.01v.002l-.011.011h-.001c-.335.341-.655.69-.963 1.048a1 1 0 0 0 1.519 1.302 19.194 19.194 0 0 1 3.435-3.14 1 1 0 0 0-.655-1.812m-6.762 8.326c-.359.027-.69.246-.844.598a25.193 25.193 0 0 0-.249.598l-.007.019-.004.009-.011.028-.004.01-.011.028-.004.009-.007.019s-.002.007-.004.009v.002l-.003.008h-.001a.107.107 0 0 1-.007.019l-.003.009-.001.001-.003.009-.004.009v.002l-.003.007-.001.002-.003.007v.002l-.003.008v.001l-.003.009-.001.002-.002.006-.002.003s0 .004-.002.006v.003l-.006.017s0 .002-.002.003c0 .002 0 .004-.002.006v.003l-.002.006-.001.003-.004.008v.003l-.002.005v.005l-.002.004-.001.004-.002.005s0 .002-.002.003c0 .003-.002.006-.003.008l-.001.004-.002.005-.001.004-.002.004c0 .002 0 .003-.002.005 0 .001 0 .003-.002.005v.003l-.003.008v.003a.014.014 0 0 0-.002.006s0 .002-.002.003v.005l-.002.004-.002.006-.002.004-.002.007v.003s-.003.003-.003.005l-.002.004-.001.005-.002.004-.003.007v.005l-.003.004c0 .002 0 .003-.002.005l-.001.003c0 .002 0 .003-.002.005v.003l-.007.018v.003l-.002.006v.002l-.002.006-.001.002c0 .004-.003.008-.004.012v.001l-.002.006-.001.003s0 .004-.002.005l-.001.003c0 .002 0 .004-.002.006a.18.18 0 0 1-.008.021v.002l-.003.006a.601.601 0 0 1-.008.023c0 .003-.002.004-.003.007l-.011.03-.002.007-.001.001a.332.332 0 0 1-.01.029l-.003.008-.013.038-.011.029c-.19.533-.357 1.071-.502 1.615 0 .002 0 .005-.002.007l-.026.1-.002.007-.007.03h-.001v.008a.658.658 0 0 1-.006.022l-.002.008-.002.008a.658.658 0 0 1-.006.022v.002s0 .004-.002.006v.002l-.006.022a.01.01 0 0 1-.002.006v.002l-.002.007-.005.022-.001.002v.005l-.001.003v.006l-.001.003-.005.019-.001.002v.006l-.001.003v.006l-.001.002a.036.036 0 0 0-.002.011l-.001.003v.004l-.001.005v.004l-.001.004c0 .002 0 .003-.002.005v.003l-.003.009-.001.004-.001.005v.004l-.002.005v.003l-.003.011v.006l-.001.005v.005l-.001.004v.004l-.002.006-.001.003a.03.03 0 0 1-.002.009v.002l-.002.007-.001.003v.006l-.001.002c0 .003 0 .005-.002.008v.002s0 .006-.002.008v.003l-.001.007-.001.002s0 .005-.002.007v.002l-.004.018v.003l-.002.007v.002l-.002.007v.002l-.003.009v.002l-.002.007v.002l-.002.008v.002l-.005.018s0 .007-.002.009v.002l-.002.008h-.001c0 .007-.002.013-.004.019s0 .007-.002.01l-.007.029-.002.01a21.06 21.06 0 0 0-.256 1.287 1 1 0 0 0 1.973.328 19.059 19.059 0 0 1 1.317-4.457 1 1 0 0 0-.99-1.396m-1.488 10.623l-.057.006a1 1 0 0 0-.861 1.119c.046.35.1.697.164 1.045l.006.031v.008a.185.185 0 0 1 .004.023h.001v.008l.001.006v.003l.004.02v.002l.001.006.001.003V82.418l.002.009.001.004v.008l.002.006v.003l.001.005v.005a.03.03 0 0 0 .002.008v.004l.001.004.001.005v.004l.001.005v.004l.001.008v.004l.001.005v.004l.001.005v.004s0 .004.002.006v.003s0 .006.002.009v.002l.002.007v.003l.001.006v.003l.002.008.002.01v.002l.001.008v.002l.001.007v.002a.79.79 0 0 1 .003.019h.001v.008l.001.002v.009a.106.106 0 0 1 .004.019h.001v.009l.006.029.002.011.006.029a20.9 20.9 0 0 0 .923 3.189l.028.076.01.029.004.009.007.019.004.009.003.01h.001a.23.23 0 0 0 .007.019l.003.009h.001l.01.028v.002l.003.007v.002l.004.009.003.009.003.009.001.002.003.007v.002a.087.087 0 0 1 .007.017v.002l.003.007v.002l.003.008.003.01a1 1 0 1 0 1.86-.735 18.941 18.941 0 0 1-1.166-4.499 1 1 0 0 0-1.065-.867m4.203 9.864a1 1 0 0 0-.705 1.622l.118.146.009.011h.001l.017.022.001.002.008.01h.002a.07.07 0 0 0 .008.01h.001l.008.01h.001l.008.01.002.002.007.009.002.003.008.009.001.002.007.008.002.002.007.009.003.003.007.009.002.003.007.007a.014.014 0 0 0 .003.004l.006.007.002.003a.055.055 0 0 1 .007.009l.003.003.007.008.003.004a.027.027 0 0 1 .005.006.018.018 0 0 1 .004.005l.006.006.003.004.006.008.004.004.006.008.003.003a.043.043 0 0 0 .006.007.014.014 0 0 0 .003.004.043.043 0 0 0 .006.007c0 .002.002.003.003.004l.007.008.003.003.007.009.003.003.005.007.003.003.007.008.003.003.007.009s0 .002.003.003l.006.008.003.003.006.007.003.003a.055.055 0 0 0 .007.009l.003.003.007.008s0 .002.002.003a.055.055 0 0 1 .007.009h.002l.007.009.002.002.008.009.002.003.008.009.002.002.007.009h.001l.008.011.002.002a.065.065 0 0 1 .008.009l.002.002.008.009v.002l.008.009.009.011.009.011h.001l.009.011.009.011.009.011h.001l.009.01.018.022.01.011c.205.235.416.466.632.693s.007.007.01.011l.009.011.008.008.003.003a.027.027 0 0 1 .005.006l.003.003.008.008.002.002.006.006.003.003.005.005.003.004.008.007a.014.014 0 0 0 .003.004c.002 0 .003.003.004.004l.005.005.003.003.01.01v.002c.002 0 .003.003.005.005l.003.002.005.006.002.002.01.011h.002l.005.006.002.002.006.006.013.013.007.007c.427.438.868.854 1.322 1.246s.004.005.007.007l.021.018.007.006.014.012.006.006h.002l.006.006.01.01c.002 0 .003.002.004.003l.005.004.003.003c.002 0 .003.002.005.004l.004.003.008.007.004.003.004.004c.002 0 .003.003.005.004l.004.003.007.007a.014.014 0 0 1 .004.003c.002 0 .003.003.005.004l.004.003.006.006.002.002a.027.027 0 0 1 .008.007c.001 0 .002 0 .003.002l.007.005s0 .002.002.003l.018.014s0 .002.002.002l.007.006.002.002.009.008.009.007h.002l.008.008h.001l.019.016c.241.202.485.398.733.587a.997.997 0 0 0 1.401-.187 1 1 0 0 0-.187-1.402 19.165 19.165 0 0 1-2.21-1.981c-.39-.407-.766-.836-1.116-1.273a.997.997 0 0 0-.856-.372m8.695 6.281a1 1 0 0 0-.275 1.935c.443.163.89.311 1.341.444l.009.003c.003.001.006 0 .008.002h.001l.051.015a.069.069 0 0 0 .008.003h.001s.005 0 .008.002h.001l.007.003h.001s.005 0 .008.002h.001a.414.414 0 0 0 .033.01s.004 0 .007.002h.002c.002 0 .004 0 .006.002h.003s.004 0 .006.002h.003c.002 0 .004 0 .006.002h.003l.006.002h.002c.003 0 .005 0 .007.002h.002l.015.004.006.002.003.001c.002 0 .004 0 .006.002H94.743l.005.002H94.761l.005.002h.004c.002 0 .003 0 .005.002l.004.001c.003 0 .005 0 .008.002.002 0 .004 0 .006.002l.004.001H94.806c.002 0 .004 0 .005.002l.004.001h.01c.002 0 .003 0 .005.002h.004l.005.001h.004l.006.002h.003l.007.002h.005c.002 0 .005 0 .007.002l.003.001c.002 0 .004 0 .006.002H94.889l.004.001c.002 0 .003 0 .005.002H94.911l.006.002h.004s.005 0 .007.002h.002l.009.003s.006 0 .009.002l.003.001c.002 0 .005 0 .007.002h.003l.006.002.003.001a.01.01 0 0 1 .007.002h.003s.004 0 .006.002h.003s.005 0 .007.002h.002c.006 0 .013.003.019.005h.001s.006 0 .008.002h.002l.008.003h.002l.007.002.003.001s.004 0 .007.002h.002l.008.002h.001l.009.003h.001l.028.008h.001l.009.002h.001c.003 0 .006 0 .009.002s.005.001.008.002h.002c.002 0 .005 0 .008.002s.006.002.009.002l.029.008.009.003h.001s.006 0 .009.002.005.002.008.002h.001l.068.017.009.002h.001l.058.015.009.003c.003 0 .006 0 .009.002h.001l.058.015s.006 0 .009.002l.01.002.049.012.009.002h.001c.003 0 .006 0 .009.002s.006 0 .009.002a.558.558 0 0 0 .049.012l.009.002.001.001s.006 0 .009.002.006 0 .009.002l.038.009.009.002h.001l.009.003s.006 0 .008.002h.001a.862.862 0 0 0 .049.011l.009.003h.001s.006 0 .009.002h.001l.058.013h.001l.009.003.069.015.009.002a.862.862 0 0 0 .069.015h.001l.009.002.01.002.059.013.009.002h.001l.009.001a.986.986 0 0 0 .058.013h.001s.006 0 .009.002.006 0 .009.002.006.002.01.002l.039.008.009.002h.002l.008.001h.001l.009.002.039.008.009.002h.01l.002.001H96.284l.039.008h.001l.009.002v.001H96.343l.009.002.04.008c.003 0 .006 0 .009.002s.005 0 .008.002h.002l.008.001h.002c.003 0 .006 0 .008.002h.001l.039.007s.006 0 .009.002h.001s.005 0 .008.002h.002l.008.002h.002s.005 0 .008.002l.029.005.009.002h.002l.007.002h.003s.004 0 .006.002h.01l.003.001H96.595l.019.004h.001s.006 0 .009.002h.002l.007.001h.012l.007.002h.003s.005 0 .007.002h.002l.029.005h.001l.008.002H96.715l.006.001H96.743l.008.002h.002s.006 0 .009.002H96.772l.002.001H96.804l.005.001H96.822s.006 0 .009.002h.001l.009.001H96.864l.005.001H96.892l.006.001h.013l.009.002h.002l.008.002H96.958l.004.001H96.981l.018.003H97.018l.004.001h.024l.004.001h.01s.006 0 .009.002H97.078l.005.001h.032l.005.002H97.135l.019.003h.021l.006.001H97.212l.021.004H97.251l.004.001h.027l.006.001h.002c.008 0 .015.003.023.004h.002l.006.001H97.352l.006.001h.002c.011 0 .021.003.032.004H97.422l.006.001h.019l.023.004h.021l.006.001h.019l.034.006H97.568l.002.001H97.588l.033.005H97.649l.007.001h.002a.816.816 0 0 0 .052.007H97.719s.005 0 .008.002H97.745a.961.961 0 0 1 .053.007h.009l.07.009H97.887l.07.008h.009l.061.007.009.001h.008l.105.012a1 1 0 1 0 .216-1.988 19.108 19.108 0 0 1-4.525-1.063.991.991 0 0 0-.42-.06m5.994-36.856a1 1 0 0 0-.549-1.875c-.471.034-.94.084-1.405.15h-.009l-.009.001-.053.008H97.38l-.008.001h-.001s-.005 0-.008.002-.005 0-.008 0l-.034.005h-.008l-.002.001H97.274l-.007.001h-.001l-.016.003h-.01l-.005.001h-.01H97.207l-.004.001h-.015-.012l-.006.001h-.01H97.141l-.004.001h-.035l-.005.001H97.071l-.004.001h-.025l-.003.001h-.008s-.007 0-.01.002h-.009l-.003.001h-.029l-.007.002h-.012c-.007 0-.013.002-.019.003h-.022s-.005 0-.007.002h-.022s-.006 0-.008.002c-.01 0-.02.003-.03.005H96.834s-.006 0-.009.002-.006.001-.009.002H96.806a1.442 1.442 0 0 1-.029.006H96.767l-.009.002h-.001s-.005 0-.008.002h-.001l-.069.012-.01.002a1.03 1.03 0 0 0-.059.011s-.006 0-.009.002H96.6l-.009.001h-.001a1.183 1.183 0 0 1-.058.011h-.001l-.009.002h-.001l-.009.002-.049.009-.009.002h-.001l-.009.002-.009.002h-.001l-.039.008c-.003 0-.007 0-.01.002-.003 0-.006 0-.009.002s-.006 0-.009 0h-.011l-.039.007-.009.002-.009.002h-.001s-.006 0-.009.002h-.001l-.049.01c-.003 0-.006 0-.009.002h-.001s-.006 0-.009.002h-.001l-.058.012h-.001l-.009.002-.069.015c-.004 0-.007 0-.01.002-.007 0-.013.002-.02.004l-.049.01-.01.002-.009.002-.058.013-.009.002-.008.002-.059.013c-.002 0-.005 0-.008.002s-.006.001-.009.002h-.001s-.006 0-.009.002l-.039.009h-.001s-.006 0-.009.002-.006.002-.008.002h-.002l-.008.002a.274.274 0 0 1-.039.009l-.009.003h-.002s-.005 0-.008.002h-.002s-.005 0-.008.002-.006.002-.008.002l-.002.001s-.006 0-.009.002l-.039.009c-.003 0-.006 0-.009.002h-.002l-.008.002v.001c-.003 0-.006 0-.009.002h-.001l-.039.009c-.003 0-.006 0-.009.002h-.001l-.008.001h-.002c-.003 0-.005 0-.008.002h-.002l-.008.002-.038.01-.009.002h-.001s-.006 0-.008.002h-.002l-.008.001h-.002c-.002 0-.005 0-.008.002l-.029.007-.009.002h-.002s-.005 0-.007.002h-.003l-.007.002h-.003c-.002 0-.004 0-.006.002h-.003l-.007.002h-.002l-.009.003-.02.004-.008.002h-.002l-.008.002-.008.001h-.002c-.003 0-.005 0-.007.002h-.003l-.007.002-.002.001-.028.007h-.002l-.008.002h-.002l-.007.003h-.003s-.004 0-.006.002l-.004.001H95.225c-.002 0-.004 0-.006.002l-.003.001c-.003 0-.005 0-.008.002s-.007.002-.01.002a.03.03 0 0 0-.008.002h-.002l-.007.002h-.003l-.006.001h-.004c-.002 0-.004 0-.005.002h-.005l-.004.001h-.005c-.002 0-.003 0-.005.002h-.004l-.008.002-.009.002h-.003c-.002 0-.004 0-.006.002H95.095l-.004.002h-.005H95.077l-.004.001c-.002 0-.004 0-.005.002h-.004c-.003 0-.006 0-.008.002h-.002l-.009.003h-.002l-.007.002h-.003c-.002 0-.004 0-.006.002H95.018l-.004.001h-.005c-.002 0-.003 0-.005.002H95l-.005.001H94.986a.12.12 0 0 1-.018.005h-.004c-.002 0-.004 0-.005.002H94.945c-.001 0-.003 0-.004.002H94.927c-.002 0-.003 0-.005.002l-.004.001H94.909l-.009.003H94.891c-.002 0-.003 0-.005.002l-.004.001h-.01s-.003 0-.004.002l-.005.001H94.854c-.001 0-.003 0-.005.002l-.004.001H94.836l-.02.006h-.002s-.004 0-.006.002l-.003.001h-.006-.003c-.002 0-.004 0-.006.002l-.004.001h-.008c-.002 0-.004 0-.006.002l-.004.001h-.008l-.021.006h-.008l-.003.001c-.002 0-.004 0-.006.002H94.713l-.004.001-.005.002H94.7s-.003 0-.005.002h-.003l-.006.002h-.002l-.022.006h-.002l-.007.001h-.002s-.004 0-.006.002h-.003l-.006.001h-.004l-.005.002h-.003l-.006.002h-.002a1.245 1.245 0 0 0-.031.009h-.008-.003c-.002 0-.004 0-.006.002l-.004.001s-.003 0-.005.002H94.55l-.003.001c-.002 0-.004 0-.006.002H94.532v.001l-.023.006h-.002s-.004 0-.006.002l-.004.001h-.005-.003l-.006.002h-.003l-.006.002h-.002l-.007.003-.033.009h-.002l-.007.002h-.002l-.007.002-.007.002h-.002c-.003 0-.005 0-.007.002l-.033.01h-.001l-.007.002h-.001c-.003 0-.005 0-.008.002h-.001l-.007.002h-.002s-.005 0-.007.002h-.002l-.049.015s-.005 0-.008.002c-.003 0-.005.002-.008.003l-.008.002h-.001s-.005 0-.007.002a.965.965 0 0 1-.05.016h-.001l-.008.003-.068.021c-.003 0-.005 0-.008.002a1.314 1.314 0 0 1-.067.022l-.009.003-.059.018-.008.003-.007.003h-.001l-.101.033a1.002 1.002 0 0 0-.638 1.262c.173.525.738.81 1.263.638a19.02 19.02 0 0 1 4.56-.902.994.994 0 0 0 .407-.12\",\n  fill: \"#b1b1b1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M104.316 60.842c8.56 1.432 15.013 8.889 15.013 17.764 0 .318-.011.634-.03.948-.026.436.125.862.434 1.171.907.907 2.491.336 2.563-.945.022-.388.033-.78.033-1.174 0-11.193-8.752-20.341-19.785-20.977l-.066-.002c-.642 0-1.162.544-1.162 1.195v39.569c0 .651.52 1.195 1.162 1.195l.066-.002a20.725 20.725 0 0 0 5.356-1.033c.598-.199.989-.776.989-1.407 0-1.007-.979-1.738-1.936-1.423-.852.28-1.733.499-2.637.65V60.842z\",\n  fill: \"#1d7de8\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 150 150\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M99.657 109.25H41.42a5.904 5.904 0 0 1-5.897-5.897V64.011a1.5 1.5 0 1 1 3 0v39.342a2.9 2.9 0 0 0 2.897 2.897h58.237a2.9 2.9 0 0 0 2.897-2.897V34.779c0-1.598-1.3-2.898-2.897-2.898H67.579a1.5 1.5 0 1 1 0-3h32.078a5.904 5.904 0 0 1 5.897 5.898v68.573a5.904 5.904 0 0 1-5.897 5.897z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M113.665 123.086H55.43a5.905 5.905 0 0 1-5.898-5.897v-3.082a1.5 1.5 0 0 1 3 0v3.082a2.9 2.9 0 0 0 2.898 2.897h58.235c1.599 0 2.899-1.3 2.899-2.897V48.615a2.902 2.902 0 0 0-2.899-2.898h-2.901a1.5 1.5 0 1 1 0-3h2.901a5.905 5.905 0 0 1 5.899 5.898v68.573a5.904 5.904 0 0 1-5.899 5.897z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M127.019 136.439H68.783a5.905 5.905 0 0 1-5.898-5.898v-3.082a1.5 1.5 0 0 1 3 0v3.082a2.9 2.9 0 0 0 2.898 2.898h58.236a2.9 2.9 0 0 0 2.898-2.898V61.968c0-1.598-1.3-2.898-2.898-2.898h-2.902a1.5 1.5 0 1 1 0-3h2.902a5.905 5.905 0 0 1 5.898 5.898v68.573a5.905 5.905 0 0 1-5.898 5.898z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M104.056 81.717H37.022a1 1 0 1 1 0-2h67.033a1 1 0 1 1 0 2z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M93.593 91.769H46.8a1 1 0 1 1 0-2h46.793a1 1 0 1 1 0 2z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M63.528 98.241H46.799a1 1 0 1 1 0-2h16.729a1 1 0 1 1 0 2z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M39.945 59.271c-10.077 0-19.326-6.725-22.07-16.909-3.277-12.167 3.953-24.731 16.119-28.009 6.953-1.875 14.215-.422 19.925 3.987a1.5 1.5 0 1 1-1.833 2.374c-4.96-3.83-11.271-5.092-17.31-3.464-10.569 2.848-16.852 13.763-14.004 24.333 2.849 10.569 13.769 16.851 24.332 14.003a19.717 19.717 0 0 0 12.041-9.267 19.722 19.722 0 0 0 1.962-15.066 1.5 1.5 0 1 1 2.897-.78 22.704 22.704 0 0 1-2.258 17.343 22.702 22.702 0 0 1-13.86 10.667c-1.983.534-3.978.79-5.939.79z\",\n  fill: \"#1d7de8\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M39.869 43.39c-.397 0-.779-.158-1.061-.439l-8.104-8.105a1.5 1.5 0 1 1 2.121-2.121l7.044 7.044 23.257-23.255a1.5 1.5 0 1 1 2.121 2.121L40.93 42.951a1.5 1.5 0 0 1-1.061.439z\",\n  fill: \"#1d7de8\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 150 150\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M110.275 62.199a1.5 1.5 0 0 1-.452-2.931 9.531 9.531 0 0 0 6.676-9.124c0-5.276-4.292-9.569-9.567-9.569a9.548 9.548 0 0 0-9.512 8.521 1.518 1.518 0 0 1-1.653 1.329 1.5 1.5 0 0 1-1.329-1.653 12.542 12.542 0 0 1 12.494-11.197c6.93 0 12.567 5.638 12.567 12.569a12.518 12.518 0 0 1-8.771 11.984c-.15.047-.303.07-.452.07z\",\n  fill: \"#1d7de8\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M120.538 103.383h-15.944a1.5 1.5 0 0 1 0-3h15.944c4.687 0 8.5-3.813 8.5-8.5V13.955c0-4.687-3.813-8.5-8.5-8.5H94.172c-4.687 0-8.5 3.813-8.5 8.5v42.361a1.5 1.5 0 1 1-3 0V13.955c0-6.341 5.159-11.5 11.5-11.5h26.366c6.341 0 11.5 5.159 11.5 11.5v77.928c0 6.341-5.159 11.5-11.5 11.5z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M110.463 11.169h-7.062a2.81 2.81 0 0 1-2.807-2.806 1 1 0 1 1 2 0c0 .444.362.806.807.806h7.062a.807.807 0 0 0 .806-.806 1 1 0 1 1 2 0 2.81 2.81 0 0 1-2.806 2.806z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M19.45 121.539a1.5 1.5 0 0 1-1.279-2.282 201.462 201.462 0 0 0 17.016-35.169c.014-.039.03-.077.047-.114A36.752 36.752 0 0 1 50.72 67.295c.062-.034.125-.064.19-.09a7.442 7.442 0 0 1 5.367 0 1.5 1.5 0 1 1-1.082 2.798 4.434 4.434 0 0 0-3.11-.035A33.756 33.756 0 0 0 37.98 85.183a204.454 204.454 0 0 1-17.248 35.636 1.498 1.498 0 0 1-1.281.719z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M50.024 82.68a1.5 1.5 0 0 1-1.238-2.347l1.094-1.607c5.552-8.183 10.444-15.024 14.096-15.866 4.398-1.017 6.335.769 6.541.975a1.5 1.5 0 0 1-2.124 2.119c-.01 0-1.084-.784-3.743-.172-2.801.646-9.208 10.089-12.287 14.627l-1.1 1.617a1.498 1.498 0 0 1-1.239.653z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M60.309 82.107a1.5 1.5 0 0 1-1.25-2.327c4.277-6.47 11.959-17.272 15.694-17.521a7.732 7.732 0 0 1 6.672 2.488 1.501 1.501 0 0 1-.107 2.119 1.501 1.501 0 0 1-2.119-.108 4.711 4.711 0 0 0-4.12-1.516 1.613 1.613 0 0 1-.196.013c-1.771.336-8.334 8.638-13.321 16.179a1.496 1.496 0 0 1-1.252.673z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M82.597 98.108a1.5 1.5 0 0 1-1.486-1.72 69.858 69.858 0 0 1 2.043-9.342c.016-.055.034-.107.056-.159a76.195 76.195 0 0 1 7.871-14.282c1.073-1.748 4.106-4.953 7.619-8.664 3.813-4.029 8.136-8.595 9.445-10.925 1.119-2.241.365-4.144-.423-4.86-.154-.141-.532-.437-.839-.31-2.315 1.979-9.07 7.59-15.642 12.794a115.674 115.674 0 0 0-19.393 22.507 1.5 1.5 0 0 1-2.506-1.65 118.715 118.715 0 0 1 19.967-23.15c6.723-5.328 13.557-11.009 15.737-12.879.057-.049.117-.093.182-.133 1.386-.867 3.156-.63 4.511.601 1.755 1.595 2.833 4.931 1.055 8.486-1.525 2.717-5.791 7.223-9.916 11.581-3.113 3.29-6.333 6.691-7.292 8.249a73.58 73.58 0 0 0-7.577 13.714 67.26 67.26 0 0 0-1.932 8.86 1.498 1.498 0 0 1-1.481 1.28z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M41.739 147.545a1.5 1.5 0 0 1-1.061-2.56l7.714-7.713a13.454 13.454 0 0 1 5.695-3.497 174.638 174.638 0 0 0 20.616-10.172c8.139-4.341 20.921-22.101 23.142-26.266 2.382-4.468 6.609-14.604 6.982-16.991-.716-.278-2.923-.284-4.987.749-1.537.771-4.899 5.012-7.354 8.109-1.604 2.024-2.99 3.772-3.971 4.753a39.356 39.356 0 0 1-5.349 4.457 1.498 1.498 0 0 1-2.087-.378 1.498 1.498 0 0 1 .378-2.087 36.488 36.488 0 0 0 4.939-4.116c.854-.854 2.255-2.622 3.737-4.492 3.647-4.603 6.383-7.938 8.361-8.928 2.457-1.229 5.498-1.584 7.397-.863 1.122.426 1.604 1.131 1.811 1.646 1.125 2.805-7.127 19.391-7.213 19.552-2.137 4.009-15.151 22.581-24.331 27.476a177.102 177.102 0 0 1-20.994 10.351 1.33 1.33 0 0 1-.138.049 10.487 10.487 0 0 0-4.496 2.75l-7.733 7.732a1.495 1.495 0 0 1-1.061.439z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M89.771 45.671a1.498 1.498 0 0 1-1.471-1.803 16.942 16.942 0 0 1 7.233-10.662 16.958 16.958 0 0 1 3.526-1.767 1.5 1.5 0 1 1 1.022 2.82 13.927 13.927 0 0 0-2.9 1.453 13.924 13.924 0 0 0-5.943 8.761 1.501 1.501 0 0 1-1.467 1.198z\",\n  fill: \"#1d7de8\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M109.233 69.326c-1.021 0-2.046-.093-3.057-.282-.814-.152-1.352-.936-1.199-1.75s.943-1.346 1.75-1.199c3.581.67 7.358-.126 10.361-2.184a13.932 13.932 0 0 0 5.781-8.87 1.508 1.508 0 0 1 1.75-1.199 1.5 1.5 0 0 1 1.199 1.75 16.951 16.951 0 0 1-7.035 10.793 16.964 16.964 0 0 1-9.551 2.94z\",\n  fill: \"#1d7de8\"\n})));","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IntlShape } from 'react-intl';\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport MovingFiles from '../../assets/moving-files.svg';\nimport RightClick from '../../assets/no-files-to-show.svg';\nimport ShortcutForBulkSelection from '../../assets/shortcut-for-bulk-selection.svg';\nimport LongPress from '../../assets/mobile-long-press.svg';\nimport { isTouchDevice } from './platform';\nimport type OnboardingStore from '../stores/OnboardingStore';\n\nexport const DEFAULT_ONBOARDING_STEPS: string[] = ['movingFiles', 'rightClick', 'bulkSelect'];\nexport const TOUCHSCREEN_ONBOARDING_STEPS: string[] = ['longPress'];\nexport const ONBOARDING_STEPS_ILLUSTRATIONS = {\n    movingFiles: MovingFiles,\n    rightClick: RightClick,\n    bulkSelect: ShortcutForBulkSelection,\n    longPress: LongPress,\n};\n\nexport const getCDOOnboardingSteps = (\n    intl: IntlShape,\n): AssetBrowser.CDO.CDOOnboardingStepDetails[] => {\n    const isTouchScreen = isTouchDevice();\n\n    if (isTouchScreen) {\n        return TOUCHSCREEN_ONBOARDING_STEPS.map((step) => {\n            return {\n                id: step,\n                title: intl.formatMessage({ id: `onboarding.title.${step}` }),\n                description: intl.formatMessage({ id: `onboarding.description.${step}` }),\n                image: ONBOARDING_STEPS_ILLUSTRATIONS[step],\n            };\n        });\n    }\n\n    return DEFAULT_ONBOARDING_STEPS.map((step) => {\n        return {\n            id: step,\n            title: intl.formatMessage({ id: `onboarding.title.${step}` }),\n            description: intl.formatMessage({ id: `onboarding.description.${step}` }),\n            image: ONBOARDING_STEPS_ILLUSTRATIONS[step],\n        };\n    });\n};\n\nexport const invokeOnboardingDialog = ({\n    onboardingSteps,\n    delay,\n    intl,\n    onboardingStore,\n}: {\n    onboardingSteps: AssetBrowser.CDO.CDOOnboardingStepDetails[];\n    delay: number;\n    intl: IntlShape;\n    onboardingStore: OnboardingStore;\n}) => {\n    const isTouchScreen = isTouchDevice();\n    const cdoOnboardingSteps = getCDOOnboardingSteps(intl);\n    const updatedOnboardingDetails = isTouchScreen\n        ? cdoOnboardingSteps\n        : onboardingSteps?.slice() ?? [];\n\n    if (!isTouchScreen) {\n        cdoOnboardingSteps.forEach((step) => {\n            if (!updatedOnboardingDetails.find((s) => s.id === step.id)) {\n                updatedOnboardingDetails.push(step);\n            }\n        });\n    }\n    onboardingStore.setOnboardingSteps(updatedOnboardingDetails ?? []);\n    onboardingStore.setOpenUserOnboardingDialog(true, delay);\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { useCallback, useMemo } from 'react';\nimport { observer } from 'mobx-react';\nimport { useIntl } from 'react-intl';\nimport { useAAVContext } from '@csc/adobe-assets-view/dist/src/components/AdobeAssetsView/AAVContext';\nimport HeaderNavigation from '@csc/adobe-assets-view/dist/src/components/HeaderNavigation/HeaderNavigation';\nimport HeaderSelectButton from '@csc/adobe-assets-view/dist/src/components/HeaderSelectButton/HeaderSelectButton';\nimport SortDropdown from '@csc/adobe-assets-view/dist/src/components/SortDropdown/SortDropdown';\nimport HeaderActionButton from '@csc/adobe-assets-view/dist/src/components/HeaderActionButton/HeaderActionButton';\nimport { UXSortBy, ViewMode, ViewToggles } from '@csc/collection-view';\nimport type { SAM } from '@ccx-public/component-types';\n\nimport '../styles/Header.css';\n\nexport type IHeaderProps = {\n    rootTitle: string;\n    filterComponent?: React.ReactNode;\n    banner?: React.ReactNode;\n    hideSort?: boolean;\n    hideViewToggles?: boolean;\n    subheader?: React.ReactNode;\n    isOneLineHeader?: boolean;\n    sortOptions?: Array<{ key: string; label: string }>;\n    isOnline: boolean;\n    rootAsset?: SAM.AdobeAsset;\n};\n\nexport default observer(function Header({\n    rootTitle,\n    filterComponent,\n    banner,\n    hideSort,\n    hideViewToggles,\n    subheader,\n    isOneLineHeader,\n    sortOptions,\n    isOnline,\n    rootAsset,\n}: IHeaderProps) {\n    const { actions, onViewOptionsChange, viewMode, selectionManager } = useAAVContext();\n    const intl = useIntl();\n    const handleViewModeChange = useCallback(\n        (_viewMode) => onViewOptionsChange({ viewMode: _viewMode }),\n        [onViewOptionsChange],\n    );\n\n    const toolbar = useMemo(\n        () => (\n            <>\n                {!hideSort && (\n                    <SortDropdown\n                        sortOptions={\n                            sortOptions ?? [\n                                {\n                                    key: UXSortBy.modifiedDate,\n                                    label: intl.formatMessage({ id: 'header.modifiedDate' }),\n                                },\n                                {\n                                    key: UXSortBy.title,\n                                    label: intl.formatMessage({ id: 'header.title' }),\n                                },\n                            ]\n                        }\n                    />\n                )}\n                {!hideViewToggles && (\n                    <ViewToggles\n                        viewMode={viewMode === 'list' ? ViewMode.List : ViewMode.Grid}\n                        onViewModeChange={handleViewModeChange}\n                    />\n                )}\n            </>\n        ),\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Add missing dependencies\n        [handleViewModeChange, hideSort, hideViewToggles, intl, viewMode],\n    );\n\n    const viewAllFilesAction = useMemo(\n        () => actions?.find((action) => action.value === 'ViewAllFiles'),\n        [actions],\n    );\n\n    // Hides header and resets selection when offline\n    // This needs to be here due to the fact that we are utilizing the AAVContext\n    if (!isOnline && selectionManager) {\n        selectionManager.resetSelection();\n    }\n\n    const headerNav = <HeaderNavigation rootAsset={rootAsset} rootTitle={rootTitle} />;\n\n    return isOnline ? (\n        <div className=\"cdo-header\">\n            {banner}\n            {isOneLineHeader ? (\n                <div className=\"cdo-header-row-bottom\">\n                    <div className=\"cdo-header-row-left\">{headerNav}</div>\n                    <div className=\"cdo-header-row-right\">\n                        <HeaderActionButton\n                            icon={viewAllFilesAction?.icon}\n                            quiet={viewAllFilesAction?.buttonQuiet}\n                            variant={viewAllFilesAction?.buttonVariant}\n                        />\n                        <HeaderSelectButton />\n                        {toolbar}\n                    </div>\n                </div>\n            ) : (\n                <>\n                    <slot name=\"header-top\">\n                        <div className=\"cdo-header-row-top\">\n                            <div className=\"cdo-header-row-left\">\n                                <div className=\"cdo-header-nav-container\">{headerNav}</div>\n                            </div>\n                            <div className=\"cdo-header-row-right\">\n                                <HeaderActionButton />\n                            </div>\n                        </div>\n                    </slot>\n                    <div className=\"cdo-header-row-bottom\">\n                        <div className=\"cdo-header-row-left\">{filterComponent}</div>\n                        <div className=\"cdo-header-row-right cdo-header-action-buttons\">\n                            <HeaderSelectButton />\n                            {toolbar}\n                        </div>\n                    </div>\n                </>\n            )}\n            {subheader}\n        </div>\n    ) : (\n        <></>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport type { SAM } from '@ccx-public/component-types';\nimport Circle from '@ccx-public/spectrum-wrapper/dist/Icon/Circle';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport { Action } from '@csc/collection-view';\nimport type { TabConfig } from '../../components/CDOTab';\nimport HTMLElementToReactComponent from '../HTMLToReactElement';\nimport { AssetBrowser } from '@ccx-public/component-types';\n\nexport function mapCustomActions(\n    customActions: AssetBrowser.CDO.ICustomAction[],\n    tabConfig: TabConfig,\n    routeId: string,\n): Action<BackedCollectionItem<SAM.AdobeAsset>>[] {\n    const backedCollectionItemToAdobeAssets = (elements: BackedCollectionItem<SAM.AdobeAsset>[]) =>\n        elements.map((e) => e.backingItem);\n\n    // map over the custom actions and return a new action\n    const actions: Action<BackedCollectionItem<SAM.AdobeAsset>>[] = customActions.map(\n        (customAction) => {\n            const { renderIcon, execute, isVisible, getDisabledTooltip, children, type } =\n                customAction;\n\n            return new Action<BackedCollectionItem<SAM.AdobeAsset>>({\n                ...customAction,\n                isFolderAction: type === AssetBrowser.CDO.ActionType.Route,\n                icon: renderIcon ? HTMLElementToReactComponent(renderIcon()) : <Circle />, // default icon if none is provided\n                isVisible: isVisible\n                    ? (elements, _params) =>\n                          isVisible(backedCollectionItemToAdobeAssets(elements ?? []))\n                    : () => true,\n                execute: async (_opStore, elements, _correlationId, ...args) =>\n                    execute\n                        ? await execute(\n                              backedCollectionItemToAdobeAssets(elements),\n                              tabConfig.routeName,\n                              routeId,\n                              ...args,\n                          )\n                        : Promise.resolve(),\n                getDisabledTooltipMsgId: getDisabledTooltip\n                    ? (elements) =>\n                          getDisabledTooltip(backedCollectionItemToAdobeAssets(elements ?? []))\n                    : () => '',\n                children: children ? mapCustomActions(children, tabConfig, routeId) : undefined,\n            });\n        },\n    );\n    return actions;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nexport default function HTMLElementToReactComponent(htmlElement: HTMLElement): React.ReactElement {\n    return <>{htmlElement}</>;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport type { WrappedComponentProps } from 'react-intl';\n\nimport { NotificationStatus } from '../types/NotificationStatus';\nimport type { CDOStore } from '../stores/CDOStore';\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport type AAVMetrics from '@csc/adobe-assets-view/dist/src/utils/metrics/aav-metrics';\nimport {\n    EMPTYVIEW_PROPS_FOR_ERROR,\n    EMPTYVIEW_PROPS_FOR_ERROR_WEB,\n    coreSyncDownEmptyViewProps,\n    CLOUD_STORAGE_DISABLED_EMPTYVIEW_PROPS,\n} from '../utils/component-strings';\nimport type {\n    Action,\n    ICDOViewProps,\n    ICollectionItem,\n    IEmptyProps,\n    IFilter,\n    IViewItemProps,\n    ISelectionManager,\n    ViewMode,\n    ToastStore,\n    IAnalyticsData,\n    ISelectionBehavior,\n} from '@csc/collection-view';\nimport { EventType, MenuType, Busy, Workflow } from '@csc/collection-view';\nimport { openAdobeAsset, ClickSource } from '@csc/adobe-assets-view';\nimport type { ExternalBaseURLs } from '@csc/common';\nimport {\n    getBaseUrlMap,\n    hasAnyLegacyExpress,\n    hasOnlyOne,\n    HostConfigContext,\n    NavigationEvent,\n    createLoadPerformanceMeasurement,\n    RenderedEvent,\n    RoutedEvent,\n    NavigateOutEvent,\n} from '@csc/common';\nimport { knownIssuesUrl } from '../utils/urls';\nimport type CDCGlobalStore from '../stores/CDCGlobalStore';\nimport { getExistingCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport { computed, observable, reaction, when } from 'mobx';\nimport OnboardingStore from '../stores/OnboardingStore';\nimport { invokeOnboardingDialog } from '../utils/OnboardingUtils';\nimport NoConnection from './svgs/NoConnection';\nimport type { IAdobeAssetsViewProps } from '@csc/adobe-assets-view/dist/src/components/AdobeAssetsView/AdobeAssetsView';\nimport AdobeAssetsView from '@csc/adobe-assets-view/dist/src/components/AdobeAssetsView/AdobeAssetsView';\nimport type { Column } from '@csc/adobe-assets-view/dist/src/components/columns';\nimport {\n    modifiedDateColumn,\n    sharedWithColumn,\n    sizeColumn,\n    typeColumn,\n} from '@csc/adobe-assets-view/dist/src/components/columns';\nimport Header, { type IHeaderProps } from './Header';\nimport type { FilterOptionViewModel } from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\nimport {\n    getDefaultFilterOptions,\n    getTypeViewModel,\n} from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\nimport {\n    ADOBE_FILE_MIMETYPES,\n    GENERIC_FILE_MIMETYPES,\n} from '@csc/adobe-assets-view/dist/src/utils/filtering-utils/filtering-type-enums';\nimport type { GenericAssetList } from '@csc/sam-utils';\nimport {\n    createResolveSyncConflictsAction,\n    getMimeTypeConfig,\n} from '@csc/adobe-assets-view/dist/src/actions';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport { Capability, MimeTypeVariants } from '../utils/FileCapabilities';\nimport { AAVComponentId } from '@csc/adobe-assets-view/dist/src/utils/ingest';\nimport { ActionAnalyticsValue } from '@csc/adobe-assets-view/dist/src/stores/AAVOperationStore';\nimport ExternalLink from '@csc/adobe-assets-view/dist/src/components/ExternalLink/ExternalLink';\nimport { mapCustomActions } from '../utils/actions/mapCustomActions';\nimport { constructIFilter } from '@csc/adobe-assets-view/dist/src/utils/filtering-utils/filtering-utils';\nimport { FOLDER_MIMETYPES, SAMLIST_REFRESH_INTERVAL } from '../utils/constants';\nimport EmptyCloudDocs from '@csc/adobe-assets-view/dist/src/svgs/EmptyCloudDocs';\nimport type { HeaderNavigationProps } from '@csc/adobe-assets-view/dist/src/components/HeaderNavigation/HeaderNavigation';\nimport type { ViewOptionsButtonProps } from '@csc/adobe-assets-view/dist/src/components/ViewOptionsButton/ViewOptionsButton';\nimport '../styles/CDOTab.css';\nimport { createCompatibleTypesFilterViewModel } from '@csc/adobe-assets-view/dist/src/hooks/useCompatibleTypesFilter';\nimport FileTypesFilter from '@csc/adobe-assets-view/dist/src/components/FileTypesFilter/FileTypesFilter';\n\ntype HeaderPropsType = Pick<IHeaderProps, 'rootTitle' | 'rootAsset'> &\n    Pick<ViewOptionsButtonProps, 'filterOptions' | 'currentFilter'>;\n\n/**\n * These props are injected by CDOProvider's MobXProvider\n */\nexport interface ICDOTabInjectedProps {\n    cdoStore?: CDOStore;\n    callbacks?: AssetBrowser.DocumentCallbacks & AssetBrowser.ICDOCallbacks;\n    metrics?: AAVMetrics;\n    toastStore?: ToastStore;\n}\n\n/**\n * These are CDOView props exposed higher as tab props which get passed down to CDOView\n * so that clients can directly configure CDOView\n */\nexport type ICDOTabPassthroughProps = Pick<\n    ICDOViewProps,\n    | 'hideActionMenu'\n    | 'hideActionToolbar'\n    | 'onSelectionChange'\n    | 'allowClickEventOnDisabled'\n    | 'onBeforeItemClicked'\n    | 'selectionManager'\n>;\n\ntype EmptyViewType = 'empty' | 'filter-empty';\n\nexport type ICDOTabProps = ICDOTabInjectedProps &\n    ICDOTabPassthroughProps &\n    WrappedComponentProps & {\n        compatibleTypes?: string[];\n        routeId?: string;\n        routeToParent?: boolean;\n        routingRefreshTimestamp?: string;\n        sortBy?: AssetBrowser.ViewOptions['sortBy'];\n        sortDirection?: AssetBrowser.ViewOptions['sortDir'];\n        viewMode?: AssetBrowser.ViewOptions['viewMode'];\n        filter?: string;\n        selectionBehavior?: ISelectionBehavior;\n        emptyViewPropsOverrides?: Partial<\n            Record<EmptyViewType, Pick<IEmptyProps, 'image' | 'subtitleId' | 'titleId'>>\n        >;\n        hideFilter?: boolean;\n        header?: React.FC<HeaderNavigationProps>;\n    };\n\nexport type ICDOTabState = {\n    samList: GenericAssetList | undefined;\n    asset: SAM.AdobeAsset | undefined;\n    rootAsset: SAM.AdobeAsset | undefined;\n    routeId: string | undefined;\n    filters: IFilter[];\n    isOnline: boolean;\n};\n\nexport type TabConfig = {\n    tabName: string;\n    ingestSubcategory: string;\n    routeName: AssetBrowser.ContentViewType;\n    folderNavigation?: boolean;\n    documentFilter?: string[];\n    requiresManualRefresh?: boolean;\n    refreshOnWindowFocus?: boolean;\n    /**\n     * This indicates whether this tab will load all pages into the list,\n     * For tabs that do load all pages into the list, this is used to show the ghost-loader only on initial load.\n     */\n    hideNextPageLoadingIndicator?: boolean;\n};\n\nexport const DEFAULT_VIEW_OPTIONS: Partial<AssetBrowser.ViewOptions> = {\n    sortBy: 'modifiedDate',\n    sortDir: 'desc',\n    viewMode: 'grid',\n} as const;\n\nabstract class CDOTab<TProps> extends React.Component<TProps & ICDOTabProps, ICDOTabState> {\n    protected cdoStore?: CDOStore = this.props.cdoStore;\n    protected onboardingStore: OnboardingStore;\n    private customActions: AssetBrowser.CDO.ICustomAction[] = [];\n\n    @observable operationStore: any;\n\n    static contextType = HostConfigContext;\n    intervalId: ReturnType<typeof setInterval> | null = null;\n\n    constructor(props: TProps & ICDOTabProps) {\n        super(props);\n        this.state = {\n            samList: undefined,\n            asset: undefined,\n            rootAsset: undefined,\n            routeId: undefined,\n            filters: [],\n            isOnline: navigator.onLine,\n        };\n        this.cdoMetrics?.setGetView(() => this.viewOptions.viewMode as ViewMode);\n        this.onboardingStore = new OnboardingStore();\n    }\n\n    get globalStore(): CDCGlobalStore {\n        const globalStore = getExistingCDCGlobalStore();\n        if (!globalStore) {\n            throw new Error('[cdo] globalStore is not set');\n        }\n        return globalStore;\n    }\n\n    get cdoMetrics(): AAVMetrics | undefined {\n        return this.globalStore?.cdoMetrics;\n    }\n\n    protected get selectionManager(): ISelectionManager | undefined {\n        return this.props.selectionManager;\n    }\n\n    @computed get baseUrls(): ExternalBaseURLs {\n        const { environment } = this.context as HostConfig;\n        return getBaseUrlMap(environment);\n    }\n\n    abstract get tabConfig(): TabConfig;\n\n    // Abstract method that concrete classes must implement\n    abstract setSamList(asset?: SAM.AdobeAsset): Promise<void>;\n\n    private reactionsReady = false;\n    private reactionDisposers: Array<ReturnType<typeof reaction>> = [];\n    private performanceMeasurements: {\n        endFirstPageMeasurement?: () => void;\n        endFullyLoadedMeasurement?: () => void;\n        endRenditionsLoadedMeasurement?: () => void;\n    } = {};\n\n    private get baseIngestEvent(): Partial<IAnalyticsData['event']> {\n        return {\n            subcategory: this.tabConfig.ingestSubcategory,\n            workflow: this.atRootFolder() ? Workflow.General : Workflow.Folder,\n            subtype: 'list',\n        };\n    }\n\n    private setupReactions() {\n        if (this.reactionsReady) {\n            return;\n        }\n        this.reactionsReady = true;\n\n        // Set up performance measurements for first load only\n        this.setupPerformanceMeasurements();\n\n        this.reactionDisposers = [\n            reaction(\n                () => this.state.samList?.status,\n                (newState) => {\n                    // Handle first page ready measurement\n                    if (\n                        (newState === SAM.AssetListStatus.ReadyHasMorePages ||\n                            newState === SAM.AssetListStatus.ReadyFullyLoaded) &&\n                        this.performanceMeasurements.endFirstPageMeasurement\n                    ) {\n                        this.performanceMeasurements.endFirstPageMeasurement();\n                        this.performanceMeasurements.endFirstPageMeasurement = undefined;\n                    }\n\n                    // Handle fully loaded measurement\n                    if (newState === SAM.AssetListStatus.ReadyFullyLoaded) {\n                        this.cdoMetrics?.fireEvent({\n                            event: {\n                                ...this.baseIngestEvent,\n                                type: EventType.Success,\n                            },\n                        });\n\n                        if (this.performanceMeasurements.endFullyLoadedMeasurement) {\n                            this.performanceMeasurements.endFullyLoadedMeasurement();\n                            this.performanceMeasurements.endFullyLoadedMeasurement = undefined;\n                        }\n                    }\n                },\n            ),\n\n            reaction(\n                () => this.state.samList?.errors,\n                (newState) => {\n                    if (newState?.length) {\n                        newState.forEach((error: SAM.SAMError) => {\n                            this.cdoMetrics?.fireEvent({\n                                event: {\n                                    ...this.baseIngestEvent,\n                                    type: EventType.Error,\n                                    error_code: error.name,\n                                    error_desc: error.message,\n                                },\n                            });\n                        });\n                    }\n                },\n            ),\n\n            // Reaction to track renditions loading completion\n            reaction(\n                () => {\n                    const items = this.state.samList?.items;\n                    if (\n                        !items?.length ||\n                        this.state.samList?.status !== SAM.AssetListStatus.ReadyFullyLoaded\n                    ) {\n                        return false;\n                    }\n\n                    // Check if all items have their thumbnails loaded even if they are in error state\n                    return items.every(\n                        (item) =>\n                            item.thumbnailStatus === SAM.RenditionStatus.Done ||\n                            item.thumbnailStatus === SAM.RenditionStatus.Error,\n                    );\n                },\n                (allRenditionsReady) => {\n                    if (\n                        allRenditionsReady &&\n                        this.performanceMeasurements.endRenditionsLoadedMeasurement\n                    ) {\n                        this.performanceMeasurements.endRenditionsLoadedMeasurement();\n                        this.performanceMeasurements.endRenditionsLoadedMeasurement = undefined;\n                    }\n                },\n            ),\n        ];\n    }\n\n    private setupPerformanceMeasurements() {\n        // Only set up measurements for first load\n        if (this.state.samList !== undefined) {\n            return;\n        }\n\n        const tabName = this.tabConfig.tabName;\n        const createPerformanceMeasurement = (measureName: string) =>\n            createLoadPerformanceMeasurement(\n                {\n                    measureName,\n                    prefix: 'ace-cdo',\n                    trackPerformanceAnalytics: (measureName, duration) => {\n                        this.cdoMetrics?.fireEvent({\n                            event: {\n                                category: 'performance',\n                                subcategory: measureName,\n                                value: duration,\n                            },\n                        });\n                    },\n                },\n                true,\n                this.context?.dispatchEvent,\n            );\n\n        this.performanceMeasurements = {\n            endFirstPageMeasurement: createPerformanceMeasurement(`${tabName}-firstPageReady`),\n            endFullyLoadedMeasurement: createPerformanceMeasurement(`${tabName}-fullyLoaded`),\n            endRenditionsLoadedMeasurement: createPerformanceMeasurement(\n                `${tabName}-allRenditionsLoaded`,\n            ),\n        };\n    }\n\n    onNetworkChange = () => {\n        this.setState({ isOnline: navigator.onLine });\n        if (navigator.onLine) {\n            // Clear rendition errors when coming back online\n            this.state.samList?.items?.forEach((item) => {\n                if (item?.thumbnailStatus === SAM.RenditionStatus.Error) {\n                    item?.clearRenditionError();\n                }\n            });\n            // setNeedsRefresh is used instead of refresh to bypass caching on Desktop hosts\n            this.state.samList?.setNeedsRefresh();\n        }\n    };\n\n    onWindowFocus = () => {\n        if (!this.tabConfig.refreshOnWindowFocus) {\n            return;\n        }\n\n        const lastFetchTime = this.state.samList?.lastFetchTime;\n        if (lastFetchTime && Date.now() - lastFetchTime > SAMLIST_REFRESH_INTERVAL) {\n            this.state.samList?.refresh();\n        }\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-misused-promises -- TODO: Refactor to not use async/await\n    async componentDidMount() {\n        const { callbacks } = this.props;\n        const { getUBEUserOnboardingConfig, getCustomActions } = callbacks ?? {};\n        const { openUserOnboardingDialog } = this.onboardingStore ?? {};\n        const { onboardingSteps, delay, isUserOnboardingCompleted } =\n            getUBEUserOnboardingConfig?.() ?? {};\n        const canInvokeOnboarding = isUserOnboardingCompleted\n            ? !isUserOnboardingCompleted()\n            : false;\n        const enableUserOnboarding =\n            this.globalStore?.featureFlags?.enableUserOnboarding &&\n            !openUserOnboardingDialog &&\n            canInvokeOnboarding;\n\n        if (!this.globalStore.quotaStore) {\n            await this.globalStore.waitForQuotaStore();\n        }\n\n        if (enableUserOnboarding) {\n            invokeOnboardingDialog({\n                onboardingSteps: onboardingSteps ?? [],\n                delay: delay ?? 0,\n                intl: this.globalStore?.intl,\n                onboardingStore: this.onboardingStore,\n            });\n        }\n\n        window.addEventListener('online', this.onNetworkChange);\n        window.addEventListener('offline', this.onNetworkChange);\n        window.addEventListener('focus', this.onWindowFocus);\n\n        this.customActions = getCustomActions?.(this.tabConfig.routeName) ?? [];\n\n        this.setupReactions();\n\n        // Make initial call to fetch data from SAM\n        await this.handleRoutingChange();\n\n        // SAM-cached samList may have errors from previously attempted fetches\n        // during offline, etc. So make sure to refresh it on mount if online\n        const isManualRefresh = this.tabConfig.requiresManualRefresh;\n        const isOnlineWithError =\n            this.state.isOnline && (this.state.samList?.errors?.length ?? 0) > 0;\n        const isNotLoading = this.state.samList?.status !== SAM.AssetListStatus.Loading;\n\n        if ((isManualRefresh || isOnlineWithError) && isNotLoading) {\n            // Clear rendition errors if any\n            this.state.samList?.items?.forEach((item) => {\n                if (item?.thumbnailStatus === SAM.RenditionStatus.Error) {\n                    item?.clearRenditionError();\n                }\n            });\n            this.state.samList?.refresh?.();\n        }\n        if (this.tabConfig.requiresManualRefresh) {\n            this.intervalId = setInterval(() => {\n                // setNeedsRefresh is used instead of refresh to bypass caching on Desktop hosts\n                this.state.samList?.setNeedsRefresh();\n            }, SAMLIST_REFRESH_INTERVAL);\n        }\n    }\n\n    componentWillUnmount(): void {\n        this.reactionDisposers.forEach((dispose) => dispose());\n        window.removeEventListener('online', this.onNetworkChange);\n        window.removeEventListener('offline', this.onNetworkChange);\n        window.removeEventListener('focus', this.onWindowFocus);\n        if (this.intervalId) {\n            clearInterval(this.intervalId);\n        }\n\n        //Cleanup performance measurements Force end any pending measurements before component unmount\n        Object.values(this.performanceMeasurements).forEach((endFn) => {\n            if (endFn) {\n                endFn();\n            }\n        });\n        this.performanceMeasurements = {};\n    }\n\n    @computed\n    private get fileTypesFromDocumentFilter(): AssetBrowser.FileFilterTypeValues[] {\n        // if the host provides compatible types, use them instead\n        if (this.compatibleTypes.length || !this.documentFilter.length) {\n            return [];\n        }\n\n        return [\n            AssetBrowser.OtherFileTypeValues.AllFiles,\n            ...Object.entries({ ...ADOBE_FILE_MIMETYPES, ...GENERIC_FILE_MIMETYPES })\n                .filter(([, mimetypes]) =>\n                    mimetypes.some((mimetype) => this.documentFilter.includes(mimetype)),\n                )\n                .map(([fileType]) => fileType as AssetBrowser.FileFilterTypeValues),\n        ];\n    }\n\n    // Override if need specific filter list for a tab (ex: Deleted)\n    protected get filterOptions(): FilterOptionViewModel[] {\n        return this.fileTypesFromDocumentFilter.length\n            ? this.fileTypesFromDocumentFilter.map((fileType) => {\n                  return getTypeViewModel(this.globalStore?.intl, fileType, true);\n              })\n            : getDefaultFilterOptions(this.globalStore?.intl);\n    }\n\n    // These filters are any filters that may apply to a listing, but users don't have control over\n    // e.g Offline filter\n    protected get systemFilters(): IFilter[] {\n        return [\n            // Offline filter\n            {\n                conditional: () => !this.state.isOnline,\n                filter: () => [],\n                getFilterEmptyProps: this.getOfflineEmptyViewProps.bind(this),\n            },\n        ];\n    }\n\n    // The EmptyView displayed when a filter is applied.\n    // Override if need specific EmptyView for a tab\n    protected getFilterEmptyView(): IEmptyProps {\n        const { intl } = this.globalStore;\n        const allFiles = getTypeViewModel(intl, AssetBrowser.FileFilterTypeValues.AllFiles);\n\n        return {\n            image: <EmptyCloudDocs />,\n            titleId: 'empty.title.filter',\n            buttons: [\n                {\n                    label: intl.formatMessage({ id: 'button.all' }),\n                    callback: () => {\n                        this.handleViewOptionsChange({ filter: allFiles.value });\n                    },\n                },\n            ],\n            metrics: this.cdoMetrics,\n            renderEventMetricSubtype: 'empty-filtered',\n            ingestSubcategory: this.tabConfig.ingestSubcategory,\n        };\n    }\n\n    // Override if need specific filter logic for a tab\n    protected get filters(): IFilter[] {\n        if (this.filterValue === AssetBrowser.FileFilterTypeValues.AllFiles) {\n            return [];\n        }\n\n        // If the compatible filter option is available, use it\n        if (this.compatibleFilterOption) {\n            return [\n                constructIFilter({\n                    filter: this.compatibleFilterOption.filter,\n                    getFilterEmptyProps: this.getFilterEmptyView.bind(this),\n                }),\n            ];\n        }\n        // Otherwise, use the filter value to find the matching filter option\n        const filterViewModel =\n            this.filterOptions.find((option) => {\n                return option.value === this.filterValue;\n            }) ?? this.filterOptions[0];\n        const matchedIFilter = constructIFilter({\n            filter: filterViewModel.filter,\n            getFilterEmptyProps: this.getFilterEmptyView.bind(this),\n        });\n        return [matchedIFilter];\n    }\n\n    @computed\n    protected get filterValue(): AssetBrowser.FileFilterTypeValues {\n        const options = this.filterOptions;\n\n        // FileFilterTypeValues.AllFiles is needed to display the correct AAV empty view when cloud storage is disabled\n        if (this.globalStore.quotaStore?.isCloudStorageDisabled) {\n            return AssetBrowser.FileFilterTypeValues.AllFiles;\n        }\n        const defaultFilterValue = this.compatibleFilterOption\n            ? this.compatibleFilterOption.value\n            : options[0].value;\n\n        return (\n            options.find((option) => {\n                return option.value === this.props.filter;\n            })?.value ?? defaultFilterValue\n        );\n    }\n\n    // eslint-disable-next-line @typescript-eslint/no-misused-promises -- OK to use async/await here\n    async componentDidUpdate(\n        prevProps: Readonly<TProps & ICDOTabProps>,\n        prevState: Readonly<TProps & ICDOTabState>,\n    ): Promise<void> {\n        const { routeId, routeToParent, routingRefreshTimestamp } = this.props;\n        const { dispatchEvent } = this.context as HostConfig;\n\n        const prevSortBy = prevProps.sortBy ?? DEFAULT_VIEW_OPTIONS.sortBy;\n        const prevSortDir = prevProps.sortDirection ?? DEFAULT_VIEW_OPTIONS.sortDir;\n        const currentSortBy = this.props.sortBy ?? DEFAULT_VIEW_OPTIONS.sortBy;\n        const currentSortDir = this.props.sortDirection ?? DEFAULT_VIEW_OPTIONS.sortDir;\n        const hasSortParamChange = prevSortBy !== currentSortBy || prevSortDir !== currentSortDir;\n\n        const routeIdChanged = prevProps.routeId !== routeId;\n        const routeToParentChanged = prevProps.routeToParent !== routeToParent;\n        const routingRefreshTimestampChanged =\n            prevProps.routingRefreshTimestamp !== routingRefreshTimestamp;\n\n        if (routeIdChanged || routeToParentChanged || routingRefreshTimestampChanged) {\n            // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n            this.handleRoutingChange();\n        }\n\n        if (hasSortParamChange) {\n            // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n            this.setSamList(this.state.asset);\n        }\n\n        // Refresh the samList here as this code executes whenever there are changes in props/state, indicating a user-triggered action.\n        if (this.tabConfig.requiresManualRefresh) {\n            const lastFetchTime = this.state.samList?.lastFetchTime;\n            if (lastFetchTime && Date.now() - lastFetchTime > SAMLIST_REFRESH_INTERVAL) {\n                // setNeedsRefresh is used instead of refresh to bypass caching on Desktop hosts\n                this.state.samList?.setNeedsRefresh();\n            }\n        }\n\n        if (!prevState.samList && this.state.samList) {\n            await when(() => {\n                const status = this.state.samList?.status;\n                const itemCount = this.state.samList?.items?.length ?? 0;\n\n                // Fire if we have items OR if we're in a final state (not loading)\n                return (\n                    itemCount > 0 ||\n                    status === SAM.AssetListStatus.ReadyHasMorePages ||\n                    status === SAM.AssetListStatus.ReadyFullyLoaded ||\n                    status === SAM.AssetListStatus.HadLoaderErrors\n                );\n            });\n\n            /** requestAnimationFrame is used here to ensure that we've sent the event sometime\n             * after the current paint. This makes sure when hosts detach the ghost loader, we don't\n             * see the busy spinner, and instead see the successfully rendered CDO.\n             * Desired behavior is to have a seamless experience from host ghost loader -> CDO.\n             */\n            window.requestAnimationFrame(() => {\n                dispatchEvent(new RenderedEvent());\n            });\n        }\n    }\n\n    private async handleRoutingChange(): Promise<void> {\n        const { routeId, routeToParent } = this.props;\n        // - Fetch the asset for the routeId\n        // - If the asset is a file, forward the route-id down to the routeId field in AAV.\n        // - If the asset is a folder:\n        //     - (default) If route-to-parent is false, a routeId is not provided to AAV. Fetch the listing for the folder and provide that samList to AAV.\n        //     - If route-to-parent is true, forward the route-id down to the routeId field in AAV, and fetch the listing for the parent folder and provide that samList to AAV.\n\n        if (!routeId) {\n            // no routeId, show the default view\n            await this.setSamList();\n            return;\n        }\n\n        const asset =\n            this.tabConfig.folderNavigation && routeId\n                ? await this.globalStore.hostAssetContext?.getAssetWithCloudID(routeId)\n                : undefined;\n\n        if (!asset) {\n            // asset doesn't exist, show the default view\n            // still pass the `routeId` down to CV to scroll to the requested item\n            await this.setSamList();\n            // wait to pass `routeId` down to CV until the list is fully loaded\n            await when(() => this.state.samList?.status === SAM.AssetListStatus.ReadyFullyLoaded);\n            this.setState({ routeId });\n            return;\n        }\n\n        if (!asset.isFolder) {\n            // if the asset is a file, forward the routeId down directly\n            const parentId = asset.ancestorIDs?.[asset.ancestorIDs.length - 1];\n            if (!parentId) {\n                console.warn('[cdo] handleRoutingChange file - parentId is undefined');\n                return;\n            }\n            const parentAsset =\n                await this.globalStore.hostAssetContext?.getAssetWithCloudID(parentId);\n\n            await this.setSamList(parentAsset);\n            // wait to pass `routeId` down to CV until the list is fully loaded\n            await when(() => this.state.samList?.status === SAM.AssetListStatus.ReadyFullyLoaded);\n            this.setState({ routeId });\n            return;\n        }\n\n        if (routeToParent) {\n            // if the asset is a folder and routeToParent is true, the host is sending routeId for a folder that they want\n            // to see selected & scrolled to within the view. so fetch its parent folder and forward the routeId down\n\n            if (asset.id === this.state.rootAsset?.id) {\n                console.warn(\n                    `Invalid configuration! Cannot fetch the parent folder for asset ${asset.id}`,\n                );\n                return;\n            }\n\n            const parentId = asset.ancestorIDs?.[asset.ancestorIDs.length - 1];\n            if (!parentId) {\n                console.warn('[cdo] handleRoutingChange folder - parentId is undefined');\n                return;\n            }\n            const parentFolder =\n                await this.globalStore.hostAssetContext?.getAssetWithCloudID(parentId);\n            await this.setSamList(parentFolder);\n            return;\n        }\n\n        // if the asset is a folder and routeToParent is false, the host is sending the routeId for a folder that they want\n        // to see the contents of. so fetch the folder and don't forward any routeId down\n        this.setState({ routeId: undefined });\n        await this.setSamList(asset);\n    }\n\n    get viewOptions(): AssetBrowser.ViewOptions {\n        const { sortBy, sortDirection, viewMode } = this.props;\n        return {\n            ...DEFAULT_VIEW_OPTIONS,\n            sortBy,\n            sortDir: sortDirection,\n            viewMode,\n            filter: this.filterValue,\n        };\n    }\n\n    protected handleViewOptionsChange({\n        assetId,\n        sortBy,\n        sortDir,\n        viewMode,\n        filter,\n    }: AssetBrowser.ViewOptions) {\n        const { dispatchEvent } = this.context as HostConfig;\n        const filterValue = filter ?? this.viewOptions.filter;\n        const updatedViewOptions: AssetBrowser.ViewOptions = {\n            assetId: assetId ?? this.state.asset?.id,\n            sortBy: sortBy ?? this.viewOptions.sortBy,\n            sortDir: sortDir ?? this.viewOptions.sortDir,\n            viewMode: viewMode ?? this.viewOptions.viewMode,\n        };\n        this.cdoMetrics?.fireEvent({\n            event: {\n                subcategory: this.tabConfig.ingestSubcategory,\n                workflow: Workflow.Navigation,\n                type: EventType.Click,\n            },\n            ui: {\n                sort_order: updatedViewOptions.sortDir,\n                sort_sequence: updatedViewOptions.sortBy,\n                view: updatedViewOptions.viewMode,\n                filter: filterValue,\n            },\n        });\n        dispatchEvent(\n            new NavigationEvent({\n                name: this.tabConfig.routeName,\n                params: {\n                    ...updatedViewOptions,\n                    filter: filterValue,\n                },\n            }),\n        );\n    }\n\n    private handleNavigateOut() {\n        const { dispatchEvent } = this.context as HostConfig;\n        dispatchEvent(new NavigateOutEvent());\n    }\n\n    private handleLaunchItems = async (documents: ICollectionItem[], _e) => {\n        for (const doc of documents as BackedCollectionItem<SAM.AdobeAsset>[]) {\n            const asset = doc.backingItem;\n            await openAdobeAsset({\n                asset,\n                baseUrls: this.baseUrls,\n                dispatchEvent: this.context.dispatchEvent,\n                source: ClickSource.Asset,\n                locale: this.globalStore.intl.locale,\n                sam: this.globalStore.sam,\n            });\n        }\n    };\n\n    get compatibleTypes() {\n        // compatibleTypes by props takes precedence over hostProductData.compatibleTypes\n        // the latter is around for backwards compatibility\n        return (\n            this.props.compatibleTypes ?? this.globalStore?.hostProductData?.compatibleTypes ?? []\n        );\n    }\n\n    protected get documentFilter() {\n        return (\n            this.tabConfig.documentFilter ??\n            this.cdoStore?.documentFilterOverride ??\n            this.cdoStore?.documentFilter ??\n            []\n        );\n    }\n\n    protected shouldRenderItemAsDisabled = (\n        _element: BackedCollectionItem<SAM.AdobeAsset>,\n    ): Promise<boolean> => Promise.resolve(false);\n\n    private commonShouldRenderItemAsDisabled = (\n        element: BackedCollectionItem<SAM.AdobeAsset>,\n    ): Promise<boolean> => {\n        const { isOnline } = this.state;\n        const asset = element.backingItem;\n        const isOfflineOpenDisabled = this.cdoStore?.isOrganizer || this.cdoStore?.isOpenItemPicker;\n\n        const isOpenDisabled =\n            !isOnline && isOfflineOpenDisabled && !asset.isFolder && !asset.isAvailableOffline;\n\n        const isPlaceOrPlaceLinkDisabled =\n            !isOnline &&\n            (this.cdoStore?.isPlaceOrPlaceLinkOrEmbedPicker || this.cdoStore?.isOrganizer) &&\n            !asset.isFolder &&\n            !asset.isAvailableOffline;\n\n        // disable asset when in choose dir mode and asset is not a folder\n        const isNonFolderInChooseDirMode = this.cdoStore?.isChooseDirMode && !asset.isFolder;\n\n        const passesCommonDisabledStates = !(\n            isOpenDisabled ||\n            isPlaceOrPlaceLinkDisabled ||\n            isNonFolderInChooseDirMode\n        );\n\n        return Promise.resolve(\n            passesCommonDisabledStates ? this.shouldRenderItemAsDisabled?.(element) : true,\n        );\n    };\n\n    abstract get actions(): Action<BackedCollectionItem<SAM.AdobeAsset>>[];\n\n    /**\n     * Get the final set of actions to pass to AAV, adding in Custom Actions (if provided), removing Excluded Actions, and sorting.\n     */\n    get finalActions(): Action<BackedCollectionItem<SAM.AdobeAsset>>[] {\n        const { excludedActions } = this.globalStore.hostProductData;\n\n        const allowedActions = excludedActions?.length\n            ? this.actions.filter((a) => !excludedActions.includes(a.value))\n            : this.actions;\n\n        if (!this.customActions?.length) {\n            return allowedActions;\n        }\n\n        const mappedCustomActions = mapCustomActions(\n            this.customActions,\n            this.tabConfig,\n            this.state.routeId ?? '',\n        );\n        const allActions = [...allowedActions, ...mappedCustomActions];\n        // sort all actions alphabetically and grouped by groupName\n        allActions.sort((a, b) => {\n            const groupNameA = a?.groupName ?? '';\n            const groupNameB = b?.groupName ?? '';\n            if (!groupNameA && groupNameB) {\n                return 1;\n            }\n            if (groupNameA && !groupNameB) {\n                return -1;\n            }\n            return groupNameA.localeCompare(groupNameB, undefined, {\n                numeric: true,\n                sensitivity: 'base',\n            });\n        });\n\n        return allActions;\n    }\n\n    protected getErrorViewProps(): IEmptyProps | undefined {\n        const { samList, isOnline } = this.state;\n        const isWebClient = this.globalStore.isFeatureFlagEnabled('isWebClient');\n        const EMPTYVIEW_PROPS_FOR_UNKNOWN_ERROR = isWebClient\n            ? EMPTYVIEW_PROPS_FOR_ERROR_WEB\n            : EMPTYVIEW_PROPS_FOR_ERROR;\n\n        // ErrorView Precedence:\n        // Logged Out -> Offline -> Sam Init Failed -> Sam List errors field is populated\n        if (this.globalStore.didSAMInitFail) {\n            return coreSyncDownEmptyViewProps(this.globalStore.intl.locale);\n        }\n\n        if (!isOnline) {\n            return this.getOfflineEmptyViewProps();\n        }\n\n        if (this.globalStore.quotaStore?.quotaState === NotificationStatus.CLOUD_STORAGE_DISABLED) {\n            return CLOUD_STORAGE_DISABLED_EMPTYVIEW_PROPS;\n        }\n\n        if (samList?.errors?.length) {\n            return EMPTYVIEW_PROPS_FOR_UNKNOWN_ERROR;\n        }\n\n        if (samList && samList.items.length === 0 && (samList.errors?.length ?? 0) > 0) {\n            return EMPTYVIEW_PROPS_FOR_UNKNOWN_ERROR;\n        }\n    }\n\n    protected atRootFolder() {\n        return true;\n    }\n\n    protected getNonErrorEmptyViewProps(): IEmptyProps {\n        return {};\n    }\n\n    protected getOfflineEmptyViewProps(): IEmptyProps {\n        const { hostProductData } = this.globalStore;\n        const { intl, callbacks } = this.props;\n        const { onViewOfflineFiles } = callbacks ?? {};\n        const productName = hostProductData?.productName;\n\n        const image = <NoConnection />;\n        return {\n            image,\n            titleId: `empty.offline.root.title`,\n            subtitleId: 'empty.offline.root.subtitle',\n            buttons: onViewOfflineFiles\n                ? [\n                      {\n                          label: intl.formatMessage({ id: 'empty.button.offline.label' }),\n                          callback: () => {\n                              // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n                              onViewOfflineFiles();\n                          },\n                      },\n                  ]\n                : [],\n            productName,\n        };\n    }\n\n    protected getEmptyViewProps = (): IEmptyProps | undefined => {\n        const { hostProductData } = this.globalStore;\n        const { productName } = hostProductData;\n        const errorViewProps = this.getErrorViewProps();\n\n        const link = <ExternalLink url={this.knownIssuesLink} />;\n\n        if (errorViewProps) {\n            return {\n                // overrideable props\n                link: link,\n                ingestSubcategory: this.tabConfig.ingestSubcategory,\n                buttons: undefined,\n\n                ...errorViewProps,\n                productName,\n            };\n        }\n\n        const { samList } = this.state;\n\n        if (samList?.items.length === 0 && samList?.errors?.length) {\n            return undefined;\n        }\n\n        // NOTE: At this point, if we do have assets in the listing, we shouldn't return undefiend\n        // because the hidden filters haven't been applied yet. So we pass the empty-view regardless\n        // and let cv determine whether to display the empty-view.\n        return this.getNonErrorEmptyViewProps();\n    };\n\n    protected get knownIssuesLink() {\n        const { intl, hostProductData } = this.globalStore;\n        return knownIssuesUrl(intl.locale, hostProductData);\n    }\n\n    isShareActionVisible = (elements: BackedCollectionItem<SAM.AdobeAsset>[]) => {\n        /**\n         * 1. Folders are not shareable\n         * 2. Share action should not appear when more than 1 asset is selected.\n         * 3. For legacyExpress Assets share is not allowed\n         */\n        const element = elements?.[0];\n        if (!element) {\n            return false;\n        }\n\n        if (\n            element.backingItem.isFolder ||\n            !hasOnlyOne(elements) ||\n            // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Use utilities from AdobeAssetsView package\n            hasAnyLegacyExpress(elements)\n        ) {\n            return false;\n        }\n        const selectedType = element.type;\n        /**\n         * fileCapabilities is provided in share sheet configuration from the surface.\n         */\n        if (element.backingItem.isReviewLink) {\n            return this.cdoStore?.fileCapabilities?.isSharingCapable(\n                selectedType ?? '',\n                Capability.ShareSheetAction,\n                MimeTypeVariants.ReviewLink,\n            );\n        }\n        if (element.backingItem.storageAssignee?.type === 'org') {\n            return this.cdoStore?.fileCapabilities?.isSharingCapable(\n                selectedType ?? '',\n                Capability.ShareSheetAction,\n                MimeTypeVariants.TeamLib,\n            );\n        }\n        return this.cdoStore?.fileCapabilities?.isSharingCapable(\n            selectedType ?? '',\n            Capability.ShareSheetAction,\n        );\n    };\n\n    protected getShareSheetConfig = ({\n        mimeType,\n        isReviewLink,\n        isTeamLib,\n    }: {\n        mimeType: string;\n        isReviewLink: boolean;\n        isTeamLib: boolean;\n    }): AssetBrowser.IShareSheetConfig | null => {\n        const fileSharingCapabilities = this.cdoStore?.fileCapabilities;\n        if (!fileSharingCapabilities) {\n            return getMimeTypeConfig({ mimeType });\n        }\n        if (isReviewLink) {\n            return fileSharingCapabilities?.getSharingCapabilities(\n                mimeType,\n                MimeTypeVariants.ReviewLink,\n            );\n        }\n        if (isTeamLib) {\n            return fileSharingCapabilities?.getSharingCapabilities(\n                mimeType,\n                MimeTypeVariants.TeamLib,\n            );\n        }\n        return fileSharingCapabilities?.getSharingCapabilities(mimeType);\n    };\n\n    protected get listColumns(): Column[] {\n        return [\n            typeColumn(this.globalStore.intl),\n            modifiedDateColumn(this.globalStore.intl),\n            sizeColumn(this.globalStore.intl),\n            sharedWithColumn(this.globalStore.intl),\n        ];\n    }\n\n    protected getPropsForItem: (\n        item: BackedCollectionItem<SAM.AdobeAsset>,\n    ) => Partial<IViewItemProps>;\n\n    protected get aavProps(): Partial<IAdobeAssetsViewProps> {\n        return {};\n    }\n\n    private get cdoPassthroughProps(): ICDOTabPassthroughProps {\n        const {\n            hideActionMenu,\n            hideActionToolbar,\n            onSelectionChange,\n            allowClickEventOnDisabled,\n            onBeforeItemClicked,\n        } = this.props;\n        return {\n            hideActionMenu,\n            hideActionToolbar,\n            onSelectionChange,\n            allowClickEventOnDisabled,\n            onBeforeItemClicked,\n        };\n    }\n\n    protected logFilterChange() {\n        this.cdoMetrics?.logUsageMetric(\n            {\n                ingestSubcategory: this.tabConfig.ingestSubcategory,\n                type: EventType.Click,\n                subtype: 'change-filter',\n                menu: MenuType.Header,\n                workflow: Workflow.Navigation,\n            },\n            {\n                ui: {\n                    sort_sequence: this.viewOptions.sortBy,\n                    sort_order: this.viewOptions.sortDir,\n                },\n            },\n        );\n    }\n\n    protected renderBanner(): React.JSX.Element {\n        return <></>;\n    }\n\n    protected renderFilterComponent(): React.JSX.Element {\n        const { hideFilter } = this.props;\n        if (hideFilter || this.globalStore.quotaStore?.isCloudStorageDisabled) {\n            return <></>;\n        }\n        return (\n            <FileTypesFilter\n                compatibleTypesFilter={this.compatibleFilterOption}\n                filterOptions={this.filterOptions}\n                filterValue={this.filterValue}\n            />\n        );\n    }\n\n    /**\n     * Returns the compatibility filter option if the host product data contains compatible types.\n     * Otherwise, returns undefined.\n     *\n     */\n    @computed\n    protected get compatibleFilterOption(): FilterOptionViewModel | undefined {\n        const { intl } = this.globalStore;\n\n        return createCompatibleTypesFilterViewModel(intl, this.compatibleTypes, true);\n    }\n\n    get headerProps(): HeaderPropsType {\n        return {\n            rootTitle: this.globalStore.intl.formatMessage({\n                id: `tab.${this.tabConfig.tabName}`,\n            }),\n            rootAsset: this.state.rootAsset,\n            filterOptions: this.filterOptions,\n            currentFilter: this.filterValue,\n        };\n    }\n\n    protected renderHeader(): React.JSX.Element {\n        return (\n            <Header\n                {...this.headerProps}\n                isOnline={this.state.isOnline}\n                filterComponent={this.renderFilterComponent()}\n                banner={this.renderBanner()}\n                subheader={this.renderSubheader()}\n            />\n        );\n    }\n\n    protected onBeforeItemClicked = (item: BackedCollectionItem<SAM.AdobeAsset>): boolean => {\n        if (\n            item.backingItem.syncSuspensionReason !==\n            SAM.AssetSyncSuspensionReason.LocalContentCorrupted\n        ) {\n            return this.props.onBeforeItemClicked?.(item) ?? true;\n        }\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        this.resolveSyncError(item);\n        return false;\n    };\n\n    protected get overrideListColumns(): ICDOViewProps['overrideListColumns'] {\n        return undefined;\n    }\n\n    private resolveSyncError = async (item) => {\n        const showModal = async () => ({ type: AssetBrowser.ShowModalResultType.Success });\n        const showToast = () => {};\n        const { intl } = this.globalStore;\n        const resolveSyncConflictsAction = createResolveSyncConflictsAction({\n            intl,\n            showModal,\n            showToast,\n            metricLogger: this.cdoMetrics?.getOperationalMetricLogger(\n                ActionAnalyticsValue.ResolveSyncError,\n            ),\n        });\n        const [, shouldResolveConflict] = await resolveSyncConflictsAction.beforeExecute(\n            this.operationStore,\n            [item],\n        );\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        resolveSyncConflictsAction.execute(\n            this.operationStore,\n            [item],\n            'resolveSyncError',\n            shouldResolveConflict,\n        );\n    };\n\n    private onRouted = async (params: {\n        routeId: string;\n        assetIds: string[];\n        currentIndex: number;\n    }): Promise<void> => {\n        const { dispatchEvent } = this.context as HostConfig;\n        dispatchEvent(\n            new RoutedEvent({\n                name: this.tabConfig.routeName,\n                params: params,\n            }),\n        );\n    };\n\n    protected renderSubheader(): React.JSX.Element {\n        return <></>;\n    }\n\n    @computed\n    get documentFilters(): IFilter[] {\n        if (!this.documentFilter.length) {\n            return [];\n        }\n\n        const documentFilter = [...this.documentFilter, ...FOLDER_MIMETYPES];\n\n        return [\n            constructIFilter({\n                filter: (element) => documentFilter.includes(element.mediaType),\n                isHiddenFilter: true,\n            }),\n        ];\n    }\n\n    @computed\n    get documentExclusionFilters(): IFilter[] {\n        if (!this.cdoStore?.documentExclusionFilter?.length) {\n            return [];\n        }\n\n        return [\n            constructIFilter({\n                filter: (element) =>\n                    !this.cdoStore?.documentExclusionFilter?.includes(element.mediaType),\n                isHiddenFilter: true,\n            }),\n        ];\n    }\n\n    @computed\n    get allFilters(): IFilter[] {\n        return [\n            ...this.systemFilters,\n            ...this.documentFilters,\n            ...this.documentExclusionFilters,\n            ...this.filters,\n        ];\n    }\n\n    render(): React.JSX.Element {\n        const { samList } = this.state;\n        const { callbacks, header: HeaderComponent } = this.props as ICDOTabProps;\n\n        if (!samList && !this.globalStore.quotaStore?.isCloudStorageDisabled) {\n            return <Busy />;\n        }\n\n        return (\n            <AdobeAssetsView\n                componentId={AAVComponentId.CDO}\n                ingestSubcategory={this.tabConfig.ingestSubcategory}\n                hideNextPageLoadingIndicator={this.tabConfig.hideNextPageLoadingIndicator}\n                routeId={this.state.routeId}\n                launchItems={this.handleLaunchItems}\n                list={samList}\n                asset={this.state.asset}\n                columns={this.listColumns}\n                actions={this.finalActions}\n                sortBy={this.viewOptions.sortBy}\n                sortDir={this.viewOptions.sortDir}\n                viewMode={this.viewOptions.viewMode}\n                filters={this.allFilters}\n                onViewOptionsChange={(config) => this.handleViewOptionsChange(config)}\n                onNavigateOut={() => this.handleNavigateOut()}\n                getEmptyViewProps={() => this.getEmptyViewProps() ?? {}}\n                onRouted={this.onRouted}\n                getPropsForItem={this.getPropsForItem}\n                header={\n                    HeaderComponent ? (\n                        <HeaderComponent {...this.headerProps} />\n                    ) : (\n                        this.renderHeader()\n                    )\n                }\n                selectionManager={this.selectionManager}\n                shouldRenderItemAsDisabled={\n                    this.shouldRenderItemAsDisabled ?? this.commonShouldRenderItemAsDisabled\n                }\n                overrideListColumns={this.overrideListColumns}\n                getDraggedFiles={callbacks?.getDraggedFiles}\n                selectionBehavior={this.props.selectionBehavior}\n                routingRefreshTimestamp={this.props.routingRefreshTimestamp}\n                {...this.aavProps}\n                {...this.cdoPassthroughProps}\n                // intentionally override passthrough `onBeforeItemClicked`.\n                // internally call it with surrounding logic.\n                // keep this after the spreads to allow it to be overridden\n                onBeforeItemClicked={this.onBeforeItemClicked}\n            />\n        );\n    }\n}\n\nexport default CDOTab;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { MIMETYPES, captureSentryException } from '@csc/common';\nimport { normalizePath, EventType } from '@csc/collection-view';\nimport type AAVMetrics from '@csc/adobe-assets-view/dist/src/utils/metrics/aav-metrics';\nimport type { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport type { IOperationalMetricOptions } from '@csc/adobe-assets-view/dist/src/stores/AAVOperationStore';\nimport { ActionAnalyticsValue } from '@csc/adobe-assets-view/dist/src/stores/AAVOperationStore';\nimport type { IImportAnalytics } from '../types/IImportAction';\n\n// returns a list of supported mimetypes for conversion\nconst SUPPORTED_CONVERSIONS = [\n    MIMETYPES.PS_CLOUD_DOCUMENT_DEP,\n    MIMETYPES.XD_CLOUD_DOCUMENT,\n    MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT,\n    MIMETYPES.INDESIGN_CLOUD_DOCUMENT,\n    MIMETYPES.INDESIGN_CLOUD_DOCUMENT_LIVE,\n];\n\n// takes a mimetype and returns boolean indicating\n// whether export action is available or not\nfunction isExportAvailable(mimeType: string): boolean {\n    // In CloudDocs, we only support export for PSDC/XDC/AIC\n    if (mimeType?.endsWith('+dcx') && !SUPPORTED_CONVERSIONS.includes(mimeType)) {\n        return false;\n    }\n    return true;\n}\n\nexport function derivePath(path: string): string {\n    const normalized = normalizePath(path);\n    // ensure path starts with '/'\n    return normalized.startsWith('/') ? normalized : `/${normalized}`;\n}\n\n// determines whether all elements can be exported\nexport function hasAllExportables(elements): boolean {\n    if (!elements.length) {\n        return false;\n    }\n    return elements.every((e) => isExportAvailable(e.type));\n}\n\nexport async function onExportCallback(\n    elements: SAM.AdobeAsset[],\n    cdoMetrics: AAVMetrics | undefined,\n    callbacks: AssetBrowser.ICDOCallbacks,\n) {\n    const analyticsValue = ActionAnalyticsValue.Export;\n    const metricLogger = cdoMetrics?.getOperationalMetricLogger(analyticsValue);\n    const startTime = new Date(Date.now());\n    const logAnalytics = ({ eventType, errorCode, errorDesc }: IImportAnalytics) => {\n        const metricLoggerOptions: IOperationalMetricOptions = {\n            correlationId: analyticsValue,\n            eventType: EventType.Success,\n            dtsStart: startTime,\n            errorCode,\n            errorDesc,\n        };\n        if (eventType === 'error') {\n            metricLoggerOptions.eventType = EventType.Error;\n            // Create Sentry tags for the error\n            const sentryTagSource = {\n                correlation_id: metricLoggerOptions.correlationId,\n                event_date: metricLoggerOptions.dtsStart?.toISOString(),\n                total_asset_count: elements.length,\n                mimetype: metricLoggerOptions.element?.type,\n                error_code: metricLoggerOptions.errorCode,\n                error_desc: metricLoggerOptions.errorDesc,\n                action_type: analyticsValue,\n            };\n            captureSentryException(new Error(errorDesc), sentryTagSource);\n        }\n        void metricLogger?.(metricLoggerOptions);\n    };\n\n    // export using host callback if one is provided\n    if (callbacks.exportFiles) {\n        callbacks.exportFiles({ elements, logAnalytics });\n        return;\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IntlShape } from 'react-intl';\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport type { AAVActionArgs } from '@csc/adobe-assets-view/dist/src/actions';\nimport {\n    checkAllowedAssetsBeforeOp,\n    createAddToBoardAction,\n    createCopyLinkAction,\n    createCopyToAction,\n    createDiscardAction,\n    createDuplicateAction,\n    createExportAction,\n    createFavoriteAction,\n    createLeaveAction,\n    createMakeAvailableOfflineAction,\n    createMoveAction,\n    createOpenAction,\n    createPermDeleteAction,\n    createRemoveFavoriteAction,\n    createRenameAction,\n    createReportAbuseAction,\n    createShareAction,\n} from '@csc/adobe-assets-view/dist/src/actions';\nimport { ActionAnalyticsValue } from '@csc/adobe-assets-view/dist/src/stores/AAVOperationStore';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport { AAVComponentId, Metrics } from '@csc/adobe-assets-view/dist/src/utils/ingest';\nimport { hasOnlyNonFolders } from '@csc/adobe-assets-view/dist/src/utils/folders';\nimport aavRenameCallbacks from '@csc/adobe-assets-view/dist/src/utils/metrics/aav-rename-callbacks';\nimport type { Action } from '@csc/collection-view';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport { isSmallBreakpoint } from '@csc/common/dist/src/hooks/useBreakpoint';\nimport type { ICDOTabProps } from '../components/CDOTab';\nimport type CDOTab from '../components/CDOTab';\nimport type { CDOStore } from '../stores/CDOStore';\nimport type CDCGlobalStore from '../stores/CDCGlobalStore';\nimport { getExistingCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport { onExportCallback } from './export-utils';\nimport {\n    isFireflyGenerationIncomplete,\n    isFireflyGeneration,\n} from '@csc/adobe-assets-view/dist/src/utils/view-item/view-item';\nimport { generationHistoryUtils } from '@csc/sam-utils';\nimport { hasAny, hasOnlyOne } from '@csc/common';\n\nexport function adaptOnBefore(\n    intl: IntlShape,\n    showToast: AssetBrowser.ShowToastFn,\n    getOpenCloudDocuments: AssetBrowser.DocumentCallbacks['getOpenCloudDocuments'],\n    callback?: AssetBrowser.IOnBeforeOperation,\n): undefined | AAVActionArgs['onBefore'] {\n    const globalStore = getExistingCDCGlobalStore();\n    if (!globalStore) {\n        console.error('[cdo] adaptOnBefore requires a CDCGlobalStore');\n        return undefined;\n    }\n\n    return async (elements) =>\n        await checkAllowedAssetsBeforeOp({\n            elements,\n            getBlockedAssets: callback ?? (() => Promise.resolve({})),\n            intl,\n            showToast,\n            getCurrentlyOpenAssets: getOpenCloudDocuments,\n            sam: globalStore.sam,\n        });\n}\n\n/** Generates the asset-level menu Actions for a \"Cloud documents\" asset */\nconst getActionsForCloudDocuments = ({\n    baseUrls,\n    callbacks,\n    compatibleTypes,\n    cdoStore,\n    context,\n    getShareSheetConfig,\n    globalStore,\n    isShareActionVisible,\n}: {\n    baseUrls: CDOTab<object>['baseUrls'];\n    callbacks: ICDOTabProps['callbacks'];\n    compatibleTypes?: string[];\n    cdoStore: CDOTab<object>['cdoStore'];\n    context: HostConfig;\n    getShareSheetConfig: CDOTab<object>['getShareSheetConfig'];\n    globalStore: CDCGlobalStore;\n    isShareActionVisible: CDOTab<object>['isShareActionVisible'];\n}): Action<BackedCollectionItem<SAM.AdobeAsset>>[] => {\n    const { cdoMetrics, intl, hostAssetContext, featureFlags, hostProductData } = globalStore;\n    if (!hostAssetContext) {\n        console.error('[cdo] getActionsForCloudDocuments requires a hostAssetContext');\n        return [];\n    }\n    if (!hostProductData) {\n        console.error('[cdo] getActionsForCloudDocuments requires a hostProductData');\n        return [];\n    }\n    const {\n        onBeforeDelete,\n        onBeforeRename,\n        onBeforeMove,\n        onAfterDelete,\n        onAfterDuplicate,\n        onAfterRename,\n        getOpenCloudDocuments,\n        launchUAP,\n        exportFiles,\n        canOpenItems,\n    } = callbacks ?? {};\n    if (!launchUAP) {\n        console.warn('[cdo] getActionsForCloudDocuments requires a launchUAP');\n    }\n    const { dispatchEvent, environment, routes, showToast, showModal } = context;\n\n    const onBefore = (callback?: AssetBrowser.IOnBeforeOperation) =>\n        adaptOnBefore(intl, showToast, getOpenCloudDocuments, callback);\n\n    return (\n        [\n            createOpenAction({\n                baseUrls,\n                dispatchEvent,\n                intl,\n                environment: environment,\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Open,\n                ),\n                canOpenItems,\n                canOpenMultiple: featureFlags.enableCloudDocMultiSelectOpen,\n                sam: globalStore.sam,\n            }),\n            createShareAction({\n                intl,\n                showModal,\n                routes: routes,\n                dispatchEvent,\n                baseUrls,\n                isVisible: cdoStore?.fileCapabilities\n                    ? (elements) => (elements ? isShareActionVisible(elements) ?? false : false)\n                    : undefined,\n                getMimeTypeConfig: ({ mimeType, isReviewLink, isTeamLib }) =>\n                    getShareSheetConfig({ mimeType, isReviewLink, isTeamLib }),\n                sam: globalStore.sam,\n            }),\n            createRenameAction({\n                intl,\n                showModal,\n                onBefore: onBefore(onBeforeRename),\n                onAfter: async (assets) => onAfterRename?.(assets[0]?.id ?? ''),\n                ...aavRenameCallbacks(\n                    Metrics[AAVComponentId.CDO]?.getOperationalMetricLogger(\n                        ActionAnalyticsValue.Rename,\n                    ),\n                ),\n            }),\n            createDuplicateAction({\n                intl,\n                showModal,\n                showToast,\n                onAfter: async (assets) => onAfterDuplicate?.(assets[0]?.id ?? ''),\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Duplicate,\n                ),\n                hostAssetContext: hostAssetContext,\n            }),\n            createMoveAction({\n                assetContext: hostAssetContext,\n                mediaTypes: hostProductData?.documentFilter,\n                excludeMediaTypes: hostProductData?.documentExclusionFilter,\n                compatibleTypes,\n                featureFlags,\n                getAssetWithCloudID: (assetId: string) =>\n                    hostAssetContext.getAssetWithCloudID(assetId),\n                intl,\n                onBefore: onBefore(onBeforeMove),\n                getCurrentlyOpenAssets: getOpenCloudDocuments,\n                // @ts-expect-error the error occurs because IMoveDialogResult allows destination to be undefined\n                launchUAP:\n                    launchUAP ??\n                    (() => Promise.reject(new Error('[cdo] move action requires a launchUAP'))),\n                viewId: AssetBrowser.ContentViewType.CloudDocuments,\n                showToast,\n                showModal,\n                isMobile: isSmallBreakpoint(), // Until CDO accepts isMobile from hosts, this is a temp solution\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Move,\n                ),\n                undoMetricLogger: Metrics[AAVComponentId.CDO].getUndoOperationalMetricLogger(\n                    ActionAnalyticsValue.Move,\n                ),\n            }),\n            exportFiles &&\n                createExportAction({\n                    intl,\n                    canExportMultiple: globalStore.isFeatureFlagEnabled('enableBulkExport'),\n                    onExport: async (assets) =>\n                        onExportCallback(assets, cdoMetrics, callbacks ?? {}),\n                    metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                        ActionAnalyticsValue.Export,\n                    ),\n                    dispatchEvent,\n                }),\n            createMakeAvailableOfflineAction({\n                intl,\n                showToast,\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Pin,\n                ),\n            }),\n            featureFlags.enableAddToBoard &&\n                createAddToBoardAction({\n                    intl,\n                    showToast,\n                    metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                        ActionAnalyticsValue.AddToBoard,\n                    ),\n                    // @ts-expect-error the error occurs because IMoveDialogResult allows destination to be undefined\n                    launchUAP,\n                    featureFlags,\n                }),\n            createDiscardAction({\n                intl,\n                showModal,\n                showToast,\n                onBefore: onBefore(onBeforeDelete),\n                onAfter: async (assets) => onAfterDelete?.(assets[0]?.id ?? ''),\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Discard,\n                ),\n                undoMetricLogger: Metrics[AAVComponentId.CDO].getUndoOperationalMetricLogger(\n                    ActionAnalyticsValue.Discard,\n                ),\n                includeUndo: true,\n            }),\n        ] satisfies (Action<BackedCollectionItem<SAM.AdobeAsset>> | undefined)[]\n    ).filter((f) => !!f);\n};\n\n/** Generates the asset-level menu Actions for a \"FFBoards\" asset */\nconst getActionsForFFBoards = ({\n    baseUrls,\n    callbacks,\n    context,\n    getShareSheetConfig,\n    globalStore,\n}: {\n    baseUrls: CDOTab<object>['baseUrls'];\n    callbacks: ICDOTabProps['callbacks'];\n    cdoStore: CDOTab<object>['cdoStore'];\n    context: HostConfig;\n    getShareSheetConfig: CDOTab<object>['getShareSheetConfig'];\n    globalStore: CDCGlobalStore;\n    isShareActionVisible: CDOTab<object>['isShareActionVisible'];\n}): Action<BackedCollectionItem<SAM.AdobeAsset>>[] => {\n    const { intl, hostAssetContext, featureFlags, hostProductData } = globalStore;\n    if (!hostAssetContext) {\n        console.error('[cdo] getActionsForFFBoards requires a hostAssetContext');\n        return [];\n    }\n    if (!hostProductData) {\n        console.error('[cdo] getActionsForFFBoards requires a hostProductData');\n        return [];\n    }\n    const {\n        onBeforeDelete,\n        onBeforeRename,\n        onAfterDelete,\n        onAfterDuplicate,\n        onAfterRename,\n        getOpenCloudDocuments,\n        canOpenItems,\n    } = callbacks ?? {};\n    const { dispatchEvent, environment, routes, showToast, showModal } = context;\n\n    const onBefore = (callback?: AssetBrowser.IOnBeforeOperation) =>\n        adaptOnBefore(intl, showToast, getOpenCloudDocuments, callback);\n\n    const isOwner = (asset: SAM.AdobeAsset, userId: string): boolean => {\n        return asset.storageAssignee.id === userId;\n    };\n\n    const canEdit = (asset: SAM.AdobeAsset): boolean => {\n        return asset.hasPermission(SAM.Permission.Write);\n    };\n\n    const canRenameDuplicateDelete = (asset: SAM.AdobeAsset, userId: string): boolean => {\n        return isOwner(asset, userId) || (asset?.isChildOfProject && canEdit(asset));\n    };\n\n    return (\n        [\n            createOpenAction({\n                baseUrls,\n                dispatchEvent,\n                intl,\n                environment: environment,\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Open,\n                ),\n                canOpenItems,\n                canOpenMultiple: featureFlags.enableCloudDocMultiSelectOpen,\n                sam: globalStore.sam,\n            }),\n            createShareAction({\n                intl,\n                showModal,\n                routes: routes,\n                dispatchEvent,\n                baseUrls,\n                isVisible: (elements) =>\n                    !!(\n                        elements &&\n                        hasOnlyOne(elements) &&\n                        (!elements[0].backingItem.isChildOfProject ||\n                            (elements && canEdit(elements[0].backingItem)))\n                    ),\n                getMimeTypeConfig: ({ mimeType, isReviewLink, isTeamLib }) =>\n                    getShareSheetConfig({ mimeType, isReviewLink, isTeamLib }),\n                sam: globalStore.sam,\n            }),\n            createRenameAction({\n                intl,\n                showModal,\n                onBefore: onBefore(onBeforeRename),\n                onAfter: async (assets) => onAfterRename?.(assets[0]?.id ?? ''),\n                ...aavRenameCallbacks(\n                    Metrics[AAVComponentId.CDO]?.getOperationalMetricLogger(\n                        ActionAnalyticsValue.Rename,\n                    ),\n                ),\n                isVisible: (elements) =>\n                    !!(\n                        elements &&\n                        hasOnlyOne(elements) &&\n                        canRenameDuplicateDelete(elements[0].backingItem, context.userId)\n                    ),\n            }),\n            createDuplicateAction({\n                intl,\n                showModal,\n                showToast,\n                onAfter: async (assets) => onAfterDuplicate?.(assets[0]?.id ?? ''),\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Duplicate,\n                ),\n                hostAssetContext: hostAssetContext,\n                isVisible: (elements) =>\n                    !!(\n                        elements &&\n                        hasAny(elements) &&\n                        elements.every((element) =>\n                            canRenameDuplicateDelete(element.backingItem, context.userId),\n                        )\n                    ),\n            }),\n            createLeaveAction({\n                intl,\n                showModal,\n                showToast,\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Leave,\n                ),\n            }),\n            createReportAbuseAction({\n                intl,\n                showModal,\n                showToast,\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.ReportAbuse,\n                ),\n                isVisible: (elements) =>\n                    !!(\n                        elements &&\n                        hasOnlyOne(elements) &&\n                        hasOnlyNonFolders(elements ?? []) &&\n                        !isOwner(elements[0].backingItem, context.userId)\n                    ),\n            }),\n            createMakeAvailableOfflineAction({\n                intl,\n                showToast,\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Pin,\n                ),\n            }),\n            createDiscardAction({\n                intl,\n                showModal,\n                showToast,\n                onBefore: onBefore(onBeforeDelete),\n                onAfter: async (assets) => onAfterDelete?.(assets[0]?.id ?? ''),\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Discard,\n                ),\n                undoMetricLogger: Metrics[AAVComponentId.CDO].getUndoOperationalMetricLogger(\n                    ActionAnalyticsValue.Discard,\n                ),\n                includeUndo: true,\n                isVisible: (elements) =>\n                    !!(\n                        hasAny(elements) &&\n                        elements &&\n                        elements.every((element) =>\n                            canRenameDuplicateDelete(element.backingItem, context.userId),\n                        )\n                    ),\n            }),\n        ] satisfies (Action<BackedCollectionItem<SAM.AdobeAsset>> | undefined)[]\n    ).filter((f) => !!f);\n};\n\n/** Generates the asset-level menu Actions for a \"Library\" asset */\nconst getActionsForLibraries = ({\n    baseUrls,\n    callbacks,\n    context,\n    globalStore,\n}: {\n    baseUrls: CDOTab<object>['baseUrls'];\n    callbacks: ICDOTabProps['callbacks'];\n    context: HostConfig;\n    globalStore: CDCGlobalStore;\n}): Action<BackedCollectionItem<SAM.AdobeAsset>>[] => {\n    // This list will need to be manually synced with the `useLibrariesActions.tsx`\n    // in the \"libraries\" package, until we build a more common solution.\n    const { intl, hostAssetContext } = globalStore;\n    if (!hostAssetContext) {\n        console.error('[cdo] getActionsForLibraries requires a hostAssetContext');\n        return [];\n    }\n    const {\n        appName,\n        dispatchEvent,\n        imsData,\n        locale,\n        productId,\n        routes,\n        showModal,\n        showToast,\n        theme,\n    } = context;\n    const { launchUAP } = callbacks ?? {};\n\n    return [\n        // createOpenAction is defined in useLibrariesActions but has a libraries-specific onOpenAction callback.\n        // Not sure if okay to run without the callback, leaving it commented here until it can be verified.\n        createOpenAction({\n            baseUrls,\n            dispatchEvent,\n            intl,\n            canOpenMultiple: false,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Open,\n            ),\n            sam: globalStore.sam,\n        }),\n        createShareAction({\n            intl,\n            showModal,\n            routes,\n            dispatchEvent,\n            baseUrls,\n            sam: globalStore.sam,\n        }),\n        createCopyLinkAction({\n            intl,\n            showToast,\n            routes,\n            dispatchEvent,\n            baseUrls,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.CopyLink,\n            ),\n            sam: globalStore.sam,\n        }),\n        createDuplicateAction({\n            intl,\n            showToast,\n            showModal,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Duplicate,\n            ),\n            hostAssetContext: hostAssetContext,\n        }),\n        createLeaveAction({\n            intl,\n            showToast,\n            showModal,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Leave,\n            ),\n        }),\n        createRenameAction({\n            intl,\n            showModal,\n            ...aavRenameCallbacks(\n                Metrics[AAVComponentId.CDO]?.getOperationalMetricLogger(\n                    ActionAnalyticsValue.Rename,\n                ),\n            ),\n        }),\n        createMoveAction({\n            assetContext: hostAssetContext,\n            appName: appName,\n            getAssetWithCloudID: (assetId: string) => hostAssetContext.getAssetWithCloudID(assetId),\n            imsData: imsData,\n            intl,\n            // @ts-expect-error the error occurs because IMoveDialogResult allows destination to be undefined\n            launchUAP: (config) => {\n                if (!launchUAP) {\n                    console.warn('[cdo] move action requires a launchUAP');\n                    return Promise.reject(new Error('move action requires a launchUAP'));\n                }\n                return launchUAP(config);\n            },\n            locale: locale,\n            viewId: AssetBrowser.ContentViewType.Project,\n            productId: productId,\n            showModal,\n            showToast,\n            theme: theme,\n            isMobile: isSmallBreakpoint(), // Until CDO accepts isMobile from hosts, this is a temp solution\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Move,\n            ),\n            undoMetricLogger: Metrics[AAVComponentId.CDO].getUndoOperationalMetricLogger(\n                ActionAnalyticsValue.Move,\n            ),\n        }),\n        createDiscardAction({\n            intl,\n            showToast,\n            showModal,\n            includeUndo: true,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Discard,\n            ),\n        }),\n    ].filter(Boolean);\n};\n\n/** Generates the asset-level menu Actions for a \"Projects\" asset */\nconst getActionsForProjects = ({\n    baseUrls,\n    callbacks,\n    context,\n    globalStore,\n}: {\n    baseUrls: CDOTab<object>['baseUrls'];\n    callbacks: ICDOTabProps['callbacks'];\n    context: HostConfig;\n    globalStore: CDCGlobalStore;\n}): Action<BackedCollectionItem<SAM.AdobeAsset>>[] => {\n    // This list will need to be manually synced with the `useProjectContentActions.tsx`\n    // in the \"projects\" package, until we build a more common solution.\n    const { intl, hostAssetContext, featureFlags } = globalStore;\n    if (!hostAssetContext) {\n        console.error('[cdo] getActionsForProjects requires a hostAssetContext');\n        return [];\n    }\n\n    const {\n        appName,\n        dispatchEvent,\n        imsData,\n        locale,\n        productId,\n        routes,\n        showModal,\n        showToast,\n        theme,\n    } = context;\n    const { launchUAP } = callbacks ?? {};\n\n    return [\n        createOpenAction({\n            intl,\n            canOpenMultiple: false,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Open,\n            ),\n            baseUrls,\n            dispatchEvent,\n            sam: globalStore.sam,\n        }),\n        createShareAction({\n            intl,\n            showModal,\n            routes,\n            dispatchEvent,\n            baseUrls,\n            sam: globalStore.sam,\n        }),\n        createCopyLinkAction({\n            intl,\n            showToast,\n            routes,\n            dispatchEvent,\n            baseUrls,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.CopyLink,\n            ),\n            sam: globalStore.sam,\n        }),\n        createRenameAction({\n            intl,\n            showModal,\n            ...aavRenameCallbacks(\n                Metrics[AAVComponentId.CDO]?.getOperationalMetricLogger(\n                    ActionAnalyticsValue.Rename,\n                ),\n            ),\n            // No need to copy project's callbacks here, it is just their analytics.\n        }),\n        createDuplicateAction({\n            intl,\n            showModal,\n            showToast,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Duplicate,\n            ),\n            hostAssetContext: hostAssetContext,\n        }),\n        createMoveAction({\n            assetContext: hostAssetContext,\n            appName: appName,\n            getAssetWithCloudID: (assetId: string) => hostAssetContext.getAssetWithCloudID(assetId),\n            imsData,\n            intl,\n            // @ts-expect-error the error occurs because IMoveDialogResult allows destination to be undefined\n            launchUAP: (config) => {\n                if (!launchUAP) {\n                    console.warn('[cdo] move action requires a launchUAP');\n                    return Promise.reject(new Error('move action requires a launchUAP'));\n                }\n                return launchUAP(config);\n            },\n            locale,\n            viewId: AssetBrowser.ContentViewType.Project,\n            productId,\n            showModal,\n            showToast,\n            theme,\n            isMobile: isSmallBreakpoint(), // Until CDO accepts isMobile from hosts, this is a temp solution\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Move,\n            ),\n            undoMetricLogger: Metrics[AAVComponentId.CDO].getUndoOperationalMetricLogger(\n                ActionAnalyticsValue.Move,\n            ),\n        }),\n        createLeaveAction({\n            intl,\n            showModal,\n            showToast,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Leave,\n            ),\n        }),\n        createReportAbuseAction({\n            intl,\n            showModal,\n            showToast,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.ReportAbuse,\n            ),\n        }),\n        featureFlags.enableAddToBoard &&\n            createAddToBoardAction({\n                intl,\n                showToast,\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.AddToBoard,\n                ),\n                // @ts-expect-error the error occurs because IMoveDialogResult allows destination to be undefined\n                launchUAP,\n                featureFlags,\n            }),\n        createDiscardAction({\n            intl,\n            showModal,\n            showToast,\n            includeUndo: true,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Discard,\n            ),\n        }),\n    ].filter(Boolean);\n};\n\n/** Generates the asset-level menu Actions for a \"Review\" asset */\nconst getActionsForReviewLinks = ({\n    baseUrls,\n    callbacks,\n    cdoStore,\n    context,\n    getShareSheetConfig,\n    globalStore,\n    isShareActionVisible,\n}: {\n    baseUrls: CDOTab<object>['baseUrls'];\n    callbacks: ICDOTabProps['callbacks'];\n    cdoStore: CDOTab<object>['cdoStore'];\n    context: HostConfig;\n    getShareSheetConfig: CDOTab<object>['getShareSheetConfig'];\n    globalStore: CDCGlobalStore;\n    isShareActionVisible: CDOTab<object>['isShareActionVisible'];\n}): Action<BackedCollectionItem<SAM.AdobeAsset>>[] => {\n    const { intl, imsData } = globalStore;\n    const { dispatchEvent, routes, showModal, showToast } = context;\n\n    return [\n        createOpenAction({\n            baseUrls,\n            dispatchEvent,\n            intl,\n            environment: imsData.environment,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Open,\n            ),\n            canOpenItems: callbacks?.canOpenItems,\n            sam: globalStore.sam,\n        }),\n        createShareAction({\n            intl,\n            showModal,\n            routes: routes,\n            dispatchEvent,\n            baseUrls,\n            isVisible: cdoStore?.fileCapabilities\n                ? (elements) => (elements ? isShareActionVisible(elements) ?? false : false)\n                : undefined,\n            getMimeTypeConfig: ({ mimeType, isReviewLink, isTeamLib }) =>\n                getShareSheetConfig({ mimeType, isReviewLink, isTeamLib }),\n            sam: globalStore.sam,\n        }),\n        createCopyLinkAction({\n            intl,\n            showToast,\n            routes,\n            dispatchEvent,\n            baseUrls,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.CopyLink,\n            ),\n            sam: globalStore.sam,\n        }),\n        createPermDeleteAction({\n            dispatchEvent,\n            intl,\n            sam: globalStore.sam,\n            showToast,\n            showModal,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.PermDelete,\n            ),\n        }),\n    ].filter(Boolean);\n};\n\n/** Generates the asset-level menu Actions for a \"Shared with you\" asset */\nconst getActionsForSharedWithYou = ({\n    baseUrls,\n    callbacks,\n    cdoStore,\n    context,\n    getShareSheetConfig,\n    globalStore,\n    isShareActionVisible,\n}: {\n    baseUrls: CDOTab<object>['baseUrls'];\n    callbacks: ICDOTabProps['callbacks'];\n    cdoStore: CDOTab<object>['cdoStore'];\n    context: HostConfig;\n    getShareSheetConfig: CDOTab<object>['getShareSheetConfig'];\n    globalStore: CDCGlobalStore;\n    isShareActionVisible: CDOTab<object>['isShareActionVisible'];\n}): Action<BackedCollectionItem<SAM.AdobeAsset>>[] => {\n    const { intl, imsData, featureFlags } = globalStore;\n    const { dispatchEvent, showModal, showToast } = context;\n\n    const { getOpenCloudDocuments, launchUAP } = callbacks ?? {};\n\n    const onBefore = (callback?: AssetBrowser.IOnBeforeOperation) =>\n        adaptOnBefore(intl, showToast, getOpenCloudDocuments, callback);\n\n    return [\n        createOpenAction({\n            baseUrls,\n            dispatchEvent,\n            intl,\n            environment: imsData.environment,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Open,\n            ),\n            canOpenItems: callbacks?.canOpenItems,\n            canOpenMultiple: featureFlags.enableCloudDocMultiSelectOpen,\n            sam: globalStore.sam,\n        }),\n        createShareAction({\n            intl,\n            showModal,\n            routes: undefined,\n            dispatchEvent,\n            baseUrls,\n            isVisible: cdoStore?.fileCapabilities\n                ? (elements) => (elements ? isShareActionVisible(elements) ?? false : false)\n                : undefined,\n            getMimeTypeConfig: ({ mimeType, isReviewLink, isTeamLib }) =>\n                getShareSheetConfig({ mimeType, isReviewLink, isTeamLib }),\n            sam: globalStore.sam,\n        }),\n        createLeaveAction({\n            intl,\n            showModal,\n            showToast,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Leave,\n            ),\n            onBefore: onBefore(),\n        }),\n        createReportAbuseAction({\n            intl,\n            isMobile: isSmallBreakpoint(), // Until CDO accepts isMobile from hosts, this is a temp solution\n            showModal,\n            showToast,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.ReportAbuse,\n            ),\n        }),\n        featureFlags.enableAddToBoard &&\n            createAddToBoardAction({\n                intl,\n                showToast,\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.AddToBoard,\n                ),\n                // @ts-expect-error the error occurs because IMoveDialogResult allows destination to be undefined\n                launchUAP,\n                featureFlags,\n            }),\n    ].filter(Boolean);\n};\n\nconst getCommonActionsForFavoriteAssets = ({\n    baseUrls,\n    callbacks,\n    context,\n    globalStore,\n    cdoStore,\n}: {\n    baseUrls: CDOTab<object>['baseUrls'];\n    callbacks: ICDOTabProps['callbacks'];\n    cdoStore?: CDOStore;\n    context: HostConfig;\n    globalStore: CDCGlobalStore;\n    isImportMode?: boolean;\n}): Action<BackedCollectionItem<SAM.AdobeAsset>>[] => {\n    const { intl, cdoMetrics, imsData, featureFlags, hostAssetContext } = globalStore;\n    if (!hostAssetContext) {\n        console.error('[cdo] getActionsForCloudDocuments requires a hostAssetContext');\n        return [];\n    }\n    const { dispatchEvent, showModal, showToast } = context;\n    const { getOpenCloudDocuments, onBeforePermanentDelete, onAfterPermanentDelete, launchUAP } =\n        callbacks ?? {};\n\n    const allowPermDelete = (elements?: BackedCollectionItem<SAM.AdobeAsset>[]): boolean =>\n        !!elements &&\n        elements.length > 0 &&\n        elements.every((element) => {\n            const state = generationHistoryUtils?.getGenerationState?.(element?.backingItem);\n            return (\n                state !== SAM.GenerationHistoryAssetState.IN_PROGRESS &&\n                state !== SAM.GenerationHistoryAssetState.QUEUED\n                // We allow perm delete for FAILED assets\n            );\n        });\n\n    const allowDownload = (elements?: BackedCollectionItem<SAM.AdobeAsset>[]): boolean =>\n        !!elements &&\n        elements.length > 0 &&\n        elements.every((element) => !isFireflyGenerationIncomplete(element?.backingItem));\n\n    const allowFavorite = (elements?: BackedCollectionItem<SAM.AdobeAsset>[]): boolean =>\n        !!elements &&\n        elements.length > 0 &&\n        elements.every((element) => !isFireflyGenerationIncomplete(element?.backingItem)) &&\n        elements.some((element) => !element.backingItem.isFavorite);\n\n    const allowRemoveFavorite = (elements?: BackedCollectionItem<SAM.AdobeAsset>[]): boolean =>\n        !!elements &&\n        elements.length > 0 &&\n        elements.every(\n            (element) =>\n                !isFireflyGenerationIncomplete(element?.backingItem) &&\n                element.backingItem.isFavorite,\n        );\n\n    // disable on import mode for ps-web and when multiple items are selected to open\n    const allowOpen = (elements?: BackedCollectionItem<SAM.AdobeAsset>[]): boolean =>\n        !!elements &&\n        elements.length == 1 &&\n        !isFireflyGenerationIncomplete(elements[0]?.backingItem);\n\n    const allowCopyTo = (elements?: BackedCollectionItem<SAM.AdobeAsset>[]): boolean =>\n        !!elements &&\n        elements.length > 0 &&\n        elements.every(\n            (element) =>\n                isFireflyGeneration(element?.backingItem) &&\n                !isFireflyGenerationIncomplete(element?.backingItem),\n        );\n\n    const onBefore = (callback?: AssetBrowser.IOnBeforeOperation) =>\n        adaptOnBefore(intl, showToast, getOpenCloudDocuments, callback);\n    const onBeforeFavorite = async (elements: BackedCollectionItem<SAM.AdobeAsset>[]) =>\n        Promise.resolve(elements.filter((element) => !element.backingItem.isFavorite));\n    // GLOW-1209, only show favorites if the user is an organizer (not UAP)\n    const showFavorites = featureFlags.enableFavorites && cdoStore?.isOrganizer;\n    const showAddToCloud = featureFlags.enableAddToCloud;\n    return [\n        createOpenAction({\n            baseUrls,\n            dispatchEvent,\n            intl,\n            groupName: 'group1',\n            isVisible: allowOpen,\n            environment: imsData.environment,\n            canOpenMultiple: false,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.Open,\n            ),\n            sam: globalStore.sam,\n        }),\n        ...(showFavorites\n            ? [\n                  createFavoriteAction({\n                      intl,\n                      groupName: 'group2',\n                      isVisible: allowFavorite,\n                      onBefore: onBeforeFavorite,\n                      showToast,\n                      metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                          ActionAnalyticsValue.Favorite,\n                      ),\n                      dispatchEvent,\n                  }),\n                  createRemoveFavoriteAction({\n                      intl,\n                      groupName: 'group2',\n                      isVisible: allowRemoveFavorite,\n                      showToast,\n                      metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                          ActionAnalyticsValue.RemoveFavorite,\n                      ),\n                      dispatchEvent,\n                  }),\n              ]\n            : []),\n        createExportAction({\n            intl,\n            isVisible: allowDownload,\n            dispatchEvent,\n            groupName: 'group2',\n            onExport: async (elements) => onExportCallback(elements, cdoMetrics, callbacks || {}),\n        }),\n        ...(showAddToCloud\n            ? [\n                  createCopyToAction({\n                      intl,\n                      label: intl.formatMessage({\n                          id: 'aav.actions.copyto.addtoAdobeCloud.label',\n                          defaultMessage: 'Add to Adobe cloud',\n                      }),\n                      getAssetWithCloudID: (assetId: string) =>\n                          hostAssetContext.getAssetWithCloudID(assetId),\n                      isVisible: allowCopyTo,\n                      groupName: 'group2',\n                      showToast,\n                      // @ts-expect-error the error occurs because ICopyToDialogResult allows destination to be undefined\n                      launchUAP:\n                          launchUAP ??\n                          (() =>\n                              Promise.reject(new Error('[cdo] move action requires a launchUAP'))),\n                      viewId: AssetBrowser.ContentViewType.Projects,\n                      featureFlags,\n                      dispatchEvent,\n                  }),\n              ]\n            : []),\n        createPermDeleteAction({\n            intl,\n            isVisible: allowPermDelete,\n            groupName: 'group3',\n            onAfter: async (assets) => {\n                assets.forEach((asset) => onAfterPermanentDelete?.(asset?.id ?? ''));\n            },\n            onBefore: onBefore(onBeforePermanentDelete),\n            showToast,\n            showModal,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.PermDelete,\n            ),\n            dispatchEvent,\n            shouldUseBatchOperation: true,\n            sam: globalStore.sam,\n        }),\n        featureFlags.enableAddToBoard &&\n            createAddToBoardAction({\n                intl,\n                showToast,\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.AddToBoard,\n                ),\n                // @ts-expect-error the error occurs because IMoveDialogResult allows destination to be undefined\n                launchUAP,\n                featureFlags,\n            }),\n    ].filter(Boolean);\n};\n\nconst getActionsForGenerationHistory = ({\n    baseUrls,\n    callbacks,\n    context,\n    cdoStore,\n    globalStore,\n    isImportMode,\n}: {\n    baseUrls: CDOTab<object>['baseUrls'];\n    callbacks: ICDOTabProps['callbacks'];\n    context: HostConfig;\n    cdoStore?: CDOStore;\n    globalStore: CDCGlobalStore;\n    isImportMode?: boolean;\n    ingestSubcategory?: string; // Used for analytics subcategory in the perm delete action\n}): Action<BackedCollectionItem<SAM.AdobeAsset>>[] => {\n    if (isImportMode) {\n        return [];\n    }\n    return getCommonActionsForFavoriteAssets({\n        baseUrls,\n        callbacks,\n        cdoStore,\n        context,\n        globalStore,\n        isImportMode,\n    });\n};\n\nconst getActionsForFavoritesTab = ({\n    baseUrls,\n    callbacks,\n    cdoStore,\n    context,\n    globalStore,\n    isImportMode,\n}: {\n    baseUrls: CDOTab<object>['baseUrls'];\n    callbacks: ICDOTabProps['callbacks'];\n    cdoStore?: CDOStore;\n    context: HostConfig;\n    globalStore: CDCGlobalStore;\n    isImportMode?: boolean;\n    ingestSubcategory?: string; // Used for analytics subcategory in the perm delete action\n}): Action<BackedCollectionItem<SAM.AdobeAsset>>[] => {\n    return getCommonActionsForFavoriteAssets({\n        baseUrls,\n        callbacks,\n        cdoStore,\n        context,\n        globalStore,\n        isImportMode,\n    });\n};\n\nexport {\n    getActionsForCloudDocuments,\n    getActionsForFFBoards,\n    getActionsForGenerationHistory,\n    getActionsForLibraries,\n    getActionsForProjects,\n    getActionsForReviewLinks,\n    getActionsForSharedWithYou,\n    getActionsForFavoritesTab,\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport type { IWrappedComponent } from 'mobx-react';\nimport { inject, observer } from 'mobx-react';\nimport { HostConfigContext } from '@csc/common';\nimport type { IEmptyProps } from '@csc/collection-view';\nimport { DateMetadata, UXSortBy } from '@csc/collection-view';\nimport { SWYNoConnection } from './svgs/NoConnection';\nimport EmptySharedDocs from './svgs/EmptySharedDocs';\nimport type { ICDOTabPassthroughProps } from './CDOTab';\nimport CDOTab from './CDOTab';\nimport type { IntlShape } from 'react-intl';\nimport { injectIntl } from 'react-intl';\nimport { getExistingCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport { computed } from 'mobx';\nimport {\n    ReviewLinksOption,\n    getTypeViewModel,\n    type FilterOptionViewModel,\n} from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\nimport { getAssetList } from '@csc/sam-utils';\nimport { getActionsForSharedWithYou } from '../utils/action-menu-utils';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport type { SAM } from '@ccx-public/component-types';\nimport type { Column } from '@csc/adobe-assets-view/dist/src/components/columns';\nimport {\n    sharedWithColumn,\n    sizeColumn,\n    typeColumn,\n    shareDateColumn,\n    modifiedDateColumn,\n    isNonZeroAndValidDate,\n} from '@csc/adobe-assets-view/dist/src/components/columns';\nimport Header from './Header';\nimport type { IAdobeAssetsViewProps } from '@csc/adobe-assets-view/dist/src/components/AdobeAssetsView/AdobeAssetsView';\nimport { AAVComponentId, Metrics } from '@csc/adobe-assets-view/dist/src/utils/ingest';\n\ninterface ISharedWithYouProps {}\n\nconst INGEST_SUBCATEGORY = 'Shared with You';\n\nexport const getSWYFilterFileTypes = (intl: IntlShape): FilterOptionViewModel[] => {\n    const toViewModel = (type) => getTypeViewModel(intl, type, true);\n    return [\n        ...[\n            AssetBrowser.OtherFileTypeValues.AllFiles,\n            AssetBrowser.AdobeFileTypeValues.Photoshop,\n            AssetBrowser.AdobeFileTypeValues.Illustrator,\n            AssetBrowser.AdobeFileTypeValues.Express,\n            AssetBrowser.AdobeFileTypeValues.Concept,\n            AssetBrowser.AdobeFileTypeValues.Acrobat,\n            AssetBrowser.AdobeFileTypeValues.InDesign,\n            AssetBrowser.AdobeFileTypeValues.Aero,\n            AssetBrowser.AdobeFileTypeValues.XD,\n            AssetBrowser.AdobeFileTypeValues.Squirrel,\n            AssetBrowser.GenericFileTypeValues.Assets3d,\n            AssetBrowser.LibrariesAndBrandsTypeValues.Libraries,\n            AssetBrowser.LibrariesAndBrandsTypeValues.Brands,\n        ].map(toViewModel),\n        ReviewLinksOption(intl),\n        ...[\n            AssetBrowser.GenericFileTypeValues.Images,\n            AssetBrowser.GenericFileTypeValues.Videos,\n            AssetBrowser.GenericFileTypeValues.Audio,\n        ].map(toViewModel),\n    ];\n};\n@inject('callbacks', 'cdoStore', 'toastStore')\n@observer\nclass SharedWithYou extends CDOTab<ISharedWithYouProps> {\n    static contextType = HostConfigContext;\n\n    get tabConfig() {\n        return {\n            tabName: 'SharedWithYou',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            documentFilter: this.cdoStore?.hostProductData?.swyDocumentFilter,\n            routeName: AssetBrowser.ContentViewType.SharedWithYou,\n            requiresManualRefresh: true,\n            hideNextPageLoadingIndicator: true,\n        };\n    }\n\n    get sortByState() {\n        const { sortBy } = this.viewOptions;\n        const { featureFlags } = this.globalStore;\n\n        if (featureFlags.enableSharedDateColumn) {\n            return sortBy === 'shareDate' ? 'shared' : 'name';\n        }\n        return sortBy === 'modifiedDate' ? 'modified' : 'name';\n    }\n\n    async setSamList(): Promise<void> {\n        await this.globalStore.waitForSAMInit();\n        const hostAssetContext = getExistingCDCGlobalStore()?.hostAssetContext;\n        if (!hostAssetContext) {\n            return;\n        }\n        const samList = getAssetList({\n            context: hostAssetContext,\n            source: hostAssetContext.sharedSource,\n            sortBy: this.sortByState,\n            sortDirection: this.viewOptions.sortDir === 'desc' ? 'descending' : 'ascending',\n            loadAll: this.tabConfig.hideNextPageLoadingIndicator,\n        });\n        if (samList) {\n            this.setState({ samList: samList });\n        }\n    }\n\n    @computed get actions() {\n        return getActionsForSharedWithYou({\n            baseUrls: this.baseUrls,\n            callbacks: this.props.callbacks,\n            cdoStore: this.cdoStore,\n            context: this.context,\n            getShareSheetConfig: this.getShareSheetConfig,\n            globalStore: this.globalStore,\n            isShareActionVisible: this.isShareActionVisible,\n        });\n    }\n\n    getOfflineEmptyViewProps(): IEmptyProps {\n        const { onViewOfflineFiles } = this.props.callbacks ?? {};\n        const { intl } = this.props;\n\n        const offlineEmptyViewProps = {\n            automationSuffix: 'SHARED_WITH_YOU',\n            image: <SWYNoConnection />,\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            subtitleId: onViewOfflineFiles\n                ? 'empty.subtext.shared_with_you_offline'\n                : 'empty.offline.web.swy.subtitle',\n            titleId: 'empty.title.shared_with_you_offline',\n            buttons: onViewOfflineFiles\n                ? [\n                      {\n                          label: intl.formatMessage({ id: 'empty.button.offline.label' }),\n                          callback: onViewOfflineFiles,\n                      },\n                  ]\n                : [],\n        };\n\n        return offlineEmptyViewProps;\n    }\n\n    getNonErrorEmptyViewProps(): IEmptyProps {\n        const onlineEmptyViewProps = {\n            automationSuffix: 'SHARED_WITH_YOU',\n            image: <EmptySharedDocs />,\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            subtitleId: 'empty.subtext.shared_with_you',\n            titleId: 'empty.title.shared_with_you',\n            metrics: Metrics[AAVComponentId.CDO],\n            renderEventMetricSubtype: 'empty',\n        };\n\n        return onlineEmptyViewProps;\n    }\n\n    renderHeader() {\n        const { intl, featureFlags } = this.globalStore;\n        return (\n            <Header\n                isOnline={this.state.isOnline}\n                rootTitle={this.globalStore.intl.formatMessage({\n                    id: `tab.${this.tabConfig.tabName}`,\n                })}\n                filterComponent={this.renderFilterComponent()}\n                banner={this.renderBanner()}\n                subheader={this.renderSubheader()}\n                sortOptions={\n                    featureFlags.enableSharedDateColumn && [\n                        {\n                            key: UXSortBy.shareDate,\n                            label: intl.formatMessage({ id: 'header.shareDate' }),\n                        },\n                        { key: UXSortBy.title, label: intl.formatMessage({ id: 'header.title' }) },\n                    ]\n                }\n            />\n        );\n    }\n\n    protected get aavProps(): Partial<IAdobeAssetsViewProps> {\n        const { featureFlags } = this.globalStore;\n        if (featureFlags.enableSharedDateColumn) {\n            return {\n                metadataFormat: (element: BackedCollectionItem<SAM.AdobeAsset>) =>\n                    // if we don't actually have a shareDate, don't attempt to show one\n                    element.backingItem.shared &&\n                    element.backingItem.shared.getTime() !== 0 &&\n                    isNonZeroAndValidDate(element.backingItem.shared) ? (\n                        <DateMetadata\n                            date={element.backingItem.shared}\n                            id=\"CDOGridItem_DateShared\"\n                        />\n                    ) : undefined,\n            };\n        }\n        return {};\n    }\n\n    get listColumns(): Column[] {\n        const { featureFlags, intl } = this.globalStore;\n        return [\n            typeColumn(intl),\n            featureFlags.enableSharedDateColumn ? shareDateColumn(intl) : modifiedDateColumn(intl),\n            sizeColumn(intl),\n            sharedWithColumn(intl),\n        ];\n    }\n\n    protected get filterOptions() {\n        const { intl } = this.globalStore;\n        return getSWYFilterFileTypes(intl);\n    }\n}\n\ntype ISharedWithYouPropsExternal = ISharedWithYouProps & ICDOTabPassthroughProps;\n\nexport default injectIntl(SharedWithYou);\nconst SharedWithYouForTests = (\n    SharedWithYou as typeof SharedWithYou &\n        IWrappedComponent<React.ComponentProps<typeof SharedWithYou>>\n).wrappedComponent;\nexport { type ISharedWithYouPropsExternal as ISharedWithYouProps, SharedWithYouForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_SIZE = {\n    width: 150,\n    height: 150,\n};\nconst EmptyTrash = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n}) => (\n    <svg\n        className={classNames('cdo-EmptyTrash', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={width}\n        height={height}\n        viewBox={`0 0 ${height} ${width}`}\n    >\n        <g id=\"Group_608492\" data-name=\"Group 608492\" transform=\"translate(-1090 -697)\">\n            <rect\n                id=\"Rectangle_369522\"\n                data-name=\"Rectangle 369522\"\n                width=\"150\"\n                height=\"150\"\n                transform=\"translate(1090 697)\"\n                fill=\"none\"\n            />\n            <g id=\"Group_608490\" data-name=\"Group 608490\" transform=\"translate(-182.058 162.408)\">\n                <path\n                    id=\"Line_85545\"\n                    data-name=\"Line 85545\"\n                    d=\"M117.923,3.888H1.194a2.694,2.694,0,0,1,0-5.388h116.73a2.694,2.694,0,0,1,0,5.388Z\"\n                    transform=\"translate(1287.5 563.312)\"\n                    fill=\"#b1b1b1\"\n                />\n                <path\n                    id=\"Path_1037999\"\n                    data-name=\"Path 1037999\"\n                    d=\"M3346.371,6522.2a2.693,2.693,0,0,1-2.694-2.694v-14.935h-43.656v14.935a2.694,2.694,0,1,1-5.388,0v-17.628a2.694,2.694,0,0,1,2.693-2.694h49.044a2.694,2.694,0,0,1,2.694,2.694v17.628A2.694,2.694,0,0,1,3346.371,6522.2Z\"\n                    transform=\"translate(-1975.172 -5955.001)\"\n                    fill=\"#b1b1b1\"\n                />\n                <path\n                    id=\"Path_1038000\"\n                    data-name=\"Path 1038000\"\n                    d=\"M96.3,111.837a2.694,2.694,0,0,1-2.68-2.45l-9.454-104H14.424L5.377,107.294A2.7,2.7,0,0,1,2.7,109.75c-.08,0-.16,0-.241-.011a2.694,2.694,0,0,1-2.445-2.922L9.275,2.455A2.694,2.694,0,0,1,11.958,0h74.67a2.694,2.694,0,0,1,2.683,2.45L98.988,108.9a2.694,2.694,0,0,1-2.439,2.927C96.466,111.834,96.383,111.837,96.3,111.837Z\"\n                    transform=\"translate(1396.211 674.95) rotate(180)\"\n                    fill=\"#b1b1b1\"\n                />\n                <path\n                    id=\"Line_85546\"\n                    data-name=\"Line 85546\"\n                    d=\"M6.578,72.13A2.694,2.694,0,0,1,3.9,69.648L-1.492,1.406A2.694,2.694,0,1,1,3.879.982L9.267,69.224a2.694,2.694,0,0,1-2.473,2.9C6.721,72.127,6.649,72.13,6.578,72.13Z\"\n                    transform=\"translate(1325.213 583.717)\"\n                    fill=\"#b1b1b1\"\n                />\n                <path\n                    id=\"Line_85547\"\n                    data-name=\"Line 85547\"\n                    d=\"M1.194,72.78A2.694,2.694,0,0,1-1.5,70.086V1.194a2.694,2.694,0,0,1,5.388,0V70.086A2.694,2.694,0,0,1,1.194,72.78Z\"\n                    transform=\"translate(1345.483 583.067)\"\n                    fill=\"#b1b1b1\"\n                />\n                <path\n                    id=\"Line_85548\"\n                    data-name=\"Line 85548\"\n                    d=\"M1.2,72.13q-.107,0-.215-.008a2.694,2.694,0,0,1-2.473-2.9L3.9.982a2.694,2.694,0,1,1,5.371.424L3.879,69.648A2.694,2.694,0,0,1,1.2,72.13Z\"\n                    transform=\"translate(1360.367 583.717)\"\n                    fill=\"#b1b1b1\"\n                />\n            </g>\n        </g>\n    </svg>\n);\n\nexport default EmptyTrash;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_ICON_SIZE = 18;\n\nconst InfoIconOutline = ({\n    height = DEFAULT_ICON_SIZE,\n    width = DEFAULT_ICON_SIZE,\n    className = '',\n}) => {\n    const style = {\n        fill: 'var(--headerInfoIconColor)',\n    };\n    return (\n        <svg\n            className={classNames('cdo-InfoIcon', className)}\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width={height}\n            height={width}\n            viewBox={`0 0 ${height} ${width}`}\n        >\n            <path\n                style={style}\n                d=\"M10.075,6A1.075,1.075,0,1,1,9,4.925H9A1.075,1.075,0,0,1,10.075,6Zm.09173,6H10V8.2A.20005.20005,0,0,0,9.8,8H7.83324S7.25,8.01612,7.25,8.5c0,.48365.58325.5.58325.5H8v3H7.83325s-.58325.01612-.58325.5c0,.48365.58325.5.58325.5h2.3335s.58325-.01635.58325-.5C10.75,12.01612,10.16673,12,10.16673,12ZM9,.5A8.5,8.5,0,1,0,17.5,9,8.5,8.5,0,0,0,9,.5ZM9,15.6748A6.67481,6.67481,0,1,1,15.67484,9,6.67481,6.67481,0,0,1,9,15.6748Z\"\n            />\n        </svg>\n    );\n};\n\nexport default InfoIconOutline;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport type { IWrappedComponent } from 'mobx-react';\nimport { inject, observer } from 'mobx-react';\nimport Well from '@react/react-spectrum/Well';\nimport { HostConfigContext } from '@csc/common';\nimport type { IEmptyProps } from '@csc/collection-view';\nimport EmptyTrash from './svgs/EmptyTrash';\nimport { permDeleteWarningUrl } from '../utils/urls';\nimport stopPropagation from '../utils/stop-propagation';\n\nimport type { IntlShape } from 'react-intl';\nimport { injectIntl, FormattedMessage } from 'react-intl';\nimport type { ICDOTabPassthroughProps, ICDOTabProps } from './CDOTab';\nimport CDOTab from './CDOTab';\nimport { getExistingCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport InfoIconOutline from './svgs/InfoIconOutline';\nimport { DeletedNoConnection } from './svgs/NoConnection';\nimport { SAM, AssetBrowser } from '@ccx-public/component-types';\nimport ExternalLink from '@csc/adobe-assets-view/dist/src/components/ExternalLink/ExternalLink';\nimport type { FilterOptionViewModel } from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\nimport {\n    ProjectOption,\n    getTypeViewModel,\n} from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\nimport { computed } from 'mobx';\nimport {\n    createRestoreAction,\n    createPermDeleteAction,\n} from '@csc/adobe-assets-view/dist/src/actions';\nimport type HostConfig from '@csc/common/@types/HostConfig';\n\nimport '../styles/Deleted.css';\nimport { getAssetList } from '@csc/sam-utils';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport { AAVComponentId, Metrics } from '@csc/adobe-assets-view/dist/src/utils/ingest';\nimport { ActionAnalyticsValue } from '@csc/adobe-assets-view/dist/src/stores/AAVOperationStore';\nimport { adaptOnBefore } from '../utils/action-menu-utils';\nimport type { IAdobeAssetsViewProps } from '@csc/adobe-assets-view/dist/src/components/AdobeAssetsView/AdobeAssetsView';\n\nconst INGEST_SUBCATEGORY = 'Deleted';\n\nexport const getDeletedFilterFileTypes = (intl: IntlShape): FilterOptionViewModel[] => {\n    const toViewModel = (type) => getTypeViewModel(intl, type, true);\n    return [\n        ...[\n            AssetBrowser.OtherFileTypeValues.AllFiles,\n            AssetBrowser.AdobeFileTypeValues.Photoshop,\n            AssetBrowser.AdobeFileTypeValues.Illustrator,\n            AssetBrowser.AdobeFileTypeValues.Express,\n            AssetBrowser.AdobeFileTypeValues.Concept,\n            AssetBrowser.AdobeFileTypeValues.Acrobat,\n        ].map(toViewModel),\n        ...[\n            AssetBrowser.AdobeFileTypeValues.InDesign,\n            AssetBrowser.AdobeFileTypeValues.Aero,\n            AssetBrowser.AdobeFileTypeValues.XD,\n            AssetBrowser.AdobeFileTypeValues.Squirrel,\n            AssetBrowser.GenericFileTypeValues.Assets3d,\n        ].map(toViewModel),\n        ProjectOption(intl),\n        ...[\n            AssetBrowser.LibrariesAndBrandsTypeValues.Libraries,\n            AssetBrowser.LibrariesAndBrandsTypeValues.Brands,\n            AssetBrowser.OtherFileTypeValues.Folder,\n            AssetBrowser.GenericFileTypeValues.Images,\n            AssetBrowser.GenericFileTypeValues.Videos,\n            AssetBrowser.GenericFileTypeValues.Audio,\n        ].map(toViewModel),\n    ];\n};\n\ninterface IDeletedProps {}\n\n@inject('callbacks', 'cdoStore', 'toastStore')\n@observer\nclass Deleted extends CDOTab<IDeletedProps> {\n    get tabConfig() {\n        return {\n            tabName: 'Deleted',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            routeName: AssetBrowser.ContentViewType.Deleted,\n            requiresManualRefresh: true,\n            hideNextPageLoadingIndicator: true,\n        };\n    }\n\n    get aavProps(): Partial<IAdobeAssetsViewProps> {\n        return {\n            showLocation: true,\n        };\n    }\n\n    static contextType = HostConfigContext;\n\n    constructor(props: IDeletedProps & ICDOTabProps) {\n        super(props);\n        const { onBeforeItemClicked } = this.props;\n        this.onBeforeItemClicked = onBeforeItemClicked ?? (() => false);\n    }\n\n    override handleViewOptionsChange({\n        sortBy,\n        sortDir,\n        viewMode,\n        filter,\n    }: AssetBrowser.ViewOptions) {\n        super.handleViewOptionsChange({\n            // Disable navigation to a specific asset in Deleted view\n            assetId: undefined,\n            sortBy,\n            sortDir,\n            viewMode,\n            filter,\n        });\n    }\n\n    async setSamList(): Promise<void> {\n        await this.globalStore.waitForSAMInit();\n        const hostAssetContext = getExistingCDCGlobalStore()?.hostAssetContext;\n        if (!hostAssetContext) {\n            return;\n        }\n        const samList = getAssetList({\n            context: hostAssetContext,\n            source: hostAssetContext.discardedSource,\n            sortBy: this.viewOptions.sortBy === 'modifiedDate' ? 'modified' : 'name',\n            sortDirection: this.viewOptions.sortDir === 'desc' ? 'descending' : 'ascending',\n            loadAll: this.tabConfig.hideNextPageLoadingIndicator,\n        });\n\n        if (samList) {\n            this.setState({ samList: samList });\n        }\n    }\n\n    private fireIngestEventClick(subtype: string, value: string, workflow: string) {\n        this.cdoMetrics?.fireEvent({\n            event: {\n                subtype,\n                value,\n                workflow,\n                subcategory: INGEST_SUBCATEGORY,\n                type: 'click',\n            },\n        });\n    }\n\n    /**\n     * marstewa 10/26/2020\n     * TODO:add unit test and verify event value with PM\n     * https://jira.corp.adobe.com/browse/CCXCD-4989\n     */\n    private onOpenAssetsWeb = (e: React.MouseEvent) => {\n        stopPropagation(e);\n        this.fireIngestEventClick('open-assets-web', 'link', 'Deleted');\n    };\n\n    @computed get actions() {\n        const { intl, sam } = this.globalStore;\n        const {\n            onBeforeRestore,\n            onAfterRestore,\n            onBeforePermanentDelete,\n            onAfterPermanentDelete,\n            getOpenCloudDocuments,\n        } = this.props.callbacks ?? {};\n\n        const { showToast, showModal } = this.context as HostConfig;\n\n        const onBefore = (callback?: AssetBrowser.IOnBeforeOperation) =>\n            adaptOnBefore(intl, showToast, getOpenCloudDocuments, callback);\n\n        return [\n            createRestoreAction({\n                intl,\n                showToast,\n                showModal,\n                onBefore: onBefore(onBeforeRestore),\n                onAfter: async (assets) => onAfterRestore?.(assets[0]?.id ?? ''),\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.Restore,\n                ),\n            }),\n            createPermDeleteAction({\n                intl,\n                sam,\n                showToast,\n                showModal,\n                onBefore: onBefore(onBeforePermanentDelete),\n                onAfter: async (assets) => onAfterPermanentDelete?.(assets[0]?.id ?? ''),\n                metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                    ActionAnalyticsValue.PermDelete,\n                ),\n            }),\n        ];\n    }\n\n    getCommonEmptyViewProps(): IEmptyProps {\n        const commonEmptyViewProps = {\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            automationSuffix: 'DELETED',\n            productName: this.globalStore.hostProductData.productName,\n        };\n\n        return commonEmptyViewProps;\n    }\n\n    getOfflineEmptyViewProps(): IEmptyProps {\n        const { intl, callbacks } = this.props;\n        const { onViewOfflineFiles } = callbacks ?? {};\n\n        const offlineEmptyViewProps = {\n            ...this.getCommonEmptyViewProps(),\n            image: <DeletedNoConnection />,\n            titleId: 'empty.title.deleted_offline',\n            subtitleId: onViewOfflineFiles\n                ? 'empty.subtext.deleted_offline'\n                : 'empty.offline.web.deleted.subtitle',\n            buttons: onViewOfflineFiles\n                ? [\n                      {\n                          label: intl.formatMessage({ id: 'empty.button.offline.label' }),\n                          callback: onViewOfflineFiles,\n                      },\n                  ]\n                : [],\n        };\n\n        return offlineEmptyViewProps;\n    }\n    getFilterEmptyView(): IEmptyProps {\n        const defaultOptions = super.getFilterEmptyView();\n\n        return {\n            ...defaultOptions,\n            image: <EmptyTrash />,\n            titleId: 'empty.title.deleted.filter',\n        };\n    }\n\n    getNonErrorEmptyViewProps = (): IEmptyProps => {\n        const onlineEmptyViewProps = {\n            ...this.getCommonEmptyViewProps(),\n            image: <EmptyTrash />,\n            titleId: 'empty.title.deleted',\n            metrics: Metrics[AAVComponentId.CDO],\n            renderEventMetricSubtype: 'empty',\n        };\n\n        return onlineEmptyViewProps;\n    };\n\n    shouldRenderItemAsDisabled = (\n        element: BackedCollectionItem<SAM.AdobeAsset>,\n    ): Promise<boolean> =>\n        Promise.resolve(element.backingItem.syncStatus === SAM.AssetSyncStatus.Syncing);\n\n    get filterOptions(): FilterOptionViewModel[] {\n        const { intl } = this.globalStore;\n        return getDeletedFilterFileTypes(intl);\n    }\n\n    renderSubheader() {\n        return <div className=\"cdo-subheader\">{this.renderDeleteWarningMessage()}</div>;\n    }\n\n    renderDeleteWarningMessage() {\n        const warningMessage = (\n            <div className=\"cdo-warningMessage\">\n                <InfoIconOutline />\n                <div className=\"cdo-headerMessage\">\n                    <FormattedMessage id=\"deleted.warning.body\" />\n                </div>\n                <ExternalLink\n                    className=\"cdo-deleteWarningLink\"\n                    url={permDeleteWarningUrl(this.globalStore.intl.locale)}\n                >\n                    <FormattedMessage id=\"deleted.warning.link\" />\n                </ExternalLink>\n            </div>\n        );\n\n        return <Well className=\"cdo-well\"> {warningMessage} </Well>;\n    }\n}\n\ntype IDeletedPropsExternal = IDeletedProps & ICDOTabPassthroughProps;\n\nexport default injectIntl(Deleted);\nconst DeletedForTests = (\n    Deleted as typeof Deleted & IWrappedComponent<React.ComponentProps<typeof Deleted>>\n).wrappedComponent;\nexport { DeletedForTests, type IDeletedPropsExternal as IDeletedProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * Use this utility to prevent bubbling of events without creating new instances of a function in each render\n * call. Defining functions inside a React render method causes performance to drag, because React\n * can't tell that the functions are the same when running its DOM diff engine, and so it must trigger\n * DOM repaints more than it should.\n *\n * If you use a mix of React event binding and `.addEventListener` event binding,\n * you have to stopPropagation on both the React synthetic event and the native event.\n * Passing `true` for `stopNative` will stop the underlying nativeEvent.\n *\n *  Example usage. Let's say you have a panel that does something on click and also contains buttons. Event bubbling\n *  would cause the panel's click handler to be called when a button is clicked. To prevent that:\n *\n *      <div onClick={this.onPanelClick}>\n *          <div className='buttonBar' onClick={stopPropagation} />\n *              <button onClick={this.onConfirmClick}>Confirm</button>\n *              <button onClick={this.onCancelClick}><Cancel</button>\n *          </div>\n *      </div>\n *\n *\n * @param event\n */\n\ntype AnyEvent = React.UIEvent | React.MouseEvent | React.KeyboardEvent;\n\nexport default function stopPropagation(event: AnyEvent, stopNative = false) {\n    event.stopPropagation();\n    if (stopNative && event.nativeEvent) {\n        event.nativeEvent.stopImmediatePropagation();\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { PureComponent } from 'react';\nimport Heading from '@react/react-spectrum/Heading';\n\nimport * as Assets from '../../assets/assets';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { injectIntl, FormattedMessage } from 'react-intl';\nimport ExternalLink from '@csc/adobe-assets-view/dist/src/components/ExternalLink/ExternalLink';\nimport Link from '@ccx-public/spectrum-wrapper/dist/Link';\n\nimport '../styles/OnboardingBanner.css';\nimport { inject } from 'mobx-react';\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\ninterface IOnboardingBannerProps {\n    onDismissOnboardBanner?: () => void;\n    productId: string;\n    learnMoreLink?: string;\n    callbacks?: AssetBrowser.ICDOCallbacks;\n}\n\n@inject('callbacks')\nclass OnboardingBanner extends PureComponent<WrappedComponentProps & IOnboardingBannerProps> {\n    render() {\n        const { onDismissOnboardBanner, learnMoreLink, productId } = this.props;\n\n        // Load product-specific onboarding image if one exists\n        const onboardingImage = Assets[`OnboardingIcon${productId}`] || Assets.OnboardingIcon;\n\n        return (\n            <div className=\"cdo-bannerWrapper\">\n                <div className=\"cdo-onboard-banner\">\n                    <div className=\"cdo-heroWrapper\">\n                        <img alt=\"\" src={onboardingImage} id=\"CDO_OnboardingBannerImage\" />\n                    </div>\n                    <div className=\"cdo-content\">\n                        <Heading variant=\"subtitle1\" className=\"cdo-h2\">\n                            <FormattedMessage id={`onboardingCdo.banner.title.${productId}`} />\n                        </Heading>\n                        <Heading variant=\"subtitle2\" className=\"cdo-h3\">\n                            <FormattedMessage id={`onboardingCdo.banner.message.${productId}`} />\n                            {learnMoreLink && (\n                                <ExternalLink url={learnMoreLink}>\n                                    <FormattedMessage id=\"onboardingCdo.banner.linkTitle\" />\n                                </ExternalLink>\n                            )}\n                        </Heading>\n                        <button\n                            className=\"cdo-dismissButton\"\n                            onKeyDown={(ev) => {\n                                const ENTER_KEY = 'Enter';\n                                const SPACE_KEY = ' ';\n                                if (ev.key === ENTER_KEY || ev.key === SPACE_KEY) {\n                                    onDismissOnboardBanner?.();\n                                }\n                            }}\n                            tabIndex={0}\n                        >\n                            <Link className=\"cdo-close\" onClick={onDismissOnboardBanner}>\n                                <FormattedMessage id=\"onboardingCdo.banner.confirm\" />\n                            </Link>\n                        </button>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default injectIntl(OnboardingBanner);\nexport { OnboardingBanner as OnboardingBannerForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IWrappedComponent } from 'mobx-react';\nimport { inject, observer } from 'mobx-react';\nimport React from 'react';\nimport {\n    HostConfigContext,\n    createLoadPerformanceMeasurement,\n    NavigationEvent,\n    ProductId,\n} from '@csc/common';\nimport { type IEmptyProps, type EmptyViewButton, EventType } from '@csc/collection-view';\nimport type { ICDOTabPassthroughProps } from './CDOTab';\nimport CDOTab, { DEFAULT_VIEW_OPTIONS } from './CDOTab';\nimport { injectIntl } from 'react-intl';\nimport { EmptyViewType } from '../utils/constants';\nimport I18N from '../utils/i18n';\nimport {\n    cloudDocsFaqGoUrl,\n    cloudDocsFaqUrl,\n    knownIssuesUrl,\n    cloudDocsHelpUrl,\n} from '../utils/urls';\nimport OnboardingBanner from './OnboardingBanner';\nimport * as SVG from './svgs';\nimport { Logger } from '../utils/Logger';\nimport { createAddFolderAction, createImportAction } from '@csc/adobe-assets-view/dist/src/actions';\nimport { NoConnection } from './svgs';\nimport { onExportCallback } from '../utils/export-utils';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport { getAssetList, getSAMFilter } from '@csc/sam-utils';\nimport { AAVComponentId, Metrics } from '@csc/adobe-assets-view/dist/src/utils/ingest';\nimport { getActionsForCloudDocuments } from '../utils/action-menu-utils';\nimport {\n    ActionAnalyticsValue,\n    type IOperationalMetricOptions,\n} from '@csc/adobe-assets-view/dist/src/stores/AAVOperationStore';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport type { IAdobeAssetsViewProps } from '@csc/adobe-assets-view/dist/src/components/AdobeAssetsView/AdobeAssetsView';\nimport { SAM, AssetBrowser } from '@ccx-public/component-types';\nimport ExternalLink from '@csc/adobe-assets-view/dist/src/components/ExternalLink/ExternalLink';\nimport type { IImportAnalytics } from '../types/IImportAction';\n\nconst INGEST_SUBCATEGORY = 'Your Files';\n\n// double standard size of 50 so first visible set of assets is already loaded\n// in future we'll evaluate CDO using serverside filter/sort in order to do pagination\nexport const CLOUD_DOCUMENTS_PAGE_LIMIT = 100;\n\nconst TAB_CONFIG = {\n    tabName: 'CloudDocuments',\n    ingestSubcategory: INGEST_SUBCATEGORY,\n    routeName: AssetBrowser.ContentViewType.CloudDocuments,\n    folderNavigation: true,\n    hideNextPageLoadingIndicator: true,\n};\n\nexport function getCloudDocumentsListOptions(options: {\n    sortBy?: AssetBrowser.ViewOptions['sortBy'];\n    sortDir?: AssetBrowser.ViewOptions['sortDir'];\n    context: SAM.AssetContext;\n}) {\n    const sortBy: SAM.AdobeAssetOrderField =\n        options.sortBy === 'modifiedDate' ? 'modified' : 'name';\n    const sortDir: SAM.IOrderDirection = options.sortDir === 'desc' ? 'descending' : 'ascending';\n    return {\n        sortBy,\n        sortDir,\n        filter: getSAMFilter(options.context),\n        loadOptions: {\n            limit: CLOUD_DOCUMENTS_PAGE_LIMIT,\n        },\n    };\n}\n\nexport function getCloudDocumentsSAMList(options: {\n    asset?: SAM.AdobeAsset;\n    context: SAM.AssetContext;\n    sortBy?: AssetBrowser.ViewOptions['sortBy'];\n    sortDir?: AssetBrowser.ViewOptions['sortDir'];\n}) {\n    const viewOptions = { ...DEFAULT_VIEW_OPTIONS, ...options };\n\n    const listOptions = getCloudDocumentsListOptions({\n        context: viewOptions.context,\n        sortBy: viewOptions.sortBy,\n        sortDir: viewOptions.sortDir,\n    });\n    return getAssetList({\n        context: viewOptions.context,\n        source: viewOptions.asset?.children,\n        sortBy: listOptions.sortBy,\n        sortDirection: listOptions.sortDir,\n        loadAll: TAB_CONFIG.hideNextPageLoadingIndicator,\n        samFilter: listOptions.filter,\n        limit: listOptions.loadOptions.limit,\n    });\n}\n\ninterface ICloudDocumentsProps {\n    shouldRenderItemAsDisabled?: (\n        element: BackedCollectionItem<SAM.AdobeAsset>,\n    ) => Promise<boolean>;\n}\n\n@inject('callbacks', 'cdoStore', 'toastStore')\n@observer\nclass CloudDocuments extends CDOTab<ICloudDocumentsProps> {\n    private logger = new Logger(this.constructor.name);\n    static contextType = HostConfigContext;\n\n    get tabConfig() {\n        return TAB_CONFIG;\n    }\n\n    // When used in a UAP context, this callback will be defined\n    shouldRenderItemAsDisabled =\n        this.props.shouldRenderItemAsDisabled ?? (() => Promise.resolve(false));\n\n    async setSamList(asset?: SAM.AdobeAsset) {\n        await this.globalStore.waitForSAMInit();\n        // From here on we should always have the hostAssetContext\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Handle undefined/null or adjust types\n        const hostAssetContext = this.globalStore.hostAssetContext!;\n        const endGetRootFolderMeasurement = createLoadPerformanceMeasurement(\n            {\n                measureName: 'CloudDocuments-getRootFolder',\n                prefix: 'ace-cdo',\n                trackPerformanceAnalytics: (measureName, duration) => {\n                    this.cdoMetrics?.fireEvent({\n                        event: {\n                            category: 'performance',\n                            subcategory: measureName,\n                            value: duration,\n                        },\n                    });\n                },\n            },\n            true,\n            this.context?.dispatchEvent,\n        );\n        const listOptions = getCloudDocumentsListOptions({\n            context: hostAssetContext,\n            sortBy: this.viewOptions.sortBy,\n            sortDir: this.viewOptions.sortDir,\n        });\n        const rootFolder = await hostAssetContext.getRootFolder({\n            listingHints: [\n                {\n                    order: hostAssetContext.getAdobeAssetOrder(\n                        listOptions.sortDir,\n                        listOptions.sortBy,\n                    ),\n                    filter: listOptions.filter,\n                    loadOptions: listOptions.loadOptions,\n                },\n            ],\n        });\n        endGetRootFolderMeasurement();\n        const resolvedAsset = asset ?? rootFolder;\n        const samList = getCloudDocumentsSAMList({\n            asset: resolvedAsset,\n            context: hostAssetContext,\n            sortBy: this.viewOptions.sortBy,\n            sortDir: this.viewOptions.sortDir,\n        });\n\n        if (samList) {\n            this.setState({ asset: resolvedAsset, rootAsset: rootFolder, samList });\n        }\n    }\n\n    private getImportAction() {\n        const { intl } = this.globalStore;\n        const { context } = this;\n        const { showToast } = context as HostConfig;\n\n        if (\n            !this.state.asset ||\n            // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Remove this once we've migrated to the new callbacks\n            !this.props.callbacks?.importFiles ||\n            // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Remove this once we've migrated to the new callbacks\n            !this.props.callbacks?.promptUserForFileImport\n        ) {\n            return undefined;\n        }\n        const metricLogger = this.cdoMetrics?.getOperationalMetricLogger(\n            ActionAnalyticsValue.Import,\n        );\n        const logAnalytics = ({ eventType, errorCode, errorDesc }: IImportAnalytics) => {\n            const metricLoggerOptions: IOperationalMetricOptions = {\n                correlationId: ActionAnalyticsValue.Import,\n                eventType: EventType.Success,\n                dtsStart: new Date(Date.now()),\n                errorCode,\n                errorDesc,\n            };\n            if (eventType === 'error') {\n                metricLoggerOptions.eventType = EventType.Error;\n            }\n            void metricLogger?.(metricLoggerOptions);\n        };\n        return createImportAction({\n            intl,\n            showToast,\n            logAnalytics,\n            callbacks: this.props.callbacks ?? {},\n            parentFolder: this.state.asset,\n            samList: this.state.samList as unknown as SAM.GenericAssetList,\n        });\n    }\n    async onExport(elements) {\n        await onExportCallback(elements, this.cdoMetrics, this.props.callbacks ?? {});\n    }\n\n    private getAddFolderAction() {\n        const { intl } = this.globalStore;\n        const { context } = this;\n        const { closeModal, dispatchEvent, showToast, showModal } = context as HostConfig;\n\n        if (this.globalStore.quotaStore?.isCloudStorageDisabled) {\n            return undefined;\n        }\n\n        return createAddFolderAction({\n            intl,\n            parentFolder: this.state.asset,\n            isVisible: () => true,\n            onAfter: async ([folderToNavigateTo]) =>\n                dispatchEvent(\n                    new NavigationEvent({\n                        name: this.tabConfig.routeName,\n                        params: {\n                            assetId: folderToNavigateTo.backingItem.id,\n                            sortBy: this.viewOptions.sortBy,\n                            sortDir: this.viewOptions.sortDir,\n                            viewMode: this.viewOptions.viewMode,\n                        },\n                    }),\n                ),\n            showModal,\n            closeModal,\n            showToast,\n            metricLogger: Metrics[AAVComponentId.CDO].getOperationalMetricLogger(\n                ActionAnalyticsValue.AddFolder,\n            ),\n        });\n    }\n\n    get actions() {\n        const { baseUrls, cdoStore, context, getShareSheetConfig, isShareActionVisible } = this;\n        const { callbacks } = this.props;\n        return [\n            ...getActionsForCloudDocuments({\n                baseUrls,\n                callbacks,\n                compatibleTypes: this.compatibleTypes,\n                cdoStore,\n                context,\n                getShareSheetConfig,\n                globalStore: this.globalStore,\n                isShareActionVisible,\n            }),\n            // The following are folder-level actions and not defined in the above list.\n            this.getAddFolderAction(),\n            this.getImportAction(),\n        ].filter((value) => !!value);\n    }\n\n    getOfflineEmptyViewProps(): IEmptyProps {\n        const { hostProductData } = this.globalStore;\n        const { intl, callbacks } = this.props;\n        const { onViewOfflineFiles } = callbacks ?? {};\n        const productName = hostProductData?.productName;\n\n        const image = <NoConnection />;\n\n        return {\n            image,\n            titleId: 'empty.offline.root.title',\n            subtitleId: onViewOfflineFiles\n                ? 'empty.offline.root.subtitle'\n                : 'empty.offline.web.subtitle',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            automationSuffix: 'CLOUD_DOCUMENTS',\n            productName,\n            buttons: onViewOfflineFiles\n                ? [\n                      {\n                          label: intl.formatMessage({ id: 'empty.button.offline.label' }),\n                          callback: () => {\n                              // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n                              onViewOfflineFiles();\n                          },\n                      },\n                  ]\n                : [],\n        };\n    }\n\n    atRootFolder() {\n        return this.state.asset?.id === this.state.rootAsset?.id;\n    }\n\n    getFilterEmptyView(): IEmptyProps {\n        const defaultOptions = super.getFilterEmptyView();\n        const isCurrentFolderRoot = this.atRootFolder();\n        const renderEventMetricSubtype = isCurrentFolderRoot\n            ? 'empty-filtered'\n            : 'empty-folder-filtered';\n\n        return {\n            ...defaultOptions,\n            renderEventMetricSubtype,\n        };\n    }\n\n    // EmptyViewProps fn that uses samList and is AAV Compliant\n    getNonErrorEmptyViewProps(): IEmptyProps {\n        const isCurrentFolderRoot = this.atRootFolder();\n        const { isOrganizer: isCDO, isChooseDirMode } = this.cdoStore ?? {};\n        const { hostProductData } = this.globalStore;\n        const { samList, isOnline } = this.state;\n        const { intl, callbacks, routeId } = this.props;\n        const { onNewDocument } = callbacks ?? {};\n        const productName = hostProductData?.productName;\n\n        const errorLink = <ExternalLink url={this.knownIssuesLink} />;\n\n        const errorViewProps = this.getErrorViewProps();\n        if (errorViewProps) {\n            return {\n                // overrideable props\n                ingestSubcategory: INGEST_SUBCATEGORY,\n                buttons: undefined,\n                link: errorLink,\n                ...errorViewProps,\n                productName,\n            };\n        }\n\n        if (samList?.items?.length) {\n            return {};\n        }\n\n        /**\n         *  empty/trueEmpty   off/online cdo/uap  root/folder   dir/asset,               title/subtitle, app/generic\n         *\n         *      empty         offline             root                                   title\n         *      empty         offline             root                                   subtitle\n         *      empty         offline             folder                                 title\n         *      empty         offline             folder                                 subtitle\n         *      empty         online      uap                   choose_directory         title\n         *      empty         online      uap                   choose_asset             title\n         *      empty         online      cdo     root                                   title\n         *      empty         online      cdo     root                                   subtitle\n         *      empty         online      cdo     folder                                 title\n         *      empty         online      cdo     folder                                 subtitle\n         *      trueEmpty     online      cdo     folder                                 title\n         *      trueEmpty     online      cdo     folder                                 subtitle\n         *      trueEmpty     online      uap     folder        choose_directory         title\n         *      trueEmpty     online      uap     folder        choose_asset             subtitle\n         */\n        const connection = isOnline ? 'online' : 'offline';\n        const context = isCDO ? 'cdo' : 'uap';\n        const mode = isChooseDirMode ? 'choose_directory' : 'choose_asset';\n        const location = isCurrentFolderRoot ? 'root' : 'folder';\n        const createNew =\n            isCDO && this.globalStore?.isFeatureFlagEnabled('enableCreateNewInEmptyState');\n        // only show create new button if online\n        const buttons: EmptyViewButton[] = [];\n        if (createNew && isCurrentFolderRoot) {\n            buttons.push({\n                label: intl.formatMessage({ id: 'button.upload' }),\n                callback: () => onNewDocument?.(routeId),\n            });\n        }\n\n        // if in a folder, confirm if folder is trueEmpty or is filtering some assets by MIME type and not displaying\n        const isFolderTrueEmpty =\n            !isCurrentFolderRoot &&\n            isOnline &&\n            samList &&\n            !samList.items?.length &&\n            samList.status === SAM.AssetListStatus.ReadyFullyLoaded;\n        const emptyType = isFolderTrueEmpty\n            ? EmptyViewType.unfilteredEmpty\n            : EmptyViewType.filteredEmpty;\n\n        const prefix = `${emptyType}.${connection}.${\n            isOnline ? `${context}.${isCDO ? `${location}` : `${mode}.${location}`}` : `${location}`\n        }`;\n\n        const productId = hostProductData?.productId?.toLowerCase();\n        const EmptyCloudDocsImage =\n            (SVG as { [key: string]: any })[`EmptyCloudDocs${productId}`] || SVG.EmptyCloudDocs;\n        const image = isOnline ? <EmptyCloudDocsImage /> : <NoConnection />;\n        const renderEventMetricSubtype = isCurrentFolderRoot ? 'empty' : 'empty-folder';\n\n        return {\n            image,\n            titleId: `${prefix}.title`,\n            subtitleId: isOnline\n                ? undefined\n                : I18N.getApplicationSpecificMsgId(intl, `${prefix}.subtitle`, productId ?? ''),\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            automationSuffix: 'CLOUD_DOCUMENTS',\n            metrics: Metrics[AAVComponentId.CDO],\n            renderEventMetricSubtype,\n            buttons,\n            productName,\n        };\n    }\n\n    get cloudDocsFaqLink() {\n        const { intl } = this.props;\n        const { hostProductData } = this.globalStore;\n        // XD specific help page\n        if (hostProductData.productId === ProductId.xd) {\n            return cloudDocsHelpUrl(intl.locale, hostProductData.productName ?? '');\n        }\n        // onboarding specific help page\n        if (hostProductData?.onboardingHelpJumpToken) {\n            return cloudDocsFaqGoUrl(hostProductData.onboardingHelpJumpToken);\n        }\n        return cloudDocsFaqUrl(intl.locale, hostProductData.productName ?? '');\n    }\n\n    get knownIssuesLink() {\n        const { intl } = this.props;\n        return knownIssuesUrl(intl.locale, this.globalStore.hostProductData);\n    }\n\n    onDismissOnboardBanner = () => {\n        this.cdoStore?.setHasSeenCdoOnboardBanner(true);\n    };\n\n    protected get aavProps(): Partial<IAdobeAssetsViewProps> {\n        const { isOrganizer } = this.cdoStore ?? {};\n        const enableDragDropFlag = this.globalStore.isFeatureFlagEnabled('enableDragDrop');\n        return {\n            dragDropEnabled: enableDragDropFlag && isOrganizer,\n        };\n    }\n\n    renderBanner() {\n        const { isOrganizer, hasSeenCdoOnboardBanner } = this.cdoStore ?? {};\n\n        const { samList } = this.state;\n\n        const onboardingBannerProps = {\n            onDismissOnboardBanner: this.onDismissOnboardBanner,\n            productId: this.globalStore.hostProductData?.productId?.toLowerCase() ?? '',\n            learnMoreLink: this.cloudDocsFaqLink,\n        };\n        const showBanner =\n            this.globalStore?.isFeatureFlagEnabled('enableOnboarding') &&\n            !hasSeenCdoOnboardBanner &&\n            (samList?.items?.length ?? 0) > 0 &&\n            isOrganizer;\n\n        if (!showBanner) {\n            return <></>;\n        }\n\n        return <OnboardingBanner {...onboardingBannerProps} />;\n    }\n}\n\ntype ICloudDocumentsPropsExternal = ICloudDocumentsProps & ICDOTabPassthroughProps;\n\nexport default injectIntl(CloudDocuments);\nconst CloudDocumentsForTests = (\n    CloudDocuments as typeof CloudDocuments &\n        IWrappedComponent<React.ComponentProps<typeof CloudDocuments>>\n).wrappedComponent;\nexport { CloudDocumentsForTests, type ICloudDocumentsPropsExternal as ICloudDocumentsProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_SIZE = {\n    width: 306,\n    height: 216,\n};\n\nconst EmptyCloudDocsIlst = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n    fillColorClass1 = '#b3b3b3',\n    fillColorClass2 = '#1473e6',\n    fillColorClass3 = '#f5f5f5',\n}) => (\n    <svg\n        className={classNames('cdo-EmptyCloudDocs', className)}\n        id=\"EmptyCloudDocsIlst\"\n        data-name=\"EmptyCloudDocsIlst\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={width}\n        height={height}\n        viewBox={`0 0 ${width} ${height}`}\n    >\n        {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx -- TODO: Translate string */}\n        <title>Illustrator Empty Cloud Docs Image</title>\n        <g>\n            <path\n                fill={fillColorClass1}\n                d=\"M232.042,148.294H192.447a1.344,1.344,0,1,1,0-2.688h39.6c.094,0,10.053-.294,10.053-10.051a10.954,10.954,0,0,0-10.953-10.927,10.6,10.6,0,0,0-1.17.061,1.344,1.344,0,0,1-1.474-1.5,12.648,12.648,0,0,0-.042-3.431,12.315,12.315,0,0,0-24.212-.695,1.342,1.342,0,0,1-1.831.961,9.633,9.633,0,0,0-4.435-.719,9.743,9.743,0,0,0-8.558,12.76,1.345,1.345,0,0,1-1.159,1.759,6.389,6.389,0,0,0-5.124,3.429,1.344,1.344,0,0,1-2.383-1.244,9.064,9.064,0,0,1,5.724-4.592A12.435,12.435,0,0,1,202,117.04a15,15,0,0,1,29.113,2.322,15.64,15.64,0,0,1,.164,2.578,13.643,13.643,0,0,1,13.5,13.612c0,6.228-3.371,9.365-6.2,10.9A15.961,15.961,0,0,1,232.042,148.294Z\"\n            />\n            <path\n                fill={fillColorClass1}\n                d=\"M144.277,198.481a1.5,1.5,0,0,1-1.5-1.433l-.312-6.991a1.606,1.606,0,0,1,.009-.24c.37-3.185,1.061-6.353,1.73-9.418,1.122-5.139,2.181-9.994,1.874-14.971a45.516,45.516,0,0,0-.97-6.428c-1.124-5.4-3.782-14.446-5.541-20.436l-.562-1.916a1.318,1.318,0,0,0-.74-.929,1.27,1.27,0,0,0-1.12.158,3.18,3.18,0,0,0-.925.785c-.653.964-.594,2.386-.458,4.01.031.37.428,2.75.779,4.849.66,3.953,1.1,6.6,1.15,7.372a11.931,11.931,0,0,1-2.714,8.489,14.905,14.905,0,0,0-2.48,3.73,8.075,8.075,0,0,0-.643,4.206,1.5,1.5,0,0,1-2.96.489,10.97,10.97,0,0,1,.812-5.793,18.04,18.04,0,0,1,2.964-4.55A8.939,8.939,0,0,0,134.7,153.1c-.047-.685-.665-4.384-1.116-7.084-.491-2.938-.77-4.623-.81-5.093-.134-1.6-.336-4.025.965-5.944a5.919,5.919,0,0,1,1.837-1.659,4.155,4.155,0,0,1,6.311,2.487l.561,1.913c1.772,6.035,4.45,15.156,5.6,20.669a47.9,47.9,0,0,1,1.028,6.853c.333,5.4-.821,10.684-1.937,15.8-.645,2.954-1.311,6.007-1.667,9.006l.306,6.87a1.5,1.5,0,0,1-1.431,1.564C144.322,198.481,144.3,198.481,144.277,198.481Z\"\n            />\n            <path\n                fill={fillColorClass1}\n                d=\"M122.583,202.818a1.5,1.5,0,0,1-1.5-1.5c0-11.108-.466-11.812-1.847-13.9a27.474,27.474,0,0,1-1.635-2.745c-.44-.851-.921-1.688-1.4-2.525-.62-1.081-1.262-2.2-1.82-3.349a16.148,16.148,0,0,1-1.592-7.011V160.6a1.5,1.5,0,0,1,3,0v11.182a13.106,13.106,0,0,0,1.292,5.7c.512,1.059,1.1,2.082,1.722,3.166.5.875,1,1.751,1.464,2.641a24.41,24.41,0,0,0,1.473,2.468c1.819,2.753,2.344,4.057,2.344,15.556A1.5,1.5,0,0,1,122.583,202.818Z\"\n            />\n            <path\n                fill={fillColorClass2}\n                d=\"M152.332,184.9a1.344,1.344,0,1,1,0-2.687c9.258,0,33.108-7.52,43.669-29.861a1.344,1.344,0,0,1,2.431,1.148C188.306,174.919,164.937,184.9,152.332,184.9Z\"\n            />\n            <g>\n                <path\n                    fill={fillColorClass1}\n                    d=\"M211.59,95.934a18.237,18.237,0,0,1-1.821-36.383,18.438,18.438,0,0,1,16.5,7.138,1.5,1.5,0,0,1-2.344,1.873,15.488,15.488,0,0,0-13.845-6.027,15.238,15.238,0,1,0,9.048,28.409c4.715-2.665,7.561-7.442,8.018-13.45a1.5,1.5,0,0,1,2.992.227c-.527,6.936-4,12.708-9.534,15.835A18.3,18.3,0,0,1,211.59,95.934Z\"\n                />\n                <path\n                    fill={fillColorClass2}\n                    d=\"M210.623,84.48a1.344,1.344,0,0,1-.95-.394l-6.646-6.645a1.344,1.344,0,1,1,1.9-1.9l5.695,5.695,19.643-19.643a1.344,1.344,0,1,1,1.9,1.9L211.573,84.086A1.344,1.344,0,0,1,210.623,84.48Z\"\n                />\n            </g>\n            <path\n                fill={fillColorClass2}\n                d=\"M108.861,183.539a1.323,1.323,0,0,1-.471-.086,73.006,73.006,0,0,1-47.173-68.06c0-20.114,9.86-47.841,37.648-59.789a1.344,1.344,0,1,1,1.062,2.469C73.339,69.506,63.906,96.1,63.906,115.393a70.308,70.308,0,0,0,45.427,65.543,1.344,1.344,0,0,1-.472,2.6Z\"\n            />\n            <path\n                fill={fillColorClass2}\n                d=\"M98.076,69.092a1.345,1.345,0,0,1-1.324-1.585l1.915-10.525L88.143,55.066a1.344,1.344,0,1,1,.481-2.644l11.847,2.156a1.344,1.344,0,0,1,1.082,1.563L99.4,67.988A1.343,1.343,0,0,1,98.076,69.092Z\"\n            />\n            <g>\n                <path\n                    fill={fillColorClass1}\n                    d=\"M147.37,105.08l8.26-3h1.02a6.833,6.833,0,0,1,2.31.39,6.583,6.583,0,0,1,1.83.93,7.192,7.192,0,0,1,3.09,5.91v2.64a1.5,1.5,0,0,1-3,0v-2.64a4.238,4.238,0,0,0-4.23-4.23Z\"\n                />\n                <path\n                    fill={fillColorClass1}\n                    d=\"M179.57,124.39l-9.89,27.03a7.78,7.78,0,0,1-7.29,5.1H151.97a1.5,1.5,0,0,1,0-3h10.42a4.775,4.775,0,0,0,4.47-3.13l9.89-27.03a3.173,3.173,0,0,0-2.97-4.28H113.87a4.923,4.923,0,0,0-4.73,3.49L99.7,153a5.054,5.054,0,0,1-9.87-1.54V100.14a7.238,7.238,0,0,1,7.23-7.22h19.56a6.01,6.01,0,0,1,4.3,1.78l7.15,7.15a.787.787,0,0,0,.56.23h5.22l1.09,3h-6.31a3.784,3.784,0,0,1-2.68-1.11l-7.15-7.15a3.054,3.054,0,0,0-2.18-.9H97.06a4.229,4.229,0,0,0-4.23,4.22v51.32a2.063,2.063,0,0,0,2.06,2.06,2.041,2.041,0,0,0,1.95-1.42l9.43-30.42a7.918,7.918,0,0,1,7.6-5.6h59.91a6.174,6.174,0,0,1,5.79,8.31Z\"\n                />\n            </g>\n            <path\n                fill={fillColorClass1}\n                d=\"M130.284,156.516H106.733a1.5,1.5,0,0,1,0-3h23.551a1.5,1.5,0,0,1,0,3Z\"\n            />\n            <g>\n                <path\n                    fill={fillColorClass3}\n                    d=\"M174.95,96.66l-15.99,5.81-7.2,2.61-12.17,4.42a4.373,4.373,0,0,1-5.59-2.61l-.66-1.81-1.09-3-17.4-47.81a4.373,4.373,0,0,1,2.61-5.59l12.82-4.66,1.11.99a1.449,1.449,0,0,1-.6.42l-12.82,4.66a2.873,2.873,0,0,0-1.71,3.67l17.59,48.32,1.09,3,.47,1.3a2.87,2.87,0,0,0,3.67,1.71l8.29-3.01,8.26-3,18.81-6.83a2.908,2.908,0,0,0,1.62-1.48,2.87,2.87,0,0,0,.09-2.19l-2.68-7.38a1.475,1.475,0,0,1,.29-1.51l1.12,1,2.68,7.37A4.363,4.363,0,0,1,174.95,96.66Z\"\n                />\n                <path\n                    fill={fillColorClass1}\n                    d=\"M178.77,95.03a5.823,5.823,0,0,1-3.31,3.04l-14.67,5.33-4.63,1.68-16.05,5.83a5.879,5.879,0,0,1-7.52-3.51l-.84-2.32-1.1-3L113.44,54.79a5.87,5.87,0,0,1,3.51-7.52l12.81-4.66a1.492,1.492,0,0,1,1.63,2.4,1.449,1.449,0,0,1-.6.42l-12.82,4.66a2.873,2.873,0,0,0-1.71,3.67l17.59,48.32,1.09,3,.47,1.3a2.87,2.87,0,0,0,3.67,1.71l8.29-3.01,8.26-3,18.81-6.83a2.908,2.908,0,0,0,1.62-1.48,2.87,2.87,0,0,0,.09-2.19l-2.68-7.38a1.475,1.475,0,0,1,.29-1.51,1.5,1.5,0,0,1,.6-.41,1.513,1.513,0,0,1,1.93.9l2.68,7.37A5.762,5.762,0,0,1,178.77,95.03Z\"\n                />\n            </g>\n            <path\n                fill={fillColorClass1}\n                d=\"M180,30.3,164.91,15.31a7.279,7.279,0,0,0-5.16-2.13H138.42a5.868,5.868,0,0,0-5.86,5.86V75.01a5.868,5.868,0,0,0,5.86,5.86l33.32.03h4.55a5.872,5.872,0,0,0,5.86-5.87V35.49A7.385,7.385,0,0,0,180,30.3Zm-.85,44.73a2.81,2.81,0,0,1-.84,2.03,2.845,2.845,0,0,1-2.02.84l-7.93-.01-29.94-.02a2.859,2.859,0,0,1-2.86-2.86V19.04a2.866,2.866,0,0,1,2.86-2.86h21.33a4.314,4.314,0,0,1,3.05,1.26l15.08,14.99a4.347,4.347,0,0,1,1.27,3.06Z\"\n            />\n            <path\n                fill={fillColorClass1}\n                d=\"M167.8,88.78,143.56,97.6a.829.829,0,0,1-.34.07,1,1,0,0,1-.34-1.94l24.23-8.83a1,1,0,0,1,.69,1.88Z\"\n            />\n            <path\n                fill={fillColorClass1}\n                d=\"M151.95,84.64l-11.47,4.44a1.149,1.149,0,0,1-.36.07,1.012,1.012,0,0,1-.94-.65,1,1,0,0,1,.58-1.29l11.47-4.43a1,1,0,1,1,.72,1.86Z\"\n            />\n            <path\n                fill={fillColorClass1}\n                d=\"M171.867,68.748H145.981a1,1,0,0,1,0-2h25.886a1,1,0,0,1,0,2Z\"\n            />\n            <path\n                fill={fillColorClass1}\n                d=\"M171.867,60.119H145.981a1,1,0,0,1,0-2h25.886a1,1,0,0,1,0,2Z\"\n            />\n        </g>\n    </svg>\n);\n\nexport default EmptyCloudDocsIlst;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nconst DEFAULT_SIZE = {\n    width: 120,\n    height: 120,\n};\nconst UserLoggedOut = ({ height = DEFAULT_SIZE.height, width = DEFAULT_SIZE.width }) => (\n    <svg\n        xmlns=\"http://www.w3.org/2000/svg\"\n        height={height}\n        id=\"S_IlluDocNotVisible_120\"\n        viewBox={`0 0 ${height} ${width}`}\n        width={width}\n    >\n        <path\n            style={{ fill: 'none' }}\n            d=\"M82.35,18.435A8.271,8.271,0,0,0,76.465,16H32.435A7.443,7.443,0,0,0,25,23.435v76.13A7.443,7.443,0,0,0,32.435,107h58.13A7.443,7.443,0,0,0,98,99.565V37.515a8.273,8.273,0,0,0-2.444-5.894ZM44.989,80.983a1.5,1.5,0,0,1-2.118-2.125l5.143-5.143c-4.728-2.443-8.307-5.9-8.307-8.217,0-3.725,9.886-13.3,20.793-13.3a21.631,21.631,0,0,1,7.6,1.433L76.6,45.126a1.5,1.5,0,0,1,2.118,2.124L69.51,56.461l-.005.006L44.992,80.979ZM67.174,61.97a1,1,0,1,1,1.995-.151q.024.318.024.644a8.406,8.406,0,0,1-8.4,8.4c-.217,0-.433-.008-.646-.024a1,1,0,0,1,.156-1.994c.162.013.325.018.49.018a6.4,6.4,0,0,0,6.4-6.4h0C67.193,62.3,67.187,62.133,67.174,61.97ZM60.5,76.867a24.824,24.824,0,0,1-3.071-.191A1.5,1.5,0,0,1,57.8,73.7a21.775,21.775,0,0,0,2.7.168c9.973,0,17.492-6.733,17.8-8.418-.089-.548-1.762-3.141-5.38-5.8a1.5,1.5,0,1,1,1.776-2.418c3.28,2.41,6.6,6.023,6.6,8.266C81.293,69.145,71.456,76.867,60.5,76.867Z\"\n        />\n        <path\n            style={{ fill: '#1373e6' }}\n            d=\"M69.51,56.461l9.211-9.211A1.5,1.5,0,0,0,76.6,45.126L68.1,53.633A21.631,21.631,0,0,0,60.5,52.2c-10.907,0-20.793,9.573-20.793,13.3,0,2.315,3.579,5.774,8.307,8.217l-5.143,5.143a1.5,1.5,0,0,0,2.118,2.125l0,0L69.505,56.467ZM50.252,71.477c-4.661-2.2-7.392-5.16-7.547-5.942.2-1.465,5.5-7.512,12.83-9.607a8.37,8.37,0,0,0-1.387,11.653Zm5.324-5.325a6.391,6.391,0,0,1,8.91-8.909Z\"\n        />\n        <path\n            style={{ fill: '#b3b3b3' }}\n            d=\"M97.676,29.5,84.469,16.312a11.253,11.253,0,0,0-8-3.312H32.435A10.445,10.445,0,0,0,22,23.435v76.13A10.446,10.446,0,0,0,32.435,110h58.13A10.446,10.446,0,0,0,101,99.565V37.515A11.258,11.258,0,0,0,97.676,29.5ZM98,99.565A7.443,7.443,0,0,1,90.565,107H32.435A7.443,7.443,0,0,1,25,99.565V23.435A7.443,7.443,0,0,1,32.435,16h44.03a8.271,8.271,0,0,1,5.885,2.435L95.556,31.621A8.273,8.273,0,0,1,98,37.515Z\"\n        />\n        <path\n            style={{ fill: '#1373e6' }}\n            d=\"M74.692,57.232a1.5,1.5,0,1,0-1.776,2.418c3.618,2.658,5.291,5.251,5.38,5.8-.3,1.685-7.823,8.418-17.8,8.418a21.775,21.775,0,0,1-2.7-.168,1.5,1.5,0,0,0-.37,2.977,24.824,24.824,0,0,0,3.071.191c10.956,0,20.793-7.722,20.793-11.369C81.293,63.255,77.972,59.642,74.692,57.232Z\"\n        />\n        <path\n            style={{ fill: '#1373e6' }}\n            d=\"M60.8,68.859c-.165,0-.328,0-.49-.018a1,1,0,0,0-.156,1.994c.213.016.429.024.646.024a8.406,8.406,0,0,0,8.4-8.4q0-.325-.024-.644a1,1,0,1,0-1.995.151c.013.163.019.327.019.493h0A6.4,6.4,0,0,1,60.8,68.859Z\"\n        />\n    </svg>\n);\n\nexport default UserLoggedOut;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_SIZE = {\n    width: 150,\n    height: 150,\n};\nconst EmptyReviewLinks = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n    primaryColor = '#b1b1b1',\n    secondaryColor = '#2680e9',\n}) => (\n    <svg\n        className={classNames('cdo-EmptyReviewLinks', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={width}\n        height={height}\n        viewBox={`0 0 ${height} ${width}`}\n    >\n        <g>\n            <path\n                fill={secondaryColor}\n                d=\"m52.413,73.958h-25.146c-.828,0-1.5-.671-1.5-1.5s.672-1.5,1.5-1.5h25.146c.828,0,1.5.671,1.5,1.5s-.672,1.5-1.5,1.5Z\"\n            />\n            <path\n                fill={secondaryColor}\n                d=\"m39.84,86.531c-.828,0-1.5-.672-1.5-1.5v-25.147c0-.829.672-1.5,1.5-1.5s1.5.671,1.5,1.5v25.147c0,.828-.672,1.5-1.5,1.5Z\"\n            />\n        </g>\n        <g id=\"document_not_existing_lg\" data-name=\"document not existing lg\">\n            <g id=\"document_not_existing_lg-2\" data-name=\"document not existing lg\">\n                <path\n                    fill={primaryColor}\n                    d=\"m80.723,120.775h-32.498c-5.45,0-9.885-4.435-9.885-9.885v-15.551c0-.828.672-1.5,1.5-1.5s1.5.672,1.5,1.5v15.551c0,3.796,3.089,6.885,6.885,6.885h32.498c.828,0,1.5.672,1.5,1.5s-.672,1.5-1.5,1.5Z\"\n                />\n                <path\n                    fill={primaryColor}\n                    d=\"m112.099,92.082c-.828,0-1.5-.672-1.5-1.5v-39.798c0-2.065-.805-4.006-2.266-5.465l-12.394-12.375c-1.459-1.456-3.396-2.258-5.457-2.258h-15.162c-.828,0-1.5-.671-1.5-1.5s.672-1.5,1.5-1.5h15.162c2.86,0,5.552,1.113,7.576,3.135l12.394,12.375c2.029,2.026,3.146,4.721,3.146,7.588v39.798c0,.828-.672,1.5-1.5,1.5Z\"\n                />\n            </g>\n        </g>\n        <g id=\"link_lg\" data-name=\"link lg\">\n            <g id=\"link\">\n                <path\n                    fill={primaryColor}\n                    d=\"m64.047,98.751c-2.273,0-4.546-.865-6.276-2.596-3.461-3.461-3.461-9.092,0-12.553l4.752-4.753c.586-.586,1.535-.586,2.121,0s.586,1.535,0,2.121l-4.752,4.753c-2.291,2.291-2.291,6.02,0,8.311s6.02,2.291,8.311,0l10.433-10.432c1.11-1.11,1.722-2.586,1.722-4.156s-.611-3.045-1.722-4.155c-.586-.585-.586-1.536,0-2.121.586-.586,1.535-.586,2.121,0,3.461,3.461,3.461,9.093,0,12.554l-10.433,10.432c-1.73,1.73-4.004,2.596-6.276,2.596Z\"\n                />\n                <path\n                    fill={primaryColor}\n                    d=\"m72.243,82.254c-.384,0-.768-.146-1.061-.439-1.677-1.677-2.6-3.905-2.6-6.276s.923-4.6,2.6-6.276l10.433-10.433c3.46-3.46,9.092-3.461,12.554,0,3.46,3.461,3.46,9.093,0,12.554l-4.753,4.752c-.586.586-1.535.586-2.121,0s-.586-1.536,0-2.121l4.753-4.752c2.29-2.292,2.29-6.02,0-8.312-2.292-2.292-6.021-2.29-8.312,0l-10.433,10.433c-1.11,1.11-1.721,2.585-1.721,4.155s.61,3.045,1.721,4.155c.586.586.586,1.535,0,2.121-.293.293-.677.439-1.061.439Z\"\n                />\n            </g>\n        </g>\n        <g>\n            <path\n                fill={primaryColor}\n                d=\"m33.453,43.134c-2.498,0-4.847-.971-6.614-2.735-1.771-1.767-2.747-4.117-2.75-6.619-.006-5.164,4.19-9.369,9.354-9.374h.01c2.498,0,4.847.971,6.614,2.735,1.771,1.767,2.747,4.117,2.75,6.619-.015,5.147-4.208,9.35-9.35,9.374-.004,0-.01,0-.014,0Zm.009-1h.01-.01Zm-.01-15.728h-.008c-4.061.004-7.359,3.312-7.355,7.372.002,1.967.771,3.815,2.162,5.205,1.391,1.388,3.238,2.151,5.202,2.151h.006c4.046-.02,7.347-3.327,7.357-7.373-.002-1.966-.771-3.814-2.162-5.204-1.391-1.388-3.238-2.151-5.202-2.151Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m27.656,40.765c-.053,0-.106-.004-.16-.013-.546-.088-.916-.602-.828-1.146.123-.759.771-3.169,4.042-3.753.025-.152.045-.323.055-.459-.64-.896-.986-1.952-.998-3.032,0-2.541,1.452-4.175,3.7-4.175,2.231,0,3.73,1.674,3.73,4.165-.029,1.112-.396,2.176-1.04,3.05.009.132.028.294.052.441,3.312.532,3.933,3.001,4.045,3.779.078.547-.302,1.054-.849,1.132-.552.077-1.053-.301-1.132-.848-.103-.718-.608-1.95-2.84-2.144-.297-.038-.761-.193-1.014-.861-.007-.018-.606-1.828.003-2.527.476-.564.755-1.296.774-2.049,0-.624-.169-2.138-1.73-2.138-1.405,0-1.7,1.177-1.7,2.165.008.736.274,1.466.749,2.044.586.665-.009,2.494-.016,2.512-.256.669-.724.82-.979.851-2.321.235-2.785,1.593-2.878,2.166-.079.491-.504.841-.986.841Zm3.286-5.136c.015.021.032.042.05.062-.017-.021-.033-.042-.05-.062Zm5.021.02c-.008.009-.016.018-.022.026.008-.009.015-.018.022-.026Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m60.285,32.622h-14.368c-.553,0-1-.448-1-1s.447-1,1-1h14.368c.553,0,1,.448,1,1s-.447,1-1,1Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m55.641,37.916h-9.724c-.553,0-1-.448-1-1s.447-1,1-1h9.724c.553,0,1,.448,1,1s-.447,1-1,1Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m52.647,59.726c-.022,0-.045,0-.067,0-.683-.018-1.317-.3-1.787-.796l-9.126-9.592h-18.24c-3.154,0-5.72-2.566-5.72-5.72v-19.172c0-3.154,2.565-5.72,5.72-5.72h38.857c.197,0,.394.01.589.031,2.808.372,4.854,2.754,4.799,5.545l.002,19.476c.047,2.785-1.996,5.158-4.759,5.525-.239.025-.434.035-.629.035h-7.086v7.833c.002.694-.288,1.372-.796,1.854-.477.454-1.099.702-1.757.702Zm-.447-2.554v.003-.003Zm.768-.309h0s0,0,0,0ZM23.427,21.726c-1.5,0-2.72,1.22-2.72,2.72v19.172c0,1.5,1.22,2.72,2.72,2.72h18.884c.411,0,.804.168,1.087.466l8.803,9.252v-8.219c0-.829.672-1.5,1.5-1.5h8.586c.094,0,.187-.004.279-.014,1.208-.161,2.134-1.239,2.108-2.502v-.03l-.002-19.52c.025-1.292-.9-2.37-2.153-2.537-.051-.005-.143-.009-.234-.009H23.427Z\"\n            />\n        </g>\n        <g>\n            <path\n                fill={primaryColor}\n                d=\"m113.144,130.318c-.495,0-.985-.133-1.416-.393l-29.222-17.577c-.928-.558-1.431-1.573-1.313-2.649.116-1.076.826-1.96,1.853-2.306l47.397-15.967c.565-.192,1.199-.024,1.599.425.4.449.493,1.094.236,1.638l-16.653,35.257c-.331.7-.945,1.23-1.687,1.455-.26.078-.527.117-.794.117Zm-.231-2.854h0s0,0,0,0Zm-28.389-17.402l28.508,17.148,15.027-31.814-43.535,14.666Z\"\n            />\n            <path\n                fill={primaryColor}\n                d=\"m96.089,131.275c-.3,0-.604-.054-.9-.164-1.004-.376-1.653-1.311-1.653-2.383v-10.594c0-.488.237-.945.636-1.227l35.886-25.286c.677-.476,1.612-.314,2.091.362.477.678.314,1.613-.362,2.091l-35.25,24.838v8.595l2.996-3.445c.543-.625,1.491-.692,2.116-.147.625.544.691,1.491.147,2.116l-3.797,4.366c-.495.57-1.19.878-1.909.878Z\"\n            />\n        </g>\n    </svg>\n);\n\nconst ReviewLinkIconSize = {\n    width: 120,\n    height: 120,\n};\n\nconst EmptyReviewLink = ({\n    height = ReviewLinkIconSize.height,\n    width = ReviewLinkIconSize.width,\n    className = '',\n    primaryColor = '#b1b1b1',\n}) => (\n    <svg\n        className={classNames('reviewlink-emptyView', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={width}\n        height={height}\n        viewBox={`0 0 ${height} ${width}`}\n        style={{ background: 'transparent', fill: 'none' }}\n    >\n        <path\n            fill=\"none\"\n            d=\"M61.6527 44.3945C69.1162 51.858 69.1162 63.9586 61.6527 71.4221L34.6252 98.4497C27.1617 105.913 15.0611 105.913 7.59762 98.4497C0.134169 90.9862 0.134138 78.8855 7.59759 71.4221L19.9095 59.1102\"\n            stroke={primaryColor}\n            strokeWidth=\"3\"\n            strokeLinecap=\"round\"\n            strokeLinejoin=\"round\"\n        />\n        <path\n            fill=\"none\"\n            d=\"M42.3476 61.2968C34.8841 53.8333 34.8841 41.7327 42.3476 34.2692L69.3752 7.24163C76.8386 -0.221819 88.9393 -0.221819 96.4027 7.24163C103.866 14.7051 103.866 26.8058 96.4027 34.2692L84.0908 46.5811\"\n            stroke={primaryColor}\n            strokeWidth=\"3\"\n            strokeLinecap=\"round\"\n            strokeLinejoin=\"round\"\n        />\n    </svg>\n);\n\nexport default EmptyReviewLinks;\nexport { EmptyReviewLink };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport type { IWrappedComponent } from 'mobx-react';\nimport { inject, observer } from 'mobx-react';\nimport { injectIntl } from 'react-intl';\nimport { HostConfigContext } from '@csc/common';\nimport type { IEmptyProps } from '@csc/collection-view';\nimport type { ICDOTabPassthroughProps } from './CDOTab';\nimport CDOTab from './CDOTab';\nimport { EmptyReviewLink } from './svgs/EmptyReviewLinks';\nimport NoConnection from './svgs/NoConnection';\nimport { createReviewLinksUrl } from '../utils/urls';\nimport { getExistingCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport Header from './Header';\nimport TypeDropdownFilter from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/TypeDropdownFilter';\nimport type { FilterOptionViewModel } from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\nimport { getTypeViewModel } from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\nimport { computed } from 'mobx';\nimport { getActionsForReviewLinks } from '../utils/action-menu-utils';\nimport { mimeTypeFilter } from '@csc/adobe-assets-view/dist/src/utils/filtering-utils/filtering-utils';\nimport { AAVComponentId, Metrics } from '@csc/adobe-assets-view/dist/src/utils/ingest';\nimport { getAssetList } from '@csc/sam-utils';\nimport { AssetBrowser } from '@ccx-public/component-types';\n\ninterface IReviewLinksProps {}\n\nconst INGEST_SUBCATEGORY = 'Review Links';\n\n@inject('callbacks', 'cdoStore', 'toastStore')\n@observer\nclass ReviewLinks extends CDOTab<IReviewLinksProps> {\n    static contextType = HostConfigContext;\n\n    get tabConfig() {\n        return {\n            tabName: 'ReviewLinks',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            routeName: AssetBrowser.ContentViewType.ReviewLinks,\n            requiresManualRefresh: true,\n            hideNextPageLoadingIndicator: true,\n        };\n    }\n\n    async setSamList(): Promise<void> {\n        await this.globalStore.waitForSAMInit();\n        const hostAssetContext = getExistingCDCGlobalStore()?.hostAssetContext;\n        if (!hostAssetContext) {\n            return;\n        }\n        const samList = getAssetList({\n            context: hostAssetContext,\n            source: hostAssetContext.publishedSource,\n            sortBy: this.viewOptions.sortBy === 'modifiedDate' ? 'modified' : 'name',\n            sortDirection: this.viewOptions.sortDir === 'desc' ? 'descending' : 'ascending',\n            loadAll: this.tabConfig.hideNextPageLoadingIndicator,\n        });\n\n        if (samList) {\n            this.setState({ samList });\n        }\n    }\n\n    @computed get actions() {\n        return getActionsForReviewLinks({\n            baseUrls: this.baseUrls,\n            callbacks: this.props.callbacks,\n            cdoStore: this.cdoStore,\n            context: this.context,\n            getShareSheetConfig: this.getShareSheetConfig,\n            globalStore: this.globalStore,\n            isShareActionVisible: this.isShareActionVisible,\n        });\n    }\n\n    getCommonEmptyViewProps(): IEmptyProps {\n        const { intl } = this.props;\n        const commonEmptyViewProps = {\n            helpLink: createReviewLinksUrl(intl.locale),\n            helpText: 'empty.help_text.review_links',\n            automationSuffix: 'REVIEW_LINKS',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n        };\n\n        return commonEmptyViewProps;\n    }\n\n    getOfflineEmptyViewProps(): IEmptyProps {\n        const { intl, callbacks } = this.props;\n        const { onViewOfflineFiles } = callbacks ?? {};\n\n        const offlineEmptyViewProps = {\n            ...this.getCommonEmptyViewProps(),\n            image: <NoConnection />,\n            subtitleId: 'empty.subtext.review_links_offline',\n            titleId: 'empty.title.review_links_offline',\n            buttons: onViewOfflineFiles\n                ? [\n                      {\n                          label: intl.formatMessage({ id: 'empty.button.offline.label' }),\n                          callback: onViewOfflineFiles,\n                      },\n                  ]\n                : [],\n        };\n\n        return offlineEmptyViewProps;\n    }\n\n    getFilterEmptyView(): IEmptyProps {\n        const defaultOptions = super.getFilterEmptyView();\n        return {\n            ...this.getCommonEmptyViewProps(),\n            ...defaultOptions,\n            image: <EmptyReviewLink />,\n            titleId: 'empty.title.review_links.filter',\n            metrics: Metrics[AAVComponentId.CDO],\n            renderEventMetricSubtype: 'empty',\n        };\n    }\n\n    getNonErrorEmptyViewProps = (): IEmptyProps => {\n        const onlineEmptyViewProps = {\n            ...this.getCommonEmptyViewProps(),\n            image: <EmptyReviewLink />,\n            subtitleId: 'empty.subtext.review_links',\n            titleId: 'empty.title.review_links',\n            metrics: Metrics[AAVComponentId.CDO],\n            renderEventMetricSubtype: 'empty',\n        };\n\n        return onlineEmptyViewProps;\n    };\n\n    protected get filterOptions() {\n        const { intl } = this.globalStore;\n\n        const options = [\n            AssetBrowser.FileFilterTypeValues.AllFiles,\n            AssetBrowser.FileFilterTypeValues.Photoshop,\n            AssetBrowser.FileFilterTypeValues.Illustrator,\n            AssetBrowser.FileFilterTypeValues.InDesign,\n            AssetBrowser.FileFilterTypeValues.XD,\n            AssetBrowser.FileFilterTypeValues.Aero,\n        ].map(\n            (mimetype) =>\n                ({\n                    // all review links are PDFs, so the type filtering needs to apply\n                    // to the source mimetype instead of the elements' direct mimetypes\n                    ...getTypeViewModel(intl, mimetype, false),\n                    filter: (asset) => mimeTypeFilter(asset.reviewLinkSourceType, mimetype),\n                }) satisfies FilterOptionViewModel,\n        );\n\n        return options as FilterOptionViewModel[];\n    }\n\n    renderHeader() {\n        // always type dropdown filter\n        return (\n            <Header\n                isOnline={this.state.isOnline}\n                rootTitle={this.globalStore.intl.formatMessage({\n                    id: `tab.${this.tabConfig.tabName}`,\n                })}\n                filterComponent={\n                    <TypeDropdownFilter value={this.filterValue} options={this.filterOptions} />\n                }\n            />\n        );\n    }\n}\n\ntype IReviewLinksPropsExternal = IReviewLinksProps & ICDOTabPassthroughProps;\n\nexport default injectIntl(ReviewLinks);\nconst ReviewLinksForTests = (\n    ReviewLinks as typeof ReviewLinks & IWrappedComponent<React.ComponentProps<typeof ReviewLinks>>\n).wrappedComponent;\nexport { type IReviewLinksPropsExternal as IReviewLinksProps, ReviewLinksForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_SIZE = {\n    width: 120,\n    height: 120,\n};\nconst EmptyRecents = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n}) => (\n    <svg\n        className={classNames('cdo-EmptyRecents', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={width}\n        height={height}\n        viewBox=\"0 0 90 90\"\n    >\n        <path\n            fillRule=\"evenodd\"\n            d=\"M21.989 10C17.5701 10 13.999 13.5898 13.999 18V65.99C13.999 70.4002 17.5701 73.99 21.989 73.99H45.999C47.1036 73.99 47.999 73.0946 47.999 71.99C47.999 70.8854 47.1036 69.99 45.999 69.99H21.989C19.7879 69.99 17.999 68.1998 17.999 65.99V18C17.999 15.7902 19.7879 14 21.989 14H40.9992C40.9991 14.01 40.999 14.02 40.999 14.03V31.01C40.999 34.488 44.0362 36.99 47.369 36.99H64.999V51.49C64.999 52.5946 65.8945 53.49 66.999 53.49C68.1036 53.49 68.999 52.5946 68.999 51.49V36.74C68.999 34.5524 68.1047 32.4712 66.5323 30.9655L46.9671 12.2201L46.9646 12.2178C45.4753 10.7833 43.486 10 41.439 10H21.989ZM62.8634 32.99L44.999 15.8741V31.01C44.999 31.932 45.8818 32.99 47.369 32.99H62.8634Z\"\n            fill=\"var(--spectrum-global-color-gray-800, #292929)\"\n        />\n        <path\n            fillRule=\"evenodd\"\n            d=\"M81.4902 71.74C81.4902 79.8862 74.8864 86.49 66.7402 86.49C58.594 86.49 51.9902 79.8862 51.9902 71.74C51.9902 63.5938 58.594 56.99 66.7402 56.99C74.8864 56.99 81.4902 63.5938 81.4902 71.74ZM66.9883 62.9898C68.0928 62.9898 68.9883 63.8852 68.9883 64.9898V69.9898H73.9887C75.0932 69.9898 75.9887 70.8852 75.9887 71.9898C75.9887 73.0944 75.0932 73.9898 73.9887 73.9898H68.9883V78.9898C68.9883 80.0944 68.0928 80.9898 66.9883 80.9898C65.8837 80.9898 64.9883 80.0944 64.9883 78.9898V73.9898H59.9887C58.8841 73.9898 57.9887 73.0944 57.9887 71.9898C57.9887 70.8852 58.8841 69.9898 59.9887 69.9898H64.9883V64.9898C64.9883 63.8852 65.8837 62.9898 66.9883 62.9898Z\"\n            fill=\"var(--spectrum-global-color-gray-800, #292929)\"\n        />\n    </svg>\n);\n\nexport default EmptyRecents;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport { Action } from '@csc/collection-view';\nimport { NavigationEvent } from '@csc/common';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport type { SAM } from '@ccx-public/component-types';\nimport type { AAVActionArgs } from '@csc/adobe-assets-view';\nimport { AssetBrowser } from '@ccx-public/component-types';\n\ninterface IViewAllFilesActionArgs extends AAVActionArgs {\n    dispatchEvent: HostConfig['dispatchEvent'];\n}\n\nclass ViewAllFilesAction extends Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    constructor({ dispatchEvent, intl }: IViewAllFilesActionArgs) {\n        super({\n            value: 'ViewAllFiles',\n            label: intl.formatMessage({ id: 'action.viewAllFiles' }),\n            // Pass empty fragment to hide icon since HeaderActionButton defaults to \"+\" icon\n            icon: <></>,\n            isFolderAction: true,\n            isVisible: () => true,\n            // temporary workaround to trigger \"execute\" when the header action button is clicked\n            beforeExecute: async () => [new Array(1)],\n            execute: async () =>\n                dispatchEvent(\n                    new NavigationEvent({\n                        name: AssetBrowser.ContentViewType.CloudDocuments,\n                    }),\n                ),\n            buttonQuiet: false,\n            buttonVariant: 'secondary',\n        });\n    }\n}\n\nexport type { IViewAllFilesActionArgs };\nexport default ViewAllFilesAction;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport Add from '@ccx-public/spectrum-wrapper/dist/Icon/Add';\nimport React from 'react';\nimport type { IWrappedComponent } from 'mobx-react';\nimport { inject, observer } from 'mobx-react';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport { getLocation } from '@csc/adobe-assets-view/dist/src/utils/view-item-utils';\nimport { HostConfigContext } from '@csc/common';\nimport type {\n    Action,\n    IAnalyticsData,\n    ICDOViewProps,\n    IEmptyProps,\n    ISelectionManager,\n    IViewItemProps,\n    ListViewColumn,\n} from '@csc/collection-view';\nimport {\n    ClickSelectType,\n    Column as CDOColumn,\n    ItemViewEventType,\n    SingleSelectionManager,\n    UXSortBy,\n    Workflow,\n} from '@csc/collection-view';\nimport type { ICDOTabProps } from './CDOTab';\nimport CDOTab from './CDOTab';\nimport { injectIntl } from 'react-intl';\nimport { getExistingCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport type { SAM } from '@ccx-public/component-types';\nimport { computed } from 'mobx';\nimport EmptyRecents from './svgs/EmptyRecents';\nimport {\n    getActionsForCloudDocuments,\n    getActionsForLibraries,\n    getActionsForProjects,\n    getActionsForReviewLinks,\n    getActionsForSharedWithYou,\n} from '../utils/action-menu-utils';\nimport Header from './Header';\nimport {\n    createShowLocationAction,\n    navigateToAssetLocation,\n} from '@csc/adobe-assets-view/dist/src/actions';\nimport { DEFAULT_PAGE_SIZE, getAssetList, getSAMFilter } from '@csc/sam-utils';\nimport ViewAllFilesAction from '../utils/actions/ViewAllFilesAction';\nimport type { IAdobeAssetsViewProps } from '@csc/adobe-assets-view/dist/src/components/AdobeAssetsView/AdobeAssetsView';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport type HostConfig from '@csc/common/@types/HostConfig';\n\nconst INGEST_SUBCATEGORY = 'Recents';\n\nexport interface IRecentProps {\n    maxRecents?: number;\n}\n\n@inject('callbacks', 'cdoStore', 'toastStore')\n@observer\nclass Recents extends CDOTab<IRecentProps> {\n    static contextType = HostConfigContext;\n\n    constructor(props: IRecentProps & Omit<ICDOTabProps, 'sortBy' | 'sortDirection'>) {\n        super(props);\n    }\n\n    override get selectionManager(): ISelectionManager | undefined {\n        const { selectionManager } = this.props;\n        if (selectionManager) {\n            return selectionManager;\n        }\n        // default selection manager for Recents\n        return new SingleSelectionManager({\n            selectionUXConfig: {\n                alwaysShowEllipsis: false,\n                clickSelectionMode: ClickSelectType.None,\n                showCheckbox: false,\n                showEllipsisOnHover: true,\n            },\n        });\n    }\n\n    override get viewOptions() {\n        const { sortDirection, viewMode } = this.props;\n\n        return {\n            sortBy: UXSortBy.none,\n            sortDir: sortDirection ?? 'desc',\n            viewMode: viewMode ?? 'grid',\n        };\n    }\n\n    get tabConfig() {\n        return {\n            tabName: 'Recents',\n            routeName: AssetBrowser.ContentViewType.Recents,\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            requiresManualRefresh: true,\n            hideNextPageLoadingIndicator: this.props.maxRecents ? false : true,\n        };\n    }\n\n    get overrideListColumns(): ICDOViewProps['overrideListColumns'] {\n        return (columns) => {\n            const updatedColumns = columns.map((column) => {\n                if (column === CDOColumn.Title) {\n                    return {\n                        predefinedColumn: CDOColumn.Title,\n                        isSortDisabled: true,\n                    } as ListViewColumn;\n                }\n\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- TODO: Refactor types to align enum values\n                if (typeof column === 'object' && column.id === UXSortBy.modifiedDate) {\n                    return { ...column, isSortDisabled: true };\n                }\n\n                return column;\n            });\n\n            return updatedColumns;\n        };\n    }\n\n    protected get aavProps(): Partial<IAdobeAssetsViewProps> {\n        return {\n            maxAssets: this.props.maxRecents,\n            showLocation: true,\n            onLocationClick: (element) =>\n                navigateToAssetLocation(element, (this.context as HostConfig).dispatchEvent),\n        };\n    }\n\n    @computed get actions() {\n        const { intl } = this.globalStore;\n        const { dispatchEvent } = this.context;\n\n        return [new ViewAllFilesAction({ dispatchEvent, intl })];\n    }\n\n    // Because the Recents tab can show items from other tabs,\n    // we will need to individually define the ActionMenu for each item\n    // to match the ActionMenu for the tab they would normally appear in.\n    getPropsForItem = (item: BackedCollectionItem<SAM.AdobeAsset>): Partial<IViewItemProps> => {\n        const { baseUrls, cdoStore, context, getShareSheetConfig, isShareActionVisible } = this;\n        const { callbacks } = this.props;\n        const { intl } = this.globalStore;\n        const { dispatchEvent } = context;\n\n        let collectionViewItemOverrideProps: {\n            actionMenuItems: Action<BackedCollectionItem<SAM.AdobeAsset>>[];\n        } = {\n            actionMenuItems: [],\n        };\n\n        switch (getLocation(item)) {\n            case AssetBrowser.ContentViewType.SharedWithYou:\n                collectionViewItemOverrideProps = {\n                    actionMenuItems: getActionsForSharedWithYou({\n                        baseUrls,\n                        callbacks,\n                        cdoStore,\n                        context,\n                        getShareSheetConfig,\n                        globalStore: this.globalStore,\n                        isShareActionVisible,\n                    }),\n                } satisfies { actionMenuItems: Action<BackedCollectionItem<SAM.AdobeAsset>>[] };\n                break;\n            case AssetBrowser.ContentViewType.Project:\n                collectionViewItemOverrideProps = {\n                    actionMenuItems: getActionsForProjects({\n                        baseUrls,\n                        callbacks,\n                        context,\n                        globalStore: this.globalStore,\n                    }),\n                };\n                break;\n            case AssetBrowser.ContentViewType.Libraries:\n                collectionViewItemOverrideProps = {\n                    actionMenuItems: getActionsForLibraries({\n                        baseUrls,\n                        callbacks,\n                        context,\n                        globalStore: this.globalStore,\n                    }),\n                };\n                break;\n            case AssetBrowser.ContentViewType.ReviewLinks:\n                collectionViewItemOverrideProps = {\n                    actionMenuItems: getActionsForReviewLinks({\n                        baseUrls,\n                        callbacks,\n                        cdoStore,\n                        context,\n                        getShareSheetConfig,\n                        globalStore: this.globalStore,\n                        isShareActionVisible,\n                    }),\n                };\n                break;\n            case AssetBrowser.ContentViewType.CloudDocuments:\n                collectionViewItemOverrideProps = {\n                    actionMenuItems: getActionsForCloudDocuments({\n                        baseUrls,\n                        callbacks,\n                        cdoStore,\n                        context,\n                        compatibleTypes: this.compatibleTypes,\n                        getShareSheetConfig,\n                        globalStore: this.globalStore,\n                        isShareActionVisible,\n                    }),\n                };\n                break;\n            default:\n                break;\n        }\n\n        // Insert the Recents-only \"Show location\" Action as the last of the \"group2\" Actions.\n        // Assumes \"group1\" or \"group2\" Actions are present.\n        // (could probably upgrade to `Array.findLastIndex` if we build against ES2022 or higher)\n        let indexForShowLocation = 0;\n        collectionViewItemOverrideProps.actionMenuItems.forEach((action, index) => {\n            if (action.groupName <= 'group2') {\n                indexForShowLocation = index + 1;\n            }\n        });\n        collectionViewItemOverrideProps.actionMenuItems.splice(\n            indexForShowLocation,\n            0,\n            createShowLocationAction({ dispatchEvent, intl }),\n        );\n\n        return collectionViewItemOverrideProps;\n    };\n\n    async setSamList(): Promise<void> {\n        await this.globalStore.waitForSAMInit();\n        const hostAssetContext = getExistingCDCGlobalStore()?.hostAssetContext;\n        const samList = getAssetList({\n            context: hostAssetContext,\n            source: hostAssetContext?.recentAssetsSource,\n            sortBy: 'modified',\n            sortDirection: 'descending',\n            loadAll: this.tabConfig.hideNextPageLoadingIndicator,\n            samFilter: getSAMFilter(hostAssetContext, {\n                filterType: 'AdobeAssetFilter',\n                params: { mediaTypes: this.documentFilter },\n            }),\n            limit: this.props.maxRecents\n                ? Math.min(this.props.maxRecents, DEFAULT_PAGE_SIZE)\n                : DEFAULT_PAGE_SIZE,\n        });\n\n        if (samList) {\n            this.setState({ samList });\n        }\n    }\n\n    getNonErrorEmptyViewProps(): IEmptyProps {\n        const { onNewDocument } = this.props.callbacks ?? {};\n        const { cdoMetrics, intl } = this.globalStore;\n\n        return {\n            image: <EmptyRecents />,\n            titleId: 'empty.title.recents',\n            customButtons: [\n                <Button\n                    key=\"recents-empty-view-button\"\n                    className=\"cdo-button\"\n                    icon={<Add size=\"XS\" />}\n                    label={intl.formatMessage({ id: 'empty.button.recents.label' })}\n                    onClick={() => {\n                        const data: IAnalyticsData = {\n                            event: {\n                                subcategory: INGEST_SUBCATEGORY,\n                                subtype: 'create-new',\n                                type: ItemViewEventType.Click,\n                                workflow: Workflow.Asset,\n                            },\n                        };\n                        cdoMetrics.fireEvent(data);\n                        onNewDocument?.();\n                    }}\n                    treatment=\"outline\"\n                    variant=\"primary\"\n                />,\n            ],\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            metrics: cdoMetrics,\n            renderEventMetricSubtype: 'empty',\n        };\n    }\n\n    renderHeader(): React.JSX.Element {\n        return (\n            <Header\n                isOnline={this.state.isOnline}\n                banner={this.renderBanner()}\n                hideSort\n                isOneLineHeader\n                rootTitle={this.globalStore.intl.formatMessage({\n                    id: `tab.${this.tabConfig.tabName}`,\n                })}\n                subheader={this.renderSubheader()}\n            />\n        );\n    }\n}\n\nexport default injectIntl(Recents);\nconst RecentsForTests = (\n    Recents as typeof Recents & IWrappedComponent<React.ComponentProps<typeof Recents>>\n).wrappedComponent;\nexport { RecentsForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\ninterface EmptyMediaGallerySvgProps {\n    height: number;\n    width: number;\n    className?: string;\n}\n\nconst EmptyMediaGallerySvg: React.FC<EmptyMediaGallerySvgProps> = ({\n    height,\n    width,\n    className = '',\n}) => (\n    <svg\n        className={classNames('mediaGallery-emptyView', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={width}\n        height={height}\n        viewBox=\"0 0 94 74\"\n    >\n        <mask\n            id=\"mask0_7070_31808\"\n            style={{ maskType: 'luminance' }}\n            maskUnits=\"userSpaceOnUse\"\n            x=\"0\"\n            y=\"0\"\n            width=\"94\"\n            height=\"74\"\n        >\n            <path\n                d=\"M84.8858 17.8543C84.0779 17.6712 83.2289 17.8985 82.6198 18.4602L78.517 22.2411C76.696 23.9201 73.7988 22.2475 74.3416 19.83L75.5661 15.3858C75.7492 13.5779 75.522 12.7289 74.9602 12.1198L71.1793 8.01698C69.5003 6.19598 71.173 3.29878 73.5905 3.84158L79.0346 5.06608C79.8425 5.24918 80.6915 5.02198 81.3006 4.46018L85.4034 0.679279C87.2244 -0.999721 90.1217 0.672978 89.5788 3.09048L88.3543 8.53458C88.1712 9.34248 88.3985 10.1915 88.9603 10.8006L92.7411 14.9034C94.4201 16.7244 92.7475 19.6217 90.33 19.0788L84.8858 17.8543Z\"\n                fill=\"white\"\n            />\n            <path\n                d=\"M9.6 17.8999H62.4C67.704 17.8999 72 22.1959 72 27.4999V63.4999C72 68.8039 67.704 73.0999 62.4 73.0999H9.6C4.296 73.0999 0 68.8039 0 63.4999V27.4999C0 22.1959 4.296 17.8999 9.6 17.8999ZM9.006 67.9699H62.994C65.844 67.9699 67.56 64.8199 66.024 62.4259L57.198 48.6799C55.782 46.4719 52.554 46.4719 51.138 48.6799L41.454 63.7639L26.316 40.1839C24.9 37.9759 21.672 37.9759 20.256 40.1839L5.976 62.4259C4.44 64.8199 6.156 67.9699 9.006 67.9699ZM63.3616 36.4228C64.8702 36.7637 65.918 34.9521 64.867 33.8128L62.2002 30.9219C61.8499 30.54 61.7079 30.013 61.8215 29.5049L62.6862 25.6671C63.0271 24.1586 61.2155 23.1108 60.0762 24.1617L57.1853 26.8286C56.8034 27.1789 56.2764 27.3209 55.7683 27.2073L51.9306 26.3425C50.422 26.0017 49.3742 27.8132 50.4251 28.9526L53.092 31.8435C53.4423 32.2253 53.5843 32.7524 53.4707 33.2605L52.6059 37.0982C52.2651 38.6068 54.0766 39.6546 55.216 38.6036L58.1069 35.9368C58.4887 35.5865 59.0158 35.4445 59.5239 35.5581L63.3616 36.4228Z\"\n                fill=\"white\"\n            />\n        </mask>\n        <g mask=\"url(#mask0_7070_31808)\">\n            <mask\n                id=\"mask1_7070_31808\"\n                style={{ maskType: 'luminance' }}\n                maskUnits=\"userSpaceOnUse\"\n                x=\"-9\"\n                y=\"-13\"\n                width=\"103\"\n                height=\"97\"\n            >\n                <path\n                    d=\"M90.6891 -12.5H-5.68912C-7.24153 -12.5 -8.5 -11.2415 -8.5 -9.68912V80.842C-8.5 82.3944 -7.24153 83.6529 -5.68912 83.6529H90.6891C92.2415 83.6529 93.5 82.3944 93.5 80.842V-9.68912C93.5 -11.2415 92.2415 -12.5 90.6891 -12.5Z\"\n                    fill=\"white\"\n                />\n            </mask>\n            <g mask=\"url(#mask1_7070_31808)\">\n                <path\n                    d=\"M90.6891 -12.5H-5.68912C-7.24153 -12.5 -8.5 -11.2415 -8.5 -9.68912V80.842C-8.5 82.3944 -7.24153 83.6529 -5.68912 83.6529H90.6891C92.2415 83.6529 93.5 82.3944 93.5 80.842V-9.68912C93.5 -11.2415 92.2415 -12.5 90.6891 -12.5Z\"\n                    fill=\"#FFECCF\"\n                />\n                <path d=\"M93.5 -12.5H-8.5V83.6529H93.5V-12.5Z\" fill=\"#FFECCF\" />\n                <path\n                    d=\"M49.2354 33.0614C73.7434 33.0291 93.5832 14.2742 93.549 -8.82886C93.5147 -31.9319 73.6193 -50.6344 49.1114 -50.6022C24.6035 -50.5699 4.7636 -31.815 4.79785 -8.71195C4.8321 14.3911 24.7275 33.0936 49.2354 33.0614Z\"\n                    fill=\"url(#paint0_radial_7070_31808)\"\n                />\n                <path\n                    d=\"M30.4314 -29.4846C22.5979 -34.0541 12.6729 -34.0821 4.81024 -29.5568L-73.8301 15.706C-81.532 20.139 -81.5448 30.6025 -73.8535 35.0523L4.2673 80.251C12.1181 84.7925 22.0432 84.7871 29.8873 80.2348L107.847 34.9938C115.498 30.5536 115.512 20.1485 107.87 15.6915L30.4314 -29.4846Z\"\n                    fill=\"url(#paint1_linear_7070_31808)\"\n                />\n                <path\n                    d=\"M6.19954 33.1515C7.94291 -2.74523 40.2258 -30.513 78.3054 -28.8696C116.385 -27.2261 145.841 3.20617 144.098 39.1029C142.355 74.9996 110.072 102.767 71.9921 101.124C33.9125 99.4802 4.45617 69.0482 6.19954 33.1515Z\"\n                    fill=\"url(#paint2_linear_7070_31808)\"\n                />\n                <path\n                    d=\"M-49.8247 56.8202C-34.688 50.7329 -18.3633 50.9939 -4.21989 56.3183C24.0812 66.9991 40.5487 60.3955 51.9704 33.7778C57.6596 20.421 68.7671 9.10917 83.9208 3.01507C114.218 -9.15034 149.196 4.04997 162.083 32.5264C174.97 61.0027 160.864 93.9232 130.574 106.104C115.386 112.212 99.0299 111.926 84.8651 106.554C56.6098 95.9302 40.1737 102.558 28.7665 129.208C23.0628 142.533 11.9578 153.806 -3.17881 159.893C-33.4523 172.068 -68.4295 158.867 -81.3093 130.407C-94.1891 101.947 -80.0982 68.9947 -49.8247 56.8202Z\"\n                    fill=\"url(#paint3_linear_7070_31808)\"\n                />\n                <path\n                    d=\"M87.6168 46.7032C112.125 46.6709 131.965 27.916 131.93 4.81299C131.896 -18.2901 112.001 -36.9926 87.4927 -36.9603C62.9848 -36.928 43.145 -18.1731 43.1792 4.9299C43.2134 28.0329 63.1088 46.7355 87.6168 46.7032Z\"\n                    fill=\"url(#paint4_radial_7070_31808)\"\n                />\n            </g>\n        </g>\n        <defs>\n            <radialGradient\n                id=\"paint0_radial_7070_31808\"\n                cx=\"0\"\n                cy=\"0\"\n                r=\"1\"\n                gradientUnits=\"userSpaceOnUse\"\n                gradientTransform=\"translate(49.1734 -8.7704) rotate(89.9151) scale(41.8318 44.3756)\"\n            >\n                <stop offset=\"0.166667\" stopColor=\"#FF709F\" />\n                <stop offset=\"1\" stopColor=\"#FF709F\" stopOpacity=\"0\" />\n            </radialGradient>\n            <linearGradient\n                id=\"paint1_linear_7070_31808\"\n                x1=\"-34.1336\"\n                y1=\"73.4266\"\n                x2=\"126.268\"\n                y2=\"-30.0951\"\n                gradientUnits=\"userSpaceOnUse\"\n            >\n                <stop offset=\"0.0598452\" stopColor=\"#8480FE\" />\n                <stop offset=\"0.599632\" stopColor=\"#8480FE\" stopOpacity=\"0\" />\n            </linearGradient>\n            <linearGradient\n                id=\"paint2_linear_7070_31808\"\n                x1=\"98.9468\"\n                y1=\"5.21138\"\n                x2=\"32.2847\"\n                y2=\"81.2505\"\n                gradientUnits=\"userSpaceOnUse\"\n            >\n                <stop stopColor=\"#EB1000\" />\n                <stop offset=\"1\" stopColor=\"#EB1000\" stopOpacity=\"0\" />\n            </linearGradient>\n            <linearGradient\n                id=\"paint3_linear_7070_31808\"\n                x1=\"12.4914\"\n                y1=\"87.2762\"\n                x2=\"134.941\"\n                y2=\"14.51\"\n                gradientUnits=\"userSpaceOnUse\"\n            >\n                <stop stopColor=\"#FC7D00\" stopOpacity=\"0\" />\n                <stop offset=\"0.432292\" stopColor=\"#FC7D00\" />\n                <stop offset=\"0.609375\" stopColor=\"#FC7D00\" />\n                <stop offset=\"1\" stopColor=\"#FC7D00\" stopOpacity=\"0\" />\n            </linearGradient>\n            <radialGradient\n                id=\"paint4_radial_7070_31808\"\n                cx=\"0\"\n                cy=\"0\"\n                r=\"1\"\n                gradientUnits=\"userSpaceOnUse\"\n                gradientTransform=\"translate(87.5548 4.87144) rotate(89.9151) scale(41.8318 44.3756)\"\n            >\n                <stop offset=\"0.166667\" stopColor=\"#EB1000\" />\n                <stop offset=\"1\" stopColor=\"#EB1000\" stopOpacity=\"0\" />\n            </radialGradient>\n        </defs>\n    </svg>\n);\n\nexport default EmptyMediaGallerySvg;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport EmptyMediaGallerySvg from './EmptyMediaGallerySvg';\n\nconst DEFAULT_SIZE = {\n    width: 120,\n    height: 100,\n};\n\nconst EmptyFavorites = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n}) => <EmptyMediaGallerySvg height={height} width={width} className={className} />;\n\nexport default EmptyFavorites;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport type { IWrappedComponent } from 'mobx-react';\nimport { inject, observer } from 'mobx-react';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { HostConfigContext } from '@csc/common';\nimport type { IEmptyProps, IFilter } from '@csc/collection-view';\nimport { UXSortBy } from '@csc/collection-view';\nimport type { ICDOTabProps, TabConfig } from './CDOTab';\nimport CDOTab from './CDOTab';\nimport { injectIntl } from 'react-intl';\nimport { computed } from 'mobx';\nimport { getActionsForFavoritesTab } from '../utils/action-menu-utils';\n\nimport Header from './Header';\nimport EmptyFavorites from './svgs/EmptyFavorites';\nimport TypeDropdownFilter from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/TypeDropdownFilter';\nimport { getTypeViewModel } from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\nimport { constructIFilter } from '@csc/adobe-assets-view/dist/src/utils/filtering-utils/filtering-utils';\nimport { getAssetList, getSAMFilter } from '@csc/sam-utils';\nimport { getExistingCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport { ALL_MIMETYPES } from '@csc/adobe-assets-view/dist/src/utils/filtering-utils/filtering-type-enums';\n\nconst INGEST_SUBCATEGORY = 'Favorites';\n\nexport interface IFavoritesProps {}\n\n@inject('callbacks', 'cdoStore', 'toastStore')\n@observer\nclass Favorites extends CDOTab<IFavoritesProps> {\n    private prevErrorViewProps: IEmptyProps | undefined = undefined;\n    private showDefaultErrorView = true;\n\n    static contextType = HostConfigContext;\n\n    constructor(props: IFavoritesProps & ICDOTabProps) {\n        super(props);\n    }\n\n    get tabConfig(): TabConfig {\n        return {\n            tabName: INGEST_SUBCATEGORY,\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            routeName: AssetBrowser.ContentViewType.Favorites,\n            hideNextPageLoadingIndicator: true,\n            documentFilter: ALL_MIMETYPES[AssetBrowser.FireflyGenerationTypeValues.GenerationAll],\n            refreshOnWindowFocus: true,\n        };\n    }\n\n    override get viewOptions() {\n        const { sortDirection, sortBy, viewMode } = this.props;\n\n        return {\n            sortBy: sortBy ?? UXSortBy.createDate,\n            sortDir: sortDirection ?? 'desc',\n            viewMode: viewMode ?? 'grid',\n            filter: this.filterValue,\n        };\n    }\n\n    @computed get actions() {\n        return getActionsForFavoritesTab({\n            baseUrls: this.baseUrls,\n            callbacks: this.props.callbacks,\n            cdoStore: this.cdoStore,\n            context: this.context,\n            globalStore: this.globalStore,\n        });\n    }\n\n    async setSamList(): Promise<void> {\n        await this.globalStore.waitForSAMInit();\n        const hostAssetContext = getExistingCDCGlobalStore()?.hostAssetContext;\n        const samList = getAssetList({\n            context: hostAssetContext,\n            loadAll: this.tabConfig.hideNextPageLoadingIndicator,\n            source: hostAssetContext?.favoriteAssetsSource,\n            sortBy: 'created',\n            sortDirection: this.viewOptions.sortDir === 'desc' ? 'descending' : 'ascending',\n            samFilter: getSAMFilter(hostAssetContext, {\n                filterType: 'AdobeAssetFilter',\n                params: { mediaTypes: this.documentFilter },\n            }),\n        });\n\n        if (samList) {\n            this.setState({ samList });\n        }\n    }\n\n    getNonErrorEmptyViewProps(): IEmptyProps {\n        return {\n            image: <EmptyFavorites />,\n            titleId: 'empty.title.favorites',\n            subtitleId: 'empty.subtext.favorites',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            metrics: this.cdoMetrics,\n            renderEventMetricSubtype: 'empty',\n            ...(this.props.emptyViewPropsOverrides?.empty ?? {}),\n        };\n    }\n\n    getErrorViewProps = (): IEmptyProps | undefined => {\n        const errorViewProps = super.getErrorViewProps();\n\n        if (errorViewProps !== this.prevErrorViewProps) {\n            const viewStateEvent = new CustomEvent('viewstate', {\n                bubbles: true,\n                cancelable: true,\n                composed: true,\n                detail: {\n                    type: 'error',\n                    view: this.tabConfig.routeName,\n                },\n            });\n\n            this.context.dispatchEvent(viewStateEvent);\n            this.prevErrorViewProps = errorViewProps;\n\n            this.showDefaultErrorView = !viewStateEvent.defaultPrevented;\n        }\n\n        return this.showDefaultErrorView ? errorViewProps : undefined;\n    };\n\n    protected get filterOptions() {\n        const isAudioEnabled = this.globalStore.isFeatureFlagEnabled('generationHistoryAudio');\n        const isVectorEnabled = this.globalStore.isFeatureFlagEnabled('generationHistoryVectors');\n\n        const filterOptionsOrder = [\n            AssetBrowser.FireflyGenerationTypeValues.GenerationAll,\n            AssetBrowser.FireflyGenerationTypeValues.GenerationImage,\n            AssetBrowser.FireflyGenerationTypeValues.GenerationVideo,\n            isAudioEnabled && AssetBrowser.FireflyGenerationTypeValues.GenerationAudio,\n            isVectorEnabled && AssetBrowser.FireflyGenerationTypeValues.GenerationVector,\n        ].filter(Boolean) as AssetBrowser.FireflyGenerationTypeValues[];\n\n        return filterOptionsOrder.map((mimetype) =>\n            getTypeViewModel(this.globalStore.intl, mimetype),\n        );\n    }\n\n    // For now, we only have Generation History items, so we're just using its filters\n    // The filters need to be overridden to match GenerationAll and not AllFiles enum\n    override get filters(): IFilter[] {\n        if (this.filterValue === AssetBrowser.FireflyGenerationTypeValues.GenerationAll) {\n            return [];\n        }\n\n        const filterEmptyProps = {\n            image: <EmptyFavorites />,\n            titleId: 'empty.filter.title',\n            subtitleId: 'empty.filter.subtitle',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            metrics: this.cdoMetrics,\n            renderEventMetricSubtype: 'empty',\n            ...(this.props.emptyViewPropsOverrides?.['filter-empty'] ?? {}),\n        };\n\n        const filterViewModel = getTypeViewModel(this.globalStore.intl, this.filterValue);\n        const matchedIFilter = constructIFilter({\n            filter: filterViewModel.filter,\n            getFilterEmptyProps: () => filterEmptyProps,\n        });\n\n        return [matchedIFilter];\n    }\n\n    renderFilterComponent() {\n        return <TypeDropdownFilter value={this.filterValue} options={this.filterOptions} />;\n    }\n\n    renderHeader(): React.JSX.Element {\n        return (\n            <Header\n                isOnline={this.state.isOnline}\n                banner={this.renderBanner()}\n                filterComponent={this.renderFilterComponent()}\n                hideViewToggles\n                rootTitle={this.globalStore.intl.formatMessage({\n                    id: `tab.${this.tabConfig.tabName}`,\n                })}\n                sortOptions={[\n                    {\n                        key: UXSortBy.createDate,\n                        label: this.globalStore.intl.formatMessage({\n                            id: 'header.createDate',\n                        }),\n                    },\n                ]}\n                subheader={this.renderSubheader()}\n            />\n        );\n    }\n}\n\nexport default injectIntl(Favorites);\nconst FavoritesForTests = (\n    Favorites as typeof Favorites & IWrappedComponent<React.ComponentProps<typeof Favorites>>\n).wrappedComponent;\nexport { FavoritesForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport EmptyMediaGallerySvg from './EmptyMediaGallerySvg';\n\nconst DEFAULT_SIZE = {\n    width: 120,\n    height: 100,\n};\n\nconst EmptyGenerationHistory = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n}) => <EmptyMediaGallerySvg height={height} width={width} className={className} />;\n\nexport default EmptyGenerationHistory;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport type { IWrappedComponent } from 'mobx-react';\nimport { inject, observer } from 'mobx-react';\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport { HostConfigContext } from '@csc/common';\nimport type { IEmptyProps, IFilter, ISelectionManager } from '@csc/collection-view';\nimport { ClickSelectType, UXSortBy, SingleSelectionManager } from '@csc/collection-view';\nimport type { ICDOTabProps } from './CDOTab';\nimport CDOTab from './CDOTab';\nimport { injectIntl } from 'react-intl';\nimport { computed, reaction } from 'mobx';\nimport { getActionsForGenerationHistory } from '../utils/action-menu-utils';\nimport Header from './Header';\nimport EmptyGenerationHistory from './svgs/EmptyGenerationHistory';\nimport { generationHistoryUtils, getGenerationHistoryList } from '@csc/sam-utils';\nimport TypeDropdownFilter from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/TypeDropdownFilter';\nimport { getTypeViewModel } from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\nimport { constructIFilter } from '@csc/adobe-assets-view/dist/src/utils/filtering-utils/filtering-utils';\nimport type { BackedCollectionItem } from '@csc/adobe-assets-view';\nimport { isFireflyGenerationIncomplete } from '@csc/adobe-assets-view/dist/src/utils/view-item/view-item';\n\nconst INGEST_SUBCATEGORY = 'GenerationHistory';\n\nexport interface IGenerationHistoryProps {\n    isOneLineHeader?: boolean;\n}\n\nconst shouldHideCheckbox = (asset: SAM.AdobeAsset) =>\n    generationHistoryUtils?.getGenerationState(asset) ===\n    SAM.GenerationHistoryAssetState.IN_PROGRESS;\n\n@inject('callbacks', 'cdoStore', 'toastStore')\n@observer\nclass GenerationHistory extends CDOTab<IGenerationHistoryProps> {\n    private prevErrorViewProps: IEmptyProps | undefined = undefined;\n    private showDefaultErrorView = true;\n    private filterReactionDisposer: (() => void) | undefined;\n\n    static contextType = HostConfigContext;\n\n    constructor(props: IGenerationHistoryProps & ICDOTabProps) {\n        super(props);\n        this.cdoStore?.setSelectionBehavior({\n            single: false,\n            hideFolderCheckbox: false,\n            hideFileCheckbox: false,\n            shouldHideCheckbox: (element) => {\n                if (this.isImportMode) {\n                    return true;\n                }\n\n                return shouldHideCheckbox(\n                    (element as BackedCollectionItem<SAM.AdobeAsset>).backingItem,\n                );\n            },\n        });\n\n        this.setupFilterReaction();\n    }\n\n    setupFilterReaction() {\n        this.filterReactionDisposer = reaction(\n            () => this.filterValue,\n            () => {\n                // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n                this.setSamList();\n            },\n        );\n    }\n\n    componentWillUnmount() {\n        this.filterReactionDisposer?.();\n        super.componentWillUnmount();\n    }\n\n    get tabConfig() {\n        return {\n            tabName: 'GenerationHistory',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            routeName: AssetBrowser.ContentViewType.GenerationHistory,\n            hideNextPageLoadingIndicator: false,\n            refreshOnWindowFocus: true,\n        };\n    }\n\n    override get selectionManager(): ISelectionManager | undefined {\n        if (this.isImportMode) {\n            return new SingleSelectionManager({\n                selectionUXConfig: {\n                    alwaysShowEllipsis: false,\n                    clickSelectionMode: ClickSelectType.None,\n                    showCheckbox: false,\n                    showEllipsisOnHover: false,\n                },\n            });\n        }\n\n        return this.props.selectionManager;\n    }\n\n    override get viewOptions() {\n        const { sortDirection, sortBy, viewMode } = this.props;\n\n        return {\n            sortBy: sortBy ?? UXSortBy.createDate,\n            sortDir: sortDirection ?? 'desc',\n            viewMode: viewMode ?? 'grid',\n            filter: this.filterValue,\n        };\n    }\n\n    get isImportMode() {\n        return this.globalStore.isFeatureFlagEnabled('enableGenHistoryImportMode');\n    }\n\n    @computed get actions() {\n        return getActionsForGenerationHistory({\n            isImportMode: this.isImportMode,\n            baseUrls: this.baseUrls,\n            callbacks: this.props.callbacks,\n            context: this.context,\n            globalStore: this.globalStore,\n            cdoStore: this.cdoStore,\n        });\n    }\n\n    @computed\n    get historyAssetType(): SAM.GenerationHistoryAssetType | undefined {\n        switch (this.filterValue) {\n            case AssetBrowser.FileFilterTypeValues.GenerationImage:\n                return SAM.GenerationHistoryAssetType.IMAGE;\n            case AssetBrowser.FileFilterTypeValues.GenerationVideo:\n                return SAM.GenerationHistoryAssetType.VIDEO;\n            default:\n                return undefined;\n        }\n    }\n\n    async setSamList(): Promise<void> {\n        const samContext = await this.globalStore.generationHistoryContext;\n        const samList = getGenerationHistoryList({\n            context: samContext,\n            source: samContext?.generationHistorySource,\n            sortDirection: this.viewOptions.sortDir === 'desc' ? 'descending' : 'ascending',\n            historyAssetType: this.historyAssetType,\n            loadAll: this.tabConfig.hideNextPageLoadingIndicator,\n        });\n\n        if (samList) {\n            this.setState({ samList });\n        }\n    }\n\n    getNonErrorEmptyViewProps(): IEmptyProps {\n        return {\n            image: <EmptyGenerationHistory />,\n            titleId: 'empty.title.generationHistory',\n            subtitleId: 'empty.subtext.generationHistory',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            metrics: this.cdoMetrics,\n            renderEventMetricSubtype: 'empty',\n            ...(this.props.emptyViewPropsOverrides?.empty ?? {}),\n        };\n    }\n\n    getErrorViewProps = (): IEmptyProps | undefined => {\n        const errorViewProps = super.getErrorViewProps();\n\n        if (errorViewProps !== this.prevErrorViewProps) {\n            const viewStateEvent = new CustomEvent('viewstate', {\n                bubbles: true,\n                cancelable: true,\n                composed: true,\n                detail: {\n                    type: 'error',\n                    view: this.tabConfig.routeName,\n                },\n            });\n\n            this.context.dispatchEvent(viewStateEvent);\n            this.prevErrorViewProps = errorViewProps;\n\n            // show default error view if host is not handling the error\n            this.showDefaultErrorView = !viewStateEvent.defaultPrevented;\n        }\n\n        return this.showDefaultErrorView ? errorViewProps : undefined;\n    };\n\n    // To block opening of incomplete generation assets\n    protected onBeforeItemClicked = (item: BackedCollectionItem<SAM.AdobeAsset>): boolean =>\n        this.props.onBeforeItemClicked?.(item) ?? !isFireflyGenerationIncomplete(item.backingItem); // When used in UAP placeEmbed mode onBeforeItemClicked is provided\n\n    protected get filterOptions() {\n        const isAudioEnabled = this.globalStore.isFeatureFlagEnabled('generationHistoryAudio');\n        const isVectorEnabled = this.globalStore.isFeatureFlagEnabled('generationHistoryVectors');\n\n        const filterOptionsOrder = [\n            AssetBrowser.FireflyGenerationTypeValues.GenerationAll,\n            AssetBrowser.FireflyGenerationTypeValues.GenerationImage,\n            AssetBrowser.FireflyGenerationTypeValues.GenerationVideo,\n            isAudioEnabled && AssetBrowser.FireflyGenerationTypeValues.GenerationAudio,\n            isVectorEnabled && AssetBrowser.FireflyGenerationTypeValues.GenerationVector,\n        ].filter(Boolean) as AssetBrowser.FireflyGenerationTypeValues[];\n\n        return filterOptionsOrder.map((mimetype) =>\n            getTypeViewModel(this.globalStore.intl, mimetype),\n        );\n    }\n\n    // Needs to be overriden to match GenerationAll and not AllFiles enum\n    override get filters(): IFilter[] {\n        // import mode only returns FIREFLY_GENERATION_IMAGE assets, so we\n        // render the generic empty state instead of the filter empty state\n        if (\n            this.filterValue === AssetBrowser.FireflyGenerationTypeValues.GenerationAll ||\n            this.isImportMode\n        ) {\n            return [];\n        }\n\n        const filterEmptyProps = {\n            image: <EmptyGenerationHistory />,\n            titleId: 'empty.filter.title',\n            subtitleId: 'empty.filter.subtitle',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            metrics: this.cdoMetrics,\n            renderEventMetricSubtype: 'empty',\n            ...(this.props.emptyViewPropsOverrides?.['filter-empty'] ?? {}),\n        };\n\n        // if the compatible filter option is available, use it\n        // otherwise, use the filter value to find the matching filter option\n        const filterViewModel = this.compatibleFilterOption\n            ? this.compatibleFilterOption\n            : getTypeViewModel(this.globalStore.intl, this.filterValue);\n        const matchedIFilter = constructIFilter({\n            filter: filterViewModel.filter,\n            getFilterEmptyProps: () => filterEmptyProps,\n        });\n\n        return [matchedIFilter];\n    }\n\n    renderFilterComponent() {\n        const { hideFilter } = this.props;\n        if (hideFilter || this.isImportMode) {\n            return <></>;\n        }\n        return <TypeDropdownFilter value={this.filterValue} options={this.filterOptions} />;\n    }\n\n    renderHeader(): React.JSX.Element {\n        let titleId = 'tab.GenerationHistory';\n\n        if (this.isImportMode) {\n            titleId = this.globalStore.isFeatureFlagEnabled('isWebClient')\n                ? 'tab.GenerationHistoryImportWeb'\n                : 'tab.GenerationHistoryImport';\n        }\n\n        return (\n            <Header\n                isOneLineHeader={this.props.isOneLineHeader || this.isImportMode}\n                isOnline={this.state.isOnline}\n                banner={this.renderBanner()}\n                filterComponent={this.renderFilterComponent()}\n                hideViewToggles\n                rootTitle={this.globalStore.intl.formatMessage({\n                    id: titleId,\n                })}\n                hideSort={this.isImportMode}\n                sortOptions={[\n                    {\n                        key: UXSortBy.createDate,\n                        label: this.globalStore.intl.formatMessage({\n                            id: 'header.createDate',\n                        }),\n                    },\n                ]}\n                subheader={this.renderSubheader()}\n            />\n        );\n    }\n}\n\nexport default injectIntl(GenerationHistory);\nconst GenerationHistoryForTests = (\n    GenerationHistory as typeof GenerationHistory &\n        IWrappedComponent<React.ComponentProps<typeof GenerationHistory>>\n).wrappedComponent;\nexport { GenerationHistoryForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport EmptyMediaGallerySvg from './EmptyMediaGallerySvg';\n\nconst DEFAULT_SIZE = {\n    width: 120,\n    height: 100,\n};\n\nconst EmptyFFBoards = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n}) => <EmptyMediaGallerySvg height={height} width={width} className={className} />;\n\nexport default EmptyFFBoards;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ICDOTabProps } from './CDOTab';\nimport CDOTab from './CDOTab';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { getAssetList, getSAMFilter } from '@csc/sam-utils';\nimport { defineMessage, injectIntl } from 'react-intl';\nimport type { IWrappedComponent } from 'mobx-react';\nimport { inject, observer } from 'mobx-react';\nimport Header from './Header';\nimport React from 'react';\nimport type { IEmptyProps, IViewItemProps } from '@csc/collection-view';\nimport type { SAM } from '@ccx-public/component-types';\nimport { getExistingCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport EmptyFFBoards from './svgs/EmptyFFBoards';\nimport IconBoards from '@csc/adobe-assets-view/dist/src/svgs/IconBoards';\nimport TypeDropdownFilter from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/TypeDropdownFilter';\nimport { computed, reaction } from 'mobx';\nimport { getActionsForFFBoards } from '../utils/action-menu-utils';\nimport type { FilterOptionViewModel } from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\nimport {\n    AllBoardsOption,\n    SharedWithYouBoardsOption,\n    YourBoardsOption,\n} from '@csc/adobe-assets-view/dist/src/components/TypeDropdownFilter/utils';\n\nexport interface IFFBoardsProps {}\n\nconst FFBOARDS_MEDIA_TYPE = 'application/vnd.adobe.hz.aura+dcx';\n\nconst INGEST_SUBCATEGORY = 'FFBoards';\n\n@inject('callbacks', 'cdoStore', 'toastStore')\n@observer\nclass FFBoards extends CDOTab<IFFBoardsProps> {\n    private prevErrorViewProps: IEmptyProps | undefined = undefined;\n    private showDefaultErrorView = true;\n    private filterReactionDisposer: (() => void) | undefined;\n\n    constructor(props: ICDOTabProps) {\n        super(props);\n        this.setupFilterReaction();\n    }\n\n    get tabConfig() {\n        return {\n            tabName: 'Boards',\n            ingestSubcategory: 'FFBoards',\n            routeName: AssetBrowser.ContentViewType.FFBoards,\n            documentFilter: [FFBOARDS_MEDIA_TYPE],\n            hideNextPageLoadingIndicator: false,\n            refreshOnWindowFocus: true,\n        };\n    }\n\n    setupFilterReaction() {\n        this.filterReactionDisposer = reaction(\n            () => this.filterValue,\n            () => {\n                // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n                this.setSamList();\n            },\n        );\n    }\n\n    @computed get actions() {\n        const { baseUrls, cdoStore, context, getShareSheetConfig, isShareActionVisible } = this;\n        const { callbacks } = this.props;\n        return [\n            ...getActionsForFFBoards({\n                baseUrls,\n                callbacks,\n                cdoStore,\n                context,\n                getShareSheetConfig,\n                globalStore: this.globalStore,\n                isShareActionVisible,\n            }),\n        ].filter((value) => !!value);\n    }\n\n    async setSamList(): Promise<void> {\n        await this.globalStore.waitForSAMInit();\n        const hostAssetContext = getExistingCDCGlobalStore()?.hostAssetContext;\n        if (!hostAssetContext) {\n            return;\n        }\n\n        const samList = getAssetList({\n            context: hostAssetContext,\n            source: hostAssetContext?.ffBoardsSource as unknown as SAM.GenericAssetSource, // Cast to GenericAssetSource for compatibility, since the FFBoardsFilter is missing props\n            sortDirection: this.viewOptions.sortDir === 'desc' ? 'descending' : 'ascending',\n            sortBy: this.viewOptions.sortBy === 'modifiedDate' ? 'modified' : 'name',\n            loadAll: this.tabConfig.hideNextPageLoadingIndicator,\n            samFilter: getSAMFilter(hostAssetContext, {\n                filterType: 'IsSharedFilter',\n                params: { SWYFilterView: this.filterValue },\n            }),\n        });\n        if (samList) {\n            this.setState({ samList });\n        }\n    }\n\n    getNonErrorEmptyViewProps(): IEmptyProps {\n        return {\n            image: <EmptyFFBoards />,\n            titleId: 'empty.title.ffboards',\n            subtitleId: 'empty.subtext.ffboards',\n            automationSuffix: 'FF_BOARDS',\n            ingestSubcategory: INGEST_SUBCATEGORY,\n            metrics: this.cdoMetrics,\n            renderEventMetricSubtype: 'empty',\n            ...(this.props.emptyViewPropsOverrides?.empty ?? {}),\n        };\n    }\n\n    private handleErrorViewPropsChange(errorViewProps: IEmptyProps): void {\n        const viewStateEvent = new CustomEvent('viewstate', {\n            bubbles: true,\n            cancelable: true,\n            composed: true,\n            detail: {\n                type: 'error',\n                view: this.tabConfig.routeName,\n            },\n        });\n\n        this.context.dispatchEvent(viewStateEvent);\n        this.prevErrorViewProps = errorViewProps;\n        this.showDefaultErrorView = !viewStateEvent.defaultPrevented;\n    }\n\n    getErrorViewProps = (): IEmptyProps | undefined => {\n        const errorViewProps = super.getErrorViewProps();\n\n        if (errorViewProps && errorViewProps !== this.prevErrorViewProps) {\n            this.handleErrorViewPropsChange(errorViewProps);\n        }\n\n        return this.showDefaultErrorView ? errorViewProps : undefined;\n    };\n\n    protected get filterOptions(): FilterOptionViewModel[] {\n        return [\n            AllBoardsOption(this.globalStore?.intl),\n            YourBoardsOption(this.globalStore?.intl),\n            SharedWithYouBoardsOption(this.globalStore?.intl),\n        ];\n    }\n\n    renderFilterComponent(): React.JSX.Element {\n        return <TypeDropdownFilter value={this.filterValue} options={this.filterOptions} />;\n    }\n\n    renderHeader(): React.JSX.Element {\n        return (\n            <Header\n                rootTitle={this.globalStore.intl.formatMessage({\n                    id: 'tab.FFBoards',\n                })}\n                filterComponent={this.renderFilterComponent()}\n                isOnline\n                isOneLineHeader={false}\n                hideViewToggles\n            />\n        );\n    }\n\n    componentWillUnmount() {\n        this.filterReactionDisposer?.();\n        super.componentWillUnmount();\n    }\n\n    protected getPropsForItem = (): Partial<IViewItemProps> => {\n        return {\n            overrideIcon: {\n                icon: <IconBoards />,\n                viewBox: '0 0 20 20',\n                tooltip: defineMessage({\n                    id: 'tab.FFBoards',\n                    defaultMessage: 'Boards',\n                }),\n            },\n        };\n    };\n}\n\nexport default injectIntl(FFBoards);\nconst FFBoardsForTests = (\n    FFBoards as typeof FFBoards & IWrappedComponent<React.ComponentProps<typeof FFBoards>>\n).wrappedComponent;\nexport { FFBoardsForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nconst DEFAULT_ICON_WIDTH = 28;\nconst DEFAULT_ICON_HEIGHT = 22;\n\nconst CloudSyncDefaultIcon = ({ width = DEFAULT_ICON_WIDTH, height = DEFAULT_ICON_HEIGHT }) => {\n    const style = {\n        fill: 'var(--cloudSyncIconBaseColor)',\n    };\n    return (\n        <svg\n            id=\"S_CloudSync_Default_22x28_N_dk\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width={width}\n            height={height}\n            viewBox={`0 0 ${width} ${height}`}\n        >\n            <path\n                style={style}\n                fillRule=\"evenodd\"\n                d=\"M22.149,8.389c-.039,0-.076.005-.115.006a5.792,5.792,0,0,0,.115-1.149,5.118,5.118,0,0,0-5.41-5.327c-.453.014-.471.022-.471.022A5.838,5.838,0,0,0,11.3,6.291a5.472,5.472,0,0,0-1.493-.208,4.452,4.452,0,0,0-4.554,4.324,3.424,3.424,0,0,0,.1,1.122,3.276,3.276,0,0,0-2.912,3.033,2.79,2.79,0,0,0,2.646,2.951s14.542.019,17.066.019a4.572,4.572,0,1,0,0-9.143Z\"\n            />\n        </svg>\n    );\n};\n\nexport default CloudSyncDefaultIcon;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nconst DEFAULT_ICON_WIDTH = 28;\nconst DEFAULT_ICON_HEIGHT = 22;\n\nconst CloudSyncDisconnectedIcon = ({\n    width = DEFAULT_ICON_WIDTH,\n    height = DEFAULT_ICON_HEIGHT,\n}) => {\n    const primaryFillStyle = {\n        fill: 'var(--cloudSyncIconBaseColor)',\n    };\n    const secondaryFillStyle = {\n        fill: 'var(--cloudSyncIconBadgeForegroundColor)',\n    };\n    return (\n        <svg\n            id=\"S_CloudSync_Disconnected_22x28_N_dk\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width={width}\n            height={height}\n            viewBox={`0 0 ${width} ${height}`}\n        >\n            <path\n                style={primaryFillStyle}\n                fillRule=\"evenodd\"\n                d=\"M22.143,7.568c-.162-.012-.325-.018-.49-.018a6.407,6.407,0,0,0-5.327,9.964H5.083a2.79,2.79,0,0,1-2.647-2.95A3.276,3.276,0,0,1,5.348,11.53a3.421,3.421,0,0,1-.095-1.122A4.451,4.451,0,0,1,9.808,6.085a5.516,5.516,0,0,1,1.493.207A5.778,5.778,0,0,1,16.716,1.9a5.193,5.193,0,0,1,5.438,5.388C22.154,7.382,22.15,7.476,22.143,7.568Z\"\n            />\n            <path\n                style={primaryFillStyle}\n                fillRule=\"evenodd\"\n                d=\"M21.631,8.84A5.16,5.16,0,1,1,16.471,14,5.166,5.166,0,0,1,21.631,8.84Z\"\n            />\n            <path\n                style={secondaryFillStyle}\n                fillRule=\"evenodd\"\n                d=\"M21.625,15.1,20,16.716a.25.25,0,0,1-.354,0l-.707-.707a.25.25,0,0,1,0-.353l1.622-1.622-1.622-1.621a.252.252,0,0,1,0-.354l.707-.707a.252.252,0,0,1,.354,0l1.621,1.622,1.622-1.622a.252.252,0,0,1,.354,0l.707.707a.252.252,0,0,1,0,.354l-1.622,1.621,1.622,1.622a.25.25,0,0,1,0,.353l-.707.707a.25.25,0,0,1-.354,0Z\"\n            />\n        </svg>\n    );\n};\n\nexport default CloudSyncDisconnectedIcon;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nconst DEFAULT_ICON_WIDTH = 28;\nconst DEFAULT_ICON_HEIGHT = 22;\n\nconst CloudSyncErrorIcon = ({ width = DEFAULT_ICON_WIDTH, height = DEFAULT_ICON_HEIGHT }) => {\n    const primaryFillStyle = {\n        fill: 'var(--cloudSyncIconBaseColor)',\n    };\n    const secondaryFillStyle = {\n        fill: 'var(--cloudSyncErrorIconBadgeBackgroundColor)',\n    };\n    const tertiaryFillStyle = {\n        fill: 'var(--cloudSyncIconBadgeForegroundColor)',\n    };\n\n    return (\n        <svg\n            id=\"S_CloudSync_Error_22x28_N_dk\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width={width}\n            height={height}\n            viewBox={`0 0 ${width} ${height}`}\n        >\n            <g>\n                <path\n                    style={primaryFillStyle}\n                    fillRule=\"evenodd\"\n                    d=\"M22.143,7.567c-.162-.012-.325-.018-.49-.018a6.407,6.407,0,0,0-5.327,9.964H5.083a2.79,2.79,0,0,1-2.647-2.95,3.276,3.276,0,0,1,2.912-3.034,3.421,3.421,0,0,1-.095-1.122A4.451,4.451,0,0,1,9.808,6.084a5.516,5.516,0,0,1,1.493.207A5.778,5.778,0,0,1,16.716,1.9a5.193,5.193,0,0,1,5.438,5.388C22.154,7.381,22.15,7.475,22.143,7.567Z\"\n                />\n                <path\n                    style={secondaryFillStyle}\n                    d=\"M21.631,8.839A5.16,5.16,0,1,1,16.471,14,5.166,5.166,0,0,1,21.631,8.839Z\"\n                />\n                <path\n                    style={tertiaryFillStyle}\n                    d=\"M20.816,16.9a.882.882,0,1,1,.882.881A.882.882,0,0,1,20.816,16.9Zm1.637-5.321a30.48,30.48,0,0,1-.261,3.4c0,.03-.02.177-.116.177h-.835c-.064,0-.1-.139-.12-.177-.031-.271-.256-2.327-.256-3.4v-.986c0-.038.107-.1.185-.128a1.632,1.632,0,0,1,.587-.062,2.068,2.068,0,0,1,.619.062c.08.03.2.1.2.128Z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nexport default CloudSyncErrorIcon;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nconst DEFAULT_ICON_WIDTH = 28;\nconst DEFAULT_ICON_HEIGHT = 22;\n\nconst CloudSyncInProgressIcon = ({ width = DEFAULT_ICON_WIDTH, height = DEFAULT_ICON_HEIGHT }) => {\n    const primaryFillStyle = {\n        fill: 'var(--cloudSyncIconBaseColor)',\n    };\n    const secondaryFillStyle = {\n        fill: 'var(--cloudSyncInProgressIconArrowsColor)',\n    };\n\n    return (\n        <svg\n            id=\"S_CloudSync_InProgress_22x28_N_dk\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width={width}\n            height={height}\n            viewBox={`0 0 ${width} ${height}`}\n        >\n            <path\n                style={primaryFillStyle}\n                fillRule=\"evenodd\"\n                d=\"M22.143,7.567c-.161-.012-.325-.018-.489-.018a6.407,6.407,0,0,0-5.328,9.964H5.083a2.79,2.79,0,0,1-2.647-2.95A3.275,3.275,0,0,1,5.349,11.53a3.43,3.43,0,0,1-.1-1.123A4.45,4.45,0,0,1,9.808,6.084a5.516,5.516,0,0,1,1.493.207A5.778,5.778,0,0,1,16.716,1.9a5.193,5.193,0,0,1,5.438,5.388C22.154,7.382,22.15,7.475,22.143,7.567Z\"\n            />\n            <path\n                style={secondaryFillStyle}\n                d=\"M26.767,12.58a4.935,4.935,0,0,0-8.613-1.716l-.694-.7a.271.271,0,0,0-.2-.082.278.278,0,0,0-.28.279l0,2.783a.278.278,0,0,0,.278.278h2.778a.279.279,0,0,0,.28-.28.268.268,0,0,0-.083-.2l-.963-.973a3.363,3.363,0,0,1,5.886.8.547.547,0,0,0,.514.344h.694A.424.424,0,0,0,26.767,12.58Zm-9.567,2.8A4.936,4.936,0,0,0,25.813,17.1l.694.7a.278.278,0,0,0,.474-.2s0-2.024,0-2.777a.277.277,0,0,0-.277-.278H23.926a.279.279,0,0,0-.278.28.272.272,0,0,0,.081.194l.967.967a3.363,3.363,0,0,1-5.886-.8.547.547,0,0,0-.514-.344h-.7A.422.422,0,0,0,17.2,15.378Z\"\n            />\n        </svg>\n    );\n};\n\nexport default CloudSyncInProgressIcon;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nconst DEFAULT_ICON_WIDTH = 28;\nconst DEFAULT_ICON_HEIGHT = 22;\n\nconst CloudSyncPausedIcon = ({ width = DEFAULT_ICON_WIDTH, height = DEFAULT_ICON_HEIGHT }) => {\n    const primaryFillStyle = {\n        fill: 'var(--cloudSyncIconBaseColor)',\n    };\n    const secondaryFillStyle = {\n        fill: 'var(--cloudSyncIconBadgeForegroundColor)',\n    };\n\n    return (\n        <svg\n            id=\"S_CloudSync_Paused_22x28_N_dk\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width={width}\n            height={height}\n            viewBox={`0 0 ${width} ${height}`}\n        >\n            <path\n                style={primaryFillStyle}\n                fillRule=\"evenodd\"\n                d=\"M22.143,7.568c-.162-.012-.325-.018-.49-.018a6.407,6.407,0,0,0-5.327,9.964H5.083a2.79,2.79,0,0,1-2.647-2.95A3.276,3.276,0,0,1,5.348,11.53a3.421,3.421,0,0,1-.095-1.122A4.451,4.451,0,0,1,9.808,6.085a5.516,5.516,0,0,1,1.493.207A5.778,5.778,0,0,1,16.716,1.9a5.193,5.193,0,0,1,5.438,5.388C22.154,7.382,22.15,7.476,22.143,7.568Z\"\n            />\n            <path\n                style={primaryFillStyle}\n                fillRule=\"evenodd\"\n                d=\"M21.631,8.84A5.16,5.16,0,1,1,16.471,14,5.166,5.166,0,0,1,21.631,8.84Z\"\n            />\n            <rect style={secondaryFillStyle} x=\"19.46\" y=\"11.503\" width=\"1.4\" height=\"5\" rx=\"0.5\" />\n            <rect style={secondaryFillStyle} x=\"22.46\" y=\"11.503\" width=\"1.4\" height=\"5\" rx=\"0.5\" />\n        </svg>\n    );\n};\n\nexport default CloudSyncPausedIcon;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { computed } from 'mobx';\nimport { observer } from 'mobx-react';\nimport OverlayTrigger from '@react/react-spectrum/OverlayTrigger';\nimport Popover from '@react/react-spectrum/Popover';\nimport Tooltip from '@react/react-spectrum/Tooltip';\n\nimport CloudSyncDefaultIcon from './svgs/CloudSyncDefault';\nimport CloudSyncDisconnectedIcon from './svgs/CloudSyncDisconnected';\nimport CloudSyncErrorIcon from './svgs/CloudSyncError';\nimport CloudSyncInProgressIcon from './svgs/CloudSyncInProgress';\nimport CloudSyncPausedIcon from './svgs/CloudSyncPaused';\n\nimport { DEFAULT_TOOLTIP_DELAY } from '../utils/constants';\nimport type { ICloudSyncStatusPopdownProps } from './CloudSyncStatusPopdown';\nimport CloudSyncStatusPopdown, { CloudSyncType } from './CloudSyncStatusPopdown';\nimport type { Tile } from './Tile';\nimport { CloudIcon } from './Tile';\nimport { getCDCGlobalStore } from '../stores/CDCGlobalStore';\nimport '../styles/CloudSyncStatus.css';\n\nexport type ICloudSyncStatusProps = ICloudSyncStatusPopdownProps & {\n    width?: number; // override the width in pixels of the popover component\n    placement?: 'top' | 'bottom'; // override the placement of the popover component\n    showSideLabel?: boolean; // show the side label next to the icon\n};\n\ntype ICloudSyncStatusState = {\n    icon: CloudIcon;\n    tooltip: string;\n};\n\n@observer\nexport default class CloudSyncStatus extends React.Component<\n    ICloudSyncStatusProps,\n    ICloudSyncStatusState\n> {\n    state = {\n        icon: CloudIcon.Cloud,\n        tooltip: '',\n    };\n\n    static defaultProps = {\n        tiles: [] as Tile[],\n        type: CloudSyncType.GLOBAL,\n    };\n\n    constructor(props: ICloudSyncStatusProps) {\n        super(props);\n\n        // Init the global store before depending on it\n        const { hostProductData, imsData, __assetContext_forTestingOnly } = this.props;\n        getCDCGlobalStore({\n            hostProductData: hostProductData,\n            imsData: imsData,\n            __assetContext_forTestingOnly,\n        });\n\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        this.globalStore.setLocale();\n    }\n\n    componentDidMount() {\n        const { tiles } = this.props;\n        const cloudStore = this.globalStore.cloudStore;\n        cloudStore.subscribe(\n            'updateCloudIcon',\n            this.cloudStoreSubscriptionKey,\n            async (icon, tooltip) => {\n                this.setState({\n                    icon: icon,\n                    tooltip: tooltip,\n                });\n            },\n        );\n\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Add error handling\n        cloudStore.setExternalTiles(undefined, tiles ?? []);\n    }\n\n    componentWillUnmount(): void {\n        this.globalStore.cloudStore.unsubscribe('updateCloudIcon', this.cloudStoreSubscriptionKey);\n    }\n\n    private get cloudStoreSubscriptionKey() {\n        return `CloudSyncStatus_Icon_${'GLOBAL'}`;\n    }\n\n    @computed get globalStore() {\n        const { hostProductData, imsData } = this.props;\n        return getCDCGlobalStore({\n            hostProductData: hostProductData,\n            imsData: imsData,\n        });\n    }\n\n    @computed get cloudIcon(): React.ReactElement {\n        const { icon } = this.state;\n        switch (icon) {\n            case CloudIcon.Disconnected:\n                return <CloudSyncDisconnectedIcon />;\n            case CloudIcon.Error:\n                return <CloudSyncErrorIcon />;\n            case CloudIcon.Progress:\n                return <CloudSyncInProgressIcon />;\n            case CloudIcon.Paused:\n                return <CloudSyncPausedIcon />;\n            // TODO:\n            // case CloudIcon.SlowConnection:\n            //     return </>;\n            case CloudIcon.Cloud:\n            default:\n                return <CloudSyncDefaultIcon />;\n        }\n    }\n\n    renderTooltipWrapper = (tooltip: string, placement: string, children: React.ReactNode) => (\n        <div className=\"cdo-CloudSyncStatus_tooltipWrapper\">\n            <OverlayTrigger\n                trigger=\"hover\"\n                placement={placement ?? 'bottom'}\n                delayShow={DEFAULT_TOOLTIP_DELAY}\n            >\n                {children}\n                <div className=\"cdo-CloudSyncStatus_tooltip\">\n                    <Tooltip open placement={placement ?? 'bottom'}>\n                        {tooltip}\n                    </Tooltip>\n                </div>\n            </OverlayTrigger>\n        </div>\n    );\n\n    render() {\n        const { tooltip } = this.state;\n        const { theme, width, placement, showSideLabel } = this.props;\n        const body = (\n            <div className=\"cdo-CloudSyncStatus_wrapper\">\n                <OverlayTrigger\n                    trigger=\"click\"\n                    placement={placement ?? 'bottom'}\n                    delayShow={DEFAULT_TOOLTIP_DELAY}\n                >\n                    <div className=\"cdo-CloudSyncStatus_icon\">\n                        <div className=\"cdo-CloudSyncStatus_icon_wrapper\">{this.cloudIcon}</div>\n                        <div className=\"cdo-CloudSyncStatus_label\">\n                            {showSideLabel ? tooltip : null}\n                        </div>\n                    </div>\n                    <Popover\n                        // min-width is default set to 270px by react-spectrum\n                        // both overrides are necessary if the width is smaller than 270px\n                        style={{ width: width ?? 'auto', minWidth: width ?? 'auto' }}\n                        placement={placement}\n                        className={classNames(\n                            'cdo-CloudSyncStatus_popdown_wrapper',\n                            `theme-${theme}`,\n                        )}\n                    >\n                        <CloudSyncStatusPopdown {...this.props} />\n                    </Popover>\n                </OverlayTrigger>\n            </div>\n        );\n\n        return (\n            <div className=\"cdo-CloudSyncStatus\">\n                {showSideLabel\n                    ? body\n                    : this.renderTooltipWrapper(tooltip, placement ?? 'bottom', body)}\n            </div>\n        );\n    }\n}\n","// Generated by genversion.\nmodule.exports = '1.145.0-daily.90'\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ICDOProviderProps } from './components/CDOProvider';\nimport CDOProvider, { ThinCDOProvider } from './components/CDOProvider';\nimport type {\n    ActionArgs,\n    IActionClick,\n    IAnalyticsData,\n    ICardSize,\n    ICDOViewProps,\n    ICollectionItem,\n    ICommonCollectionViewProps,\n    IEmptyViewProps,\n    IGridItemProps,\n    IGridViewProps,\n    IListViewProps,\n    ListViewColumn,\n    IListViewCustomColumn,\n    IListItemProps,\n    MetadataFormat,\n    IReadOnlySelectionStore,\n    IOnRenameSubmit,\n    IOnRenameCancel,\n    IRenameValidator,\n    ISelectionBehavior,\n    IShouldRenderItemAsDisabled,\n    IOnSelectionChange,\n    ISelectionManager,\n    ISelectionUXConfig,\n    ISelectionStore,\n} from '@csc/collection-view';\nimport {\n    Action,\n    BetaTag,\n    Busy,\n    CardSize,\n    ColumnType,\n    Column,\n    CDOView,\n    ClickSelectType,\n    DateMetadata,\n    DragSource,\n    deriveParentPath,\n    EmptyView,\n    fileNameValidator,\n    GridItem,\n    GridView,\n    ListView,\n    ListItem,\n    RenameAction,\n    ReactSpectrumValidationState,\n    renderDateColumn,\n    ProcessingState,\n    normalizePath,\n    ModeType,\n    Themes,\n    MultiSelectionManager,\n    SingleSelectionManager,\n    OperationStore,\n    SelectionStore,\n    ScrollContainer,\n    sleep,\n    ToastStore,\n    ValidationStatus,\n    ViewMode,\n    UXSortBy,\n    UXSortDir,\n    VALIDATION_INVALID_CHARS,\n    EventType,\n} from '@csc/collection-view';\nimport type { CDORootPathType } from '@csc/common';\nimport { ARCHIVE_FOLDER_PATH, ROOT_FOLDER_PATH, SHARED_WITH_YOU_PATH } from '@csc/common';\nimport type { ISharedWithYouProps } from './components/SharedWithYou';\nimport SharedWithYou from './components/SharedWithYou';\nimport type { IDeletedProps } from './components/Deleted';\nimport Deleted from './components/Deleted';\nimport type { ICloudDocumentsProps } from './components/CloudDocuments';\nimport CloudDocuments from './components/CloudDocuments';\nimport type { IReviewLinksProps } from './components/ReviewLinks';\nimport ReviewLinks from './components/ReviewLinks';\nimport type { IImportData } from './types/IImportAction';\nimport Recents from './components/Recents';\nimport Favorites from './components/Favorites';\nimport GenerationHistory from './components/GenerationHistory';\nimport FFBoards from './components/FFBoards';\nimport GenericFileIcon from '../assets/default-file-icon.png';\nimport EmptyCloudDocs from '@csc/adobe-assets-view/dist/src/svgs/EmptyCloudDocs';\nimport type { CDOStoreType } from './stores/CDOStore';\nimport { CDOStore } from './stores/CDOStore';\nimport CDOLink from './components/CDOLink';\nimport type { UXSortByForResources, UXSortByForACP } from './stores/constants';\nimport { CDO_CURRENT_PATH_CHANGE_EVENT } from './stores/constants';\nimport {\n    SAMLogLevel,\n    FOLDER_MIMETYPE,\n    FOLDER_MIMETYPES,\n    INGEST_PROJECT_VALUE,\n} from './utils/constants';\nimport {\n    INGEST_DEBOUNCE_VALUE,\n    INGEST_MAX_QUEUED_EVENTS,\n    Metrics,\n} from '@csc/adobe-assets-view/dist/src/utils/ingest';\nimport { LogLevel } from './utils/Logger';\nimport I18N, { intlStore } from './utils/i18n';\nimport { Platform, isWindows, normalizePlatform, platformOsVersion } from './utils/platform';\nimport Utils from './utils/utils';\nimport { localizedGoUrl } from './utils/urls';\n\n// TODO: remove this Stylesheets import when we can:\n// ticket: https://jira.corp.adobe.com/browse/CCXCD-2794\nimport * as Stylesheets from './theme/Stylesheets';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { CDOOperationResponseEnum } from './types/CDOOperationResponse';\nimport type { ICloudSyncStatusProps } from './components/CloudSyncStatus';\nimport CloudSyncStatus from './components/CloudSyncStatus';\nimport { CloudSyncType } from './components/CloudSyncStatusPopdown';\nimport type { Tile, GenericTileConfig } from './components/Tile';\nimport { TileStatus } from './components/Tile';\nimport AssetSyncStateStore from './stores/AssetSyncStateStore';\nimport * as CDOLocalStorage from './utils/storage';\nimport type { IFileCapabilitiesConfig } from './utils/FileCapabilities';\nimport { Capability } from './utils/FileCapabilities';\nimport type { ICommonCDCConfiguration } from './stores/CDCGlobalStore';\nimport CDCGlobalStore, {\n    $CDC_GLOBAL_STORE,\n    getCDCGlobalStore,\n    getExistingCDCGlobalStore,\n    waitForExistingCDCGlobalStore,\n} from './stores/CDCGlobalStore';\nimport type IOnAnalyticsEvent from './types/IOnAnalyticsEvent';\nimport { NotificationStatus } from './types/NotificationStatus';\n\nimport version from './version';\n\nimport './styles.css';\n\nimport AAVMetrics from '@csc/adobe-assets-view/dist/src/utils/metrics/aav-metrics';\nimport QuotaStore from './stores/QuotaStore';\nimport CloudStatusStore from './stores/CloudStatusStore';\n\ntype ICallbacks = AssetBrowser.ICDOCallbacks;\nconst CDOContentViewType = AssetBrowser.ContentViewType;\ntype ICDOHostProductData = AssetBrowser.ICDOHostProductData;\ntype CDOFeatureFlag = AssetBrowser.CDOFeatureFlag;\ntype IMoveDialogResult = AssetBrowser.CDO.IMoveDialogResult;\ntype IIMSData = AssetBrowser.IIMSData;\ntype AccountType = AssetBrowser.AccountType;\n\nexport {\n    Action,\n    CDOStore,\n    type CDOStoreType,\n    ViewMode,\n    type CDORootPathType,\n    FOLDER_MIMETYPE,\n    FOLDER_MIMETYPES,\n    normalizePath,\n    ROOT_FOLDER_PATH,\n    SHARED_WITH_YOU_PATH,\n    ARCHIVE_FOLDER_PATH,\n    AssetSyncStateStore,\n    ModeType,\n    CDOOperationResponseEnum,\n    CDOProvider,\n    ThinCDOProvider,\n    type ICDOProviderProps,\n    CDOView,\n    type ICDOViewProps,\n    Favorites,\n    GenerationHistory,\n    FFBoards,\n    GridView,\n    type IGridViewProps,\n    GridItem,\n    type IGridItemProps,\n    ListView,\n    type IListViewProps,\n    ListItem,\n    type IListItemProps,\n    type AccountType,\n    Busy,\n    BetaTag,\n    EmptyView,\n    GenericFileIcon,\n    type IEmptyViewProps,\n    Recents,\n    ProcessingState,\n    UXSortBy,\n    UXSortDir,\n    type ICDOHostProductData,\n    type ICDOHostProductData as IHostProductData,\n    type IIMSData,\n    type ICallbacks,\n    Stylesheets,\n    type Tile,\n    TileStatus,\n    type GenericTileConfig,\n    Themes,\n    SAMLogLevel,\n    LogLevel,\n    SharedWithYou,\n    type ISharedWithYouProps,\n    Deleted,\n    type IDeletedProps,\n    CloudDocuments,\n    type ICloudDocumentsProps,\n    ReviewLinks,\n    type IReviewLinksProps,\n    I18N,\n    intlStore,\n    fileNameValidator,\n    ValidationStatus,\n    ReactSpectrumValidationState,\n    VALIDATION_INVALID_CHARS,\n    EmptyCloudDocs,\n    Platform,\n    isWindows,\n    normalizePlatform,\n    platformOsVersion,\n    CloudSyncStatus,\n    CloudSyncType,\n    type ICloudSyncStatusProps,\n    type ICommonCollectionViewProps,\n    type UXSortByForResources,\n    type UXSortByForACP,\n    CDO_CURRENT_PATH_CHANGE_EVENT,\n    type ListViewColumn,\n    type IListViewCustomColumn,\n    ColumnType,\n    Column,\n    DragSource,\n    CardSize,\n    type ICardSize,\n    Utils,\n    CDOLocalStorage,\n    Capability,\n    type IFileCapabilitiesConfig,\n    type ISelectionBehavior,\n    type IMoveDialogResult,\n    localizedGoUrl,\n    type ICollectionItem,\n    CDOContentViewType,\n    CDCGlobalStore,\n    type ICommonCDCConfiguration,\n    getCDCGlobalStore,\n    getExistingCDCGlobalStore,\n    waitForExistingCDCGlobalStore,\n    deriveParentPath,\n    DateMetadata,\n    type MetadataFormat,\n    EventType,\n    type IImportData,\n    CDOLink,\n    OperationStore,\n    ToastStore,\n    RenameAction,\n    sleep,\n    type IReadOnlySelectionStore,\n    type ISelectionStore,\n    type IActionClick,\n    NotificationStatus,\n    type CDOFeatureFlag,\n    type ISelectionManager,\n    ClickSelectType,\n    type ISelectionUXConfig,\n};\n\n/**\n * The following exports are intended for cloud-shared-components internal usage only\n * Some are also used by the ccx-cd-harness\n */\nexport {\n    SelectionStore,\n    type IShouldRenderItemAsDisabled,\n    type IOnSelectionChange,\n    renderDateColumn,\n    type IOnRenameSubmit,\n    type IOnRenameCancel,\n    type IRenameValidator,\n    type ActionArgs,\n    type IAnalyticsData,\n    version,\n    INGEST_DEBOUNCE_VALUE,\n    INGEST_MAX_QUEUED_EVENTS,\n    INGEST_PROJECT_VALUE,\n    Metrics,\n    type IOnAnalyticsEvent,\n    ScrollContainer,\n    AAVMetrics,\n    QuotaStore,\n    $CDC_GLOBAL_STORE,\n    CloudStatusStore,\n    MultiSelectionManager,\n    SingleSelectionManager,\n};\n\nexport { preload } from './utils/preload';\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// https://opensource.adobe.com/spectrum-web-components/components/checkbox/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/Checkbox\nimport type { Checkbox as CheckboxType } from '@ccx-public/spectrum-web-component-fallbacks/dist/checkbox';\nimport React, { useEffect, useRef } from 'react';\nimport { filterBooleanProps, useComponent } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Checkbox: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Checkbox')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-checkbox'], async () => {\n        const { Checkbox } = await import(\n            /* webpackChunkName: \"SpCheckbox\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/checkbox'\n        );\n        return [Checkbox];\n    });\n}\n\ntype RS2CompatProps = {\n    /**\n     * The label to display with the checkbox\n     */\n    label?: string;\n    /**\n     * Won't allow a permanent selection\n     */\n    readOnly?: boolean;\n    /**\n     * Flag that decides whether to display label\n     */\n    renderLabel?: boolean;\n    onChange?: (value: boolean, event: Event) => unknown;\n};\n\nexport default createWrapper<CheckboxType, RS2CompatProps>({\n    displayName: 'Checkbox',\n    fallback: RS2Checkbox,\n    swcLoader,\n    SWCWrapper: (props) => {\n        const checkboxWrapperRef = useRef<CheckboxType>(null);\n        const {\n            className,\n            renderLabel = true,\n            readOnly,\n            label,\n            checked,\n            disabled,\n            invalid,\n            indeterminate,\n            emphasized,\n            children,\n            onChange,\n            ...rest\n        } = props;\n\n        useEffect(() => {\n            const current = checkboxWrapperRef.current;\n\n            const change = (event: Event) => {\n                const target = event.target as CheckboxType;\n                onChange?.(target.checked, event);\n            };\n\n            if (current && onChange) {\n                current.addEventListener('change', change);\n            }\n\n            return () => {\n                if (current && onChange) {\n                    current.removeEventListener('change', change);\n                }\n            };\n        }, [onChange]);\n\n        // ReactSpectrum2        | SpectrumWebComponent\n        // ---------------------------------------------\n        // readOnly              | readonly\n        // label                 | label is directly passed as innerHTML text\n        // renderlabel:          | no such flag to conditionally render label\n        // flag based on which   |\n        // label is rendered     |\n\n        // checked, disabled, invalid, indeterminate, emphasized, readOnly are props in RS2\n        // but when passed directly as attributes to SWC, they don't work as expected.\n        // So these attributes are only passed if they are true;\n\n        // label must be passed a prop and not as children to the wrapper.\n\n        const Checkbox = useComponent('sp-checkbox');\n        return (\n            <Checkbox\n                {...rest}\n                {...filterBooleanProps({\n                    checked,\n                    disabled,\n                    emphasized,\n                    indeterminate,\n                    invalid,\n                    readonly: readOnly,\n                })}\n                class={className}\n                ref={checkboxWrapperRef}\n            >\n                {renderLabel ? label : ''}\n                {children}\n            </Checkbox>\n        );\n    },\n    tagName: 'sp-checkbox',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconDeviceDesktop } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDeviceDesktop.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2DeviceDesktop: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/DeviceDesktop')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-device-desktop'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconDeviceDesktop\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconDeviceDesktop.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconDeviceDesktop];\n            }\n        const { IconDeviceDesktop } = await import(\n            /* webpackChunkName: \"SpIconDeviceDesktop\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconDeviceDesktop'\n        );\n        return [IconDeviceDesktop];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconDeviceDesktop, RS2IconProps>({\n            displayName: 'DeviceDesktop',\n            fallback: RS2DeviceDesktop,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-device-desktop',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// https://opensource.adobe.com/spectrum-web-components/components/accordion/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/Accordion\nimport type {\n    Accordion as AccordionType,\n    AccordionItem as AccordionItemType,\n} from '@ccx-public/spectrum-web-component-fallbacks/dist/accordion';\nimport type { Attributes, JSXElementConstructor, ReactElement } from 'react';\nimport { Children } from 'react';\nimport React from 'react';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport { filterBooleanProps } from './utils';\nimport interopRequireDefault from './utils/interopRequireDefault';\n\nlet RS2Accordion: React.ComponentType<unknown> | undefined = undefined;\nlet RS2AccordionItem: React.ComponentType<unknown> | undefined = undefined;\n\nif (process.env.INCLUDE_RS2) {\n    /* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n    const AccordionModule = interopRequireDefault(\n        require('react-spectrum/Accordion')\n    );\n    RS2Accordion = AccordionModule.Accordion;\n    RS2AccordionItem = AccordionModule.AccordionItem;\n    /* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n}\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(\n        ['sp-accordion', 'sp-accordion-item'],\n        async () => {\n            const { Accordion, AccordionItem } = await import(\n                /* webpackChunkName: \"SpAccordion\" */\n                '@ccx-public/spectrum-web-component-fallbacks/dist/accordion'\n            );\n            return [Accordion, AccordionItem];\n        }\n    );\n}\n\ntype RS2CompatProps = {\n    /**\n     * Flag that decides whether to open multiple accordionItem\n     */\n    multiselectable?: boolean;\n    selectedIndex?: number;\n    defaultSelectedIndex?: number;\n};\n\nexport const Accordion = createWrapper<AccordionType, RS2CompatProps>({\n    displayName: 'Accordion',\n    fallback: RS2Accordion,\n    swcLoader,\n    swcProps: (props) => {\n        const {\n            multiselectable,\n            children,\n            className,\n            defaultSelectedIndex,\n            selectedIndex,\n            ...rest\n        } = props;\n\n        // ReactSpectrum2        | SpectrumWebComponent\n        // ---------------------------------------------\n        // multiselectable       | 'allow-multiple'\n        // handling selectedIndex and defaultSelectedIndex\n\n        const accordionItems = Children.toArray(children);\n        const index =\n            selectedIndex || selectedIndex == 0\n                ? selectedIndex\n                : defaultSelectedIndex\n                ? defaultSelectedIndex\n                : accordionItems.length;\n        if (index >= 0 && index < accordionItems.length) {\n            const accordionItem = accordionItems[\n                index\n            ] as unknown as ReactElement<\n                unknown,\n                string | JSXElementConstructor<unknown>\n            >;\n            const target = React.cloneElement(accordionItem, {\n                open: true,\n            } as Partial<unknown> & Attributes);\n            accordionItems[index] = target;\n        }\n\n        return {\n            ...rest,\n            ...filterBooleanProps({ 'allow-multiple': multiselectable }),\n            children: accordionItems,\n            class: className,\n        };\n    },\n    tagName: 'sp-accordion',\n});\n\ntype RS2AccordionItemCompatProps = {\n    /**\n     * header of accordion Item\n     */\n    header?: string;\n};\n\nexport const AccordionItem = createWrapper<\n    AccordionItemType,\n    RS2AccordionItemCompatProps\n>({\n    displayName: 'AccordionItem',\n    fallback: RS2AccordionItem,\n    swcLoader,\n    swcProps: (props) => {\n        const { className, header, ...rest } = props;\n\n        // ReactSpectrum2        | SpectrumWebComponent\n        // ---------------------------------------------\n        // readOnly              | readonly\n        // label                 | label is directly passed as innerHTML text\n        // renderlabel:          | no such flag to conditionally render label\n        // flag based on which   |\n        // label is rendered     |\n\n        return {\n            class: className,\n            label: header,\n            ...rest,\n        };\n    },\n    tagName: 'sp-accordion-item',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconProperties } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconProperties.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Properties: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Properties')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-properties'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconProperties\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconProperties.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconProperties];\n            }\n        const { IconProperties } = await import(\n            /* webpackChunkName: \"SpIconProperties\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconProperties'\n        );\n        return [IconProperties];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconProperties, RS2IconProps>({\n            displayName: 'Properties',\n            fallback: RS2Properties,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-properties',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { Accordion, AccordionItem } from '@ccx-public/spectrum-wrapper/dist/Accordion';\nimport DropdownButton from '@ccx-public/spectrum-wrapper/dist/DropdownButton';\nimport ViewGrid from '@ccx-public/spectrum-wrapper/dist/Icon/ClassicGridView';\nimport Properties from '@ccx-public/spectrum-wrapper/dist/Icon/Properties';\nimport ViewList from '@ccx-public/spectrum-wrapper/dist/Icon/ViewList';\nimport { MenuGroup, MenuItem } from '@ccx-public/spectrum-wrapper/dist/Menu';\nimport { useHostConfig } from '@csc/common';\nimport IconAllFiles from '@csc/ui/dist/src/Icons/All';\nimport IconYourProjects from '@csc/ui/dist/src/Icons/User';\nimport IconSharedWithYou from '@csc/ui/dist/src/Icons/UserGroup';\nimport classnames from 'classnames';\nimport React, { useCallback, useMemo } from 'react';\nimport { FormattedMessage, useIntl, type IntlShape } from 'react-intl';\n\nimport styles from './styles.module.css';\nimport useOrganizerConfig from '../../hooks/useOrganizerConfig';\nimport withOrganizerConfig from '../withOrganizerConfig';\nimport { NavigationEvent } from '../withProviders/events/NavigationEvent';\n\nconst getCurrentSortKey = (\n    sortBy: AssetBrowser.ProjectsOrganizerSortBy | AssetBrowser.ProjectContentsSortBy,\n    sortDir: AssetBrowser.SortDir,\n) => {\n    if (sortBy === 'createDate' && sortDir === 'desc') {\n        return 'newestCreated';\n    } else if (sortBy === 'createDate' && sortDir === 'asc') {\n        return 'oldestCreated';\n    } else if (sortBy === 'title' && sortDir === 'asc') {\n        return 'titleAZ';\n    } else if (sortBy === 'title' && sortDir === 'desc') {\n        return 'titleZA';\n    }\n    return 'newestCreated';\n};\n\nexport const getProjectViewOptions = (intl: IntlShape, imsData?: { account_type?: string }) => [\n    {\n        key: 'all',\n        icon: <IconAllFiles size=\"S\" />,\n        label: intl.formatMessage({\n            id: '@ace/projects:viewswitcher.all',\n            defaultMessage: 'All',\n        }),\n    },\n    {\n        key: 'yours',\n        icon: <IconYourProjects size=\"S\" />,\n        label:\n            imsData?.account_type === 'type1'\n                ? intl.formatMessage({\n                      id: '@ace/projects:viewswitcher.yourprojects',\n                      defaultMessage: 'Your projects',\n                  })\n                : intl.formatMessage({\n                      id: '@ace/projects:viewswitcher.businessstorage',\n                      defaultMessage: 'Business storage',\n                  }),\n    },\n    {\n        key: 'shared',\n        icon: <IconSharedWithYou size=\"S\" />,\n        label: intl.formatMessage({\n            id: '@ace/projects:viewswitcher.sharedwithyou',\n            defaultMessage: 'Shared with you',\n        }),\n    },\n];\n\nexport function ProjectsViewOptionsButton({ hideViewToggle }: { hideViewToggle?: boolean }) {\n    const intl = useIntl();\n    const { dispatchEvent, imsData } = useHostConfig();\n    const { view, sortBy, sortDirection, projectView } = useOrganizerConfig();\n\n    const sortOptions = useMemo(\n        () => [\n            {\n                header: intl.formatMessage({\n                    id: '@ace/projects:spectrum.projects.sortby.created',\n                    defaultMessage: 'Date created',\n                }),\n                items: [\n                    {\n                        key: 'newestCreated',\n                        label: intl.formatMessage({\n                            id: '@ace/projects:viewOptionsButton.sort.newestCreated',\n                            defaultMessage: 'Newest',\n                        }),\n                    },\n                    {\n                        key: 'oldestCreated',\n                        label: intl.formatMessage({\n                            id: '@ace/projects:viewOptionsButton.sort.oldestCreated',\n                            defaultMessage: 'Oldest',\n                        }),\n                    },\n                ],\n            },\n            {\n                header: intl.formatMessage({\n                    id: '@ace/projects:projects.sortby.name',\n                    defaultMessage: 'Name',\n                }),\n                items: [\n                    {\n                        key: 'titleAZ',\n                        label: intl.formatMessage({\n                            id: '@ace/projects:viewOptionsButton.sort.titleAZ',\n                            defaultMessage: 'A - Z',\n                        }),\n                    },\n                    {\n                        key: 'titleZA',\n                        label: intl.formatMessage({\n                            id: '@ace/projects:viewOptionsButton.sort.titleZA',\n                            defaultMessage: 'Z - A',\n                        }),\n                    },\n                ],\n            },\n        ],\n        [intl],\n    );\n\n    const projectViewOptions = useMemo(() => getProjectViewOptions(intl, imsData), [intl, imsData]);\n\n    const currentSortKey = getCurrentSortKey(sortBy, sortDirection);\n\n    const handleSelect = useCallback(\n        (value: string) => {\n            switch (value) {\n                case 'newestCreated':\n                    dispatchEvent(\n                        new NavigationEvent({\n                            name: AssetBrowser.ContentViewType.Projects,\n                            params: {\n                                sortBy: 'createDate',\n                                sortDir: 'desc',\n                                // @deprecated -- use sortDir instead\n                                // @ts-expect-error -- kept for backward compatibility\n                                sortDirection: 'desc',\n                            },\n                        }),\n                    );\n                    break;\n                case 'oldestCreated':\n                    dispatchEvent(\n                        new NavigationEvent({\n                            name: AssetBrowser.ContentViewType.Projects,\n                            params: {\n                                sortBy: 'createDate',\n                                sortDir: 'asc',\n                                // @deprecated -- use sortDir instead\n                                // @ts-expect-error -- kept for backward compatibility\n                                sortDirection: 'asc',\n                            },\n                        }),\n                    );\n                    break;\n                case 'titleAZ':\n                    dispatchEvent(\n                        new NavigationEvent({\n                            name: AssetBrowser.ContentViewType.Projects,\n                            params: {\n                                sortBy: 'title',\n                                sortDir: 'asc',\n                                // @deprecated -- use sortDir instead\n                                // @ts-expect-error -- kept for backward compatibility\n                                sortDirection: 'asc',\n                            },\n                        }),\n                    );\n                    break;\n                case 'titleZA':\n                    dispatchEvent(\n                        new NavigationEvent({\n                            name: AssetBrowser.ContentViewType.Projects,\n                            params: {\n                                sortBy: 'title',\n                                sortDir: 'desc',\n                                // @deprecated -- use sortDir instead\n                                // @ts-expect-error -- kept for backward compatibility\n                                sortDirection: 'desc',\n                            },\n                        }),\n                    );\n                    break;\n                case 'grid':\n                case 'list':\n                    dispatchEvent(\n                        new NavigationEvent({\n                            name: AssetBrowser.ContentViewType.Projects,\n                            params: {\n                                viewMode: value,\n                                // @deprecated -- use viewMode instead\n                                // @ts-expect-error -- kept for backward compatibility\n                                view: value,\n                            },\n                        }),\n                    );\n                    break;\n                case 'all':\n                case 'recent':\n                case 'yours':\n                case 'shared':\n                    dispatchEvent(\n                        new NavigationEvent({\n                            name: AssetBrowser.ContentViewType.Projects,\n                            params: {\n                                projectView: value,\n                            },\n                        }),\n                    );\n                    break;\n                default:\n                    break;\n            }\n        },\n        [dispatchEvent],\n    );\n\n    return (\n        <DropdownButton\n            icon={<Properties size=\"S\" />}\n            data-testid=\"projects-view-options-button\"\n            quiet\n        >\n            <div className={styles.viewOptionsButton}>\n                {!hideViewToggle && (\n                    <MenuGroup\n                        selects=\"single\"\n                        className={styles.viewSection}\n                        data-testid=\"view-section\"\n                        onSelect={handleSelect}\n                    >\n                        <MenuItem\n                            icon={<ViewGrid className={styles.viewIcon} size=\"S\" />}\n                            key=\"grid\"\n                            value=\"grid\"\n                            selected={view === 'grid'}\n                        >\n                            <FormattedMessage\n                                id=\"@ace/projects:viewOptionsButton.view.grid\"\n                                defaultMessage=\"Grid\"\n                            />\n                        </MenuItem>\n                        <MenuItem\n                            icon={<ViewList className={styles.viewIcon} size=\"S\" />}\n                            key=\"list\"\n                            value=\"list\"\n                            selected={view === 'list'}\n                        >\n                            <FormattedMessage\n                                id=\"@ace/projects:viewOptionsButton.view.list\"\n                                defaultMessage=\"List\"\n                            />\n                        </MenuItem>\n                    </MenuGroup>\n                )}\n                <Accordion>\n                    <AccordionItem\n                        key=\"sort-by\"\n                        label={intl.formatMessage({\n                            id: '@ace/projects:projects.sortby',\n                            defaultMessage: 'Sort by',\n                        })}\n                        data-testid=\"sort-by-section\"\n                        className={classnames({\n                            [styles['firstMenuSection']]: hideViewToggle,\n                        })}\n                    >\n                        <MenuGroup\n                            className={styles.accordionMenuGroup}\n                            onSelect={handleSelect}\n                            selects=\"single\"\n                        >\n                            {sortOptions.map((group, index) => (\n                                <React.Fragment key={index}>\n                                    <div\n                                        className={styles.groupHeader}\n                                        role=\"heading\"\n                                        aria-level={3}\n                                    >\n                                        {group.header}\n                                    </div>\n                                    {group.items.map(({ key, label }) => (\n                                        <MenuItem\n                                            key={key}\n                                            value={key}\n                                            selected={currentSortKey === key}\n                                            className={styles.accordionMenuItem}\n                                        >\n                                            {label}\n                                        </MenuItem>\n                                    ))}\n                                </React.Fragment>\n                            ))}\n                        </MenuGroup>\n                    </AccordionItem>\n                    <AccordionItem\n                        key=\"project-view\"\n                        label={intl.formatMessage({\n                            id: '@ace/projects:viewOptionsButton.filterBy.label',\n                            defaultMessage: 'Filter by',\n                        })}\n                        className={styles.projectViewSection}\n                        data-testid=\"project-view-section\"\n                    >\n                        <MenuGroup\n                            selects=\"single\"\n                            className={styles.accordionMenuGroup}\n                            onSelect={handleSelect}\n                        >\n                            {projectViewOptions.map((option) => (\n                                <MenuItem\n                                    key={option.key}\n                                    value={option.key}\n                                    icon={option.icon}\n                                    selected={projectView === option.key}\n                                    className={styles.accordionMenuItem}\n                                >\n                                    {option.label}\n                                </MenuItem>\n                            ))}\n                        </MenuGroup>\n                    </AccordionItem>\n                </Accordion>\n            </div>\n        </DropdownButton>\n    );\n}\nexport default withOrganizerConfig(ProjectsViewOptionsButton);\n","// extracted by mini-css-extract-plugin\nexport default {\"viewOptionsButton\":\"viewOptionsButton--NqNT8\",\"viewSection\":\"viewSection--6bKVE\",\"firstMenuSection\":\"firstMenuSection--IbXxC\",\"filterSection\":\"filterSection--wNkvN\",\"accordionMenuGroup\":\"accordionMenuGroup--kc8MO\",\"accordionMenuItem\":\"accordionMenuItem--Y5qGz\",\"viewIcon\":\"viewIcon--eGE6x\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { Accordion, AccordionItem } from '@ccx-public/spectrum-wrapper/dist/Accordion';\nimport DropdownButton from '@ccx-public/spectrum-wrapper/dist/DropdownButton';\nimport PropertiesIcon from '@ccx-public/spectrum-wrapper/dist/Icon/Properties';\nimport { MenuGroup, MenuItem } from '@ccx-public/spectrum-wrapper/dist/Menu';\nimport ViewGrid from '@ccx-public/spectrum-wrapper/dist/Icon/ClassicGridView';\nimport ViewList from '@ccx-public/spectrum-wrapper/dist/Icon/ViewList';\nimport classnames from 'classnames';\nimport React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useAAVContext } from '../../AdobeAssetsView/AAVContext';\nimport styles from './styles.module.css';\n\nexport interface SortSection {\n    header: string;\n    items: Array<{ key: string; label: string }>;\n}\n\nexport interface FilterSection {\n    header: string;\n    items: Array<{ key: string; label: string; icon?: React.JSX.Element }>;\n}\n\nexport interface ViewOptionsDropdownProps {\n    sortSections: SortSection[];\n    filterSection?: FilterSection;\n    currentSortKey?: string;\n    currentFilterKey?: string;\n    onSelect: (value: string) => void;\n    'data-testid'?: string;\n    hideViewToggle?: boolean;\n}\n\nexport default function ViewOptionsDropdown({\n    sortSections,\n    filterSection,\n    currentSortKey,\n    currentFilterKey,\n    hideViewToggle,\n    onSelect,\n    'data-testid': testId,\n}: ViewOptionsDropdownProps) {\n    const intl = useIntl();\n    const { viewMode } = useAAVContext();\n    return (\n        <DropdownButton\n            onSelect={onSelect}\n            data-testid={testId}\n            quiet\n            icon={<PropertiesIcon size=\"S\" />}\n        >\n            <div className={styles.viewOptionsButton}>\n                {!hideViewToggle && (\n                    <MenuGroup\n                        selects=\"single\"\n                        className={styles.firstMenuSection}\n                        data-testid=\"view-section\"\n                    >\n                        <MenuItem\n                            icon={<ViewGrid className={styles.viewIcon} size=\"S\" />}\n                            key=\"grid\"\n                            value=\"grid\"\n                            selected={viewMode === 'grid'}\n                        >\n                            <FormattedMessage\n                                id=\"aav.viewOptionsButton.view.grid\"\n                                defaultMessage=\"Grid\"\n                            />\n                        </MenuItem>\n                        <MenuItem\n                            icon={<ViewList className={styles.viewIcon} size=\"S\" />}\n                            key=\"list\"\n                            value=\"list\"\n                            selected={viewMode === 'list'}\n                        >\n                            <FormattedMessage\n                                id=\"aav.viewOptionsButton.view.list\"\n                                defaultMessage=\"List\"\n                            />\n                        </MenuItem>\n                    </MenuGroup>\n                )}\n                <Accordion>\n                    {sortSections.length > 0 && (\n                        <AccordionItem\n                            key=\"sort-by\"\n                            label={intl.formatMessage({\n                                id: 'aav.viewOptionsButton.sort.label',\n                                defaultMessage: 'Sort by',\n                            })}\n                            data-testid=\"sort-by-section\"\n                            className={classnames({\n                                [styles['firstMenuSection']]: hideViewToggle,\n                            })}\n                        >\n                            {sortSections.map((group, index) => (\n                                <MenuGroup\n                                    key={index}\n                                    selects=\"single\"\n                                    className={styles.accordionMenuGroup}\n                                    header={group.header}\n                                >\n                                    {group.items.map(({ key, label }) => (\n                                        <MenuItem\n                                            key={key}\n                                            value={key}\n                                            selected={currentSortKey === key}\n                                            className={styles.accordionMenuItem}\n                                        >\n                                            {label}\n                                        </MenuItem>\n                                    ))}\n                                </MenuGroup>\n                            ))}\n                        </AccordionItem>\n                    )}\n                    {filterSection && (\n                        <AccordionItem\n                            key=\"filter-by\"\n                            label={filterSection.header}\n                            data-testid=\"filter-by-section\"\n                            className={styles.filterSection}\n                        >\n                            <MenuGroup selects=\"single\" className={styles.accordionMenuGroup}>\n                                {filterSection.items.map(({ key, label, icon }) => (\n                                    <MenuItem\n                                        key={key}\n                                        icon={icon}\n                                        value={key}\n                                        selected={currentFilterKey === key}\n                                        className={styles.accordionMenuItem}\n                                    >\n                                        {label}\n                                    </MenuItem>\n                                ))}\n                            </MenuGroup>\n                        </AccordionItem>\n                    )}\n                </Accordion>\n            </div>\n        </DropdownButton>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { useCallback, useMemo } from 'react';\nimport { useIntl } from 'react-intl';\nimport type { FilterOptionViewModel } from '../TypeDropdownFilter/utils';\nimport { useAAVContext } from '../AdobeAssetsView/AAVContext';\nimport { UXSortBy } from '@csc/collection-view';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport ViewOptionsDropdown from '../shared/ViewOptionsDropdown/ViewOptionsDropdown';\n\nexport interface ViewOptionsButtonProps {\n    filterOptions?: FilterOptionViewModel[];\n    currentFilter?: AssetBrowser.FileFilterTypeValues;\n    sortByValues?: UXSortBy[];\n    hideViewToggle?: boolean;\n}\n\ntype SupportedSortBy = UXSortBy.modifiedDate | UXSortBy.createDate | UXSortBy.title;\n\nconst SORT_KEY_MAP: Record<SupportedSortBy, Record<'asc' | 'desc', string>> = {\n    [UXSortBy.modifiedDate]: { desc: 'modifiedNewest', asc: 'modifiedOldest' },\n    [UXSortBy.createDate]: { desc: 'createNewest', asc: 'createOldest' },\n    [UXSortBy.title]: { asc: 'titleAZ', desc: 'titleZA' },\n};\n\nconst getCurrentSortKey = (\n    sortBy: SupportedSortBy,\n    sortDir: 'asc' | 'desc',\n): string | undefined => {\n    return SORT_KEY_MAP[sortBy]?.[sortDir];\n};\n\nexport default function ViewOptionsButton({\n    filterOptions = [],\n    currentFilter = AssetBrowser.FileFilterTypeValues.AllFiles,\n    sortByValues = [UXSortBy.modifiedDate, UXSortBy.title],\n    hideViewToggle,\n}: ViewOptionsButtonProps) {\n    const intl = useIntl();\n    const { list, sortBy, sortDir, onViewOptionsChange } = useAAVContext();\n\n    const sortOptions = useMemo(\n        () =>\n            [\n                {\n                    key: UXSortBy.createDate,\n                    header: intl.formatMessage({\n                        id: 'aav.list.columns.header.createDate',\n                        defaultMessage: 'Date created',\n                    }),\n                    items: [\n                        {\n                            key: 'createNewest',\n                            label: intl.formatMessage({\n                                id: 'aav.viewOptionsButton.sort.newest',\n                                defaultMessage: 'Newest',\n                            }),\n                        },\n                        {\n                            key: 'createOldest',\n                            label: intl.formatMessage({\n                                id: 'aav.viewOptionsButton.sort.oldest',\n                                defaultMessage: 'Oldest',\n                            }),\n                        },\n                    ],\n                },\n                {\n                    key: UXSortBy.modifiedDate,\n                    header: intl.formatMessage({\n                        id: 'aav.list.columns.header.modifiedDate',\n                        defaultMessage: 'Date modified',\n                    }),\n                    items: [\n                        {\n                            key: 'modifiedNewest',\n                            label: intl.formatMessage({\n                                id: 'aav.viewOptionsButton.sort.newest',\n                                defaultMessage: 'Newest',\n                            }),\n                        },\n                        {\n                            key: 'modifiedOldest',\n                            label: intl.formatMessage({\n                                id: 'aav.viewOptionsButton.sort.oldest',\n                                defaultMessage: 'Oldest',\n                            }),\n                        },\n                    ],\n                },\n                {\n                    key: UXSortBy.title,\n                    header: intl.formatMessage({\n                        id: 'aav.header.title',\n                        defaultMessage: 'Name',\n                    }),\n                    items: [\n                        {\n                            key: 'titleAZ',\n                            label: intl.formatMessage({\n                                id: 'aav.viewOptionsButton.sort.label.titleAZ',\n                                defaultMessage: 'A - Z',\n                            }),\n                        },\n                        {\n                            key: 'titleZA',\n                            label: intl.formatMessage({\n                                id: 'aav.viewOptionsButton.sort.label.titleZA',\n                                defaultMessage: 'Z - A',\n                            }),\n                        },\n                    ],\n                },\n            ].filter((option) => sortByValues.includes(option.key)),\n        [intl, sortByValues],\n    );\n\n    const currentSortKey = getCurrentSortKey(sortBy as SupportedSortBy, sortDir);\n\n    const handleSelect = useCallback(\n        (value: string) => {\n            const filterOption = filterOptions.find(\n                (option) => option.value === (value as AssetBrowser.FileFilterTypeValues),\n            );\n            if (filterOption) {\n                onViewOptionsChange({\n                    filter: filterOption.value,\n                });\n                return;\n            }\n\n            switch (value) {\n                case 'createNewest':\n                    onViewOptionsChange({\n                        sortBy: UXSortBy.createDate,\n                        sortDir: 'desc',\n                    });\n                    break;\n                case 'createOldest':\n                    onViewOptionsChange({\n                        sortBy: UXSortBy.createDate,\n                        sortDir: 'asc',\n                    });\n                    break;\n                case 'modifiedNewest':\n                    onViewOptionsChange({\n                        sortBy: UXSortBy.modifiedDate,\n                        sortDir: 'desc',\n                    });\n                    break;\n                case 'modifiedOldest':\n                    onViewOptionsChange({\n                        sortBy: UXSortBy.modifiedDate,\n                        sortDir: 'asc',\n                    });\n                    break;\n                case 'titleAZ':\n                    onViewOptionsChange({\n                        sortBy: UXSortBy.title,\n                        sortDir: 'asc',\n                    });\n                    break;\n                case 'titleZA':\n                    onViewOptionsChange({\n                        sortBy: UXSortBy.title,\n                        sortDir: 'desc',\n                    });\n                    break;\n                case 'grid':\n                case 'list':\n                    onViewOptionsChange({\n                        viewMode: value,\n                    });\n                    break;\n                default:\n                    break;\n            }\n        },\n        [filterOptions, onViewOptionsChange],\n    );\n\n    const filterSection = useMemo(() => {\n        return filterOptions.length > 0\n            ? {\n                  header: intl.formatMessage({\n                      id: 'aav.viewOptionsButton.filter.label',\n                      defaultMessage: 'Filter by',\n                  }),\n                  items: filterOptions.map((option) => ({\n                      key: option.value,\n                      label: option.label,\n                      icon: option.icon,\n                  })),\n              }\n            : undefined;\n    }, [filterOptions, intl]);\n\n    if (!list?.items.length) {\n        return null;\n    }\n\n    return (\n        <ViewOptionsDropdown\n            sortSections={sortOptions}\n            filterSection={filterSection}\n            currentSortKey={currentSortKey}\n            currentFilterKey={currentFilter}\n            onSelect={handleSelect}\n            hideViewToggle={hideViewToggle}\n            data-testid=\"view-options-button\"\n        />\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n/* eslint-disable prettier/prettier */\n\n\nimport type { IconClose } from '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconClose.js';\nimport { SWCLoader } from '../utils/SWCLoader';\nimport createWrapper from '../utils/createWrapper';\nimport { getSWCProps } from './utils';\nimport type { RS2IconProps } from './utils';\nimport interopRequireDefault from '../utils/interopRequireDefault';\nimport type { ProviderConfig } from '../utils/ThemeContext';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Close: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Icon/Close')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\n\n\nif (!process.env.EXCLUDE_SWC) {\n\n    swcLoader = new SWCLoader(['sp-icon-close'], async (config: ProviderConfig) => {\n        if (config.spectrumTheme === 'express') {\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                const xIcon = await import(\n                    /* webpackChunkName: \"XIconClose\" */\n                    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n                    // @ts-ignore\n                    '@hz/x-icons/src/components/IconClose.js'\n                );\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-member-access\n                return [xIcon.IconClose];\n            }\n        const { IconClose } = await import(\n            /* webpackChunkName: \"SpIconClose\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/icons-workflow/src/elements/IconClose'\n        );\n        return [IconClose];\n    });\n\n}\n\n\n        \n        const S1Icon = createWrapper<IconClose, RS2IconProps>({\n            displayName: 'Close',\n            fallback: RS2Close,\n            swcLoader,\n            swcProps: getSWCProps,\n            tagName: 'sp-icon-close',\n        });\n    \n        export default S1Icon;\n    \n/* eslint-enable prettier/prettier */\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'আবার দেখাবেন না',\n    'confirmationDialog.confirm.default' : 'চালিয়ে যান',\n    'confirmationDialog.cancel.default' : 'বাতিল করুন',\n    'confirmationDialog.learnMore' : 'আরও জানুন',\n    'toast.warning.place' : 'এখনও লিঙ্ক করা ক্লাউড ডকুমেন্ট পাওয়া যায়নি। এবং পরিবর্তে এম্বেড করতে থাকুন।',\n    'toast.warning.placeLinkOrEmbed' : 'আপনি যে অ্যাসেটগুলি রাখেন তা এখন ডিফল্টরূপে মূলের সাথে সংযুক্ত। এর মানে হল আপনি যদি এটি এক জায়গায় এডিট করেন, তাহলে সেই পরিবর্তনগুলি সর্বত্র প্রতিফলিত হবে।',\n    'toast.warning.saveAs.invalidFormat' : 'দুঃখিত, আপনি এখানে {genericFormat} ফাইলগুলি সেভ করতে পারবেন না। আপনার ফাইলটি {adobeFormat} হিসাবে সেভ হবে।',\n    'pickerView.recent' : 'সাম্প্রতিক',\n    'pickerView.cloud_docs' : 'আপনার ফাইলসমূহ',\n    'pickerView.shared_with_you' : 'আপনার সাথে শেয়ার করা হয়েছে',\n    'pickerView.projects' : 'প্রোজেক্ট',\n    'pickerView.firefly_history' : 'Firefly ইতিহাস',\n    'pickerView.computer' : 'আপনার কম্পিউটার...',\n    'pickerView.saveAsInput' : 'এইভাবে সেভ করুন',\n    'pickerView.exportInput' : 'এইভাবে এক্সপোর্ট করুন',\n    'pickerView.sketch_library' : 'স্কেচ লাইব্রেরি রূপান্তর করুন...',\n    'pickerView.error.saveAsOrExport.default' : 'ফাইলের নাম অবৈধ।',\n    'pickerView.error.saveAsOrExport.invalidName' : 'দুঃখিত, এই নামটিতে অবৈধ বর্ণ-চিহ্ন(গুলি) রয়েছে।',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'নাম \".” বা ফাঁকা জায়গা দিয়ে শেষ হতে পারে না।',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'নামে নিম্নোক্ত বর্ণ-চিহ্নগুলি থাকতে পারে না: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'নামের দৈর্ঘ্য 200 বর্ণ-চিহ্নেরবেশি হতে পারে না।',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'আপনার কাছে ইতিমধ্যে এই নামের একটি ক্লাউড ডকুমেন্ট এখানে রয়েছে।',\n    'pickerView.error.addALibrary.permission' : 'এই লাইব্রেরি যোগ করার অনুমতি আপনার নেই',\n    'pickerViewFooter.button.add' : 'যোগ করুন',\n    'pickerViewFooter.button.cancel' : 'বাতিল করুন',\n    'pickerViewFooter.button.copy' : 'এখানে কপি করুন',\n    'pickerViewFooter.button.move' : 'এখানে সরিয়ে দিন',\n    'pickerViewFooter.button.moveFrom' : 'সরিয়ে দিন',\n    'pickerViewFooter.button.choose' : 'নির্বাচন করুন',\n    'pickerViewFooter.button.save' : 'সেভ করুন',\n    'pickerViewFooter.button.switchToOSPicker' : 'আপনার কম্পিউটারে',\n    'pickerViewFooter.button.save.offline' : 'ইন্টারনেট সংযোগ প্রয়োজন',\n    'pickerViewFooter.button.saveAsCopy' : 'সেভ করুন',\n    'pickerViewFooter.button.export' : 'এক্সপোর্ট করুন',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'জায়গা',\n    'pickerViewFooter.checkbox.placeLink' : 'লিঙ্ক করা হয়েছে',\n    'pickerViewFooter.tooltip.placeLink' : 'আপনি শুধুমাত্র এই আইটেমটি একটি লিঙ্কযুক্ত অ্যাসেট হিসেবে স্থাপন করতে পারেন।',\n    'pickerViewFooter.tooltip.placeEmbed' : 'আপনি এই আইটেমটি শুধু এম্বেড করা অবস্থায় স্থাপন করতে পারেন।',\n    'pickerViewFooter.saveAs.format.label' : 'ফর্ম্যাট',\n    'onboardingCdp.title' : 'আপনি যদি ক্লাউড ডকুমেন্ট হিসেবে সেভ করেন তবে আপনি অনেক বেশি করতে পারেন',\n    'onboardingCdp.tooltip' : 'আপনি যদি আপনার কম্পিউটারে সেভ করেন, তাহলে আপনি ক্লাউড বৈশিষ্ট্যগুলি ব্যবহার করতে পারবেন না।',\n    'onboardingCdp.tooltip.link' : 'আরও জানুন',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe ক্লাউড স্টোরেজে',\n    'onboardingCdp.table.header.saveToLocal' : 'আপনার কম্পিউটারে',\n    'onboardingCdp.button.saveToCloud' : 'Adobe ক্লাউড স্টোরেজে সেভ করুন',\n    'onboardingCdp.feature.offline' : 'অফলাইন অ্যাক্সেস',\n    'onboardingCdp.feature.syncing' : 'আপনার সকল ডিভাইসে ক্লাউড সিংক হচ্ছে',\n    'onboardingCdp.feature.autosave' : 'প্রত্যেক পরিবর্তন স্বয়ংক্রিয়ভাবে সেভ করা হচ্ছে',\n    'onboardingCdp.feature.versionHistory' : 'সংস্করণ ইতিহাস',\n    'onboardingCdp.feature.inviteToEdit' : 'এডিট করার জন্য আসতে বলুন',\n    'onboardingCdp.button.saveToLocal' : 'আপনার কম্পিউটারে সেভ করুন',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'আবার দেখাবেন না',\n    'uap.title.place' : 'Adobe ক্লাউড স্টোরেজ থেকে স্থানান্তর করুন',\n    'uap.title.placeLinkOrEmbed' : 'Adobe ক্লাউড স্টোরেজ থেকে স্থানান্তর করুন',\n    'uap.title.linkAssets' : 'Adobe ক্লাউড স্টোরেজ থেকে লিঙ্ক',\n    'uap.title.open' : 'Adobe ক্লাউড স্টোরেজ থেকে খুলুন',\n    'uap.title.saveAs' : 'Adobe ক্লাউড স্টোরেজে সেভ করুন',\n    'uap.title.saveAsCopy' : 'Adobe ক্লাউড স্টোরেজে সেভ করুন',\n    'uap.title.saveToFolder' : 'Adobe ক্লাউড স্টোরেজে সেভ করুন',\n    'uap.title.export' : 'Adobe ক্লাউড স্টোরেজে এক্সপোর্ট করুন',\n    'uap.title.copy' : 'Adobe ক্লাউড স্টোরেজে কপি করুন',\n    'uap.title.move' : 'Adobe ক্লাউডে সরিয়ে দিন',\n    'uap.title.moveFrom' : 'Adobe ক্লাউডে সরিয়ে দিন',\n    'uap.title.add' : 'Adobe ক্লাউড স্টোরেজ থেকে যোগ করুন',\n    'uap.mobile.tabs.locations' : 'অবস্থানগুলি',\n    'uap.mobile.projects.heading.name' : 'প্রোজেক্ট',\n    'uap.fileFormatDropdown.label' : 'ফর্ম্যাট',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Znovu nezobrazovat',\n    'confirmationDialog.confirm.default' : 'Pokračovat',\n    'confirmationDialog.cancel.default' : 'Zrušit',\n    'confirmationDialog.learnMore' : 'Další informace',\n    'toast.warning.place' : 'Propojené cloudové dokumenty zatím nelze umístit. Místo toho pokračujte ve vkládání.',\n    'toast.warning.placeLinkOrEmbed' : 'Vámi umístěné datové zdroje jsou nyní ve výchozím nastavení propojeny s originály. To znamená, že pokud je v jednom místě upravíte, projeví se tyto změny všude.',\n    'toast.warning.saveAs.invalidFormat' : 'Je nám líto, ale není možné zde ukládat soubory ve formátu {genericFormat}. Soubor se uloží ve formátu {adobeFormat}.',\n    'pickerView.recent' : 'Poslední',\n    'pickerView.cloud_docs' : 'Vaše soubory',\n    'pickerView.shared_with_you' : 'Sdíleno s vámi',\n    'pickerView.projects' : 'Projekty',\n    'pickerView.firefly_history' : 'Historie Firefly',\n    'pickerView.computer' : 'Váš počítač...',\n    'pickerView.saveAsInput' : 'Uložit jako',\n    'pickerView.exportInput' : 'Exportovat jako',\n    'pickerView.sketch_library' : 'Převést knihovnu aplikace Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'Název souboru je neplatný.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Tento název obsahuje neplatné znaky.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Název nesmí končit tečkou ani mezerou.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Název nesmí obsahovat tyto znaky: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Názvy můžou mít maximálně 200 znaků.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Dokument v cloudu s tímto názvem už tu máte.',\n    'pickerView.error.addALibrary.permission' : 'Nemáte oprávnění k přidání této knihovny',\n    'pickerViewFooter.button.add' : 'Přidat',\n    'pickerViewFooter.button.cancel' : 'Zrušit',\n    'pickerViewFooter.button.copy' : 'Kopírovat zde',\n    'pickerViewFooter.button.move' : 'Přesunout sem',\n    'pickerViewFooter.button.moveFrom' : 'Přesunout',\n    'pickerViewFooter.button.choose' : 'Vybrat',\n    'pickerViewFooter.button.save' : 'Uložit',\n    'pickerViewFooter.button.switchToOSPicker' : 'Ve vlastním počítači',\n    'pickerViewFooter.button.save.offline' : 'Je požadováno připojení k internetu',\n    'pickerViewFooter.button.saveAsCopy' : 'Uložit',\n    'pickerViewFooter.button.export' : 'Exportovat',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Umístit',\n    'pickerViewFooter.checkbox.placeLink' : 'Svázáno',\n    'pickerViewFooter.tooltip.placeLink' : 'Tuto položku můžete umístit pouze jako propojené datové zdroje.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Tuto položku můžete umístit pouze jako vloženou.',\n    'pickerViewFooter.saveAs.format.label' : 'Formát',\n    'onboardingCdp.title' : 'Pokud soubor uložíte jako cloudový dokument, budete moci využít řadu užitečných funkcí',\n    'onboardingCdp.tooltip' : 'Pokud soubor uložíte do počítače, nebudete moci používat cloudové funkce.',\n    'onboardingCdp.tooltip.link' : 'Další informace',\n    'onboardingCdp.table.header.saveToCloud' : 'Cloudové úložiště Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'Ve vlastním počítači',\n    'onboardingCdp.button.saveToCloud' : 'Uložit do cloudového úložiště Adobe',\n    'onboardingCdp.feature.offline' : 'Přístup offline',\n    'onboardingCdp.feature.syncing' : 'Cloudová synchronizace se všemi zařízeními',\n    'onboardingCdp.feature.autosave' : 'Automatické ukládání všech změn',\n    'onboardingCdp.feature.versionHistory' : 'Historie verzí',\n    'onboardingCdp.feature.inviteToEdit' : 'Přizvat k úpravám',\n    'onboardingCdp.button.saveToLocal' : 'Uložit do počítače',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Znovu nezobrazovat',\n    'uap.title.place' : 'Umístit z cloudového úložiště Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Umístit z cloudového úložiště Adobe',\n    'uap.title.linkAssets' : 'Propojit odkaz z cloudového úložiště Adobe',\n    'uap.title.open' : 'Otevřít z cloudového úložiště Adobe',\n    'uap.title.saveAs' : 'Uložit do cloudového úložiště Adobe',\n    'uap.title.saveAsCopy' : 'Uložit do cloudového úložiště Adobe',\n    'uap.title.saveToFolder' : 'Uložit do cloudového úložiště Adobe',\n    'uap.title.export' : 'Exportovat do cloudového úložiště Adobe',\n    'uap.title.copy' : 'Kopírovat do cloudového úložiště Adobe',\n    'uap.title.move' : 'Přesunout do cloudu Adobe',\n    'uap.title.moveFrom' : 'Přesunout do cloudu Adobe',\n    'uap.title.add' : 'Přidat z cloudového úložiště Adobe',\n    'uap.mobile.tabs.locations' : 'Umístění',\n    'uap.mobile.projects.heading.name' : 'Projekty',\n    'uap.fileFormatDropdown.label' : 'Formát',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Peidiwch â dangos hyn eto',\n    'confirmationDialog.confirm.default' : 'Bwrw ymlaen',\n    'confirmationDialog.cancel.default' : 'Canslo',\n    'confirmationDialog.learnMore' : 'Dysgu mwy',\n    'toast.warning.place' : 'Methu gosod dogfennau\\'r cwmwl cysylltiedig eto. Parhewch i fewnosod yn lle hynny.',\n    'toast.warning.placeLinkOrEmbed' : 'Mae\\'r asedau rydych chi\\'n eu gosod bellach yn gysylltiedig â\\'r gwreiddiol yn ddiofyn. Mae hynny\\'n golygu os ydych chi\\'n ei olygu mewn un lle, bydd y newidiadau hynny\\'n cael eu hadlewyrchu ym mhobman.',\n    'toast.warning.saveAs.invalidFormat' : 'Mae\\'n ddrwg gennym, ni allwch gadw ffeiliau {genericFormat} yma. Bydd eich ffeil yn cael ei gadw fel {adobeFormat}.',\n    'pickerView.recent' : 'Diweddar',\n    'pickerView.cloud_docs' : 'Eich ffeiliau',\n    'pickerView.shared_with_you' : 'Rhannwyd â chi',\n    'pickerView.projects' : 'Prosiectau',\n    'pickerView.firefly_history' : 'Hanes Firefly',\n    'pickerView.computer' : 'Eich Cyfrifiadur...',\n    'pickerView.saveAsInput' : 'Cadw Fel',\n    'pickerView.exportInput' : 'Allgludo Fel',\n    'pickerView.sketch_library' : 'Trosi\\'r Llyfrgell Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'Mae enw\\'r ffeil yn annilys.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Mae\\'n ddrwg gennym, mae\\'r enw hwn yn cynnwys nod(au) annilys.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Does dim modd i enw orffen gyda \".\" neu le gwag.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Does dim modd i\\'r enw gynnwys y nodau canlynol: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Does dim modd i enwau gynnwys mwy na 200 o nodau.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Mae gennych chi ddogfen y Cwmwl yma sydd â\\'r enw hwn eisoes.',\n    'pickerView.error.addALibrary.permission' : 'Does gennych chi ddim hawl i ychwanegu\\'r llyfrgell hon',\n    'pickerViewFooter.button.add' : 'Ychwanegu',\n    'pickerViewFooter.button.cancel' : 'Canslo',\n    'pickerViewFooter.button.copy' : 'Copïwch yma',\n    'pickerViewFooter.button.move' : 'Symud yma',\n    'pickerViewFooter.button.moveFrom' : 'Symud',\n    'pickerViewFooter.button.choose' : 'Dewiswch',\n    'pickerViewFooter.button.save' : 'Cadw',\n    'pickerViewFooter.button.switchToOSPicker' : 'Ar eich cyfrifiadur',\n    'pickerViewFooter.button.save.offline' : 'Angen cysylltiad â\\'r rhyngrwyd',\n    'pickerViewFooter.button.saveAsCopy' : 'Cadw',\n    'pickerViewFooter.button.export' : 'Allgludo',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Lle',\n    'pickerViewFooter.checkbox.placeLink' : 'Cysylltiedig',\n    'pickerViewFooter.tooltip.placeLink' : 'Dim ond fel ased cysylltiedig y gallwch chi osod yr eitem hon.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Dim ond fel un sydd wedi\\'i mewnosod y gallwch chi osod yr eitem hon.',\n    'pickerViewFooter.saveAs.format.label' : 'Fformat',\n    'onboardingCdp.title' : 'Gallwch wneud llawer mwy os byddwch yn cadw fel dogfen y cwmwl',\n    'onboardingCdp.tooltip' : 'Os byddwch yn cadw i\\'ch cyfrifiadur, ni fyddwch yn gallu defnyddio nodweddion y cwmwl.',\n    'onboardingCdp.tooltip.link' : 'Dysgu mwy',\n    'onboardingCdp.table.header.saveToCloud' : 'Storfa Adobe cloud',\n    'onboardingCdp.table.header.saveToLocal' : 'Ar eich cyfrifiadur',\n    'onboardingCdp.button.saveToCloud' : 'Cadw i storfa Adobe cloud',\n    'onboardingCdp.feature.offline' : 'Mynediad all-lein',\n    'onboardingCdp.feature.syncing' : 'Cysoni cwmwl â\\'ch holl ddyfeisiau',\n    'onboardingCdp.feature.autosave' : 'Cadw pob newid yn awtomatig',\n    'onboardingCdp.feature.versionHistory' : 'Hanes fersiynau',\n    'onboardingCdp.feature.inviteToEdit' : 'Gwahodd i olygu',\n    'onboardingCdp.button.saveToLocal' : 'Cadwch ar eich cyfrifiadur',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Peidiwch â dangos hyn eto',\n    'uap.title.place' : 'Gosod o storfa Adobe cloud',\n    'uap.title.placeLinkOrEmbed' : 'Gosod o storfa Adobe cloud',\n    'uap.title.linkAssets' : 'Cysylltu o storfa Adobe cloud',\n    'uap.title.open' : 'Agor o storfa Adobe cloud',\n    'uap.title.saveAs' : 'Cadw i storfa Adobe cloud',\n    'uap.title.saveAsCopy' : 'Cadw i storfa Adobe cloud',\n    'uap.title.saveToFolder' : 'Cadw i storfa Adobe cloud',\n    'uap.title.export' : 'Allgludo i storfa Adobe cloud',\n    'uap.title.copy' : 'Copïo i storfa Adobe cloud',\n    'uap.title.move' : 'Symud yn Adobe cloud',\n    'uap.title.moveFrom' : 'Symud yn Adobe cloud',\n    'uap.title.add' : 'Ychwanegu o storfa cwmwl Adobe',\n    'uap.mobile.tabs.locations' : 'Lleoliadau',\n    'uap.mobile.projects.heading.name' : 'Prosiectau',\n    'uap.fileFormatDropdown.label' : 'Fformat',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Vis ikke igen',\n    'confirmationDialog.confirm.default' : 'Fortsæt',\n    'confirmationDialog.cancel.default' : 'Annuller',\n    'confirmationDialog.learnMore' : 'Få mere at vide',\n    'toast.warning.place' : 'Kan endnu ikke placere sammenkædede clouddoumenter. Fortsæt for at integrere i stedet.',\n    'toast.warning.placeLinkOrEmbed' : 'Aktiver, du placerer, er nu knyttet til originalen som standard. Det betyder, at hvis du redigerer ét sted, afspejles disse ændringer overalt.',\n    'toast.warning.saveAs.invalidFormat' : 'Beklager, men du kan ikke gemme {genericFormat}-filer her. Din fil gemmes som {adobeFormat}.',\n    'pickerView.recent' : 'Seneste',\n    'pickerView.cloud_docs' : 'Dine filer',\n    'pickerView.shared_with_you' : 'Delt med dig',\n    'pickerView.projects' : 'Projekter',\n    'pickerView.firefly_history' : 'Firefly-historik',\n    'pickerView.computer' : 'Din computer...',\n    'pickerView.saveAsInput' : 'Gem som',\n    'pickerView.exportInput' : 'Eksportér som',\n    'pickerView.sketch_library' : 'Konverter Sketch bibliotek...',\n    'pickerView.error.saveAsOrExport.default' : 'Filnavnet er ugyldigt.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Beklager, men navnet indeholder ugyldige tegn.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Navnet må ikke slutte med \".\" eller tomt mellemrum.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Navnet må ikke indeholde følgende tegn: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Navne må ikke indeholde mere end 200 tegn.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Du har allerede et cloud-dokument her med dette navn.',\n    'pickerView.error.addALibrary.permission' : 'Du har ikke tilladelse til at tilføje dette bibliotek',\n    'pickerViewFooter.button.add' : 'Tilføj',\n    'pickerViewFooter.button.cancel' : 'Annuller',\n    'pickerViewFooter.button.copy' : 'Kopiér her',\n    'pickerViewFooter.button.move' : 'Flyt hertil',\n    'pickerViewFooter.button.moveFrom' : 'Flyt',\n    'pickerViewFooter.button.choose' : 'Vælg',\n    'pickerViewFooter.button.save' : 'Gem',\n    'pickerViewFooter.button.switchToOSPicker' : 'På computeren',\n    'pickerViewFooter.button.save.offline' : 'Internetforbindelse er påkrævet',\n    'pickerViewFooter.button.saveAsCopy' : 'Gem',\n    'pickerViewFooter.button.export' : 'Eksportér',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Placer',\n    'pickerViewFooter.checkbox.placeLink' : 'Linket',\n    'pickerViewFooter.tooltip.placeLink' : 'Du kan kun placere dette element som et sammenkædet aktiv.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Du kan kun placere dette element som integreret.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Du kan gøre meget mere, hvis du gemmer som et cloud-dokument',\n    'onboardingCdp.tooltip' : 'Hvis du gemmer på din computer, kan du ikke bruge cloud-funktioner.',\n    'onboardingCdp.tooltip.link' : 'Få mere at vide',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe cloud-lagring',\n    'onboardingCdp.table.header.saveToLocal' : 'På computeren',\n    'onboardingCdp.button.saveToCloud' : 'Gem i Adobe cloud-lagring',\n    'onboardingCdp.feature.offline' : 'Offline-adgang',\n    'onboardingCdp.feature.syncing' : 'Cloud-synkroniserer til alle dine enheder',\n    'onboardingCdp.feature.autosave' : 'Gemmer alle ændringer automatisk',\n    'onboardingCdp.feature.versionHistory' : 'Versionshistorik',\n    'onboardingCdp.feature.inviteToEdit' : 'Inviter til at redigere',\n    'onboardingCdp.button.saveToLocal' : 'Gem på computeren',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Vis ikke igen',\n    'uap.title.place' : 'Placer fra Adobe cloud-lagring',\n    'uap.title.placeLinkOrEmbed' : 'Placer fra Adobe cloud-lagring',\n    'uap.title.linkAssets' : 'Link fra Adobe cloud-lagring',\n    'uap.title.open' : 'Åbn fra Adobe cloud-lagring',\n    'uap.title.saveAs' : 'Gem i Adobe cloud-lagring',\n    'uap.title.saveAsCopy' : 'Gem i Adobe cloud-lagring',\n    'uap.title.saveToFolder' : 'Gem i Adobe cloud-lagring',\n    'uap.title.export' : 'Eksportér til Adobe cloud-lagring',\n    'uap.title.copy' : 'Kopiér til Adobe cloud-lagring',\n    'uap.title.move' : 'Flyt i Adobe-cloud',\n    'uap.title.moveFrom' : 'Flyt i Adobe-cloud',\n    'uap.title.add' : 'Tilføj fra Adobe cloud-lagring',\n    'uap.mobile.tabs.locations' : 'Placeringer',\n    'uap.mobile.projects.heading.name' : 'Projekter',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Nicht mehr anzeigen',\n    'confirmationDialog.confirm.default' : 'Weiter',\n    'confirmationDialog.cancel.default' : 'Abbrechen',\n    'confirmationDialog.learnMore' : 'Weitere Infos',\n    'toast.warning.place' : 'Verknüpfte Cloud-Dokumente können noch nicht platziert werden. Betten Sie sie stattdessen ein.',\n    'toast.warning.placeLinkOrEmbed' : 'Von Ihnen platzierte Assets sind jetzt standardmäßig mit dem Original verknüpft. Das heißt, wenn Sie es an einer Stelle bearbeiten, werden diese Änderungen überall widergespiegelt.',\n    'toast.warning.saveAs.invalidFormat' : '{genericFormat}-Dateien können hier nicht gespeichert werden. Die Datei wird als {adobeFormat} gespeichert.',\n    'pickerView.recent' : 'Zuletzt verwendet',\n    'pickerView.cloud_docs' : 'Deine Dateien',\n    'pickerView.shared_with_you' : 'Für Sie freigegeben',\n    'pickerView.projects' : 'Projekte',\n    'pickerView.firefly_history' : 'Firefly-Verlauf',\n    'pickerView.computer' : 'Dein Computer…',\n    'pickerView.saveAsInput' : 'Speichern unter',\n    'pickerView.exportInput' : 'Exportieren als',\n    'pickerView.sketch_library' : 'Sketch-Bibliothek konvertieren...',\n    'pickerView.error.saveAsOrExport.default' : 'Der Dateiname ist ungültig.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Dieser Name enthält unzulässige Zeichen.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Der Name darf nicht mit „.“ oder einem Leerzeichen enden.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Folgende Zeichen sind in Namen unzulässig: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Namen dürfen nicht mehr als 200 Zeichen umfassen.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'An diesem Ort ist bereits ein Cloud-Dokument mit diesem Namen vorhanden.',\n    'pickerView.error.addALibrary.permission' : 'Sie sind nicht berechtigt, diese Bibliothek hinzuzufügen',\n    'pickerViewFooter.button.add' : 'Hinzufügen',\n    'pickerViewFooter.button.cancel' : 'Abbrechen',\n    'pickerViewFooter.button.copy' : 'Kopie hier einfügen',\n    'pickerViewFooter.button.move' : 'Hierher verschieben',\n    'pickerViewFooter.button.moveFrom' : 'Verschieben',\n    'pickerViewFooter.button.choose' : 'Wählen',\n    'pickerViewFooter.button.save' : 'Speichern',\n    'pickerViewFooter.button.switchToOSPicker' : 'Auf deinem Computer',\n    'pickerViewFooter.button.save.offline' : 'Internetverbindung erforderlich',\n    'pickerViewFooter.button.saveAsCopy' : 'Speichern',\n    'pickerViewFooter.button.export' : 'Exportieren',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Platzieren',\n    'pickerViewFooter.checkbox.placeLink' : 'Verknüpft',\n    'pickerViewFooter.tooltip.placeLink' : 'Du kannst dieses Element nur als verknüpftes Asset platzieren.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Du kannst dieses Element nur als eingebettet platzieren.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Du hast viel mehr Möglichkeiten, wenn du das Dokument als Cloud-Dokument speicherst',\n    'onboardingCdp.tooltip' : 'Wenn Sie das Dokument auf Ihrem Computer speichern, können Sie die Cloud-Funktionen nicht nutzen.',\n    'onboardingCdp.tooltip.link' : 'Weitere Infos',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe Cloud-Speicherplatz',\n    'onboardingCdp.table.header.saveToLocal' : 'Auf deinem Computer',\n    'onboardingCdp.button.saveToCloud' : 'In Adobe Cloud-Speicherplatz speichern',\n    'onboardingCdp.feature.offline' : 'Offline-Zugriff',\n    'onboardingCdp.feature.syncing' : 'Cloud-Synchronisation mit all deinen Geräten',\n    'onboardingCdp.feature.autosave' : 'Automatisches Speichern jeder Änderung',\n    'onboardingCdp.feature.versionHistory' : 'Versionsverlauf',\n    'onboardingCdp.feature.inviteToEdit' : 'Zum Bearbeiten einladen',\n    'onboardingCdp.button.saveToLocal' : 'Auf deinem Computer speichern',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Nicht mehr anzeigen',\n    'uap.title.place' : 'Aus Adobe Cloud-Speicherplatz platzieren',\n    'uap.title.placeLinkOrEmbed' : 'Aus Adobe Cloud-Speicherplatz platzieren',\n    'uap.title.linkAssets' : 'Link aus Adobe Cloud-Speicherplatz',\n    'uap.title.open' : 'Aus Adobe Cloud-Speicherplatz öffnen',\n    'uap.title.saveAs' : 'In Adobe Cloud-Speicherplatz speichern',\n    'uap.title.saveAsCopy' : 'In Adobe Cloud-Speicherplatz speichern',\n    'uap.title.saveToFolder' : 'In Adobe Cloud-Speicherplatz speichern',\n    'uap.title.export' : 'Nach Adobe Cloud-Speicherplatz exportieren',\n    'uap.title.copy' : 'In Adobe Cloud-Speicherplatz kopieren',\n    'uap.title.move' : 'In Adobe-Cloud verschieben',\n    'uap.title.moveFrom' : 'In Adobe-Cloud verschieben',\n    'uap.title.add' : 'Aus Adobe Cloud-Speicher hinzufügen',\n    'uap.mobile.tabs.locations' : 'Positionen',\n    'uap.mobile.projects.heading.name' : 'Projekte',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Να μην εμφανιστεί ξανά',\n    'confirmationDialog.confirm.default' : 'Συνέχεια',\n    'confirmationDialog.cancel.default' : 'Άκυρο',\n    'confirmationDialog.learnMore' : 'Μάθετε περισσότερα',\n    'toast.warning.place' : 'Δεν είναι δυνατή η τοποθέτηση συνδεδεμένων εγγράφων cloud ακόμα. Αντ\\' αυτού, συνεχίστε την ενσωμάτωση.',\n    'toast.warning.placeLinkOrEmbed' : 'Τα στοιχεία που τοποθετείτε συνδέονται τώρα με το αρχικό από προεπιλογή. Αυτό σημαίνει ότι αν το επεξεργαστείτε σε ένα μέρος, αυτές οι αλλαγές εφαρμόζονται παντού.',\n    'toast.warning.saveAs.invalidFormat' : 'Δυστυχώς δεν είναι δυνατή η αποθήκευση αρχείων {genericFormat} εδώ. Το αρχείο σας θα αποθηκευτεί ως {adobeFormat}.',\n    'pickerView.recent' : 'Πρόσφατο',\n    'pickerView.cloud_docs' : 'Τα αρχεία σας',\n    'pickerView.shared_with_you' : 'Κοινή χρήση με εσάς',\n    'pickerView.projects' : 'Έργα',\n    'pickerView.firefly_history' : 'Ιστορικό Firefly',\n    'pickerView.computer' : 'Στον υπολογιστή σας...',\n    'pickerView.saveAsInput' : 'Αποθήκευση ως',\n    'pickerView.exportInput' : 'Εξαγωγή ως',\n    'pickerView.sketch_library' : 'Μετατροπή βιβλιοθήκης σκίτσων...',\n    'pickerView.error.saveAsOrExport.default' : 'Το όνομα αρχείου δεν είναι έγκυρο.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Αυτό το όνομα περιέχει μη έγκυρους χαρακτήρες.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Το όνομα δεν πρέπει να λήγει σε «.» ή κενό διάστημα.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Το όνομα δεν πρέπει να περιέχει τους ακόλουθους χαρακτήρες: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Τα ονόματα δεν πρέπει να περιλαμβάνουν περισσότερους από 200 χαρακτήρες.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Έχετε ήδη ένα έγγραφο cloud εδώ με αυτό το όνομα.',\n    'pickerView.error.addALibrary.permission' : 'Δεν έχετε δικαιώματα για να προσθέσετε αυτήν τη βιβλιοθήκη',\n    'pickerViewFooter.button.add' : 'Προσθήκη',\n    'pickerViewFooter.button.cancel' : 'Άκυρο',\n    'pickerViewFooter.button.copy' : 'Αντιγραφή εδώ',\n    'pickerViewFooter.button.move' : 'Μετακίνηση εδώ',\n    'pickerViewFooter.button.moveFrom' : 'Μετακίνηση',\n    'pickerViewFooter.button.choose' : 'Επιλογή',\n    'pickerViewFooter.button.save' : 'Αποθήκευση',\n    'pickerViewFooter.button.switchToOSPicker' : 'Στον υπολογιστή σας',\n    'pickerViewFooter.button.save.offline' : 'Απαιτείται σύνδεση στο Internet',\n    'pickerViewFooter.button.saveAsCopy' : 'Αποθήκευση',\n    'pickerViewFooter.button.export' : 'Εξαγωγή',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Τοποθέτηση',\n    'pickerViewFooter.checkbox.placeLink' : 'Συνδεδεμένο',\n    'pickerViewFooter.tooltip.placeLink' : 'Μπορείτε να τοποθετήσετε αυτό το στοιχείο μόνο ως συνδεδεμένο στοιχείο.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Μπορείτε να τοποθετήσετε αυτό το στοιχείο μόνο ως ενσωματωμένο.',\n    'pickerViewFooter.saveAs.format.label' : 'Μορφή',\n    'onboardingCdp.title' : 'Θα μπορείτε να κάνετε πολλά περισσότερα, αν το αποθηκεύσετε ως έγγραφο cloud',\n    'onboardingCdp.tooltip' : 'Αν κάνετε αποθήκευση στον υπολογιστή σας, δεν θα μπορείτε να χρησιμοποιείτε τις λειτουργίες του cloud.',\n    'onboardingCdp.tooltip.link' : 'Μάθετε περισσότερα',\n    'onboardingCdp.table.header.saveToCloud' : 'Χώρος αποθήκευσης στο cloud της Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'Στον υπολογιστή σας',\n    'onboardingCdp.button.saveToCloud' : 'Αποθήκευση στον χώρο αποθήκευσης στο cloud της Adobe',\n    'onboardingCdp.feature.offline' : 'Πρόσβαση εκτός σύνδεσης',\n    'onboardingCdp.feature.syncing' : 'Συγχρονισμός cloud σε όλες τις συσκευές σας',\n    'onboardingCdp.feature.autosave' : 'Αυτόματη αποθήκευση κάθε αλλαγής',\n    'onboardingCdp.feature.versionHistory' : 'Ιστορικό εκδόσεων',\n    'onboardingCdp.feature.inviteToEdit' : 'Πρόσκληση για επεξεργασία',\n    'onboardingCdp.button.saveToLocal' : 'Αποθήκευση στον υπολογιστή σας',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Να μην εμφανιστεί ξανά',\n    'uap.title.place' : 'Τοποθέτηση από τον χώρο αποθήκευσης στο cloud της Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Τοποθέτηση από τον χώρο αποθήκευσης στο cloud της Adobe',\n    'uap.title.linkAssets' : 'Σύνδεσμος από τον χώρο αποθήκευσης στο cloud της Adobe',\n    'uap.title.open' : 'Άνοιγμα από τον χώρο αποθήκευσης στο cloud της Adobe',\n    'uap.title.saveAs' : 'Αποθήκευση στον χώρο αποθήκευσης στο cloud της Adobe',\n    'uap.title.saveAsCopy' : 'Αποθήκευση στον χώρο αποθήκευσης στο cloud της Adobe',\n    'uap.title.saveToFolder' : 'Αποθήκευση στον χώρο αποθήκευσης στο cloud της Adobe',\n    'uap.title.export' : 'Εξαγωγή στον χώρο αποθήκευσης στο cloud της Adobe',\n    'uap.title.copy' : 'Αντιγραφή στον χώρο αποθήκευσης στο cloud της Adobe',\n    'uap.title.move' : 'Μετακίνηση στο cloud της Adobe',\n    'uap.title.moveFrom' : 'Μετακίνηση στο cloud της Adobe',\n    'uap.title.add' : 'Προσθήκη από τον χώρο αποθήκευσης στο cloud της Adobe',\n    'uap.mobile.tabs.locations' : 'Θέσεις',\n    'uap.mobile.projects.heading.name' : 'Έργα',\n    'uap.fileFormatDropdown.label' : 'Μορφή',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain': 'Don\\'t show again',\n    'confirmationDialog.confirm.default': 'Continue',\n    'confirmationDialog.cancel.default': 'Cancel',\n    'confirmationDialog.learnMore': 'Learn more',\n    'toast.warning.place': 'Can\\'t place linked cloud documents yet. Continue to embed instead.',\n    'toast.warning.placeLinkOrEmbed': 'Assets you place are now linked to the original by default. That means if you edit it in one place, those changes are reflected everywhere.',\n    'toast.warning.saveAs.invalidFormat': 'Sorry, you can\\'t save {genericFormat} files here. Your file will be saved as {adobeFormat}.',\n    'pickerView.recent': 'Recent',\n    'pickerView.cloud_docs': 'Your files',\n    'pickerView.shared_with_you': 'Shared with you',\n    'pickerView.projects': 'Projects',\n    'pickerView.firefly_history': 'Firefly history',\n    'pickerView.computer': 'Your Computer...',\n    'pickerView.saveAsInput': 'Save As',\n    'pickerView.exportInput': 'Export As',\n    'pickerView.sketch_library': 'Convert Sketch Library...',\n    'pickerView.error.saveAsOrExport.default': 'File name is invalid.',\n    'pickerView.error.saveAsOrExport.invalidName': 'Sorry, this name contains invalid character(s).',\n    'pickerView.error.saveAsOrExport.invalidEnd': 'Name cannot end with \".\" or empty space.',\n    'pickerView.error.saveAsOrExport.invalidChar': 'Name cannot contain the following characters: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction': 'Names can\\'t be longer than 200 characters.',\n    'pickerView.error.saveAsOrExport.duplicateName': 'You already have a cloud document here with this name.',\n    'pickerView.error.addALibrary.permission': 'You don\\'t have permission to add this library',\n    'pickerViewFooter.button.add': 'Add',\n    'pickerViewFooter.button.cancel': 'Cancel',\n    'pickerViewFooter.button.copy': 'Copy here',\n    'pickerViewFooter.button.move': 'Move here',\n    'pickerViewFooter.button.moveFrom': 'Move',\n    'pickerViewFooter.button.choose': 'Choose',\n    'pickerViewFooter.button.save': 'Save',\n    'pickerViewFooter.button.switchToOSPicker': 'On your computer',\n    'pickerViewFooter.button.save.offline': 'Internet connection required',\n    'pickerViewFooter.button.saveAsCopy': 'Save',\n    'pickerViewFooter.button.export': 'Export',\n    'pickerViewFooter.button.placeLinkOrEmbed': 'Place',\n    'pickerViewFooter.checkbox.placeLink': 'Linked',\n    'pickerViewFooter.tooltip.placeLink': 'You can only place this item as a linked asset.',\n    'pickerViewFooter.tooltip.placeEmbed': 'You can only place this item as embedded.',\n    'pickerViewFooter.saveAs.format.label': 'Format',\n    'onboardingCdp.title': 'You can do much more if you save as a cloud document',\n    'onboardingCdp.tooltip': 'If you save to your computer, you won\\'t be able to use cloud features.',\n    'onboardingCdp.tooltip.link': 'Learn more',\n    'onboardingCdp.table.header.saveToCloud': 'Adobe cloud storage',\n    'onboardingCdp.table.header.saveToLocal': 'On your computer',\n    'onboardingCdp.button.saveToCloud': 'Save to Adobe cloud storage',\n    'onboardingCdp.feature.offline': 'Offline access',\n    'onboardingCdp.feature.syncing': 'Cloud syncing to all your devices',\n    'onboardingCdp.feature.autosave': 'Autosaving every change',\n    'onboardingCdp.feature.versionHistory': 'Version history',\n    'onboardingCdp.feature.inviteToEdit': 'Invite to edit',\n    'onboardingCdp.button.saveToLocal': 'Save on your computer',\n    'onboardingCdp.checkbox.doNotShowAgain': 'Don\\'t show again',\n    'uap.title.place': 'Place from Adobe cloud storage',\n    'uap.title.placeLinkOrEmbed': 'Place from Adobe cloud storage',\n    'uap.title.linkAssets': 'Link from Adobe cloud storage',\n    'uap.title.open': 'Open from Adobe cloud storage',\n    'uap.title.saveAs': 'Save to Adobe cloud storage',\n    'uap.title.saveAsCopy': 'Save to Adobe cloud storage',\n    'uap.title.saveToFolder': 'Save to Adobe cloud storage',\n    'uap.title.export': 'Export to Adobe cloud storage',\n    'uap.title.copy': 'Copy to Adobe cloud storage',\n    'uap.title.move': 'Move in Adobe cloud',\n    'uap.title.moveFrom': 'Move in Adobe cloud',\n    'uap.title.add': 'Add from Adobe cloud storage',\n    'uap.mobile.tabs.locations': 'Locations',\n    'uap.mobile.projects.heading.name': 'Projects',\n    'uap.fileFormatDropdown.label': 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'No volver a mostrar',\n    'confirmationDialog.confirm.default' : 'Continuar',\n    'confirmationDialog.cancel.default' : 'Cancelar',\n    'confirmationDialog.learnMore' : 'Más información',\n    'toast.warning.place' : 'Todavía no se pueden insertar documentos en la nube vinculados. En su lugar, sigue usando el modo de incrustación.',\n    'toast.warning.placeLinkOrEmbed' : 'Los activos que coloques ahora quedan vinculados al original de forma predeterminada. Esto quiere decir que si los editas en un lugar, los cambios se reflejarán en todas partes.',\n    'toast.warning.saveAs.invalidFormat' : 'No puedes guardar archivos {genericFormat} aquí. El archivo se guardará como {adobeFormat}.',\n    'pickerView.recent' : 'Recientes',\n    'pickerView.cloud_docs' : 'Tus archivos',\n    'pickerView.shared_with_you' : 'Compartido contigo',\n    'pickerView.projects' : 'Proyectos',\n    'pickerView.firefly_history' : 'Historial de Firefly',\n    'pickerView.computer' : 'Tu ordenador...',\n    'pickerView.saveAsInput' : 'Guardar como',\n    'pickerView.exportInput' : 'Exportar como',\n    'pickerView.sketch_library' : 'Convertir biblioteca de Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'El nombre del archivo no es válido.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Este nombre incluye caracteres que no son válidos.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'El nombre no puede terminar con “.” o un espacio vacío.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'El nombre no puede incluir los siguientes caracteres: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Los nombres no pueden tener más de 200 caracteres.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Ya hay un documento en la nube aquí con este nombre.',\n    'pickerView.error.addALibrary.permission' : 'No tienes permiso para añadir esta biblioteca',\n    'pickerViewFooter.button.add' : 'Añadir',\n    'pickerViewFooter.button.cancel' : 'Cancelar',\n    'pickerViewFooter.button.copy' : 'Copiar aquí',\n    'pickerViewFooter.button.move' : 'Mover aquí',\n    'pickerViewFooter.button.moveFrom' : 'Mover',\n    'pickerViewFooter.button.choose' : 'Seleccionar',\n    'pickerViewFooter.button.save' : 'Guardar',\n    'pickerViewFooter.button.switchToOSPicker' : 'En su equipo',\n    'pickerViewFooter.button.save.offline' : 'Se requiere conexión a Internet',\n    'pickerViewFooter.button.saveAsCopy' : 'Guardar',\n    'pickerViewFooter.button.export' : 'Exportar',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Colocar',\n    'pickerViewFooter.checkbox.placeLink' : 'Enlazado',\n    'pickerViewFooter.tooltip.placeLink' : 'Solo puedes colocar este elemento como activo vinculado.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Solo puedes colocar este elemento como incrustado.',\n    'pickerViewFooter.saveAs.format.label' : 'Formato',\n    'onboardingCdp.title' : 'Puedes hacer mucho más si guardas tus archivos como documentos en la nube',\n    'onboardingCdp.tooltip' : 'Si guardas los archivos en el equipo, no podrás utilizar las funciones de la nube.',\n    'onboardingCdp.tooltip.link' : 'Más información',\n    'onboardingCdp.table.header.saveToCloud' : 'Almacenamiento en la nube de Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'En su equipo',\n    'onboardingCdp.button.saveToCloud' : 'Guardar en el almacenamiento en la nube de Adobe',\n    'onboardingCdp.feature.offline' : 'Acceso sin conexión',\n    'onboardingCdp.feature.syncing' : 'Sincronizando en la nube con todos tus dispositivos',\n    'onboardingCdp.feature.autosave' : 'Guardando automáticamente todos los cambios',\n    'onboardingCdp.feature.versionHistory' : 'Historial de versiones',\n    'onboardingCdp.feature.inviteToEdit' : 'Invitar a editar',\n    'onboardingCdp.button.saveToLocal' : 'Guardar en el ordenador',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'No volver a mostrar',\n    'uap.title.place' : 'Colocar desde el almacenamiento en la nube de Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Colocar desde el almacenamiento en la nube de Adobe',\n    'uap.title.linkAssets' : 'Vincular desde el almacenamiento en la nube de Adobe',\n    'uap.title.open' : 'Abrir desde el almacenamiento en la nube de Adobe',\n    'uap.title.saveAs' : 'Guardar en el almacenamiento en la nube de Adobe',\n    'uap.title.saveAsCopy' : 'Guardar en el almacenamiento en la nube de Adobe',\n    'uap.title.saveToFolder' : 'Guardar en el almacenamiento en la nube de Adobe',\n    'uap.title.export' : 'Exportar al almacenamiento en la nube de Adobe',\n    'uap.title.copy' : 'Copiar en el almacenamiento en la nube de Adobe',\n    'uap.title.move' : 'Mover a la nube de Adobe',\n    'uap.title.moveFrom' : 'Mover a la nube de Adobe',\n    'uap.title.add' : 'Añadir desde el almacenamiento en la nube de Adobe',\n    'uap.mobile.tabs.locations' : 'Ubicaciones',\n    'uap.mobile.projects.heading.name' : 'Proyectos',\n    'uap.fileFormatDropdown.label' : 'Formato',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Älä näytä uudelleen',\n    'confirmationDialog.confirm.default' : 'Jatka',\n    'confirmationDialog.cancel.default' : 'Peruuta',\n    'confirmationDialog.learnMore' : 'Lue lisää',\n    'toast.warning.place' : 'Linkitettyjä pilvidokumentteja ei voi sijoittaa vielä. Jatka sen sijaan niiden upottamista.',\n    'toast.warning.placeLinkOrEmbed' : 'Sijoittamasi resurssit linkitetään nyt oletusarvoisesti alkuperäiseen resurssiin. Tämä tarkoittaa, että jos muokkaat resurssia yhdessä paikassa, nämä muutokset otetaan käyttöön kaikkialla.',\n    'toast.warning.saveAs.invalidFormat' : 'Täällä ei valitettavasti voi tallentaa muodossa {genericFormat} olevia tiedostoja. Tiedostosi tallennetaan muodossa {adobeFormat}.',\n    'pickerView.recent' : 'Äskeiset',\n    'pickerView.cloud_docs' : 'Omat tiedostot',\n    'pickerView.shared_with_you' : 'Jaettu kanssasi',\n    'pickerView.projects' : 'Projektit',\n    'pickerView.firefly_history' : 'Fireflyn historia',\n    'pickerView.computer' : 'Tietokoneesi...',\n    'pickerView.saveAsInput' : 'Tallenna nimellä',\n    'pickerView.exportInput' : 'Vie muodossa',\n    'pickerView.sketch_library' : 'Muunna Sketch kirjasto...',\n    'pickerView.error.saveAsOrExport.default' : 'Tiedostonimi on virheellinen.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Tämä nimi sisältää valitettavasti virheellisiä merkkejä.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Nimi ei voi päättyä pisteeseen tai välilyöntiin.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Nimessä ei voi olla seuraavia merkkejä: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Nimet voivat olla enintään 200 merkkiä pitkiä.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Sinulla on jo tämänniminen pilvidokumentti.',\n    'pickerView.error.addALibrary.permission' : 'Sinulla ei ole oikeuksia lisätä mitään tähän kirjastoon.',\n    'pickerViewFooter.button.add' : 'Lisää',\n    'pickerViewFooter.button.cancel' : 'Peruuta',\n    'pickerViewFooter.button.copy' : 'Kopioi tänne',\n    'pickerViewFooter.button.move' : 'Siirrä tänne',\n    'pickerViewFooter.button.moveFrom' : 'Siirrä',\n    'pickerViewFooter.button.choose' : 'Valitse',\n    'pickerViewFooter.button.save' : 'Tallenna',\n    'pickerViewFooter.button.switchToOSPicker' : 'Tietokoneellasi',\n    'pickerViewFooter.button.save.offline' : 'Edellyttää Internet-yhteyttä',\n    'pickerViewFooter.button.saveAsCopy' : 'Tallenna',\n    'pickerViewFooter.button.export' : 'Vie',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Sijoita',\n    'pickerViewFooter.checkbox.placeLink' : 'Linkitetty',\n    'pickerViewFooter.tooltip.placeLink' : 'Voit sijoittaa tämän kohteen vain linkitettynä resurssina.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Voit sijoittaa tämän kohteen vain upotettuna.',\n    'pickerViewFooter.saveAs.format.label' : 'Muoto',\n    'onboardingCdp.title' : 'Saat käyttöösi paljon enemmän vaihtoehtoja, jos tallennat pilvidokumenttina.',\n    'onboardingCdp.tooltip' : 'Jos tallennat omaan tietokoneeseen, et voi käyttää pilvitoimintoja.',\n    'onboardingCdp.tooltip.link' : 'Lue lisää',\n    'onboardingCdp.table.header.saveToCloud' : 'Adoben pilvitallennustila',\n    'onboardingCdp.table.header.saveToLocal' : 'Tietokoneellasi',\n    'onboardingCdp.button.saveToCloud' : 'Tallenna Adoben pilvitallennustilaan',\n    'onboardingCdp.feature.offline' : 'Offline-käyttö',\n    'onboardingCdp.feature.syncing' : 'Pilvisynkronointi kaikkiin laitteisiin',\n    'onboardingCdp.feature.autosave' : 'Kaikki muutokset tallennetaan automaattisesti.',\n    'onboardingCdp.feature.versionHistory' : 'Versiohistoria',\n    'onboardingCdp.feature.inviteToEdit' : 'Kutsu muokkaamaan',\n    'onboardingCdp.button.saveToLocal' : 'Tallenna tietokoneeseen',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Älä näytä uudelleen',\n    'uap.title.place' : 'Sijoita Adoben pilvitallennustilasta',\n    'uap.title.placeLinkOrEmbed' : 'Sijoita Adoben pilvitallennustilasta',\n    'uap.title.linkAssets' : 'Linkitä Adoben pilvitallennustilasta',\n    'uap.title.open' : 'Avaa Adoben pilvitallennustilasta',\n    'uap.title.saveAs' : 'Tallenna Adoben pilvitallennustilaan',\n    'uap.title.saveAsCopy' : 'Tallenna Adoben pilvitallennustilaan',\n    'uap.title.saveToFolder' : 'Tallenna Adoben pilvitallennustilaan',\n    'uap.title.export' : 'Vie Adoben pilvitallennustilaan',\n    'uap.title.copy' : 'Kopioi Adoben pilvitallennustilaan',\n    'uap.title.move' : 'Siirrä Adoben pilvipalveluun',\n    'uap.title.moveFrom' : 'Siirrä Adoben pilvipalveluun',\n    'uap.title.add' : 'Lisää Adoben pilvitallennustilasta',\n    'uap.mobile.tabs.locations' : 'Sijainnit',\n    'uap.mobile.projects.heading.name' : 'Projektit',\n    'uap.fileFormatDropdown.label' : 'Muoto',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Huwag nang ipakita ulit',\n    'confirmationDialog.confirm.default' : 'Magpatuloy',\n    'confirmationDialog.cancel.default' : 'Kanselahin',\n    'confirmationDialog.learnMore' : 'Matuto pa',\n    'toast.warning.place' : 'Hindi pa mailagay ang mga naka-link na dokumento sa cloud. Magpatuloy na lang sa pag-embed.',\n    'toast.warning.placeLinkOrEmbed' : 'Naka-link na ngayon sa orihinal bilang default ang mga asset na inilagay mo. Ibig sabihin nito, kapag in-edit mo ito sa isang lugar, makikita kahit saan ang mga ginawa mong pagbabago.',\n    'toast.warning.saveAs.invalidFormat' : 'Pasensya na, hindi mo puwedeng i-save ang mga {genericFormat} file dito. Isi-save ang file mo bilang {adobeFormat}.',\n    'pickerView.recent' : 'Kamakailan',\n    'pickerView.cloud_docs' : 'Mga file mo',\n    'pickerView.shared_with_you' : 'Ibinahagi sa iyo',\n    'pickerView.projects' : 'Mga Project',\n    'pickerView.firefly_history' : 'History ng Firefly',\n    'pickerView.computer' : 'Computer mo...',\n    'pickerView.saveAsInput' : 'I-save Bilang',\n    'pickerView.exportInput' : 'I-export Bilang',\n    'pickerView.sketch_library' : 'I-convert ang Sketch Library...',\n    'pickerView.error.saveAsOrExport.default' : 'Invalid ang file name.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Pasensya na, naglalaman ng (mga) invalid na character ang pangalan na ito.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Hindi puwedeng matapos ang pangalan sa \".\" o blangkong space.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Wala dapat sa pangalan ang mga sumusunod na character: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Hindi puwedeng lumampas sa 200 character ang mga pangalan.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Mayroon ka nang dokumento sa cloud dito na may ganitong pangalan.',\n    'pickerView.error.addALibrary.permission' : 'Wala kang pahintulot para idagdag ito sa library',\n    'pickerViewFooter.button.add' : 'Magdagdag',\n    'pickerViewFooter.button.cancel' : 'Kanselahin',\n    'pickerViewFooter.button.copy' : 'Kopyahin dito',\n    'pickerViewFooter.button.move' : 'Ilipat dito',\n    'pickerViewFooter.button.moveFrom' : 'Ilipat',\n    'pickerViewFooter.button.choose' : 'Pumili',\n    'pickerViewFooter.button.save' : 'I-save',\n    'pickerViewFooter.button.switchToOSPicker' : 'Sa computer mo',\n    'pickerViewFooter.button.save.offline' : 'Kailangan ng internet connection',\n    'pickerViewFooter.button.saveAsCopy' : 'I-save',\n    'pickerViewFooter.button.export' : 'I-export',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Lugar',\n    'pickerViewFooter.checkbox.placeLink' : 'Naka-link',\n    'pickerViewFooter.tooltip.placeLink' : 'Puwede mo lang ilagay ang item na ito bilang naka-link na asset.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Puwede mo lang ilagay ang item na ito bilang naka-embed.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Marami ka pang puwedeng gawin kapag nag-save ka bilang dokumento sa cloud',\n    'onboardingCdp.tooltip' : 'Kapag nag-save ka sa computer mo, hindi mo magagamit ang mga feature ng cloud.',\n    'onboardingCdp.tooltip.link' : 'Matuto pa',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe cloud storage',\n    'onboardingCdp.table.header.saveToLocal' : 'Sa computer mo',\n    'onboardingCdp.button.saveToCloud' : 'I-save sa Adobe cloud storage',\n    'onboardingCdp.feature.offline' : 'Offline access',\n    'onboardingCdp.feature.syncing' : 'Nagsi-sync ang cloud sa lahat ng device mo',\n    'onboardingCdp.feature.autosave' : 'Awtomatikong sine-save ang bawat pagbabago',\n    'onboardingCdp.feature.versionHistory' : 'History ng bersyon',\n    'onboardingCdp.feature.inviteToEdit' : 'Imbitahan para i-edit',\n    'onboardingCdp.button.saveToLocal' : 'I-save sa computer mo',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Huwag nang ipakita ulit',\n    'uap.title.place' : 'Ilagay mula sa Adobe cloud storage',\n    'uap.title.placeLinkOrEmbed' : 'Ilagay mula sa Adobe cloud storage',\n    'uap.title.linkAssets' : 'Link mula sa Adobe cloud storage',\n    'uap.title.open' : 'Buksan mula sa Adobe cloud storage',\n    'uap.title.saveAs' : 'I-save sa Adobe cloud storage',\n    'uap.title.saveAsCopy' : 'I-save sa Adobe cloud storage',\n    'uap.title.saveToFolder' : 'I-save sa Adobe cloud storage',\n    'uap.title.export' : 'I-export sa Adobe cloud storage',\n    'uap.title.copy' : 'Kopyahin sa Adobe cloud storage',\n    'uap.title.move' : 'Ilipat sa Adobe cloud',\n    'uap.title.moveFrom' : 'Ilipat sa Adobe cloud',\n    'uap.title.add' : 'Idagdag mula sa Adobe cloud storage',\n    'uap.mobile.tabs.locations' : 'Mga lokasyon',\n    'uap.mobile.projects.heading.name' : 'Mga Project',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Ne plus afficher',\n    'confirmationDialog.confirm.default' : 'Continuer',\n    'confirmationDialog.cancel.default' : 'Annuler',\n    'confirmationDialog.learnMore' : 'En savoir plus',\n    'toast.warning.place' : 'Il n’est pas encore possible de placer des documents en ligne liés. Continuez à les intégrer.',\n    'toast.warning.placeLinkOrEmbed' : 'Les ressources que vous placez sont désormais liées à la version originale par défaut. Cela signifie que si vous la modifiez à un seul endroit, ces changements sont reflétés partout.',\n    'toast.warning.saveAs.invalidFormat' : 'Désolé, vous ne pouvez pas enregistrer de fichiers {genericFormat} ici. Votre fichier sera enregistré sous {adobeFormat}.',\n    'pickerView.recent' : 'Récent',\n    'pickerView.cloud_docs' : 'Vos fichiers',\n    'pickerView.shared_with_you' : 'Partagé avec vous',\n    'pickerView.projects' : 'Projets',\n    'pickerView.firefly_history' : 'Historique Firefly',\n    'pickerView.computer' : 'Votre ordinateur...',\n    'pickerView.saveAsInput' : 'Enregistrer sous',\n    'pickerView.exportInput' : 'Exporter sous',\n    'pickerView.sketch_library' : 'Convertir la bibliothèque Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'Nom de fichier non valide.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Désolé, ce nom contient un ou plusieurs caractères non valides.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Le nom ne peut pas se terminer par un point ni par une espace.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Un nom ne peut pas contenir les caractères suivants : {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Les noms de dossier ne peuvent pas dépasser 200 caractères.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Vous avez déjà un document en ligne ici portant le même nom.',\n    'pickerView.error.addALibrary.permission' : 'Vous n’avez pas l’autorisation d’ajouter cette bibliothèque.',\n    'pickerViewFooter.button.add' : 'Ajouter',\n    'pickerViewFooter.button.cancel' : 'Annuler',\n    'pickerViewFooter.button.copy' : 'Copier ici',\n    'pickerViewFooter.button.move' : 'Déplacer ici',\n    'pickerViewFooter.button.moveFrom' : 'Déplacer',\n    'pickerViewFooter.button.choose' : 'Sélectionner',\n    'pickerViewFooter.button.save' : 'Enregistrer',\n    'pickerViewFooter.button.switchToOSPicker' : 'Sur votre ordinateur',\n    'pickerViewFooter.button.save.offline' : 'Connexion Internet requise.',\n    'pickerViewFooter.button.saveAsCopy' : 'Enregistrer',\n    'pickerViewFooter.button.export' : 'Exporter',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Importer',\n    'pickerViewFooter.checkbox.placeLink' : 'Lié',\n    'pickerViewFooter.tooltip.placeLink' : 'Vous ne pouvez placer cet élément qu’en tant qu’actif lié.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Vous ne pouvez placer cette ressource qu’en l’intégrant.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Vous pouvez faire bien plus si vous enregistrez un document en ligne',\n    'onboardingCdp.tooltip' : 'Si vous enregistrez le document sur votre ordinateur, vous ne pourrez plus utiliser les fonctionnalités du cloud.',\n    'onboardingCdp.tooltip.link' : 'En savoir plus',\n    'onboardingCdp.table.header.saveToCloud' : 'Espace de stockage Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'Sur votre ordinateur',\n    'onboardingCdp.button.saveToCloud' : 'Enregistrer dans l’espace de stockage Adobe',\n    'onboardingCdp.feature.offline' : 'Accès hors ligne',\n    'onboardingCdp.feature.syncing' : 'Synchronisation sur le cloud avec tous vos appareils',\n    'onboardingCdp.feature.autosave' : 'Enregistrement automatique de chaque modification',\n    'onboardingCdp.feature.versionHistory' : 'Historique des versions',\n    'onboardingCdp.feature.inviteToEdit' : 'Inviter à modifier',\n    'onboardingCdp.button.saveToLocal' : 'Enregistrer sur votre ordinateur',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Ne plus afficher',\n    'uap.title.place' : 'Emplacement de l’espace de stockage Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Emplacement de l’espace de stockage Adobe',\n    'uap.title.linkAssets' : 'Lien depuis l’espace de stockage Adobe',\n    'uap.title.open' : 'Ouvrir depuis l’espace de stockage Adobe',\n    'uap.title.saveAs' : 'Enregistrer dans l’espace de stockage Adobe',\n    'uap.title.saveAsCopy' : 'Enregistrer dans l’espace de stockage Adobe',\n    'uap.title.saveToFolder' : 'Enregistrer dans l’espace de stockage Adobe',\n    'uap.title.export' : 'Exporter vers l’espace de stockage Adobe',\n    'uap.title.copy' : 'Copier dans l’espace de stockage Adobe',\n    'uap.title.move' : 'Déplacer dans le cloud Adobe',\n    'uap.title.moveFrom' : 'Déplacer dans le cloud Adobe',\n    'uap.title.add' : 'Ajouter depuis l’espace de stockage Adobe',\n    'uap.mobile.tabs.locations' : 'Emplacements',\n    'uap.mobile.projects.heading.name' : 'Projets',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'दोबारा न दिखाएँ',\n    'confirmationDialog.confirm.default' : 'जारी रखें',\n    'confirmationDialog.cancel.default' : 'रद्द करें',\n    'confirmationDialog.learnMore' : 'और जानें',\n    'toast.warning.place' : 'लिंक किए गए क्लाउड दस्तावेज़ अभी नहीं डाले जा सकते। इसके बजाय एम्बेड करना जारी रखें।',\n    'toast.warning.placeLinkOrEmbed' : 'आपके द्वारा डाली गई एसेट्स अब डिफ़ॉल्ट रूप से मूल से लिंक हो जाती हैं। इसका मतलब है कि अगर आप इसे एक जगह संपादित करते हैं, तो वे बदलाव हर जगह दिखाई देंगे।',\n    'toast.warning.saveAs.invalidFormat' : 'क्षमा करें, आप {genericFormat} फ़ाइलें यहाँ सहेज नहीं सकते। आपकी फ़ाइल {adobeFormat} के रूप में सहेजी जाएगी।',\n    'pickerView.recent' : 'हाल का',\n    'pickerView.cloud_docs' : 'आपकी फ़ाइलें',\n    'pickerView.shared_with_you' : 'आपके साथ शेयर किया गया',\n    'pickerView.projects' : 'प्रोजेक्ट्स',\n    'pickerView.firefly_history' : 'Firefly इतिहास',\n    'pickerView.computer' : 'आपका कंप्यूटर...',\n    'pickerView.saveAsInput' : 'इसके रूप में सेव करें',\n    'pickerView.exportInput' : 'इसके रूप में एक्सपोर्ट करें',\n    'pickerView.sketch_library' : 'स्केच लाइब्रेरी कन्वर्ट करें...',\n    'pickerView.error.saveAsOrExport.default' : 'फ़ाइल नाम अमान्य है।',\n    'pickerView.error.saveAsOrExport.invalidName' : 'क्षमा करें, इस नाम में अमान्य वर्ण हैं।',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'नाम \".\" या खाली स्थान के साथ समाप्त नहीं हो सकता।',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'नाम में ये अक्षर नहीं हो सकते: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'नाम 200 वर्णों से अधिक नहीं हो सकते।',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'आपके पास इस नाम से एक क्लाउड दस्तावेज़ पहले से ही है।',\n    'pickerView.error.addALibrary.permission' : 'आपको इस लाइब्रेरी को जोड़ने की अनुमति नहीं है',\n    'pickerViewFooter.button.add' : 'जोड़ें',\n    'pickerViewFooter.button.cancel' : 'रद्द करें',\n    'pickerViewFooter.button.copy' : 'यहाँ कॉपी करें',\n    'pickerViewFooter.button.move' : 'यहाँ ले जाएँ',\n    'pickerViewFooter.button.moveFrom' : 'स्थानांतरित करें',\n    'pickerViewFooter.button.choose' : 'चुनें',\n    'pickerViewFooter.button.save' : 'सेव करें',\n    'pickerViewFooter.button.switchToOSPicker' : 'आपके कंप्यूटर पर',\n    'pickerViewFooter.button.save.offline' : 'इंटरनेट कनेक्शन आवश्यक है',\n    'pickerViewFooter.button.saveAsCopy' : 'सेव करें',\n    'pickerViewFooter.button.export' : 'एक्सपोर्ट करें',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'स्थान',\n    'pickerViewFooter.checkbox.placeLink' : 'लिंक किया गया',\n    'pickerViewFooter.tooltip.placeLink' : 'आप इस आइटम को केवल लिंक्ड एसेट के रूप में ही रख सकते हैं।',\n    'pickerViewFooter.tooltip.placeEmbed' : 'आप इस आइटम को केवल एम्बेडेड के रूप में ही रख सकते हैं।',\n    'pickerViewFooter.saveAs.format.label' : 'प्रारूप',\n    'onboardingCdp.title' : 'अगर आप क्लाउड दस्तावेज़ के रूप में सहेजते हैं, तो आप और भी बहुत कुछ कर सकते हैं',\n    'onboardingCdp.tooltip' : 'अगर आप इसे अपने कंप्यूटर पर सहेजते हैं, तो आप क्लाउड सुविधाओं का उपयोग नहीं कर पाएंगे।',\n    'onboardingCdp.tooltip.link' : 'और जानें',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe क्लाउड स्टोरेज',\n    'onboardingCdp.table.header.saveToLocal' : 'आपके कंप्यूटर पर',\n    'onboardingCdp.button.saveToCloud' : 'Adobe क्लाउड स्टोरेज में सेव करें',\n    'onboardingCdp.feature.offline' : 'ऑफ़लाइन पहुँच',\n    'onboardingCdp.feature.syncing' : 'आपके सभी डिवाइसेस के लिए क्लाउड सिंकिंग',\n    'onboardingCdp.feature.autosave' : 'प्रत्येक परिवर्तन को स्वचालित रूप से सहेजना',\n    'onboardingCdp.feature.versionHistory' : 'संस्करण इतिहास',\n    'onboardingCdp.feature.inviteToEdit' : 'एडिट करने के लिए आमंत्रित करें',\n    'onboardingCdp.button.saveToLocal' : 'अपने कंप्यूटर पर सहेजें',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'दोबारा न दिखाएँ',\n    'uap.title.place' : 'Adobe क्लाउड स्टोरेज से रखें',\n    'uap.title.placeLinkOrEmbed' : 'Adobe क्लाउड स्टोरेज से रखें',\n    'uap.title.linkAssets' : 'Adobe क्लाउड स्टोरेज से लिंक करें',\n    'uap.title.open' : 'Adobe क्लाउड स्टोरेज से खोलें',\n    'uap.title.saveAs' : 'Adobe क्लाउड स्टोरेज में सेव करें',\n    'uap.title.saveAsCopy' : 'Adobe क्लाउड स्टोरेज में सेव करें',\n    'uap.title.saveToFolder' : 'Adobe क्लाउड स्टोरेज में सेव करें',\n    'uap.title.export' : 'Adobe क्लाउड स्टोरेज में एक्सपोर्ट करें',\n    'uap.title.copy' : 'Adobe क्लाउड स्टोरेज में कॉपी करें',\n    'uap.title.move' : 'Adobe क्लाउड में ले जाएँ',\n    'uap.title.moveFrom' : 'Adobe क्लाउड में ले जाएँ',\n    'uap.title.add' : 'Adobe क्लाउड स्टोरेज से जोड़ें',\n    'uap.mobile.tabs.locations' : 'स्थान',\n    'uap.mobile.projects.heading.name' : 'प्रोजेक्ट्स',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Ne mutassa újra',\n    'confirmationDialog.confirm.default' : 'Tovább',\n    'confirmationDialog.cancel.default' : 'Mégse',\n    'confirmationDialog.learnMore' : 'Bővebben',\n    'toast.warning.place' : 'Még nem lehet hivatkozott felhőalapú dokumentumokat elhelyezni. Helyette folytassa beágyazással.',\n    'toast.warning.placeLinkOrEmbed' : 'Az elhelyezett eszközök most alapértelmezés szerint az eredetihez vannak kapcsolva. Ez azt jelenti, hogy ha egy helyen szerkeszti, akkor ezek a változások mindenhol jelen lesznek.',\n    'toast.warning.saveAs.invalidFormat' : 'Sajnos nem tud {genericFormat}-fájlokat itt elmenteni. A fájlt {adobeFormat}-formátumban menti a rendszer.',\n    'pickerView.recent' : 'Legutóbbi',\n    'pickerView.cloud_docs' : 'Saját fájlok',\n    'pickerView.shared_with_you' : 'Önnel megosztva',\n    'pickerView.projects' : 'Projektek',\n    'pickerView.firefly_history' : 'Firefly-előzmények',\n    'pickerView.computer' : 'Saját számítógép...',\n    'pickerView.saveAsInput' : 'Mentés másként',\n    'pickerView.exportInput' : 'Exportálás mint',\n    'pickerView.sketch_library' : 'A Sketch könyvtárának konvertálása...',\n    'pickerView.error.saveAsOrExport.default' : 'A fájlnév érvénytelen.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Sajnos ez a név érvénytelen karakter(eke)t tartalmaz.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'A név végén nem állhat „.” vagy üres szóköz.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'A név nem tartalmazhatja a következő karaktereket: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'A nevek nem lehetnek 200 karakternél hosszabbak.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Itt már létezik egy felhőalapú dokumentum ezzel a névvel.',\n    'pickerView.error.addALibrary.permission' : 'Nincs jogosultsága ahhoz, hogy ehhez a könyvtárhoz hozzáadjon elemet',\n    'pickerViewFooter.button.add' : 'Hozzáadás',\n    'pickerViewFooter.button.cancel' : 'Mégse',\n    'pickerViewFooter.button.copy' : 'Másolás ide',\n    'pickerViewFooter.button.move' : 'Mozgatás ide',\n    'pickerViewFooter.button.moveFrom' : 'Áthelyezés',\n    'pickerViewFooter.button.choose' : 'Kiválasztás',\n    'pickerViewFooter.button.save' : 'Mentés',\n    'pickerViewFooter.button.switchToOSPicker' : 'A számítógépén',\n    'pickerViewFooter.button.save.offline' : 'Internetkapcsolat szükséges',\n    'pickerViewFooter.button.saveAsCopy' : 'Mentés',\n    'pickerViewFooter.button.export' : 'Exportálás',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Elhelyezés',\n    'pickerViewFooter.checkbox.placeLink' : 'Kapcsolt',\n    'pickerViewFooter.tooltip.placeLink' : 'Ezt az elemet csak kapcsolódó eszközként helyezheti el.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Ezt az elemet csak beágyazottként helyezheti el.',\n    'pickerViewFooter.saveAs.format.label' : 'Formátum',\n    'onboardingCdp.title' : 'Ha felhőalapú dokumentumként menti a fájlt, sokkal több műveletet elvégezhet rajta.',\n    'onboardingCdp.tooltip' : 'Ha a számítógépére menti a fájlt, nem tudja használni a felhőalapú funkciókat.',\n    'onboardingCdp.tooltip.link' : 'Bővebben',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe felhőalapú tárhely',\n    'onboardingCdp.table.header.saveToLocal' : 'A számítógépén',\n    'onboardingCdp.button.saveToCloud' : 'Mentés az Adobe felhőalapú tárhelyére',\n    'onboardingCdp.feature.offline' : 'Offline hozzáférés',\n    'onboardingCdp.feature.syncing' : 'Felhőbeli tartalmak szinkronizálása az összes eszközre',\n    'onboardingCdp.feature.autosave' : 'Minden módosítás automatikus mentése',\n    'onboardingCdp.feature.versionHistory' : 'Verzióelőzmények',\n    'onboardingCdp.feature.inviteToEdit' : 'Meghívás szerkesztésre',\n    'onboardingCdp.button.saveToLocal' : 'Mentés a számítógépen',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Ne mutassa újra',\n    'uap.title.place' : 'Áthelyezés az Adobe felhőalapú tárhelyéről',\n    'uap.title.placeLinkOrEmbed' : 'Áthelyezés az Adobe felhőalapú tárhelyéről',\n    'uap.title.linkAssets' : 'Linkelés az Adobe felhőalapú tárhelyéről',\n    'uap.title.open' : 'Megnyitás az Adobe felhőalapú tárhelyéről',\n    'uap.title.saveAs' : 'Mentés az Adobe felhőalapú tárhelyére',\n    'uap.title.saveAsCopy' : 'Mentés az Adobe felhőalapú tárhelyére',\n    'uap.title.saveToFolder' : 'Mentés az Adobe felhőalapú tárhelyére',\n    'uap.title.export' : 'Exportálás az Adobe felhőalapú tárhelyére',\n    'uap.title.copy' : 'Másolás az Adobe felhőalapú tárhelyére',\n    'uap.title.move' : 'Áthelyezés az Adobe-felhőbe',\n    'uap.title.moveFrom' : 'Áthelyezés az Adobe-felhőbe',\n    'uap.title.add' : 'Hozzáadás az Adobe felhőalapú tárhelyéről',\n    'uap.mobile.tabs.locations' : 'Helyek',\n    'uap.mobile.projects.heading.name' : 'Projektek',\n    'uap.fileFormatDropdown.label' : 'Formátum',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Jangan tampilkan lagi',\n    'confirmationDialog.confirm.default' : 'Lanjutkan',\n    'confirmationDialog.cancel.default' : 'Batalkan',\n    'confirmationDialog.learnMore' : 'Pelajari selengkapnya',\n    'toast.warning.place' : 'Belum dapat menempatkan dokumen cloud yang terhubung. Lanjutkan untuk menyematkan sebagai gantinya.',\n    'toast.warning.placeLinkOrEmbed' : 'Aset yang Anda tempatkan kini ditautkan ke aset asli secara default. Artinya, jika Anda mengeditnya di satu tempat, perubahan tersebut akan ditampilkan di mana saja.',\n    'toast.warning.saveAs.invalidFormat' : 'Maaf, Anda tidak dapat menyimpan {genericFormat} file di sini. File Anda akan disimpan sebagai {adobeFormat}.',\n    'pickerView.recent' : 'Terbaru',\n    'pickerView.cloud_docs' : 'File Anda',\n    'pickerView.shared_with_you' : 'Dibagikan dengan Anda',\n    'pickerView.projects' : 'Proyek',\n    'pickerView.firefly_history' : 'Riwayat Firefly',\n    'pickerView.computer' : 'Komputer Anda…',\n    'pickerView.saveAsInput' : 'Simpan Sebagai',\n    'pickerView.exportInput' : 'Ekspor Sebagai',\n    'pickerView.sketch_library' : 'Konversikan Pustaka Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'Nama file tidak valid.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Maaf, nama ini berisi karakter yang tidak valid.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Nama tidak boleh diakhiri dengan \".\" atau ruang kosong.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Nama tidak boleh berisi karakter berikut: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Nama tidak boleh lebih dari 200 karakter.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Anda telah memiliki dokumen cloud di sini dengan nama ini.',\n    'pickerView.error.addALibrary.permission' : 'Anda tidak memiliki izin untuk menambahkan pustaka ini',\n    'pickerViewFooter.button.add' : 'Tambahkan',\n    'pickerViewFooter.button.cancel' : 'Batalkan',\n    'pickerViewFooter.button.copy' : 'Salin di sini',\n    'pickerViewFooter.button.move' : 'Pindah ke sini',\n    'pickerViewFooter.button.moveFrom' : 'Pindahkan',\n    'pickerViewFooter.button.choose' : 'Pilih',\n    'pickerViewFooter.button.save' : 'Simpan',\n    'pickerViewFooter.button.switchToOSPicker' : 'Di komputer Anda',\n    'pickerViewFooter.button.save.offline' : 'Koneksi internet diperlukan',\n    'pickerViewFooter.button.saveAsCopy' : 'Simpan',\n    'pickerViewFooter.button.export' : 'Ekspor',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Letakkan',\n    'pickerViewFooter.checkbox.placeLink' : 'Tertaut',\n    'pickerViewFooter.tooltip.placeLink' : 'Anda hanya dapat menempatkan item ini sebagai aset tertaut.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Anda hanya dapat menempatkan item ini sebagai tersemat.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Anda dapat melakukan lebih banyak lagi jika menyimpan sebagai dokumen cloud',\n    'onboardingCdp.tooltip' : 'Jika Anda menyimpan ke komputer, Anda tidak akan dapat menggunakan fitur cloud.',\n    'onboardingCdp.tooltip.link' : 'Pelajari selengkapnya',\n    'onboardingCdp.table.header.saveToCloud' : 'Penyimpanan cloud Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'Di komputer Anda',\n    'onboardingCdp.button.saveToCloud' : 'Simpan ke penyimpanan cloud Adobe',\n    'onboardingCdp.feature.offline' : 'Akses offline',\n    'onboardingCdp.feature.syncing' : 'Cloud menyinkronkan ke semua perangkat Anda',\n    'onboardingCdp.feature.autosave' : 'Menyimpan otomatis setiap perubahan',\n    'onboardingCdp.feature.versionHistory' : 'Riwayat versi',\n    'onboardingCdp.feature.inviteToEdit' : 'Undang untuk mengedit',\n    'onboardingCdp.button.saveToLocal' : 'Simpan di komputer Anda',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Jangan tampilkan lagi',\n    'uap.title.place' : 'Tempat dari penyimpanan cloud Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Tempat dari penyimpanan cloud Adobe',\n    'uap.title.linkAssets' : 'Tautan dari penyimpanan cloud Adobe',\n    'uap.title.open' : 'Buka dari penyimpanan cloud Adobe',\n    'uap.title.saveAs' : 'Simpan ke penyimpanan cloud Adobe',\n    'uap.title.saveAsCopy' : 'Simpan ke penyimpanan cloud Adobe',\n    'uap.title.saveToFolder' : 'Simpan ke penyimpanan cloud Adobe',\n    'uap.title.export' : 'Ekspor ke penyimpanan cloud Adobe',\n    'uap.title.copy' : 'Salin ke penyimpanan cloud Adobe',\n    'uap.title.move' : 'Pindahkan ke cloud Adobe',\n    'uap.title.moveFrom' : 'Pindahkan ke cloud Adobe',\n    'uap.title.add' : 'Tambahkan dari penyimpanan cloud Adobe',\n    'uap.mobile.tabs.locations' : 'Lokasi',\n    'uap.mobile.projects.heading.name' : 'Proyek',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Non mostrare più',\n    'confirmationDialog.confirm.default' : 'Continua',\n    'confirmationDialog.cancel.default' : 'Annulla',\n    'confirmationDialog.learnMore' : 'Ulteriori informazioni',\n    'toast.warning.place' : 'Non è ancora possibile posizionare documenti cloud collegati. Continua a incorporare.',\n    'toast.warning.placeLinkOrEmbed' : 'Le risorse posizionate ora sono collegate all\\'originale per impostazione predefinita. Ciò significa che se le modifichi in un punto, le modifiche si rifletteranno ovunque.',\n    'toast.warning.saveAs.invalidFormat' : 'Non puoi salvare file {genericFormat} qui. Il tuo file verrà salvato come {adobeFormat}.',\n    'pickerView.recent' : 'Recenti',\n    'pickerView.cloud_docs' : 'I tuoi file',\n    'pickerView.shared_with_you' : 'Condiviso con te',\n    'pickerView.projects' : 'Progetti',\n    'pickerView.firefly_history' : 'Cronologia Firefly',\n    'pickerView.computer' : 'Il tuo computer...',\n    'pickerView.saveAsInput' : 'Salva con nome',\n    'pickerView.exportInput' : 'Esporta come',\n    'pickerView.sketch_library' : 'Converti libreria di Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'Nome file non valido.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Il nome contiene caratteri non validi.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Il nome non può terminare con “.” o uno spazio vuoto.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Il nome non può contenere i caratteri seguenti: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'I nomi non possono contenere più di 200 caratteri.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Un documento cloud con questo nome è già presente qui.',\n    'pickerView.error.addALibrary.permission' : 'Non disponi delle autorizzazioni per aggiungere questa libreria',\n    'pickerViewFooter.button.add' : 'Aggiungi',\n    'pickerViewFooter.button.cancel' : 'Annulla',\n    'pickerViewFooter.button.copy' : 'Copia qui',\n    'pickerViewFooter.button.move' : 'Sposta qui',\n    'pickerViewFooter.button.moveFrom' : 'Sposta',\n    'pickerViewFooter.button.choose' : 'Scegli',\n    'pickerViewFooter.button.save' : 'Salva',\n    'pickerViewFooter.button.switchToOSPicker' : 'Nel tuo computer',\n    'pickerViewFooter.button.save.offline' : 'Connessione a Internet richiesta',\n    'pickerViewFooter.button.saveAsCopy' : 'Salva',\n    'pickerViewFooter.button.export' : 'Esporta',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Inserisci',\n    'pickerViewFooter.checkbox.placeLink' : 'Collegato',\n    'pickerViewFooter.tooltip.placeLink' : 'Puoi inserire questo elemento solo come una risorsa collegata.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Puoi inserire questo elemento solo come incorporato.',\n    'pickerViewFooter.saveAs.format.label' : 'Formato',\n    'onboardingCdp.title' : 'Salvando il file come documento cloud, potrete fare molto di più',\n    'onboardingCdp.tooltip' : 'Salvando il file sul computer, non potrai utilizzare le funzioni cloud.',\n    'onboardingCdp.tooltip.link' : 'Altre info',\n    'onboardingCdp.table.header.saveToCloud' : 'Archiviazione cloud Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'Nel tuo computer',\n    'onboardingCdp.button.saveToCloud' : 'Salva su archiviazione cloud Adobe',\n    'onboardingCdp.feature.offline' : 'Accesso offline',\n    'onboardingCdp.feature.syncing' : 'Sincronizzazione in cloud di tutti i dispositivi',\n    'onboardingCdp.feature.autosave' : 'Salvataggio automatico delle modifiche',\n    'onboardingCdp.feature.versionHistory' : 'Cronologia versioni',\n    'onboardingCdp.feature.inviteToEdit' : 'Invito a modificare',\n    'onboardingCdp.button.saveToLocal' : 'Salva nel tuo computer',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Non mostrare più',\n    'uap.title.place' : 'Colloca da archiviazione cloud Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Colloca da archiviazione cloud Adobe',\n    'uap.title.linkAssets' : 'Collega da archiviazione cloud Adobe',\n    'uap.title.open' : 'Apri da archiviazione cloud Adobe',\n    'uap.title.saveAs' : 'Salva su archiviazione cloud Adobe',\n    'uap.title.saveAsCopy' : 'Salva su archiviazione cloud Adobe',\n    'uap.title.saveToFolder' : 'Salva su archiviazione cloud Adobe',\n    'uap.title.export' : 'Esporta in archiviazione cloud Adobe',\n    'uap.title.copy' : 'Copia su archiviazione cloud Adobe',\n    'uap.title.move' : 'Sposta in cloud Adobe',\n    'uap.title.moveFrom' : 'Sposta in cloud Adobe',\n    'uap.title.add' : 'Aggiungi da archiviazione cloud Adobe',\n    'uap.mobile.tabs.locations' : 'Posizioni',\n    'uap.mobile.projects.heading.name' : 'Progetti',\n    'uap.fileFormatDropdown.label' : 'Formato',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : '次回から表示しない',\n    'confirmationDialog.confirm.default' : '続行',\n    'confirmationDialog.cancel.default' : 'キャンセル',\n    'confirmationDialog.learnMore' : '詳細',\n    'toast.warning.place' : 'リンクされたクラウドドキュメントをまだ配置できません。代わりに埋め込みを実施します。',\n    'toast.warning.placeLinkOrEmbed' : '配置したアセットは、デフォルトで元のアセットにリンクされるようになりました。つまり、1 つの場所で編集すると、変更はすべての場所に反映されます。',\n    'toast.warning.saveAs.invalidFormat' : '{genericFormat}ファイルはここに保存できません。ファイルは次の形式で保存されます : {adobeFormat}',\n    'pickerView.recent' : '最近使用したもの',\n    'pickerView.cloud_docs' : '自分のファイル',\n    'pickerView.shared_with_you' : '共有されたアイテム',\n    'pickerView.projects' : 'プロジェクト',\n    'pickerView.firefly_history' : 'Firefly の履歴',\n    'pickerView.computer' : 'コンピューター...',\n    'pickerView.saveAsInput' : '別名で保存',\n    'pickerView.exportInput' : '書き出し形式',\n    'pickerView.sketch_library' : 'Sketch ライブラリを変換...',\n    'pickerView.error.saveAsOrExport.default' : 'ファイル名が無効です。',\n    'pickerView.error.saveAsOrExport.invalidName' : 'この名前には無効な文字が含まれています。',\n    'pickerView.error.saveAsOrExport.invalidEnd' : '名前の末尾に「.」や空白を使用することはできません。',\n    'pickerView.error.saveAsOrExport.invalidChar' : '名前に次の文字は使用できません : {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : '名前は 200 文字以内にする必要があります。',\n    'pickerView.error.saveAsOrExport.duplicateName' : '同じ名前のクラウドドキュメントが存在します。',\n    'pickerView.error.addALibrary.permission' : 'このライブラリを追加する権限がありません',\n    'pickerViewFooter.button.add' : '追加',\n    'pickerViewFooter.button.cancel' : 'キャンセル',\n    'pickerViewFooter.button.copy' : 'ここにコピー',\n    'pickerViewFooter.button.move' : 'ここに移動',\n    'pickerViewFooter.button.moveFrom' : '移動',\n    'pickerViewFooter.button.choose' : '選択',\n    'pickerViewFooter.button.save' : '保存',\n    'pickerViewFooter.button.switchToOSPicker' : 'コンピューター',\n    'pickerViewFooter.button.save.offline' : 'インターネット接続が必要',\n    'pickerViewFooter.button.saveAsCopy' : '保存',\n    'pickerViewFooter.button.export' : '書き出し',\n    'pickerViewFooter.button.placeLinkOrEmbed' : '配置',\n    'pickerViewFooter.checkbox.placeLink' : 'リンク',\n    'pickerViewFooter.tooltip.placeLink' : 'このアイテムはリンクされたアセットとしてのみ配置できます。',\n    'pickerViewFooter.tooltip.placeEmbed' : 'このアイテムは埋め込みとしてのみ配置できます。',\n    'pickerViewFooter.saveAs.format.label' : '形式',\n    'onboardingCdp.title' : 'クラウドドキュメントとして保存すると、さらに多くのことができるようになります',\n    'onboardingCdp.tooltip' : 'コンピューターに保存した場合は、クラウド機能を使用できません。',\n    'onboardingCdp.tooltip.link' : '詳細情報',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe クラウドストレージ',\n    'onboardingCdp.table.header.saveToLocal' : 'コンピューター',\n    'onboardingCdp.button.saveToCloud' : 'Adobe クラウドストレージに保存',\n    'onboardingCdp.feature.offline' : 'オフラインアクセス',\n    'onboardingCdp.feature.syncing' : 'すべてのデバイスへクラウド同期',\n    'onboardingCdp.feature.autosave' : 'すべての変更を自動保存',\n    'onboardingCdp.feature.versionHistory' : 'バージョン履歴',\n    'onboardingCdp.feature.inviteToEdit' : '編集に招待',\n    'onboardingCdp.button.saveToLocal' : 'コンピューターに保存',\n    'onboardingCdp.checkbox.doNotShowAgain' : '次回から表示しない',\n    'uap.title.place' : 'Adobe クラウドストレージから配置',\n    'uap.title.placeLinkOrEmbed' : 'Adobe クラウドストレージから配置',\n    'uap.title.linkAssets' : 'Adobe クラウドストレージからリンク',\n    'uap.title.open' : 'Adobe クラウドストレージから開く',\n    'uap.title.saveAs' : 'Adobe クラウドストレージに保存',\n    'uap.title.saveAsCopy' : 'Adobe クラウドストレージに保存',\n    'uap.title.saveToFolder' : 'Adobe クラウドストレージに保存',\n    'uap.title.export' : 'Adobe クラウドストレージに書き出し',\n    'uap.title.copy' : 'Adobe クラウドストレージにコピー',\n    'uap.title.move' : 'アドビクラウドで移動',\n    'uap.title.moveFrom' : 'アドビクラウドで移動',\n    'uap.title.add' : 'Adobe クラウドストレージから追加',\n    'uap.mobile.tabs.locations' : '位置',\n    'uap.mobile.projects.heading.name' : 'プロジェクト',\n    'uap.fileFormatDropdown.label' : '形式',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : '다시 표시 안 함',\n    'confirmationDialog.confirm.default' : '계속',\n    'confirmationDialog.cancel.default' : '취소',\n    'confirmationDialog.learnMore' : '자세히 알아보기',\n    'toast.warning.place' : '연결된 클라우드 문서를 아직 배치할 수 없습니다. 대신 임베드 작업을 계속 수행하십시오.',\n    'toast.warning.placeLinkOrEmbed' : '배치한 에셋은 이제 기본적으로 원본에 연결됩니다. 즉, 한 곳에서 편집하면 해당 변경 내용이 모든 곳에 반영됩니다.',\n    'toast.warning.saveAs.invalidFormat' : '죄송합니다. 여기에 {genericFormat} 파일을 저장할 수 없습니다. 파일이 {adobeFormat}(으)로 저장됩니다.',\n    'pickerView.recent' : '최근 항목',\n    'pickerView.cloud_docs' : '내 파일',\n    'pickerView.shared_with_you' : '나와 공유됨',\n    'pickerView.projects' : '프로젝트',\n    'pickerView.firefly_history' : 'Firefly 기록',\n    'pickerView.computer' : '내 컴퓨터...',\n    'pickerView.saveAsInput' : '다른 이름으로 저장',\n    'pickerView.exportInput' : '내보내기 형식',\n    'pickerView.sketch_library' : 'Sketch 라이브러리 변환...',\n    'pickerView.error.saveAsOrExport.default' : '파일 이름이 잘못되었습니다.',\n    'pickerView.error.saveAsOrExport.invalidName' : '죄송합니다. 이름에 잘못된 문자가 포함되어 있습니다.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : '이름은 “.” 또는 공백으로 끝날 수 없습니다.',\n    'pickerView.error.saveAsOrExport.invalidChar' : '이름에는 다음과 같은 문자를 사용할 수 없습니다. {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : '이름의 문자 길이는 200자를 초과할 수 없습니다.',\n    'pickerView.error.saveAsOrExport.duplicateName' : '동일한 이름의 클라우드 문서가 여기에 이미 존재합니다.',\n    'pickerView.error.addALibrary.permission' : '이 라이브러리를 추가할 수 있는 권한이 없습니다.',\n    'pickerViewFooter.button.add' : '추가',\n    'pickerViewFooter.button.cancel' : '취소',\n    'pickerViewFooter.button.copy' : '여기에 복사',\n    'pickerViewFooter.button.move' : '여기로 이동',\n    'pickerViewFooter.button.moveFrom' : '이동',\n    'pickerViewFooter.button.choose' : '선택',\n    'pickerViewFooter.button.save' : '저장',\n    'pickerViewFooter.button.switchToOSPicker' : '내 컴퓨터에서',\n    'pickerViewFooter.button.save.offline' : '인터넷 연결 필요',\n    'pickerViewFooter.button.saveAsCopy' : '저장',\n    'pickerViewFooter.button.export' : '내보내기',\n    'pickerViewFooter.button.placeLinkOrEmbed' : '가져오기',\n    'pickerViewFooter.checkbox.placeLink' : '연결됨',\n    'pickerViewFooter.tooltip.placeLink' : '이 항목은 연결된 에셋으로만 배치할 수 있습니다.',\n    'pickerViewFooter.tooltip.placeEmbed' : '이 항목은 임베드된 것으로만 배치할 수 있습니다.',\n    'pickerViewFooter.saveAs.format.label' : '포맷',\n    'onboardingCdp.title' : '클라우드 문서로 저장하면 더 많은 작업을 수행할 수 있습니다.',\n    'onboardingCdp.tooltip' : '컴퓨터에 저장하면 클라우드 기능을 사용할 수 없습니다.',\n    'onboardingCdp.tooltip.link' : '자세히 알아보기',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe 클라우드 스토리지',\n    'onboardingCdp.table.header.saveToLocal' : '내 컴퓨터에서',\n    'onboardingCdp.button.saveToCloud' : 'Adobe 클라우드 스토리지에 저장',\n    'onboardingCdp.feature.offline' : '오프라인 액세스',\n    'onboardingCdp.feature.syncing' : '모든 디바이스에서 클라우드 동기화',\n    'onboardingCdp.feature.autosave' : '모든 변경 내용 자동 저장',\n    'onboardingCdp.feature.versionHistory' : '버전 내역',\n    'onboardingCdp.feature.inviteToEdit' : '편집 작업을 수행하도록 초대',\n    'onboardingCdp.button.saveToLocal' : '내 컴퓨터에 저장',\n    'onboardingCdp.checkbox.doNotShowAgain' : '다시 표시 안 함',\n    'uap.title.place' : 'Adobe 클라우드 스토리지에서 가져오기',\n    'uap.title.placeLinkOrEmbed' : 'Adobe 클라우드 스토리지에서 가져오기',\n    'uap.title.linkAssets' : 'Adobe 클라우드 스토리지에서 링크',\n    'uap.title.open' : 'Adobe 클라우드 스토리지에서 열기',\n    'uap.title.saveAs' : 'Adobe 클라우드 스토리지에 저장',\n    'uap.title.saveAsCopy' : 'Adobe 클라우드 스토리지에 저장',\n    'uap.title.saveToFolder' : 'Adobe 클라우드 스토리지에 저장',\n    'uap.title.export' : 'Adobe 클라우드 스토리지로 내보내기',\n    'uap.title.copy' : 'Adobe 클라우드 스토리지에 복사',\n    'uap.title.move' : 'Adobe 클라우드에서 이동',\n    'uap.title.moveFrom' : 'Adobe 클라우드에서 이동',\n    'uap.title.add' : 'Adobe 클라우드 스토리지에서 추가',\n    'uap.mobile.tabs.locations' : '위치',\n    'uap.mobile.projects.heading.name' : '프로젝트',\n    'uap.fileFormatDropdown.label' : '형식',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Jangan paparkan lagi',\n    'confirmationDialog.confirm.default' : 'Teruskan',\n    'confirmationDialog.cancel.default' : 'Batal',\n    'confirmationDialog.learnMore' : 'Ketahui lebih lanjut',\n    'toast.warning.place' : 'Tidak dapat meletakkan dokumen awan yang dipautkan. Teruskan membenamkan.',\n    'toast.warning.placeLinkOrEmbed' : 'Aset yang anda letakkan kini dipautkan kepada yang asal secara lalai. Ini bermakna jika anda mengeditnya di satu tempat, perubahan tersebut ditunjukkan di mana-mana.',\n    'toast.warning.saveAs.invalidFormat' : 'Maaf, anda tidak boleh menyimpan fail {genericFormat} di sini. Fail anda akan disimpan sebagai {adobeFormat}.',\n    'pickerView.recent' : 'Baru-baru ini',\n    'pickerView.cloud_docs' : 'Fail anda',\n    'pickerView.shared_with_you' : 'Dikongsi dengan anda',\n    'pickerView.projects' : 'Projek',\n    'pickerView.firefly_history' : 'Sejarah Firefly',\n    'pickerView.computer' : 'Komputer Anda...',\n    'pickerView.saveAsInput' : 'Simpan Sebagai',\n    'pickerView.exportInput' : 'Eksport Sebagai',\n    'pickerView.sketch_library' : 'Tukar Pustaka Lakaran...',\n    'pickerView.error.saveAsOrExport.default' : 'Nama fail tidak sah.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Maaf, nama ini mengandungi aksara yang tidak sah.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Nama tidak boleh berakhir dengan \".\" atau ruang kosong.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Nama tidak boleh mengandungi aksara berikut: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Nama tidak boleh lebih panjang daripada 200 aksara.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Anda sudah mempunyai dokumen awan di sini dengan nama ini.',\n    'pickerView.error.addALibrary.permission' : 'Anda tiada kebenaran untuk menambahkan pustaka ini',\n    'pickerViewFooter.button.add' : 'Tambah',\n    'pickerViewFooter.button.cancel' : 'Batal',\n    'pickerViewFooter.button.copy' : 'Salin di sini',\n    'pickerViewFooter.button.move' : 'Alihkan ke sini',\n    'pickerViewFooter.button.moveFrom' : 'Alih',\n    'pickerViewFooter.button.choose' : 'Pilih',\n    'pickerViewFooter.button.save' : 'Simpan',\n    'pickerViewFooter.button.switchToOSPicker' : 'Pada komputer anda',\n    'pickerViewFooter.button.save.offline' : 'Sambungan internet diperlukan',\n    'pickerViewFooter.button.saveAsCopy' : 'Simpan',\n    'pickerViewFooter.button.export' : 'Eksport',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Letakkan',\n    'pickerViewFooter.checkbox.placeLink' : 'Dipautkan',\n    'pickerViewFooter.tooltip.placeLink' : 'Anda hanya boleh meletakkan item ini sebagai aset terpaut.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Anda hanya boleh meletakkan item ini sebagai terbenam.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Anda boleh melakukan lebih banyak lagi jika anda menyimpan sebagai dokumen awan',\n    'onboardingCdp.tooltip' : 'Jika anda menyimpan ke komputer anda, anda tidak akan dapat menggunakan ciri awan.',\n    'onboardingCdp.tooltip.link' : 'Ketahui lebih lanjut',\n    'onboardingCdp.table.header.saveToCloud' : 'Storan awan Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'Pada komputer anda',\n    'onboardingCdp.button.saveToCloud' : 'Simpan ke storan awan Adobe',\n    'onboardingCdp.feature.offline' : 'Akses luar talian',\n    'onboardingCdp.feature.syncing' : 'Penyegerakan awan ke semua peranti anda',\n    'onboardingCdp.feature.autosave' : 'Autosimpan setiap perubahan',\n    'onboardingCdp.feature.versionHistory' : 'Sejarah versi',\n    'onboardingCdp.feature.inviteToEdit' : 'Jemput untuk mengedit',\n    'onboardingCdp.button.saveToLocal' : 'Simpan pada komputer anda',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Jangan paparkan lagi',\n    'uap.title.place' : 'Letakkan daripada storan awan Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Letakkan daripada storan awan Adobe',\n    'uap.title.linkAssets' : 'Pautan daripada storan awan Adobe',\n    'uap.title.open' : 'Buka daripada storan awan Adobe',\n    'uap.title.saveAs' : 'Simpan ke storan awan Adobe',\n    'uap.title.saveAsCopy' : 'Simpan ke storan awan Adobe',\n    'uap.title.saveToFolder' : 'Simpan ke storan awan Adobe',\n    'uap.title.export' : 'Eksport ke storan awan Adobe',\n    'uap.title.copy' : 'Salin ke storan awan Adobe',\n    'uap.title.move' : 'Alihkan dalam awan Adobe',\n    'uap.title.moveFrom' : 'Alihkan dalam awan Adobe',\n    'uap.title.add' : 'Tambahkan daripada storan awan Adobe',\n    'uap.mobile.tabs.locations' : 'Lokasi',\n    'uap.mobile.projects.heading.name' : 'Projek',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Ikke vis igjen',\n    'confirmationDialog.confirm.default' : 'Fortsett',\n    'confirmationDialog.cancel.default' : 'Avbryt',\n    'confirmationDialog.learnMore' : 'Finn ut mer',\n    'toast.warning.place' : 'Kan ikke plassere koblede nettsky-dokumenter ennå. Fortsett å bygge dem inn i stedet.',\n    'toast.warning.placeLinkOrEmbed' : 'Ressurser du plasserer, vil nå som standard være koblet til originalen. Dette betyr at endringer du gjør på ett sted, oppdateres overalt.',\n    'toast.warning.saveAs.invalidFormat' : 'Beklager, du kan ikke lagre {genericFormat}-filer her. Filen din blir lagret som {adobeFormat}.',\n    'pickerView.recent' : 'Siste',\n    'pickerView.cloud_docs' : 'Dine filer',\n    'pickerView.shared_with_you' : 'Delt med deg',\n    'pickerView.projects' : 'Prosjekter',\n    'pickerView.firefly_history' : 'Firefly-historikk',\n    'pickerView.computer' : 'Datamaskinen ...',\n    'pickerView.saveAsInput' : 'Lagre som',\n    'pickerView.exportInput' : 'Eksporter som',\n    'pickerView.sketch_library' : 'Konverter Sketch bibliotek ...',\n    'pickerView.error.saveAsOrExport.default' : 'Filnavnet er ugyldig.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Beklager, dette navnet inneholder ugyldige tegn.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Navnet kan ikke slutte på \".\" eller et mellomrom.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Navnet kan ikke inneholde følgende tegn: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Navn kan ikke være lengre enn 200 tegn.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Du har allerede et nettsky-dokument med dette navnet.',\n    'pickerView.error.addALibrary.permission' : 'Du har ikke tillatelse til å legge til dette biblioteket',\n    'pickerViewFooter.button.add' : 'Legg til',\n    'pickerViewFooter.button.cancel' : 'Avbryt',\n    'pickerViewFooter.button.copy' : 'Kopier her',\n    'pickerViewFooter.button.move' : 'Flytt hit',\n    'pickerViewFooter.button.moveFrom' : 'Flytt',\n    'pickerViewFooter.button.choose' : 'Velg',\n    'pickerViewFooter.button.save' : 'Lagre',\n    'pickerViewFooter.button.switchToOSPicker' : 'På datamaskinen',\n    'pickerViewFooter.button.save.offline' : 'Internett-tilkobling kreves',\n    'pickerViewFooter.button.saveAsCopy' : 'Lagre',\n    'pickerViewFooter.button.export' : 'Eksporter',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Sett inn',\n    'pickerViewFooter.checkbox.placeLink' : 'Koblet',\n    'pickerViewFooter.tooltip.placeLink' : 'Du kan bare plassere dette elementet som en koblet ressurs.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Du kan bare plassere dette elementet som innebygd.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Du kan gjøre mye mer hvis du lagrer som et nettsky-dokument',\n    'onboardingCdp.tooltip' : 'Hvis du lagrer til datamaskinen, vil du ikke kunne bruke nettskyfunksjoner.',\n    'onboardingCdp.tooltip.link' : 'Finn ut mer',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobes skybaserte lagring',\n    'onboardingCdp.table.header.saveToLocal' : 'På datamaskinen',\n    'onboardingCdp.button.saveToCloud' : 'Lagre i Adobes skybaserte lagring',\n    'onboardingCdp.feature.offline' : 'Tilgang uten nett',\n    'onboardingCdp.feature.syncing' : 'Nettskysynkronisering til alle enhetene dine',\n    'onboardingCdp.feature.autosave' : 'Hver endring lagres automatisk',\n    'onboardingCdp.feature.versionHistory' : 'Versjonshistorikk',\n    'onboardingCdp.feature.inviteToEdit' : 'Inviter andre til å redigere',\n    'onboardingCdp.button.saveToLocal' : 'Lagre på datamaskinen',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Ikke vis igjen',\n    'uap.title.place' : 'Plasser fra Adobes skybaserte lagring',\n    'uap.title.placeLinkOrEmbed' : 'Plasser fra Adobes skybaserte lagring',\n    'uap.title.linkAssets' : 'Koble fra Adobes skybaserte lagring',\n    'uap.title.open' : 'Åpne fra Adobes skybaserte lagring',\n    'uap.title.saveAs' : 'Lagre i Adobes skybaserte lagring',\n    'uap.title.saveAsCopy' : 'Lagre i Adobes skybaserte lagring',\n    'uap.title.saveToFolder' : 'Lagre i Adobes skybaserte lagring',\n    'uap.title.export' : 'Eksporter til Adobes skybaserte lagring',\n    'uap.title.copy' : 'Kopier til Adobes skybaserte lagring',\n    'uap.title.move' : 'Flytt til Adobes nettsky',\n    'uap.title.moveFrom' : 'Flytt til Adobes nettsky',\n    'uap.title.add' : 'Legg til fra Adobes skybaserte lagring',\n    'uap.mobile.tabs.locations' : 'Plasseringer',\n    'uap.mobile.projects.heading.name' : 'Prosjekter',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Niet opnieuw weergeven',\n    'confirmationDialog.confirm.default' : 'Doorgaan',\n    'confirmationDialog.cancel.default' : 'Annuleren',\n    'confirmationDialog.learnMore' : 'Meer informatie',\n    'toast.warning.place' : 'Kan nog geen gekoppelde clouddocumenten plaatsen. Ga door en sluit ze in.',\n    'toast.warning.placeLinkOrEmbed' : 'Assets die je plaatst, zijn nu standaard gekoppeld aan het origineel. Dat betekent dat als je het asset op één plek bewerkt, die wijzigingen overal worden doorgevoerd.',\n    'toast.warning.saveAs.invalidFormat' : 'Je kunt helaas hier geen {genericFormat}-bestanden opslaan. Je bestand wordt opgeslagen als {adobeFormat}.',\n    'pickerView.recent' : 'Recent',\n    'pickerView.cloud_docs' : 'Jouw bestanden',\n    'pickerView.shared_with_you' : 'Met jou gedeeld',\n    'pickerView.projects' : 'Projecten',\n    'pickerView.firefly_history' : 'Firefly-geschiedenis',\n    'pickerView.computer' : 'Jouw computer...',\n    'pickerView.saveAsInput' : 'Opslaan als',\n    'pickerView.exportInput' : 'Exporteren als',\n    'pickerView.sketch_library' : 'Sketch-bibliotheek converteren...',\n    'pickerView.error.saveAsOrExport.default' : 'Bestandsnaam is ongeldig.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Deze naam bevat een of meer ongeldige tekens.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Naam mag niet eindigen op \\'.\\' of een spatie.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'De naam mag geen van de volgende tekens bevatten: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Namen mogen niet langer zijn dan 200 tekens.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Je hebt hier al een clouddocument met deze naam.',\n    'pickerView.error.addALibrary.permission' : 'Je hebt geen machtigingen om iets toe te voegen aan deze bibliotheek',\n    'pickerViewFooter.button.add' : 'Toevoegen',\n    'pickerViewFooter.button.cancel' : 'Annuleren',\n    'pickerViewFooter.button.copy' : 'Hier kopiëren',\n    'pickerViewFooter.button.move' : 'Hierheen verplaatsen',\n    'pickerViewFooter.button.moveFrom' : 'Verplaatsen',\n    'pickerViewFooter.button.choose' : 'Kies',\n    'pickerViewFooter.button.save' : 'Opslaan',\n    'pickerViewFooter.button.switchToOSPicker' : 'Op jouw computer',\n    'pickerViewFooter.button.save.offline' : 'Internetverbinding vereist',\n    'pickerViewFooter.button.saveAsCopy' : 'Opslaan',\n    'pickerViewFooter.button.export' : 'Exporteren',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Plaatsen',\n    'pickerViewFooter.checkbox.placeLink' : 'Gekoppeld',\n    'pickerViewFooter.tooltip.placeLink' : 'Je kunt dit item alleen als gekoppeld asset plaatsen.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Je kunt dit item alleen als ingesloten item plaatsen.',\n    'pickerViewFooter.saveAs.format.label' : 'Indeling',\n    'onboardingCdp.title' : 'Je kunt veel meer doen als u het als een clouddocument opslaat',\n    'onboardingCdp.tooltip' : 'Als je het document opslaat op je computer, kun je geen cloudfuncties gebruiken.',\n    'onboardingCdp.tooltip.link' : 'Meer informatie',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe-cloudopslag',\n    'onboardingCdp.table.header.saveToLocal' : 'Op jouw computer',\n    'onboardingCdp.button.saveToCloud' : 'Opslaan in Adobe-cloudopslag',\n    'onboardingCdp.feature.offline' : 'Offline toegang',\n    'onboardingCdp.feature.syncing' : 'Synchroniseren met de cloud op al je apparaten',\n    'onboardingCdp.feature.autosave' : 'Elke wijziging wordt automatisch opgeslagen',\n    'onboardingCdp.feature.versionHistory' : 'Versiegeschiedenis',\n    'onboardingCdp.feature.inviteToEdit' : 'Uitnodigen om te bewerken',\n    'onboardingCdp.button.saveToLocal' : 'Opslaan op jouw computer',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Niet opnieuw weergeven',\n    'uap.title.place' : 'Plaatsen vanuit Adobe-cloudopslag',\n    'uap.title.placeLinkOrEmbed' : 'Plaatsen vanuit Adobe-cloudopslag',\n    'uap.title.linkAssets' : 'Koppelen vanuit Adobe-cloudopslag',\n    'uap.title.open' : 'Openen vanuit Adobe-cloudopslag',\n    'uap.title.saveAs' : 'Opslaan in Adobe-cloudopslag',\n    'uap.title.saveAsCopy' : 'Opslaan in Adobe-cloudopslag',\n    'uap.title.saveToFolder' : 'Opslaan in Adobe-cloudopslag',\n    'uap.title.export' : 'Exporteren naar Adobe-cloudopslag',\n    'uap.title.copy' : 'Kopiëren naar Adobe-cloudopslag',\n    'uap.title.move' : 'Verplaatsen in Adobe-cloud',\n    'uap.title.moveFrom' : 'Verplaatsen in Adobe-cloud',\n    'uap.title.add' : 'Toevoegen vanuit Adobe-cloudopslag',\n    'uap.mobile.tabs.locations' : 'Locaties',\n    'uap.mobile.projects.heading.name' : 'Projecten',\n    'uap.fileFormatDropdown.label' : 'Indeling',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Nie pokazuj ponownie',\n    'confirmationDialog.confirm.default' : 'Kontynuuj',\n    'confirmationDialog.cancel.default' : 'Anuluj',\n    'confirmationDialog.learnMore' : 'Więcej informacji',\n    'toast.warning.place' : 'Umieszczanie dokumentów w chmurze nie jest jeszcze możliwe. Przejdź dalej, aby osadzić taki dokument.',\n    'toast.warning.placeLinkOrEmbed' : 'Umieszczane zasoby są teraz domyślnie połączone z oryginałem. Oznacza to, że jeśli edytujesz zawartość w jednym miejscu, zmiany te zostaną odzwierciedlone wszędzie.',\n    'toast.warning.saveAs.invalidFormat' : 'Niestety tutaj nie można zapisywać plików {genericFormat}. Twój plik zostanie zapisany w formacie {adobeFormat}.',\n    'pickerView.recent' : 'Niedawne',\n    'pickerView.cloud_docs' : 'Twoje pliki',\n    'pickerView.shared_with_you' : 'Udostępniane Ci',\n    'pickerView.projects' : 'Projekty',\n    'pickerView.firefly_history' : 'Historia operacji w programie Firefly',\n    'pickerView.computer' : 'Twój komputer...',\n    'pickerView.saveAsInput' : 'Zapisz jako',\n    'pickerView.exportInput' : 'Eksportuj jako',\n    'pickerView.sketch_library' : 'Konwertuj bibliotekę Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'Nieprawidłowa nazwa pliku.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Niestety ta nazwa zawiera niedozwolone znaki.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Nazwa nie może kończyć się znakiem „.” lub spacją.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Nazwa nie może zawierać następujących znaków: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Nazwy mogą mieć maksymalnie 200 znaków.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Masz już plik w chmurze o tej nazwie.',\n    'pickerView.error.addALibrary.permission' : 'Nie masz uprawnień do dodawania tej biblioteki',\n    'pickerViewFooter.button.add' : 'Dodaj',\n    'pickerViewFooter.button.cancel' : 'Anuluj',\n    'pickerViewFooter.button.copy' : 'Skopiuj tutaj',\n    'pickerViewFooter.button.move' : 'Przenieś tutaj',\n    'pickerViewFooter.button.moveFrom' : 'Przenieś',\n    'pickerViewFooter.button.choose' : 'Wybierz',\n    'pickerViewFooter.button.save' : 'Zapisz',\n    'pickerViewFooter.button.switchToOSPicker' : 'Na Twoim komputerze',\n    'pickerViewFooter.button.save.offline' : 'Wymagane jest połączenie z Internetem',\n    'pickerViewFooter.button.saveAsCopy' : 'Zapisz',\n    'pickerViewFooter.button.export' : 'Eksportuj',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Umieść',\n    'pickerViewFooter.checkbox.placeLink' : 'Połączony',\n    'pickerViewFooter.tooltip.placeLink' : 'Ten element można umieścić tylko jako zasób połączony.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Ten element można umieścić tylko jako osadzony.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Zapisanie pliku jako dokumentu w chmurze pozwala na korzystanie z dodatkowych funkcji.',\n    'onboardingCdp.tooltip' : 'Jeśli zapiszesz na komputerze, przestaną być dostępne funkcje oparte na chmurze.',\n    'onboardingCdp.tooltip.link' : 'Więcej informacji',\n    'onboardingCdp.table.header.saveToCloud' : 'Przestrzeń dyskowa w chmurze Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'Na Twoim komputerze',\n    'onboardingCdp.button.saveToCloud' : 'Zapisz w przestrzeni w chmurze Adobe',\n    'onboardingCdp.feature.offline' : 'Dostęp offline',\n    'onboardingCdp.feature.syncing' : 'Synchronizacja na wszystkich urządzeniach przez chmurę',\n    'onboardingCdp.feature.autosave' : 'Automatyczne zapisywanie każdej zmiany',\n    'onboardingCdp.feature.versionHistory' : 'Historia wersji',\n    'onboardingCdp.feature.inviteToEdit' : 'Zaproś do edycji',\n    'onboardingCdp.button.saveToLocal' : 'Zapisz na komputerze',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Nie pokazuj ponownie',\n    'uap.title.place' : 'Umieść z przestrzeni w chmurze Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Umieść z przestrzeni w chmurze Adobe',\n    'uap.title.linkAssets' : 'Łącze z przestrzeni w chmurze Adobe',\n    'uap.title.open' : 'Otwórz z przestrzeni w chmurze Adobe',\n    'uap.title.saveAs' : 'Zapisz w przestrzeni w chmurze Adobe',\n    'uap.title.saveAsCopy' : 'Zapisz w przestrzeni w chmurze Adobe',\n    'uap.title.saveToFolder' : 'Zapisz w przestrzeni w chmurze Adobe',\n    'uap.title.export' : 'Eksportuj do przestrzeni w chmurze Adobe',\n    'uap.title.copy' : 'Kopiuj do przestrzeni w chmurze Adobe',\n    'uap.title.move' : 'Przenieś do chmury Adobe',\n    'uap.title.moveFrom' : 'Przenieś do chmury Adobe',\n    'uap.title.add' : 'Dodaj z przestrzeni w chmurze Adobe',\n    'uap.mobile.tabs.locations' : 'Lokalizacje',\n    'uap.mobile.projects.heading.name' : 'Projekty',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Não mostrar novamente',\n    'confirmationDialog.confirm.default' : 'Continuar',\n    'confirmationDialog.cancel.default' : 'Cancelar',\n    'confirmationDialog.learnMore' : 'Saiba mais',\n    'toast.warning.place' : 'Ainda não é possível inserir documentos na nuvem vinculados. Em vez disso, incorpore-os para continuar.',\n    'toast.warning.placeLinkOrEmbed' : 'Os ativos que você insere agora estão vinculados ao original por padrão. Isso significa que se você editá-lo em um lugar, essas alterações serão refletidas em todos os lugares.',\n    'toast.warning.saveAs.invalidFormat' : 'Não é possível salvar {genericFormat} arquivos aqui. Seus arquivos serão salvos como {adobeFormat}.',\n    'pickerView.recent' : 'Recente',\n    'pickerView.cloud_docs' : 'Seus arquivos',\n    'pickerView.shared_with_you' : 'Compartilhado com você',\n    'pickerView.projects' : 'Projetos',\n    'pickerView.firefly_history' : 'Histórico do Firefly',\n    'pickerView.computer' : 'Seu computador...',\n    'pickerView.saveAsInput' : 'Salvar como',\n    'pickerView.exportInput' : 'Exportar como',\n    'pickerView.sketch_library' : 'Converter biblioteca do Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'Nome de arquivo inválido.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'O nome contém caracteres inválidos.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'O nome não pode terminar com “.” ou espaço vazio.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'O nome não pode conter os seguintes caracteres: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Os nomes não podem exceder 200 caracteres.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Você já tem um documento na nuvem com esse nome.',\n    'pickerView.error.addALibrary.permission' : 'Você não tem permissão para adicionar a esta biblioteca',\n    'pickerViewFooter.button.add' : 'Adicionar',\n    'pickerViewFooter.button.cancel' : 'Cancelar',\n    'pickerViewFooter.button.copy' : 'Copiar aqui',\n    'pickerViewFooter.button.move' : 'Mover aqui',\n    'pickerViewFooter.button.moveFrom' : 'Mover',\n    'pickerViewFooter.button.choose' : 'Escolher',\n    'pickerViewFooter.button.save' : 'Salvar',\n    'pickerViewFooter.button.switchToOSPicker' : 'Em seu computador',\n    'pickerViewFooter.button.save.offline' : 'É necessária conexão com a Internet',\n    'pickerViewFooter.button.saveAsCopy' : 'Salvar',\n    'pickerViewFooter.button.export' : 'Exportar',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Inserir',\n    'pickerViewFooter.checkbox.placeLink' : 'Vinculado',\n    'pickerViewFooter.tooltip.placeLink' : 'Você só pode inserir este item como um ativo vinculado.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Você só pode inserir este item como incorporado.',\n    'pickerViewFooter.saveAs.format.label' : 'Formato',\n    'onboardingCdp.title' : 'Você pode fazer muito mais se salvar como um documento na nuvem',\n    'onboardingCdp.tooltip' : 'Se você salvar em seu computador, não poderá usar os recursos da nuvem.',\n    'onboardingCdp.tooltip.link' : 'Saiba mais',\n    'onboardingCdp.table.header.saveToCloud' : 'Armazenamento na nuvem da Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'Em seu computador',\n    'onboardingCdp.button.saveToCloud' : 'Salvar no armazenamento na nuvem da Adobe',\n    'onboardingCdp.feature.offline' : 'Acesso off-line',\n    'onboardingCdp.feature.syncing' : 'Sincronização na nuvem para todos os seus dispositivos',\n    'onboardingCdp.feature.autosave' : 'Salvando automaticamente todas as alterações',\n    'onboardingCdp.feature.versionHistory' : 'Histórico da versão',\n    'onboardingCdp.feature.inviteToEdit' : 'Convidar para editar',\n    'onboardingCdp.button.saveToLocal' : 'Salvar no computador',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Não mostrar novamente',\n    'uap.title.place' : 'Local do armazenamento na nuvem da Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Local do armazenamento na nuvem da Adobe',\n    'uap.title.linkAssets' : 'Link do armazenamento na nuvem da Adobe',\n    'uap.title.open' : 'Abrir no armazenamento na nuvem da Adobe',\n    'uap.title.saveAs' : 'Salvar no armazenamento na nuvem da Adobe',\n    'uap.title.saveAsCopy' : 'Salvar no armazenamento na nuvem da Adobe',\n    'uap.title.saveToFolder' : 'Salvar no armazenamento na nuvem da Adobe',\n    'uap.title.export' : 'Exportar para armazenamento na nuvem da Adobe',\n    'uap.title.copy' : 'Copiar para armazenamento na nuvem da Adobe',\n    'uap.title.move' : 'Alteração da nuvem da Adobe',\n    'uap.title.moveFrom' : 'Alteração da nuvem da Adobe',\n    'uap.title.add' : 'Adicionar do armazenamento na nuvem da Adobe',\n    'uap.mobile.tabs.locations' : 'Locais',\n    'uap.mobile.projects.heading.name' : 'Projetos',\n    'uap.fileFormatDropdown.label' : 'Formato',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Nu se mai afișează',\n    'confirmationDialog.confirm.default' : 'Continuare',\n    'confirmationDialog.cancel.default' : 'Anulare',\n    'confirmationDialog.learnMore' : 'Aflați mai multe',\n    'toast.warning.place' : 'Încă nu se pot plasa documentele cloud conectate. Continuați încorporarea.',\n    'toast.warning.placeLinkOrEmbed' : 'Materialele pe care le plasați sunt acum legate în mod implicit de original. Asta înseamnă că, dacă le editați într-un singur loc, modificările respective se reflectă peste tot.',\n    'toast.warning.saveAs.invalidFormat' : 'Ne pare rău, nu puteți salva {genericFormat} fișiere aici. Fișierul dvs. va fi salvat ca {adobeFormat}.',\n    'pickerView.recent' : 'Recent',\n    'pickerView.cloud_docs' : 'Fișierele dvs.',\n    'pickerView.shared_with_you' : 'Partajat cu dvs.',\n    'pickerView.projects' : 'Proiecte',\n    'pickerView.firefly_history' : 'Istoric Firefly',\n    'pickerView.computer' : 'Computerul dvs...',\n    'pickerView.saveAsInput' : 'Salvare ca',\n    'pickerView.exportInput' : 'Exportare ca',\n    'pickerView.sketch_library' : 'Conversie bibliotecă schițe...',\n    'pickerView.error.saveAsOrExport.default' : 'Numele fișierului este nevalid.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Ne pare rău, acest nume conține caractere nevalide.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Numele nu se poate termina cu „.” sau cu un spațiu gol.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Numele nu poate conține următoarele caractere: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Numele nu pot depăși 200 de caractere.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Aveți deja aici un document din cloud cu acest nume.',\n    'pickerView.error.addALibrary.permission' : 'Nu aveți permisiunea de a adăuga această bibliotecă',\n    'pickerViewFooter.button.add' : 'Adăugare',\n    'pickerViewFooter.button.cancel' : 'Anulare',\n    'pickerViewFooter.button.copy' : 'Copiați aici',\n    'pickerViewFooter.button.move' : 'Mutați aici',\n    'pickerViewFooter.button.moveFrom' : 'Mutare',\n    'pickerViewFooter.button.choose' : 'Selectare',\n    'pickerViewFooter.button.save' : 'Salvare',\n    'pickerViewFooter.button.switchToOSPicker' : 'Pe computer',\n    'pickerViewFooter.button.save.offline' : 'Este necesară o conexiune la internet',\n    'pickerViewFooter.button.saveAsCopy' : 'Salvare',\n    'pickerViewFooter.button.export' : 'Exportare',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Loc',\n    'pickerViewFooter.checkbox.placeLink' : 'Asociate',\n    'pickerViewFooter.tooltip.placeLink' : 'Puteți plasa acest element doar ca material asociat.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Puteți plasa acest element doar ca încorporat.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Puteți face mult mai multe dacă salvați ca document în cloud',\n    'onboardingCdp.tooltip' : 'Dacă salvați pe computer, nu veți putea utiliza funcțiile cloud.',\n    'onboardingCdp.tooltip.link' : 'Aflați mai multe',\n    'onboardingCdp.table.header.saveToCloud' : 'Spațiu de stocare în cloud Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'Pe computer',\n    'onboardingCdp.button.saveToCloud' : 'Salvare în spațiul de stocare în cloud Adobe',\n    'onboardingCdp.feature.offline' : 'Acces offline',\n    'onboardingCdp.feature.syncing' : 'Sincronizare în cloud cu toate dispozitivele dvs.',\n    'onboardingCdp.feature.autosave' : 'Salvarea automată a fiecărei modificări',\n    'onboardingCdp.feature.versionHistory' : 'Istoricul versiunilor',\n    'onboardingCdp.feature.inviteToEdit' : 'Invitați la editare',\n    'onboardingCdp.button.saveToLocal' : 'Salvare pe computerul dvs.',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Nu se mai afișează',\n    'uap.title.place' : 'Plasare din spațiul de stocare în cloud Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Plasare din spațiul de stocare în cloud Adobe',\n    'uap.title.linkAssets' : 'Link de la spațiul de stocare în cloud Adobe',\n    'uap.title.open' : 'Deschideți din spațiul de stocare în cloud Adobe',\n    'uap.title.saveAs' : 'Salvare în spațiul de stocare în cloud Adobe',\n    'uap.title.saveAsCopy' : 'Salvare în spațiul de stocare în cloud Adobe',\n    'uap.title.saveToFolder' : 'Salvare în spațiul de stocare în cloud Adobe',\n    'uap.title.export' : 'Exportare în spațiul de stocare în cloud Adobe',\n    'uap.title.copy' : 'Copiere în spațiul de stocare în cloud Adobe',\n    'uap.title.move' : 'Mutare în cloudul Adobe',\n    'uap.title.moveFrom' : 'Mutare în cloudul Adobe',\n    'uap.title.add' : 'Adăugare din spațiul de stocare în cloud Adobe',\n    'uap.mobile.tabs.locations' : 'Locații',\n    'uap.mobile.projects.heading.name' : 'Proiecte',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Не показывать снова',\n    'confirmationDialog.confirm.default' : 'Продолжить',\n    'confirmationDialog.cancel.default' : 'Отмена',\n    'confirmationDialog.learnMore' : 'Подробнее',\n    'toast.warning.place' : 'Не удается разместить связанные облачные документы. Продолжайте встраивание.',\n    'toast.warning.placeLinkOrEmbed' : 'Теперь размещаемые вами ресурсы по умолчанию связаны с оригиналом. Это означает, что при его изменении в одном месте эти изменения отражаются повсюду.',\n    'toast.warning.saveAs.invalidFormat' : 'К сожалению, вы не можете сохранять файлы {genericFormat} здесь. Ваш файл будет сохранен в формате {adobeFormat}.',\n    'pickerView.recent' : 'Недавние',\n    'pickerView.cloud_docs' : 'Ваши файлы',\n    'pickerView.shared_with_you' : 'Открыто для вас',\n    'pickerView.projects' : 'Проекты',\n    'pickerView.firefly_history' : 'История Firefly',\n    'pickerView.computer' : 'Мой компьютер...',\n    'pickerView.saveAsInput' : 'Сохранить как',\n    'pickerView.exportInput' : 'Экспортировать как',\n    'pickerView.sketch_library' : 'Преобразовать библиотеку Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'Недопустимое название файла.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Название папки содержит недопустимые символы.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Название не может заканчиваться точкой или пробелом.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'В названии нельзя использовать следующие символы: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Название не может содержать больше 200 символов.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Облачный документ с таким названием уже существует.',\n    'pickerView.error.addALibrary.permission' : 'У вас нет разрешения на добавление этой библиотеки',\n    'pickerViewFooter.button.add' : 'Добавление',\n    'pickerViewFooter.button.cancel' : 'Отмена',\n    'pickerViewFooter.button.copy' : 'Скопировать сюда',\n    'pickerViewFooter.button.move' : 'Переместить сюда',\n    'pickerViewFooter.button.moveFrom' : 'Переместить',\n    'pickerViewFooter.button.choose' : 'Выбрать',\n    'pickerViewFooter.button.save' : 'Сохранить',\n    'pickerViewFooter.button.switchToOSPicker' : 'На компьютере',\n    'pickerViewFooter.button.save.offline' : 'Требуется подключение к Интернету',\n    'pickerViewFooter.button.saveAsCopy' : 'Сохранить',\n    'pickerViewFooter.button.export' : 'Экспортировать',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Поместить',\n    'pickerViewFooter.checkbox.placeLink' : 'Связанный',\n    'pickerViewFooter.tooltip.placeLink' : 'Этот элемент можно разместить только как связанный ресурс.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Этот элемент можно разместить только как встроенный.',\n    'pickerViewFooter.saveAs.format.label' : 'Формат',\n    'onboardingCdp.title' : 'У вас будет гораздо больше возможностей, если вы сохраните проект как облачный документ',\n    'onboardingCdp.tooltip' : 'Если проект будет сохранен на компьютере, вы не сможете пользоваться облачными функциями.',\n    'onboardingCdp.tooltip.link' : 'Подробнее',\n    'onboardingCdp.table.header.saveToCloud' : 'Облачное хранилище Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'На компьютере',\n    'onboardingCdp.button.saveToCloud' : 'Сохранить в облачном хранилище Adobe',\n    'onboardingCdp.feature.offline' : 'Автономный доступ',\n    'onboardingCdp.feature.syncing' : 'Облачная синхронизация на все устройства',\n    'onboardingCdp.feature.autosave' : 'Автосохранение каждого изменения',\n    'onboardingCdp.feature.versionHistory' : 'Журнал версий',\n    'onboardingCdp.feature.inviteToEdit' : 'Пригласить к редактированию',\n    'onboardingCdp.button.saveToLocal' : 'Сохранить на компьютере',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Не показывать снова',\n    'uap.title.place' : 'Размещение из облачного хранилища Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Размещение из облачного хранилища Adobe',\n    'uap.title.linkAssets' : 'Ссылка из облачного хранилища Adobe',\n    'uap.title.open' : 'Открыть из облачного хранилища Adobe',\n    'uap.title.saveAs' : 'Сохранить в облачном хранилище Adobe',\n    'uap.title.saveAsCopy' : 'Сохранить в облачном хранилище Adobe',\n    'uap.title.saveToFolder' : 'Сохранить в облачном хранилище Adobe',\n    'uap.title.export' : 'Экспорт в облачное хранилище Adobe',\n    'uap.title.copy' : 'Копировать в облачное хранилище Adobe',\n    'uap.title.move' : 'Переместить в облако Adobe',\n    'uap.title.moveFrom' : 'Переместить в облако Adobe',\n    'uap.title.add' : 'Добавить из облачного хранилища Adobe',\n    'uap.mobile.tabs.locations' : 'Местоположения',\n    'uap.mobile.projects.heading.name' : 'Проекты',\n    'uap.fileFormatDropdown.label' : 'Формат',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Visa inte igen',\n    'confirmationDialog.confirm.default' : 'Fortsätt',\n    'confirmationDialog.cancel.default' : 'Avbryt',\n    'confirmationDialog.learnMore' : 'Mer information',\n    'toast.warning.place' : 'Det går inte att montera länkade molndokument än. Fortsätt och bädda in i stället.',\n    'toast.warning.placeLinkOrEmbed' : 'Resurser som du monterar länkas nu till originalet som standard. Det betyder att om du redigerar den på ett ställe återspeglas dessa ändringar överallt.',\n    'toast.warning.saveAs.invalidFormat' : 'Du kan tyvärr inte spara {genericFormat}-filer här. Din fil sparas som {adobeFormat}.',\n    'pickerView.recent' : 'Senaste',\n    'pickerView.cloud_docs' : 'Dina filer',\n    'pickerView.shared_with_you' : 'Delas med dig',\n    'pickerView.projects' : 'Projekt',\n    'pickerView.firefly_history' : 'Firefly-historik',\n    'pickerView.computer' : 'Din dator...',\n    'pickerView.saveAsInput' : 'Spara som',\n    'pickerView.exportInput' : 'Exportera som',\n    'pickerView.sketch_library' : 'Konvertera Sketch-bibliotek...',\n    'pickerView.error.saveAsOrExport.default' : 'Ogiltigt filnamn.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Namnet innehåller ogiltiga tecken.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Namn får inte sluta med ”.” eller blanksteg.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Namn får inte innehålla följande tecken: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Namn får innehålla högst 200 tecken.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Du har redan ett molndokument med detta namn.',\n    'pickerView.error.addALibrary.permission' : 'Du har inte behörighet att lägga till det här biblioteket',\n    'pickerViewFooter.button.add' : 'Lägg till',\n    'pickerViewFooter.button.cancel' : 'Avbryt',\n    'pickerViewFooter.button.copy' : 'Kopiera hit',\n    'pickerViewFooter.button.move' : 'Flytta hit',\n    'pickerViewFooter.button.moveFrom' : 'Flytta',\n    'pickerViewFooter.button.choose' : 'Välj',\n    'pickerViewFooter.button.save' : 'Spara',\n    'pickerViewFooter.button.switchToOSPicker' : 'På din dator',\n    'pickerViewFooter.button.save.offline' : 'Internetanslutning krävs',\n    'pickerViewFooter.button.saveAsCopy' : 'Spara',\n    'pickerViewFooter.button.export' : 'Exportera',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Montera',\n    'pickerViewFooter.checkbox.placeLink' : 'Länkat',\n    'pickerViewFooter.tooltip.placeLink' : 'Du kan bara montera det här objektet som en länkad resurs.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Du kan bara placera det här objektet som inbäddat.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Du kan göra mycket mer om du sparar som molndokument',\n    'onboardingCdp.tooltip' : 'Om du sparar på datorn kan du inte använda molnfunktionerna.',\n    'onboardingCdp.tooltip.link' : 'Mer information',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobes molnlagring',\n    'onboardingCdp.table.header.saveToLocal' : 'På din dator',\n    'onboardingCdp.button.saveToCloud' : 'Spara i Adobes molnlagring',\n    'onboardingCdp.feature.offline' : 'Åtkomst offline',\n    'onboardingCdp.feature.syncing' : 'Molnet synkas med alla dina enheter',\n    'onboardingCdp.feature.autosave' : 'Alla ändringar sparas automatiskt',\n    'onboardingCdp.feature.versionHistory' : 'Versionshistorik',\n    'onboardingCdp.feature.inviteToEdit' : 'Bjud in att redigera',\n    'onboardingCdp.button.saveToLocal' : 'Spara på din dator',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Visa inte igen',\n    'uap.title.place' : 'Montera från Adobes molnlagring',\n    'uap.title.placeLinkOrEmbed' : 'Montera från Adobes molnlagring',\n    'uap.title.linkAssets' : 'Länka från Adobes molnlagring',\n    'uap.title.open' : 'Öppna från Adobes molnlagring',\n    'uap.title.saveAs' : 'Spara i Adobes molnlagring',\n    'uap.title.saveAsCopy' : 'Spara i Adobes molnlagring',\n    'uap.title.saveToFolder' : 'Spara i Adobes molnlagring',\n    'uap.title.export' : 'Exportera till Adobes molnlagring',\n    'uap.title.copy' : 'Kopiera till Adobes molnlagring',\n    'uap.title.move' : 'Flytta i Adobes moln',\n    'uap.title.moveFrom' : 'Flytta i Adobes moln',\n    'uap.title.add' : 'Lägg till från Adobes molnlagring',\n    'uap.mobile.tabs.locations' : 'Placeringar',\n    'uap.mobile.projects.heading.name' : 'Projekt',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'மீண்டும் காட்டாதே',\n    'confirmationDialog.confirm.default' : 'தொடர்க',\n    'confirmationDialog.cancel.default' : 'ரத்து',\n    'confirmationDialog.learnMore' : 'மேலும் அறிக',\n    'toast.warning.place' : 'இணைக்கப்பட்ட கிளவுட் ஆவணங்களை இன்னும் வைக்க முடியவில்லை. அதற்கு பதிலாக உட்பொதிப்பதைத் தொடரவும்.',\n    'toast.warning.placeLinkOrEmbed' : 'நீங்கள் வைக்கும் சொத்துக்கள் இப்போது இயல்புநிலையாகவே அசல் பதிப்போடு இணைக்கப்பட்டுள்ளன. அதாவது, நீங்கள் அதை ஒரே இடத்தில் திருத்தினால், அந்த மாற்றங்கள் எல்லா இடங்களிலும் பிரதிபலிக்கும்.',\n    'toast.warning.saveAs.invalidFormat' : 'மன்னிக்கவும், சேமிக்க முடியவில்லை. {genericFormat} கோப்புகள் இங்கே. உங்கள் கோப்பு இவ்வாறு சேமிக்கப்படும் {adobeFormat}.',\n    'pickerView.recent' : 'அண்மையில்',\n    'pickerView.cloud_docs' : 'உங்கள் கோப்புகள்',\n    'pickerView.shared_with_you' : 'உங்களுடன் பகிரப்பட்டது',\n    'pickerView.projects' : 'திட்டங்கள்',\n    'pickerView.firefly_history' : 'Firefly பூச்சி வரலாறு',\n    'pickerView.computer' : 'உங்கள் கணினி...',\n    'pickerView.saveAsInput' : 'இவ்வாறு சேமி',\n    'pickerView.exportInput' : 'இவ்வாறு ஏற்றுமதி செய்',\n    'pickerView.sketch_library' : 'ஸ்கெட்ச் நூலகத்தை மாற்று...',\n    'pickerView.error.saveAsOrExport.default' : 'கோப்பு பெயர் தவறானது.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'மன்னிக்கவும், இந்தப் பெயரில் தவறான எழுத்து(கள்) உள்ளன.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'பெயர் \".\" உடன் அல்லது இடைவெளியுடன் முடிவடையக் கூடாது.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'பின்வரும் எழுத்துருக்கள் பெயரில் இருக்கக் கூடாது: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'பெயர்கள் 200 எழுத்துகளுக்கு மேல் இருக்கக்கூடாது.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'இந்த பெயரில் ஏற்கனவே உங்களிடம் ஒரு கிளவுட் ஆவணம் உள்ளது.',\n    'pickerView.error.addALibrary.permission' : 'இந்த நூலகத்தைச் சேர்க்க உங்களுக்கு அனுமதி இல்லை.',\n    'pickerViewFooter.button.add' : 'சேர்',\n    'pickerViewFooter.button.cancel' : 'ரத்து',\n    'pickerViewFooter.button.copy' : 'இங்கே நகலெடுக்கவும்',\n    'pickerViewFooter.button.move' : 'இங்கே நகர்த்து',\n    'pickerViewFooter.button.moveFrom' : 'நகர்த்து',\n    'pickerViewFooter.button.choose' : 'தேர்வு செய்யவும்',\n    'pickerViewFooter.button.save' : 'சேமி',\n    'pickerViewFooter.button.switchToOSPicker' : 'உங்கள் கம்ப்யூட்டரில்',\n    'pickerViewFooter.button.save.offline' : 'இணைய இணைப்பு தேவை',\n    'pickerViewFooter.button.saveAsCopy' : 'சேமி',\n    'pickerViewFooter.button.export' : 'பதிவேற்று',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'இடம்',\n    'pickerViewFooter.checkbox.placeLink' : 'இணைக்கப்பட்டது',\n    'pickerViewFooter.tooltip.placeLink' : 'இந்த உருப்படியை இணைக்கப்பட்ட சொத்தாக மட்டுமே வைக்க முடியும்.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'இந்த உருப்படியை உட்பொதிக்கப்பட்டதாக மட்டுமே வைக்க முடியும்.',\n    'pickerViewFooter.saveAs.format.label' : 'வடிவம்',\n    'onboardingCdp.title' : 'நீங்கள் ஒரு மேகக்கணி ஆவணமாகச் சேமித்தால் இன்னும் பலவற்றைச் செய்யலாம்.',\n    'onboardingCdp.tooltip' : 'உங்கள் கணினியில் சேமித்தால், கிளவுட் அம்சங்களைப் பயன்படுத்த முடியாது.',\n    'onboardingCdp.tooltip.link' : 'மேலும் அறிக',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe கிளவுட் சேமிப்பு',\n    'onboardingCdp.table.header.saveToLocal' : 'உங்கள் கம்ப்யூட்டரில்',\n    'onboardingCdp.button.saveToCloud' : 'Adobe கிளவுட் சேமிப்பகத்தில் சேமிக்கவும்',\n    'onboardingCdp.feature.offline' : 'ஆஃப்லைன் அணுகல்',\n    'onboardingCdp.feature.syncing' : 'உங்கள் எல்லா சாதனங்களுடனும் கிளவுட் ஒத்திசைவு',\n    'onboardingCdp.feature.autosave' : 'ஒவ்வொரு மாற்றத்தையும் தானாகச் சேமிக்கிறது',\n    'onboardingCdp.feature.versionHistory' : 'பதிப்பு வரலாறு',\n    'onboardingCdp.feature.inviteToEdit' : 'திருத்த அழைக்கவும்',\n    'onboardingCdp.button.saveToLocal' : 'உங்கள் கணினியில் சேமிக்கவும்',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'மீண்டும் காட்டாதே',\n    'uap.title.place' : 'Adobe கிளவுட் சேமிப்பகத்திலிருந்து இடம்',\n    'uap.title.placeLinkOrEmbed' : 'Adobe கிளவுட் சேமிப்பகத்திலிருந்து இடம்',\n    'uap.title.linkAssets' : 'Adobe கிளவுட் சேமிப்பகத்திலிருந்து இணைப்பு',\n    'uap.title.open' : 'Adobe கிளவுட் சேமிப்பகத்திலிருந்து திறக்கவும்',\n    'uap.title.saveAs' : 'Adobe கிளவுட் சேமிப்பகத்தில் சேமிக்கவும்',\n    'uap.title.saveAsCopy' : 'Adobe கிளவுட் சேமிப்பகத்தில் சேமிக்கவும்',\n    'uap.title.saveToFolder' : 'Adobe கிளவுட் சேமிப்பகத்தில் சேமிக்கவும்',\n    'uap.title.export' : 'Adobe கிளவுட் சேமிப்பகத்திற்கு ஏற்றுமதி செய்',\n    'uap.title.copy' : 'Adobe கிளவுட் சேமிப்பகத்திற்கு நகலெடுக்கவும்',\n    'uap.title.move' : 'Adobe cloud இல் நகர்த்தவும்',\n    'uap.title.moveFrom' : 'Adobe cloud இல் நகர்த்தவும்',\n    'uap.title.add' : 'Adobe கிளவுட் சேமிப்பகத்திலிருந்து சேர்',\n    'uap.mobile.tabs.locations' : 'இருப்பிடங்கள்',\n    'uap.mobile.projects.heading.name' : 'திட்டங்கள்',\n    'uap.fileFormatDropdown.label' : 'வடிவம்',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'ไม่ต้องแสดงอีก',\n    'confirmationDialog.confirm.default' : 'ดำเนินการต่อ',\n    'confirmationDialog.cancel.default' : 'ยกเลิก',\n    'confirmationDialog.learnMore' : 'ดูข้อมูลเพิ่มเติม',\n    'toast.warning.place' : 'ยังไม่สามารถวางเอกสารระบบคลาวด์ที่มีการเชื่อมโยงได้ ดำเนินการต่อโดยการใช้แบบฝังแทน',\n    'toast.warning.placeLinkOrEmbed' : 'ตอนนี้แอสเซทที่คุณวางจะเชื่อมโยงกับต้นฉบับตามค่าเริ่มต้น ซึ่งหมายความว่า หากคุณแก้ไขในหนึ่งที่ การเปลี่ยนแปลงจะแสดงผลทุกที่',\n    'toast.warning.saveAs.invalidFormat' : 'ขออภัย คุณไม่สามารถบันทึกไฟล์ {genericFormat} ที่นี่ได้ ไฟล์ของคุณจะถูกบันทึกเป็น {adobeFormat}',\n    'pickerView.recent' : 'ล่าสุด',\n    'pickerView.cloud_docs' : 'ไฟล์ของคุณ',\n    'pickerView.shared_with_you' : 'ที่แชร์กับคุณ',\n    'pickerView.projects' : 'โปรเจกต์',\n    'pickerView.firefly_history' : 'ประวัติ Firefly',\n    'pickerView.computer' : 'คอมพิวเตอร์ของคุณ...',\n    'pickerView.saveAsInput' : 'บันทึกเป็น',\n    'pickerView.exportInput' : 'ส่งออกเป็น',\n    'pickerView.sketch_library' : 'แปลงไลบรารี Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'ชื่อไฟล์ไม่ถูกต้อง',\n    'pickerView.error.saveAsOrExport.invalidName' : 'ขออภัย ชื่อนี้มีอักขระที่ไม่ถูกต้อง',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'ชื่อต้องไม่ลงท้ายด้วย \".\" หรือช่องว่าง',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'ชื่อต้องไม่มีอักขระต่อไปนี้: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'ชื่อต้องมีความยาวไม่เกิน 200 ตัวอักษร',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'คุณมีเอกสารระบบคลาวด์ชื่อนี้อยู่ที่นี่แล้ว',\n    'pickerView.error.addALibrary.permission' : 'คุณไม่มีสิทธิ์ที่ต้องใช้ในการเพิ่มไลบรารีนี้',\n    'pickerViewFooter.button.add' : 'เพิ่ม',\n    'pickerViewFooter.button.cancel' : 'ยกเลิก',\n    'pickerViewFooter.button.copy' : 'คัดลอกมาที่นี่',\n    'pickerViewFooter.button.move' : 'ย้ายมาที่นี่',\n    'pickerViewFooter.button.moveFrom' : 'ย้าย',\n    'pickerViewFooter.button.choose' : 'เลือก',\n    'pickerViewFooter.button.save' : 'บันทึก',\n    'pickerViewFooter.button.switchToOSPicker' : 'บนคอมพิวเตอร์ของคุณ',\n    'pickerViewFooter.button.save.offline' : 'จำเป็นต้องมีการเชื่อมต่ออินเทอร์เน็ต',\n    'pickerViewFooter.button.saveAsCopy' : 'บันทึก',\n    'pickerViewFooter.button.export' : 'ส่งออก',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'วาง',\n    'pickerViewFooter.checkbox.placeLink' : 'เชื่อมโยงแล้ว',\n    'pickerViewFooter.tooltip.placeLink' : 'คุณสามารถวางรายการนี้เป็นแอสเซทที่เชื่อมโยงได้เท่านั้น',\n    'pickerViewFooter.tooltip.placeEmbed' : 'คุณสามารถวางรายการนี้เป็นแบบฝังได้เท่านั้น',\n    'pickerViewFooter.saveAs.format.label' : 'รูปแบบ',\n    'onboardingCdp.title' : 'คุณสามารถทำอะไรได้อีกมากมายหากคุณบันทึกเป็นเอกสารระบบคลาวด์',\n    'onboardingCdp.tooltip' : 'หากคุณบันทึกไปยังคอมพิวเตอร์ของคุณ คุณจะไม่สามารถใช้ฟีเจอร์ระบบคลาวด์ได้',\n    'onboardingCdp.tooltip.link' : 'ดูข้อมูลเพิ่มเติม',\n    'onboardingCdp.table.header.saveToCloud' : 'พื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'บนคอมพิวเตอร์ของคุณ',\n    'onboardingCdp.button.saveToCloud' : 'บันทึกลงในพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'onboardingCdp.feature.offline' : 'การเข้าถึงแบบออฟไลน์',\n    'onboardingCdp.feature.syncing' : 'การซิงค์ระบบคลาวด์กับอุปกรณ์ทั้งหมดของคุณ',\n    'onboardingCdp.feature.autosave' : 'บันทึกอัตโนมัติทุกการเปลี่ยนแปลง',\n    'onboardingCdp.feature.versionHistory' : 'ประวัติเวอร์ชัน',\n    'onboardingCdp.feature.inviteToEdit' : 'เชิญเข้าร่วมการแก้ไข',\n    'onboardingCdp.button.saveToLocal' : 'บันทึกบนคอมพิวเตอร์ของคุณ',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'ไม่ต้องแสดงอีก',\n    'uap.title.place' : 'วางจากพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'uap.title.placeLinkOrEmbed' : 'วางจากพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'uap.title.linkAssets' : 'ลิงก์จากพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'uap.title.open' : 'เปิดจากพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'uap.title.saveAs' : 'บันทึกลงในพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'uap.title.saveAsCopy' : 'บันทึกลงในพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'uap.title.saveToFolder' : 'บันทึกลงในพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'uap.title.export' : 'ส่งออกไปยังพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'uap.title.copy' : 'คัดลอกไปยังพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'uap.title.move' : 'ย้ายเข้าระบบคลาวด์ Adobe',\n    'uap.title.moveFrom' : 'ย้ายเข้าระบบคลาวด์ Adobe',\n    'uap.title.add' : 'เพิ่มจากพื้นที่เก็บข้อมูลบนระบบคลาวด์ Adobe',\n    'uap.mobile.tabs.locations' : 'ตำแหน่ง',\n    'uap.mobile.projects.heading.name' : 'โปรเจกต์',\n    'uap.fileFormatDropdown.label' : 'รูปแบบ',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Bir daha gösterme',\n    'confirmationDialog.confirm.default' : 'Devam',\n    'confirmationDialog.cancel.default' : 'İptal',\n    'confirmationDialog.learnMore' : 'Daha fazla bilgi',\n    'toast.warning.place' : 'Bağlantılı bulut belgeleri henüz yerleştirilemiyor. Bunun yerine belgeyi gömmek için devam edin.',\n    'toast.warning.placeLinkOrEmbed' : 'Yerleştirdiğiniz varlıklar artık varsayılan olarak orijinal varlığa bağlıdır. Böylece bir yerde düzenleme yaparsanız bu değişiklikler her yere yansıtılır.',\n    'toast.warning.saveAs.invalidFormat' : 'Üzgünüz, {genericFormat} dosyalarını buraya kaydedemezsiniz. Dosyalarınız {adobeFormat} olarak kaydedilecek.',\n    'pickerView.recent' : 'En Son',\n    'pickerView.cloud_docs' : 'Dosyalarınız',\n    'pickerView.shared_with_you' : 'Sizinle paylaşılanlar',\n    'pickerView.projects' : 'Projeler',\n    'pickerView.firefly_history' : 'Firefly geçmişi',\n    'pickerView.computer' : 'Bilgisayarınız...',\n    'pickerView.saveAsInput' : 'Farklı Kaydet',\n    'pickerView.exportInput' : 'Farklı Dışa Aktar',\n    'pickerView.sketch_library' : 'Sketch Kitaplığını Dönüştür...',\n    'pickerView.error.saveAsOrExport.default' : 'Dosya adı geçersiz.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Üzgünüz, bu ad geçersiz karakterler içeriyor.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Adın sonunda “.” veya boşluk karakteri olamaz.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Ad şu karakterleri içeremez: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Adlar 200 karakterden uzun olamaz.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Bu ada sahip bir bulut belgeniz zaten var.',\n    'pickerView.error.addALibrary.permission' : 'Bu kitaplığa ekleme izniniz yok',\n    'pickerViewFooter.button.add' : 'Ekle',\n    'pickerViewFooter.button.cancel' : 'İptal',\n    'pickerViewFooter.button.copy' : 'Buraya kopyalayın',\n    'pickerViewFooter.button.move' : 'Buraya taşı',\n    'pickerViewFooter.button.moveFrom' : 'Taşı',\n    'pickerViewFooter.button.choose' : 'Seçin',\n    'pickerViewFooter.button.save' : 'Kaydet',\n    'pickerViewFooter.button.switchToOSPicker' : 'Bilgisayarınızda',\n    'pickerViewFooter.button.save.offline' : 'İnternet bağlantısı gerekiyor',\n    'pickerViewFooter.button.saveAsCopy' : 'Kaydet',\n    'pickerViewFooter.button.export' : 'Dışa Aktar',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Yerleştir',\n    'pickerViewFooter.checkbox.placeLink' : 'Bağlı',\n    'pickerViewFooter.tooltip.placeLink' : 'Bu öğeyi yalnızca bir bağlantılı varlık olarak yerleştirebilirsiniz.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Bu öğeyi yalnızca gömülü olarak yerleştirebilirsiniz.',\n    'pickerViewFooter.saveAs.format.label' : 'Format',\n    'onboardingCdp.title' : 'Bulut belgesi olarak kaydederek çok daha fazlasını yapabilirsiniz',\n    'onboardingCdp.tooltip' : 'Bilgisayarınıza kaydederseniz bulut özelliklerini kullanamazsınız.',\n    'onboardingCdp.tooltip.link' : 'Daha fazla bilgi',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe bulut depolama alanı',\n    'onboardingCdp.table.header.saveToLocal' : 'Bilgisayarınızda',\n    'onboardingCdp.button.saveToCloud' : 'Adobe bulut depolama alanına kaydet',\n    'onboardingCdp.feature.offline' : 'Çevrimdışı erişim',\n    'onboardingCdp.feature.syncing' : 'Tüm cihazlarınızda bulut sekronizasyonu',\n    'onboardingCdp.feature.autosave' : 'Her değişiklik otomatik kaydediliyor',\n    'onboardingCdp.feature.versionHistory' : 'Sürüm geçmişi',\n    'onboardingCdp.feature.inviteToEdit' : 'Düzenlemeye davet et',\n    'onboardingCdp.button.saveToLocal' : 'Bilgisayarınıza kaydedin',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Bir daha gösterme',\n    'uap.title.place' : 'Adobe bulut depolama alanından yerleştir',\n    'uap.title.placeLinkOrEmbed' : 'Adobe bulut depolama alanından yerleştir',\n    'uap.title.linkAssets' : 'Adobe bulut depolama alanından bağla',\n    'uap.title.open' : 'Adobe bulut depolama alanından aç',\n    'uap.title.saveAs' : 'Adobe bulut depolama alanına kaydet',\n    'uap.title.saveAsCopy' : 'Adobe bulut depolama alanına kaydet',\n    'uap.title.saveToFolder' : 'Adobe bulut depolama alanına kaydet',\n    'uap.title.export' : 'Adobe bulut depolama alanına dışa aktar',\n    'uap.title.copy' : 'Adobe bulut depolama alanına kopyala',\n    'uap.title.move' : 'Adobe bulutuna taşı',\n    'uap.title.moveFrom' : 'Adobe bulutuna taşı',\n    'uap.title.add' : 'Adobe bulut depolama alanından ekle',\n    'uap.mobile.tabs.locations' : 'Konumlar',\n    'uap.mobile.projects.heading.name' : 'Projeler',\n    'uap.fileFormatDropdown.label' : 'Format',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Більше не показувати',\n    'confirmationDialog.confirm.default' : 'Продовжити',\n    'confirmationDialog.cancel.default' : 'Скасувати',\n    'confirmationDialog.learnMore' : 'Докладніше',\n    'toast.warning.place' : 'Неможливо розмістити зв’язані хмарні документи. Перейдіть до вкладення натомість.',\n    'toast.warning.placeLinkOrEmbed' : 'Ресурси, які ви розміщуєте, тепер за замовчуванням пов\\'язані з оригіналом. Це означає, що якщо ви редагуєте його в одному місці, ці зміни відображаються всюди.',\n    'toast.warning.saveAs.invalidFormat' : 'На жаль, тут не можна зберігати файли у форматі {genericFormat}. Ваш фал буде збережено у форматі {adobeFormat}.',\n    'pickerView.recent' : 'Нещодавні',\n    'pickerView.cloud_docs' : 'Ваші файли',\n    'pickerView.shared_with_you' : 'Відкрито для вас',\n    'pickerView.projects' : 'Проєкти',\n    'pickerView.firefly_history' : 'Історія Firefly',\n    'pickerView.computer' : 'Ваш комп’ютер...',\n    'pickerView.saveAsInput' : 'Зберегти як',\n    'pickerView.exportInput' : 'Експортувати як',\n    'pickerView.sketch_library' : 'Перетворити бібліотеку Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'Неприпустима назва файлу.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'На жаль, ця назва містить неприпустимі символи.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Назва не може закінчуватися крапкою («.») або пробілом.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Назва не може містити такі символи: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Довжина імен не може перевищувати 200 символів.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'У вас тут уже є хмарний документ із таким ім’ям.',\n    'pickerView.error.addALibrary.permission' : 'У вас немає дозволу на доступ до цієї бібліотеки',\n    'pickerViewFooter.button.add' : 'Додати',\n    'pickerViewFooter.button.cancel' : 'Скасувати',\n    'pickerViewFooter.button.copy' : 'Скопіювати сюди',\n    'pickerViewFooter.button.move' : 'Перемістити сюди',\n    'pickerViewFooter.button.moveFrom' : 'Перемістити',\n    'pickerViewFooter.button.choose' : 'Виберіть',\n    'pickerViewFooter.button.save' : 'Зберегти',\n    'pickerViewFooter.button.switchToOSPicker' : 'На комп’ютері',\n    'pickerViewFooter.button.save.offline' : 'Потребує з’єднання з Інтернетом',\n    'pickerViewFooter.button.saveAsCopy' : 'Зберегти',\n    'pickerViewFooter.button.export' : 'Експорт',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Помістити',\n    'pickerViewFooter.checkbox.placeLink' : 'Зв\\'язаний',\n    'pickerViewFooter.tooltip.placeLink' : 'Цей ресурс можна розмістити лише як прив\\'язаний.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Цей елемент можна розмістити лише як вбудований.',\n    'pickerViewFooter.saveAs.format.label' : 'Формат',\n    'onboardingCdp.title' : 'Ви матимете більше можливостей, якщо збережете файл як хмарний документ',\n    'onboardingCdp.tooltip' : 'У разі збереження файлу на комп\\'ютер ви не зможете використовувати хмарні функції.',\n    'onboardingCdp.tooltip.link' : 'Докладніше',\n    'onboardingCdp.table.header.saveToCloud' : 'Хмарне сховище Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'На комп’ютері',\n    'onboardingCdp.button.saveToCloud' : 'Зберегти в хмарному сховищі Adobe',\n    'onboardingCdp.feature.offline' : 'Доступ офлайн',\n    'onboardingCdp.feature.syncing' : 'Синхронізація з хмарою на всіх ваших пристроях',\n    'onboardingCdp.feature.autosave' : 'Автозбереження кожної зміни',\n    'onboardingCdp.feature.versionHistory' : 'Історія версій',\n    'onboardingCdp.feature.inviteToEdit' : 'Запросити для редагування',\n    'onboardingCdp.button.saveToLocal' : 'Збереження на комп’ютері',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Більше не показувати',\n    'uap.title.place' : 'Розмістити з хмарного сховища Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Розмістити з хмарного сховища Adobe',\n    'uap.title.linkAssets' : 'Прив’язати з хмарного сховища Adobe',\n    'uap.title.open' : 'Відкрити з хмарного сховища Adobe',\n    'uap.title.saveAs' : 'Зберегти в хмарному сховищі Adobe',\n    'uap.title.saveAsCopy' : 'Зберегти в хмарному сховищі Adobe',\n    'uap.title.saveToFolder' : 'Зберегти в хмарному сховищі Adobe',\n    'uap.title.export' : 'Експортувати до хмарного сховища Adobe',\n    'uap.title.copy' : 'Копіювати до хмарного сховища Adobe',\n    'uap.title.move' : 'Перемістити до хмари Adobe',\n    'uap.title.moveFrom' : 'Перемістити до хмари Adobe',\n    'uap.title.add' : 'Додати з хмарного сховища Adobe',\n    'uap.mobile.tabs.locations' : 'Знаходження',\n    'uap.mobile.projects.heading.name' : 'Проєкти',\n    'uap.fileFormatDropdown.label' : 'Формат',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : 'Không hiển thị lại',\n    'confirmationDialog.confirm.default' : 'Tiếp tục',\n    'confirmationDialog.cancel.default' : 'Hủy',\n    'confirmationDialog.learnMore' : 'Tìm hiểu thêm',\n    'toast.warning.place' : 'Chức năng đặt liên kết đến tài liệu đám mây hiện chưa khả dụng. Vui lòng tiếp tục nhúng tài liệu.',\n    'toast.warning.placeLinkOrEmbed' : 'Theo mặc định, những tài nguyên bạn đặt bây giờ được liên kết với bản gốc. Điều đó có nghĩa là nếu bạn chỉnh sửa tài nguyên này trên một nền tảng, thì thay đổi đó sẽ áp dụng cho tài nguyên này ở mọi nền tảng khác.',\n    'toast.warning.saveAs.invalidFormat' : 'Rất tiếc, bạn không thể lưu tệp {genericFormat} ở đây. Tệp sẽ được lưu dưới dạng {adobeFormat}.',\n    'pickerView.recent' : 'Gần đây',\n    'pickerView.cloud_docs' : 'Tệp của bạn',\n    'pickerView.shared_with_you' : 'Chia sẻ với bạn',\n    'pickerView.projects' : 'Dự án',\n    'pickerView.firefly_history' : 'Lịch sử Firefly',\n    'pickerView.computer' : 'Máy tính của bạn...',\n    'pickerView.saveAsInput' : 'Lưu thành',\n    'pickerView.exportInput' : 'Xuất dưới dạng',\n    'pickerView.sketch_library' : 'Chuyển đổi thư viện Sketch...',\n    'pickerView.error.saveAsOrExport.default' : 'Tên tệp không hợp lệ.',\n    'pickerView.error.saveAsOrExport.invalidName' : 'Rất tiếc, tên này chứa (các) ký tự không hợp lệ.',\n    'pickerView.error.saveAsOrExport.invalidEnd' : 'Tên không được kết thúc bằng \".\" hoặc khoảng trống.',\n    'pickerView.error.saveAsOrExport.invalidChar' : 'Tên không được chứa những ký tự sau: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Tên không được dài hơn 200 ký tự.',\n    'pickerView.error.saveAsOrExport.duplicateName' : 'Bạn đã có một tài liệu trên đám mây cùng tên ở đây.',\n    'pickerView.error.addALibrary.permission' : 'Bạn không có quyền thêm thư viện này',\n    'pickerViewFooter.button.add' : 'Thêm',\n    'pickerViewFooter.button.cancel' : 'Hủy',\n    'pickerViewFooter.button.copy' : 'Sao chép ở đây',\n    'pickerViewFooter.button.move' : 'Chuyển đến đây',\n    'pickerViewFooter.button.moveFrom' : 'Di chuyển',\n    'pickerViewFooter.button.choose' : 'Chọn',\n    'pickerViewFooter.button.save' : 'Lưu',\n    'pickerViewFooter.button.switchToOSPicker' : 'Trên máy tính của bạn',\n    'pickerViewFooter.button.save.offline' : 'Cần có kết nối Internet',\n    'pickerViewFooter.button.saveAsCopy' : 'Lưu',\n    'pickerViewFooter.button.export' : 'Xuất',\n    'pickerViewFooter.button.placeLinkOrEmbed' : 'Vị trí',\n    'pickerViewFooter.checkbox.placeLink' : 'Đã liên kết',\n    'pickerViewFooter.tooltip.placeLink' : 'Bạn chỉ có thể đặt mục này làm nội dung được liên kết.',\n    'pickerViewFooter.tooltip.placeEmbed' : 'Bạn chỉ có thể đặt mục này dưới dạng nhúng.',\n    'pickerViewFooter.saveAs.format.label' : 'Định dạng',\n    'onboardingCdp.title' : 'Bạn có thể làm được nhiều việc hơn nếu lưu làm tài liệu trên đám mây',\n    'onboardingCdp.tooltip' : 'Nếu lưu vào máy tính, bạn sẽ không thể sử dụng các tính năng đám mây.',\n    'onboardingCdp.tooltip.link' : 'Tìm hiểu thêm',\n    'onboardingCdp.table.header.saveToCloud' : 'Dịch vụ lưu trữ đám mây Adobe',\n    'onboardingCdp.table.header.saveToLocal' : 'Trên máy tính của bạn',\n    'onboardingCdp.button.saveToCloud' : 'Lưu vào dịch vụ lưu trữ đám mây Adobe',\n    'onboardingCdp.feature.offline' : 'Truy cập không cần Internet',\n    'onboardingCdp.feature.syncing' : 'Đang đồng bộ hóa đám mây với tất cả thiết bị của bạn',\n    'onboardingCdp.feature.autosave' : 'Tự động lưu mọi thay đổi',\n    'onboardingCdp.feature.versionHistory' : 'Lịch sử phiên bản',\n    'onboardingCdp.feature.inviteToEdit' : 'Mời chỉnh sửa',\n    'onboardingCdp.button.saveToLocal' : 'Lưu trên máy tính của bạn',\n    'onboardingCdp.checkbox.doNotShowAgain' : 'Không hiển thị lại',\n    'uap.title.place' : 'Đặt từ dịch vụ lưu trữ đám mây Adobe',\n    'uap.title.placeLinkOrEmbed' : 'Đặt từ dịch vụ lưu trữ đám mây Adobe',\n    'uap.title.linkAssets' : 'Liên kết từ dịch vụ lưu trữ đám mây Adobe',\n    'uap.title.open' : 'Mở từ dịch vụ lưu trữ đám mây Adobe',\n    'uap.title.saveAs' : 'Lưu vào dịch vụ lưu trữ đám mây Adobe',\n    'uap.title.saveAsCopy' : 'Lưu vào dịch vụ lưu trữ đám mây Adobe',\n    'uap.title.saveToFolder' : 'Lưu vào dịch vụ lưu trữ đám mây Adobe',\n    'uap.title.export' : 'Xuất sang dịch vụ lưu trữ đám mây Adobe',\n    'uap.title.copy' : 'Sao chép vào dịch vụ lưu trữ đám mây Adobe',\n    'uap.title.move' : 'Di chuyển trong dịch vụ đám mây Adobe',\n    'uap.title.moveFrom' : 'Di chuyển trong dịch vụ đám mây Adobe',\n    'uap.title.add' : 'Thêm từ dịch vụ lưu trữ đám mây Adobe',\n    'uap.mobile.tabs.locations' : 'Vị trí',\n    'uap.mobile.projects.heading.name' : 'Dự án',\n    'uap.fileFormatDropdown.label' : 'Định dạng',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : '不再显示',\n    'confirmationDialog.confirm.default' : '继续',\n    'confirmationDialog.cancel.default' : '取消',\n    'confirmationDialog.learnMore' : '了解详情',\n    'toast.warning.place' : '还无法放置带有链接的云文档。请继续采用嵌入方式。',\n    'toast.warning.placeLinkOrEmbed' : '您放置的资源现在默认链接到原始资源。这意味着如果您在一个地方对资源进行编辑,则这些更改会在所有位置反映出来。',\n    'toast.warning.saveAs.invalidFormat' : '抱歉,您无法在此处保存 {genericFormat} 文件。您的文件将另存为 {adobeFormat}。',\n    'pickerView.recent' : '最近使用项',\n    'pickerView.cloud_docs' : '您的文件',\n    'pickerView.shared_with_you' : '已与您共享',\n    'pickerView.projects' : '项目',\n    'pickerView.firefly_history' : 'Firefly 历史记录',\n    'pickerView.computer' : '您的计算机...',\n    'pickerView.saveAsInput' : '另存为',\n    'pickerView.exportInput' : '导出为',\n    'pickerView.sketch_library' : '转换 Sketch 库...',\n    'pickerView.error.saveAsOrExport.default' : '文件名无效。',\n    'pickerView.error.saveAsOrExport.invalidName' : '抱歉,此名称包含无效字符。',\n    'pickerView.error.saveAsOrExport.invalidEnd' : '名称不能以“.”或空格结尾。',\n    'pickerView.error.saveAsOrExport.invalidChar' : '名称不得包含以下字符:{characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : 'Names can\\'t be longer than 200 characters.',\n    'pickerView.error.saveAsOrExport.duplicateName' : '您在此处已有同名的云文档。',\n    'pickerView.error.addALibrary.permission' : '您无权添加此库',\n    'pickerViewFooter.button.add' : '添加',\n    'pickerViewFooter.button.cancel' : '取消',\n    'pickerViewFooter.button.copy' : '复制到此处',\n    'pickerViewFooter.button.move' : '移到此处',\n    'pickerViewFooter.button.moveFrom' : '移动',\n    'pickerViewFooter.button.choose' : '选取',\n    'pickerViewFooter.button.save' : '保存',\n    'pickerViewFooter.button.switchToOSPicker' : '在您的计算机上',\n    'pickerViewFooter.button.save.offline' : '需要 Internet 连接',\n    'pickerViewFooter.button.saveAsCopy' : '保存',\n    'pickerViewFooter.button.export' : '导出',\n    'pickerViewFooter.button.placeLinkOrEmbed' : '置入',\n    'pickerViewFooter.checkbox.placeLink' : '已链接',\n    'pickerViewFooter.tooltip.placeLink' : '您只能将此项目放置为链接的资源。',\n    'pickerViewFooter.tooltip.placeEmbed' : '您只能将此项目放置为嵌入内容。',\n    'pickerViewFooter.saveAs.format.label' : '格式',\n    'onboardingCdp.title' : '如果另存为云文档,您将可以享用更多功能',\n    'onboardingCdp.tooltip' : '如果保存到您的计算机,您将无法使用云功能。',\n    'onboardingCdp.tooltip.link' : '了解详情',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe 云存储',\n    'onboardingCdp.table.header.saveToLocal' : '在您的计算机上',\n    'onboardingCdp.button.saveToCloud' : '保存到 Adobe 云存储',\n    'onboardingCdp.feature.offline' : '离线访问',\n    'onboardingCdp.feature.syncing' : '云同步到您的所有设备',\n    'onboardingCdp.feature.autosave' : '自动存储每项更改',\n    'onboardingCdp.feature.versionHistory' : '版本历史记录',\n    'onboardingCdp.feature.inviteToEdit' : '邀请编辑',\n    'onboardingCdp.button.saveToLocal' : '保存在您的计算机上',\n    'onboardingCdp.checkbox.doNotShowAgain' : '不再显示',\n    'uap.title.place' : '来自 Adobe 云存储的位置',\n    'uap.title.placeLinkOrEmbed' : '来自 Adobe 云存储的位置',\n    'uap.title.linkAssets' : '来自 Adobe 云存储的链接',\n    'uap.title.open' : '从 Adobe 云存储打开',\n    'uap.title.saveAs' : '保存到 Adobe 云存储',\n    'uap.title.saveAsCopy' : '保存到 Adobe 云存储',\n    'uap.title.saveToFolder' : '保存到 Adobe 云存储',\n    'uap.title.export' : '导出到 Adobe 云存储',\n    'uap.title.copy' : '复制到 Adobe 云存储',\n    'uap.title.move' : '移入 Adobe Cloud',\n    'uap.title.moveFrom' : '移入 Adobe Cloud',\n    'uap.title.add' : '从 Adobe 云存储添加',\n    'uap.mobile.tabs.locations' : '位置',\n    'uap.mobile.projects.heading.name' : '项目',\n    'uap.fileFormatDropdown.label' : '格式',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : '不要再顯示',\n    'confirmationDialog.confirm.default' : '繼續',\n    'confirmationDialog.cancel.default' : '取消',\n    'confirmationDialog.learnMore' : '了解更多',\n    'toast.warning.place' : '尚無法置入連結的雲端文件。請繼續內嵌。',\n    'toast.warning.placeLinkOrEmbed' : '依據預設,您置入的資產現在會連結到原始資產。這表示如果您在某個地方編輯該資產,這些變更將會反映在所有地方。',\n    'toast.warning.saveAs.invalidFormat' : '抱歉,您無法在這裡儲存 {genericFormat} 檔案。您的檔案將儲存為 {adobeFormat}。',\n    'pickerView.recent' : '最近使用',\n    'pickerView.cloud_docs' : '您的檔案',\n    'pickerView.shared_with_you' : '與您共用',\n    'pickerView.projects' : '專案',\n    'pickerView.firefly_history' : 'Firefly 歷史記錄',\n    'pickerView.computer' : '您的電腦...',\n    'pickerView.saveAsInput' : '另存新檔',\n    'pickerView.exportInput' : '匯出為',\n    'pickerView.sketch_library' : '轉換 Sketch 資料庫...',\n    'pickerView.error.saveAsOrExport.default' : '檔案名稱無效。',\n    'pickerView.error.saveAsOrExport.invalidName' : '抱歉,此名稱包含無效的字元。',\n    'pickerView.error.saveAsOrExport.invalidEnd' : '名稱不能以「.」或空格結尾。',\n    'pickerView.error.saveAsOrExport.invalidChar' : '名稱不能包含下列字元:{characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : '名稱不能超過 200 個字元。',\n    'pickerView.error.saveAsOrExport.duplicateName' : '這裡已有使用此名稱的雲端文件。',\n    'pickerView.error.addALibrary.permission' : '您沒有新增此資料庫的權限',\n    'pickerViewFooter.button.add' : '新增',\n    'pickerViewFooter.button.cancel' : '取消',\n    'pickerViewFooter.button.copy' : '在此複製',\n    'pickerViewFooter.button.move' : '移動到這裡',\n    'pickerViewFooter.button.moveFrom' : '移動',\n    'pickerViewFooter.button.choose' : '選擇',\n    'pickerViewFooter.button.save' : '儲存',\n    'pickerViewFooter.button.switchToOSPicker' : '在您的電腦上',\n    'pickerViewFooter.button.save.offline' : '需要網際網路連線',\n    'pickerViewFooter.button.saveAsCopy' : '儲存',\n    'pickerViewFooter.button.export' : '匯出',\n    'pickerViewFooter.button.placeLinkOrEmbed' : '置入',\n    'pickerViewFooter.checkbox.placeLink' : '已連結',\n    'pickerViewFooter.tooltip.placeLink' : '您只能將此項目以已連結資產的形式置入。',\n    'pickerViewFooter.tooltip.placeEmbed' : '您只能將此項目以嵌入的形式置入。',\n    'pickerViewFooter.saveAs.format.label' : '格式',\n    'onboardingCdp.title' : '如果儲存為雲端文件,您就能享有更多功能',\n    'onboardingCdp.tooltip' : '如果儲存至電腦,您將無法使用雲端功能。',\n    'onboardingCdp.tooltip.link' : '了解更多',\n    'onboardingCdp.table.header.saveToCloud' : 'Adobe 雲端儲存空間',\n    'onboardingCdp.table.header.saveToLocal' : '在您的電腦上',\n    'onboardingCdp.button.saveToCloud' : '儲存到 Adobe 雲端儲存空間',\n    'onboardingCdp.feature.offline' : '離線存取',\n    'onboardingCdp.feature.syncing' : '雲端同步至您的所有裝置',\n    'onboardingCdp.feature.autosave' : '自動儲存所有變更',\n    'onboardingCdp.feature.versionHistory' : '版本記錄',\n    'onboardingCdp.feature.inviteToEdit' : '邀請參與編輯',\n    'onboardingCdp.button.saveToLocal' : '儲存在您的電腦',\n    'onboardingCdp.checkbox.doNotShowAgain' : '不要再顯示',\n    'uap.title.place' : '從 Adobe 雲端儲存空間置入',\n    'uap.title.placeLinkOrEmbed' : '從 Adobe 雲端儲存空間置入',\n    'uap.title.linkAssets' : '從 Adobe 雲端儲存空間連結',\n    'uap.title.open' : '從 Adobe 雲端儲存空間開啟',\n    'uap.title.saveAs' : '儲存到 Adobe 雲端儲存空間',\n    'uap.title.saveAsCopy' : '儲存到 Adobe 雲端儲存空間',\n    'uap.title.saveToFolder' : '儲存到 Adobe 雲端儲存空間',\n    'uap.title.export' : '匯出到 Adobe 雲端儲存空間',\n    'uap.title.copy' : '複製到 Adobe 雲端儲存空間',\n    'uap.title.move' : '移入 Adobe 雲端',\n    'uap.title.moveFrom' : '移入 Adobe 雲端',\n    'uap.title.add' : '從 Adobe 雲端儲存空間新增',\n    'uap.mobile.tabs.locations' : '位置',\n    'uap.mobile.projects.heading.name' : '專案',\n    'uap.fileFormatDropdown.label' : '格式',\n};\n","/* eslint-disable max-len */\n\nmodule.exports = {\n    'confirmationDialog.dontShowAgain' : '[BPh] _cdo_Don\\'t show again',\n    'confirmationDialog.confirm.default' : '[BPg] _cdo_Continue',\n    'confirmationDialog.cancel.default' : '[BPf] _cdo_Cancel',\n    'confirmationDialog.learnMore' : '[BPi] _cdo_Learn more',\n    'toast.warning.place' : '[BQR] _cdo_Can\\'t place linked cloud documents yet. Continue to embed instead.',\n    'toast.warning.placeLinkOrEmbed' : '[BQS] _cdo_Assets you place are now linked to the original by default. That means if you edit it in one place, those changes are reflected everywhere.',\n    'toast.warning.saveAs.invalidFormat' : '[BQT] _cdo_Sorry, you can\\'t save {genericFormat} files here. Your file will be saved as {adobeFormat}.',\n    'pickerView.recent' : '[BP9] _cdo_Recent',\n    'pickerView.cloud_docs' : '[BPw] _cdo_Your files',\n    'pickerView.shared_with_you' : '[BP/] _cdo_Shared with you',\n    'pickerView.projects' : '[BP8] _cdo_Projects',\n    'pickerView.firefly_history' : '[BP7] _cdo_Firefly history',\n    'pickerView.computer' : '[BPx] _cdo_Your Computer...',\n    'pickerView.saveAsInput' : '[BP+] _cdo_Save As',\n    'pickerView.exportInput' : '[BP5] _cdo_Export As',\n    'pickerView.sketch_library' : '[BQA] _cdo_Convert Sketch Library...',\n    'pickerView.error.saveAsOrExport.default' : '[BP0] _cdo_File name is invalid.',\n    'pickerView.error.saveAsOrExport.invalidName' : '[BP4] _cdo_Sorry, this name contains invalid character(s).',\n    'pickerView.error.saveAsOrExport.invalidEnd' : '[BP3] _cdo_Name cannot end with \".\" or empty space.',\n    'pickerView.error.saveAsOrExport.invalidChar' : '[BP2] _cdo_Name cannot contain the following characters: {characters}',\n    'pickerView.error.saveAsOrExport.charRestriction' : '[BPz] _cdo_Names can\\'t be longer than 200 characters.',\n    'pickerView.error.saveAsOrExport.duplicateName' : '[BP1] _cdo_You already have a cloud document here with this name.',\n    'pickerView.error.addALibrary.permission' : '[BPy] _cdo_You don\\'t have permission to add this library',\n    'pickerViewFooter.button.add' : '[BQB] _cdo_Add',\n    'pickerViewFooter.button.cancel' : '[BQC] _cdo_Cancel',\n    'pickerViewFooter.button.copy' : '[BQE] _cdo_Copy here',\n    'pickerViewFooter.button.move' : '[BQG] _cdo_Move here',\n    'pickerViewFooter.button.moveFrom' : '[BQH] _cdo_Move',\n    'pickerViewFooter.button.choose' : '[BQD] _cdo_Choose',\n    'pickerViewFooter.button.save' : '[BQJ] _cdo_Save',\n    'pickerViewFooter.button.switchToOSPicker' : '[BQM] _cdo_On your computer',\n    'pickerViewFooter.button.save.offline' : '[BQK] _cdo_Internet connection required',\n    'pickerViewFooter.button.saveAsCopy' : '[BQL] _cdo_Save',\n    'pickerViewFooter.button.export' : '[BQF] _cdo_Export',\n    'pickerViewFooter.button.placeLinkOrEmbed' : '[BQI] _cdo_Place',\n    'pickerViewFooter.checkbox.placeLink' : '[BQN] _cdo_Linked',\n    'pickerViewFooter.tooltip.placeLink' : '[BQQ] _cdo_You can only place this item as a linked asset.',\n    'pickerViewFooter.tooltip.placeEmbed' : '[BQP] _cdo_You can only place this item as embedded.',\n    'pickerViewFooter.saveAs.format.label' : '[BQO] _cdo_Format',\n    'onboardingCdp.title' : '[BPt] _cdo_You can do much more if you save as a cloud document',\n    'onboardingCdp.tooltip' : '[BPu] _cdo_If you save to your computer, you won\\'t be able to use cloud features.',\n    'onboardingCdp.tooltip.link' : '[BPv] _cdo_Learn more',\n    'onboardingCdp.table.header.saveToCloud' : '[BPr] _cdo_Adobe cloud storage',\n    'onboardingCdp.table.header.saveToLocal' : '[BPs] _cdo_On your computer',\n    'onboardingCdp.button.saveToCloud' : '[BPj] _cdo_Save to Adobe cloud storage',\n    'onboardingCdp.feature.offline' : '[BPo] _cdo_Offline access',\n    'onboardingCdp.feature.syncing' : '[BPp] _cdo_Cloud syncing to all your devices',\n    'onboardingCdp.feature.autosave' : '[BPm] _cdo_Autosaving every change',\n    'onboardingCdp.feature.versionHistory' : '[BPq] _cdo_Version history',\n    'onboardingCdp.feature.inviteToEdit' : '[BPn] _cdo_Invite to edit',\n    'onboardingCdp.button.saveToLocal' : '[BPk] _cdo_Save on your computer',\n    'onboardingCdp.checkbox.doNotShowAgain' : '[BPl] _cdo_Don\\'t show again',\n    'uap.title.place' : '[BQb] _cdo_Place from Adobe cloud storage',\n    'uap.title.placeLinkOrEmbed' : '[BQc] _cdo_Place from Adobe cloud storage',\n    'uap.title.linkAssets' : '[BQX] _cdo_Link from Adobe cloud storage',\n    'uap.title.open' : '[BQa] _cdo_Open from Adobe cloud storage',\n    'uap.title.saveAs' : '[BQd] _cdo_Save to Adobe cloud storage',\n    'uap.title.saveAsCopy' : '[BQe] _cdo_Save to Adobe cloud storage',\n    'uap.title.saveToFolder' : '[BQf] _cdo_Save to Adobe cloud storage',\n    'uap.title.export' : '[BQW] _cdo_Export to Adobe cloud storage',\n    'uap.title.copy' : '[BQV] _cdo_Copy to Adobe cloud storage',\n    'uap.title.move' : '[BQY] _cdo_Move in Adobe cloud',\n    'uap.title.moveFrom' : '[BQZ] _cdo_Move in Adobe cloud',\n    'uap.title.add' : '[BQU] _cdo_Add from Adobe cloud storage',\n    'uap.mobile.tabs.locations' : '[BQn] _cdo_Locations',\n    'uap.mobile.projects.heading.name' : '[BQm] _cdo_Projects',\n    'uap.fileFormatDropdown.label' : '[BQo] _cdo_Format',\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { observer } from 'mobx-react';\nimport React, { cloneElement } from 'react';\nimport { RawIntlProvider } from 'react-intl';\nimport { intlStore } from '../utils/i18n';\n\n/**\n * This component abstracts react-intl's provider into an easy-to-use wrapper for placing an intl\n * context anywhere in your app without having to import intl or translation message objects.\n * react-intl's context normally works out of the box by placing an IntlProvider at the top of your\n * app, however overlays in react-spectrum v2 disrupt the context passing mechanism due to their use\n * of `unstable_renderSubtreeIntoContainer` which is deprecated and lacks support for the new\n * context API (https://github.com/facebook/react/issues/16721#issuecomment-529815485)\n *\n * This bug was reported to the React Spectrum team, and they declined to accept a fix:\n * https://git.corp.adobe.com/React/react-spectrum-v2/issues/761\n *\n * Moving forward in order to support translation in overlaid elements, developers can splice an\n * <IntlWrapper> component between the OverlayTrigger component and the overlay child needing\n * translation.\n *\n * @example An OverlayTrigger / Tooltip implementation\n * NOTE: Child component sequence is important in RS2. The first component inside OverlayTrigger\n * is the element that listens for the action which would trigger an overlay, AKA the `triggerChild`.\n * The second component (`overlayChild`) represents the UI that will be shown when the trigger\n * condition is met.\n *\n * The context bug only affects the overlayChild, so it's contained in an <IntlWrapper> seen below\n *\n * <OverlayTrigger trigger={['hover]}>\n *     <Button><FormattedMessage id=\"button.hoverMe\" /></Button>\n *     <IntlWrapper>\n *         <Tooltip>\n *             <FormattedMessage id=\"translated.string.id\" />\n *         </Tooltip>\n *     </IntlWrapper>\n * </OverlayTrigger>\n */\nexport const IntlWrapper = observer((props) => {\n    const { children, ...otherProps } = props;\n    return (\n        <RawIntlProvider value={intlStore.intl}>\n            {cloneElement(children, otherProps)}\n        </RawIntlProvider>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { observer } from 'mobx-react';\nimport Textfield from '@react/react-spectrum/Textfield';\n\nimport {\n    VALIDATION_INVALID_CHARS,\n    ValidationStatus,\n    ReactSpectrumValidationState,\n} from '@ccx/ccx-cdo';\n\nimport styles from './SaveAsOrExportInput.css';\n\ninterface SaveAsOrExportInputProps {\n    value: string;\n    errorMessage?: string;\n    inputLabelId: string;\n    onInputChange?: (newName: string) => void;\n    onPrimaryButtonClick?: () => void;\n    primaryButtonDisabled: boolean;\n}\n\nconst SaveAsOrExportInput = observer(\n    ({\n        value,\n        errorMessage,\n        inputLabelId,\n        onInputChange,\n        onPrimaryButtonClick,\n        primaryButtonDisabled,\n    }: SaveAsOrExportInputProps) => {\n        const saveAsOrExportLabel = <FormattedMessage id={`pickerView.${inputLabelId}`} />;\n        const formatMessageValues =\n            errorMessage === ValidationStatus.invalidChar\n                ? { characters: VALIDATION_INVALID_CHARS }\n                : {};\n        const hasErrorMsg = errorMessage !== '';\n        const errorMsgKey = hasErrorMsg\n            ? `pickerView.error.saveAsOrExport.${errorMessage}`\n            : 'pickerView.error.saveAsOrExport.default';\n        const validationState: ReactSpectrumValidationState = hasErrorMsg\n            ? ReactSpectrumValidationState.invalid\n            : ReactSpectrumValidationState.valid;\n        return (\n            <div className={styles.root}>\n                <div className={styles.input}>\n                    <div\n                        className={`${styles.label} saveAsOrExportInputLabel`}\n                        data-testid=\"saveAsOrExportInputLabel\"\n                    >\n                        {saveAsOrExportLabel}\n                    </div>\n                    <div className={styles.textField}>\n                        <Textfield\n                            // eslint-disable-next-line jsx-a11y/no-autofocus -- Consider not using autoFocus\n                            autoFocus\n                            id=\"pickerView.saveAsInput\"\n                            placeholder=\"\"\n                            validationState={validationState}\n                            className={styles.textChild}\n                            value={value}\n                            onChange={(e) => onInputChange && onInputChange(e)}\n                            onKeyDown={(e) => {\n                                if (e.key === 'Enter' && !primaryButtonDisabled) {\n                                    onPrimaryButtonClick?.();\n                                }\n                            }}\n                        />\n                    </div>\n                </div>\n                <div className={styles.error}>\n                    <div className={`${styles.label} ${styles.indentFix}`}>\n                        {saveAsOrExportLabel}\n                    </div>\n                    <div\n                        data-testid=\"saveAsOrExportErrorDiv\"\n                        className={styles.errorMessage + (hasErrorMsg ? ` ${styles.show}` : '')}\n                    >\n                        <FormattedMessage\n                            id={errorMsgKey}\n                            values={formatMessageValues}\n                            defaultMessage={errorMsgKey}\n                        />\n                    </div>\n                </div>\n            </div>\n        );\n    },\n);\n\nexport default SaveAsOrExportInput;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { useState } from 'react';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { FormattedMessage, injectIntl } from 'react-intl';\nimport Dialog from '@react/react-spectrum/Dialog';\nimport Checkbox from '@react/react-spectrum/Checkbox';\nimport { localizedGoUrl } from '@ccx/ccx-cdo';\n\nimport { setStorage, UAP_LOCAL_STORAGE_KEY } from '../utils/storage';\nimport ExternalLink from '@csc/adobe-assets-view/dist/src/components/ExternalLink/ExternalLink';\nimport I18NCDP from '../utils/i18n';\n\nimport styles from './ConfirmationDialog.css';\nimport type { SAM, AssetBrowser } from '@ccx-public/component-types';\n/**\n * Callback provided by hosts to display a Confirmation dialog for a particular view and/or set of selectedItems\n */\nexport type IGetConfirmationDialog = (\n    view: AssetBrowser.NavigationEventDetail,\n    selectedItems: SAM.AdobeAsset[],\n) => IConfirmationDialogConfig | undefined;\n\n/**\n * Config expected to be returned by getConfirmationDialog callback\n */\nexport interface IConfirmationDialogConfig {\n    /**\n     * This is used as a localStorage key to remember if the user\n     * selected \"Don't show again\" for this particular message.\n     *\n     * The same ID should be provided for dialogs with the same\n     * intent, even if localized strings or designs change slightly.\n     */\n    id: string;\n    title: string;\n    body: string | React.JSX.Element;\n    confirmLabel?: string;\n    cancelLabel?: string;\n    variant?: 'confirmation' | 'destructive';\n    learnMoreLink?: string;\n}\n\nexport type IConfirmationDialogProps = WrappedComponentProps &\n    IConfirmationDialogConfig & {\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type -- Callback can be any function type\n        onConfirm: Function;\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type -- Callback can be any function type\n        onCancel: Function;\n        open?: boolean;\n    };\n\nconst ConfirmationDialog = ({\n    intl,\n    id,\n    title,\n    body,\n    confirmLabel,\n    cancelLabel,\n    variant,\n    onConfirm,\n    onCancel,\n    learnMoreLink,\n    open,\n}: IConfirmationDialogProps) => {\n    const [dontShowAgain, setDontShowAgain] = useState(false);\n    const localStorageKey = getDontShowAgainLocalStorageKey(id);\n\n    const defaultConfirmId = 'confirmationDialog.confirm.default';\n    const defaultCancelId = 'confirmationDialog.cancel.default';\n    const useLocaleMessageIfExists = (str: string) =>\n        I18NCDP.isMessageDefined(intl, str) ? intl.formatMessage({ id: str }) : str;\n\n    const dialogTitle = useLocaleMessageIfExists(title);\n    const dialogBody = useLocaleMessageIfExists(body as string);\n    const dialogConfirmLabel = useLocaleMessageIfExists(confirmLabel || defaultConfirmId);\n    const dialogCancelLabel = useLocaleMessageIfExists(cancelLabel || defaultCancelId);\n\n    const dontShowAgainLabel = intl.formatMessage({ id: 'confirmationDialog.dontShowAgain' });\n\n    return (\n        <Dialog\n            className={styles.confirmationDialog}\n            id=\"ConfirmationDialog\"\n            variant={variant || 'confirmation'}\n            title={dialogTitle}\n            confirmLabel={dialogConfirmLabel}\n            cancelLabel={dialogCancelLabel}\n            onConfirm={(...args) => {\n                if (dontShowAgain) {\n                    setStorage(localStorageKey, true);\n                }\n                onConfirm(...args);\n            }}\n            onCancel={onCancel}\n            open={open}\n        >\n            {dialogBody}\n            {learnMoreLink && (\n                <ExternalLink\n                    className={styles.learnMoreLink}\n                    url={localizedGoUrl(learnMoreLink, intl.locale)}\n                >\n                    <FormattedMessage id=\"confirmationDialog.learnMore\" />\n                </ExternalLink>\n            )}\n            <br />\n            <Checkbox\n                label={dontShowAgainLabel}\n                checked={dontShowAgain}\n                onChange={() => setDontShowAgain(!dontShowAgain)}\n            />\n        </Dialog>\n    );\n};\n\nexport function getDontShowAgainLocalStorageKey(id: IConfirmationDialogProps['id']) {\n    return `${UAP_LOCAL_STORAGE_KEY.SEEN_CONFIRMATION_PREFIX}${id}`;\n}\n\nexport default injectIntl(ConfirmationDialog);\nexport { ConfirmationDialog as ConfirmationDialogForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport Select from '@ccx-public/spectrum-wrapper/dist/Select';\nimport type IFileFormatChoice from '../interfaces/IFileFormatChoice';\nimport styles from './FileFormatDropdown.css';\n\nexport interface FileFormatDropdownProps {\n    onFormatSelect?: (selectedFormat: string) => void;\n    fileFormats: IFileFormatChoice[] | undefined;\n}\n\nconst FileFormatDropdown = ({ fileFormats, onFormatSelect }: FileFormatDropdownProps) => {\n    const [selectedFileFormat, setSelectedFileFormat] = useState<string>('');\n\n    if (!fileFormats?.length) {\n        return null;\n    }\n\n    const handleFormatSelect = (e: string) => {\n        setSelectedFileFormat(e);\n        onFormatSelect?.(e);\n    };\n\n    const disableOptions = fileFormats.length === 1;\n    const options = fileFormats.map((fileFormat) => ({\n        label: fileFormat.label,\n        value: fileFormat.extension,\n    }));\n    const singleFileFormat = options?.[0]?.value;\n    const currentFileFormat = selectedFileFormat === '' ? singleFileFormat : selectedFileFormat;\n\n    return (\n        <div className={styles.fileFormatDropdown} data-testid=\"file-format-dropdown\">\n            <div className={styles.fileFormatDropdownLabel}>\n                <FormattedMessage id=\"uap.fileFormatDropdown.label\" />\n            </div>\n            <Select\n                className={styles.fileFormats}\n                disabled={disableOptions}\n                value={currentFileFormat}\n                options={options}\n                onChange={(e) => handleFormatSelect(e)}\n                data-testid=\"file-format-dropdown-select\"\n            />\n        </div>\n    );\n};\n\nexport default FileFormatDropdown;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport Checkbox from '@ccx-public/spectrum-wrapper/dist/Checkbox';\nimport { isWindows } from '@ccx/ccx-cdo';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport InfoOutline from '@ccx-public/spectrum-wrapper/dist/Icon/InfoOutline';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport classnames from 'classnames';\n\nimport type IFileFormatChoice from '../interfaces/IFileFormatChoice';\nimport type IPickerTab from '../interfaces/IPickerTab';\nimport { getStorage } from '../utils/storage';\nimport type { IConfirmationDialogConfig } from './ConfirmationDialog';\nimport ConfirmationDialog, { getDontShowAgainLocalStorageKey } from './ConfirmationDialog';\nimport FileFormatDropdown from './FileFormatDropdown';\n\nimport styles from './PickerViewFooter.css';\n\nexport interface IPickerViewFooterProps {\n    primaryButtonLabel?: string;\n    cancelButtonLabel?: string;\n    onPrimaryButtonClick?: () => void;\n    onCancel?: () => void;\n    onToggleLinkOrEmbed?: (isLink: boolean) => void;\n    onSelect?: (selectedValue: string) => void;\n    primaryButtonDisabled?: boolean;\n    primaryButtonPending?: boolean;\n    disableCancelButton?: boolean;\n    outputFileFormatChoices?: IFileFormatChoice[];\n    isLinkMode?: boolean; // host app override\n    disableLinkCheckbox?: boolean;\n    hideLinkCheckbox?: boolean;\n    hideInfoIconAndTooltip?: boolean;\n    currentTabId?: IPickerTab['id'];\n    isSaveAsOrExportPicker?: boolean;\n    isMobile?: boolean;\n    footerMessage?: React.ReactNode;\n    getConfirmationDialog?: () => IConfirmationDialogConfig | undefined;\n}\n\nconst PickerViewFooter = ({\n    isSaveAsOrExportPicker,\n    outputFileFormatChoices,\n    disableLinkCheckbox,\n    hideLinkCheckbox,\n    hideInfoIconAndTooltip,\n    isLinkMode,\n    primaryButtonLabel,\n    cancelButtonLabel,\n    onPrimaryButtonClick,\n    onCancel,\n    onToggleLinkOrEmbed,\n    primaryButtonDisabled,\n    primaryButtonPending,\n    disableCancelButton,\n    footerMessage,\n    isMobile,\n    getConfirmationDialog,\n    onSelect,\n}: IPickerViewFooterProps) => {\n    const intl = useIntl();\n    const [showingConfirmationDialog, setShowingConfirmationDialog] = useState(false);\n\n    const setOnLinkOrEmbed = (newState: boolean) => {\n        onToggleLinkOrEmbed?.(newState);\n    };\n\n    const handleToggleLinkOrEmbed = () => {\n        setOnLinkOrEmbed(!isLinkMode);\n    };\n\n    const handleSelect = (e: string) => {\n        onSelect?.(e);\n    };\n\n    const renderLinkCheckbox = () => {\n        const tooltip = isLinkMode ? (\n            <Tooltip data-testid=\"pickerViewPlaceLinkTootlTip\">\n                <FormattedMessage id=\"pickerViewFooter.tooltip.placeLink\" />\n            </Tooltip>\n        ) : (\n            <Tooltip>\n                <FormattedMessage id=\"pickerViewFooter.tooltip.placeEmbed\" />\n            </Tooltip>\n        );\n        return (\n            !hideLinkCheckbox && (\n                <div className={styles.linkCheckboxWrapper} data-testid=\"linkCheckboxWrapper\">\n                    <Checkbox\n                        id=\"LinkOrEmbed_Checkbox\"\n                        // @ts-expect-error -- This property only appears to exist in @torq-native/react-spectrum\n                        onClick={handleToggleLinkOrEmbed}\n                        checked={isLinkMode}\n                        role=\"checkbox\"\n                        label={intl.formatMessage({\n                            id: 'pickerViewFooter.checkbox.placeLink',\n                        })}\n                        disabled={disableLinkCheckbox}\n                    />\n                    {disableLinkCheckbox && !hideInfoIconAndTooltip && (\n                        <OverlayTrigger\n                            placement=\"top\"\n                            trigger={['hover']}\n                            data-testid=\"pickerViewFooterOverlayTrigger\"\n                        >\n                            {/* RS-UXP OverlayTrigger does not work with Icon, so wrap it */}\n                            <span className={styles.infoIconWrapper}>\n                                <InfoOutline className=\"infoIcon\" size=\"S\" />\n                            </span>\n                            {tooltip}\n                        </OverlayTrigger>\n                    )}\n                </div>\n            )\n        );\n    };\n\n    const renderButton = ({\n        name,\n        style = {},\n        onClickHandler,\n        variant = 'primary',\n        disabled = false,\n        pending = false,\n        quiet = false,\n        icon = undefined,\n    }) => (\n        <div key={name} className={styles.button} id={`PickerViewFooter_ActionButton${name}`}>\n            <Button\n                id={`PickerViewFooter_ActionButton_${name}`}\n                data-testid={`PickerViewFooter_ActionButton_${name}`}\n                variant={variant as any}\n                style={style}\n                quiet={quiet}\n                icon={icon}\n                pending={pending}\n                disabled={disabled}\n                onClick={onClickHandler}\n            >\n                <FormattedMessage id={`pickerViewFooter.button.${name}`} />\n            </Button>\n        </div>\n    );\n\n    const renderConfirmationDialog = () => {\n        const config = getConfirmationDialog?.();\n        if (!config) {\n            return null;\n        }\n        return (\n            <ConfirmationDialog\n                {...config}\n                onConfirm={() => {\n                    setShowingConfirmationDialog(false);\n                    onPrimaryButtonClick?.();\n                }}\n                onCancel={() => setShowingConfirmationDialog(false)}\n            />\n        );\n    };\n\n    const renderFooterContent = () => {\n        const cancelButton = renderButton({\n            name: cancelButtonLabel,\n            onClickHandler: onCancel,\n            disabled: !!disableCancelButton,\n            variant: 'secondary',\n        });\n        const primaryButton = onPrimaryButtonClick\n            ? renderButton({\n                  disabled: primaryButtonDisabled,\n                  pending: primaryButtonPending,\n                  name: primaryButtonLabel,\n                  onClickHandler: () => {\n                      const confirmationDialogConfig = getConfirmationDialog?.();\n\n                      // if getConfirmationDialog is undefined or if it returns undefined\n                      // for the given context, don't show the confirmation dialog\n                      if (!confirmationDialogConfig) {\n                          onPrimaryButtonClick();\n                          return;\n                      }\n\n                      const dontShowAgainKey = getDontShowAgainLocalStorageKey(\n                          confirmationDialogConfig.id,\n                      );\n                      const canShowConfirmationDialog = !getStorage(dontShowAgainKey);\n\n                      if (canShowConfirmationDialog) {\n                          setShowingConfirmationDialog(true);\n                      } else {\n                          onPrimaryButtonClick();\n                      }\n                  },\n                  variant: 'cta',\n              })\n            : undefined;\n        return (\n            <div className={classnames(styles.root, { [styles.mobile]: isMobile })}>\n                <div className={styles.left} data-testid=\"pickerViewFooterLeftDiv\">\n                    {onToggleLinkOrEmbed && renderLinkCheckbox?.()}\n                    {!onToggleLinkOrEmbed && footerMessage}\n                </div>\n                <div className={styles.right}>\n                    {isWindows() ? (\n                        <>\n                            {primaryButton}\n                            {onCancel && !isMobile && cancelButton}\n                        </>\n                    ) : (\n                        <>\n                            {onCancel && !isMobile && cancelButton}\n                            {primaryButton}\n                        </>\n                    )}\n                </div>\n            </div>\n        );\n    };\n\n    return (\n        <>\n            {showingConfirmationDialog && renderConfirmationDialog()}\n            {isSaveAsOrExportPicker && outputFileFormatChoices ? (\n                <div className={styles.footerWrapper}>\n                    <FileFormatDropdown\n                        onFormatSelect={handleSelect}\n                        fileFormats={outputFileFormatChoices}\n                    />\n                    {renderFooterContent()}\n                </div>\n            ) : (\n                renderFooterContent()\n            )}\n        </>\n    );\n};\n\nexport default PickerViewFooter;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { Component, createRef } from 'react';\nimport classNames from 'classnames';\nimport { observable, action } from 'mobx';\nimport { observer } from 'mobx-react';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { FormattedMessage, injectIntl } from 'react-intl';\nimport { NavigationEvent } from '@csc/common';\nimport { SideNav, SideNavItem, SideNavHeading } from '@react/react-spectrum/SideNav';\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport type IPickerTab from '../interfaces/IPickerTab';\nimport styles from './VerticalTabs.css';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { getExistingCDCGlobalStore } from '@ccx/ccx-cdo';\nimport ChevronRight from '@ccx-public/spectrum-wrapper/dist/Icon/ChevronRight';\n\nimport DeviceDesktop from '@ccx-public/spectrum-wrapper/dist/Icon/DeviceDesktop';\n\nexport interface IVerticalTabsProps {\n    onSwitchView: (event: React.MouseEvent, tab: IPickerTab) => void;\n    currentTabId: IPickerTab['id'];\n    tabs: Array<IPickerTab>;\n    isMobile?: boolean;\n    footer: React.ReactElement;\n    hideYourComputerButton?: boolean;\n    onSwitchToOSPicker?: () => void;\n}\n\n@observer\nclass VerticalTabs extends Component<IVerticalTabsProps & WrappedComponentProps> {\n    @observable private shouldShowSideBar: boolean = true;\n\n    @action private updateShouldShowSidebar(bool: boolean) {\n        this.shouldShowSideBar = bool;\n    }\n\n    private rootFolderId: string = '';\n\n    private verticalTabsRef = createRef<HTMLDivElement>();\n\n    componentDidMount() {\n        const { tabs } = this.props;\n        // check if multiple tabs are visible, if so show sidebar\n        void this.checkShouldShowSidebar(tabs);\n    }\n\n    checkShouldShowSidebar = async (tabs: IPickerTab[]): Promise<void> => {\n        // filter out tabs with `isHidden:true`\n        const tabVisibility = await Promise.all(\n            tabs.map(async (tab) => ({\n                id: tab.id,\n                hidden: await tab.isHidden?.(),\n            })),\n        );\n        const visibleTabs = tabVisibility.filter((tab) => !tab.hidden);\n        // update `shouldShowSidebar` observable\n        const hasMultipleTabs = visibleTabs.length > 1;\n        this.updateShouldShowSidebar(hasMultipleTabs);\n    };\n\n    renderSideNavItem(tab: IPickerTab, group: string) {\n        const { intl, isMobile } = this.props;\n        return (\n            <SideNavItem\n                value={tab.id}\n                icon={\n                    isMobile ? (\n                        <span className={styles.mobileIcon}>\n                            <ChevronRight size=\"S\" />\n                        </span>\n                    ) : null\n                }\n                label={intl.formatMessage({\n                    defaultMessage: tab.defaultLabel,\n                    id: tab.label,\n                })}\n                renderLink={tab.renderSideBar}\n                key={`${group}.tabs.${tab.id}`}\n                onClick={async (_e: React.MouseEvent) => {\n                    // Projects Tab represents both Projects listing and the Project contents components\n                    // Usually we're within a project content, but when clicking the tab we want to navigate\n                    // to Projects listing so modify that value here to get us the right view\n                    let name = tab.id as AssetBrowser.ContentViewType;\n\n                    // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- TODO: Adjust types to fix comparison\n                    if (tab.id === AssetBrowser.ContentViewType.CloudDocuments) {\n                        if (!this.rootFolderId) {\n                            const globalStore = getExistingCDCGlobalStore();\n                            const samRootFolder =\n                                await globalStore?.hostAssetContext?.getRootFolder();\n                            this.rootFolderId = samRootFolder?.cloudID ?? '';\n                        }\n                        this.verticalTabsRef?.current?.dispatchEvent(\n                            new NavigationEvent({ name, params: { assetId: this.rootFolderId } }),\n                        );\n                        return;\n                    }\n\n                    // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- TODO: Adjust types to fix comparison\n                    if (tab.id === AssetBrowser.ContentViewType.Project) {\n                        name = AssetBrowser.ContentViewType.Projects;\n                    }\n                    this.verticalTabsRef?.current?.dispatchEvent(new NavigationEvent({ name }));\n                }}\n            />\n        );\n    }\n\n    renderGroup(group: string, tabs: IPickerTab[]) {\n        const renderedTabs = tabs.map((tab) => {\n            return this.renderSideNavItem(tab, group);\n        });\n\n        // The 'files' group should have no header, per CCXCD-8744\n        // The 'teams' header is provided by TeamsSideBar\n        if (group === 'files' || group === 'teams') {\n            return renderedTabs;\n        }\n\n        return (\n            <SideNavHeading\n                label={<FormattedMessage id={`pickerView.verticalView.header.${group}`} />}\n                variant=\"heading3\"\n                key={`${group}.header`}\n            >\n                {renderedTabs}\n            </SideNavHeading>\n        );\n    }\n\n    render() {\n        const { currentTabId, tabs, isMobile, footer, hideYourComputerButton, onSwitchToOSPicker } =\n            this.props as IVerticalTabsProps;\n        const activeTab = tabs.find((tab) => tab.id === currentTabId);\n        const showOnYourComputerButton = !hideYourComputerButton && !isMobile && onSwitchToOSPicker;\n\n        // group tabs into side nav sections by matching tab.group\n        const groups = tabs.reduce((acc: { [group: string]: IPickerTab[] }, curr) => {\n            const group = curr.group || 'files';\n            if (!acc[group]) {\n                acc[group] = [];\n            }\n            acc[group].push(curr);\n            return acc;\n        }, {});\n\n        if (isMobile) {\n            return (\n                <div ref={this.verticalTabsRef} className={classNames(styles.root, styles.mobile)}>\n                    {/* Tab list */}\n                    {!activeTab && (\n                        <div className={classNames(styles.sidenav, 'ReactScrollViewNode')}>\n                            <SideNav value={currentTabId}>\n                                {Object.entries(groups).map(([group, groupTabs]) =>\n                                    this.renderGroup(group, groupTabs),\n                                )}\n                            </SideNav>\n                        </div>\n                    )}\n                    {/* Single rendered tab */}\n\n                    {activeTab && (\n                        <div className={styles.mainItems}>\n                            {activeTab.renderTab?.()}\n                            {footer}\n                        </div>\n                    )}\n                </div>\n            );\n        }\n\n        return (\n            <div ref={this.verticalTabsRef} className={styles.root}>\n                {this.shouldShowSideBar && (\n                    <div className={classNames(styles.sidenav, 'ReactScrollViewNode')}>\n                        <SideNav value={currentTabId}>\n                            {Object.entries(groups).map(([group, groupTabs]) =>\n                                this.renderGroup(group, groupTabs),\n                            )}\n                        </SideNav>\n                        {showOnYourComputerButton && (\n                            <div className={styles.yourComputerButton}>\n                                <Button\n                                    id=\"VerticalTabs_YourComputerButton\"\n                                    data-testid=\"VerticalTabs_YourComputerButton\"\n                                    role=\"button\"\n                                    variant=\"secondary\"\n                                    icon={<DeviceDesktop size=\"S\" />}\n                                    onClick={onSwitchToOSPicker}\n                                >\n                                    <FormattedMessage id=\"pickerViewFooter.button.switchToOSPicker\" />\n                                </Button>\n                            </div>\n                        )}\n                    </div>\n                )}\n                <div className={styles.mainItems}>\n                    {activeTab && activeTab.renderTab?.()}\n                    {footer}\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default injectIntl(VerticalTabs);\nexport { VerticalTabs as VerticalTabsForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { FormattedMessage, injectIntl } from 'react-intl';\nimport { observer } from 'mobx-react';\nimport Button from '@react/react-spectrum/Button';\nimport Checkbox from '@react/react-spectrum/Checkbox';\nimport { ccxIngest } from '@ccx-public/ccx-ingest';\nimport OverlayTrigger from '@react/react-spectrum/OverlayTrigger';\nimport Popover from '@react/react-spectrum/Popover';\nimport InfoOutline from '@react/react-spectrum/Icon/InfoOutline';\nimport Link from '@react/react-spectrum/Link';\nimport CloseCircle from '@react/react-spectrum/Icon/CloseCircle';\nimport CheckmarkCircle from '@react/react-spectrum/Icon/CheckmarkCircle';\nimport DeviceLaptop from '@react/react-spectrum/Icon/DeviceLaptop';\nimport Cloud from '@react/react-spectrum/Icon/Cloud';\nimport { Table, TBody, TD, TR } from '@react/react-spectrum/Table';\nimport { getLocalizedURL } from '@intl/adobe-locales';\nimport type ICloudBenefit from '../interfaces/ICloudBenefit';\nimport { INGEST_PROJECT_VALUE } from '../utils/constants';\nimport { IntlWrapper } from '../components/IntlWrapper';\n\nimport styles from './OnboardingView.css';\n\ninterface IOnboardingViewProps {\n    ccxIngest?: any;\n    cdoMetrics?: any;\n    dontShowCheckValue?: boolean;\n    onToggleDismissal?: () => void;\n    onSwitchToCDOPicker?: () => void;\n    onSwitchToOSPicker?: () => void;\n    hideOnboardingInviteToEditRow: boolean;\n}\n\ninterface IOnboardingViewState {\n    cloudDocImageSrc?: string;\n    localDiskImageSrc?: string;\n}\n\nconst DEFAULT_BENEFITS: ICloudBenefit[] = [\n    { isCloudBenefit: true, isLocalBenefit: true, name: 'offline' },\n    { isCloudBenefit: true, isLocalBenefit: false, name: 'syncing' },\n    { isCloudBenefit: true, isLocalBenefit: false, name: 'autosave' },\n    { isCloudBenefit: true, isLocalBenefit: false, name: 'versionHistory' },\n    { isCloudBenefit: true, isLocalBenefit: false, name: 'inviteToEdit' },\n];\n\n@observer\nclass OnboardingView extends React.Component<\n    IOnboardingViewProps & WrappedComponentProps,\n    IOnboardingViewState\n> {\n    private locale = this.props.intl.locale.substring(0, 2);\n\n    constructor(props) {\n        super(props);\n\n        const { cdoMetrics } = this.props;\n        if (cdoMetrics) {\n            cdoMetrics.fireEvent(\n                {\n                    event: {\n                        subcategory: 'Onboarding',\n                        subtype: 'page',\n                        type: 'render',\n                        workflow: 'Main',\n                    },\n                },\n                false,\n            );\n        }\n\n        this.state = {};\n    }\n\n    private _renderButton = ({\n        name,\n        onClickHandler,\n        variant,\n        quiet = false,\n        disabled = false,\n    }) => {\n        const { intl } = this.props;\n        return (\n            <div key={name} id={`OnboardingView_ActionButton_${name}`}>\n                <Button\n                    variant={variant}\n                    // Spectrum UXP buttons have a default padding left/right of 14px which is too large.\n                    quiet={quiet}\n                    disabled={disabled}\n                    onClick={onClickHandler}\n                    label={intl.formatMessage({\n                        defaultMessage: name,\n                        id: `onboardingCdp.button.${name}`,\n                    })}\n                    uxpUseNative={false}\n                />\n            </div>\n        );\n    };\n\n    renderHeader() {\n        const href = getLocalizedURL(\n            'https://helpx.adobe.com/creative-cloud/help/about-cloud-documents.html',\n            this.locale,\n        );\n        return (\n            <div className={styles.header}>\n                <FormattedMessage id=\"onboardingCdp.title\" />\n                <OverlayTrigger trigger=\"hover\" offset={-10} placement=\"bottom\">\n                    {/* RS-UXP OverlayTrigger does not work with Icon, so wrap it */}\n                    <span className={styles.infoIconWrapper}>\n                        <InfoOutline className={styles.infoIcon} size=\"S\" />\n                    </span>\n                    <IntlWrapper className={styles.infoPopover}>\n                        <Popover>\n                            <FormattedMessage id=\"onboardingCdp.tooltip\" />\n                            <Link className={styles.infoPopoverLink} href={href}>\n                                <FormattedMessage id=\"onboardingCdp.tooltip.link\" />\n                            </Link>\n                        </Popover>\n                    </IntlWrapper>\n                </OverlayTrigger>\n            </div>\n        );\n    }\n\n    renderTable() {\n        const { hideOnboardingInviteToEditRow } = this.props;\n        const includedBenefits = DEFAULT_BENEFITS.filter(\n            (benefit) => !(benefit.name === 'inviteToEdit' && hideOnboardingInviteToEditRow),\n        );\n        return (\n            <div className={`${styles.table} OnboardingViewTable`}>\n                <Table divider>\n                    <TBody className={styles.tableHeader}>\n                        <TR className={styles.tableData}>\n                            <TD divider />\n                            <TD divider>\n                                <div className={styles.tableHeaderIcon}>\n                                    <DeviceLaptop className={styles.onYourComputer} size=\"M\" />\n                                </div>\n                                <FormattedMessage\n                                    {...{ className: styles.tableHeading }}\n                                    id=\"onboardingCdp.table.header.saveToLocal\"\n                                />\n                            </TD>\n                            <TD>\n                                <div className={styles.tableHeaderIcon}>\n                                    <Cloud className={styles.saveToCloud} size=\"M\" />\n                                </div>\n                                <FormattedMessage\n                                    {...{ className: styles.tableHeading }}\n                                    id=\"onboardingCdp.table.header.saveToCloud\"\n                                />\n                            </TD>\n                        </TR>\n                        {includedBenefits.map((benefit) => (\n                            <TR key={benefit.name}>\n                                <TD divider className={styles.titles}>\n                                    <FormattedMessage\n                                        id={`onboardingCdp.feature.${benefit.name}`}\n                                    />\n                                </TD>\n                                <TD divider>\n                                    <div className={styles.onYourComputerIcons}>\n                                        {benefit.isLocalBenefit ? (\n                                            <CheckmarkCircle\n                                                className={styles.checkmark}\n                                                size=\"S\"\n                                            />\n                                        ) : (\n                                            <CloseCircle size=\"S\" />\n                                        )}\n                                    </div>\n                                </TD>\n                                <TD divider>\n                                    <div className={styles.saveCloudIcons}>\n                                        {benefit.isCloudBenefit ? (\n                                            <CheckmarkCircle\n                                                className={styles.checkmark}\n                                                size=\"S\"\n                                            />\n                                        ) : (\n                                            <CloseCircle size=\"S\" />\n                                        )}\n                                    </div>\n                                </TD>\n                            </TR>\n                        ))}\n                    </TBody>\n                </Table>\n            </div>\n        );\n    }\n\n    renderFooter() {\n        const {\n            dontShowCheckValue,\n            onToggleDismissal,\n            onSwitchToCDOPicker,\n            onSwitchToOSPicker,\n            intl,\n        } = this.props;\n        return (\n            <div className={styles.footer}>\n                <div id=\"OnboardingView_CheckboxButton\">\n                    <Checkbox\n                        // This property only appears to exist in @torq-native/react-spectrum\n                        onClick={onToggleDismissal}\n                        label={intl.formatMessage({\n                            id: 'onboardingCdp.checkbox.doNotShowAgain',\n                        })}\n                        checked={dontShowCheckValue}\n                    />\n                </div>\n                <div className={styles.buttons} id=\"OnboardingView_SaveButtons\">\n                    {this._renderButton({\n                        name: 'saveToLocal',\n                        onClickHandler: onSwitchToOSPicker,\n                        variant: 'secondary',\n                    })}\n                    {this._renderButton({\n                        name: 'saveToCloud',\n                        onClickHandler: onSwitchToCDOPicker,\n                        variant: 'cta',\n                    })}\n                </div>\n            </div>\n        );\n    }\n\n    render() {\n        return (\n            <div className={styles.root}>\n                <div className={styles.main}>\n                    {this.renderHeader()}\n                    {this.renderTable()}\n                    {this.renderFooter()}\n                </div>\n            </div>\n        );\n    }\n}\n\nexport default ccxIngest(INGEST_PROJECT_VALUE)(injectIntl(OnboardingView));\nexport { OnboardingView as OnboardingViewForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport BackButton from '@csc/adobe-assets-view/dist/src/components/BackButton/BackButton';\nimport Breadcrumbs from '@csc/adobe-assets-view/dist/src/components/Breadcrumbs/Breadcrumbs';\nimport { NavigateOutEvent } from '@csc/common';\nimport { ProjectsViewOptionsButton } from 'ace-projects';\nimport styles from './CustomOrganizerHeader.css';\n\ninterface CustomOrganizerHeaderProps {\n    isMobile: boolean;\n    headerTitle: string;\n    rootRef: React.RefObject<HTMLDivElement>;\n}\n\nexport default function CustomOrganizerHeader({\n    isMobile,\n    headerTitle,\n    rootRef,\n}: CustomOrganizerHeaderProps) {\n    return (\n        <div className={styles.customOrganizerHeader}>\n            <div className={styles.customOrganizerHeaderLeft}>\n                <BackButton\n                    items={[]}\n                    onClick={() => rootRef.current?.dispatchEvent(new NavigateOutEvent())}\n                    showRootBackButton={isMobile}\n                />\n                <Breadcrumbs items={[{ assetId: '', label: headerTitle }]} />\n            </div>\n            <ProjectsViewOptionsButton hideViewToggle={isMobile} />\n        </div>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, type SAM } from '@ccx-public/component-types';\nimport React, { Suspense, lazy, useCallback, useEffect, useState, useRef, useMemo } from 'react';\nimport type { IOnSelectionChange, ISelectionBehavior, ISelectionManager } from '@ccx/ccx-cdo';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport type { OrganizerConfig } from 'ace-projects/dist/src/organizerConfig';\nimport classnames from 'classnames';\nimport pickerStyles from '../PickerView.css';\nimport styles from './ProjectsTab.css';\nimport type { HeaderNavigationProps } from '@csc/adobe-assets-view/dist/src/components/HeaderNavigation/HeaderNavigation';\n\nimport { intlStore } from '../../utils/i18n';\nimport CustomOrganizerHeader from './CustomOrganizerHeader';\n\nconst ProjectContents = lazy(() => import('ace-projects/dist/src/ProjectContents'));\nconst ProjectsOrganizer = lazy(() => import('ace-projects/dist/src/ProjectsOrganizer'));\n\ninterface NavigationState\n    extends Pick<Partial<OrganizerConfig>, 'sortBy' | 'sortDirection' | 'view' | 'projectView'> {\n    assetId: string | undefined;\n    projectId: string;\n}\n\nfunction useNavigationState(): [\n    NavigationState,\n    (navigation: Partial<NavigationState>) => unknown,\n] {\n    const [navigation, setNavigation] = useState<NavigationState>({\n        assetId: undefined,\n        projectId: '',\n    });\n    const updateNavigation = useCallback((newState: Partial<NavigationState>) => {\n        setNavigation((prevState) => ({ ...prevState, ...newState }));\n    }, []);\n    return [navigation, updateNavigation];\n}\n\nexport default function ProjectsTab({\n    onSelectionChange,\n    selectionManager,\n    selectionBehavior,\n    navigationDetail,\n    shouldRenderItemAsDisabled,\n    disableViewOnlyProjects = false,\n    onBeforeItemClicked,\n    actionFilter,\n    hideFilter,\n    isMobile = false,\n    header,\n    rootRef,\n    compatibleTypes,\n}: {\n    navigationDetail: AssetBrowser.NavigationEventDetail;\n    shouldRenderItemAsDisabled: (element: BackedCollectionItem<SAM.AdobeAsset>) => Promise<boolean>;\n    actionFilter: (value: string) => boolean;\n    selectionManager: ISelectionManager;\n    selectionBehavior?: ISelectionBehavior;\n    onSelectionChange: IOnSelectionChange;\n    disableViewOnlyProjects: boolean;\n    onBeforeItemClicked: (item: BackedCollectionItem<SAM.AdobeAsset>) => boolean;\n    hideFilter?: boolean;\n    isMobile?: boolean;\n    header?: React.FC<HeaderNavigationProps>;\n    rootRef: React.RefObject<HTMLDivElement>;\n    compatibleTypes?: string[];\n}) {\n    const [navigationState, updateNavigationState] = useNavigationState();\n\n    const ref = useRef<HTMLDivElement>(null);\n\n    useEffect(() => {\n        const newState = { ...(navigationDetail?.params || {}) } as NavigationState;\n        // When navigating back from Project Listing view to Project view,\n        // reset projectId to render Project Listing view.\n        if (navigationDetail?.name === AssetBrowser.ContentViewType.Projects) {\n            newState.projectId = '';\n            newState.assetId = undefined;\n        }\n\n        if (!newState.sortBy) {\n            // The project listing view does not support sorting by 'modifiedDate'. If 'sortBy'\n            // is previously set to 'modifiedDate' and navigationDetail does not provides a\n            // 'sortBy', reset it to 'createDate'.\n            if (\n                navigationDetail?.name === AssetBrowser.ContentViewType.Projects &&\n                navigationState.sortBy === 'modifiedDate'\n            ) {\n                newState.sortBy = 'createDate';\n            }\n\n            // The project detail view does not support sorting by 'createDate'. If 'sortBy'\n            // is previously set to 'createDate' and navigationDetail does not provides a\n            // 'sortBy', reset it to 'modifiedDate'.\n            if (\n                navigationDetail?.name === AssetBrowser.ContentViewType.Project &&\n                navigationState.sortBy === 'createDate'\n            ) {\n                newState.sortBy = 'modifiedDate';\n            }\n        }\n\n        updateNavigationState(newState);\n    }, [navigationDetail, navigationState.sortBy, updateNavigationState]);\n\n    const sharedProps = {\n        isMobile,\n        launchUAP: () =>\n            Promise.resolve({\n                destination: '',\n                destinationAsset: {} as AssetBrowser.AssetDescriptor,\n            }),\n        ...navigationState,\n    };\n\n    const headerTitle = useMemo(\n        () =>\n            intlStore.intl.formatMessage({\n                id: 'uap.mobile.projects.heading.name',\n                defaultMessage: 'Projects',\n            }),\n        [],\n    );\n\n    const useCustomHeader = Boolean(header);\n\n    const component = navigationState.projectId ? (\n        <ProjectContents\n            {...sharedProps}\n            header={header}\n            actionFilter={actionFilter}\n            hideEmptyViewActions\n            onSelectionChange={onSelectionChange}\n            selectionManager={selectionManager}\n            selectionBehavior={selectionBehavior}\n            shouldRenderItemAsDisabled={shouldRenderItemAsDisabled}\n            hideActionToolbar\n            onBeforeItemClicked={onBeforeItemClicked}\n            hideFilter={hideFilter}\n            compatibleTypes={compatibleTypes}\n        />\n    ) : (\n        <>\n            {useCustomHeader && (\n                <CustomOrganizerHeader\n                    isMobile={isMobile}\n                    headerTitle={headerTitle}\n                    rootRef={rootRef}\n                />\n            )}\n            <ProjectsOrganizer\n                {...sharedProps}\n                hideHeader={useCustomHeader}\n                hideProjectActions\n                disableViewOnlyProjects={disableViewOnlyProjects}\n                shouldRenderItemAsDisabled={shouldRenderItemAsDisabled}\n            />\n        </>\n    );\n\n    return (\n        <Suspense fallback={<div />}>\n            <div\n                data-testid=\"projectsTab\"\n                ref={ref}\n                className={classnames(pickerStyles.pickerContent, {\n                    [styles.projectsOrganizer]: !navigationState.projectId,\n                    [pickerStyles.adobeAssetsViewTab]: navigationState.projectId,\n                })}\n            >\n                {component}\n            </div>\n        </Suspense>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ICollectionItem } from '@ccx/ccx-cdo';\nimport { MultiSelectionManager } from '@ccx/ccx-cdo';\nimport AdobeAssetCollectionItem from '@csc/adobe-assets-view/dist/src/components/AdobeAssetsView/AdobeAssetCollectionItem';\n\nexport default class MoveFromSelectionManager extends MultiSelectionManager {\n    onViewItemClickSelection = (\n        item: ICollectionItem,\n        e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ) => {\n        if (\n            item instanceof AdobeAssetCollectionItem &&\n            item.backingItem.isFolder &&\n            this.selectionStore.selectedElements.length === 0\n        ) {\n            return;\n        }\n        this.updateSelection(item, e);\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport HeaderNavigation, {\n    type HeaderNavigationProps,\n} from '@csc/adobe-assets-view/dist/src/components/HeaderNavigation/HeaderNavigation';\nimport ViewOptionsButton, {\n    type ViewOptionsButtonProps,\n} from '@csc/adobe-assets-view/dist/src/components/ViewOptionsButton/ViewOptionsButton';\nimport styles from './UAPHeader.css';\nimport classnames from 'classnames';\n\n// TO DO: when mobile UAP redesign is live by default, switch isMobile prop to useMobile hookfrom common to reduce prop drilling\ninterface UAPHeaderProps extends HeaderNavigationProps, Partial<ViewOptionsButtonProps> {\n    hideViewOptionsButton?: boolean;\n    hideViewToggle?: boolean;\n    isMobile?: boolean;\n}\n\n/**\n * This wrapper function is used to configure the UAPHeader with the provided props.\n * It returns a new function that can be used as a header component.\n *\n * The purpose of this is so different tabs within UAP can control overrides,\n * because UAPHeader is ultimately rendered by the tab component itself, not UAP.\n */\nexport function configureUAPHeader(configuredProps: Partial<UAPHeaderProps>) {\n    const ConfiguredUAPHeader = (props: UAPHeaderProps) => (\n        <UAPHeader {...props} {...configuredProps} />\n    );\n    return ConfiguredUAPHeader;\n}\n\nexport function UAPHeader({\n    rootTitle,\n    rootAsset,\n    showRootBackButton,\n    filterOptions,\n    currentFilter,\n    sortByValues,\n    hideViewOptionsButton,\n    hideViewToggle,\n    isMobile,\n}: UAPHeaderProps) {\n    return (\n        <div className={classnames(styles.uapHeader, { [styles.mobile]: isMobile })}>\n            <div className={styles.uapHeaderLeft}>\n                <HeaderNavigation\n                    rootTitle={rootTitle}\n                    rootAsset={rootAsset}\n                    compact\n                    showRootBackButton={showRootBackButton}\n                />\n            </div>\n            {!hideViewOptionsButton && (\n                <div className={styles.uapHeaderRight}>\n                    <ViewOptionsButton\n                        filterOptions={filterOptions}\n                        currentFilter={currentFilter}\n                        sortByValues={sortByValues}\n                        hideViewToggle={hideViewToggle}\n                    />\n                </div>\n            )}\n        </div>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport Close from '@ccx-public/spectrum-wrapper/dist/Icon/Close';\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\n\ninterface ICloseButtonProps {\n    onClick: () => void;\n    className?: string;\n}\n\nconst CloseButton = ({ onClick, className }: ICloseButtonProps) => {\n    return (\n        <Button\n            variant=\"secondary\"\n            quiet\n            className={className}\n            onClick={onClick}\n            data-testid=\"close-button\"\n            icon={<Close size=\"L\" />}\n        />\n    );\n};\n\nexport default CloseButton;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { RefObject } from 'react';\nimport React, { createRef, Component } from 'react';\nimport { IconFirefly } from '@csc/adobe-assets-view/dist/src/utils/icons';\nimport { FormattedMessage } from 'react-intl';\nimport CreativeCloud from '@spectrum/spectrum-iconstore/icons/react/CreativeCloud';\nimport { ccxIngest } from '@ccx-public/ccx-ingest';\nimport { inject, observer } from 'mobx-react';\nimport type {\n    CDOStoreType,\n    IIMSData,\n    IAnalyticsData,\n    ISelectionStore,\n    IOnSelectionChange,\n    IActionClick,\n    Action,\n    ICollectionItem,\n    ToastStore,\n    ISelectionBehavior,\n} from '@ccx/ccx-cdo';\nimport {\n    CloudDocuments,\n    fileNameValidator,\n    SharedWithYou,\n    ValidationStatus,\n    Deleted,\n    Recents,\n    CDOLocalStorage,\n    getExistingCDCGlobalStore,\n    ClickSelectType,\n    SingleSelectionManager,\n    GenerationHistory,\n    UXSortBy,\n} from '@ccx/ccx-cdo';\n\nimport DeleteOutline from '@react/react-spectrum/Icon/DeleteOutline';\nimport DocumentOutline from '@react/react-spectrum/Icon/DocumentOutline';\nimport Clock from '@react/react-spectrum/Icon/Clock';\nimport UserGroup from '@react/react-spectrum/Icon/UserGroup';\nimport Import from '@react/react-spectrum/Icon/Import';\nimport ProjectIcon from '@csc/ui/dist/src/Icons/Project';\n\nimport type IUAPCallbacks from '../interfaces/IUAPCallbacks';\nimport type IFileFormatChoice from '../interfaces/IFileFormatChoice';\nimport type IUAPHostProductData from '../interfaces/IUAPHostProductData';\n\nimport SaveAsOrExportInput from './SaveAsOrExportInput';\nimport type { IPickerViewFooterProps } from './PickerViewFooter';\nimport PickerViewFooter from './PickerViewFooter';\nimport VerticalTabs from './VerticalTabs';\nimport { INGEST_PROJECT_VALUE } from '../utils/constants';\nimport type IPickerActionState from '../interfaces/IPickerActionState';\nimport type IPickerTab from '../interfaces/IPickerTab';\nimport type IPickerInfo from '../interfaces/IPickerInfo';\nimport { PickerMode } from '@csc/common';\nimport OnboardingView from './OnboardingView';\nimport Utils from '../utils/utils';\nimport ProjectsTab from './ProjectsTab/ProjectsTab';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport { hasOnlyNonFolders } from '@csc/adobe-assets-view/dist/src/utils/folders';\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { defaultIsViewEnabled } from '../utils/viewEnabled';\nimport classnames from 'classnames';\nimport MoveFromSelectionManager from '../utils/MoveFromSelectionManager';\nimport { configureUAPHeader } from './UAPHeader';\nimport CloseButton from './CloseButton';\n\nimport styles from './PickerView.css';\n\ninterface IPickerViewProps {\n    rootRef: RefObject<HTMLDivElement>;\n    hostProductData: IUAPHostProductData;\n    ccxIngest?: any;\n    cdoStore?: CDOStoreType;\n    toastStore?: ToastStore;\n    cdoMetrics?: any;\n    callbacks?: IUAPCallbacks;\n    saveAsName?: string;\n    showInterstitial?: boolean;\n    mode: PickerMode;\n    cdpTabs: boolean;\n    hideYourComputerButton?: boolean;\n    imsData?: IIMSData;\n    disableCancelButton: boolean;\n    disableCloudDocumentsTab?: boolean;\n    disableSharedWithYouTab?: boolean;\n    enablePlaceEmbedWarningToast?: boolean;\n    enablePlaceLinkWarningToast?: boolean;\n    enableProjectsTab?: boolean;\n    enableGenerationHistoryTab?: boolean;\n    enableMobileView?: boolean;\n    enableRecentsTab?: boolean;\n    theme: string;\n    navigationDetail: AssetBrowser.NavigationEventDetail;\n    selectionBehavior?: ISelectionBehavior;\n\n    /**\n     * A UXPWindow Controller object to pass\n     * back to the host for identifying that particular\n     * instance of CDP.\n     */\n    windowController?: any;\n    deletedTab?: boolean;\n    outputFileFormatChoices?: IFileFormatChoice[];\n    hideLinkCheckbox?: boolean;\n    addExternalCancelListener?: (callback: () => void) => void;\n    removeExternalCancelListener?: (callback: () => void) => void;\n    getConfirmationDialog?: IPickerInfo['getConfirmationDialog'];\n    isViewEnabled?: IPickerInfo['isViewEnabled'];\n    shouldRenderItemAsDisabled?: IPickerInfo['shouldRenderItemAsDisabled'];\n    getDisabledTooltipLabel?: IPickerInfo['getDisabledTooltipLabel'];\n    isMobile?: boolean;\n    compatibleTypes?: string[];\n}\n\ninterface IPickerViewState {\n    saveAsName?: string;\n    selectedAction?: PickerViewAction;\n    errorMessage?: string;\n    showOnboarding?: boolean; // show the onboarding panel overlay\n    dontShowCheckboxValue?: boolean; // save value for the dont show again checkbox\n    currentTabId?: IPickerTab['id'];\n    selectedItems: SAM.AdobeAsset[];\n    isLink?: boolean; // placeLink or placeEmbed\n    disableLinkCheckbox?: boolean; // placeLink or placeEmbed\n    primaryButtonDisabled?: boolean;\n    primaryButtonPending?: boolean;\n    selectedFileFormat?: string;\n    lastSelectedWasNotBothLinkableAndEmbeddable?: boolean;\n}\n\n/**\n * Actions sent to host app via executePickerAction\n */\nexport const enum PickerViewAction {\n    // Place mode that is for the 2020 Place workflow (@deprecated).\n    place = 'place',\n    // Import mode is only used in XD and is used to Place Spaces documents into an XD Document\n    import = 'import',\n    // Place mode that is for the 2021 Place workflow. For link or embed of documents.\n    placeLinkOrEmbed = 'placeLinkOrEmbed',\n    // Save a file with the `action`, `name` and `folder` properties in the actionState.\n    saveAs = 'save',\n    // Save a copy of a file with the `action`, `name` and `folder` properties in the actionState.\n    saveAsCopy = 'saveAsCopy',\n    // Save a copy of a file with the `action`, `name` and `folder` properties in the actionState.\n    saveToFolder = 'choose',\n    // Export a copy of a file with the `action`, `name` and `folder` properties in the actionState.\n    export = 'export',\n    // cancel without opening/saving or other actions\n    cancel = 'cancel',\n    // switch to local file picker\n    switchToOSPicker = 'switchToOSPicker',\n    // switch to sketch libraries picker\n    switchToSketchLibrariesImport = 'switchToSketchLibrariesImport',\n    // Copy item(s) to the selected location.\n    copy = 'copy',\n    // Move item(s) to new location. Can move to space, team,...\n    move = 'move',\n    // Move item(s) to a target location. (e.g. assets from Files to Projects)\n    moveFrom = 'moveFrom',\n    // Generic selection\n    add = 'add',\n}\n\nconst enum OnboardingAction {\n    DontShow = 'DontShow',\n    CloudDocs = 'CloudDocs',\n    LocalDocs = 'LocalDocs',\n}\n\n/**\n * Simple view for document picker\n */\n@inject('cdoStore', 'callbacks', 'toastStore')\n@observer\nclass PickerView extends Component<IPickerViewProps, IPickerViewState> {\n    protected callbacks: IUAPCallbacks;\n\n    private cdoMetrics;\n    private toastStore: ToastStore;\n\n    private focusEl: RefObject<HTMLDivElement> = createRef();\n\n    private hasShownPlaceLinkWarning!: boolean;\n\n    private isExternalCancel!: boolean;\n\n    get viewMode() {\n        // mobile always uses grid view, desktop should respect user preference\n        if (this.isMobile) {\n            return 'grid';\n        }\n        return this.props.navigationDetail?.params?.viewMode ?? 'grid';\n    }\n\n    get viewOptions(): AssetBrowser.ViewOptions {\n        const { sortBy, sortDir, filter } = this.props.navigationDetail?.params ?? {};\n        return {\n            sortBy: sortBy ?? 'modifiedDate',\n            sortDir: sortDir ?? 'desc',\n            viewMode: this.viewMode,\n            filter: filter ?? undefined,\n        };\n    }\n\n    // TODO - Temporary feature flag coupling.\n    // Remove once UAP mobile enhancements are complete -- CCPROJ-13218\n    private get isMobile() {\n        return (this.props.enableMobileView && this.props.isMobile) ?? false;\n    }\n\n    // this is here to have less code out of order for the linter\n\n    private onBeforeItemClickedForTabs = (element): boolean => this.onBeforeItemClicked(element);\n\n    private executePrimaryButtonClick = (actionCallback): void => {\n        this.setState({ primaryButtonPending: true });\n        actionCallback();\n    };\n\n    private onSelectionChange: IOnSelectionChange = (\n        selectionStore: ISelectionStore,\n        _allActions: Action[],\n        _actionHandler: IActionClick,\n    ) => {\n        const { mode } = this.props;\n        if (mode === PickerMode.placeLinkOrEmbed || mode === PickerMode.add) {\n            if (\n                hasOnlyNonFolders(\n                    selectionStore.selectedElements as BackedCollectionItem<SAM.AdobeAsset>[],\n                ) &&\n                selectionStore.selectedElements.length === 1\n            ) {\n                const element = selectionStore\n                    .selectedElements[0] as BackedCollectionItem<SAM.AdobeAsset>;\n                this.onItemsSelected([element.backingItem]);\n            } else {\n                if (selectionStore.selectedElements.length > 1) {\n                    // we only want one thing selected, so\n                    // set selection to only the pivotElement.\n                    // pivotElement is private, so access it via [ ]. TODO: use\n                    // ISelectionBehavior instead via DocPicker.getSelectionBehavior\n                    const pivotElement = selectionStore['pivotElement'];\n                    selectionStore.setSelection([pivotElement]);\n                }\n                // pretend nothing is selected\n                this.onItemsSelected([]);\n            }\n        } else if (mode === PickerMode.moveFrom) {\n            this.onItemsSelected(\n                selectionStore.selectedElements.map(\n                    (element) => (element as BackedCollectionItem<SAM.AdobeAsset>).backingItem,\n                ),\n            );\n        }\n    };\n\n    private onItemsSelected = (items: SAM.AdobeAsset[]) => {\n        const { mode } = this.props;\n        const { saveAsName } = this.state;\n\n        // placeLinkOrEmbed currently only wants a single item selected.\n        // other modes can handle multiple items selected.\n\n        if (mode === PickerMode.add) {\n            this.setState({\n                selectedItems: items,\n                primaryButtonDisabled: items.length !== 1,\n            });\n            return;\n        }\n        if (mode === PickerMode.placeLinkOrEmbed) {\n            if (items.length !== 1) {\n                this.setState({\n                    selectedItems: items,\n                    isLink: false,\n                    disableLinkCheckbox: true,\n                    primaryButtonDisabled: true,\n                    lastSelectedWasNotBothLinkableAndEmbeddable: true,\n                });\n            } else {\n                const asset = items[0];\n                let { isLink } = this.state;\n                const { lastSelectedWasNotBothLinkableAndEmbeddable } = this.state;\n                const canLink = this.linkIsSupported(asset);\n                const canEmbed = this.embedIsSupported(asset);\n                if (lastSelectedWasNotBothLinkableAndEmbeddable) {\n                    // if user wasn't last to touch the checkbox, set checkbox to if linkable\n                    isLink = canLink;\n                } else {\n                    // if both are supported, preserve the current state\n                    isLink = canLink && canEmbed ? isLink : canLink;\n                }\n                this.setState({\n                    selectedItems: items,\n                    isLink,\n                    // if either mode (or both) is unavailable, disable the checkbox\n                    disableLinkCheckbox: !canLink || !canEmbed,\n                    // if neither mode is available, disable the CTA\n                    primaryButtonDisabled: !canLink && !canEmbed,\n                    lastSelectedWasNotBothLinkableAndEmbeddable: !(canLink && canEmbed),\n                });\n            }\n            return;\n        }\n\n        let primaryButtonDisabled = false;\n\n        if (this.requiresSelectedItems) {\n            primaryButtonDisabled = items.length === 0;\n        }\n\n        // Some tabs require a selection + a non-empty name for saveAs.\n        // Validation of saveAsName occurs when the user clicks the CTA.\n        if (this._isSaveAsOrExportPicker()) {\n            primaryButtonDisabled = primaryButtonDisabled || saveAsName?.length === 0;\n        }\n\n        this.setState({\n            selectedItems: items,\n            primaryButtonDisabled,\n        });\n    };\n\n    private linkIsSupported(asset) {\n        const { hostProductData } = this.props;\n        const { linkableTypes = [] } = hostProductData;\n        const documentType = this.getDocumentType(asset);\n        // Linkable if the app supports it, and it is not an artifact\n        // TODO: When Spaces moves to SAM, have SAM encapsulate \"isLinkable\" and \"isEmbeddable\"\n        // rather than inferring from appMetadata\n        return linkableTypes.includes(documentType) && !asset.isArtifact;\n    }\n\n    private embedIsSupported(asset) {\n        const { hostProductData } = this.props;\n        const { embeddableTypes = [] } = hostProductData;\n        const documentType = this.getDocumentType(asset);\n        return embeddableTypes.includes(documentType);\n    }\n\n    private isClickEventOnDisabled(mode: string): boolean {\n        /* eslint-disable @typescript-eslint/no-unsafe-enum-comparison -- TODO: Adjust types to fix comparison */\n        return (\n            mode === PickerMode.saveAs ||\n            mode === PickerMode.saveAsCopy ||\n            mode === PickerMode.export\n        );\n        /* eslint-enable @typescript-eslint/no-unsafe-enum-comparison -- TODO: Adjust types to fix comparison */\n    }\n\n    /**\n     * Filter actions based on the picker mode.\n     *\n     * In Move, Save As, Save As Copy, Save To Folder, only create folder action is allowed.\n     * All other actions should be disabled.\n     */\n    private actionFilter = (value: string): boolean => {\n        const { mode } = this.props;\n        switch (mode) {\n            // in Move, Save As, Save As Copy, Save To Folder, only create folder action is allowed\n            case PickerMode.move:\n            case PickerMode.moveFrom:\n            case PickerMode.saveAs:\n            case PickerMode.saveAsCopy:\n            case PickerMode.saveToFolder:\n                return value === 'create'; // 'create' is the Create Folder action\n            // all other actions should be disabled\n            default:\n                return false;\n        }\n    };\n\n    /**\n     * Hide the filter if compatible types are present and the mode is open or placeLinkOrEmbed.\n     * This is for applications like Photoshop that only want to show files that are compatible with the host application for open/place actions.\n     */\n    private get hideFilter(): boolean {\n        const { mode, compatibleTypes } = this.props;\n        if (compatibleTypes && compatibleTypes.length > 0) {\n            switch (mode) {\n                case PickerMode.open:\n                case PickerMode.placeLinkOrEmbed:\n                    return true;\n                default:\n                    return false;\n            }\n        }\n        return false;\n    }\n\n    private cloudDocumentTab: IPickerTab = {\n        renderTab: () => {\n            const { mode, shouldRenderItemAsDisabled } = this.props as IPickerViewProps;\n            const { assetId, routeToParent } = this.props.navigationDetail?.params ?? {};\n\n            return (\n                <div className={classnames(styles.adobeAssetsViewTab, styles.pickerContent)}>\n                    <CloudDocuments\n                        compatibleTypes={this.props.compatibleTypes}\n                        header={configureUAPHeader({\n                            showRootBackButton: this.isMobile,\n                            hideViewToggle: this.isMobile,\n                            isMobile: this.isMobile,\n                        })}\n                        onBeforeItemClicked={this.onBeforeItemClickedForTabs}\n                        onSelectionChange={this.onSelectionChange}\n                        hideActionMenu\n                        hideActionToolbar={\n                            mode === PickerMode.placeLinkOrEmbed || mode === PickerMode.moveFrom\n                        }\n                        hideFilter={this.hideFilter}\n                        allowClickEventOnDisabled={this.isClickEventOnDisabled(mode)}\n                        selectionManager={this.getSelectionManager(mode)}\n                        selectionBehavior={this.props.selectionBehavior}\n                        routeToParent={routeToParent}\n                        routeId={assetId}\n                        sortBy={this.viewOptions.sortBy}\n                        sortDirection={this.viewOptions.sortDir}\n                        filter={this.viewOptions.filter?.toString()}\n                        viewMode={this.viewOptions.viewMode}\n                        shouldRenderItemAsDisabled={shouldRenderItemAsDisabled}\n                    />\n                </div>\n            );\n        },\n        defaultLabel: 'Files',\n        id: AssetBrowser.ContentViewType.CloudDocuments,\n        ingestSubcategory: 'Cloud Documents',\n        label: 'pickerView.cloud_docs',\n        icon: <DocumentOutline />,\n    };\n\n    private recentsTab: IPickerTab = {\n        renderTab: () => {\n            return (\n                <div className={classnames(styles.adobeAssetsViewTab, styles.pickerContent)}>\n                    <Recents\n                        header={configureUAPHeader({\n                            hideViewOptionsButton: true,\n                            showRootBackButton: this.isMobile,\n                            hideViewToggle: this.isMobile,\n                            isMobile: this.isMobile,\n                        })}\n                        viewMode={this.viewOptions.viewMode}\n                        onBeforeItemClicked={this.onBeforeItemClicked}\n                        onSelectionChange={this.onSelectionChange}\n                        selectionManager={this.getSelectionManager(this.props.mode)}\n                    />\n                </div>\n            );\n        },\n        defaultLabel: 'Recents',\n        id: AssetBrowser.ContentViewType.Recents,\n        ingestSubcategory: 'Recent',\n        label: 'pickerView.recent',\n        icon: <Clock />,\n    };\n\n    private convertToSketchLibrariesTab: IPickerTab = {\n        defaultLabel: 'Convert Sketch Library...',\n        id: AssetBrowser.ContentViewType.ConvertToSketch,\n        ingestSubcategory: 'Convert Sketch Libary',\n        label: 'pickerView.sketch_library',\n        onTabSelected: () => this.onSwitchToSketchLibrariesImport(),\n        icon: <Import />,\n    };\n\n    private sharedWithYouTab: IPickerTab = {\n        renderTab: () => {\n            const { mode } = this.props as IPickerViewProps;\n            const { assetId, routeToParent } = this.props.navigationDetail?.params ?? {};\n            return (\n                <div className={classnames(styles.adobeAssetsViewTab, styles.pickerContent)}>\n                    <SharedWithYou\n                        header={configureUAPHeader({\n                            showRootBackButton: this.isMobile,\n                            hideViewToggle: this.isMobile,\n                            isMobile: this.isMobile,\n                        })}\n                        compatibleTypes={this.props.compatibleTypes}\n                        hideActionMenu\n                        hideFilter={this.hideFilter}\n                        onBeforeItemClicked={this.onBeforeItemClickedForTabs}\n                        onSelectionChange={this.onSelectionChange}\n                        hideActionToolbar={mode === PickerMode.placeLinkOrEmbed}\n                        selectionBehavior={this.props.selectionBehavior}\n                        selectionManager={this.getSelectionManager(mode)}\n                        routeToParent={routeToParent}\n                        routeId={assetId}\n                        sortBy={this.viewOptions.sortBy}\n                        sortDirection={this.viewOptions.sortDir}\n                        filter={this.viewOptions.filter?.toString()}\n                        viewMode={this.viewOptions.viewMode}\n                    />\n                </div>\n            );\n        },\n        defaultLabel: 'Shared with you',\n        id: AssetBrowser.ContentViewType.SharedWithYou,\n        ingestSubcategory: 'Shared with You',\n        label: 'pickerView.shared_with_you',\n        icon: <UserGroup />,\n    };\n\n    private projectsTab: IPickerTab = {\n        renderTab: () => (\n            <ProjectsTab\n                rootRef={this.props.rootRef}\n                header={configureUAPHeader({\n                    showRootBackButton: this.isMobile,\n                    hideViewToggle: this.isMobile,\n                    isMobile: this.isMobile,\n                })}\n                actionFilter={this.actionFilter}\n                shouldRenderItemAsDisabled={\n                    this.props.shouldRenderItemAsDisabled ?? (() => Promise.resolve(false))\n                }\n                navigationDetail={this.props.navigationDetail}\n                onSelectionChange={this.onSelectionChange}\n                onBeforeItemClicked={this.onBeforeItemClicked}\n                selectionBehavior={this.props.selectionBehavior}\n                selectionManager={this.getSelectionManager(this.props.mode)}\n                disableViewOnlyProjects={\n                    this.props.mode !== PickerMode.placeLinkOrEmbed &&\n                    this.props.mode !== PickerMode.open\n                }\n                hideFilter={this.hideFilter}\n                isMobile={this.isMobile}\n                compatibleTypes={this.props.compatibleTypes}\n            />\n        ),\n        defaultLabel: 'Projects',\n        id: AssetBrowser.ContentViewType.Projects,\n        ingestSubcategory: 'Projects',\n        label: 'pickerView.projects',\n        icon: <ProjectIcon />,\n    };\n\n    private generationHistoryTab: IPickerTab = {\n        renderTab: () => {\n            return (\n                <div className={classnames(styles.adobeAssetsViewTab, styles.pickerContent)}>\n                    <GenerationHistory\n                        compatibleTypes={this.props.compatibleTypes}\n                        header={configureUAPHeader({\n                            sortByValues: [UXSortBy.createDate],\n                            filterOptions: [],\n                            showRootBackButton: this.isMobile,\n                            hideViewToggle: true,\n                        })}\n                        hideActionMenu\n                        isOneLineHeader\n                        sortBy={this.props?.navigationDetail?.params?.sortBy}\n                        sortDirection={\n                            this.props?.navigationDetail?.params?.sortDir as 'desc' | 'asc'\n                        }\n                        routeId={this.props?.navigationDetail?.params?.assetId}\n                        routeToParent={this.props?.navigationDetail?.params?.routeToParent}\n                        selectionBehavior={this.props.selectionBehavior}\n                        selectionManager={this.getSelectionManager(this.props.mode)}\n                        onSelectionChange={this.onSelectionChange}\n                        onBeforeItemClicked={this.onBeforeItemClickedForTabs}\n                    />\n                </div>\n            );\n        },\n        defaultLabel: 'Firefly history',\n        id: AssetBrowser.ContentViewType.GenerationHistory,\n        ingestSubcategory: 'Firefly history',\n        label: 'pickerView.firefly_history',\n        icon: <IconFirefly className=\"spectrum-SideNav-itemIcon\" />,\n    };\n\n    private deletedTab: IPickerTab = {\n        renderTab: () => {\n            const { assetId, routeToParent } = this.props.navigationDetail?.params ?? {};\n            return (\n                <div className={classnames(styles.adobeAssetsViewTab, styles.pickerContent)}>\n                    <Deleted\n                        compatibleTypes={this.props.compatibleTypes}\n                        header={configureUAPHeader({\n                            showRootBackButton: this.isMobile,\n                            hideViewToggle: this.isMobile,\n                            isMobile: this.isMobile,\n                        })}\n                        hideActionMenu\n                        selectionManager={this.getSelectionManager(this.props.mode)}\n                        routeToParent={routeToParent}\n                        routeId={assetId}\n                        selectionBehavior={this.props.selectionBehavior}\n                        sortBy={this.viewOptions.sortBy}\n                        sortDirection={this.viewOptions.sortDir}\n                        viewMode={this.viewOptions.viewMode}\n                    />\n                </div>\n            );\n        },\n        defaultLabel: 'Deleted',\n        id: AssetBrowser.ContentViewType.Deleted,\n        ingestSubcategory: 'DeletedCDP',\n        label: 'header.Deleted',\n        icon: <DeleteOutline />,\n    };\n\n    private get isCurrentViewEnabled() {\n        const { navigationDetail, isViewEnabled, mode } = this.props;\n        if (isViewEnabled) {\n            return isViewEnabled(navigationDetail);\n        }\n        return defaultIsViewEnabled(mode, navigationDetail);\n    }\n\n    private getSelectionManager(mode: PickerMode) {\n        const SelectionUX = {\n            alwaysShowEllipsis: false,\n            showEllipsisOnHover: false,\n            clickSelectionMode: ClickSelectType.None,\n            showCheckbox: false,\n        };\n        switch (mode) {\n            case PickerMode.placeLinkOrEmbed:\n                return new SingleSelectionManager({\n                    selectionUXConfig: {\n                        ...SelectionUX,\n                        clickSelectionMode: ClickSelectType.Single,\n                        showCheckbox: true,\n                    },\n                });\n            case PickerMode.add:\n                return new SingleSelectionManager({\n                    selectionUXConfig: {\n                        ...SelectionUX,\n                        clickSelectionMode: ClickSelectType.Single,\n                    },\n                });\n            case PickerMode.moveFrom:\n                return new MoveFromSelectionManager({\n                    selectionUXConfig: {\n                        ...SelectionUX,\n                        clickSelectionMode: ClickSelectType.Single,\n                        showCheckbox: true,\n                    },\n                });\n            default:\n                return new SingleSelectionManager({ selectionUXConfig: SelectionUX });\n        }\n    }\n\n    constructor(props, context) {\n        // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Do not use legacy context API\n        super(props, context);\n        this.state = {\n            dontShowCheckboxValue: !props.showInterstitial,\n            errorMessage: '',\n            saveAsName: props.saveAsName || '',\n            selectedAction: '' as PickerViewAction,\n            showOnboarding: props.showInterstitial,\n            selectedItems: [],\n            currentTabId: '',\n            isLink: false,\n            disableLinkCheckbox: true,\n            primaryButtonDisabled: !props.saveAsName,\n            primaryButtonPending: false,\n            selectedFileFormat: props.outputFileFormatChoices?.[0]?.extension ?? '',\n            lastSelectedWasNotBothLinkableAndEmbeddable: true,\n        };\n\n        this.callbacks = props.callbacks || {};\n        const globalStore = getExistingCDCGlobalStore();\n        if (globalStore) {\n            this.cdoMetrics = globalStore.cdoMetrics;\n        }\n        this.toastStore = props.toastStore;\n\n        this.fireIngestEvent(\n            {\n                event: {\n                    subcategory: 'Init',\n                    subtype: 'component',\n                    type: 'init',\n                    workflow: 'Initialize',\n                },\n            },\n            false,\n        );\n    }\n\n    // navigationDetail gets set in the constructor of DocumentPicker if initialView prop is provided\n    // otherwise we're opening without a specified view, just default to the first tab\n    updateInitialLocation() {\n        const { navigationDetail } = this.props as IPickerViewProps;\n        // Mobile view requires an undefined tab for its 'Tab select -> Render tab' flow\n        // currentTabId not being defined tells the mobile UAP to render the list of tabs (and not a specific tab)\n        if (this.isMobile) {\n            return;\n        }\n\n        const TABS = this.getTabs();\n        // includes is to handle project/projects matching\n        const tab =\n            TABS.find(\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- TODO: Adjust types to fix comparison\n                (t) => t.id === navigationDetail?.name || t.id.includes(navigationDetail?.name),\n            ) ?? TABS[0];\n        if (tab) {\n            this.onSwitchView(tab);\n        }\n    }\n\n    private handleNavigateOutEvent = (_event: Event) => {\n        this.setState({ currentTabId: '' });\n    };\n\n    componentDidMount() {\n        const { addExternalCancelListener, rootRef } = this.props;\n        this.updateInitialLocation();\n\n        // Ensure focus is set in the current window, but do not steal focus from Save As input\n        const focusDelay = 500;\n        setTimeout(() => {\n            if (this.focusEl.current && !this.focusEl.current.contains(document.activeElement)) {\n                // no child has focus, so move focus to PickerView\n                this.focusEl.current.focus();\n            }\n        }, focusDelay);\n\n        this.fireIngestEvent(\n            {\n                event: {\n                    subcategory: 'Landing',\n                    subtype: 'page',\n                    type: 'render',\n                    workflow: 'Main',\n                },\n            },\n            false,\n        );\n\n        addExternalCancelListener?.(this.onExternalCancel);\n\n        rootRef?.current?.addEventListener('navigate-out', this.handleNavigateOutEvent);\n    }\n\n    /**\n     * Invoked immediately after updating occurs. This method\n     * is not called for the initial render.\n     *\n     * @param prevProps        previous props object\n     */\n    componentDidUpdate(prevProps) {\n        const { navigationDetail, saveAsName, mode } = this.props;\n\n        // enablePlaceLinkWarningToast won't be set unless mode is placeLinkOrEmbed\n        if (!this.hasShownPlaceLinkWarning && mode === PickerMode.placeLinkOrEmbed) {\n            // only try to put it up once until dialog is dismissed/unmounted\n            this.showPlaceLinkWarningToast();\n\n            this.hasShownPlaceLinkWarning = true;\n        }\n\n        // On Mac OS, after its first launch, picker window is not rerendered but brought to background/foreground\n        // per closing/opening. Since host app sends updated save as name or folder upon (re)launching, compare these\n        // props to force a rerender.\n        if (saveAsName !== prevProps.saveAsName) {\n            this.setState({\n                errorMessage: '',\n                saveAsName,\n            });\n        }\n\n        // If event-based navigation info changes, update the view\n        if (navigationDetail !== prevProps.navigationDetail) {\n            // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- TODO: Handle all cases\n            switch (navigationDetail?.name) {\n                case AssetBrowser.ContentViewType.CloudDocuments:\n                    this.onSwitchView(this.cloudDocumentTab);\n                    break;\n                case AssetBrowser.ContentViewType.SharedWithYou:\n                    this.onSwitchView(this.sharedWithYouTab);\n                    break;\n                case AssetBrowser.ContentViewType.Deleted:\n                    this.onSwitchView(this.deletedTab);\n                    break;\n                case AssetBrowser.ContentViewType.Recents:\n                    this.onSwitchView(this.recentsTab);\n                    break;\n                case AssetBrowser.ContentViewType.Project:\n                case AssetBrowser.ContentViewType.Projects:\n                    this.onSwitchView(this.projectsTab);\n                    break;\n                case AssetBrowser.ContentViewType.GenerationHistory:\n                    this.onSwitchView(this.generationHistoryTab);\n                    break;\n            }\n        }\n    }\n\n    componentWillUnmount() {\n        const { removeExternalCancelListener, rootRef } = this.props;\n        // toast warning might be up\n        this.toastStore.removeToast();\n\n        removeExternalCancelListener?.(this.onExternalCancel);\n        rootRef?.current?.removeEventListener('navigate-out', this.handleNavigateOutEvent);\n    }\n\n    /*\n     * return the mimetype from a SelectedItem\n     */\n    private getDocumentType(item: SAM.AdobeAsset): string {\n        return item ? item.mediaType : '';\n    }\n\n    private getConfirmationDialogForContext() {\n        const { getConfirmationDialog, navigationDetail } = this.props as IPickerViewProps;\n        const { selectedItems } = this.state;\n        return getConfirmationDialog\n            ? () => getConfirmationDialog(navigationDetail, selectedItems)\n            : undefined;\n    }\n\n    /**\n     * Mode-specific footer props\n     */\n    private _getFooterOptions(): IPickerViewFooterProps {\n        const { disableCancelButton, hideLinkCheckbox, mode } = this.props as IPickerViewProps;\n        const {\n            isLink,\n            disableLinkCheckbox,\n            selectedItems,\n            primaryButtonDisabled,\n            primaryButtonPending,\n        } = this.state;\n\n        const baseProps: IPickerViewFooterProps = {\n            cancelButtonLabel: PickerViewAction.cancel,\n            disableCancelButton,\n            onCancel: this.onCancel,\n            onToggleLinkOrEmbed:\n                mode === PickerMode.placeLinkOrEmbed ? this.onToggleLinkOrEmbed : undefined,\n            isLinkMode: isLink,\n            disableLinkCheckbox,\n            hideLinkCheckbox,\n            hideInfoIconAndTooltip: selectedItems.length === 0,\n            primaryButtonDisabled: primaryButtonDisabled || !this.isCurrentViewEnabled,\n            primaryButtonPending: primaryButtonPending,\n            footerMessage: this.callbacks.getFooterMessage && this.callbacks.getFooterMessage(),\n            getConfirmationDialog: this.getConfirmationDialogForContext(),\n            isMobile: this.isMobile,\n        };\n\n        switch (mode) {\n            case PickerMode.placeLinkOrEmbed:\n                return {\n                    ...baseProps,\n                    onPrimaryButtonClick: () =>\n                        this.executePrimaryButtonClick(this.onPlaceLinkOrEmbed),\n                    primaryButtonLabel: PickerViewAction.placeLinkOrEmbed,\n                };\n            case PickerMode.copy:\n                return {\n                    ...baseProps,\n                    onPrimaryButtonClick: () => this.executePrimaryButtonClick(this.onCopy),\n                    primaryButtonLabel: PickerViewAction.copy,\n                };\n            case PickerMode.move:\n                return {\n                    ...baseProps,\n                    onPrimaryButtonClick: () => this.executePrimaryButtonClick(this.onMove),\n                    primaryButtonLabel: PickerViewAction.move,\n                };\n            case PickerMode.moveFrom:\n                return {\n                    ...baseProps,\n                    onPrimaryButtonClick: () => this.executePrimaryButtonClick(this.onMoveFrom),\n                    primaryButtonLabel: PickerViewAction.moveFrom,\n                };\n            case PickerMode.add:\n                return {\n                    ...baseProps,\n                    onPrimaryButtonClick: () => this.executePrimaryButtonClick(this.onAdd),\n                    primaryButtonLabel: PickerViewAction.add,\n                };\n            case PickerMode.saveAs:\n            case PickerMode.saveAsCopy:\n            case PickerMode.export: {\n                const { outputFileFormatChoices, disableCancelButton } = this.props;\n                const { currentTabId, saveAsName, primaryButtonPending } = this.state;\n\n                return {\n                    primaryButtonLabel:\n                        mode === PickerMode.export\n                            ? PickerViewAction.export\n                            : PickerViewAction.saveAs,\n                    cancelButtonLabel: PickerViewAction.cancel,\n                    onCancel: this.onCancel,\n                    currentTabId,\n                    onSelect: this.onSelect,\n                    outputFileFormatChoices,\n                    isSaveAsOrExportPicker: this._isSaveAsOrExportPicker(),\n                    isMobile: this.isMobile,\n                    onPrimaryButtonClick: () =>\n                        this.executePrimaryButtonClick(this.onSaveAsOrExport),\n                    primaryButtonDisabled:\n                        saveAsName === '' ||\n                        this.state.primaryButtonDisabled ||\n                        !this.isCurrentViewEnabled,\n                    primaryButtonPending,\n                    disableCancelButton,\n                    getConfirmationDialog: this.getConfirmationDialogForContext(),\n                };\n            }\n            default:\n                return baseProps;\n        }\n    }\n\n    private showInvalidSaveAsFormatToast(genericFormat: string, adobeFormat: string) {\n        this.toastStore.addToast({\n            message: 'warning.saveAs.invalidFormat',\n            values: {\n                genericFormat: genericFormat.toUpperCase(),\n                adobeFormat: adobeFormat.toUpperCase(),\n            },\n            delay: 0,\n        });\n    }\n\n    private showPlaceLinkWarningToast() {\n        const key = CDOLocalStorage.LOCAL_STORAGE_KEY.PLACE_LINK_WARNING;\n        const { getStorage, setStorage } = CDOLocalStorage;\n        const { enablePlaceLinkWarningToast } = this.props;\n        const doNotShowToast = getStorage(key) === 'true';\n        if (!doNotShowToast && enablePlaceLinkWarningToast) {\n            this.toastStore.addToast({\n                message: 'warning.placeLinkOrEmbed',\n                delay: 0,\n                actionLabelMsgId: 'onboardingCdp.checkbox.doNotShowAgain', // don't show again\n                action: () => {\n                    this.toastStore.removeToast();\n                    setStorage(key, 'true');\n                },\n            });\n        }\n    }\n\n    /**\n     * Returns an Array of tab objects\n     */\n    private getTabs(): IPickerTab[] {\n        const {\n            mode,\n            deletedTab,\n            disableCloudDocumentsTab,\n            disableSharedWithYouTab,\n            enableProjectsTab,\n            enableGenerationHistoryTab,\n            hostProductData,\n            enableRecentsTab,\n        } = this.props as IPickerViewProps;\n        let tabs: (IPickerTab | false | undefined)[];\n        const cloudDocumentTabIfEnabled = !disableCloudDocumentsTab && this.cloudDocumentTab;\n        // Quick fix until CCXCD-14752 implements a more flexible solution.\n        const isDesktopApp =\n            hostProductData?.productName === 'Photoshop' ||\n            hostProductData?.productName === 'Illustrator' ||\n            hostProductData?.productName === 'InDesign';\n        // CCPROJ-13218 :: temporary flagging for UAP mobile view, eventually recentsTab will be on desktop\n        switch (mode) {\n            case PickerMode.linkAssets:\n                tabs = [\n                    enableRecentsTab && this.recentsTab,\n                    cloudDocumentTabIfEnabled,\n                    this.sharedWithYouTab,\n                    this.convertToSketchLibrariesTab,\n                ];\n                break;\n            case PickerMode.placeLinkOrEmbed:\n                tabs = [\n                    enableRecentsTab && this.recentsTab,\n                    cloudDocumentTabIfEnabled,\n                    !disableSharedWithYouTab && this.sharedWithYouTab,\n                    enableProjectsTab && this.projectsTab,\n                    enableGenerationHistoryTab && this.generationHistoryTab,\n                    deletedTab && this.deletedTab,\n                ];\n                break;\n            case PickerMode.open:\n            case PickerMode.add:\n                tabs = [\n                    enableRecentsTab && this.recentsTab,\n                    cloudDocumentTabIfEnabled,\n                    !disableSharedWithYouTab && this.sharedWithYouTab,\n                    enableProjectsTab && this.projectsTab,\n                    deletedTab && this.deletedTab,\n                    !isDesktopApp && enableGenerationHistoryTab && this.generationHistoryTab,\n                ];\n                break;\n            case PickerMode.saveAs:\n            case PickerMode.saveAsCopy:\n            case PickerMode.export:\n                tabs = [cloudDocumentTabIfEnabled, enableProjectsTab && this.projectsTab];\n                break;\n            case PickerMode.copy:\n                tabs = [cloudDocumentTabIfEnabled, enableProjectsTab && this.projectsTab];\n                break;\n            case PickerMode.move:\n                tabs = [\n                    // for backward compatibility, if the flags are undefined, then don't show it\n                    disableCloudDocumentsTab === false && this.cloudDocumentTab,\n                    enableProjectsTab && this.projectsTab,\n                ];\n                break;\n            case PickerMode.moveFrom:\n                tabs = [this.cloudDocumentTab];\n                break;\n            default:\n                tabs = [];\n                break;\n        }\n\n        return tabs.filter(Boolean) as IPickerTab[];\n    }\n\n    private get selectedTab(): IPickerTab | undefined {\n        const { currentTabId } = this.state;\n        const tabs = this.getTabs();\n        return tabs.find((tab) => tab.id === currentTabId);\n    }\n\n    private _isSaveAsOrExportPicker() {\n        const { mode } = this.props;\n        return (\n            mode === PickerMode.saveAs ||\n            mode === PickerMode.saveAsCopy ||\n            mode === PickerMode.export\n        );\n    }\n\n    // TODO: There should probably be a case for SaveAs in here too.\n    // https://git.corp.adobe.com/CCX/cloud-shared-components/pull/290#discussion_r4759703\n    get requiresSelectedItems() {\n        const { mode } = this.props;\n        return mode === PickerMode.placeLinkOrEmbed || mode === PickerMode.moveFrom;\n    }\n\n    /**\n     * Use ccx-ingest to fire an ingest event\n     * @return {undefined}\n     */\n    private fireIngestEvent(payload, fireImmediate) {\n        if (this.cdoMetrics) {\n            this.cdoMetrics.fireEvent(payload, fireImmediate);\n        }\n    }\n\n    /**\n     * Get the folder (repoPath) & folderInfo (assetRefString) that should be provided to the host\n     * For Cloud Documents, that's a string starting with \"/cloud-documents\".\n     */\n    private async getFolderInfo(): Promise<{\n        repoPath?: string;\n        folderAssetRef?: string;\n        spaceInfo?: string;\n    }> {\n        const globalStore = getExistingCDCGlobalStore();\n        if (!globalStore || !globalStore.hostAssetContext) {\n            return {\n                repoPath: undefined,\n                folderAssetRef: undefined,\n            };\n        }\n        const { projectId, assetId } = this.props.navigationDetail?.params ?? {};\n\n        if (\n            [AssetBrowser.ContentViewType.Projects, AssetBrowser.ContentViewType.Project].includes(\n                this.state.currentTabId as AssetBrowser.ContentViewType,\n            )\n        ) {\n            if (!projectId) {\n                return {\n                    repoPath: undefined,\n                    folderAssetRef: undefined,\n                };\n            }\n            const project = await globalStore.hostAssetContext.getAssetWithCloudID(projectId);\n            let destination: SAM.AdobeAsset = project;\n\n            if (assetId) {\n                const asset = await globalStore.hostAssetContext.getAssetWithCloudID(assetId);\n                if (asset && asset.isFolder && asset.isChildOfProject) {\n                    destination = asset;\n                }\n            }\n\n            // TODO: CCPROJ-11869 Consolidate folder and folderAssetRef\n            // It's possible folderAssetRef is now a historical artifact and can be replaced by folder, now\n            const result = {\n                folder: destination.assetRefString,\n                folderAssetRef: destination.assetRefString,\n                // Photoshop does not save to org storage unless we pass spaceInfo\n                spaceInfo: JSON.stringify({\n                    spaceName: destination.name,\n                    spaceId: destination.id,\n                    repoId: destination.repositoryID,\n                    storageAssignee: destination.storageAssignee,\n                    links: destination.links,\n                }),\n            };\n\n            return result;\n        }\n\n        // assetId should always be defined in the NavigateEvent for Files\n        const currentFolder = assetId\n            ? await globalStore.hostAssetContext.getAssetWithCloudID(assetId)\n            : await globalStore.hostAssetContext.getRootFolder();\n\n        return {\n            repoPath: currentFolder?.repoPath,\n            folderAssetRef: currentFolder?.assetRefString,\n        };\n    }\n\n    private executeValidAction = async (action: PickerViewAction) => {\n        const { selectedFileFormat } = this.state;\n        const { view: viewType } = this.props.cdoStore ?? {};\n\n        const getAnalyticsEvent = (action: PickerViewAction): IAnalyticsData | undefined => {\n            const SAVE_SUBTYPE = 'save-as';\n            const SAVE_SUBCATEGORY = 'Save as Cloud Document';\n            const ADD_SUBTYPE = 'add';\n            const ADD_SUBCATEGORY = 'Add from Cloud Document';\n\n            const ACTION_TYPE_CLICK = 'click';\n            const WORKFLOW_DOCUMENT_OPERATION = 'Document-Operation';\n            const CATEGORY_CLOUD_DOCS = 'Cloud Documents';\n\n            let subtype: string;\n            let subcategory: string;\n            let selectedFileFormat: string | undefined;\n            switch (action) {\n                case PickerViewAction.saveAs:\n                case PickerViewAction.saveAsCopy:\n                case PickerViewAction.saveToFolder:\n                    subtype = SAVE_SUBTYPE;\n                    subcategory = SAVE_SUBCATEGORY;\n                    selectedFileFormat = this.state.selectedFileFormat;\n                    break;\n                case PickerViewAction.add:\n                    subtype = ADD_SUBTYPE;\n                    subcategory = ADD_SUBCATEGORY;\n                    selectedFileFormat = this.state.selectedItems[0]?.extension;\n                    break;\n                default:\n                    console.warn('No valid action for analytics event!');\n                    return undefined;\n            }\n\n            return {\n                event: {\n                    subcategory,\n                    subtype,\n                    type: ACTION_TYPE_CLICK,\n                    workflow: WORKFLOW_DOCUMENT_OPERATION,\n                },\n                content: {\n                    category: CATEGORY_CLOUD_DOCS,\n                    extension: selectedFileFormat,\n                },\n                ui: {\n                    view_type: viewType,\n                },\n            };\n        };\n\n        const analyticsEvent = getAnalyticsEvent(action);\n        if (analyticsEvent?.event) {\n            this.fireIngestEvent(analyticsEvent, true);\n        }\n\n        if (this.isExternalCancel) {\n            // an external cancel might come from the browser keyboard handler\n            // and remove the UAP from the DOM such that setState, which\n            // queues a request to change the state, might never run and\n            // call the callback.  So just call the callbacks\n            const { selectedItems, saveAsName, dontShowCheckboxValue } = this.state;\n            const cancelState = {\n                selectedAction: action,\n                selectedItems,\n\n                selectedFileFormat,\n                saveAsName,\n                dontShowCheckboxValue,\n            };\n            this.callOnExecutePickerAction({}, cancelState);\n        } else {\n            // If SAM is not initialized, we could wait forever. The actions\n            // that truly need folderInfo will probably be disabled anyway, only\n            // buttons like Cancel and OnYourComputer are probably available and\n            // don't need folderInfo.\n            const folderInfo =\n                getExistingCDCGlobalStore()?.hostAssetContext !== undefined\n                    ? await this.getFolderInfo()\n                    : {};\n            this.setState({ selectedAction: action, errorMessage: '' }, () =>\n                this.callOnExecutePickerAction(folderInfo, this.state),\n            );\n        }\n    };\n\n    private callOnExecutePickerAction(folderInfo, state) {\n        const {\n            selectedAction,\n            selectedItems,\n            selectedFileFormat,\n            saveAsName,\n            dontShowCheckboxValue,\n            currentRoute,\n        } = state;\n        const { windowController, mode } = this.props;\n\n        const selectedTab = this.selectedTab || this.getTabs()[0];\n\n        const actionState: IPickerActionState = {\n            action: selectedAction,\n            /**\n             * @TODO See if the host applications can just accept a non-string\n             * boolean value for this. https://jira.corp.adobe.com/browse/CCXCD-4214\n             */\n            dismissInterstitial: dontShowCheckboxValue ? 'true' : 'false',\n            mode,\n            name: saveAsName,\n            windowController,\n            // maintain backwards compatible API\n            // ! deprecated, changes in messaging will affect this !\n            selectedTab: selectedTab?.defaultLabel,\n            selectedTabId: selectedTab?.id,\n            selectedItems,\n            selectedFileFormat,\n            route: currentRoute,\n            ...folderInfo,\n        };\n\n        // now execute the action callback\n        if (this.callbacks.onExecutePickerAction) {\n            this.callbacks.onExecutePickerAction(actionState);\n        }\n    }\n\n    private handleSaveAsOrExportInputChange = (newName) => {\n        const primaryButtonDisabled = newName.length === 0;\n\n        this.setState({\n            saveAsName: newName,\n            primaryButtonDisabled,\n        });\n    };\n\n    /**\n     * Handle action of onboarding.\n     *\n     * @param mode        string indicating mode of op\n     */\n    private _handleOnboardingAction = (mode: OnboardingAction) => {\n        const { dontShowCheckboxValue } = this.state;\n        let subtype = '';\n        let value = dontShowCheckboxValue;\n        switch (mode) {\n            case OnboardingAction.CloudDocs:\n                this.setState({\n                    showOnboarding: false,\n                });\n                subtype = 'save-cloud';\n                break;\n\n            case OnboardingAction.LocalDocs:\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Handle undefined/null\n                this.callbacks.onExecutePickerAction!({\n                    action: 'switchToOSPicker',\n                    dismissInterstitial: dontShowCheckboxValue ? 'true' : 'false',\n                    mode: 'saveAs',\n                });\n                this.setState({\n                    showOnboarding: false,\n                });\n                subtype = 'save-local';\n                break;\n            case OnboardingAction.DontShow: {\n                // toggle based on checkbox\n                const toggled = !dontShowCheckboxValue;\n\n                this.setState({\n                    dontShowCheckboxValue: toggled,\n                });\n                subtype = 'dont-show';\n                value = toggled;\n                break;\n            }\n            default:\n                break;\n        }\n        const analyticsEvent: IAnalyticsData = {\n            event: {\n                subcategory: 'Onboarding',\n                type: 'click',\n                workflow: 'Main',\n                subtype,\n                value,\n            },\n        };\n        this.fireIngestEvent({ analyticsEvent }, false);\n    };\n\n    private onSaveAsOrExport = () => {\n        const { saveAsName } = this.state;\n        const { mode } = this.props;\n\n        // This method checks for all cases but duplicate.\n        const status: ValidationStatus = fileNameValidator(saveAsName as any);\n\n        if (status === ValidationStatus.valid) {\n            const actionToExecute =\n                mode === PickerMode.export ? PickerViewAction.export : PickerViewAction.saveAs;\n            void this.executeValidAction(actionToExecute);\n        } else {\n            this.setState({ errorMessage: status });\n        }\n    };\n\n    private onSaveToFolder = () => {\n        void this.executeValidAction(PickerViewAction.saveToFolder);\n    };\n\n    private onCancel = () => {\n        void this.executeValidAction(PickerViewAction.cancel);\n    };\n\n    private onExternalCancel = () => {\n        this.isExternalCancel = !Utils.usingUXP();\n        this.onCancel();\n    };\n\n    private onPlaceLinkOrEmbed = () => {\n        const { selectedItems, isLink } = this.state;\n        const subtype = isLink ? 'placeLink' : 'placeEmbed';\n        const element = selectedItems[0];\n        this.fireIngestEvent(\n            {\n                event: {\n                    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Handle undefined/null\n                    subcategory: this.selectedTab!.ingestSubcategory,\n                    type: 'click',\n                    subtype,\n                    workflow: 'Place',\n                },\n                content: {\n                    mimetype: element?.mediaType,\n                    // we don't get fileExtension from Spaces\n                    // extension: element.fileExtension\n                },\n            },\n            false,\n        );\n        // execute the action callback when 'Place' button submitted\n        if (this.callbacks.onPlaceLinkOrEmbedDocuments) {\n            this.callbacks.onPlaceLinkOrEmbedDocuments([element], Boolean(isLink));\n        }\n    };\n\n    private onCopy = () => {\n        void this.executeValidAction(PickerViewAction.copy);\n    };\n\n    private onMove = () => {\n        void this.executeValidAction(PickerViewAction.move);\n    };\n\n    private onMoveFrom = () => {\n        void this.executeValidAction(PickerViewAction.moveFrom);\n    };\n\n    private onAdd = () => {\n        void this.executeValidAction(PickerViewAction.add);\n    };\n\n    private onToggleLinkOrEmbed = (isLink) => {\n        this.setState({ isLink });\n    };\n\n    private onSelect = (selectedValue) => {\n        this.setState({ selectedFileFormat: selectedValue });\n    };\n\n    private onSwitchToOSPicker = () => {\n        this.fireIngestEvent(\n            {\n                event: {\n                    subtype: 'Your Computer',\n                    type: 'click',\n                    workflow: 'Navigation',\n                },\n            },\n            true,\n        );\n\n        void this.executeValidAction(PickerViewAction.switchToOSPicker);\n    };\n\n    private onSwitchToSketchLibrariesImport = () => {\n        this.fireIngestEvent(\n            {\n                event: {\n                    subtype: 'Convert Sketch Libary',\n                    type: 'click',\n                    workflow: 'Navigation',\n                },\n            },\n            true,\n        );\n\n        void this.executeValidAction(PickerViewAction.switchToSketchLibrariesImport);\n    };\n\n    private onBeforeItemClicked = (element: ICollectionItem): boolean => {\n        const { mode } = this.props;\n        const { title } = element;\n        switch (mode) {\n            case PickerMode.open:\n            case PickerMode.linkAssets:\n            case PickerMode.move:\n                return true;\n            case PickerMode.saveAs:\n            case PickerMode.saveAsCopy:\n            case PickerMode.export:\n                // Update the input to the selected document\n                this.setState({\n                    saveAsName: title,\n                    primaryButtonDisabled: title.length === 0,\n                });\n                break;\n            case PickerMode.placeLinkOrEmbed:\n                this.setState({ saveAsName: title });\n                break;\n            default:\n                break;\n        }\n        // Cancel default item click behavior (open)\n        return false;\n    };\n\n    private onVerticalTabsSwitchView = (_event, tab: IPickerTab) => {\n        this.onSwitchView(tab);\n\n        this.fireIngestEvent(\n            {\n                event: {\n                    subtype: tab.ingestSubcategory,\n                    type: 'click',\n                    workflow: 'Navigation',\n                },\n            },\n            false,\n        );\n    };\n\n    private onSwitchView = (tab: IPickerTab) => {\n        const { id, onTabSelected, renderTab } = tab;\n        const { outputFileFormatChoices } = this.props;\n        const { selectedFileFormat } = this.state;\n\n        // If an action exists, execute it\n        if (onTabSelected) {\n            onTabSelected();\n        }\n\n        if (\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- TODO: Adjust types to fix comparison\n            id === AssetBrowser.ContentViewType.CloudDocuments &&\n            outputFileFormatChoices &&\n            outputFileFormatChoices.length > 0\n        ) {\n            const appFileFormat = outputFileFormatChoices[0];\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Handle undefined/null\n            if (selectedFileFormat!.toLowerCase() !== appFileFormat.extension.toLowerCase()) {\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Handle undefined/null\n                this.showInvalidSaveAsFormatToast(selectedFileFormat!, appFileFormat.label);\n            }\n            if (selectedFileFormat === appFileFormat.extension) {\n                this.toastStore.removeToast();\n            }\n            this.setState({ selectedFileFormat: appFileFormat.extension });\n        }\n\n        // If component is not provided, we will not switch tabs.\n        if (renderTab) {\n            this.setState({ currentTabId: id }, () => {\n                // Make sure the state is updated before check for requiresSelectedItems.\n                // reset selection to 'nothing selected'\n                this.onItemsSelected([]);\n            });\n        } else {\n            // reset selection to 'nothing selected'\n            this.onItemsSelected([]);\n        }\n    };\n\n    private renderTitle = (args?: { className?: string; isMobile?: boolean }) => {\n        const { className, isMobile } = args ?? { className: '', isMobile: false };\n        const { mode } = this.props;\n        const titleMsgId = `uap.title.${mode}`;\n        return (\n            <div\n                className={classnames(className, styles.uapTitle, {\n                    [styles.uapTitle_no_border]: isMobile,\n                })}\n            >\n                {!isMobile ? <CreativeCloud size=\"M\" className={styles.ccIcon} /> : <></>}\n                <FormattedMessage id={titleMsgId} />\n            </div>\n        );\n    };\n\n    /**\n     * Save As document picker view. For clients such as Ps and AI.\n     */\n    private renderSaveAsView = () => {\n        const title = this.renderTitle({ className: styles.uapTitle_no_border });\n        const { cdpTabs, mode } = this.props;\n        const { saveAsName, errorMessage, primaryButtonDisabled } = this.state;\n\n        const inputLabelId = mode === PickerMode.export ? 'exportInput' : 'saveAsInput';\n\n        // TODO: determine what the correct behavior is for saving empty string. Should we also\n        // Jira: https://jira.corp.adobe.com/browse/CCXCD-2933\n        // check if the string only includes spaces?\n        const isFileNameEmpty = saveAsName === '';\n        const disablePrimaryButtonForInput =\n            isFileNameEmpty || primaryButtonDisabled || !this.isCurrentViewEnabled;\n\n        const header = (\n            <SaveAsOrExportInput\n                value={saveAsName as any}\n                errorMessage={errorMessage}\n                onInputChange={this.handleSaveAsOrExportInputChange}\n                inputLabelId={inputLabelId}\n                onPrimaryButtonClick={this.onSaveAsOrExport}\n                primaryButtonDisabled={disablePrimaryButtonForInput}\n            />\n        );\n\n        return (\n            <>\n                {title}\n                {header}\n                {cdpTabs ? (\n                    this.renderVerticalTabView()\n                ) : (\n                    <>\n                        {this.cloudDocumentTab.renderTab?.()}\n                        <PickerViewFooter {...this._getFooterOptions()} />\n                    </>\n                )}\n            </>\n        );\n    };\n\n    /**\n     * Save As document picker view. For client such as XD.\n     */\n    private renderSaveToFolderView = () => {\n        const title = this.renderTitle();\n        const { currentTabId, primaryButtonPending } = this.state;\n        const main = (\n            <CloudDocuments\n                hideFilter={this.hideFilter}\n                onBeforeItemClicked={this.onBeforeItemClicked}\n                selectionBehavior={this.props.selectionBehavior}\n                selectionManager={this.getSelectionManager(this.props.mode)}\n            />\n        );\n\n        const primaryButtonDisabled = !this.isCurrentViewEnabled;\n        const { outputFileFormatChoices, disableCancelButton } = this.props;\n        const isSaveAsOrExportPicker = this._isSaveAsOrExportPicker();\n        const footer = (\n            <PickerViewFooter\n                primaryButtonLabel={PickerViewAction.saveToFolder}\n                cancelButtonLabel={PickerViewAction.cancel}\n                onPrimaryButtonClick={() => this.executePrimaryButtonClick(this.onSaveToFolder)}\n                onSelect={this.onSelect}\n                outputFileFormatChoices={outputFileFormatChoices}\n                isSaveAsOrExportPicker={isSaveAsOrExportPicker}\n                currentTabId={currentTabId}\n                primaryButtonDisabled={primaryButtonDisabled}\n                primaryButtonPending={primaryButtonPending}\n                onCancel={this.onCancel}\n                disableCancelButton={disableCancelButton}\n                getConfirmationDialog={this.getConfirmationDialogForContext()}\n            />\n        );\n\n        return (\n            <>\n                {title}\n                {main}\n                {footer}\n            </>\n        );\n    };\n\n    private renderMainView = () => {\n        const { cdpTabs } = this.props;\n        const { currentTabId } = this.state;\n\n        const title = this.renderTitle({ isMobile: this.isMobile });\n\n        if (this.isMobile) {\n            const showMobileNavView = !currentTabId;\n            return (\n                <>\n                    {showMobileNavView && (\n                        <div className={styles.mobileSidenavHeader}>\n                            <CloseButton\n                                onClick={this.onExternalCancel}\n                                className={styles.sideNavCloseButton}\n                            />\n                            {title}\n                        </div>\n                    )}\n\n                    {this.renderVerticalTabView()}\n                </>\n            );\n        }\n        return (\n            <>\n                {title}\n                {cdpTabs ? (\n                    this.renderVerticalTabView()\n                ) : (\n                    <>\n                        {this.cloudDocumentTab.renderTab?.()}\n                        <PickerViewFooter {...this._getFooterOptions()} />\n                    </>\n                )}\n            </>\n        );\n    };\n\n    /**\n     * View with vertical navigation..\n     */\n    private renderVerticalTabView = () => {\n        const { currentTabId } = this.state;\n        const { hideYourComputerButton } = this.props;\n        const TABS = this.getTabs();\n        return (\n            <VerticalTabs\n                onSwitchView={this.onVerticalTabsSwitchView}\n                currentTabId={currentTabId ?? ''}\n                tabs={TABS}\n                isMobile={this.isMobile}\n                footer={<PickerViewFooter {...this._getFooterOptions()} />}\n                hideYourComputerButton={hideYourComputerButton}\n                onSwitchToOSPicker={this.onSwitchToOSPicker}\n            />\n        );\n    };\n\n    /**\n     * Component renderer.\n     * @return {React} markup\n     */\n    render() {\n        const { dontShowCheckboxValue, showOnboarding } = this.state;\n        const { mode, hostProductData } = this.props;\n        const isSaveAsOrExportPicker = this._isSaveAsOrExportPicker();\n        const isSaveToFolderPicker = mode === PickerMode.saveToFolder;\n        const isNotASaveOrExportView = !isSaveAsOrExportPicker && !isSaveToFolderPicker;\n        const renderOnboarding = showOnboarding && isSaveAsOrExportPicker;\n        const mainView = (\n            <>\n                {isNotASaveOrExportView && this.renderMainView()}\n                {isSaveAsOrExportPicker && this.renderSaveAsView()}\n                {isSaveToFolderPicker && this.renderSaveToFolderView()}\n            </>\n        );\n        const onboardingView = (\n            <OnboardingView\n                dontShowCheckValue={dontShowCheckboxValue}\n                onSwitchToCDOPicker={() => this._handleOnboardingAction(OnboardingAction.CloudDocs)}\n                onSwitchToOSPicker={() => this._handleOnboardingAction(OnboardingAction.LocalDocs)}\n                onToggleDismissal={() => this._handleOnboardingAction(OnboardingAction.DontShow)}\n                hideOnboardingInviteToEditRow={\n                    hostProductData.featureFlags.hideOnboardingInviteToEditRow\n                }\n            />\n        );\n\n        return (\n            // tabIndex of -1 to allow javascript focus but not keyboard focus\n            <div\n                className={classnames(styles.root, 'PickerView', {\n                    [styles.mobile]: this.isMobile,\n                })}\n                tabIndex={-1}\n                ref={this.focusEl}\n            >\n                {renderOnboarding ? onboardingView : mainView}\n            </div>\n        );\n    }\n}\n\nexport default ccxIngest(INGEST_PROJECT_VALUE)(PickerView);\nexport { PickerView as PickerViewForTests };\nexport type { IPickerViewProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { PickerMode } from '@csc/common';\n\nconst isViewEnabledForSave = (navigationDetail?: AssetBrowser.NavigationEventDetail): boolean => {\n    if (!navigationDetail) {\n        return true;\n    }\n\n    const { name } = navigationDetail;\n\n    switch (name) {\n        case AssetBrowser.ContentViewType.Projects:\n            return false;\n        default:\n            return true;\n    }\n};\n\n// Default view enabled function.\nconst defaultIsViewEnabled = (\n    mode: PickerMode,\n    navigationDetail?: AssetBrowser.NavigationEventDetail,\n): boolean => {\n    switch (mode) {\n        case PickerMode.saveToFolder:\n        case PickerMode.saveAs:\n        case PickerMode.saveAsCopy:\n            return isViewEnabledForSave(navigationDetail);\n        default:\n            return true;\n    }\n};\n\nexport { defaultIsViewEnabled };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { getExistingCDCGlobalStore, Busy, ModeType } from '@ccx/ccx-cdo';\nimport React, { useEffect, useState, cloneElement } from 'react';\n\nexport const PickerViewLoader = ({ children, elements, mode }) => {\n    const [loaded, setLoaded] = useState(false);\n    const [ffOverrides, setFFOverrides] = useState({});\n\n    useEffect(() => {\n        (async () => {\n            if (mode === ModeType.move) {\n                const globalStore = getExistingCDCGlobalStore();\n                if (!globalStore) {\n                    return;\n                }\n                await globalStore.waitForSAMInit();\n                const assetContext = globalStore.hostAssetContext;\n                if (!assetContext) {\n                    return;\n                }\n                const filesRoot = await assetContext.getRootFolder();\n                // Check to see if currently selected asset(s) can be moved to your files\n                // Ex: A file in a shared project cannot be moved to your files\n                const { canMove } = await assetContext.getMoveCapability(\n                    elements.map((el) => el.backingItem),\n                    filesRoot,\n                );\n\n                // Disable files tab in UAP\n                if (!canMove) {\n                    setFFOverrides({\n                        disableCloudDocumentsTab: true,\n                        enableCloudDocFolders: false,\n                    });\n                }\n            }\n\n            setLoaded(true);\n        })();\n    }, [elements, mode]);\n\n    return loaded ? cloneElement(children, { ...ffOverrides }) : <Busy />;\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { injectIntl } from 'react-intl';\nimport type { ShowModalFn } from '@csc/common';\nimport { createLoadPerformanceMeasurement, HostConfigOverrides, PickerMode } from '@csc/common';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport type {\n    IIMSData,\n    IHostProductData,\n    ModeType,\n    ISelectionBehavior,\n    ICollectionItem,\n} from '@ccx/ccx-cdo';\nimport { CDOProvider, Themes, getExistingCDCGlobalStore } from '@ccx/ccx-cdo';\nimport ReactSpectrumProvider from '@react/react-spectrum/Provider';\nimport merge from 'lodash-es/merge';\n\nimport type IUAPHostProductData from '../interfaces/IUAPHostProductData';\nimport type IUAPCallbacks from '../interfaces/IUAPCallbacks';\nimport { intlStore } from '../utils/i18n';\nimport { INGEST_INITIAL_STATE } from '../utils/constants';\n\nimport PickerView from './PickerView';\nimport VERSION from '../version';\nimport type IPickerInfo from '../interfaces/IPickerInfo';\nimport type IUAPHost from '../interfaces/IUAPHost';\nimport type IPickerActionState from '../interfaces/IPickerActionState';\n\n/**\n * Styles\n */\nimport './DocumentPicker.css';\n\n/**\n * CDP Imports for HS\n */\nimport '../theme/CCXHomeScreen/Themes.css';\nimport { PickerViewLoader } from './PickerViewLoader';\nimport type { SAM } from '@ccx-public/component-types';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport { AssetBrowser } from '@ccx-public/component-types';\n\n/**\n * disable: tslint\n */\nconst pickerStateChanged: string = 'PICKERSTATECHANGED';\n\n/**\n * Interfaces\n */\ninterface IDocumentPickerProps extends WrappedComponentProps {\n    elements?: BackedCollectionItem<SAM.AdobeAsset>;\n    pickerInfo: IPickerInfo;\n    closeDialog?: () => void;\n    showModal?: ShowModalFn;\n    theme: Themes;\n    openedSessionGuid: string;\n    cdoHostProductData?: IHostProductData;\n    callbacks?: IUAPCallbacks;\n    cdoIMSData?: IIMSData;\n    changeEventDispatcher?: IUAPHost;\n    executePickerAction?: (action: IPickerActionState, windowController: any) => void;\n    openDocuments?: (docInfoArray: any[]) => void;\n    placeDocuments?: (docInfoArray: any[]) => void;\n    addExternalCancelListener?: (callback: () => void) => void;\n    removeExternalCancelListener?: (callback: () => void) => void;\n    isMobile?: boolean;\n    compatibleTypes?: string[];\n}\n\ninterface IDocumentPickerState {\n    mode: PickerMode;\n    navigationDetail: AssetBrowser.NavigationEventDetail;\n}\n\n/**\n * Container for the main view.\n */\nclass DocumentPicker extends React.Component<IDocumentPickerProps, IDocumentPickerState> {\n    static defaultProps = {\n        theme: Themes.light,\n    };\n\n    private _imsData: IIMSData;\n\n    private _callbacks: IUAPCallbacks;\n\n    private _pickerViewRef: React.RefObject<InstanceType<typeof PickerView>>;\n\n    private _rootRef: React.RefObject<HTMLDivElement>;\n\n    private _isEventRegistered: boolean = false;\n\n    private _endLoadPerformance: () => void;\n    private cdoMetrics;\n\n    /**\n     * ctor\n     *\n     * @param {Object} props DocumentPicker props\n     */\n    constructor(props: IDocumentPickerProps) {\n        super(props);\n        const { callbacks, cdoIMSData } = props;\n        // eslint-disable-next-line @typescript-eslint/no-floating-promises -- TODO: Handle error\n        intlStore.setLocale(this.locale);\n        this._rootRef = React.createRef<HTMLDivElement>();\n        this._pickerViewRef = React.createRef();\n        this._callbacks = {\n            ...{\n                onExecutePickerAction: (actionState) => {\n                    this._handleExecutePickerAction(actionState as IPickerActionState);\n                },\n                onStatusChange: (_status) => {\n                    /* deprecated method: onUpdateDocuments called fetchRecents previously\n                     * fetchRecents method used to do SAM fetch calls, but now with AAV,\n                     * fetching happens at the tab level, so this status change is not needed */\n                },\n            },\n            /**\n             * Allow web integrations and other integrations\n             * to provide their own callbacks for CDO.\n             */\n            ...callbacks,\n        };\n        const defaultInitialView: AssetBrowser.NavigationEventDetail = {\n            name: AssetBrowser.ContentViewType.CloudDocuments,\n            params: {},\n        };\n\n        const currentState: IDocumentPickerState = {\n            mode: props.pickerInfo.mode,\n            navigationDetail: props.pickerInfo.initialView ?? defaultInitialView,\n        };\n\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Handle undefined/null\n        this._imsData = cdoIMSData!;\n        this.state = currentState;\n        this.cdoMetrics = getExistingCDCGlobalStore()?.cdoMetrics;\n\n        // start measuring performance\n        // Start load performance measurement\n        this._endLoadPerformance = createLoadPerformanceMeasurement(\n            {\n                measureName: 'DocumentPickerInit',\n                prefix: 'ace-uap',\n                trackPerformanceAnalytics: (measureName, duration) => {\n                    // Send performance data to analytics via cdoMetrics\n                    this.cdoMetrics?.fireEvent({\n                        event: {\n                            category: 'performance',\n                            subcategory: measureName,\n                            value: duration,\n                        },\n                    });\n                },\n            },\n            true,\n        );\n    }\n\n    componentDidMount() {\n        const { changeEventDispatcher } = this.props;\n        if (changeEventDispatcher && !this._isEventRegistered) {\n            changeEventDispatcher.on?.(pickerStateChanged, this.handleModeChange);\n            this._isEventRegistered = true;\n        }\n        this._rootRef.current?.addEventListener('navigate', this.handleNavigateEvent);\n        this._rootRef.current?.addEventListener('open', this.handleOpenEvent);\n\n        // End load performance measurement\n        this._endLoadPerformance?.();\n    }\n\n    /**\n     * Invoked immediately after updating occurs. This method\n     * is not called for the initial render.\n     *\n     * @param prevProps        previous props object\n     */\n    componentDidUpdate(prevProps) {\n        const { mode: prevMode } = prevProps.pickerInfo;\n        const { pickerInfo } = this.props;\n        const { mode } = pickerInfo;\n        if (prevMode !== mode) {\n            /**\n             * setState can be used in componentDidUpdate\n             * https://reactjs.org/docs/react-component.html#componentdidupdate\n             */\n\n            this.setState({ mode });\n        }\n    }\n\n    componentWillUnmount() {\n        const { changeEventDispatcher } = this.props;\n        if (changeEventDispatcher) {\n            changeEventDispatcher.off?.(pickerStateChanged, this.handleModeChange);\n            this._isEventRegistered = false;\n        }\n\n        this._rootRef.current?.removeEventListener('navigate', this.handleNavigateEvent);\n    }\n\n    dispatchEvent: HostConfig['dispatchEvent'] = (event) => {\n        if (this._rootRef.current) {\n            this._rootRef.current.dispatchEvent(event);\n        }\n    };\n\n    /**\n     * Transform the host locale to what the CDO provider expects.\n     *\n     * @return {String} containing the UI locale.\n     */\n    get locale() {\n        const { cdoHostProductData } = this.props;\n        return cdoHostProductData?.uiLocale ?? 'en';\n    }\n\n    private get hostProductData(): IUAPHostProductData {\n        const { pickerInfo, cdoHostProductData } = this.props;\n\n        const cdoFF = cdoHostProductData ? cdoHostProductData.featureFlags : {};\n        const featureFlags = {\n            ...cdoFF,\n            ...pickerInfo.featureFlags,\n        };\n\n        const { documentFilterOverride: uapDocumentFilter } = pickerInfo;\n        const { documentFilter: cdoDocumentFilter } = cdoHostProductData || {};\n        const documentFilter = uapDocumentFilter || cdoDocumentFilter || [];\n\n        return {\n            ...cdoHostProductData,\n            featureFlags,\n            documentFilter,\n        } as IUAPHostProductData;\n    }\n\n    /**\n     * Perform the action selected from Document Picker.\n     *\n     * @param {} actionState    state of the selected action\n     * {\n     *      action: string. Actions are 'cancel', 'choose', 'save', and 'switchToOSPicker'.\n     *              Open action will be handled by handleOpenDocuments.\n     *      folder?: string, optional. Either a directory path or an assetRef string.\n     *      name?: string, optional. New document name. Can be empty string.\n     * }\n     * @return {undefined}\n     */\n    private _handleExecutePickerAction(actionState: IPickerActionState) {\n        const { pickerInfo, closeDialog, executePickerAction } = this.props;\n        const currentPickerInfo = pickerInfo;\n\n        // pass the action back to the host\n        const { windowController } = currentPickerInfo;\n        if (executePickerAction) {\n            if (windowController) {\n                executePickerAction(actionState, currentPickerInfo.windowController);\n            } else {\n                // This native function requires two arguments.\n                // if windowController is not present then we pass an\n                // undefined, removeing undefined throws \"Native function call expected more arguments\"\n                executePickerAction(actionState, undefined);\n            }\n        }\n\n        // and close out the dialog\n        if (closeDialog) {\n            closeDialog();\n        }\n    }\n\n    /**\n     * Get the base data set for ingest events\n     * @return {object} base data set for ingest event\n     */\n    private _getIngestProviderData() {\n        const userId = this._imsData.fetchUserId();\n        const { subscriptionType } = this._imsData;\n\n        return merge(INGEST_INITIAL_STATE, {\n            // simulate: true,\n            env: {\n                fw: {\n                    name: 'CDOPicker',\n                    version: VERSION,\n                },\n            },\n            event: {\n                build: this.hostProductData.productBuildNumber,\n                language: this.locale,\n                user_agent: navigator.userAgent,\n                user_guid: userId,\n            },\n            source: {\n                client_id: this.hostProductData.productId,\n                name: this.hostProductData.productName,\n                os_version: this.hostProductData.platformVersion,\n                platform: this.hostProductData.platform,\n                version: this.hostProductData.productVersion,\n            },\n            user: {\n                service_code: userId ? 'sign-in' : '',\n                service_level: subscriptionType,\n            },\n        });\n    }\n\n    private handleModeChange = (mode: PickerMode) => {\n        const expectedTransitions = new Set([\n            PickerMode.open,\n            PickerMode.linkAssets,\n            PickerMode.placeLinkOrEmbed,\n        ]);\n        /**\n         * We only want to transition to allowed modes in order to\n         * prevent SaveAs from changing to Open when it's not supposed\n         * to.\n         */\n        if (!expectedTransitions.has(mode) || !expectedTransitions.has(this.state.mode)) {\n            console.warn(\n                'Unexpected mode change from',\n                this.state.mode,\n                'to',\n                mode,\n                '. Mode has not been changed',\n            );\n        } else {\n            this.setState({ mode });\n        }\n    };\n\n    private handleNavigateEvent = (event: Event) => {\n        const navigationDetail = (event as CustomEvent<AssetBrowser.NavigationEventDetail>).detail;\n        this.setState({ navigationDetail });\n    };\n\n    private handleOpenEvent = (_event: Event) => {\n        const { closeDialog } = this.props;\n\n        if (closeDialog) {\n            closeDialog();\n        }\n    };\n\n    private getSelectionBehavior = (mode: PickerMode): ISelectionBehavior | undefined => {\n        switch (mode) {\n            case PickerMode.placeLinkOrEmbed:\n                return {\n                    single: true,\n                    hideFolderCheckbox: true,\n                    hideFileCheckbox: false,\n                    shouldHideCheckbox: (element: ICollectionItem) =>\n                        (element as BackedCollectionItem<SAM.AdobeAsset>).backingItem?.isFolder,\n                };\n            case PickerMode.moveFrom:\n                return {\n                    single: false,\n                    hideFolderCheckbox: true,\n                    hideFileCheckbox: false,\n                    shouldHideCheckbox: (element: ICollectionItem) =>\n                        (element as BackedCollectionItem<SAM.AdobeAsset>).backingItem?.isFolder,\n                };\n            default:\n                return undefined;\n        }\n    };\n\n    render() {\n        const { mode } = this.state;\n        const {\n            elements,\n            theme,\n            pickerInfo,\n            openedSessionGuid,\n            addExternalCancelListener,\n            removeExternalCancelListener,\n            isMobile,\n            compatibleTypes,\n        } = this.props;\n        /**\n         * Let the homescreen override feature flags set in this\n         * file.\n         */\n        const {\n            windowController,\n            isPanel,\n            isWebDialog,\n            name,\n            disableCancelButton = false,\n            documentFilterOverride,\n            hideYourComputerButton,\n            outputFileFormatChoices,\n            showInterstitial,\n            getConfirmationDialog,\n            shouldRenderItemAsDisabled,\n            isViewEnabled,\n        }: IPickerInfo = pickerInfo;\n\n        // NOTE: these look like they come from HostProductData.featureFlags, but they really come from\n        // props.pickerInfo.featureFlags with defaults coming from appConfig.featureFlags, which were likely\n        // set by hostApp.featureEnabled().\n        const {\n            cdpTabs,\n            disableCloudDocumentsTab,\n            disableSharedWithYouTab,\n            enableCDPOnboarding,\n            enablePlaceEmbedWarningToast,\n            enablePlaceLinkWarningToast,\n            enableProjectsTab,\n            enableGenerationHistoryTab,\n            enableMobileView,\n            enableRecentsTab,\n            hideLinkCheckbox,\n            useCDPDeletedTab,\n        }: IHostProductData['featureFlags'] = this.hostProductData.featureFlags;\n\n        // TODO: `mode` is coming from `state`, but for some reason, `cdoMode` is ignoring\n        // that and getting `mode` from `pickerInfo`. See if it is safe to remove `mode` from\n        // `state`, and if so, destructure`mode` from `pickerInfo` above.\n        // One reason may be that, for singleton pickers, if they are re-used with different\n        // modes, the state.mode on first render is the mode from the last use of the picker.\n        // NOTE: `mode` comes from `state`, changes to `props.pickerInfo.mode` are propagated\n        // to `state` via `componentDidUpdate`.\n        const cdoMode = mode;\n\n        const baseIngestData = this._getIngestProviderData();\n\n        const classNameList = [\n            `cdpTheme-${theme}`,\n            `theme-${theme}`,\n            'DocumentPickerRoot',\n            isPanel ? 'DocumentPickerPanel' : 'DocumentPicker',\n            isWebDialog && 'DocumentPickerWebDialog',\n            'cdo-CoreVariables',\n        ].filter((className) => Boolean(className));\n\n        return (\n            <div ref={this._rootRef} className={classNameList.join(' ')}>\n                <ReactSpectrumProvider theme={theme} productId={this.hostProductData.productId}>\n                    <CDOProvider\n                        analyticsData={baseIngestData}\n                        imsData={this._imsData}\n                        hostProductData={this.hostProductData}\n                        callbacks={this._callbacks}\n                        mode={cdoMode as unknown as ModeType}\n                        documentFilterOverride={documentFilterOverride}\n                        /**\n                         * TODO: isolate better. PickerView is picking up CDOProvider's IntlWrapper (& intlStore) instead of being able to use UAP's own.\n                         * This `messages` prop is an old workaround to get the right messages to PickerView by overriding CDOProvider's intl messages\n                         */\n                        messages={intlStore.intl.messages}\n                    >\n                        <PickerViewLoader elements={elements} mode={mode}>\n                            {/**\n                             * Overwrite dispatchEvent in host config because by default,\n                             * dispatchEvent from HostConfigMixin will dispatch events from the web\n                             * component itself, so in this case it would be dispatched from\n                             * cc-document-picker. However because UAP handles navigation itself\n                             * rather than relying on the host for navigation, it needs to listen to\n                             * those events itself. So we are providing an implementation of\n                             * dispatchEvent that will dispatch from an element that this component\n                             * controls and can listen to events on.\n                             */}\n                            <HostConfigOverrides dispatchEvent={this.dispatchEvent}>\n                                <PickerView\n                                    rootRef={this._rootRef}\n                                    // Cause React to re-mount PickerView each time CDP is opened\n                                    ref={this._pickerViewRef}\n                                    key={openedSessionGuid}\n                                    hostProductData={this.hostProductData}\n                                    saveAsName={name}\n                                    theme={theme}\n                                    // If feature flag is enabled, show the interstitial unless explicitly told not to\n                                    showInterstitial={\n                                        enableCDPOnboarding && showInterstitial !== false\n                                    }\n                                    mode={mode}\n                                    cdpTabs={cdpTabs}\n                                    hideYourComputerButton={hideYourComputerButton}\n                                    windowController={windowController}\n                                    disableCancelButton={disableCancelButton}\n                                    outputFileFormatChoices={outputFileFormatChoices}\n                                    hideLinkCheckbox={hideLinkCheckbox}\n                                    // For demo app only, shows the Deleted tab\n                                    deletedTab={useCDPDeletedTab}\n                                    imsData={this._imsData}\n                                    disableCloudDocumentsTab={disableCloudDocumentsTab}\n                                    disableSharedWithYouTab={disableSharedWithYouTab}\n                                    enablePlaceEmbedWarningToast={enablePlaceEmbedWarningToast}\n                                    enableProjectsTab={enableProjectsTab}\n                                    enableGenerationHistoryTab={enableGenerationHistoryTab}\n                                    enableMobileView={enableMobileView}\n                                    enableRecentsTab={enableRecentsTab}\n                                    enablePlaceLinkWarningToast={enablePlaceLinkWarningToast}\n                                    addExternalCancelListener={addExternalCancelListener}\n                                    removeExternalCancelListener={removeExternalCancelListener}\n                                    getConfirmationDialog={getConfirmationDialog}\n                                    isViewEnabled={isViewEnabled}\n                                    shouldRenderItemAsDisabled={shouldRenderItemAsDisabled}\n                                    navigationDetail={this.state.navigationDetail}\n                                    selectionBehavior={this.getSelectionBehavior(cdoMode)}\n                                    isMobile={isMobile}\n                                    compatibleTypes={compatibleTypes}\n                                />\n                            </HostConfigOverrides>\n                        </PickerViewLoader>\n                    </CDOProvider>\n                </ReactSpectrumProvider>\n            </div>\n        );\n    }\n}\n\nexport default injectIntl(DocumentPicker, { forwardRef: true });\nexport { DocumentPicker as DocumentPickerForTests };\nexport type { IDocumentPickerProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport { configure } from 'mobx';\n\nimport type { IHostProductData, IIMSData, ISelectionUXConfig } from '@ccx/ccx-cdo';\nimport { Themes } from '@ccx/ccx-cdo';\nimport type { ShowModalFn } from '@csc/common';\nimport type IUAPCallbacks from './interfaces/IUAPCallbacks';\nimport { IntlWrapper } from './components/IntlWrapper';\nimport DocumentPicker from './components/DocumentPicker';\nimport type IPickerInfo from './interfaces/IPickerInfo';\nimport type IPickerActionState from './interfaces/IPickerActionState';\nimport type IUAPHost from './interfaces/IUAPHost';\n\n// The following line allows mobx to function properly when multiple\n// versions may be loaded on the page (such as in shared components).\nconfigure({ isolateGlobalState: true });\n\nimport './UAP.css';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/dist/src/types/BackedCollectionItem';\nimport type { SAM } from '@ccx-public/component-types';\nimport type ComponentLoaderInitOptions from '@csc/common/@types/ComponentLoaderInitOptions';\n\ninterface IUAPProps {\n    elements?: BackedCollectionItem<SAM.AdobeAsset>;\n    pickerInfo: IPickerInfo;\n    /**\n     * external close callback function\n     */\n    closeDialog?: () => void;\n    openedSessionGuid: string;\n    /** @deprecated\n     * will eventually be removed in favor of a flat list of props dervied from UAB host config\n     */\n    cdoHostProductData?: IHostProductData;\n    callbacks?: IUAPCallbacks;\n    cdoIMSData?: IIMSData;\n    changeEventDispatcher?: IUAPHost;\n    theme?: string;\n    uxpHost?: any;\n    showModal?: ShowModalFn;\n    executePickerAction?: (action: IPickerActionState, windowController: any) => void;\n    openDocuments?: (docInfoArray: any[]) => void;\n    placeDocuments?: (docInfoArray: any[]) => void;\n    addExternalCancelListener?: (callback: () => void) => void;\n    removeExternalCancelListener?: (callback: () => void) => void;\n    selectionUXConfig?: ISelectionUXConfig;\n    /**\n     * The following props are a flat list of props that will eventually replace cdoHostProductData\n     */\n    apiKey?: ComponentLoaderInitOptions['apiKey'];\n    appId?: ComponentLoaderInitOptions['appId'];\n    appName?: ComponentLoaderInitOptions['appName'];\n    appVersion?: ComponentLoaderInitOptions['appVersion'];\n    analytics?: ComponentLoaderInitOptions['analytics'];\n    compatibleTypes?: string[];\n    /** Replacement for cdoHostProductData.documentExclusionFilter */\n    excludeMediaTypes?: string[];\n    locale?: ComponentLoaderInitOptions['locale'];\n    /** Replacement for cdoHostProductData.documentFilter */\n    mediaTypes?: string[];\n    productId?: ComponentLoaderInitOptions['productId'];\n\n    /**\n     * Flag to indicate if the UAP should render in mobile mode\n     */\n    isMobile?: boolean;\n}\n\ninterface IUAPState {\n    defaultUiLocale: string;\n    environment: string;\n}\n\n/**\n * Main Universal Asset Picker component.\n */\nclass UAP extends React.Component<IUAPProps, IUAPState> {\n    private _documentPickerRef: React.RefObject<typeof DocumentPicker>;\n\n    constructor(props: IUAPProps) {\n        super(props);\n        this._documentPickerRef = React.createRef();\n    }\n\n    /**\n     * Catch component errors.\n     * @see https://fb.me/react-error-boundaries\n     *\n     * @param {Object} error    error container object\n     * @param {Object} info     container with extended info (including call stack `componentStack`)\n     * @return {undefined}\n     */\n    componentDidCatch(error: Error, info: React.ErrorInfo) {\n        // Display fallback UI\n        console.error('UAP.CatchError: ', error);\n        console.error('UAP.CatchInfo: ', info);\n    }\n\n    /**\n     * Component renderer.\n     * @return {ReactElement} markup\n     */\n    render() {\n        const {\n            closeDialog,\n            elements,\n            openedSessionGuid,\n            pickerInfo,\n            addExternalCancelListener,\n            removeExternalCancelListener,\n            executePickerAction,\n            placeDocuments,\n            openDocuments,\n            showModal,\n            // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Use the props dervied from UAB host confi\n            cdoHostProductData,\n            callbacks,\n            cdoIMSData,\n            changeEventDispatcher,\n            theme: themeStr,\n            mediaTypes,\n            excludeMediaTypes,\n            compatibleTypes,\n            apiKey,\n            appName,\n            appVersion,\n            analytics,\n            locale,\n            productId,\n            isMobile,\n        } = this.props;\n        const theme = themeStr ? Themes[themeStr] : Themes.light;\n        /**\n         * Constructed cdoHostProductData derived from UAB init options\n         */\n        const constructedCdoHostProductData = {\n            apiKey,\n            clientId: apiKey,\n            dcxId: apiKey ?? '',\n            documentFilter: mediaTypes ?? [],\n            documentExclusionFilter: excludeMediaTypes,\n            platform: analytics?.os ?? '',\n            platformVersion: analytics?.osVersion ?? '',\n            productLocation: '',\n            productName: appName,\n            productVersion: appVersion,\n            productId: productId,\n            uiLocale: locale,\n        };\n\n        return (\n            <IntlWrapper>\n                <DocumentPicker\n                    ref={this._documentPickerRef}\n                    elements={elements}\n                    openedSessionGuid={openedSessionGuid}\n                    pickerInfo={pickerInfo}\n                    theme={theme}\n                    addExternalCancelListener={addExternalCancelListener}\n                    removeExternalCancelListener={removeExternalCancelListener}\n                    executePickerAction={executePickerAction}\n                    placeDocuments={placeDocuments}\n                    openDocuments={openDocuments}\n                    closeDialog={closeDialog}\n                    cdoHostProductData={cdoHostProductData ?? constructedCdoHostProductData}\n                    callbacks={callbacks}\n                    cdoIMSData={cdoIMSData}\n                    key={pickerInfo.mode}\n                    showModal={showModal}\n                    changeEventDispatcher={changeEventDispatcher}\n                    isMobile={isMobile}\n                    compatibleTypes={compatibleTypes}\n                />\n            </IntlWrapper>\n        );\n    }\n}\n\nexport default UAP;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { version as CDO } from '@ccx/ccx-cdo';\nimport UAB from './version';\nimport { version as UAP } from '@ccx/ccx-document-picker';\n\nexport default {\n    CDO,\n    UAB,\n    UAP,\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { Component } from 'react';\nimport { observer } from 'mobx-react';\nimport type { SAM } from '@ccx-public/component-types';\nimport type { IHostProductData, IAnalyticsData, IIMSData, ICallbacks, Themes } from '@ccx/ccx-cdo';\nimport {\n    CloudDocuments,\n    SharedWithYou,\n    Deleted,\n    getExistingCDCGlobalStore,\n    Recents,\n    ThinCDOProvider,\n} from '@ccx/ccx-cdo';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { EventType, Workflow } from '@csc/collection-view';\nimport type ComponentLoaderInitOptions from '@csc/common/@types/ComponentLoaderInitOptions';\n\ninterface viewProps {\n    routeId?: string;\n    routeToParent?: boolean;\n}\n\ntype Props = React.PropsWithChildren<{\n    sharedConfig: ComponentLoaderInitOptions;\n    hostProductData: IHostProductData;\n    imsData: IIMSData;\n    currentView?: AssetBrowser.ContentViewType;\n    contentViewProps?: viewProps;\n    analyticsData?: IAnalyticsData;\n    callbacks?: ICallbacks;\n    messages?: { [id: string]: string };\n    theme?: Themes;\n    disableNativeControls?: boolean;\n    __assetContext_forTestingOnly?: SAM.AssetContext;\n}>;\n\n@observer\nexport default class CDOReactComponent extends Component<Props> {\n    private renderCDOContentView() {\n        const currentView = this.props.currentView!;\n        const isCloudDocuments: AssetBrowser.ContentViewType | 'your-files' =\n            currentView === AssetBrowser.ContentViewType.CloudDocuments\n                ? 'your-files'\n                : currentView;\n        if (isCloudDocuments) {\n            getExistingCDCGlobalStore()?.cdoMetrics.fireEvent({\n                event: {\n                    subcategory: 'Files',\n                    type: EventType.Click,\n                    subtype: isCloudDocuments,\n                    workflow: Workflow.Navigation,\n                },\n            });\n        }\n        switch (currentView) {\n            case AssetBrowser.ContentViewType.SharedWithYou:\n                return <SharedWithYou {...this.props.contentViewProps} />;\n            case AssetBrowser.ContentViewType.Deleted:\n                return <Deleted {...this.props.contentViewProps} />;\n            case AssetBrowser.ContentViewType.CloudDocuments:\n                return <CloudDocuments {...this.props.contentViewProps} />;\n            case AssetBrowser.ContentViewType.Recents:\n                return <Recents {...this.props.contentViewProps} />;\n            default:\n                return null;\n        }\n    }\n\n    render() {\n        return (\n            <div\n                className={`theme-${this.props.theme} cdo-CoreVariables`}\n                style={{ height: '100%', width: '100%' }}\n            >\n                {/**\n                 * Only rendering ThinCDOProvider because FMHS Recents is the only thing using CDOReactComponent\n                 * since the other tabs are in webviews.\n                 * When FMHS enableUABWebView flag is disabled, CDOReactComponent is rendered for all tabs, but\n                 * that comes from old UAB v2.\n                 */}\n                <ThinCDOProvider\n                    locale={this.props.hostProductData.uiLocale}\n                    theme={this.props.theme}\n                    disableNativeControls={this.props.disableNativeControls}\n                >\n                    {this.renderCDOContentView()}\n                    {this.props.children}\n                </ThinCDOProvider>\n            </div>\n        );\n    }\n}\n","import type { EventEnvelope, IntegrationFn, Profile, Span } from '@sentry/core';\nimport { debug, defineIntegration, getActiveSpan, getRootSpan } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { startProfileForSpan } from './startProfileForSpan';\nimport type { ProfiledEvent } from './utils';\nimport {\n  addProfilesToEnvelope,\n  createProfilingEvent,\n  findProfiledTransactionsFromEnvelope,\n  getActiveProfilesCount,\n  isAutomatedPageLoadSpan,\n  shouldProfileSpan,\n  takeProfileFromGlobalCache,\n} from './utils';\n\nconst INTEGRATION_NAME = 'BrowserProfiling';\n\nconst _browserProfilingIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      const activeSpan = getActiveSpan();\n      const rootSpan = activeSpan && getRootSpan(activeSpan);\n\n      if (rootSpan && isAutomatedPageLoadSpan(rootSpan)) {\n        if (shouldProfileSpan(rootSpan)) {\n          startProfileForSpan(rootSpan);\n        }\n      }\n\n      client.on('spanStart', (span: Span) => {\n        if (span === getRootSpan(span) && shouldProfileSpan(span)) {\n          startProfileForSpan(span);\n        }\n      });\n\n      client.on('beforeEnvelope', (envelope): void => {\n        // if not profiles are in queue, there is nothing to add to the envelope.\n        if (!getActiveProfilesCount()) {\n          return;\n        }\n\n        const profiledTransactionEvents = findProfiledTransactionsFromEnvelope(envelope);\n        if (!profiledTransactionEvents.length) {\n          return;\n        }\n\n        const profilesToAddToEnvelope: Profile[] = [];\n\n        for (const profiledTransaction of profiledTransactionEvents) {\n          const context = profiledTransaction?.contexts;\n          const profile_id = context?.profile?.['profile_id'];\n          const start_timestamp = context?.profile?.['start_timestamp'];\n\n          if (typeof profile_id !== 'string') {\n            DEBUG_BUILD && debug.log('[Profiling] cannot find profile for a span without a profile context');\n            continue;\n          }\n\n          if (!profile_id) {\n            DEBUG_BUILD && debug.log('[Profiling] cannot find profile for a span without a profile context');\n            continue;\n          }\n\n          // Remove the profile from the span context before sending, relay will take care of the rest.\n          if (context?.profile) {\n            delete context.profile;\n          }\n\n          const profile = takeProfileFromGlobalCache(profile_id);\n          if (!profile) {\n            DEBUG_BUILD && debug.log(`[Profiling] Could not retrieve profile for span: ${profile_id}`);\n            continue;\n          }\n\n          const profileEvent = createProfilingEvent(\n            profile_id,\n            start_timestamp as number | undefined,\n            profile,\n            profiledTransaction as ProfiledEvent,\n          );\n          if (profileEvent) {\n            profilesToAddToEnvelope.push(profileEvent);\n          }\n        }\n\n        addProfilesToEnvelope(envelope as EventEnvelope, profilesToAddToEnvelope);\n      });\n    },\n  };\n}) satisfies IntegrationFn;\n\nexport const browserProfilingIntegration = defineIntegration(_browserProfilingIntegration);\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// Sentry.init must be called before anything else\nimport { initSentry } from './utils/sentry';\n\ninitSentry();\n\nimport './utils/matchMediaPolyfill';\nimport {\n    DragSource,\n    GenericFileIcon,\n    LogLevel,\n    AssetSyncStateStore,\n    ModeType,\n    Action,\n    ROOT_FOLDER_PATH,\n    SHARED_WITH_YOU_PATH,\n    ARCHIVE_FOLDER_PATH,\n    CloudSyncStatus,\n    SelectionStore,\n    EventType,\n} from '@ccx/ccx-cdo';\nimport { UAP } from '@ccx/ccx-document-picker';\n\nimport { wrapComponentWithReactDom } from '@csc/common';\n\nimport versions from './componentVersions';\n\nimport type { CCDMainInterface } from './interfaces/ccd';\nimport CDOReactComponent from './components/CDOReactComponent';\n\nconst main: CCDMainInterface = {\n    initialize: async (store, resourcePath) => {\n        store.registerStore('uabContext', {\n            versions,\n            DragSource,\n            ModeType,\n            GenericFileIcon,\n            LogLevel,\n            AssetSyncStateStore,\n            SelectionStore,\n            EventType,\n            Action,\n            ROOT_FOLDER_PATH,\n            SHARED_WITH_YOU_PATH,\n            ARCHIVE_FOLDER_PATH,\n        });\n    },\n    components: [\n        {\n            id: 'cdoReactComponent',\n            type: 'react',\n            getName: () => 'Cloud Document asset organizer',\n            getIcon: () => '....',\n            route: '',\n            main: wrapComponentWithReactDom(CDOReactComponent),\n        },\n        {\n            id: 'cloudSyncStatus',\n            type: 'react',\n            getName: () => 'Cloud Sync Status',\n            getIcon: () => '....',\n            route: '',\n            main: wrapComponentWithReactDom(CloudSyncStatus),\n        },\n        {\n            id: 'uap',\n            type: 'react',\n            getName: () => 'Universal Asset Picker',\n            getIcon: () => '....',\n            route: '',\n            main: wrapComponentWithReactDom(UAP),\n        },\n    ],\n};\n\nimport * as Internal from './internal';\n\nexport { Internal };\n\nexport { AdobeAssetGridItem as GridItem } from '@csc/adobe-assets-view';\nexport { navigateToAssetLocation } from '@csc/adobe-assets-view/dist/src/actions';\nexport { SAMProvider } from '@csc/sam-utils';\nexport { importMessages } from '@csc/adobe-assets-view/dist/src/i18n';\n\nexport const initialize = main.initialize;\nexport const components = main.components;\nexport { versions };\n\nexport {\n    UAP,\n    UXP_MIN_DIALOG_WIDTH,\n    UXP_MIN_DIALOG_HEIGHT,\n    UXP_INITIAL_DIALOG_WIDTH,\n    UXP_INITIAL_DIALOG_HEIGHT,\n    type IUXPModalDialogOptions,\n    PickerMode,\n} from '@ccx/ccx-document-picker';\n\nexport {\n    Themes,\n    type IHostProductData,\n    CardSize,\n    CDOProvider,\n    CDOContentViewType,\n    type ICallbacks,\n    type IIMSData,\n    Utils,\n    Busy,\n    GridView,\n    ListView,\n    ListItem,\n    type IListViewCustomColumn,\n    ViewMode,\n    ModeType,\n    ColumnType,\n    UXSortBy,\n    UXSortDir,\n    I18N,\n    deriveParentPath,\n    type ListViewColumn,\n    DateMetadata,\n    FOLDER_MIMETYPES,\n    ROOT_FOLDER_PATH,\n    normalizePath,\n} from '@ccx/ccx-cdo';\nexport { hasOnlyOne, hasAnyLocalItemsToBeSynced, NavigationEvent } from '@csc/common';\n\nimport type ComponentLoaderInitOptions from '@csc/common/@types/ComponentLoaderInitOptions';\n\nexport { type ComponentLoaderInitOptions };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nexport type OpenLinkEventDetail = {\n    readonly url: string;\n};\n\nexport class OpenLinkEvent extends CustomEvent<OpenLinkEventDetail> {\n    static readonly EVENT_NAME = 'open-link';\n\n    constructor(detail: OpenLinkEventDetail) {\n        super(OpenLinkEvent.EVENT_NAME, {\n            bubbles: true,\n            composed: true,\n            cancelable: true,\n            detail,\n        });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { OpenLinkEvent } from '../events/OpenLinkEvent';\n\ntype Options = {\n    url: string;\n    dispatchEvent: (event: CustomEvent<unknown>) => void;\n};\n\nexport const openLink = ({ url, dispatchEvent }: Options) => {\n    const event = new OpenLinkEvent({\n        url,\n    });\n    dispatchEvent(event);\n\n    // Call window.open if event was not cancelled\n    if (!event.defaultPrevented) {\n        window.open(url);\n    }\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Link from '@ccx-public/spectrum-wrapper/dist/Link';\nimport { useHostConfig } from '@csc/common';\nimport React from 'react';\nimport { openLink } from '../../utils/open-link-event';\n\ntype ExternalLinkProps = {\n    url: string;\n    variant?: string;\n    className?: string;\n    id?: string;\n};\n\n/**\n * Link Component that opens external links\n * in the UXP case, an event is sent for hosts to capture,\n * since window.open isn't available in those environments.\n * otherwise it'll open a window\n * @param children\n * @param url - url of the link to open\n * @param variant - varient of the component - 'secondary | undefined'\n * @param className - styling for the component\n * @param id - id for the component\n * */\nconst ExternalLink = ({\n    children,\n    url,\n    variant,\n    className,\n    id,\n}: React.PropsWithChildren<ExternalLinkProps>) => {\n    const { dispatchEvent } = useHostConfig();\n\n    const handleClick = () => openLink({ url, dispatchEvent });\n\n    const handleKeydown = (ev: React.KeyboardEvent<HTMLSpanElement>) => {\n        if (ev.key === 'Enter') {\n            openLink({ url, dispatchEvent });\n        }\n    };\n\n    return (\n        <span role=\"link\" onKeyDown={handleKeydown} tabIndex={0}>\n            <Link\n                onClick={handleClick}\n                variant={variant}\n                id={id}\n                className={className}\n                target=\"_blank\"\n            >\n                {children}\n            </Link>\n        </span>\n    );\n};\n\nexport default ExternalLink;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport Textfield from '@ccx-public/spectrum-wrapper/dist/Textfield';\nimport { VALIDATION_INVALID_CHARS } from '@csc/collection-view';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport type { NameErrorType } from '@csc/sam-utils';\nimport { isSAMError, useNameValidation } from '@csc/sam-utils';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport HelpText from '@csc/ui/dist/src/HelpText/HelpText';\nimport useEnterKeySubmit from '@csc/ui/dist/src/hooks/useEnterKeySubmit';\nimport { observer } from 'mobx-react';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport styles from './AddFolderDialog.module.css';\n\ntype ValidationError = NameErrorType | 'unknown';\n\nfunction AddFolderDialogErrorMessage(props: { validationError: ValidationError }) {\n    switch (props.validationError) {\n        case 'lengthExceeded':\n            return (\n                <FormattedMessage\n                    id=\"aav.actions.addFolder.dialog.errors.charRestriction\"\n                    defaultMessage=\"Names can't be longer than 200 characters.\"\n                />\n            );\n        case 'duplicate':\n            return (\n                <FormattedMessage\n                    id=\"aav.actions.addFolder.dialog.errors.duplicateName\"\n                    defaultMessage=\"You already have a folder here with this name.\"\n                />\n            );\n        case 'characters':\n            return (\n                <FormattedMessage\n                    id=\"aav.actions.addFolder.dialog.errors.invalidChar\"\n                    defaultMessage=\"Names can't contain the following characters: {characters}\"\n                    values={{ characters: VALIDATION_INVALID_CHARS }}\n                />\n            );\n        case 'endWithDot':\n            return (\n                <FormattedMessage\n                    id=\"aav.actions.addFolder.dialog.errors.invalidEnd\"\n                    defaultMessage='Name cannot end with \".\" or empty space.'\n                />\n            );\n        case 'reservedName':\n            return (\n                <FormattedMessage\n                    id=\"aav.actions.addFolder.dialog.errors.invalidName\"\n                    defaultMessage=\"Sorry, this folder contains invalid character(s).\"\n                />\n            );\n        case 'unknown':\n            return (\n                <FormattedMessage\n                    id=\"aav.actions.addFolder.dialog.errors.unknownError\"\n                    defaultMessage=\"Unknown error, please try again.\"\n                />\n            );\n        default:\n            return null;\n    }\n}\n\nexport default observer(function AddFolderDialog(props: {\n    asset: Pick<SAM.AdobeAsset, 'createFolder'>;\n    closeModal: HostConfig['closeModal'];\n    /**\n     * Only added for Storybook to showcase individual validation states.\n     */\n    initialValue?: string;\n}) {\n    const { asset, closeModal, initialValue } = props;\n    const intl = useIntl();\n    const [name, setName] = useState<string>(initialValue || '');\n    const { error: nameValidationError, onNameChange } = useNameValidation('file');\n    const [samValidationError, setSamValidationError] = useState<ValidationError>();\n    const [isLoading, setIsLoading] = useState(false);\n    const validationError = nameValidationError || samValidationError;\n    const nameIsEmpty = useMemo(() => name.trim() === '', [name]);\n    const confirmDisabled = nameIsEmpty || Boolean(nameValidationError) || isLoading;\n\n    const handleSubmit = useCallback(async () => {\n        if (nameValidationError) {\n            return;\n        }\n\n        setIsLoading(true);\n        try {\n            await asset.createFolder(name);\n            closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n        } catch (err) {\n            if (isSAMError(err) && err.code === SAM.SAMErrorCode.CONFLICT) {\n                setSamValidationError('duplicate');\n            } else {\n                setSamValidationError('unknown');\n            }\n        } finally {\n            setIsLoading(false);\n        }\n    }, [asset, closeModal, name, nameValidationError]);\n\n    const { onKeyDown } = useEnterKeySubmit({ submitDisabled: confirmDisabled, handleSubmit });\n\n    return (\n        <DialogContent\n            cancelLabel={intl.formatMessage({\n                id: 'aav.actions.addFolder.dialog.cancelButton',\n                defaultMessage: 'Cancel',\n            })}\n            confirmDisabled={confirmDisabled}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.actions.addFolder.dialog.confirmButton',\n                defaultMessage: 'Save',\n            })}\n            onCancel={() => closeModal({ type: AssetBrowser.ShowModalResultType.Cancel })}\n            onConfirm={handleSubmit}\n            size=\"m\"\n            title={intl.formatMessage({\n                id: 'aav.actions.addFolder.dialog.heading',\n                defaultMessage: 'Create new folder',\n            })}\n        >\n            <Textfield\n                data-testid=\"add-folder-input-textfield\"\n                aria-label={intl.formatMessage({\n                    id: 'aav.actions.addFolder.dialog.inputLabel',\n                    defaultMessage: 'Folder name',\n                })}\n                // eslint-disable-next-line jsx-a11y/no-autofocus -- Legacy use of autoFocus\n                autoFocus\n                className={styles.input}\n                disabled={isLoading}\n                onChange={(name) => {\n                    setName(name);\n                    onNameChange(name);\n                    setSamValidationError(undefined);\n                }}\n                onKeyDown={onKeyDown}\n                placeholder={intl.formatMessage({\n                    id: 'aav.actions.addFolder.dialog.inputPlaceholder',\n                    defaultMessage: 'New folder',\n                })}\n                validationState={validationError ? 'invalid' : undefined}\n                value={name}\n            />\n            <div data-testid=\"error-message\" aria-live=\"assertive\">\n                <HelpText variant=\"negative\">\n                    {validationError && (\n                        <AddFolderDialogErrorMessage validationError={validationError} />\n                    )}\n                </HelpText>\n            </div>\n        </DialogContent>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\n\nimport { hasAny, hasMultiple, hasOnlyOne, CLOUD_ONLY_MIMETYPES } from '@csc/common';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\n\n/**\n * Set of utilities to determine if a collection of elements can all be made available offline.\n */\n\nexport function needsSyncErrorResolution(\n    elements: BackedCollectionItem<SAM.AdobeAsset>[],\n): boolean {\n    return elements.some(\n        (el) =>\n            (el.backingItem.syncStatus as SAM.AssetSyncStatus) ===\n                SAM.AssetSyncStatus.SyncConflict || el.backingItem.syncSuspensionReason,\n    );\n}\nexport function onlyOneOrMultipleAndNoSyncErrors(\n    elements: BackedCollectionItem<SAM.AdobeAsset>[] = [],\n): boolean {\n    return hasOnlyOne(elements) || (hasMultiple(elements) && !needsSyncErrorResolution(elements));\n}\nexport function hasOnlyUserPinnedItems(elements: BackedCollectionItem<SAM.AdobeAsset>[]): boolean {\n    return hasAny(elements) && elements.every((el) => el.backingItem.isUserPinned);\n}\nexport function hasOnlyComposites(elements: BackedCollectionItem<SAM.AdobeAsset>[]): boolean {\n    return hasAny(elements) && elements.every((el) => el.backingItem.isComposite);\n}\nexport function hasAnyCloudOnlyAssets(elements: BackedCollectionItem<SAM.AdobeAsset>[]): boolean {\n    return elements.some((el) => CLOUD_ONLY_MIMETYPES.includes(el.type ?? ''));\n}\n\nexport function canMakeAvailableOffline(\n    elements: BackedCollectionItem<SAM.AdobeAsset>[] = [],\n): boolean {\n    const canMakeAvailableOffline =\n        onlyOneOrMultipleAndNoSyncErrors(elements) &&\n        !hasOnlyUserPinnedItems(elements) &&\n        hasOnlyComposites(elements) &&\n        !hasAnyCloudOnlyAssets(elements);\n    return canMakeAvailableOffline;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport { MIMETYPES, PickerMode, type LaunchUAPType } from '@csc/common';\nimport type { AAVActionArgs } from './utils';\nimport { ActionAnalyticsValue } from '../stores/AAVOperationStore';\nimport type { AAVOperationStore, IOpMetricLogger } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { Action, EventType } from '@csc/collection-view';\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { SAM } from '@ccx-public/component-types';\nimport { onlyOneOrMultipleAndNoSyncErrors } from '../utils/available-offline';\nimport AAVMetrics from '../utils/metrics/aav-metrics';\nimport IconBoards from '../svgs/IconBoards';\n\nexport interface IAddToBoardActionArgs extends AAVActionArgs {\n    featureFlags?: Record<string, boolean | string>;\n    launchUAP: LaunchUAPType;\n    metricLogger?: IOpMetricLogger;\n    showToast: AssetBrowser.ShowToastFn;\n}\n\nexport const SUPPORTED_MEDIA_TYPES = [\n    MIMETYPES.FIREFLY_GENERATION_IMAGE,\n    // TODO: Enable this once we have support for vector assets\n    // MIMETYPES.FIREFLY_GENERATION_VECTOR,\n    MIMETYPES.PS_CLOUD_DOCUMENT,\n    MIMETYPES.PS_CLOUD_DOCUMENT_DEP,\n    MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT,\n    'image/jpeg',\n    'image/png',\n    'image/svg+xml',\n];\n\nconst areAllSupportedByBoard = (elements: BackedCollectionItem<SAM.AdobeAsset>[]) => {\n    return elements.every((element) =>\n        SUPPORTED_MEDIA_TYPES.includes(element.backingItem.mediaType),\n    );\n};\n\nconst canAddToBoard = (elements: BackedCollectionItem<SAM.AdobeAsset>[]) =>\n    onlyOneOrMultipleAndNoSyncErrors(elements) && areAllSupportedByBoard(elements);\n\nexport function createAddToBoardAction(\n    args: IAddToBoardActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    const {\n        featureFlags,\n        intl,\n        launchUAP = () =>\n            Promise.reject(new Error('[cdo] add to board action requires a launchUAP')),\n        metricLogger,\n        showToast,\n    } = args;\n\n    return new Action({\n        value: ActionAnalyticsValue.AddToBoard,\n        label: intl.formatMessage({\n            id: 'aav.actions.addToBoard.label',\n            defaultMessage: 'Add to Board',\n        }),\n        icon: <IconBoards />,\n        groupName: 'group2',\n        resetSelection: false,\n        isVisible: (elements) => !!elements?.length && canAddToBoard(elements),\n        execute: async (\n            _operationStore: AAVOperationStore,\n            elements: BackedCollectionItem<SAM.AdobeAsset>[],\n            _correlationId = '',\n        ) => {\n            try {\n                await launchUAP({\n                    mediaTypes: [MIMETYPES.AURA],\n                    elements,\n                    featureFlags,\n                    mode: PickerMode.add,\n                });\n\n                // TODO: Adding to board will be handled in GLOW-1400 and GLOW-1401\n                //       after board view (GLOW-1398) is implemented.\n            } catch (err) {\n                const dtsStart = new Date(Date.now());\n                const error = err as Error;\n                void metricLogger?.({\n                    correlationId: AAVMetrics.createCorrelationId(),\n                    element: elements[0],\n                    eventType: EventType.Error,\n                    errorCode: SAM.SAMErrorCode[(error as SAM.SAMError).code],\n                    errorDesc: error.message,\n                    dtsStart,\n                    ...error,\n                });\n                showToast({\n                    content: intl.formatMessage({\n                        id: 'aav.actions.addToBoard.uap.toast.postLoadFailed',\n                        defaultMessage: 'An error occurred selecting an asset to add to board',\n                    }),\n                    variant: 'negative',\n                });\n            }\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport IconCopy from '@ccx-public/spectrum-wrapper/dist/Icon/Copy';\nimport { Action } from '@csc/collection-view';\nimport type { ExternalBaseURLs } from '@csc/common';\nimport { hasOnlyOne } from '@csc/common';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport type { UABSAMCore } from '@csc/sam-utils';\nimport { isCmTrainingSet } from '@csc/sam-utils';\nimport React from 'react';\nimport type { AAVOperationStore, IOpMetricLogger } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { constructAssetLink } from '../utils/asset-link/constructAssetLink';\nimport type { AAVActionArgs } from './utils';\n\n// Function that handles all promises and async/await logic, including operationStore, to satisfy Safari's security model\nconst getLinkBlob = async ({\n    asset,\n    baseUrls,\n    locale,\n    routes,\n    dispatchEvent,\n    sam,\n    operationStore,\n    elements,\n    metricLogger,\n    correlationId,\n}: {\n    asset: SAM.AdobeAsset;\n    baseUrls: ExternalBaseURLs;\n    locale: string;\n    routes?: AssetBrowser.RouteTemplates;\n    dispatchEvent: HostConfig['dispatchEvent'];\n    sam: UABSAMCore;\n    operationStore: AAVOperationStore;\n    elements: BackedCollectionItem<SAM.AdobeAsset>[];\n    metricLogger?: IOpMetricLogger;\n    correlationId: string;\n}) => {\n    const result = await operationStore.assetOp({\n        elements,\n        opName: UXOpName.COPY_LINK,\n        operation: async () => {\n            const link = await constructAssetLink({\n                asset,\n                baseUrls,\n                locale,\n                routeTemplates: routes,\n                linkSource: 'copy-link',\n                dispatchEvent,\n                sam,\n            });\n            return new Blob([link], { type: 'text/plain' });\n        },\n        metricLogger,\n        correlationId,\n    });\n\n    if (result.succeededElements.length > 0 && result.succeededElements[0].response) {\n        return result.succeededElements[0].response;\n    } else {\n        // Gets handled as error toast\n        throw new Error('Operation failed');\n    }\n};\n\ninterface ICopyLinkActionArgs extends AAVActionArgs {\n    showToast: HostConfig['showToast'];\n    dispatchEvent: HostConfig['dispatchEvent'];\n    baseUrls: ExternalBaseURLs;\n    routes?: AssetBrowser.RouteTemplates;\n    sam: UABSAMCore;\n}\n\nexport function createCopyLinkAction({\n    dispatchEvent,\n    baseUrls,\n    intl,\n    routes,\n    showToast,\n    metricLogger,\n    sam,\n}: ICopyLinkActionArgs): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.CopyLink,\n        label: intl.formatMessage({\n            id: 'aav.actions.copylink.label',\n            defaultMessage: 'Copy link',\n        }),\n        icon: <IconCopy />,\n        groupName: 'group2',\n        isVisible: (elements) =>\n            !!elements && hasOnlyOne(elements) && !isCmTrainingSet(elements[0].backingItem),\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            const [element] = elements;\n\n            try {\n                // Direct clipboard write to satisfy Safari's security model\n                // WARNING: do NOT await or invoke promises before clipboard.write or else Safari/Webview will throw clipboard permission error\n                await navigator.clipboard.write([\n                    new ClipboardItem({\n                        'text/plain': getLinkBlob({\n                            asset: element.backingItem,\n                            baseUrls,\n                            locale: intl.locale,\n                            routes,\n                            dispatchEvent,\n                            sam,\n                            operationStore,\n                            elements,\n                            metricLogger,\n                            correlationId,\n                        }),\n                    }),\n                ]);\n\n                showToast({\n                    content: intl.formatMessage(\n                        {\n                            id: 'aav.actions.copylink.toast.success',\n                            defaultMessage: 'Link to {name} is copied to clipboard',\n                        },\n                        { name: element.title },\n                    ),\n                    variant: 'positive',\n                });\n            } catch (_e) {\n                showToast({\n                    content: intl.formatMessage(\n                        {\n                            id: 'aav.actions.copylink.toast.failed',\n                            defaultMessage: 'Failed to copy link to {name}',\n                        },\n                        { name: element.title },\n                    ),\n                    variant: 'negative',\n                });\n            }\n        },\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport Progress from '@ccx-public/spectrum-wrapper/dist/Progress';\nimport { observer } from 'mobx-react';\nimport React, { useEffect } from 'react';\nimport type { MessageDescriptor } from 'react-intl';\nimport { useIntl } from 'react-intl';\nimport type { AAVOperationStore } from '../../stores/AAVOperationStore';\nimport { useSafeCloseModal } from '@csc/common';\nimport styles from './styles.module.css';\n\nexport interface IProgressDialogProps {\n    labelMessageDescriptor: MessageDescriptor;\n    operationStore: AAVOperationStore;\n}\n\nconst ProgressDialog = observer(function ProgressDialog({\n    labelMessageDescriptor,\n    operationStore,\n}: IProgressDialogProps) {\n    const { numInProgress, batchSize, assetOpCompleted } = operationStore;\n    const intl = useIntl();\n\n    // useSafeCloseModal instead of closeModal directly\n    // this fixes a race condition where it was possible to attempt to close the modal before the modal's open animation was complete\n    const closeModal = useSafeCloseModal();\n    const label = intl.formatMessage(labelMessageDescriptor, { numInProgress, batchSize });\n    useEffect(() => {\n        if (assetOpCompleted) {\n            closeModal({ type: AssetBrowser.ShowModalResultType.Close });\n        }\n    }, [assetOpCompleted, closeModal]);\n\n    const progressPercent = Math.round((numInProgress / batchSize) * 100);\n    // SWC bug: https://github.com/adobe/spectrum-web-components/issues/4706\n    // Animations appear to not work in web views\n    // - indeterminate shows up blank in UXP but animates in AAV web view\n    // - progress jumps from one value to another\n    // Additionally, indeterminate must be undefined in order to use value prop\n    // Both boolean values true and false display indeterminate\n    const indeterminate = batchSize === 1 ? true : undefined;\n    return (\n        // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- Investigate tabIndex use\n        <div className={styles.dialogRoot} tabIndex={0}>\n            <Progress\n                label={label}\n                value={progressPercent}\n                indeterminate={indeterminate}\n                labelPosition=\"top\"\n                tabIndex={-1}\n                data-testid=\"progress-dialog\"\n            />\n        </div>\n    );\n});\n\nexport default ProgressDialog;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { SAM } from '@ccx-public/component-types';\nimport Delete from '@ccx-public/spectrum-wrapper/dist/Icon/Delete';\nimport { Action } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport { onlyOneOrMultipleAndNoSyncErrors } from '../utils/available-offline';\nimport { isCmTrainingSet } from '@csc/sam-utils';\nimport React from 'react';\nimport type { IntlShape, MessageDescriptor } from 'react-intl';\nimport { defineMessage } from 'react-intl';\nimport ProgressDialog from '../components/ProgressDialog';\nimport type { AAVOperationStore, IOpMetricLogger } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport type { AAVActionArgs } from './utils';\n\ninterface UndoDiscardArgs {\n    elements: BackedCollectionItem<SAM.AdobeAsset>[];\n    intl: IntlShape;\n    showToast: AssetBrowser.ShowToastFn;\n    showModal: ShowModalFn;\n    operationStore: AAVOperationStore;\n    metricLogger?: IOpMetricLogger;\n    correlationId?: string;\n}\n\nexport async function undoDiscard(args: UndoDiscardArgs) {\n    const { elements, intl, operationStore, metricLogger, correlationId, showToast } = args;\n    const { showModal } = args;\n    const messageDescriptor: MessageDescriptor = defineMessage({\n        id: 'aav.actions.restore.progress',\n        defaultMessage:\n            'Restoring {batchSize, plural, =1 {1 item} other {{numInProgress} of {batchSize} items}}...',\n    });\n\n    const { failedElements } = await operationStore.assetOp({\n        beforeAll: () => {\n            void showModal(\n                <ProgressDialog\n                    operationStore={operationStore}\n                    labelMessageDescriptor={messageDescriptor}\n                />,\n            );\n        },\n        elements,\n        opName: UXOpName.RESTORE,\n        operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n            ele.backingItem.restore(),\n        metricLogger: metricLogger,\n        correlationId: correlationId || '',\n    });\n    if (failedElements.length > 0) {\n        showToast({\n            content: intl.formatMessage(\n                {\n                    id: 'aav.actions.discard.toast.undoFailed',\n                    defaultMessage:\n                        'Restore failed for {count, plural, one {1 item} other {# items}}.',\n                },\n                { count: failedElements.length },\n            ),\n            variant: 'negative',\n        });\n    } else {\n        showToast({\n            content: intl.formatMessage({\n                id: 'aav.actions.discard.toast.undoSuccess',\n                defaultMessage: 'Undo complete',\n            }),\n            variant: 'positive',\n        });\n    }\n}\n\ninterface DiscardActionArgs extends AAVActionArgs {\n    showModal: ShowModalFn;\n    showToast: AssetBrowser.ShowToastFn;\n    includeUndo?: boolean;\n}\n\nexport function createDiscardAction(\n    args: DiscardActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Discard,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.discard.label',\n            defaultMessage: 'Delete',\n        }),\n        icon: <Delete />,\n        groupName: 'group3',\n        isVisible: (elements) => {\n            const hasPermission = (elements || []).every((element) =>\n                element.backingItem?.isLibrary && !isCmTrainingSet(element.backingItem)\n                    ? element.backingItem?.hasPermission(SAM.Permission.Discard) &&\n                      !(element.backingItem as SAM.Library).isEditingRestricted\n                    : element.backingItem?.hasPermission(SAM.Permission.Discard),\n            );\n\n            return onlyOneOrMultipleAndNoSyncErrors(elements) && hasPermission;\n        },\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            const { showModal, onBefore } = args;\n\n            // Exclude assets that cannot be discarded, such as currently open assets\n            const filteredElements = (await onBefore?.(elements)) ?? elements;\n            if (!filteredElements.length) {\n                return;\n            }\n\n            const messageDescriptor: MessageDescriptor = defineMessage({\n                id: 'aav.actions.discard.progress',\n                defaultMessage:\n                    'Discarding {batchSize, plural, =1 {1 item} other {{numInProgress} of {batchSize} items}}...',\n            });\n\n            const { failedElements, succeededElements } = await operationStore.assetOp({\n                beforeAll: () => {\n                    void showModal(\n                        <ProgressDialog\n                            operationStore={operationStore}\n                            labelMessageDescriptor={messageDescriptor}\n                        />,\n                    );\n                },\n                elements: filteredElements,\n                opName: UXOpName.DISCARD,\n                operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n                    ele.backingItem.discard(),\n                metricLogger: args.metricLogger,\n                correlationId,\n            });\n\n            if (failedElements.length > 0) {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.discard.toast.failed',\n                            defaultMessage:\n                                'Failed to delete {count, plural, one {1 item} other {# items}}.',\n                        },\n                        { count: failedElements.length },\n                    ),\n                    variant: 'negative',\n                });\n            } else {\n                const actionCallback = {\n                    label: args.intl.formatMessage({\n                        id: 'aav.actions.discard.toast.undo',\n                        defaultMessage: 'Undo',\n                    }),\n                    callback: () => {\n                        void undoDiscard({\n                            elements,\n                            intl: args.intl,\n                            operationStore,\n                            showToast: args.showToast,\n                            showModal: args.showModal,\n                            metricLogger: args.undoMetricLogger,\n                        });\n                    },\n                };\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.discard.toast.success',\n                            defaultMessage: '{count, plural, one {Item} other {# items}} deleted.',\n                        },\n                        { count: elements.length },\n                    ),\n                    variant: 'positive',\n                    actionCallback: args.includeUndo ? actionCallback : undefined,\n                });\n            }\n\n            void args.onAfter?.(succeededElements.map((e) => e.element));\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { SAM } from '@ccx-public/component-types';\nimport Duplicate from '@ccx-public/spectrum-wrapper/dist/Icon/Duplicate';\nimport { Action } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport { hasAnyLegacyExpress } from '@csc/common';\nimport { onlyOneOrMultipleAndNoSyncErrors } from '../utils/available-offline';\nimport { isCmTrainingSet, isQuotaError } from '@csc/sam-utils';\nimport React from 'react';\nimport type { MessageDescriptor } from 'react-intl';\nimport { defineMessage } from 'react-intl';\nimport ProgressDialog from '../components/ProgressDialog';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport type { AAVActionArgs } from './utils';\n\ninterface IDuplicateActionArgs extends AAVActionArgs {\n    showModal: ShowModalFn;\n    showToast: AssetBrowser.ShowToastFn;\n    hostAssetContext: SAM.AssetContext;\n}\n\nexport function createDuplicateAction(\n    args: IDuplicateActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Duplicate,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.duplicate.label',\n            defaultMessage: 'Duplicate',\n        }),\n        icon: <Duplicate />,\n        groupName: 'group2',\n        isVisible: args.isVisible\n            ? (elements) => Boolean(args.isVisible?.(elements))\n            : (elements) =>\n                  // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Use new function\n                  !hasAnyLegacyExpress(elements) &&\n                  onlyOneOrMultipleAndNoSyncErrors(elements) &&\n                  !!elements &&\n                  elements.every(\n                      (ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n                          !isCmTrainingSet(ele.backingItem) &&\n                          ele.backingItem.hasPermission(SAM.Permission.Duplicate),\n                  ),\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            const { showModal, hostAssetContext, onBefore } = args;\n\n            const filteredElements = (await onBefore?.(elements)) ?? elements;\n            if (!filteredElements.length) {\n                return;\n            }\n\n            const messageDescriptor: MessageDescriptor = defineMessage({\n                id: 'aav.actions.duplicate.progress',\n                defaultMessage:\n                    'Duplicating {batchSize, plural, =1 {1 item} other {{numInProgress} of {batchSize} items}}...',\n            });\n\n            const { failedElements, succeededElements } = await operationStore.assetOp({\n                beforeAll: () => {\n                    void showModal(\n                        <ProgressDialog\n                            operationStore={operationStore}\n                            labelMessageDescriptor={messageDescriptor}\n                        />,\n                    );\n                },\n                elements: filteredElements,\n                opName: UXOpName.DUPLICATE,\n                operation: async (\n                    _correlationId: string,\n                    ele: BackedCollectionItem<SAM.AdobeAsset>,\n                ) => {\n                    if (ele.backingItem.isLibrary && ele.backingItem.isChildOfProject) {\n                        //  check if library has parentId then set the destination folder to be of parent, with restricEdit always false.\n                        const destinationFolder = ele.backingItem.parentProjectID\n                            ? await hostAssetContext?.getAssetWithCloudID(\n                                  ele.backingItem.parentProjectID,\n                              )\n                            : undefined;\n                        await (ele.backingItem as SAM.Library).copyLibrary(\n                            destinationFolder,\n                            undefined,\n                            false,\n                        );\n                    } else {\n                        await ele.backingItem.duplicate(undefined);\n                    }\n                },\n                metricLogger: args.metricLogger,\n                correlationId,\n            });\n\n            if (failedElements.length > 0) {\n                const errorMessage = isQuotaError(failedElements)\n                    ? args.intl.formatMessage({\n                          id: 'aav.actions.duplicate.toast.failed.quota',\n                          defaultMessage:\n                              'You have reached your storage limit. Upgrade to continue syncing your work.',\n                      })\n                    : args.intl.formatMessage({\n                          id: 'aav.actions.duplicate.toast.failed',\n                          defaultMessage: 'Failed to duplicate',\n                      });\n\n                args.showToast({\n                    content: errorMessage,\n                    variant: 'negative',\n                });\n            } else {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.duplicate.toast.success',\n                            defaultMessage:\n                                '{count,plural,one{Item duplicated.} other{# items duplicated.}}',\n                        },\n                        { count: elements.length - failedElements.length },\n                    ),\n                    variant: 'positive',\n                });\n            }\n\n            void args.onAfter?.(succeededElements.map((e) => e.element));\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\n\nexport type ExportEventDetail = {\n    assets: SAM.AdobeAsset[];\n};\n\nexport class ExportEvent extends CustomEvent<ExportEventDetail> {\n    static readonly EVENT_NAME = 'export';\n\n    constructor(detail: ExportEventDetail) {\n        super(ExportEvent.EVENT_NAME, { bubbles: true, cancelable: true, composed: true, detail });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { MIMETYPES, hasAny } from '@csc/common';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\n\n// returns a list of supported mimetypes for conversion\nexport const SUPPORTED_CONVERSIONS = [\n    MIMETYPES.PS_CLOUD_DOCUMENT_DEP,\n    MIMETYPES.XD_CLOUD_DOCUMENT,\n    MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT,\n    MIMETYPES.INDESIGN_CLOUD_DOCUMENT,\n];\n\n// determines whether all elements can be exported\nexport function hasAllExportables(elements: BackedCollectionItem<SAM.AdobeAsset>[]) {\n    return elements.every((e) => isExportAvailable(e.type ?? ''));\n}\n\n// takes a mimetype and returns boolean indicating\n// whether export action is available or not\nexport function isExportAvailable(mimeType: string): boolean {\n    // In CloudDocs, we only support export for PSDC/XDC/AIC\n    if (mimeType?.endsWith('+dcx') && !SUPPORTED_CONVERSIONS.includes(mimeType)) {\n        return false;\n    }\n    return true;\n}\n\nexport function hasAnyLocalItemsToBeSynced(\n    elements: BackedCollectionItem<SAM.AdobeAsset>[] = [],\n): boolean {\n    return hasAny(elements) && elements.some((el) => !el.backingItem.cloudID);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\n\nexport interface AnalyticsEventPayload {\n    type: string;\n    action: string;\n    assetData: {\n        element: BackedCollectionItem<SAM.AdobeAsset>;\n        response?: void | undefined;\n        error?: Error;\n    }[];\n}\n\n/** A custom event for handling analytic event */\nexport class AnalyticsEvent extends CustomEvent<AnalyticsEventPayload> {\n    constructor(detail: AnalyticsEventPayload) {\n        super('action-analytics', { bubbles: true, composed: true, detail });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport DownloadFromCloud from '@ccx-public/spectrum-wrapper/dist/Icon/DownloadFromCloud';\nimport { Action } from '@csc/collection-view';\nimport { hasAnyLegacyExpress, hasAnyBetaExpress, MIMETYPES } from '@csc/common';\nimport { canMakeAvailableOffline } from '../utils/available-offline';\nimport React from 'react';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport type { AAVActionArgs } from './utils';\n\ninterface IMakeAvailableOfflineActionArgs extends AAVActionArgs {\n    showToast: AssetBrowser.ShowToastFn;\n}\n\nconst LIVE_MIMETYPES = [MIMETYPES.PS_LIVE_DOCUMENT, MIMETYPES.INDESIGN_CLOUD_DOCUMENT_LIVE];\n\nexport function createMakeAvailableOfflineAction(\n    args: IMakeAvailableOfflineActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Pin,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.pin.label',\n            // Temporarily use this label instead of \"Make available offline\" until  desktop upgrades to ACPL.next and we can show how many days/hours are left\n            defaultMessage: 'Sync for 7 days',\n        }),\n        icon: <DownloadFromCloud />,\n        groupName: 'group2',\n        isVisible: args.isVisible\n            ? (elements) => Boolean(args.isVisible?.(elements))\n            : (elements) =>\n                  // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Use new function\n                  !hasAnyLegacyExpress(elements) &&\n                  // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Use new function\n                  !hasAnyBetaExpress(elements) &&\n                  canMakeAvailableOffline(elements) &&\n                  // Live Coediting documents shouldn't show this action (INDDL, PSDL)\n                  Boolean(\n                      elements?.some((element) => !LIVE_MIMETYPES.includes(element.type ?? '')),\n                  ) &&\n                  Boolean(elements?.every((el) => el.backingItem.downloadComposite !== undefined)),\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n\n            const { failedElements, succeededElements } = await operationStore.assetOp({\n                elements: filteredElements,\n                opName: UXOpName.USER_PIN,\n                operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n                    // Since make available offline and caching is only available on Desktop applications\n                    // we can safely assume that downloadComposite is defined because of the isVisible check\n                    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- See above\n                    ele.backingItem.downloadComposite!(),\n                metricLogger: args.metricLogger,\n                correlationId,\n            });\n\n            if (failedElements.length > 0) {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.pin.toast.failed',\n                            defaultMessage:\n                                \"{count,plural,one{Can't make available offline.} other{Can't make # items available offline.}}\",\n                        },\n                        { count: failedElements.length },\n                    ),\n                    variant: 'negative',\n                });\n            } else {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.pin.toast.success',\n                            defaultMessage:\n                                '{count,plural,one{Item available offline.} other{# items available offline.}}',\n                        },\n                        { count: elements.length - failedElements.length },\n                    ),\n                    variant: 'positive',\n                });\n            }\n\n            void args.onAfter?.(succeededElements.map((e) => e.element));\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { Env, SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport Open from '@ccx-public/spectrum-wrapper/dist/Icon/OpenIn';\nimport { Action } from '@csc/collection-view';\nimport type { ExternalBaseURLs } from '@csc/common';\nimport { hasMultiple, hasOnlyOne, NavigationEvent } from '@csc/common';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport React from 'react';\nimport { ActionAnalyticsValue } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { hasOnlyNonFolders, isSingleFolder } from '../utils/folders';\nimport AAVMetrics from '../utils/metrics/aav-metrics';\nimport { ClickSource, openAdobeAsset } from '../utils/open-event';\nimport { getLocation } from '../utils/view-item-utils';\nimport type { AAVActionArgs } from './utils';\nimport type { UABSAMCore } from '@csc/sam-utils';\n\ninterface IOpenActionArgs extends AAVActionArgs {\n    baseUrls: ExternalBaseURLs;\n    canOpenMultiple?: boolean;\n    dispatchEvent: HostConfig['dispatchEvent'];\n    environment?: Env;\n    canOpenItems?: (assets: SAM.AdobeAsset[]) => boolean;\n    sam: UABSAMCore;\n}\n\nexport function createOpenAction(\n    args: IOpenActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    const { baseUrls, intl } = args;\n    return new Action({\n        value: ActionAnalyticsValue.Open,\n        label: intl.formatMessage({\n            id: 'aav.actions.open.label',\n            defaultMessage: 'Open',\n        }),\n        icon: <Open />,\n        groupName: 'group1',\n        isVisible: (elements) => {\n            if (isSingleFolder(elements ?? [])) {\n                return true;\n            }\n\n            if (args.canOpenItems && elements) {\n                const assets = elements.map((e) => e.backingItem);\n                const canOpenItems = args.canOpenItems(assets) ?? true;\n                if (!canOpenItems) {\n                    return false;\n                }\n            }\n\n            if (hasMultiple(elements)) {\n                // Note: may need to put `canOpenMultiple` last so that Mobx sees we are observing\n                // `hasOnlyNonFolders` and `hasMultiple`\n                return Boolean(hasOnlyNonFolders(elements ?? []) && args.canOpenMultiple);\n            }\n\n            return true;\n        },\n\n        execute: async (_operationStore, elements) => {\n            const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n\n            if (hasOnlyOne(elements) && elements[0].backingItem.isFolder && args.dispatchEvent) {\n                const folderElement = elements[0];\n                const name: AssetBrowser.ContentViewType = getLocation(\n                    folderElement,\n                ) as AssetBrowser.ContentViewType;\n                switch (name) {\n                    case AssetBrowser.ContentViewType.CloudDocuments:\n                    case AssetBrowser.ContentViewType.SharedWithYou:\n                    case AssetBrowser.ContentViewType.ReviewLinks:\n                    case AssetBrowser.ContentViewType.Recents:\n                        args.dispatchEvent(\n                            new NavigationEvent({\n                                name,\n                                params: {\n                                    assetId: folderElement.id,\n                                },\n                            }),\n                        );\n                        break;\n                    case AssetBrowser.ContentViewType.Project:\n                        args.dispatchEvent(\n                            new NavigationEvent({\n                                name: AssetBrowser.ContentViewType.Project,\n                                params: {\n                                    projectId: folderElement.backingItem.parentProjectID,\n                                    assetId: folderElement.id,\n                                },\n                            }),\n                        );\n                        break;\n                    default:\n                        break;\n                }\n                return;\n            }\n            const dtsStart = new Date(Date.now());\n            const correlationId = AAVMetrics.createCorrelationId();\n            for (const element of filteredElements) {\n                const asset = element.backingItem;\n\n                await openAdobeAsset({\n                    asset,\n                    baseUrls,\n                    dispatchEvent: args.dispatchEvent,\n                    source: ClickSource.Action,\n                    locale: intl.locale,\n                    sam: args.sam,\n                });\n\n                void args.metricLogger?.({\n                    correlationId,\n                    element,\n                    dtsStart,\n                });\n            }\n\n            void args.onAfter?.(filteredElements);\n        },\n        ...args,\n    });\n}\n\nexport type { IOpenActionArgs };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport { Action, RenameAction } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport { hasAnyLegacyExpress, hasOnlyOne } from '@csc/common';\nimport type { Messages } from '@csc/sam-utils';\nimport { isCmTrainingSet } from '@csc/sam-utils';\nimport Rename from '@react/react-spectrum/Icon/Rename';\nimport React from 'react';\nimport RenameDialog from '../components/RenameDialog/RenameDialog';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport type { AAVActionArgs } from './utils';\n\ninterface RenameActionArgs extends AAVActionArgs {\n    messages?: Messages;\n    onCancel?: (element: SAM.AdobeAsset) => void;\n    onClose?: (element: SAM.AdobeAsset) => void;\n    onConfirm?: (element: SAM.AdobeAsset) => void;\n    onConflict?: (element: SAM.AdobeAsset) => void;\n    onError?: (error: Error, element: SAM.AdobeAsset) => void;\n    onSuccess?: (element: SAM.AdobeAsset) => void;\n    showModal: ShowModalFn;\n}\n\nexport function createRenameAction(args: RenameActionArgs) {\n    const { intl, showModal, onConfirm, onConflict, onError } = args;\n\n    return new Action<BackedCollectionItem<SAM.AdobeAsset>>({\n        value: RenameAction.actionValue,\n        label: intl.formatMessage({\n            id: 'aav.actions.rename.label',\n            defaultMessage: 'Rename',\n        }),\n        icon: <Rename />,\n        groupName: 'group2',\n        resetSelection: false,\n        isVisible: (elements) => {\n            const hasPermission = (elements || []).every((element) =>\n                element.backingItem?.isLibrary && !isCmTrainingSet(element.backingItem)\n                    ? element.backingItem?.hasPermission(SAM.Permission.Rename) &&\n                      !(element.backingItem as SAM.Library).isEditingRestricted\n                    : element.backingItem?.hasPermission(SAM.Permission.Rename),\n            );\n            // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Use new function\n            return !hasAnyLegacyExpress(elements) && hasOnlyOne(elements) && hasPermission;\n        },\n        execute: async (_operationStore: AAVOperationStore, [element]) => {\n            // Exclude assets that cannot be renamed, such as currently open assets\n            const filteredElements = (await args.onBefore?.([element])) ?? [element];\n            if (!filteredElements.length) {\n                return;\n            }\n\n            const asset = element.backingItem;\n            const modalOptions: AssetBrowser.ModalOptions = {\n                onCancel: () => args.onCancel?.(asset),\n                onClose: () => args.onClose?.(asset),\n                onSuccess: () => args.onSuccess?.(asset),\n            };\n\n            const { type } = await showModal(\n                <RenameDialog\n                    element={asset}\n                    onConfirm={onConfirm}\n                    onConflict={onConflict}\n                    onError={onError}\n                />,\n                modalOptions,\n            );\n            return type === AssetBrowser.ShowModalResultType.Success;\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { EXPRESS_MIMETYPE, EXPRESS_PAGE_MIMETYPE, MIMETYPES } from '@csc/common';\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\nconst getMimeTypeConfig = ({\n    mimeType,\n    disablepublicaccess,\n}: {\n    mimeType: string;\n    disablepublicaccess?: boolean;\n}): AssetBrowser.IShareSheetConfig => {\n    switch (mimeType) {\n        case MIMETYPES.XD_CLOUD_DOCUMENT:\n            return {\n                disablelinkaccess: true,\n                invitemessagedisabled: false,\n                roles: [{ role: 'EDIT_SHARE', label: 'SHARE' }],\n                emailnotification: {\n                    acceptance: {\n                        viewer: 'cc_collab_invite_v2_viewer',\n                        editor: 'cc_collab_invite_v2_editor',\n                    },\n                    sharing: {\n                        viewer: 'cc_collab_xd_document_invite_notification',\n                        editor: 'cc_collab_xd_document_invite_notification',\n                    },\n                    accessRequest: {\n                        grant: 'cc_collab_clouddoc_request_granted',\n                        reject: 'cc_collab_clouddoc_request_denied',\n                    },\n                },\n            };\n        case MIMETYPES.PS_CLOUD_DOCUMENT:\n        case MIMETYPES.PS_CLOUD_DOCUMENT_DEP:\n        case MIMETYPES.PS_LIVE_DOCUMENT:\n        case MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT:\n            return {\n                showsettingsbutton: true,\n                invitemessagedisabled: false,\n                roles: [{ role: 'EDIT_SHARE', label: 'SHARE' }],\n                emailnotification: {\n                    acceptance: {\n                        viewer: 'cc_collab_invite_v2_viewer',\n                        editor: 'cc_collab_invite_v2_editor',\n                    },\n                    sharing: {\n                        viewer: 'cc_collab_assets_document_invite_notification',\n                        editor: 'cc_collab_assets_document_invite_notification',\n                    },\n                    accessRequest: {\n                        grant: 'cc_collab_clouddoc_request_granted',\n                        reject: 'cc_collab_clouddoc_request_denied',\n                    },\n                },\n            };\n        case MIMETYPES.INDESIGN_CLOUD_DOCUMENT:\n        case MIMETYPES.INDESIGN_CLOUD_DOCUMENT_LIVE:\n            return {\n                showsettingsbutton: false,\n                disablecancomment: true,\n                invitemessagedisabled: false,\n                roles: [{ role: 'EDIT_SHARE', label: 'SHARE' }],\n                emailnotification: {\n                    acceptance: {\n                        viewer: 'cc_collab_invite_v2_viewer',\n                        editor: 'cc_collab_invite_v2_editor',\n                    },\n                    sharing: {\n                        viewer: 'cc_collab_assets_document_invite_notification',\n                        editor: 'cc_collab_assets_document_invite_notification',\n                    },\n                    accessRequest: {\n                        grant: 'cc_collab_clouddoc_request_granted',\n                        reject: 'cc_collab_clouddoc_request_denied',\n                    },\n                },\n            };\n        case MIMETYPES.PDF:\n            return {\n                invitemessagedisabled: false,\n                roles: [],\n                emailnotification: {\n                    acceptance: {\n                        viewer: 'cc_collab_invite_v2_viewer',\n                        editor: 'cc_collab_invite_v2_editor',\n                    },\n                    sharing: {\n                        viewer: 'cc_collab_artifact_invite_notification',\n                        editor: 'cc_collab_artifact_invite_notification',\n                    },\n                    accessRequest: {\n                        grant: 'cc_collab_clouddoc_request_granted',\n                        reject: 'cc_collab_clouddoc_request_denied',\n                    },\n                },\n            };\n        case EXPRESS_MIMETYPE:\n        case EXPRESS_PAGE_MIMETYPE:\n            return {\n                invitemessagedisabled: false,\n                roles: [\n                    {\n                        role: 'EDIT_SHARE',\n                        label: 'EDIT',\n                    },\n                    {\n                        role: 'VIEW_SHARE',\n                        label: 'COMMENT',\n                    },\n                ],\n                emailnotification: {\n                    acceptance: {\n                        viewer: 'cc_collab_express_library_view_invite_notification',\n                        editor: 'cc_collab_express_library_edit_invite_notification',\n                    },\n                    sharing: {\n                        viewer: 'cc_collab_express_document_view_invite_notification',\n                        editor: 'cc_collab_express_document_edit_invite_notification',\n                    },\n                    accessRequest: {\n                        create: 'cc_collab_express_request_access',\n                        grant: 'cc_collab_express_request_granted',\n                        reject: 'cc_collab_express_request_denied',\n                    },\n                },\n            };\n        case MIMETYPES.AURA:\n            return {\n                invitemessagedisabled: false,\n                roles: [\n                    {\n                        role: 'EDIT_SHARE',\n                        label: 'EDIT',\n                    },\n                    {\n                        role: 'VIEW_SHARE',\n                        label: 'COMMENT',\n                    },\n                ],\n                emailnotification: {\n                    sharing: {\n                        viewer: 'cc_collab_concept_document_view_invite_notification',\n                        editor: 'cc_collab_concept_document_edit_invite_notification',\n                    },\n                    accessRequest: {\n                        create: 'cc_collab_concept_request_access',\n                        grant: 'cc_collab_concept_request_granted',\n                        reject: 'cc_collab_concept_request_denied',\n                    },\n                },\n            };\n        case MIMETYPES.XD_DESIGN_SPECS:\n        case MIMETYPES.XD_PROTOTYPE:\n        case MIMETYPES.XD_SHAREDARTIFACT:\n            return {\n                disablelinkaccess: true,\n                invitemessagedisabled: false,\n                roles: [\n                    'VIEW',\n                    {\n                        role: 'VIEW_SHARE',\n                        preselected: true,\n                        label: 'SHARE',\n                    },\n                ],\n                emailnotification: {\n                    sharing: {\n                        viewer: 'cc_collab_xd_prototype_invite_notification',\n                    },\n                    accessRequest: {\n                        grant: 'cc_collab_xd_request_granted',\n                        reject: 'cc_collab_xd_request_denied',\n                    },\n                },\n            };\n        case MIMETYPES.LIBRARIES:\n            return {\n                disablepublicaccess: disablepublicaccess,\n                invitecreateacceptancerequired: true,\n                enablelibraryrestrictiontoggle: true,\n                roles: [\n                    'VIEW',\n                    {\n                        role: 'EDIT_SHARE',\n                        label: 'EDIT',\n                    },\n                ],\n                emailnotification: {\n                    acceptance: {\n                        viewer: 'cc_collab_library_invitation_viewer',\n                        editor: 'cc_collab_library_invitation_editor',\n                    },\n                    sharing: {\n                        viewer: 'cc_collab_library_invitation_viewer',\n                        editor: 'cc_collab_library_invitation_editor',\n                    },\n                },\n            };\n        default:\n            return {} as AssetBrowser.IShareSheetConfig;\n    }\n};\nexport default getMimeTypeConfig;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport {\n    filterBooleanAttributes,\n    useHostConfig,\n    useShareSheetLoader,\n    isTouchDevice,\n    getPlatform,\n    INVITE_API_VERSION,\n} from '@csc/common';\nimport { useProject } from '@csc/sam-utils';\nimport React, { useEffect, useRef } from 'react';\nimport getMimeTypeConfig from './mimeTypeConfig';\nimport styles from './styles.module.css';\n\nexport interface IShareSheetData {\n    id: string;\n    name: string;\n    mimeType: string;\n    assetType?: string;\n    isChildOfProject?: boolean;\n    parentProjectID?: string;\n    // mimeType is not enough to determine if the asset is a review link, or a Team library\n    isReviewLink?: boolean;\n    isTeamLib?: boolean;\n    customTitle?: string;\n    targeturl?: string;\n    notificationlinkurl?: string;\n}\ninterface IShareDialogProps {\n    shareSheetData: IShareSheetData;\n    getHostMimeTypeConfig?: ({\n        mimeType,\n        isReviewLink,\n        isTeamLib,\n    }) => AssetBrowser.IShareSheetConfig | null;\n}\n\nexport const ShareDialog = ({ shareSheetData, getHostMimeTypeConfig }: IShareDialogProps) => {\n    const {\n        assetType,\n        id,\n        name,\n        mimeType,\n        isChildOfProject,\n        isReviewLink,\n        isTeamLib,\n        parentProjectID,\n        targeturl,\n        notificationlinkurl,\n        customTitle,\n    } = shareSheetData;\n    const {\n        environment,\n        appId,\n        clientId,\n        productId,\n        appVersion,\n        locale,\n        userId,\n        imsData,\n        theme,\n        spectrumTheme,\n        disableAnalytics,\n        closeModal,\n        platform,\n        platformOSVersion,\n        shareSheetVersion,\n    } = useHostConfig();\n    const { project } = useProject(parentProjectID || '');\n    const ref = useRef<HTMLDivElement>(null);\n\n    const shareSheetConfig =\n        getHostMimeTypeConfig?.({ mimeType, isReviewLink, isTeamLib }) ??\n        getMimeTypeConfig({ mimeType, disablepublicaccess: !!isTeamLib });\n\n    const isLoaded: boolean = useShareSheetLoader({\n        appId,\n        environment,\n        locale,\n        clientId,\n        productId,\n        userId,\n        userEmail: imsData.email,\n        theme,\n        themeType: spectrumTheme,\n        shareSheetVersion,\n    });\n\n    const booleanArgs = {\n        analyticsenabled: !disableAnalytics,\n        touchMode: isTouchDevice(),\n        enablefacepile: !!isChildOfProject,\n        enablepubliceditor: !!isChildOfProject,\n        // Dynamically spread all boolean properties from the config\n        ...Object.entries(shareSheetConfig).reduce((acc, [key, value]) => {\n            // Only include boolean values\n            if (typeof value === 'boolean') {\n                acc[key] = value;\n            }\n            return acc;\n        }, {}),\n    };\n\n    useEffect(() => {\n        const { current } = ref;\n        if (!isLoaded || !current) {\n            return;\n        }\n\n        const onClose = () => {\n            closeModal({ type: AssetBrowser.ShowModalResultType.Close });\n        };\n\n        current.addEventListener('close', onClose);\n        current['features'] = { groups: true };\n        current['idpClientId'] = clientId;\n        current['analyticsData'] = {\n            event: {\n                category: platform?.toLocaleLowerCase() === 'web' ? 'Web' : 'Desktop',\n                device_guid: imsData.deviceGuid,\n            },\n            source: {\n                client_id: clientId,\n                name: productId,\n                platform: getPlatform(),\n                version: appVersion,\n                os_version: platformOSVersion,\n            },\n            content: {\n                mimeType,\n            },\n        };\n        if (project?.id && project?.name) {\n            current['projectData'] = {\n                assetId: project.id,\n                name: project.name,\n            };\n        }\n\n        return () => {\n            current.removeEventListener('close', onClose);\n        };\n    }, [\n        isLoaded,\n        appVersion,\n        clientId,\n        closeModal,\n        productId,\n        project?.id,\n        project?.name,\n        platform,\n        platformOSVersion,\n        mimeType,\n        imsData?.deviceGuid,\n    ]);\n\n    return (\n        <div\n            className={styles.shareDialog}\n            // Inline height styling is required here for proper Sharesheet rendering\n            style={{\n                height: '480px',\n            }}\n        >\n            {isLoaded && (\n                <cc-share-dialog\n                    ref={ref}\n                    data-testid=\"cc-share-dialog\"\n                    id=\"cc-share-dialog\"\n                    assetid={id}\n                    assetname={name}\n                    assettype={assetType ?? mimeType}\n                    mimetype={mimeType}\n                    targeturl={targeturl}\n                    notificationlinkurl={notificationlinkurl}\n                    openeddialog=\"share\"\n                    emailnotification={JSON.stringify(shareSheetConfig.emailnotification)}\n                    roles={JSON.stringify(shareSheetConfig.roles)}\n                    title={customTitle}\n                    inviteapiversion={INVITE_API_VERSION}\n                    {...filterBooleanAttributes(booleanArgs)}\n                />\n            )}\n        </div>\n    );\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { SAM } from '@ccx-public/component-types';\nimport ShareIcon from '@ccx-public/spectrum-wrapper/dist/Icon/Share';\nimport { Action } from '@csc/collection-view';\nimport type { ShowModalFn, ExternalBaseURLs } from '@csc/common';\nimport {\n    hasAnyLegacyExpress,\n    hasOnlyOne,\n    MIMETYPES,\n    EXPRESS_MIMETYPE,\n    EXPRESS_PAGE_MIMETYPE,\n} from '@csc/common';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport type { UABSAMCore } from '@csc/sam-utils';\nimport { isBrand, isCmTrainingSet, getLibraryType, LibraryPrimaryType } from '@csc/sam-utils';\nimport React from 'react';\nimport type { IntlShape } from 'react-intl';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { constructAssetLink } from '../../utils/asset-link/constructAssetLink';\nimport type { AAVActionArgs } from '../utils';\nimport { ShareDialog } from './ShareDialog';\nimport { ActionAnalyticsValue } from '../../stores/AAVOperationStore';\n\nconst supportedMimeTypes = [\n    MIMETYPES.AURA,\n    MIMETYPES.XD_CLOUD_DOCUMENT,\n    MIMETYPES.XD_DESIGN_SPECS,\n    MIMETYPES.XD_PROTOTYPE,\n    MIMETYPES.XD_SHAREDARTIFACT,\n    MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT,\n    MIMETYPES.INDESIGN_CLOUD_DOCUMENT,\n    MIMETYPES.PS_CLOUD_DOCUMENT,\n    MIMETYPES.PS_CLOUD_DOCUMENT_DEP,\n    MIMETYPES.PS_LIVE_DOCUMENT,\n    MIMETYPES.PDF,\n    MIMETYPES.LIBRARIES,\n    EXPRESS_MIMETYPE,\n    EXPRESS_PAGE_MIMETYPE,\n];\ninterface IShareActionArgs extends AAVActionArgs {\n    showModal: ShowModalFn;\n    dispatchEvent: HostConfig['dispatchEvent'];\n    baseUrls: ExternalBaseURLs;\n    routes?: AssetBrowser.RouteTemplates;\n    getMimeTypeConfig?: ({\n        mimeType,\n        isReviewLink,\n        isTeamLib,\n    }) => AssetBrowser.IShareSheetConfig | null;\n    sam: UABSAMCore;\n}\n\nconst getCustomTitle = (element: BackedCollectionItem<SAM.AdobeAsset>, intl: IntlShape) => {\n    if (isBrand(element.backingItem)) {\n        return intl.formatMessage({\n            id: 'aav.actions.share.title.shareBrand',\n            defaultMessage: 'Share brand',\n        });\n    }\n    if (element.backingItem.isLibrary) {\n        return intl.formatMessage({\n            id: 'aav.actions.share.title.shareLibrary',\n            defaultMessage: 'Share library',\n        });\n    }\n    return undefined;\n};\n\nexport function createShareAction({\n    intl,\n    showModal,\n    dispatchEvent,\n    baseUrls,\n    routes,\n    getMimeTypeConfig,\n    sam,\n    ...args\n}: IShareActionArgs): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Share,\n        label: intl.formatMessage({\n            id: 'aav.actions.share.label',\n            defaultMessage: 'Share',\n        }),\n        icon: <ShareIcon />,\n        groupName: 'group2',\n        resetSelection: false,\n        isVisible: args.isVisible\n            ? (elements) => Boolean(args.isVisible?.(elements))\n            : (elements) => {\n                  const element = elements?.[0];\n                  const asset = element?.backingItem;\n\n                  if (!asset) {\n                      return false;\n                  }\n\n                  if (\n                      asset.isFolder ||\n                      // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Use new function\n                      hasAnyLegacyExpress(elements) ||\n                      !hasOnlyOne(elements) ||\n                      isCmTrainingSet(asset) ||\n                      !asset.hasPermission(SAM.Permission.Share)\n                  ) {\n                      return false;\n                  }\n\n                  return supportedMimeTypes.includes(element.type || asset.mediaType);\n              },\n        execute: async (_, elements) => {\n            const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n            const element = filteredElements?.[0];\n            const asset = element?.backingItem;\n\n            // Force library to load to avoid incomplete library data\n            if (asset.isLibrary) {\n                // TODO: find or create a way to do this through public API\n                // @ts-expect-error - private SAM method\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-call -- private SAM method\n                await (asset as SAM.Library)._waitForLibraryLoad(true);\n            }\n\n            /**\n             * Sharesheet uses notificationlinkurl for email invite link, if provided, and targeturl for copy link\n             * https://git.corp.adobe.com/CCX/ccx-sharing/blob/main/packages/component-react/README.md#resourceviewurl-default-logic\n             *\n             * For libraries shared via sharesheet, the invite has to be accepted via notification panel\n             * hence constructing different copy link and email invite links here\n             */\n            const targeturl = await constructAssetLink({\n                asset,\n                baseUrls,\n                locale: intl.locale,\n                routeTemplates: routes,\n                linkSource: 'copy-link',\n                dispatchEvent,\n                sam,\n            });\n\n            const notificationlinkurl = await constructAssetLink({\n                asset,\n                baseUrls,\n                locale: intl.locale,\n                routeTemplates: routes,\n                linkSource: 'email-invite',\n                dispatchEvent,\n                sam,\n            });\n\n            // Brands messaging requires a specific assetType value. Other assets including standard libraries will fall back to using MIME type in ShareDialog\n            const assetType =\n                asset.isLibrary && getLibraryType(asset as SAM.Library) === LibraryPrimaryType.BRAND\n                    ? 'expressBrand'\n                    : undefined;\n\n            const shareSheetData = {\n                assetType,\n                id: element.id,\n                name: element.title,\n                mimeType: element.type || element.backingItem.mediaType,\n                isChildOfProject: element.backingItem.isChildOfProject,\n                parentProjectID: element.backingItem.parentProjectID,\n                isReviewLink: element.backingItem.isReviewLink,\n                isTeamLib: element.backingItem.storageAssignee.type === 'org',\n                customTitle: getCustomTitle(element, intl),\n                targeturl,\n                notificationlinkurl,\n            };\n            await showModal(\n                <ShareDialog\n                    shareSheetData={shareSheetData}\n                    getHostMimeTypeConfig={getMimeTypeConfig}\n                />,\n            );\n            // shouldn't clear selection even after the Share dialog is closed\n            return false;\n        },\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { useHostConfig } from '@csc/common';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport type { SyntheticEvent } from 'react';\nimport React, { useCallback } from 'react';\nimport type { IntlShape } from 'react-intl';\nimport { FormattedMessage } from 'react-intl';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\n\nexport interface Props {\n    intl: IntlShape;\n    elements: BackedCollectionItem<SAM.AdobeAsset>[];\n}\n\nexport default function LeaveDialog(props: Props) {\n    const { elements, intl } = props;\n    const { closeModal } = useHostConfig();\n    const assetName = elements[0].backingItem.isShared\n        ? 'Shared asset'\n        : elements[0].backingItem.isLibrary\n          ? 'Library'\n          : '';\n\n    const handleCancel = useCallback(() => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Cancel });\n    }, [closeModal]);\n\n    const handleSubmit = useCallback(\n        (_type, event: SyntheticEvent) => {\n            event.preventDefault();\n            event.stopPropagation();\n            closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n        },\n        [closeModal],\n    );\n    return (\n        <DialogContent\n            title={intl.formatMessage({\n                id: 'aav.actions.leave.dialog.header',\n                defaultMessage: 'Saying goodbye?',\n            })}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.actions.leave.dialog.leaveButton',\n                defaultMessage: 'Leave',\n            })}\n            cancelLabel={intl.formatMessage({\n                id: 'aav.actions.leave.dialog.cancelButton',\n                defaultMessage: 'Cancel',\n            })}\n            onConfirm={handleSubmit}\n            onCancel={handleCancel}\n            data-testid=\"leave-dialog\"\n        >\n            <div>\n                <FormattedMessage\n                    id=\"aav.actions.leave.dialog.content\"\n                    defaultMessage=\"You won't be able to undo this if you remove yourself. Contact a member if you want to access this {assetName}.\"\n                    values={{ assetName: assetName }}\n                />\n            </div>\n        </DialogContent>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport IconLeave from '@ccx-public/spectrum-wrapper/dist/Icon/Export';\nimport { Action } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport { isBrand, isCmTrainingSet } from '@csc/sam-utils';\nimport React from 'react';\nimport LeaveDialog from '../components/LeaveDialog';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { getAssetTypes } from '../utils/view-item-utils';\nimport type { AAVActionArgs } from './utils';\n\ninterface ILeaveActionArgs extends AAVActionArgs {\n    showToast: AssetBrowser.ShowToastFn;\n    showModal: ShowModalFn;\n}\n\nexport function createLeaveAction(\n    args: ILeaveActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Leave,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.leave.label',\n            defaultMessage: 'Leave',\n        }),\n        icon: <IconLeave />,\n        resetSelection: false,\n        groupName: 'group2',\n        isVisible: (elements) => {\n            if (!elements || elements.length === 0) {\n                return false;\n            }\n            return elements.every(\n                (element) =>\n                    element.backingItem.isSharedWithYouAsset || element.backingItem.isProject,\n            );\n        },\n        execute: async (\n            operationStore: AAVOperationStore,\n            elements: BackedCollectionItem<SAM.AdobeAsset>[],\n            correlationId = '',\n        ) => {\n            // Exclude assets that cannot be left, such as currently open assets\n            const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n            if (!filteredElements.length) {\n                return;\n            }\n\n            const { type } = await args.showModal(\n                <LeaveDialog intl={args.intl} elements={elements} />,\n            );\n            if (type !== AssetBrowser.ShowModalResultType.Success) {\n                return false;\n            }\n\n            const { assetType } =\n                filteredElements.length > 0 && filteredElements[0].backingItem\n                    ? getAssetTypes(\n                          isBrand(filteredElements[0].backingItem),\n                          isCmTrainingSet(filteredElements[0].backingItem),\n                          args.intl,\n                      )\n                    : { assetType: '' };\n            const assetName =\n                filteredElements.length > 0 && filteredElements[0].backingItem\n                    ? filteredElements[0].backingItem.isSharedWithYouAsset &&\n                      !filteredElements[0].backingItem.isLibrary\n                        ? args.intl.formatMessage({\n                              id: 'aav.actions.leave.assetName.sharedAsset',\n                              defaultMessage: 'shared asset',\n                          })\n                        : filteredElements[0].backingItem.isLibrary\n                          ? args.intl.formatMessage(\n                                {\n                                    id: 'aav.actions.leave.assetName.library',\n                                    defaultMessage: '{assetType}',\n                                },\n                                { assetType },\n                            )\n                          : ''\n                    : '';\n            const name = filteredElements.length > 0 ? filteredElements[0].title : '';\n            const { failedElements, succeededElements } = await operationStore.assetOp({\n                metricLogger: args.metricLogger,\n                elements: filteredElements,\n                opName: UXOpName.LEAVE,\n                operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n                    ele.backingItem.removeCurrentUserFromCollaborationList(),\n                correlationId,\n            });\n            if (failedElements.length > 0) {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.leave.toast.failed',\n                            defaultMessage: 'Failed to leave the \"{name}\" {assetName}',\n                        },\n                        { name, assetName },\n                    ),\n                    variant: 'negative',\n                });\n            } else {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.leave.toast.success',\n                            defaultMessage: 'You have successfully left \"{name}\" {assetName}',\n                        },\n                        { name, assetName },\n                    ),\n                    variant: 'positive',\n                });\n            }\n            void args.onAfter?.(succeededElements.map((e) => e.element));\n            return true;\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport classNames from 'classnames';\nimport React from 'react';\n\nconst DEFAULT_SIZE = {\n    width: 96,\n    height: 96,\n};\nconst FolderGeneral2024 = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n}) => (\n    <svg\n        className={classNames('cdo-FolderGeneral', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={width}\n        height={height}\n        viewBox={`0 0 ${height} ${width}`}\n    >\n        <path\n            className=\"cdo-foreground\"\n            fillRule=\"evenodd\"\n            d=\"M15 22.6672C15 21.1391 16.1887 20 17.5339 20H33.9409C34.6878 20 35.4126 20.349 35.9021 20.9789L42.9128 30H15V22.6672ZM11 30V22.6672C11 19.0401 13.8711 16 17.5339 16H33.9409C35.9486 16 37.8292 16.94 39.0605 18.5244L37.7276 19.5602L39.0605 18.5244L47.9787 30H74.0246C80.0923 30 85 34.947 85 41.0207V68.9793C85 75.053 80.0923 80 74.0246 80H21.9754C15.9077 80 11 75.053 11 68.9793V34V32V30ZM15 34V68.9793C15 72.8629 18.1358 76 21.9754 76H74.0246C77.8642 76 81 72.8629 81 68.9793V41.0207C81 37.1371 77.8642 34 74.0246 34H51.0872H47H15Z\"\n            fill=\"var(--spectrum-global-color-gray-800, #717171)\"\n        />\n    </svg>\n);\n\nexport default FolderGeneral2024;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { useHostConfig } from '@csc/common';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport type { SyntheticEvent } from 'react';\nimport React, { useCallback } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport FolderGeneral from '../../svgs/FolderGeneral2024';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport Size from '../Size/Size';\nimport styles from './styles.modules.css';\n\nexport interface Props {\n    elements: BackedCollectionItem<SAM.AdobeAsset>[];\n}\n\nexport default function PermDeleteDialog(props: Props) {\n    const intl = useIntl();\n    const { elements } = props;\n    const { closeModal } = useHostConfig();\n    const handleCancel = useCallback(() => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Cancel });\n    }, [closeModal]);\n\n    const handleSubmit = useCallback(\n        (_type, event: SyntheticEvent) => {\n            event.preventDefault();\n            event.stopPropagation();\n            closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n        },\n        [closeModal],\n    );\n    return (\n        <DialogContent\n            title={intl.formatMessage({\n                id: 'aav.actions.permanentDelete.dialog.header',\n                defaultMessage: 'Delete permanently',\n            })}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.actions.permanentDelete.dialog.deleteButton',\n                defaultMessage: 'Delete permanently',\n            })}\n            cancelLabel={intl.formatMessage({\n                id: 'aav.actions.permanentDelete.dialog.cancelButton',\n                defaultMessage: 'Cancel',\n            })}\n            onConfirm={handleSubmit}\n            onCancel={handleCancel}\n            variant=\"destructive\"\n            data-testid=\"delete-permanently\"\n        >\n            <div>\n                <FormattedMessage\n                    id=\"aav.actions.permanentDelete.dialog.content\"\n                    defaultMessage=\"These items will be permanently deleted. You cannot undo this action.\"\n                />\n                <ul className={styles.dialogItemsContainer}>\n                    {elements.map((element) => (\n                        <li key={element.backingItem.id}>\n                            <div className={styles.dialogRenditionWrapper}>\n                                {element.backingItem.isFolder && <FolderGeneral />}\n                                {!element.backingItem.isFolder && (\n                                    <img\n                                        alt=\"\"\n                                        className={styles.dialogRendition}\n                                        draggable={false}\n                                        src={element.rendition}\n                                    />\n                                )}\n                            </div>\n                            <div className={styles.dialogTitle}>{element.title}</div>\n                            {element.backingItem.sizeInBytes > 0 && (\n                                <div className={styles.dialogSize}>\n                                    <Size sizeInBytes={element.backingItem.sizeInBytes} />\n                                </div>\n                            )}\n                        </li>\n                    ))}\n                </ul>\n            </div>\n        </DialogContent>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport IconDelete from '@ccx-public/spectrum-wrapper/dist/Icon/Delete';\nimport { Action, EventType } from '@csc/collection-view';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport type { ShowModalFn } from '@csc/common';\nimport React from 'react';\nimport type { MessageDescriptor } from 'react-intl';\nimport { defineMessage } from 'react-intl';\nimport PermDeleteDialog from '../components/PermDeleteDialog/PermDeleteDialog';\nimport ProgressDialog from '../components/ProgressDialog';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { isFireflyGeneration } from '../utils/view-item/view-item';\nimport type { AAVActionArgs } from './utils';\nimport { AnalyticsEvent } from './analytics/AnalyticsEvent';\nimport type { UABSAMCore } from '@csc/sam-utils';\n\ninterface IPermDeleteActionArgs extends AAVActionArgs {\n    dispatchEvent?: HostConfig['dispatchEvent'];\n    sam: UABSAMCore;\n    shouldUseBatchOperation?: boolean; // Optional flag for now so that we could gradually roll out batch operation support\n    showToast: AssetBrowser.ShowToastFn;\n    showModal: ShowModalFn;\n}\n\nexport function createPermDeleteAction(\n    args: IPermDeleteActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.PermDelete,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.permanentDelete.label',\n            defaultMessage: 'Delete permanently',\n        }),\n        groupName: 'group3',\n        icon: <IconDelete />,\n        resetSelection: false,\n        isVisible: (elements) => {\n            if (!elements) {\n                return false;\n            }\n            return (\n                elements?.length > 0 &&\n                elements.every(\n                    (e) =>\n                        e.backingItem.isDiscarded ||\n                        e.backingItem.isReviewLink ||\n                        isFireflyGeneration(e.backingItem),\n                ) &&\n                elements.every((e) => {\n                    const needsPermission =\n                        e.backingItem.isProject || e.backingItem.isChildOfProject;\n                    return !needsPermission || e.backingItem.hasPermission(SAM.Permission.Delete);\n                })\n            );\n        },\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            const { sam, shouldUseBatchOperation, showModal } = args;\n            const { hostAssetContext } = sam;\n            const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n            const initAnalyticsPayload = {\n                type: EventType.Click,\n                action: ActionAnalyticsValue.PermDelete,\n                assetData: elements.map((element) => ({\n                    element: element,\n                })),\n            };\n            args.dispatchEvent?.(new AnalyticsEvent(initAnalyticsPayload));\n            const { type } = await showModal(<PermDeleteDialog elements={filteredElements} />);\n            if (type !== AssetBrowser.ShowModalResultType.Success) {\n                return false;\n            }\n            if (type === AssetBrowser.ShowModalResultType.Success) {\n                const messageDescriptor: MessageDescriptor = defineMessage({\n                    id: 'aav.actions.permDelete.progress',\n                    defaultMessage: 'Permanently deleting items...',\n                });\n                const assetName =\n                    filteredElements.length > 0 && filteredElements[0].backingItem.isLibrary\n                        ? 'library'\n                        : 'asset';\n                const { failedElements, succeededElements } = await operationStore.assetOp({\n                    batchOperation: shouldUseBatchOperation\n                        ? (\n                              _correlationId: string,\n                              elements: BackedCollectionItem<SAM.AdobeAsset>[],\n                          ) =>\n                              hostAssetContext.permanentlyDeleteAssets(\n                                  elements.map((e) => e.backingItem),\n                              )\n                        : undefined,\n                    beforeAll: () => {\n                        void showModal(\n                            <ProgressDialog\n                                operationStore={operationStore}\n                                labelMessageDescriptor={messageDescriptor}\n                            />,\n                            {\n                                dismissible: false,\n                            },\n                        );\n                    },\n                    elements: filteredElements,\n                    opName: UXOpName.PERM_DELETE,\n                    operation: (\n                        _correlationId: string,\n                        ele: BackedCollectionItem<SAM.AdobeAsset>,\n                    ) => ele.backingItem.permanentlyDelete(),\n                    metricLogger: args.metricLogger,\n                    correlationId,\n                });\n                if (failedElements.length > 0) {\n                    args.showToast({\n                        content: args.intl.formatMessage(\n                            {\n                                id: 'aav.actions.permanentDelete.toast.failed',\n                                defaultMessage: 'Failed to Delete the {assetName}',\n                            },\n                            { assetName },\n                        ),\n                        variant: 'negative',\n                    });\n                    const failureAnalyticsPayload = {\n                        type: EventType.Failure as string,\n                        action: ActionAnalyticsValue.PermDelete as string,\n                        assetData: failedElements,\n                    };\n                    args.dispatchEvent?.(new AnalyticsEvent(failureAnalyticsPayload));\n                } else {\n                    args.showToast({\n                        content: args.intl.formatMessage(\n                            {\n                                id: 'aav.actions.permanentDelete.toast.success',\n                                defaultMessage:\n                                    '{count,plural,one{Item deleted} other{Items deleted}}',\n                            },\n                            { count: filteredElements.length },\n                        ),\n                        variant: 'positive',\n                    });\n                    void args.onAfter?.(succeededElements.map((e) => e.element));\n                }\n                const successAnalyticsPayload = {\n                    type: EventType.Success as string,\n                    action: ActionAnalyticsValue.PermDelete as string,\n                    assetData: succeededElements,\n                };\n                args.dispatchEvent?.(new AnalyticsEvent(successAnalyticsPayload));\n                return true;\n            }\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nexport function validateEmail(email: string) {\n    return /^.+@.+\\..+$/.test(email);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AppID } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport Select from '@ccx-public/spectrum-wrapper/dist/Select';\nimport FieldLabel from '@ccx-public/spectrum-wrapper/dist/FieldLabel';\nimport Radio from '@ccx-public/spectrum-wrapper/dist/Radio';\nimport RadioGroup from '@ccx-public/spectrum-wrapper/dist/RadioGroup';\nimport Textarea from '@ccx-public/spectrum-wrapper/dist/Textarea';\nimport Textfield from '@ccx-public/spectrum-wrapper/dist/Textfield';\nimport { useHostConfig } from '@csc/common';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport HelpText from '@csc/ui/dist/src/HelpText/HelpText';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport React, { useState, useCallback, useMemo } from 'react';\nimport { defineMessages, FormattedMessage, useIntl } from 'react-intl';\nimport { validateEmail } from '../../utils/ validate-email';\nimport type { IReportAbuseType, IReportAbuseUserInputData } from './ReportAbuse';\nimport { postReportAbuse } from './post-report-abuse';\nimport styles from './styles.module.css';\n\nexport interface ReportAbuseProps {\n    assetId: string;\n    isMobile?: boolean;\n    onSuccess?: () => void;\n    onError?: (error: Error) => void;\n    showPersonalInfo?: boolean;\n}\n\nconst REPORT_ABUSE_DESCRIPTION_MAX_LENGTH = 1000;\nconst REPORT_ABUSE_REPORTER_NAME_MAX_LENGTH = 100;\nconst REPORT_ABUSE_REPORTER_EMAIL_MAX_LENGTH = 250;\n\ntype LeiaProductNameMap = Partial<{\n    [key in AppID]: string;\n}>;\n\nconst leiaProductNameMap: LeiaProductNameMap = {\n    photoshop: 'Photoshop Desktop',\n    illustrator: 'Illustrator Desktop',\n    cc_express: 'Project X',\n    cc_home: 'Adobe Home',\n    firefly: 'Firefly',\n};\n\nexport const reasonLabelMap = defineMessages({\n    defamation: {\n        id: 'aav.actions.reportabuse.defamation',\n        defaultMessage: 'Defamation',\n    },\n    hate: {\n        id: 'aav.actions.reportabuse.hate',\n        defaultMessage: 'Racist or hate content',\n    },\n    trademark: {\n        id: 'aav.actions.reportabuse.trademark',\n        defaultMessage: 'Trademark infringement',\n    },\n    pornography: {\n        id: 'aav.actions.reportabuse.pornography',\n        defaultMessage: 'Sexually explicit content',\n    },\n    vulgar: {\n        id: 'aav.actions.reportabuse.vulgar',\n        defaultMessage: 'Offensive content',\n    },\n    other: {\n        id: 'aav.actions.reportabuse.other',\n        defaultMessage: 'Other',\n    },\n});\n\nconst ReportAbuseDialog = observer(function ReportAbuse({\n    assetId,\n    isMobile,\n    onError,\n    onSuccess,\n    showPersonalInfo = true,\n}: ReportAbuseProps) {\n    const { clientId, imsData, closeModal, appId, appName, productId, environment } =\n        useHostConfig();\n    const [emailId, setEmailId] = useState(imsData?.email || '');\n    const [attemptedSubmit, setAttemptedSubmit] = useState(false);\n    const [isNameChange, setIsNameChange] = useState(false);\n    const [isEmailChange, setIsEmailChange] = useState(false);\n    const [name, setName] = useState(imsData?.displayName || '');\n    const [reason, setReason] = useState<IReportAbuseType>('');\n    const [descTxt, setDescTxt] = useState('');\n    const [isExecuting, setIsExecuting] = useState(false);\n    const nameIsEmpty = useMemo(() => name.trim() === '', [name]);\n    const emailIsEmpty = useMemo(() => emailId.trim() === '', [emailId]);\n    const isNameFieldDisabled = (!nameIsEmpty && !isNameChange) || isExecuting;\n    const isEmailFieldDisabled = (!emailIsEmpty && !isEmailChange) || isExecuting;\n    const isReasonEmpty = useMemo(() => reason.trim() === '', [reason]);\n    const leiaProductName = useMemo(\n        () => (appId && leiaProductNameMap[appId]) ?? appName ?? productId,\n        [appId, appName, productId],\n    );\n    const confirmDisabled = nameIsEmpty || emailIsEmpty || isReasonEmpty || isExecuting;\n    const intl = useIntl();\n\n    const handleEmailChange = (value: string): void => {\n        setIsEmailChange(true);\n        setEmailId(value.substring(0, REPORT_ABUSE_REPORTER_EMAIL_MAX_LENGTH));\n    };\n\n    const handleNameChange = (value: string): void => {\n        setIsNameChange(true);\n        setName(value.substring(0, REPORT_ABUSE_REPORTER_NAME_MAX_LENGTH));\n    };\n\n    const handleReasonChange = (value: IReportAbuseType): void => {\n        setReason(value);\n    };\n\n    const handleTextareaChange = (value: string): void => {\n        setDescTxt(value.substring(0, REPORT_ABUSE_DESCRIPTION_MAX_LENGTH));\n    };\n\n    const handleSubmit = useCallback(async () => {\n        const emailStr = emailId.trim();\n        const nameStr = name.trim();\n        const descTxtStr = descTxt.trim();\n        setAttemptedSubmit(true);\n\n        if (!reason || !nameStr || !validateEmail(emailStr)) {\n            return false;\n        }\n\n        const reportAbuseInputData: IReportAbuseUserInputData = {\n            reportType: reason,\n            reporterName: nameStr,\n            reporterEmail: emailStr,\n            reportDesc: descTxtStr || '(none)',\n        };\n        setIsExecuting(true);\n        try {\n            const response = await postReportAbuse(\n                assetId,\n                reportAbuseInputData,\n                environment,\n                leiaProductName,\n                clientId,\n            );\n\n            // If postReportAbuse/fetch fails completely, an error will be thrown\n            // if a response comes back, but it's not in the 200s, also throw an error\n            if (!response.ok) {\n                onError?.(new Error(response.statusText));\n                closeModal({ type: AssetBrowser.ShowModalResultType.Error });\n            } else {\n                onSuccess?.();\n                closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n            }\n        } catch {\n            onError?.(new Error('An error occurred while reporting abuse'));\n            closeModal({ type: AssetBrowser.ShowModalResultType.Error });\n        } finally {\n            setIsExecuting(false);\n        }\n    }, [\n        assetId,\n        clientId,\n        closeModal,\n        descTxt,\n        emailId,\n        environment,\n        leiaProductName,\n        name,\n        onError,\n        onSuccess,\n        reason,\n    ]);\n\n    const handleCancel = useCallback(() => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Cancel });\n    }, [closeModal]);\n\n    const renderRadioButtons = () => {\n        return (\n            <RadioGroup\n                id=\"rebort-abuse-concern-reason\"\n                selectedValue={reason}\n                onChange={(value: string) => handleReasonChange(value as IReportAbuseType)}\n                className={classNames(styles.radioGroup, {\n                    [styles.radioGroupRequired]: attemptedSubmit && !reason,\n                })}\n            >\n                {Object.keys(reasonLabelMap).map((key) => {\n                    return (\n                        <Radio\n                            value={key}\n                            className={styles.radio}\n                            key={key}\n                            label={intl.formatMessage(reasonLabelMap[key])}\n                            disabled={isExecuting}\n                        />\n                    );\n                })}\n            </RadioGroup>\n        );\n    };\n\n    const renderSelect = () => {\n        return (\n            <Select\n                data-testid=\"reason-dropdown\"\n                options={Object.keys(reasonLabelMap).map((key) => ({\n                    label: intl.formatMessage(reasonLabelMap[key]),\n                    value: key,\n                }))}\n                onChange={(value: string) => handleReasonChange(value as IReportAbuseType)}\n            />\n        );\n    };\n\n    return (\n        <DialogContent\n            size=\"m\"\n            className={classNames({ [styles.mobile]: isMobile })}\n            confirmDisabled={confirmDisabled}\n            cancelLabel={intl.formatMessage({\n                id: 'aav.actions.reportabuse.cancel',\n                defaultMessage: 'Cancel',\n            })}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.actions.reportabuse.label',\n                defaultMessage: 'Report abuse',\n            })}\n            title={intl.formatMessage({\n                id: 'aav.actions.reportabuse.label',\n                defaultMessage: 'Report abuse',\n            })}\n            onCancel={handleCancel}\n            onConfirm={handleSubmit}\n            data-testid=\"report-abuse\"\n        >\n            <div className={styles.description}>\n                <FormattedMessage\n                    id=\"aav.actions.reportabuse.description\"\n                    defaultMessage=\"If you feel that this Creative Cloud content violates the Adobe Terms of Use, you may report this content by filling out this quick form.\"\n                />\n            </div>\n            {showPersonalInfo && (\n                <div data-testid=\"inputFields\" className={styles.emailNameInputFields}>\n                    <div className={styles.emailInputField}>\n                        <FieldLabel\n                            label={intl.formatMessage({\n                                id: 'aav.actions.reportabuse.emailInput',\n                                defaultMessage: 'Your email',\n                            })}\n                            labelFor=\"report-abuse-email-input\"\n                            necessity=\"required\"\n                        >\n                            <Textfield\n                                id=\"report-abuse-email-input\"\n                                disabled={isEmailFieldDisabled}\n                                required={attemptedSubmit}\n                                onChange={handleEmailChange}\n                                validationState={\n                                    attemptedSubmit && !validateEmail(emailId)\n                                        ? 'invalid'\n                                        : undefined\n                                }\n                                value={emailId}\n                                className={styles.inputTextfield}\n                                maxLength={REPORT_ABUSE_REPORTER_EMAIL_MAX_LENGTH}\n                            />\n                        </FieldLabel>\n                    </div>\n                    <div className={styles.nameInputField}>\n                        <FieldLabel\n                            label={intl.formatMessage({\n                                id: 'aav.actions.reportabuse.nameInput',\n                                defaultMessage: 'Your name',\n                            })}\n                            labelFor=\"report-abuse-name-input\"\n                            necessity=\"required\"\n                        >\n                            <Textfield\n                                id=\"report-abuse-name-input\"\n                                disabled={isNameFieldDisabled}\n                                required={attemptedSubmit}\n                                onChange={handleNameChange}\n                                validationState={attemptedSubmit && !name ? 'invalid' : undefined}\n                                value={name}\n                                className={styles.inputTextfield}\n                                maxLength={REPORT_ABUSE_REPORTER_NAME_MAX_LENGTH}\n                            />\n                        </FieldLabel>\n                    </div>\n                </div>\n            )}\n            <div data-testid=\"ReportAbuseDialog_ReasonGroup\" className={styles.radioGroupContainer}>\n                <FieldLabel\n                    label={intl.formatMessage({\n                        id: 'aav.actions.reportabuse.radioButtonText',\n                        defaultMessage: 'Why are you reporting this content?',\n                    })}\n                    labelFor=\"rebort-abuse-concern-reason\"\n                    necessity=\"required\"\n                >\n                    {isMobile ? renderSelect() : renderRadioButtons()}\n                </FieldLabel>\n                <div data-testid=\"error-message\" aria-live=\"assertive\">\n                    {attemptedSubmit && !reason && (\n                        <HelpText variant=\"negative\">\n                            <FormattedMessage\n                                id=\"aav.actions.reportabuse.required\"\n                                defaultMessage=\"Required\"\n                            />\n                        </HelpText>\n                    )}\n                </div>\n            </div>\n            <div>\n                <FieldLabel\n                    label={intl.formatMessage({\n                        id: 'aav.actions.reportabuse.textAreaTitle',\n                        defaultMessage: 'Please provide a description of your concern',\n                    })}\n                    labelFor=\"report-abuse-concern-description\"\n                >\n                    <Textarea\n                        data-testid=\"report-abuse-concern-description\"\n                        id=\"report-abuse-concern-description\"\n                        className={styles.textAreaDesc}\n                        required={false}\n                        placeholder={intl.formatMessage({\n                            id: 'aav.actions.reportabuse.describeConcern',\n                            defaultMessage: 'Describe concern',\n                        })}\n                        onChange={handleTextareaChange}\n                        maxLength={REPORT_ABUSE_DESCRIPTION_MAX_LENGTH}\n                    />\n                </FieldLabel>\n            </div>\n            <div className={styles.disclaimerHelperText}>\n                {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx -- Do not need internationalization */}\n                <span>*</span>\n                <FormattedMessage id=\"aav.actions.reportabuse.required\" defaultMessage=\"Required\" />\n            </div>\n        </DialogContent>\n    );\n});\n\nexport default ReportAbuseDialog;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { Env } from '@ccx-public/component-types';\nimport type { IReportAbuseUserInputData } from './ReportAbuse';\n\nconst LEIA_STAGE_URL = 'https://leia-stage.adobe.io/v1/acp_report_abuse';\nconst LEIA_PROD_URL = 'https://leia.adobe.io/v1/acp_report_abuse';\n\nexport async function postReportAbuse(\n    assetId: string,\n    reportAbuseInputData: IReportAbuseUserInputData,\n    environment: Env,\n    /**\n     * Commercial Adobe product name (not generic or project codewords)\n     */\n    appName: string,\n    apiKey: string,\n) {\n    const requestHeaders = {\n        'Content-Type': 'application/json',\n        'X-Api-Key': apiKey,\n    };\n\n    const requestBody = JSON.stringify({\n        /**\n         * Leia service interface specifies that productId should really be the commercial Adobe product name (i.e 'Adobe Home' vs. 'adobe_home')\n         * https://wiki.corp.adobe.com/display/TnS/Leia+Client+Onboarding#LeiaClientOnboarding-ServiceInterface\n         */\n        productId: appName,\n        assetList: [{ assetId }],\n        reportDate: new Date().toISOString(),\n        reportType: reportAbuseInputData.reportType,\n        reportDesc: reportAbuseInputData.reportDesc,\n        reporterName: reportAbuseInputData.reporterName,\n        reporterEmail: reportAbuseInputData.reporterEmail,\n    });\n\n    const requestOptions = {\n        method: 'POST',\n        headers: requestHeaders,\n        body: requestBody,\n    };\n\n    const LEIA_URL = environment === 'stage' ? LEIA_STAGE_URL : LEIA_PROD_URL;\n    const response = await fetch(LEIA_URL, requestOptions);\n\n    return response;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { useHostConfig, localizedGoUrl } from '@csc/common';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport { observer } from 'mobx-react';\nimport React, { useCallback } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport ExternalLink from '../ExternalLink/ExternalLink';\n\nexport const SYNC_ERR_GO_URL_BASE = 'cloud-documents-stopped-syncing';\n\nexport default observer(function SyncErrorDialog() {\n    const intl = useIntl();\n    const { closeModal } = useHostConfig();\n\n    const onCancel = useCallback(() => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Cancel });\n    }, [closeModal]);\n\n    const onConfirm = useCallback(() => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n    }, [closeModal]);\n\n    return (\n        <DialogContent\n            title={intl.formatMessage({\n                id: 'aav.actions.resolveSyncConflict.syncError.dialog.heading',\n                defaultMessage: 'This document has stopped syncing to the cloud',\n            })}\n            cancelLabel={intl.formatMessage({\n                id: 'aav.actions.resolveSyncConflict.syncError.dialog.openButton',\n                defaultMessage: 'Open',\n            })}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.actions.resolveSyncConflict.syncError.dialog.resolveButton',\n                defaultMessage: 'Save a copy and restore',\n            })}\n            variant=\"error\"\n            onCancel={onCancel}\n            onConfirm={onConfirm}\n        >\n            <div>\n                <FormattedMessage\n                    id=\"aav.actions.resolveSyncConflict.syncError.dialog.body1\"\n                    defaultMessage=\"We recommend you save your latest version as a copy and restore the document to the last version saved in the cloud.\"\n                    tagName=\"p\"\n                />\n                <p>\n                    <FormattedMessage\n                        id=\"aav.actions.resolveSyncConflict.syncError.dialog.body2\"\n                        defaultMessage=\"You can open this document and make edits, but your changes will not be saved to the cloud.\"\n                    />\n                    &nbsp;\n                    <ExternalLink url={localizedGoUrl(SYNC_ERR_GO_URL_BASE, intl.locale)}>\n                        <FormattedMessage\n                            id=\"aav.actions.resolveSyncConflict.syncError.dialog.learnMore\"\n                            defaultMessage=\"Learn more\"\n                        />\n                    </ExternalLink>\n                </p>\n                {!navigator.onLine && (\n                    <b>\n                        <FormattedMessage\n                            id=\"aav.actions.resolveSyncConflict.syncError.dialog.offline\"\n                            defaultMessage=\"You must be online to save a copy and restore the original.\"\n                            tagName=\"p\"\n                        />\n                    </b>\n                )}\n            </div>\n        </DialogContent>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport FieldLabel from '@ccx-public/spectrum-wrapper/dist/FieldLabel';\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport IconInfoOutline from '@ccx-public/spectrum-wrapper/dist/Icon/InfoOutline';\nimport IconUser from '@ccx-public/spectrum-wrapper/dist/Icon/User';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Select from '@ccx-public/spectrum-wrapper/dist/Select';\nimport Switch from '@ccx-public/spectrum-wrapper/dist/Switch';\nimport Textfield from '@ccx-public/spectrum-wrapper/dist/Textfield';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport { useHostConfig } from '@csc/common';\nimport { useProjectList } from '@csc/sam-utils';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport ProjectBadge from '../../components/ProjectBadge/ProjectBadge';\nimport styles from './style.module.css';\n\nconst PERSONAL_STORAGE_ID = 'PERSONAL_STORAGE_ID';\n\nexport type NewLibraryData = {\n    name: string;\n    isPersonalLibrary: boolean;\n    projectData?: {\n        id: string;\n        restrictEdit: boolean;\n    };\n};\n\nexport type NewLibraryDialogProps = {\n    onLibraryCreated: (libraryData: NewLibraryData) => void;\n    parentProject?: SAM.Project; // if provided, save to dropdown won't be rendered\n    isMobile: boolean;\n};\n\nexport function isInvalidName(input: string) {\n    // cannot contain only empty spaces\n    if (input.trim().length === 0) {\n        return true;\n    }\n    // disallowed characters\n    if (/[*/|\\\\:\"<?>]/.test(input)) {\n        return true;\n    }\n    // cannot end with a period\n    if (input.trim().endsWith('.')) {\n        return true;\n    }\n    // server side character limitation is 255,\n    // but need to accommendate for the extension .cclibc or .cclibs that is added to the brand name\n    if (input.length > 248) {\n        return true;\n    }\n    return false;\n}\n\nexport function isValidInput(\n    name: string,\n    isDirty: boolean,\n    hasFocus: boolean,\n    error: string | null,\n) {\n    if (!isDirty || (name.length === 0 && hasFocus)) {\n        return undefined;\n    }\n    return error ? 'invalid' : 'valid';\n}\n\nexport default observer(function NewLibraryDialog(props: NewLibraryDialogProps) {\n    const { onLibraryCreated, parentProject, isMobile } = props;\n\n    // states\n    const [name, setName] = useState('');\n    const [isPersonalLibrary, setIsPersonalLibrary] = useState(parentProject ? false : true);\n    const [saveToSelection, setSaveToSelection] = useState(\n        parentProject?.id ?? PERSONAL_STORAGE_ID,\n    );\n    const [restrictEdit, setRestrictEdit] = useState(false);\n    const [error, setError] = useState<string | null>(null);\n    const [disableSubmit, setDisableSubmit] = useState(true);\n    const [isDirty, setIsDirty] = useState(false);\n    const [hasFocus, setHasFocus] = useState(false);\n\n    // hooks\n    const { closeModal } = useHostConfig();\n    const intl = useIntl();\n    const list = useProjectList({\n        loadAll: true,\n    });\n\n    // if parentProject is not provided, filter the list of projects to only show projects that the user has write permission\n    const filteredList = !parentProject\n        ? list?.items.filter((project) => {\n              return project.hasPermission(SAM.Permission.Write);\n          })\n        : undefined;\n\n    const saveToOptions = useMemo<{ label: string; value: string; icon?: React.JSX.Element }[]>(\n        () => [\n            {\n                label: intl.formatMessage({\n                    id: 'aav.actions.newLibrary.dialog.saveTo.personalStorage',\n                    defaultMessage: 'Personal Storage',\n                }),\n                value: PERSONAL_STORAGE_ID,\n                icon: (\n                    <Icon size=\"XS\" className={styles.saveToSelectIcon}>\n                        <IconUser />\n                    </Icon>\n                ),\n            },\n            ...(filteredList?.map((project) => ({\n                label: project.name,\n                value: project.id,\n                icon: (\n                    <Icon className={styles.saveToSelectIcon}>\n                        {project.id !== PERSONAL_STORAGE_ID && (\n                            <ProjectBadge\n                                name={project.name}\n                                gradient={project.gradient}\n                                size=\"XXS\"\n                            />\n                        )}\n                    </Icon>\n                ),\n            })) || []),\n        ],\n        [filteredList, intl],\n    );\n\n    const handleSubmit = useCallback(\n        (type: string) => {\n            if (type !== 'primary') {\n                return;\n            }\n            const libraryData: NewLibraryData = {\n                name,\n                isPersonalLibrary,\n                projectData: {\n                    id: saveToSelection,\n                    restrictEdit,\n                },\n            };\n            // return the information via callback\n            onLibraryCreated(libraryData);\n            closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n        },\n        [name, isPersonalLibrary, saveToSelection, restrictEdit, onLibraryCreated, closeModal],\n    );\n\n    // Show restrict toggle only if parent project is provided and it is an org project\n    // or if selected project is an org project (if parent project is not provided)\n    const parentProjectIsInOrgStorage = Boolean(parentProject?.repositoryOwner?.type === 'org');\n    const listLoaded =\n        list && list.status === SAM.AssetListStatus.ReadyFullyLoaded && list.items.length > 0;\n    const selectedProjectIsInOrgStorage =\n        filteredList?.find((project) => project.id === saveToSelection)?.repositoryOwner?.type ===\n        'org';\n\n    const shouldShowRestrictToggle =\n        parentProjectIsInOrgStorage ||\n        (listLoaded && !isPersonalLibrary && selectedProjectIsInOrgStorage);\n\n    useEffect(() => {\n        // if the name is empty or invalid, disable submit\n        let disableSubmit = false;\n        if (name.length === 0) {\n            disableSubmit = true;\n        } else if (isInvalidName(name)) {\n            disableSubmit = true;\n            setError(\n                intl.formatMessage({\n                    id: 'aav.actions.newLibrary.dialog.error.invalidCharacter',\n                    defaultMessage:\n                        'Names can\\'t be more than 248 characters, end with a period, contain only spaces or contain the following characters: \\\\ / * ? \" | : < >',\n                }),\n            );\n        }\n        if (!disableSubmit) {\n            setError(null);\n            setDisableSubmit(false);\n        } else {\n            setDisableSubmit(true);\n        }\n    }, [intl, name]);\n\n    const handleFocus = useCallback(() => {\n        // Disable submit until user types something. Don't show error if name is blank (user hasn't typed anything yet)\n        setHasFocus(true);\n        setError(null);\n        if (name.length === 0) {\n            setDisableSubmit(true);\n        } else if (isInvalidName(name)) {\n            setDisableSubmit(true);\n            setError(\n                intl.formatMessage({\n                    id: 'aav.actions.newLibrary.dialog.error.invalidCharacter',\n                    defaultMessage:\n                        'Names can\\'t be more than 248 characters, end with a period, contain only spaces or contain the following characters: \\\\ / * ? \" | : < >',\n                }),\n            );\n        } else {\n            setDisableSubmit(false);\n        }\n    }, [setHasFocus, setError, setDisableSubmit, name, intl]);\n\n    const handleBlur = useCallback(() => {\n        // Show error if name is empty or invalid\n        setHasFocus(false);\n        if (name.length === 0) {\n            setError(\n                intl.formatMessage({\n                    id: 'aav.actions.newLibrary.dialog.error.empty',\n                    defaultMessage: 'Library name must not be blank',\n                }),\n            );\n            setDisableSubmit(true);\n        } else if (isInvalidName(name)) {\n            setError(\n                intl.formatMessage({\n                    id: 'aav.actions.newLibrary.dialog.error.invalidCharacter',\n                    defaultMessage:\n                        'Names can\\'t be more than 248 characters, end with a period, contain only spaces or contain the following characters: \\\\ / * ? \" | : < >',\n                }),\n            );\n            setDisableSubmit(true);\n        }\n    }, [setHasFocus, setError, setDisableSubmit, name, intl]);\n\n    const onCancel = useCallback(() => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Cancel });\n    }, [closeModal]);\n\n    return (\n        <DialogContent\n            cancelLabel={intl.formatMessage({\n                id: 'aav.actions.newLibrary.dialog.button.cancel',\n                defaultMessage: 'Cancel',\n            })}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.actions.newLibrary.dialog.button.create',\n                defaultMessage: 'Create',\n            })}\n            onCancel={onCancel}\n            onConfirm={handleSubmit}\n            title={intl.formatMessage({\n                id: 'aav.actions.newLibrary.dialog.title',\n                defaultMessage: 'New library',\n            })}\n            confirmDisabled={disableSubmit}\n            className={classNames({ [styles.dialogContent]: !isMobile })}\n        >\n            <div>\n                <FieldLabel\n                    label={intl.formatMessage({\n                        id: 'aav.actions.newLibrary.dialog.label.libraryName',\n                        defaultMessage: 'Library name',\n                    })}\n                    labelFor=\"new-library-dialog-name-textfield\"\n                />\n                <Textfield\n                    autofocus\n                    quiet\n                    type=\"text\"\n                    data-testid=\"new-library-dialog-name-textfield\"\n                    id=\"new-library-dialog-name-textfield\"\n                    className={styles.createInput}\n                    onChange={(inName) => {\n                        const newName = inName\n                            .trim()\n                            // [CCPROJ-10227] Remove zero-width joiners from beginning\n                            .replace(/^[\\u200C\\u200D]+/g, '');\n                        setIsDirty(true);\n                        setName(newName);\n                    }}\n                    validationState={isValidInput(name, isDirty, hasFocus, error)}\n                    onBlur={handleBlur}\n                    onFocus={handleFocus}\n                />\n\n                {error && (\n                    <aside\n                        role=\"alert\"\n                        data-testid=\"create-dialog-error\"\n                        className={styles.errorMessage}\n                    >\n                        {error}\n                    </aside>\n                )}\n            </div>\n            {!parentProject &&\n                list &&\n                list.status === SAM.AssetListStatus.ReadyFullyLoaded &&\n                list?.items.length > 0 && (\n                    <div className={styles.saveToSelect}>\n                        <FieldLabel\n                            label={intl.formatMessage({\n                                id: 'aav.actions.newLibrary.dialog.label.saveTo',\n                                defaultMessage: 'Save to',\n                            })}\n                            labelFor=\"new-library-dialog-saveto-select\"\n                        />\n                        <Select\n                            value={PERSONAL_STORAGE_ID}\n                            options={saveToOptions}\n                            renderItem={(option) => (\n                                <span className={styles.saveToSelectLabel} title={option.label}>\n                                    {option.label}\n                                </span>\n                            )}\n                            className={styles.createDropdown}\n                            onChange={(selected) => {\n                                setIsPersonalLibrary(selected === PERSONAL_STORAGE_ID);\n                                setSaveToSelection(selected);\n                            }}\n                            id=\"new-library-dialog-saveto-select\"\n                            data-testid=\"new-library-dialog-saveto-select\"\n                        />\n                    </div>\n                )}\n            {shouldShowRestrictToggle && (\n                <div className={styles.restrictToggle}>\n                    <Switch\n                        label={intl.formatMessage({\n                            id: 'aav.actions.newLibrary.dialog.label.restrictToggle',\n                            defaultMessage: 'Restrict project members from editing library',\n                        })}\n                        quiet\n                        data-testid=\"new-library-dialog-restrict-toggle\"\n                        onChange={(isSet) => setRestrictEdit(isSet)}\n                    />\n                    <OverlayTrigger placement=\"top\">\n                        <div slot=\"trigger\">\n                            <IconInfoOutline size=\"S\" />\n                        </div>\n                        <div slot=\"hover-content\">\n                            <Tooltip open placement=\"top\">\n                                <FormattedMessage\n                                    id=\"aav.actions.newLibrary.dialog.tooltip.restrictToggle\"\n                                    defaultMessage=\"Toggle off will allow project members with edit access to modify brand elements.\"\n                                />\n                            </Tooltip>\n                        </div>\n                    </OverlayTrigger>\n                </div>\n            )}\n        </DialogContent>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport FieldLabel from '@ccx-public/spectrum-wrapper/dist/FieldLabel';\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport IconInfoOutline from '@ccx-public/spectrum-wrapper/dist/Icon/InfoOutline';\nimport IconUser from '@ccx-public/spectrum-wrapper/dist/Icon/User';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Select from '@ccx-public/spectrum-wrapper/dist/Select';\nimport Switch from '@ccx-public/spectrum-wrapper/dist/Switch';\nimport Textfield from '@ccx-public/spectrum-wrapper/dist/Textfield';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport { useHostConfig } from '@csc/common';\nimport { useProjectList } from '@csc/sam-utils';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport ProjectBadge from '../../components/ProjectBadge/ProjectBadge';\nimport styles from '../newLibrary/style.module.css';\nimport { isInvalidName, isValidInput, type NewLibraryData } from '../newLibrary/NewLibraryDialog';\n\nconst PERSONAL_STORAGE_ID = 'PERSONAL_STORAGE_ID';\n\nexport type NewBrandData = NewLibraryData;\n\nexport type NewBrandDialogProps = {\n    onBrandCreated: (brandData: NewBrandData) => void;\n    parentProject?: SAM.Project; // if provided, save to dropdown won't be rendered\n    isMobile: boolean;\n};\n\nexport default observer(function NewBrandDialog(props: NewBrandDialogProps) {\n    const { onBrandCreated, parentProject, isMobile } = props;\n\n    // states\n    const [name, setName] = useState('');\n    const [isPersonalBrand, setIsPersonalBrand] = useState(parentProject ? false : true);\n    const [saveToSelection, setSaveToSelection] = useState(\n        parentProject?.id ?? PERSONAL_STORAGE_ID,\n    );\n    const [restrictEdit, setRestrictEdit] = useState(false);\n    const [error, setError] = useState<string | null>(null);\n    const [disableSubmit, setDisableSubmit] = useState(true);\n    const [isDirty, setIsDirty] = useState(false);\n    const [hasFocus, setHasFocus] = useState(false);\n\n    // hooks\n    const { closeModal } = useHostConfig();\n    const intl = useIntl();\n    const list = useProjectList({\n        loadAll: true,\n    });\n\n    // if parentProject is not provided, filter the list of projects to only show projects that the user has write permission\n    const filteredList = !parentProject\n        ? list?.items.filter((project) => {\n              return project.hasPermission(SAM.Permission.Write);\n          })\n        : undefined;\n\n    const saveToOptions = useMemo<{ label: string; value: string; icon?: React.JSX.Element }[]>(\n        () => [\n            {\n                label: intl.formatMessage({\n                    id: 'aav.actions.newBrand.dialog.saveTo.personalStorage',\n                    defaultMessage: 'Personal Storage',\n                }),\n                value: PERSONAL_STORAGE_ID,\n                icon: (\n                    <Icon size=\"XS\" className={styles.saveToSelectIcon}>\n                        <IconUser />\n                    </Icon>\n                ),\n            },\n            ...(filteredList?.map((project) => ({\n                label: project.name,\n                value: project.id,\n                icon: (\n                    <Icon className={styles.saveToSelectIcon}>\n                        {project.id !== PERSONAL_STORAGE_ID && (\n                            <ProjectBadge\n                                name={project.name}\n                                gradient={project.gradient}\n                                size=\"XXS\"\n                            />\n                        )}\n                    </Icon>\n                ),\n            })) || []),\n        ],\n        [filteredList, intl],\n    );\n\n    const handleSubmit = useCallback(\n        (type: string) => {\n            if (type !== 'primary') {\n                return;\n            }\n            const brandData: NewBrandData = {\n                name,\n                isPersonalLibrary: isPersonalBrand,\n                projectData: {\n                    id: saveToSelection,\n                    restrictEdit,\n                },\n            };\n            // return the information via callback\n            onBrandCreated(brandData);\n            closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n        },\n        [name, isPersonalBrand, saveToSelection, restrictEdit, onBrandCreated, closeModal],\n    );\n\n    // Show restrict toggle only if parent project is provided and it is an org project\n    // or if selected project is an org project (if parent project is not provided)\n    const parentProjectIsInOrgStorage = Boolean(parentProject?.repositoryOwner?.type === 'org');\n    const listLoaded =\n        list && list.status === SAM.AssetListStatus.ReadyFullyLoaded && list.items.length > 0;\n    const selectedProjectIsInOrgStorage =\n        filteredList?.find((project) => project.id === saveToSelection)?.repositoryOwner?.type ===\n        'org';\n\n    const shouldShowRestrictToggle =\n        parentProjectIsInOrgStorage ||\n        (listLoaded && !isPersonalBrand && selectedProjectIsInOrgStorage);\n\n    useEffect(() => {\n        // if the name is empty or invalid, disable submit\n        let disableSubmit = false;\n        if (name.length === 0) {\n            disableSubmit = true;\n        } else if (isInvalidName(name)) {\n            disableSubmit = true;\n            setError(\n                intl.formatMessage({\n                    id: 'aav.actions.newBrand.dialog.error.invalidCharacter',\n                    defaultMessage:\n                        'Names can\\'t be more than 248 characters, end with a period, contain only spaces or contain the following characters: \\\\ / * ? \" | : < >',\n                }),\n            );\n        }\n        if (!disableSubmit) {\n            setError(null);\n            setDisableSubmit(false);\n        } else {\n            setDisableSubmit(true);\n        }\n    }, [intl, name]);\n\n    const handleFocus = useCallback(() => {\n        // Disable submit until user types something. Don't show error if name is blank (user hasn't typed anything yet)\n        setHasFocus(true);\n        setError(null);\n        if (name.length === 0) {\n            setDisableSubmit(true);\n        } else if (isInvalidName(name)) {\n            setDisableSubmit(true);\n            setError(\n                intl.formatMessage({\n                    id: 'aav.actions.newBrand.dialog.error.invalidCharacter',\n                    defaultMessage:\n                        'Names can\\'t be more than 248 characters, end with a period, contain only spaces or contain the following characters: \\\\ / * ? \" | : < >',\n                }),\n            );\n        } else {\n            setDisableSubmit(false);\n        }\n    }, [setHasFocus, setError, setDisableSubmit, name, intl]);\n\n    const handleBlur = useCallback(() => {\n        // Show error if name is empty or invalid\n        setHasFocus(false);\n        if (name.length === 0) {\n            setError(\n                intl.formatMessage({\n                    id: 'aav.actions.newBrand.dialog.error.empty',\n                    defaultMessage: 'Brand name must not be blank',\n                }),\n            );\n            setDisableSubmit(true);\n        } else if (isInvalidName(name)) {\n            setError(\n                intl.formatMessage({\n                    id: 'aav.actions.newBrand.dialog.error.invalidCharacter',\n                    defaultMessage:\n                        'Names can\\'t be more than 248 characters, end with a period, contain only spaces or contain the following characters: \\\\ / * ? \" | : < >',\n                }),\n            );\n            setDisableSubmit(true);\n        }\n    }, [setHasFocus, setError, setDisableSubmit, name, intl]);\n\n    const onCancel = useCallback(() => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Cancel });\n    }, [closeModal]);\n\n    return (\n        <DialogContent\n            cancelLabel={intl.formatMessage({\n                id: 'aav.actions.newBrand.dialog.button.cancel',\n                defaultMessage: 'Cancel',\n            })}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.actions.newBrand.dialog.button.create',\n                defaultMessage: 'Create',\n            })}\n            onCancel={onCancel}\n            onConfirm={handleSubmit}\n            title={intl.formatMessage({\n                id: 'aav.actions.newBrand.dialog.title',\n                defaultMessage: 'New brand',\n            })}\n            confirmDisabled={disableSubmit}\n            className={classNames({ [styles.dialogContent]: !isMobile })}\n        >\n            <div>\n                <FieldLabel\n                    label={intl.formatMessage({\n                        id: 'aav.actions.newBrand.dialog.label.brandName',\n                        defaultMessage: 'Brand name',\n                    })}\n                    labelFor=\"new-brand-dialog-name-textfield\"\n                />\n                <Textfield\n                    autofocus\n                    quiet\n                    type=\"text\"\n                    data-testid=\"new-brand-dialog-name-textfield\"\n                    id=\"new-brand-dialog-name-textfield\"\n                    className={styles.createInput}\n                    onChange={(inName) => {\n                        const newName = inName\n                            .trim()\n                            // [CCPROJ-10227] Remove zero-width joiners from beginning\n                            .replace(/^[\\u200C\\u200D]+/g, '');\n                        setIsDirty(true);\n                        setName(newName);\n                    }}\n                    validationState={isValidInput(name, isDirty, hasFocus, error)}\n                    onBlur={handleBlur}\n                    onFocus={handleFocus}\n                />\n\n                {error && (\n                    <aside\n                        role=\"alert\"\n                        data-testid=\"create-dialog-error\"\n                        className={styles.errorMessage}\n                    >\n                        {error}\n                    </aside>\n                )}\n            </div>\n            {!parentProject &&\n                list &&\n                list.status === SAM.AssetListStatus.ReadyFullyLoaded &&\n                list.items.length > 0 && (\n                    <div className={styles.saveToSelect}>\n                        <FieldLabel\n                            label={intl.formatMessage({\n                                id: 'aav.actions.newBrand.dialog.label.saveTo',\n                                defaultMessage: 'Save to',\n                            })}\n                            labelFor=\"new-brand-dialog-saveto-select\"\n                        />\n                        <Select\n                            value={PERSONAL_STORAGE_ID}\n                            options={saveToOptions}\n                            className={styles.createDropdown}\n                            onChange={(selected) => {\n                                setIsPersonalBrand(selected === PERSONAL_STORAGE_ID);\n                                setSaveToSelection(selected);\n                            }}\n                            id=\"new-brand-dialog-saveto-select\"\n                            data-testid=\"new-brand-dialog-saveto-select\"\n                        />\n                    </div>\n                )}\n            {shouldShowRestrictToggle && (\n                <div className={styles.restrictToggle}>\n                    <Switch\n                        label={intl.formatMessage({\n                            id: 'aav.actions.newBrand.dialog.label.restrictToggle',\n                            defaultMessage: 'Restrict project members from editing brand',\n                        })}\n                        quiet\n                        data-testid=\"new-brand-dialog-restrict-toggle\"\n                        onChange={(isSet) => setRestrictEdit(isSet)}\n                    />\n                    <OverlayTrigger placement=\"top\">\n                        <div slot=\"trigger\">\n                            <IconInfoOutline size=\"S\" />\n                        </div>\n                        <div slot=\"hover-content\">\n                            <Tooltip open placement=\"top\">\n                                <FormattedMessage\n                                    id=\"aav.actions.newBrand.dialog.tooltip.restrictToggle\"\n                                    defaultMessage=\"Toggle off will allow project members with edit access to modify brand elements.\"\n                                />\n                            </Tooltip>\n                        </div>\n                    </OverlayTrigger>\n                </div>\n            )}\n        </DialogContent>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport classnames from 'classnames';\nimport React, { useEffect, useState } from 'react';\nimport styles from './styles.modules.css';\n\nconst DEFAULT_TIMEOUT = 10000;\n\ntype Props = React.PropsWithChildren<{\n    loading?: boolean;\n    className?: string;\n    style?: React.CSSProperties;\n    'data-testid'?: string;\n    errorElement?: React.ReactNode;\n    timeout?: number;\n    animated?: boolean;\n}>;\n\nexport function LoadingPlaceholder({\n    loading,\n    className,\n    style,\n    children,\n    'data-testid': dataTestId,\n    errorElement,\n    timeout = DEFAULT_TIMEOUT,\n    animated = true,\n}: Props) {\n    const [showError, setShowError] = useState(false);\n\n    useEffect(() => {\n        let timer: number | undefined;\n        if (loading) {\n            timer = window.setTimeout(() => {\n                setShowError(true);\n            }, timeout);\n        }\n        return () => {\n            if (timer) {\n                clearTimeout(timer);\n            }\n        };\n    }, [loading, timeout]);\n\n    if (!loading) {\n        return <>{children}</>;\n    }\n    if (showError) {\n        if (errorElement) {\n            return <>{errorElement}</>;\n        }\n        // eslint-disable-next-line formatjs/no-literal-string-in-jsx -- Do not need internationalization\n        return <span>&ndash;</span>;\n    }\n    return (\n        <div\n            className={classnames(\n                animated ? styles.loadingAnimated : styles.loadingStatic,\n                styles.element,\n                className,\n            )}\n            style={style}\n            data-testid={dataTestId ?? 'loading-placeholder'}\n        />\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport IconAlert from '@ccx-public/spectrum-wrapper/dist/Icon/Alert';\nimport { useProject } from '@csc/sam-utils';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { LoadingPlaceholder } from './LoadingPlaceholder/LoadingPlaceholder';\nimport type { ProjectBadgeProps } from './ProjectBadge/ProjectBadge';\nimport ProjectBadge from './ProjectBadge/ProjectBadge';\n\nexport const ProjectNameBadge = observer(\n    ({ projectId, size }: { projectId: string; size?: ProjectBadgeProps['size'] }) => {\n        const { project } = useProject(projectId);\n        const intl = useIntl();\n        return (\n            <ProjectBadge\n                name={\n                    project?.name ??\n                    intl.formatMessage({\n                        id: 'project.subtitle',\n                        defaultMessage: 'PROJECT',\n                    })\n                }\n                gradient={project?.gradient}\n                size={size || 'XL'}\n            />\n        );\n    },\n);\n\nexport const ProjectName = ({ projectId }: { projectId: string }) => {\n    const { project } = useProject(projectId);\n    return <span>{project?.name}</span>;\n};\n\nexport const ProjectNameAndBadge = observer(function ({\n    projectId,\n    size = 'XS',\n    children,\n}: {\n    projectId: string;\n    size?: ProjectBadgeProps['size'];\n    children: ({\n        messageElement,\n        tooltip,\n    }: {\n        messageElement: React.JSX.Element;\n        tooltip: string;\n    }) => React.JSX.Element;\n}) {\n    const { project, loading, error } = useProject(projectId);\n\n    const messageElement = (\n        <FormattedMessage\n            id=\"aav.griditem.location.project.error\"\n            defaultMessage=\"Unable to load project...\"\n        />\n    );\n    const errorUI = (\n        <span data-testid=\"projectLocation\" className=\"projectLocation\">\n            <IconAlert className=\"projectBadge\" size=\"S\" />\n            {messageElement}\n        </span>\n    );\n\n    if (error) {\n        return errorUI;\n    }\n\n    return (\n        <LoadingPlaceholder animated={false} loading={loading} errorElement={errorUI}>\n            {project &&\n                children({\n                    messageElement: (\n                        <>\n                            <ProjectBadge\n                                name={project.name}\n                                className=\"projectBadge\"\n                                gradient={project.gradient}\n                                size={size}\n                            />\n                            {project.name}\n                        </>\n                    ),\n                    tooltip: project.name,\n                })}\n        </LoadingPlaceholder>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IntlShape } from 'react-intl';\nimport { defineMessage } from 'react-intl';\n\nexport const BYTE_CONVERSION_BASE = 1024;\n\nexport function formatFileSize(\n    isize: number | undefined,\n    intl: IntlShape,\n): { displayValue: string; value: number; abbrev: string } {\n    const sizeAbbrevMap = [\n        defineMessage({ id: 'aav.abbreviations.filesize.byte', defaultMessage: 'B' }),\n        defineMessage({ id: 'aav.abbreviations.filesize.kilobyte', defaultMessage: 'KB' }),\n        defineMessage({ id: 'aav.abbreviations.filesize.megabyte', defaultMessage: 'MB' }),\n        defineMessage({ id: 'aav.abbreviations.filesize.gigabyte', defaultMessage: 'GB' }),\n        defineMessage({ id: 'aav.abbreviations.filesize.terabyte', defaultMessage: 'TB' }),\n    ];\n    // Round B, KB, MB, GB, TB size numbers to 0, 0, 1, 2, 3 decimal place(s) respectively.\n    const precision = [0, 0, 1, 2, 3];\n\n    if (isize === undefined) {\n        return { displayValue: 'NaN', value: NaN, abbrev: '–' };\n    }\n\n    const index = isize > 0 ? Math.floor(Math.log(isize) / Math.log(BYTE_CONVERSION_BASE)) : 0;\n    const multiplier = 10 ** (precision[index] || 0);\n    const value = Math.round((isize / BYTE_CONVERSION_BASE ** index) * multiplier) / multiplier;\n    const abbrev = intl.formatMessage(sizeAbbrevMap[index]);\n    const displayValue = intl.formatNumber(value);\n\n    return { displayValue, value, abbrev };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport { useIntl } from 'react-intl';\nimport { formatFileSize } from '../../utils/formatting-utils';\n\n/**\n * Designed to display the size of a file in a human-readable format.\n * @param sizeInBytes The size of the file in bytes.\n * @returns formatted size of the file or a dash if the size is not available.\n */\nexport default function Size({ sizeInBytes }: { sizeInBytes?: number }) {\n    const intl = useIntl();\n    if (!sizeInBytes) {\n        // eslint-disable-next-line formatjs/no-literal-string-in-jsx -- Do not need internationalization\n        return <>&ndash;</>;\n    }\n\n    const { displayValue, abbrev } = formatFileSize(sizeInBytes, intl);\n    return (\n        <>\n            {displayValue} {abbrev}\n        </>\n    );\n}\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M14 18.5H6A.75.75 0 0 1 6 17h8a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.75 16H3.25C2.01 16 1 14.99 1 13.75v-8.5C1 4.01 2.01 3 3.25 3h13.5C17.99 3 19 4.01 19 5.25v8.5c0 1.24-1.01 2.25-2.25 2.25zM3.25 4.5a.751.751 0 0 0-.75.75v8.5c0 .413.337.75.75.75h13.5c.413 0 .75-.337.75-.75v-8.5a.751.751 0 0 0-.75-.75H3.25z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.341 5.28L12.72 1.66A2.235 2.235 0 0 0 11.13 1H5.25C4.01 1 3 2.01 3 3.25v12.5C3 16.99 4.01 18 5.25 18h9.5c1.24 0 2.25-1.01 2.25-2.25V6.871c0-.592-.24-1.172-.659-1.59zm-1.06 1.06c.045.046.073.105.105.16H12.25a.751.751 0 0 1-.75-.75V2.614c.055.032.113.06.159.106l3.621 3.62zM14.75 16.5h-9.5a.751.751 0 0 1-.75-.75V3.25c0-.413.336-.75.75-.75H10v3.25C10 6.99 11.01 8 12.25 8h3.25v7.75c0 .413-.336.75-.75.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"ICONS\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M12.253 11.95c-2.276 0-4.128-1.947-4.128-4.34s1.852-4.339 4.128-4.339 4.128 1.947 4.128 4.34-1.852 4.338-4.128 4.338zm0-7.179c-1.45 0-2.628 1.274-2.628 2.84s1.179 2.838 2.628 2.838S14.88 9.176 14.88 7.61s-1.179-2.839-2.628-2.839zM6.877 17.612c.215-1.992 2.576-3.552 5.376-3.552 2.823 0 5.184 1.556 5.376 3.544.04.414.416.727.818.674a.748.748 0 0 0 .674-.818c-.264-2.748-3.281-4.9-6.868-4.9-3.614 0-6.566 2.103-6.868 4.892a.751.751 0 0 0 1.492.16zm.24-7.893a.751.751 0 0 0-.377-.992c-.985-.443-1.62-1.472-1.62-2.623 0-1.565 1.178-2.838 2.627-2.838.152 0 .3.014.446.04a.75.75 0 1 0 .273-1.475 3.884 3.884 0 0 0-.719-.065c-2.276 0-4.128 1.946-4.128 4.338 0 1.74.984 3.307 2.506 3.992a.751.751 0 0 0 .992-.377zm-4.746 6.388c.205-1.902 2.37-3.426 5.032-3.545a.75.75 0 0 0-.032-1.5l-.034.001c-3.453.155-6.168 2.208-6.458 4.882a.752.752 0 0 0 .747.831.751.751 0 0 0 .745-.669z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\ninterface IconModelProps {\n    height?: number;\n    width?: number;\n    viewBox?: string;\n}\nexport default function IconModel(props: IconModelProps) {\n    const { height = 20, width = 20, viewBox = '0 0 20 20' } = props;\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={width} height={height} viewBox={viewBox}>\n            <path\n                d=\"m17.75,12.42554v-4.85107c.58911-.28204,1-.87903,1-1.57446,0-.96484-.78516-1.75-1.75-1.75-.37109,0-.71423.11798-.9978.31586l-4.27319-2.44183c.0083-.06873.021-.13611.021-.20703,0-.96484-.78516-1.75-1.75-1.75s-1.75.78516-1.75,1.75c0,.07092.0127.13831.021.20703l-4.27319,2.44183c-.28357-.19788-.62671-.31586-.9978-.31586-.96484,0-1.75.78516-1.75,1.75,0,.69543.41089,1.29242,1,1.57446v4.85107c-.58911.28204-1,.87903-1,1.57446,0,.96484.78516,1.75,1.75,1.75.37109,0,.71423-.11798.9978-.31586l4.26514,2.43726c-.00317.04321-.01294.08459-.01294.1286,0,.96484.78516,1.75,1.75,1.75s1.75-.78516,1.75-1.75c0-.04401-.00977-.08539-.01294-.1286l4.26514-2.43726c.28357.19788.62671.31586.9978.31586.96484,0,1.75-.78516,1.75-1.75,0-.69543-.41089-1.29242-1-1.57446Zm-.75,2.32446c-.41309,0-.75-.33643-.75-.75s.33691-.75.75-.75.75.33643.75.75-.33691.75-.75.75Zm-7.75,3.25c0-.41357.33691-.75.75-.75s.75.33643.75.75-.33691.75-.75.75-.75-.33643-.75-.75Zm.75-1.75c-.37122,0-.71436.11804-.99792.31598l-4.26514-2.43707c.0033-.04333.01306-.08478.01306-.12891,0-.69543-.41089-1.29242-1-1.57446v-4.85107c.58911-.28204,1-.87903,1-1.57446,0-.04413-.00977-.08557-.01306-.12891l4.33447-2.47675c.2699.17023.58679.27264.92859.27264s.65869-.10242.92859-.27264l4.33447,2.47675c-.0033.04333-.01306.08478-.01306.12891,0,.69543.41089,1.29242,1,1.57446v4.85107c-.58911.28204-1,.87903-1,1.57446,0,.04413.00977.08557.01306.12891l-4.26514,2.43707c-.28357-.19794-.62671-.31598-.99792-.31598Zm-7.75-2.25c0-.41357.33691-.75.75-.75s.75.33643.75.75-.33691.75-.75.75-.75-.33643-.75-.75Zm.75-8.75c.41309,0,.75.33643.75.75s-.33691.75-.75.75-.75-.33643-.75-.75.33691-.75.75-.75ZM10,1.16699c.41309,0,.75.33643.75.75s-.33691.75-.75.75-.75-.33643-.75-.75.33691-.75.75-.75Zm7.75,4.83301c0,.41357-.33691.75-.75.75s-.75-.33643-.75-.75.33691-.75.75-.75.75.33643.75.75Z\"\n                strokeWidth=\"0\"\n                fill=\"var(--iconPrimary, #222)\"\n            />\n            <path\n                d=\"m7.97852,5.4082c-.2998-.17432-.68164-.06982-.85449.22803l-2.38965,4.12842c-.17285.29883-.07129.68115.22754.854.09863.05713.20703.08398.3125.08398.21582,0,.42578-.11182.54199-.31201l2.38965-4.12842c.17285-.29883.07129-.68115-.22754-.854Z\"\n                strokeWidth=\"0\"\n                fill=\"var(--iconPrimary, #222)\"\n            />\n            <path\n                d=\"m15.26562,9.76465l-2.38965-4.12842c-.17383-.29834-.55469-.40283-.85449-.22803-.29883.17285-.40039.55518-.22754.854l2.38965,4.12842c.11621.2002.32617.31201.54199.31201.10547,0,.21387-.02686.3125-.08398.29883-.17285.40039-.55518.22754-.854Z\"\n                strokeWidth=\"0\"\n                fill=\"var(--iconPrimary, #222)\"\n            />\n        </svg>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport type { ICollectionItem } from '@csc/collection-view';\nimport { DEFAULT_TOOLTIP_DELAY, MIMETYPES } from '@csc/collection-view';\nimport { DC_OFFICE_FILES } from '@csc/common';\nimport { getLibraryType, LibraryPrimaryType } from '@csc/sam-utils';\nimport React, { cloneElement } from 'react';\nimport type { IntlShape, MessageDescriptor } from 'react-intl';\nimport { defineMessage, useIntl } from 'react-intl';\nimport Model from '../svgs/Model';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport {\n    ADOBE_FILE_MIMETYPES,\n    GENERIC_FILE_MIMETYPES,\n} from '../utils/filtering-utils/filtering-type-enums';\nimport {\n    IconOffice,\n    IconLibrary,\n    IconBrand,\n    IconImage,\n    IconVideo,\n    IconSoundEffect,\n    IconMusic,\n    IconAudio,\n    IconVector,\n} from '../utils/icons';\nimport {\n    isFireflyGenerationImage,\n    isFireflyGenerationVideo,\n    isFireflyGenerationVector,\n} from '../utils/view-item/view-item';\nimport { getViewAttributesMap } from './TypeDropdownFilter/utils';\n\nexport const APP_ICON_HEIGHT = 22;\n\nexport interface IAppIconProps {\n    element: ICollectionItem;\n    position: number;\n    useOverlayTriggers: boolean;\n    overrideIcon?: AppIconSpecialCase;\n}\n\nexport interface AppIconSpecialCase {\n    icon?: React.JSX.Element;\n    viewBox: string;\n    tooltip: MessageDescriptor;\n}\n\nexport interface AppIconData {\n    icon?: React.JSX.Element;\n    viewBox: string;\n    tooltip: MessageDescriptor | string;\n}\n\nexport const appIcons: Array<{\n    condition: (asset: ICollectionItem) => boolean;\n    data: AppIconSpecialCase;\n}> = [\n    {\n        condition: (asset) => {\n            const item = (asset as unknown as BackedCollectionItem<SAM.AdobeAsset>).backingItem;\n            return (\n                item.isLibrary &&\n                getLibraryType(item as SAM.Library) === LibraryPrimaryType.TRAINING_SET\n            );\n        },\n        data: {\n            icon: <Model width={14} height={14} />,\n            viewBox: '0 0 20 20',\n            tooltip: defineMessage({\n                id: 'aav.typeFilter.CustomModel',\n                defaultMessage: 'Custom model',\n            }),\n        },\n    },\n    {\n        condition: (asset) => {\n            const item = (asset as unknown as BackedCollectionItem<SAM.AdobeAsset>).backingItem;\n            return (\n                item.isLibrary && getLibraryType(item as SAM.Library) === LibraryPrimaryType.BRAND\n            );\n        },\n        data: {\n            icon: <IconBrand width=\"14\" height=\"14\" />,\n            viewBox: '0 0 20 20',\n            tooltip: defineMessage({ id: 'aav.typeFilter.Brands', defaultMessage: 'Brands' }),\n        },\n    },\n    {\n        condition: (asset) => asset.type === MIMETYPES.LIBRARIES,\n        data: {\n            icon: <IconLibrary width=\"14\" height=\"14\" />,\n            viewBox: '0 0 20 20',\n            tooltip: defineMessage({ id: 'aav.typeFilter.Libraries', defaultMessage: 'Libraries' }),\n        },\n    },\n    {\n        condition: (asset) => asset.type !== undefined && DC_OFFICE_FILES.includes(asset.type),\n        data: {\n            icon: <IconOffice width=\"14\" height=\"14\" />,\n            viewBox: '0 0 20 20',\n            tooltip: defineMessage({\n                id: 'aav.typeFilter.Office',\n                defaultMessage: 'Office 365 file',\n            }),\n        },\n    },\n    {\n        condition: (asset) =>\n            isFireflyGenerationImage((asset as BackedCollectionItem<SAM.AdobeAsset>).backingItem),\n        data: {\n            icon: <IconImage width=\"18\" height=\"18\" />,\n            viewBox: '0 0 20 20',\n            tooltip: defineMessage({\n                id: 'aav.typeFilter.generationImage',\n                defaultMessage: 'Image',\n            }),\n        },\n    },\n    {\n        condition: (asset) =>\n            isFireflyGenerationVideo((asset as BackedCollectionItem<SAM.AdobeAsset>).backingItem),\n        data: {\n            icon: <IconVideo />,\n            viewBox: '0 0 20 20',\n            tooltip: defineMessage({\n                id: 'aav.typeFilter.generationVideo',\n                defaultMessage: 'Video',\n            }),\n        },\n    },\n    {\n        condition: (asset) =>\n            // Is a sound effect audio file\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- appMetadata.data is defined as any\n            (asset as BackedCollectionItem<SAM.AdobeAsset>).backingItem.appMetadata?.data?.firefly\n                ?.module === 'SoundFXGeneration',\n        data: {\n            icon: <IconSoundEffect />,\n            viewBox: '0 0 20 20',\n            tooltip: defineMessage({\n                id: 'aav.typeFilter.generationAudio',\n                defaultMessage: 'Audio',\n            }),\n        },\n    },\n    {\n        condition: (asset) =>\n            // Is a music audio file\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- appMetadata.data is defined as any\n            (asset as BackedCollectionItem<SAM.AdobeAsset>).backingItem.appMetadata?.data?.firefly\n                ?.module === 'musicGeneration',\n        data: {\n            icon: <IconMusic />,\n            viewBox: '0 0 20 20',\n            tooltip: defineMessage({\n                id: 'aav.typeFilter.generationAudio',\n                defaultMessage: 'Audio',\n            }),\n        },\n    },\n    {\n        condition: (asset) =>\n            // Is a speech audio file\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- appMetadata.data is defined as any\n            (asset as BackedCollectionItem<SAM.AdobeAsset>).backingItem.appMetadata?.data?.firefly\n                ?.module === 'textToSpeech',\n        data: {\n            icon: <IconAudio />,\n            viewBox: '0 0 20 20',\n            tooltip: defineMessage({\n                id: 'aav.typeFilter.generationAudio',\n                defaultMessage: 'Audio',\n            }),\n        },\n    },\n    {\n        condition: (asset) =>\n            isFireflyGenerationVector((asset as BackedCollectionItem<SAM.AdobeAsset>).backingItem),\n        data: {\n            icon: <IconVector size=\"S\" />,\n            viewBox: '0 0 20 20',\n            tooltip: defineMessage({\n                id: 'aav.typeFilter.generationVector',\n                defaultMessage: 'Vector',\n            }),\n        },\n    },\n];\n\nfunction getSvgAndTooltip(intl: IntlShape, element: ICollectionItem): AppIconData | undefined {\n    if (!element.type) {\n        return undefined;\n    }\n    const specialCaseData = appIcons.find((x) => x.condition(element))?.data ?? undefined;\n    if (specialCaseData) {\n        return {\n            icon: specialCaseData.icon,\n            viewBox: specialCaseData.viewBox,\n            tooltip: intl.formatMessage(specialCaseData.tooltip),\n        };\n    }\n\n    const adobeAsset = (element as unknown as BackedCollectionItem<SAM.AdobeAsset>).backingItem;\n    const appBadgeMimeType = adobeAsset.isReviewLink\n        ? adobeAsset.reviewLinkSourceType\n        : element.type;\n\n    const adobeFileTypeValues = Object.values(AssetBrowser.AdobeFileTypeValues);\n    for (const value of adobeFileTypeValues) {\n        const mimetypes: string[] = ADOBE_FILE_MIMETYPES[value];\n        if (mimetypes.includes(appBadgeMimeType)) {\n            const data = getViewAttributesMap(intl, value, true);\n            return {\n                icon: data.icon,\n                viewBox: '0 0 56 55',\n                tooltip: data.label,\n            };\n        }\n    }\n\n    const genericFileTypeValues = Object.values(AssetBrowser.GenericFileTypeValues);\n    for (const value of genericFileTypeValues) {\n        const mimetypes: string[] = GENERIC_FILE_MIMETYPES[value];\n        if (mimetypes.includes(appBadgeMimeType)) {\n            const data = getViewAttributesMap(intl, value, true);\n            return {\n                icon: data.icon,\n                viewBox: '0 0 20 20',\n                tooltip: data.label,\n            };\n        }\n    }\n\n    return undefined;\n}\n\nexport default function AppIcon({\n    element,\n    position,\n    useOverlayTriggers,\n    overrideIcon,\n}: IAppIconProps) {\n    let appIconData: AppIconData | undefined;\n    const intl = useIntl();\n\n    if (overrideIcon) {\n        appIconData = {\n            ...overrideIcon,\n            tooltip: intl.formatMessage(overrideIcon.tooltip),\n        };\n    } else {\n        appIconData = getSvgAndTooltip(intl, element);\n    }\n\n    const icon =\n        appIconData?.icon &&\n        cloneElement(appIconData?.icon as unknown as React.JSX.Element, {\n            className: 'aav-appIcon',\n            'data-testid': 'aav-appIcon',\n            viewBox: appIconData.viewBox, // this is from examining the SVG w/h\n        });\n\n    const content = (\n        <div\n            data-testid=\"aav-appIcon-container\"\n            className=\"aav-appIcon-container\"\n            style={{\n                top: position - APP_ICON_HEIGHT / 2,\n            }}\n        >\n            {icon}\n        </div>\n    );\n\n    // goal: 8px from bottom of icon to top of title text\n    return (\n        <>\n            {appIconData &&\n                (useOverlayTriggers ? (\n                    <OverlayTrigger\n                        data-testid=\"aav-appIcon-overlayTrigger\"\n                        placement=\"top\"\n                        trigger={['hover']}\n                        // @ts-expect-error workaround for UXPv8 until RS2 2.55 (in theory)\n                        // autocomplete is an undocumented prop discovered while debugging\n                        // why the tooltips were not appearing on UXPv8.\n                        // https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/OverlayTrigger/js/UxpOverlay.js\n                        // According to this slack thread:\n                        // https://creativecloud.slack.com/archives/CBVFGPHHV/p1723533998606239?thread_ts=1723047024.161849&cid=CBVFGPHHV\n                        // there will be an RS2 2.55 release that addresses this problem.\n                        autoComplete\n                        delayShow={DEFAULT_TOOLTIP_DELAY}\n                    >\n                        {content}\n                        <Tooltip className=\"cdo-ItemTitleTooltip\">{appIconData.tooltip}</Tooltip>\n                    </OverlayTrigger>\n                ) : (\n                    content\n                ))}\n        </>\n    );\n}\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M10 18.75c-4.825 0-8.75-3.925-8.75-8.75S5.175 1.25 10 1.25s8.75 3.925 8.75 8.75-3.925 8.75-8.75 8.75zm0-16c-3.998 0-7.25 3.252-7.25 7.25s3.252 7.25 7.25 7.25 7.25-3.252 7.25-7.25S13.998 2.75 10 2.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9.183 13.943a.751.751 0 0 1-.558-.248l-2.644-2.94a.75.75 0 0 1 1.116-1.003l2.026 2.254 3.7-5.046a.75.75 0 1 1 1.209.887l-4.245 5.79a.745.745 0 0 1-.567.305l-.037.001z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"ICONS\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"22\",\n  height: \"20\",\n  viewBox: \"0 0 22 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M17.5 14.17a.75.75 0 0 1-.75-.75v-2.649a.75.75 0 0 1 1.5 0v2.65a.75.75 0 0 1-.75.75z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M17.5 16.771a.75.75 0 0 1-.75-.75v-.2a.75.75 0 0 1 1.5 0v.2a.75.75 0 0 1-.75.75z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M11.307 17h-7.59a3.455 3.455 0 0 1-3.451-3.451 3.45 3.45 0 0 1 2.324-3.25 3.844 3.844 0 0 1-.065-.703c0-2.18 1.81-3.952 4.034-3.952.279 0 .557.029.83.087.638-1.959 2.477-3.347 4.59-3.347a4.829 4.829 0 0 1 4.819 4.35.75.75 0 1 1-1.492.152 3.332 3.332 0 0 0-6.624-.09.752.752 0 0 1-1.054.586 2.578 2.578 0 0 0-1.07-.238c-1.396 0-2.533 1.1-2.533 2.452 0 .332.07.656.206.965a.75.75 0 0 1-.637 1.051 1.951 1.951 0 0 0-1.828 1.937c0 1.076.876 1.951 1.952 1.951h7.589a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M17.5 9.021a4.5 4.5 0 1 0 0 9c2.485 0 4.48-2.015 4.48-4.5s-1.995-4.5-4.48-4.5zm.75 7a.75.75 0 0 1-1.5 0v-.2a.75.75 0 0 1 1.5 0v.2zm0-2.6a.75.75 0 0 1-1.5 0v-2.65a.75.75 0 0 1 1.5 0v2.65z\",\n  fill: \"var(--iconRedPrimary, #d31510)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"ICONS\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"22\",\n  height: \"20\",\n  viewBox: \"0 0 22 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M11.248 17h-7.53a3.455 3.455 0 0 1-3.452-3.451 3.45 3.45 0 0 1 2.324-3.25 3.844 3.844 0 0 1-.065-.703c0-2.18 1.81-3.952 4.034-3.952.279 0 .557.029.83.087.638-1.959 2.477-3.347 4.59-3.347a4.85 4.85 0 0 1 4.843 4.845c0 .484-.078.968-.231 1.44a.749.749 0 1 1-1.426-.463c.105-.322.157-.651.157-.977 0-1.845-1.5-3.345-3.343-3.345-1.664 0-3.08 1.252-3.297 2.912a.752.752 0 0 1-1.054.586 2.578 2.578 0 0 0-1.07-.238c-1.396 0-2.533 1.1-2.533 2.452 0 .332.07.656.206.965a.75.75 0 0 1-.637 1.051 1.951 1.951 0 0 0-1.828 1.937c0 1.076.876 1.951 1.952 1.951h7.53a.75.75 0 0 1 0 1.5zM18 16.271v-5a.75.75 0 0 0-1.5 0v5a.75.75 0 0 0 1.5 0zm-3 0v-3a.75.75 0 0 0-1.5 0v3a.75.75 0 0 0 1.5 0zm6 0v-7a.75.75 0 0 0-1.5 0v7a.75.75 0 0 0 1.5 0z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint @typescript-eslint/no-unsafe-assignment: \"warn\" -- Temporarily downgrading to warnings while refactoring SVG imports https://jira.corp.adobe.com/browse/CCXCD-14982 */\n\nimport CheckmarkIcon from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_CheckmarkCircle_20_N.svg';\nimport AlertIcon from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_CloudStateErrorRed_22x20_N.svg';\nimport CloudOnlyIcon from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_CloudStateSlowConnection_22x20_N.svg';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport { DEFAULT_TOOLTIP_DELAY } from '@csc/collection-view';\nimport React from 'react';\n\nexport enum CloudBadgeType {\n    ERROR = 'error',\n    CLOUD_ONLY = 'cloud-only',\n    AVAILABLE_OFFLINE = 'available-offline',\n}\n\n// used in tests to swap out SVG for div\n// because atttributes don't seem to get applied to SVG in the tests\nexport const cloudBadgeMap = {\n    [CloudBadgeType.AVAILABLE_OFFLINE]: CheckmarkIcon,\n    [CloudBadgeType.ERROR]: AlertIcon,\n    [CloudBadgeType.CLOUD_ONLY]: CloudOnlyIcon,\n};\n\nexport interface ICloudBadgeProps {\n    badgeType: CloudBadgeType;\n    tooltip: string;\n    isOffline?: boolean;\n}\n\nexport default function CloudBadge({ badgeType, tooltip }: ICloudBadgeProps) {\n    let toolTipVariant: string | undefined;\n    let icon: React.JSX.Element;\n    let Svg;\n    switch (badgeType) {\n        case CloudBadgeType.AVAILABLE_OFFLINE:\n            Svg = cloudBadgeMap[badgeType];\n            icon = (\n                <Svg\n                    data-testid=\"availableOfflineBadge\"\n                    className=\"cdo-CloudStatusIcon\"\n                    id=\"AvailableOfflineIcon\"\n                />\n            );\n            break;\n        case CloudBadgeType.ERROR:\n            Svg = cloudBadgeMap[badgeType];\n            icon = <Svg data-testid=\"errorBadge\" className=\"cdo-CloudStatusIcon\" id=\"AlertIcon\" />;\n            toolTipVariant = 'error';\n            break;\n        case CloudBadgeType.CLOUD_ONLY:\n            Svg = cloudBadgeMap[badgeType];\n            icon = (\n                <Svg\n                    data-testid=\"onlineOnlyBadge\"\n                    className=\"cdo-CloudStatusIcon\"\n                    id=\"CloudOnlyIcon\"\n                />\n            );\n            break;\n        default: {\n            return null;\n        }\n    }\n\n    return (\n        <OverlayTrigger\n            data-testid=\"badgeOverlayTrigger\"\n            placement=\"left\"\n            trigger={['hover']}\n            disabled={!tooltip}\n            delayShow={DEFAULT_TOOLTIP_DELAY}\n        >\n            {icon}\n            {tooltip && (\n                <Tooltip data-testid=\"badgeTooltip\" variant={toolTipVariant}>\n                    {tooltip}\n                </Tooltip>\n            )}\n        </OverlayTrigger>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { useIntl } from 'react-intl';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport CloudBadge, { CloudBadgeType } from './CloudBadge';\n\ninterface ICloudStatusIconProps {\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}\n\nconst CloudStatusIcon = observer(function CloudStatusIcon({ element }: ICloudStatusIconProps) {\n    const intl = useIntl();\n    const adobeAsset = element.backingItem;\n    const isOffline = !navigator.onLine;\n\n    if (adobeAsset.isFolder || adobeAsset.cloudID === '' || isOffline) {\n        return null;\n    }\n\n    if (\n        (adobeAsset.syncSuspensionReason as SAM.AssetSyncSuspensionReason) ===\n        SAM.AssetSyncSuspensionReason.LocalContentCorrupted\n    ) {\n        return (\n            <CloudBadge\n                badgeType={CloudBadgeType.ERROR}\n                tooltip={intl.formatMessage({\n                    id: 'aav.tooltip.syncSuspended.needsAction',\n                    defaultMessage: 'Syncing has stopped. Open to take action.',\n                })}\n                isOffline={!navigator.onLine}\n            />\n        );\n    }\n\n    if (\n        (adobeAsset.syncStatus as SAM.AssetSyncStatus) === SAM.AssetSyncStatus.SyncConflict ||\n        adobeAsset.syncSuspensionReason\n    ) {\n        return (\n            <CloudBadge\n                badgeType={CloudBadgeType.ERROR}\n                tooltip={intl.formatMessage({\n                    id: 'aav.statusIcon.conflicted',\n                    defaultMessage: 'Sync conflict',\n                })}\n                isOffline={!navigator.onLine}\n            />\n        );\n    }\n\n    if (adobeAsset.isAvailableOffline) {\n        return (\n            <CloudBadge\n                badgeType={CloudBadgeType.AVAILABLE_OFFLINE}\n                tooltip={intl.formatMessage({\n                    id: 'aav.statusIcon.availableOffline',\n                    defaultMessage: 'Available offline',\n                })}\n            />\n        );\n    }\n\n    if (!adobeAsset.isAvailableOffline) {\n        return (\n            <CloudBadge\n                badgeType={CloudBadgeType.CLOUD_ONLY}\n                tooltip={intl.formatMessage({\n                    id: 'aav.statusIcon.onlineOnly',\n                    defaultMessage: 'Online-only',\n                })}\n            />\n        );\n    }\n\n    return null;\n});\n\nexport default CloudStatusIcon;\nexport { CloudStatusIcon as CloudStatusIconForTests, type ICloudStatusIconProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport { DEFAULT_TOOLTIP_DELAY } from '@csc/collection-view';\nimport React from 'react';\nimport { defineMessage, useIntl } from 'react-intl';\nimport { IconLceDark, IconLceLight } from '../utils/icons';\nimport type { Theme } from '../utils/theme-utils';\nimport type { IAppIconProps } from './AppIcon';\nimport { APP_ICON_HEIGHT } from './AppIcon';\n\nfunction createSvgComponent<T>(Component: T): React.FC<React.SVGProps<SVGSVGElement>> {\n    return Component as React.FC<React.SVGProps<SVGSVGElement>>;\n}\n\nconst themeToLceIcon = {\n    light: createSvgComponent(IconLceLight),\n    lightest: createSvgComponent(IconLceLight),\n    dark: createSvgComponent(IconLceDark),\n    darkest: createSvgComponent(IconLceDark),\n};\n\ninterface ILceBadgeProps extends IAppIconProps {\n    theme: Theme;\n}\n\nconst LiveCoEditingIcon = ({ position, useOverlayTriggers, theme }: ILceBadgeProps) => {\n    const intl = useIntl();\n    const tooltip = intl.formatMessage(\n        defineMessage({\n            id: 'aav.tooltip.appIcon.lce',\n            defaultMessage: 'Live co-editing is turned on',\n        }),\n    );\n\n    const LceIcon = (theme: Theme) => {\n        const Icon = themeToLceIcon[theme] as React.FC<React.SVGProps<SVGSVGElement>>;\n        return <Icon className=\"aav-appIcon\" data-testid=\"aav-appIcon\" viewBox=\"0 0 20 20\" />;\n    };\n\n    const content = (\n        <div\n            data-testid=\"aav-lceIcon-container\"\n            className=\"aav-lceIcon-container\"\n            style={{\n                top: position - APP_ICON_HEIGHT / 2,\n            }}\n        >\n            {LceIcon(theme)}\n        </div>\n    );\n    return (\n        <>\n            {useOverlayTriggers ? (\n                <OverlayTrigger\n                    data-testid=\"aav-appIcon-overlayTrigger\"\n                    placement=\"top\"\n                    trigger={['hover']}\n                    delayShow={DEFAULT_TOOLTIP_DELAY}\n                >\n                    {content}\n                    <Tooltip className=\"cdo-ItemTitleTooltip\">{tooltip}</Tooltip>\n                </OverlayTrigger>\n            ) : (\n                content\n            )}\n        </>\n    );\n};\n\nexport default LiveCoEditingIcon;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint @typescript-eslint/no-unsafe-assignment: \"warn\" -- Temporarily downgrading to warnings while refactoring SVG imports https://jira.corp.adobe.com/browse/CCXCD-14982 */\n\nimport CCLibrary from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_CCLibrary_20_N.svg';\nimport LocalFileIcon from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_DeviceDesktop_20_N.svg';\nimport YourFilesIcon from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_File_20_N.svg';\nimport ReviewLinkIcon from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_ReviewLink_20_N.svg';\nimport SWYIcon from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_UserGroup_20_N.svg';\nimport ProjectIcon from '@csc/ui/dist/src/Icons/Project';\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport Wait from '@ccx-public/spectrum-wrapper/dist/Wait';\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport type { ICollectionItem, IGridItemProps, IViewItemState, Action } from '@csc/collection-view';\nimport { DateMetadata, GridItem, DEFAULT_TOOLTIP_DELAY } from '@csc/collection-view';\nimport classNames from 'classnames';\nimport type { SyntheticEvent } from 'react';\nimport React, { useCallback } from 'react';\nimport type { IntlShape, MessageDescriptor } from 'react-intl';\nimport { FormattedMessage, defineMessage, useIntl } from 'react-intl';\nimport { AAVOperationStore } from '../../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport './styles.module.css';\nimport type { Theme } from '../../utils/theme-utils';\nimport { getLocation, isLceDocument, isUnhydratedAsset } from '../../utils/view-item-utils';\nimport AppIcon from '../AppIcon';\nimport CloudStatusIcon from '../CloudStatusIcon';\nimport LiveCoEditingIcon from '../LiveCoEditingIcon';\nimport { LoadingPlaceholder } from '../LoadingPlaceholder/LoadingPlaceholder';\nimport { ProjectNameAndBadge } from '../Project';\nimport { useOnline } from '@csc/common';\n\nexport interface LocationData {\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n    showLocation?: boolean;\n    onLocationClick?: (element: BackedCollectionItem<SAM.AdobeAsset>) => Promise<void>;\n    icon?: React.JSX.Element;\n    messageElement: React.JSX.Element;\n    className?: string;\n    tooltip?: string | MessageDescriptor;\n    tooltipDisabled?: boolean;\n}\n\nconst LocationButton = ({\n    icon,\n    messageElement,\n    element,\n    showLocation,\n    onLocationClick,\n    className,\n    tooltip,\n    tooltipDisabled,\n}: LocationData) => {\n    // disabled by default\n    const enabled = showLocation && onLocationClick;\n    const intl = useIntl();\n\n    const handleLocationClick = useCallback(\n        (e: SyntheticEvent) => {\n            if (enabled) {\n                e.stopPropagation();\n                void onLocationClick?.(element).catch((error) =>\n                    console.error('Error executing onLocationClick', error),\n                );\n            }\n        },\n        [enabled, onLocationClick, element],\n    );\n\n    return (\n        <div\n            role=\"button\"\n            className={classNames(className, 'locationButton')}\n            data-testid=\"location\"\n            onClick={handleLocationClick}\n            onKeyDown={(event: React.KeyboardEvent) => {\n                if (event.key === 'Enter') {\n                    event.preventDefault();\n                    handleLocationClick(event);\n                }\n            }}\n            tabIndex={enabled ? 0 : -1}\n        >\n            <OverlayTrigger\n                data-testid=\"aav-location-overlayTrigger\"\n                placement=\"bottom\"\n                trigger={['hover']}\n                disabled={tooltipDisabled}\n                // @ts-expect-error workaround for UXPv8 until RS2 2.55 (in theory)\n                autoComplete\n                delayShow={DEFAULT_TOOLTIP_DELAY}\n            >\n                <div className=\"locationButtonContent\">\n                    {icon}\n                    <div className=\"locationButtonText\">{messageElement}</div>\n                </div>\n                {tooltip && (\n                    <Tooltip>\n                        {typeof tooltip === 'string' ? tooltip : intl.formatMessage(tooltip)}\n                    </Tooltip>\n                )}\n            </OverlayTrigger>\n        </div>\n    );\n};\n\nconst OnlineOnlyBadge = function ({ element }: { element: ICollectionItem }) {\n    // NOTE: online badge only shown locally\n    const isSamCppAvailable = Boolean(window.acplModel);\n    if (!isSamCppAvailable) {\n        return <></>;\n    }\n\n    const collectionItem: BackedCollectionItem<SAM.AdobeAsset> =\n        element as BackedCollectionItem<SAM.AdobeAsset>;\n\n    if (collectionItem.backingItem.isFolder || collectionItem.backingItem.cloudID === '') {\n        return <></>;\n    }\n\n    if (\n        (collectionItem.backingItem.syncStatus as SAM.AssetSyncStatus) ===\n        SAM.AssetSyncStatus.Syncing\n    ) {\n        return <Wait size=\"S\" />;\n    }\n\n    return (\n        <div className=\"cdo-gridItemBadge\" id=\"CDOGridItem_OnlineOnly\">\n            <CloudStatusIcon element={collectionItem} />\n        </div>\n    );\n};\n\nexport const LOCATION_SWY = 'aav.griditem.location.SWY';\nexport const LOCATION_FILES = 'aav.griditem.location.CloudDocuments';\nexport const LOCATION_LOCAL = 'aav.griditem.location.local';\nexport const LOCATION_CCLIBRARY = 'aav.griditem.location.libraries';\nexport const LOCATION_BRANDS = 'aav.griditem.location.brands';\nexport const LOCATION_REVIEW_LINKS = 'aav.griditem.location.reviewLinks';\n\nexport const locationIconMap = {\n    [LOCATION_SWY]: SWYIcon,\n    [LOCATION_FILES]: YourFilesIcon,\n    [LOCATION_LOCAL]: LocalFileIcon,\n    [LOCATION_CCLIBRARY]: CCLibrary,\n    [LOCATION_REVIEW_LINKS]: ReviewLinkIcon,\n};\n\ninterface IAdobeAssetGridItemProps extends IGridItemProps {\n    showLocation?: LocationData['showLocation'];\n    onLocationClick?: LocationData['onLocationClick'];\n    loading?: boolean;\n    intl?: IntlShape;\n}\n\nconst ProjectLocationButton = ({\n    collectionItem,\n    showLocation,\n    onLocationClick,\n    useOverlayTriggers,\n}: {\n    collectionItem: BackedCollectionItem<SAM.AdobeAsset>;\n    showLocation?: boolean;\n    onLocationClick?: (element: BackedCollectionItem<SAM.AdobeAsset>) => Promise<void>;\n    useOverlayTriggers: boolean;\n}) => {\n    const isOnline = useOnline();\n    // projectContext.getProjectbyId(id) fails when offline, so just render fallback UI for location\n    if (!isOnline) {\n        return (\n            <div className=\"offlineProjectLocationButton\">\n                <ProjectIcon size=\"S\" className=\"projectsIcon\" data-testid=\"project-icon\" />\n                <FormattedMessage\n                    id=\"aav.griditem.location.project.offline\"\n                    defaultMessage=\"Projects\"\n                />\n            </div>\n        );\n    }\n\n    const projectId = collectionItem.backingItem.parentProjectID;\n\n    if (!projectId) {\n        return null;\n    }\n\n    return (\n        <ProjectNameAndBadge projectId={projectId}>\n            {({ messageElement, tooltip }) => (\n                <LocationButton\n                    element={collectionItem}\n                    messageElement={messageElement}\n                    showLocation={showLocation}\n                    onLocationClick={onLocationClick}\n                    tooltip={tooltip}\n                    tooltipDisabled={!useOverlayTriggers}\n                />\n            )}\n        </ProjectNameAndBadge>\n    );\n};\n\nexport class AdobeAssetGridItem<TProps = object> extends GridItem<\n    IAdobeAssetGridItemProps & TProps\n> {\n    static defaultProps: Partial<React.ComponentProps<typeof AdobeAssetGridItem>> = {\n        metadataFormat: (element) => {\n            const collectionItem: BackedCollectionItem<SAM.AdobeAsset> =\n                element as unknown as BackedCollectionItem<SAM.AdobeAsset>;\n            return collectionItem.backingItem.modified ? (\n                <DateMetadata date={collectionItem.backingItem.modified} id=\"\" />\n            ) : undefined;\n        },\n    };\n\n    state: IViewItemState = {\n        isRenaming: false,\n        isContextMenuStart: false,\n        useOverlayTriggers: false,\n    };\n\n    protected renditionMargins = 32;\n\n    /** Optional classNames to add to the item. */\n    protected additionalClassNames(): string | undefined {\n        const { isSelected } = this.props;\n        return classNames('cdo-AdobeAssetGridItem', { 'cdo-selected': isSelected });\n    }\n\n    protected renderAppIcon() {\n        const { element, tileHeight = 0, loading, overrideIcon } = this.props;\n        const { useOverlayTriggers } = this.state;\n        if (loading) {\n            return;\n        }\n        return (\n            <AppIcon\n                element={element}\n                position={this.computeRenditionWrapperHeight(tileHeight)}\n                useOverlayTriggers={useOverlayTriggers}\n                overrideIcon={overrideIcon}\n            />\n        );\n    }\n\n    protected renderSecondaryBadge() {\n        const { element, tileHeight = 0, theme } = this.props;\n        const { useOverlayTriggers } = this.state;\n        return (\n            isLceDocument(element) && (\n                <LiveCoEditingIcon\n                    element={element}\n                    position={this.computeRenditionWrapperHeight(tileHeight)}\n                    useOverlayTriggers={useOverlayTriggers}\n                    theme={theme as Theme}\n                />\n            )\n        );\n    }\n\n    protected renderMetadata() {\n        const { element, metadataFormat } = this.props;\n        const { useOverlayTriggers } = this.state;\n\n        const fileExt = element.fileExtension?.trim().toUpperCase();\n        const fileExtContent = fileExt && <span className=\"cdo-itemType\">{fileExt}</span>;\n        const metadataContent = metadataFormat?.(element);\n\n        const content = (\n            <div className=\"aav-metaData\">\n                {fileExtContent}\n                {\n                    // eslint-disable-next-line formatjs/no-literal-string-in-jsx -- Do not need internationalization\n                    fileExtContent && metadataContent && <>&nbsp;&bull;&nbsp;</>\n                }\n                {metadataContent}\n            </div>\n        );\n\n        return useOverlayTriggers ? (\n            <OverlayTrigger\n                data-testid=\"aav-metaData-overlayTrigger\"\n                placement=\"bottom left\"\n                trigger={['hover']}\n                // @ts-expect-error workaround for UXPv8 until RS2 2.55 (in theory)\n                autoComplete\n                delayShow={DEFAULT_TOOLTIP_DELAY}\n            >\n                {content}\n                <Tooltip className=\"cdo-ItemTitleTooltip\">\n                    {fileExtContent}\n                    {\n                        // eslint-disable-next-line formatjs/no-literal-string-in-jsx -- Do not need internationalization\n                        fileExtContent && metadataContent && <>&nbsp;&bull;&nbsp;</>\n                    }\n                    {metadataContent}\n                </Tooltip>\n            </OverlayTrigger>\n        ) : (\n            content\n        );\n    }\n\n    protected locationFormat(element: ICollectionItem): {\n        ui: React.JSX.Element;\n        tooltip?: string;\n    } {\n        const { showLocation, onLocationClick } = this.props;\n        const locationIconStyle = 'aav-LocationIcon';\n        const collectionItem: BackedCollectionItem<SAM.AdobeAsset> =\n            element as unknown as BackedCollectionItem<SAM.AdobeAsset>;\n\n        switch (getLocation(collectionItem)) {\n            case AssetBrowser.ContentViewType.Project:\n                return {\n                    // goal: center text vertically\n                    ui: (\n                        <ProjectLocationButton\n                            collectionItem={collectionItem}\n                            showLocation={showLocation}\n                            onLocationClick={onLocationClick}\n                            useOverlayTriggers={this.state.useOverlayTriggers}\n                        />\n                    ),\n                };\n            case AssetBrowser.ContentViewType.Libraries: {\n                const LocationIcon: typeof CCLibrary = locationIconMap[LOCATION_CCLIBRARY];\n\n                const librariesMessage: MessageDescriptor = defineMessage({\n                    id: 'aav.griditem.location.libraries',\n                    defaultMessage: 'Libraries & brands',\n                });\n\n                const messageElement = <FormattedMessage {...librariesMessage} />;\n\n                return {\n                    ui: (\n                        <LocationButton\n                            element={collectionItem}\n                            icon={\n                                <LocationIcon\n                                    data-testid=\"cclibIcon\"\n                                    viewBox=\"0 0 20 20\"\n                                    className={locationIconStyle}\n                                />\n                            }\n                            messageElement={messageElement}\n                            showLocation={showLocation}\n                            onLocationClick={onLocationClick}\n                            tooltip={librariesMessage}\n                            tooltipDisabled={!this.state.useOverlayTriggers}\n                        />\n                    ),\n                };\n            }\n            case AssetBrowser.ContentViewType.SharedWithYou: {\n                const LocationIcon: typeof SWYIcon = locationIconMap[LOCATION_SWY];\n\n                const sharedWithYouMessage: MessageDescriptor = defineMessage({\n                    id: 'aav.griditem.location.SWY',\n                    defaultMessage: 'Shared with you',\n                });\n                const messageElement = <FormattedMessage {...sharedWithYouMessage} />;\n\n                return {\n                    ui: (\n                        <LocationButton\n                            element={collectionItem}\n                            icon={\n                                <LocationIcon\n                                    data-testid=\"swyicon\"\n                                    viewBox=\"0 0 20 20\" // this is from examining the SVG w/h\n                                    className={locationIconStyle}\n                                />\n                            }\n                            messageElement={messageElement}\n                            showLocation={showLocation}\n                            onLocationClick={onLocationClick}\n                            tooltip={sharedWithYouMessage}\n                            tooltipDisabled={!this.state.useOverlayTriggers}\n                        />\n                    ),\n                };\n            }\n            case AssetBrowser.ContentViewType.ReviewLinks: {\n                const LocationIcon: typeof SWYIcon = locationIconMap[LOCATION_REVIEW_LINKS];\n\n                const reviewLinksMessage: MessageDescriptor = defineMessage({\n                    id: 'aav.griditem.location.reviewLinks',\n                    defaultMessage: 'Review links',\n                });\n                const messageElement = <FormattedMessage {...reviewLinksMessage} />;\n\n                return {\n                    ui: (\n                        <LocationButton\n                            element={collectionItem}\n                            icon={\n                                <LocationIcon\n                                    data-testid=\"reviewIcon\"\n                                    viewBox=\"0 0 20 20\" // this is from examining the SVG w/h\n                                    className={locationIconStyle}\n                                />\n                            }\n                            messageElement={messageElement}\n                            showLocation={showLocation}\n                            onLocationClick={onLocationClick}\n                            tooltip={reviewLinksMessage}\n                            tooltipDisabled={!this.state.useOverlayTriggers}\n                        />\n                    ),\n                };\n            }\n            case AssetBrowser.ContentViewType.CloudDocuments: {\n                const LocationIcon: typeof YourFilesIcon = locationIconMap[LOCATION_FILES];\n\n                const cloudDocsMessage: MessageDescriptor = defineMessage({\n                    id: 'aav.griditem.location.CloudDocuments',\n                    defaultMessage: 'Files',\n                });\n                const messageElement = <FormattedMessage {...cloudDocsMessage} />;\n\n                return {\n                    ui: (\n                        <LocationButton\n                            element={collectionItem}\n                            icon={\n                                <LocationIcon\n                                    data-testid=\"filesicon\"\n                                    viewBox=\"0 0 20 20\" // this is from examining the SVG w/h\n                                    className={locationIconStyle}\n                                />\n                            }\n                            messageElement={messageElement}\n                            showLocation={showLocation}\n                            onLocationClick={onLocationClick}\n                            tooltip={cloudDocsMessage}\n                            tooltipDisabled={!this.state.useOverlayTriggers}\n                        />\n                    ),\n                };\n            }\n            default: {\n                const LocationIcon: typeof LocalFileIcon = locationIconMap[LOCATION_LOCAL];\n\n                const localMessage: MessageDescriptor = defineMessage({\n                    id: 'aav.griditem.location.local',\n                    defaultMessage: 'On your computer',\n                });\n                const messageElement = <FormattedMessage {...localMessage} />;\n\n                return {\n                    ui: (\n                        <LocationButton\n                            element={collectionItem}\n                            icon={\n                                <LocationIcon\n                                    data-testid=\"localicon\"\n                                    viewBox=\"0 0 20 20\" // this is from examining the SVG w/h\n                                    className={locationIconStyle}\n                                />\n                            }\n                            messageElement={messageElement}\n                            showLocation={showLocation}\n                            onLocationClick={onLocationClick}\n                            tooltip={element.path}\n                            tooltipDisabled={!this.state.useOverlayTriggers}\n                        />\n                    ),\n                };\n            }\n        }\n    }\n\n    protected renderLocationMetadata() {\n        const { element } = this.props as IAdobeAssetGridItemProps;\n\n        const { backingItem }: BackedCollectionItem<SAM.AdobeAsset> =\n            element as BackedCollectionItem<SAM.AdobeAsset>;\n\n        if (isUnhydratedAsset(backingItem)) {\n            return <div className=\"unhydratedLoader\" />;\n        }\n\n        const locationData = this.locationFormat(element);\n        const { ui } = locationData;\n        return ui;\n    }\n\n    protected renderRendition(): React.JSX.Element {\n        const { loading } = this.props;\n\n        return (\n            <LoadingPlaceholder loading={loading} data-testid=\"loading-placeholder-rendition\">\n                {super.renderRendition()}\n            </LoadingPlaceholder>\n        );\n    }\n\n    protected renderTitleAndMetadata() {\n        const { element, showLocation, loading } = this.props;\n\n        if (loading) {\n            return (\n                <div className=\"cdo-info\" style={{ paddingLeft: '0.25em', paddingRight: '0.25em' }}>\n                    <LoadingPlaceholder\n                        loading={loading}\n                        style={{ marginBottom: '0.25em', height: '1.5em' }}\n                        data-testid=\"loading-placeholder-metadata\"\n                    />\n                    <LoadingPlaceholder loading={loading} style={{ height: '1.5em' }} />\n                </div>\n            );\n        }\n\n        return (\n            <div className=\"cdo-info\" id=\"CDOGridItem_Info\">\n                {this.renderTitle()}\n                <div className=\"cdo-metaData\" id=\"CDOGridItem_MetaData\">\n                    {this.renderMetadata()}\n                    {!showLocation && <OnlineOnlyBadge element={element} />}\n                </div>\n                {showLocation && (\n                    <div className=\"aav-locationData\" id=\"CDOGridItem_LocationMetaData\">\n                        {this.renderLocationMetadata()}\n                        <OnlineOnlyBadge element={element} />\n                    </div>\n                )}\n            </div>\n        );\n    }\n\n    protected renderThumbnail() {\n        return super.renderThumbnail(this.renderExtraActionsOnThumbnail());\n    }\n\n    protected renderActionContent(\n        action: Action<ICollectionItem>,\n        element: BackedCollectionItem<SAM.AdobeAsset>,\n    ) {\n        return (\n            <Button\n                aria-label={action.label}\n                className=\"cdo-quickActionIconButton\"\n                key={action.analyticsValue}\n                icon={action.icon}\n                size=\"s\"\n                variant=\"action\"\n                onClick={async (event) => {\n                    event.stopPropagation();\n                    await action.execute(new AAVOperationStore(), [element]);\n                }}\n            />\n        );\n    }\n\n    protected renderExtraActionsOnThumbnail() {\n        const { element } = this.props as IAdobeAssetGridItemProps;\n        const quickActions = this.props.actionMenuItems?.filter((action) => action.isQuickAction);\n        const isSelected = this.props.selectionManager?.hasAnySelected;\n        const { useOverlayTriggers } = this.state;\n\n        return (\n            <div className=\"cdo-quickActionIcon\">\n                {!isSelected &&\n                    quickActions?.map((action) => {\n                        if (action.isVisible?.([element])) {\n                            return useOverlayTriggers ? (\n                                <OverlayTrigger\n                                    data-testid={`aav-quickAction-${action.analyticsValue}`}\n                                    placement=\"top\"\n                                    trigger={['hover']}\n                                    key={action.analyticsValue}\n                                >\n                                    {this.renderActionContent(\n                                        action,\n                                        element as BackedCollectionItem<SAM.AdobeAsset>,\n                                    )}\n                                    <Tooltip>{action.label}</Tooltip>\n                                </OverlayTrigger>\n                            ) : (\n                                this.renderActionContent(\n                                    action,\n                                    element as BackedCollectionItem<SAM.AdobeAsset>,\n                                )\n                            );\n                        }\n                    })}\n            </div>\n        );\n    }\n\n    onMouseOver = () => {\n        this.setState({ useOverlayTriggers: true });\n    };\n}\n\ntype IGridItemPropsExternal = IAdobeAssetGridItemProps & IGridItemProps;\n\nexport { type IGridItemPropsExternal as IGridItemProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IListItemProps } from '@csc/collection-view';\nimport { ListItem } from '@csc/collection-view';\nimport React from 'react';\nimport { LoadingPlaceholder } from '../LoadingPlaceholder/LoadingPlaceholder';\n\ninterface IAdobeAssetListItemProps extends IListItemProps {\n    loading?: boolean;\n}\n\nexport class AdobeAssetListItem<TProps = unknown> extends ListItem<\n    IAdobeAssetListItemProps & TProps\n> {\n    static defaultProps: Partial<React.ComponentProps<typeof AdobeAssetListItem>> = {\n        loading: false,\n    };\n\n    protected renderMetadata(): React.JSX.Element {\n        return <></>;\n    }\n\n    protected legacyRenderMetadata(): React.JSX.Element {\n        return <></>;\n    }\n\n    protected renderRendition(): React.JSX.Element {\n        const { loading } = this.props;\n        return (\n            <LoadingPlaceholder loading={loading} style={{ width: '100%', height: '100%' }}>\n                {super.renderRendition()}\n            </LoadingPlaceholder>\n        );\n    }\n\n    protected renderTitle(): React.JSX.Element {\n        const { loading } = this.props;\n        return (\n            <LoadingPlaceholder loading={loading} style={{ maxWidth: '160px', height: '1.5em' }}>\n                {super.renderTitle()}\n            </LoadingPlaceholder>\n        );\n    }\n}\n\ntype IListItemPropsExternal = IAdobeAssetListItemProps & IListItemProps;\n\nexport { type IListItemPropsExternal as IListItemProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nexport const DotSeparator = () => {\n    return (\n        <>\n            {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx -- HTML entities */}\n            <span aria-hidden=\"true\">&nbsp;&bull;&nbsp;</span>\n        </>\n    );\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport type { ICollectionItem } from '@csc/collection-view';\nimport { DEFAULT_TOOLTIP_DELAY } from '@csc/collection-view';\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { DotSeparator } from '../DotSeparator/DotSeparator';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst renderExpressMetadata = (\n    element: BackedCollectionItem<SAM.AdobeAsset>,\n    metadataFormat?: (element: ICollectionItem) => React.JSX.Element | undefined,\n) => {\n    const fileExt = (\n        <span className=\"cdo-itemType\">\n            <FormattedMessage id=\"express.subtitle\" defaultMessage=\"ADOBE EXPRESS\" />\n        </span>\n    );\n    const metadataContent = metadataFormat?.(element);\n\n    return (\n        <OverlayTrigger\n            placement=\"bottom left\"\n            trigger={['hover']}\n            // @ts-expect-error workaround for UXPv8 until RS2 2.55 (in theory)\n            autoComplete\n            delayShow={DEFAULT_TOOLTIP_DELAY}\n        >\n            <div className=\"aav-metaData\">\n                {fileExt}\n                {fileExt && metadataContent && <DotSeparator />}\n                {metadataContent}\n            </div>\n            <Tooltip className=\"cdo-ItemTitleTooltip\">\n                {fileExt}\n                {fileExt && metadataContent && <DotSeparator />}\n                {metadataContent}\n            </Tooltip>\n        </OverlayTrigger>\n    );\n};\n\nexport class ExpressGridItem extends AdobeAssetGridItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected renderMetadata(): React.JSX.Element {\n        const { element, metadataFormat } = this.props;\n        return renderExpressMetadata(element, metadataFormat);\n    }\n}\nexport class ExpressListItem extends AdobeAssetListItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected legacyRenderMetadata(): React.JSX.Element {\n        const { element } = this.props;\n        return renderExpressMetadata(element);\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst renderLibraryElementMetadata = () => (\n    <span className=\"cdo-itemType\">\n        <FormattedMessage id=\"libraryelement.subtitle\" defaultMessage=\"LIBRARY ELEMENT\" />\n    </span>\n);\n\nexport class LibraryElementGridItem extends AdobeAssetGridItem {\n    protected renderMetadata(): React.JSX.Element {\n        return renderLibraryElementMetadata();\n    }\n}\nexport class LibraryElementListItem extends AdobeAssetListItem {\n    protected legacyRenderMetadata(): React.JSX.Element {\n        return renderLibraryElementMetadata();\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { LibraryPrimaryType } from '@csc/sam-utils';\nimport classnames from 'classnames';\nimport React from 'react';\nimport Model from '../../svgs/Model';\nimport { IconLibrary, IconBrand } from '../../utils/icons';\nimport styles from './styles.module.css';\n\ninterface EmptyLibraryThumbnailIconProps {\n    listView: boolean;\n    singleTileDisplay?: boolean;\n    libraryType: LibraryPrimaryType;\n}\n\nexport enum ThumbnailSize {\n    XXS = 'xxs', // List view single tile\n    XS = 'xs', // List view full tile\n    S = 's', // Grid view single tile\n    L = 'l', // Grid view full tile\n}\n\nconst ThumbnailDimensions = {\n    [ThumbnailSize.XXS]: { height: 15, width: 15 },\n    [ThumbnailSize.XS]: { height: 20, width: 20 },\n    [ThumbnailSize.S]: { height: 30, width: 30 },\n    [ThumbnailSize.L]: { height: 59, width: 58 },\n};\n\nexport const EmptyLibraryThumbnail: React.FC<EmptyLibraryThumbnailIconProps> = ({\n    singleTileDisplay = true,\n    listView,\n    libraryType,\n}) => {\n    const size: ThumbnailSize = listView\n        ? singleTileDisplay\n            ? ThumbnailSize.XS\n            : ThumbnailSize.XXS\n        : singleTileDisplay\n          ? ThumbnailSize.L\n          : ThumbnailSize.S;\n    const { height, width } = ThumbnailDimensions[size];\n    const getIconByLibraryType = (libraryType: LibraryPrimaryType) => {\n        switch (libraryType) {\n            case LibraryPrimaryType.BRAND:\n                return <IconBrand height={height} width={width} viewBox=\"0 0 20 20\" />;\n            case LibraryPrimaryType.LIBRARY:\n                return <IconLibrary height={height} width={width} viewBox=\"0 0 20 20\" />;\n            case LibraryPrimaryType.TRAINING_SET:\n                return <Model height={height} width={width} />;\n            default:\n                return <IconLibrary height={height} width={width} viewBox=\"0 0 20 20\" />;\n        }\n    };\n    return (\n        <div\n            data-testid=\"empty-view-library-card-icon\"\n            className={classnames(styles.libraryRenditionFull, styles.libraryRenditionTile)}\n        >\n            {getIconByLibraryType(libraryType)}\n        </div>\n    );\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// Converts a single color component to a hexadecimal string\nexport const colorToHex = (color: number): string => {\n    const colorRound = Math.max(0, Math.min(255, Math.round(color)));\n    const hexadecimal = colorRound.toString(16);\n    return hexadecimal.length === 1 ? '0' + hexadecimal : hexadecimal;\n};\n\n// Converts RGBA color values to a hexadecimal string\nexport const rgbaToHex = (r: number, g: number, b: number, a: number): string => {\n    return '#' + colorToHex(r) + colorToHex(g) + colorToHex(b) + colorToHex(Math.floor(a * 255));\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { toJS } from 'mobx';\nimport type { Color, ColorSwatch, Rendition } from '../types/LibraryTypes';\n\n/**\n * Rounds down the color values to the nearest whole number.\n * @param colorObject - The color object to be rounded.\n * @returns The new color object with rounded values.\n */\n\nexport default function roundDownColor(colorObject: Color): Color {\n    return Object.entries(colorObject).reduce((acc, [key, value]) => {\n        acc[key] = Math.round(value);\n        return acc;\n    }, {} as Color);\n}\n\n/**\n * Extracts RGB data from a rendition.\n * @param rendition - The rendition object containing color swatches.\n * @returns An array of color swatches with mode 'RGB', or null if none found.\n */\nexport function getRGBData(rendition: Rendition) {\n    const rawColorData = toJS(rendition);\n    if (!rawColorData.swatches) {\n        return null;\n    }\n\n    const colors: ColorSwatch[] = rawColorData.swatches.flat() ?? [];\n    return colors.filter((swatch) => swatch && swatch.mode === 'RGB');\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport React, { useMemo } from 'react';\nimport styles from '../styles.module.css';\nimport type { Rendition } from '../types/LibraryTypes';\nimport { rgbaToHex } from '../utils/LibraryUtils';\nimport roundDownColor, { getRGBData } from '../utils/colorUtils';\n\ninterface ColorElementViewProps {\n    renditionData: SAM.LibraryObjectRenditions;\n}\n\nexport const ColorElementView: React.FC<ColorElementViewProps> = ({ renditionData }) => {\n    const rendition = renditionData as Rendition;\n    const rgbData = useMemo(() => {\n        return !rendition.swatches && rendition.value ? rendition.value : getRGBData(rendition);\n    }, [rendition]);\n\n    const swatch = rgbData?.[0];\n\n    if (!swatch || !('value' in swatch)) {\n        return null;\n    }\n\n    const color = roundDownColor(swatch.value);\n    const opacity = swatch.alpha !== undefined ? swatch.alpha : 1;\n\n    return (\n        <div\n            className={styles.libraryRenditionSwatch}\n            data-testid=\"color-element-view\"\n            style={{\n                backgroundColor: rgbaToHex(color.r, color.g, color.b, opacity),\n                opacity: opacity,\n                width: '100%',\n                height: '100%',\n            }}\n        />\n    );\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport React, { useMemo } from 'react';\nimport styles from '../styles.module.css';\nimport type { ColorSwatch, Rendition } from '../types/LibraryTypes';\nimport { rgbaToHex } from '../utils/LibraryUtils';\nimport roundDownColor, { getRGBData } from '../utils/colorUtils';\n\ninterface ColorThemeElementViewProps {\n    renditionData: SAM.LibraryObjectRenditions;\n}\n\nexport const ColorThemeElementView: React.FC<ColorThemeElementViewProps> = ({ renditionData }) => {\n    const rendition = renditionData as Rendition;\n    const rgbData = useMemo(() => {\n        return !rendition.swatches && rendition.value ? rendition.value : getRGBData(rendition);\n    }, [rendition]);\n\n    if (!rgbData) {\n        return null;\n    }\n    return (\n        <>\n            {rgbData.map((c: ColorSwatch, index) => {\n                const roundedColor = roundDownColor(c.value);\n                return (\n                    <div\n                        className={styles.libraryRenditionSwatch}\n                        key={`${c.mode}-${index}`}\n                        data-testid={`color-theme-element-view-${index}`}\n                        style={{\n                            backgroundColor: rgbaToHex(\n                                roundedColor.r,\n                                roundedColor.g,\n                                roundedColor.b,\n                                c.alpha ?? 1,\n                            ),\n                            width: '100%',\n                            height: '100%',\n                        }}\n                    />\n                );\n            })}\n        </>\n    );\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type {\n    ColorData,\n    ColorStopData,\n    Gradient,\n    GradientStopData,\n    OpacityStopData,\n    RGBColor,\n} from '../types/LibraryTypes';\n\nconst PRECISION = 100; // 2 decimal points\nexport const round = (x) => Math.round(x * PRECISION) / PRECISION;\n// Relativize `offset` to fall between `a` and `b`.\nconst normalize = (a: ColorStopData, b: ColorStopData, offset: number) =>\n    (offset - a.offset) / (b.offset - a.offset);\n\nexport const colorDataToRGBA = (data: RGBColor, opacity: number = 1) => {\n    if (!data) {\n        return;\n    }\n    const red = round(data.value.r);\n    const green = round(data.value.g);\n    const blue = round(data.value.b);\n    const alpha = round(opacity);\n    return `rgba(${red},${green},${blue},${alpha})`;\n};\n\n/**\n * Given two known values `v1` and `v2`, approximates the value of a point `x`.\n * @param {number} x\n * @param {number} v1\n * @param {number} v2\n */\nfunction linearInterpolate(x: number, v1: number, v2: number) {\n    const y = v1 + (v2 - v1) * x;\n    return round(y);\n}\n\n/**\n * Using linear interpolation, approximate the color of the point at `targetOffset` found between known colors `colorDataA` and `colorDataB`.\n * @param {number} targetOffset\n * @param {Array} colorDataA\n * @param {Array} colorDataB\n */\nexport function linearInterpolateColor(\n    targetOffset: number,\n    colorDataA: ColorData[],\n    colorDataB: ColorData[],\n) {\n    const colorA = colorDataA.find((color) => color.mode === 'RGB');\n    const colorB = colorDataB.find((color) => color.mode === 'RGB');\n    // An RGB representation is required.\n    if (!colorA || !colorB) {\n        return;\n    }\n    const newColor = {\n        mode: 'RGB',\n        value: {\n            r: linearInterpolate(targetOffset, colorA.value.r, colorA.value.r),\n            g: linearInterpolate(targetOffset, colorA.value.g, colorA.value.g),\n            b: linearInterpolate(targetOffset, colorA.value.b, colorA.value.b),\n        },\n    };\n    // We put the value in a list since this is just one of the representations of the color (RGB)\n    return [newColor];\n}\n\n/**\n * Add explicit stops representing the midpoints between each stop, as needed.\n * Gradient Stop value will be read and stored using `valueKey`.\n * @param {string} valueKey\n * @param {Array} stops\n */\nexport function addMidpointStops(valueKey: string, stops: ColorStopData[] | OpacityStopData[]) {\n    // The midpoint of two stops is the point where the value is exactly half-way between the value of the two stops.\n    // For stops A and B where the former precedes the latter, the midpoint is stored in B and is expressed as the offset B towards A.\n    // Note that the above implies the first stop in a gradient stores no meaningful midpoint value so we can skip it.\n    const newStops: GradientStopData[] = [];\n    for (let i = 0; i < stops.length; i++) {\n        const stopA = stops[i];\n        const stopB = stops[i + 1];\n        // Add each stop to the list.\n        newStops.push(stopA);\n        if (stopB && stopB.midpoint && round(stopB.midpoint) !== 0.5) {\n            // If the midpoint is not exactly in the middle of the two stops, we need to add an explicit stop there.\n            newStops.push({\n                offset: linearInterpolate(stopB.midpoint, stopA.offset, stopB.offset),\n                [valueKey]:\n                    valueKey === 'color'\n                        ? linearInterpolateColor(\n                              0.5,\n                              stopA[valueKey] as ColorData[],\n                              stopB[valueKey] as ColorData[],\n                          )\n                        : linearInterpolate(\n                              0.5,\n                              stopA[valueKey] as number,\n                              stopB[valueKey] as number,\n                          ),\n            });\n        }\n    }\n    return newStops as ColorStopData[];\n}\n\n/**\n * Interpolate either a color or an opacity value at `offset` using the closest value from `stops` and `prevStop`\n * @param {Array} valueKey\n * @param {Array} offset\n * @param {Array} stops\n * @param {Array} prevStop\n */\nfunction getFauxValue(\n    valueKey: string,\n    offset: number,\n    stops: ColorStopData[],\n    prevStop: ColorStopData,\n) {\n    const nextStop = stops.find((stop) => stop.offset > offset);\n    if (!nextStop) {\n        // Undefined stop at the end of the gradient, value should be equal to that of the last defined stop.\n        return prevStop[valueKey] as number | ColorData[];\n    }\n    if (!prevStop) {\n        // Undefined stop at the start of the gradient, value should be equal to that of the first defined stop.\n        return nextStop[valueKey] as number | ColorData[];\n    }\n    if (valueKey === 'color') {\n        return linearInterpolateColor(\n            normalize(prevStop, nextStop, offset),\n            prevStop[valueKey],\n            nextStop[valueKey],\n        );\n    } else {\n        return linearInterpolate(\n            normalize(prevStop, nextStop, offset),\n            prevStop[valueKey] as number,\n            nextStop[valueKey] as number,\n        );\n    }\n}\n\n/**\n * Create an array of stops containing all stops form both `colorStops` and `opacityStops`.\n * Each value will contain either both color and opacity or be missing one of the two.\n * @param {Array} colorStops\n * @param {Array} opacityStops\n */\nexport function mergeGradientStops(colorStops: ColorStopData[], opacityStops: ColorStopData[]) {\n    const colors = colorStops.slice(0);\n    if (!opacityStops || !opacityStops.length) {\n        colors.forEach((stop) => (stop.opacity = 1));\n        return colors;\n    }\n    const opacities = opacityStops.slice(0);\n    // Invalidate non-standard opacity that is directly specified in the color stops.\n    colors.forEach((stop) => (stop.opacity = undefined));\n    // Create a map of all stop positions in both colorStops and opacityStops.\n    // When a stop position exists in both arrays the data of both stops will be merged.\n    const offsetMap: { [offset: number]: ColorStopData } = {};\n    const addToMap = (stops: ColorStopData[]) =>\n        stops.forEach((stop) => {\n            // Round to avoid not merging because of decimal points.\n            stop.offset = round(stop.offset);\n            offsetMap[stop.offset] = offsetMap[stop.offset] || {};\n            Object.assign(offsetMap[stop.offset], stop);\n        });\n    addToMap(colors);\n    addToMap(opacities);\n    return Object.keys(offsetMap)\n        .map(Number) // Convert keys to numbers\n        .sort((a, b) => a - b) // Ensure numerical sorting\n        .map((offset) => offsetMap[offset]);\n}\n\n/**\n * Create an array of stops containing all stops form both `colorStops` and `opacityStops` with approximated values for non-matching locations.\n * @param {Array} colorStops\n * @param {Array} opacityStops\n */\nexport function addFauxStops(colorStops: ColorStopData[], opacityStops: ColorStopData[]) {\n    // After mergin, for each location we either have both color and opacity data or we're missing one of the two,\n    // in which case we will approximate a value for that stop by interpolation, using the two nearest stops.\n    const merged = mergeGradientStops(colorStops, opacityStops);\n    let prevStop: ColorStopData;\n    return merged.map((stop) => {\n        // Opacity without a color stop, needs a faux color\n        stop.color =\n            stop.color || (getFauxValue('color', stop.offset, colorStops, prevStop) as ColorData[]);\n        // Color stop without an opacity, needs a faux opacity\n        if (stop.opacity === undefined) {\n            stop.opacity = getFauxValue('opacity', stop.offset, opacityStops, prevStop) as number;\n        }\n        prevStop = stop;\n        return stop;\n    });\n}\n\n/**\n * Return all color stops needed to draw a gradient.\n * @param {Array} colorStops\n * @param {Array} opacityStops\n */\nexport function flattenGradientStops(\n    colorStops: ColorStopData[],\n    opacityStops?: OpacityStopData[],\n) {\n    let colors = colorStops.slice(0);\n    // The standard is to specify opacity in the opacity gradient.\n    // Invalidate opacity that is directly specified in the color stops.\n    colors.forEach((stop) => (stop.opacity = undefined));\n    colors = addMidpointStops('color', colorStops);\n    // Account for opacity in the gradient.\n    if (!opacityStops || opacityStops.length === 0) {\n        // Default case, just set the opacities all to 1 to express full opacity accross the gradient.\n        colors.forEach((stop) => (stop.opacity = 1));\n    } else {\n        // In the case where an Opacity gradient is specified, it should be overlaid with the Color gradient.\n        // However, it is possible that the positions of the Color and Opacity stops do not match.\n        // In that case we will create extra, \"faux\" stops that will approximate the value of the missing stops.\n        const opacities = addMidpointStops('opacity', opacityStops);\n        colors = addFauxStops(colors, opacities);\n    }\n    return colors;\n}\n\n/**\n * Get the CSS backgroundImage for gradient data.\n * Ex. linear-gradient(90deg,rgba(109,101,90,1),rgba(191,188,181,1),rgba(170,152,128,1),rgba(34,34,32,1).\n * Ex. radial-gradient(ellipse 100% 100% at 50% 50%,rgba(109,101,90,1),rgba(191,188,181,1),rgba(170,152,128,1),rgba(34,34,32,1)\n * @param {Object} data\n * @param {boolean} [disabled]\n */\nexport function getGradientCSS(data: Gradient) {\n    // A Gradient Library Element expresses a transition of colors along a figure.\n    // It stores a collection of specified position-color pairs called \"stops\" to specify that at a point X% away from the start of the figure, the color should be exactly Y.\n    // The creator of a Gradient can fine-tune the rate of the color transitions by specifying \"midpoint\" values to the stops, which\n    // represent the position of the point between two stops where the color value is exactly half-way between the value of the other two.\n    // With the structure above, the consumer of a Gradient Element can draw it by assigning each point between two stops, color values gradually closer to the value of the next stop.\n    // Optionally, a Gradient Element can store a second array of stops representing Opacity along the figure.\n    const { type, opacities, centerPoint } = data;\n    let { stops, angle, aspectRatio, scale } = data;\n\n    // Catching missing or corrupted data:\n    // 1) Only certain gradient types are supported.\n    if (!['linear', 'radial'].includes(type) || !stops) {\n        return;\n    }\n    // 2) The default angle is 0.\n    angle = angle || 0;\n    // 3) The default aspect ratio and scale for a radial gradient is 1.\n    aspectRatio = aspectRatio || 1;\n    scale = scale || 1;\n    // 4) The default centerPoint of a radial gradient is at the center of the container (50% 50%).\n    const centerX = centerPoint && centerPoint.x !== undefined ? centerPoint.x : 0.5;\n    const centerY = centerPoint && centerPoint.y !== undefined ? centerPoint.y : 0.5;\n\n    stops = flattenGradientStops(stops, opacities);\n\n    // These are the CSS properties needed to accurately render the gradient.\n    let transform: string = '';\n\n    const gradient: string[] = [];\n    // We visit each stop, extract the color and opacity data and convert them to an RGBA value we can use for styling.\n    for (let i = 0; i < stops.length; i++) {\n        const stop = stops[i];\n        // A stop can be represented in any color space but it should always include an RGB representation.\n        const rgbColorData =\n            stop.color && stop.color.length && stop.color.find((color) => color.mode === 'RGB');\n        if (!rgbColorData) {\n            return;\n        }\n        // A stop can have a particular opacity level.\n        const rgba = colorDataToRGBA(rgbColorData, stop.opacity);\n        // A stop's 'offset' is its position relative to the start of the gradient line.\n        const offset = stop.offset && `${Math.round(stop.offset * 100)}%`;\n        gradient.push(`${rgba} ${offset || ''}`);\n    }\n    if (type === 'linear') {\n        // A Library Gradient's angle is measured anti-clockwise from the positive x-axis (0deg points to the right)\n        // A CSS Gradient's angle is measured clockwise from the positive y-axis (0deg points up). So we adjust by 90deg.\n        gradient.unshift(`${90 - angle}deg`);\n    } else {\n        // For radial gradients, we will take care of respecting the angle, aspectRatio, scale and center point using the CSS `transform` property\n        // Note that while in a CC Gradient, scale refers to the entire width (diameter), in CSS the dimensions are based on the radius, so we need to multiply by .5\n        const scaleX = 0.5 * scale;\n        const SCALE = Math.ceil(\n            2 *\n                Math.max(\n                    Math.max(1, Math.abs(centerX)) / scaleX,\n                    Math.max(1, Math.abs(centerY)) / (scaleX * aspectRatio),\n                ),\n        );\n        // Place a small circle in the center.\n        gradient.unshift(`ellipse ${50 / SCALE}% ${50 / SCALE}% at 50% 50%`);\n        // Leave default transformOrigin in th the center of the container.\n        // Scale the radial gradient to respect the scale and aspect ratio, rotate to repect the angle and translate to respect the center point (offset from 0.5 since we render the ellipsis at the center).\n        // CCS `rotate` values are measured clockwise from the x-axis (0deg points right, progresses downward),\n        // while Library Gradient's angle is measured anti-clockwise from the positive x-axis (0deg points right, progresses upward), so flip sign to convert.\n        transform = `translate(${round((centerX - 0.5) * 100)}%, ${round(\n            (centerY - 0.5) * 100,\n        )}%) rotate(${-1 * angle}deg) scale(${scale * SCALE},${scale * SCALE * aspectRatio})`;\n    }\n    // Finally, set the actual CSS gradient string.\n    const backgroundImage = `${type}-gradient(${gradient.join(',')})`;\n    return { backgroundImage, transform };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { useMemo } from 'react';\nimport css from '../styles.module.css';\nimport type { Gradient } from '../types/LibraryTypes';\nimport { getGradientCSS } from '../utils/gradient';\n\ninterface GradientElementViewProps {\n    gradientData: Gradient;\n}\n\nexport const GradientElementView: React.FC<GradientElementViewProps> = ({ gradientData }) => {\n    const gradientStyle = useMemo(() => getGradientCSS(gradientData), [gradientData]);\n\n    return (\n        <div\n            data-testid=\"gradient-element-view\"\n            className={css.libraryRenditionGradientContainer}\n            style={gradientStyle}\n        />\n    );\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { LibraryPrimaryType } from '@csc/sam-utils';\nimport React from 'react';\nimport { LoadingPlaceholder } from '../../LoadingPlaceholder/LoadingPlaceholder';\nimport { EmptyLibraryThumbnail } from '../EmptyLibraryThumbnail';\nimport { SAM } from '@ccx-public/component-types';\n\ninterface ThumbnailViewProps {\n    url: string;\n    renditionStatus: SAM.RenditionStatus;\n    libraryType: LibraryPrimaryType;\n}\n\nexport const ThumbnailView: React.FC<ThumbnailViewProps> = ({\n    url,\n    renditionStatus,\n    libraryType,\n}) => {\n    if (renditionStatus === SAM.RenditionStatus.Error) {\n        return (\n            <EmptyLibraryThumbnail singleTileDisplay listView={false} libraryType={libraryType} />\n        );\n    }\n    return (\n        <LoadingPlaceholder\n            loading={\n                renditionStatus === SAM.RenditionStatus.NotStarted ||\n                renditionStatus === SAM.RenditionStatus.Fetching\n            }\n        >\n            {/* eslint-disable-next-line jsx-a11y/alt-text -- Add alt text to the image */}\n            <img data-testid=\"image-element-view\" src={url.toString()} />\n        </LoadingPlaceholder>\n    );\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nexport enum RenditionTypes {\n    image = 'href',\n    color = 'application/vnd.adobe.element.color+dcx',\n    colorTheme = 'application/vnd.adobe.element.colortheme+dcx',\n    gradient = 'application/vnd.adobe.element.gradient+dcx',\n}\n\nexport type Color = { r: number; g: number; b: number };\n\nexport type ColorSwatch = {\n    mode: string;\n    value: Color;\n    alpha?: number;\n    colorData?: ColorData;\n};\n\nexport type Rendition = {\n    swatches?: ColorSwatch[][];\n    value?: ColorSwatch[];\n};\n\nexport interface RGBColor {\n    mode: 'RGB';\n    value: {\n        r: number;\n        g: number;\n        b: number;\n    };\n}\n\nexport interface CMYKColor {\n    mode: 'CMYK';\n    value: {\n        c: number;\n        m: number;\n        y: number;\n        k: number;\n    };\n}\n\nexport interface LabColor {\n    mode: 'LAB';\n    value: {\n        l: number;\n        a: number;\n        b: number;\n    };\n}\n\nexport interface HSBColor {\n    mode: 'HSB';\n    value: {\n        h: number;\n        s: number;\n        b: number;\n    };\n}\n\nexport interface GreyColor {\n    mode: 'GREY';\n    value: number;\n}\nexport type ColorData = RGBColor | CMYKColor | LabColor | HSBColor | GreyColor;\n\nexport interface ColorStopData extends GradientStopData {\n    color: ColorData[];\n    opacity?: number;\n}\n\nexport interface OpacityStopData extends GradientStopData {\n    opacity: number;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- This guard can check any type\nexport const isGradientData = (o: any = {}): o is Gradient =>\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Purposefully accessing a property of any object\n    o.type === 'linear' || o.type === 'radial' || o.type === 'noise';\n\nexport interface Gradient {\n    type: 'linear' | 'radial' | 'noise';\n    stops: ColorStopData[];\n    interpolation: string;\n    angle?: number;\n    scale?: number;\n    aspectRatio?: number;\n    centerPoint?: {\n        x: number;\n        y: number;\n    };\n    opacities?: OpacityStopData[];\n}\n\nexport interface GradientStopData {\n    offset: number;\n    midpoint?: number;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\n\nimport { Themes } from '@csc/common';\nimport { LibraryPrimaryType } from '@csc/sam-utils';\nimport classnames from 'classnames';\nimport { toJS } from 'mobx';\nimport { observer } from 'mobx-react';\nimport React, { useMemo } from 'react';\nimport { EmptyLibraryThumbnail } from './EmptyLibraryThumbnail';\nimport { ColorElementView } from './RenditionViews/ColorElementView';\nimport { ColorThemeElementView } from './RenditionViews/ColorThemeElementView';\nimport { GradientElementView } from './RenditionViews/GradientElementView';\nimport { ThumbnailView } from './RenditionViews/ThumbnailView';\nimport styles from './styles.module.css';\nimport type { Gradient } from './types/LibraryTypes';\nimport { RenditionTypes } from './types/LibraryTypes';\n\ninterface LibraryRenditionViewProps {\n    libraryRenditionGrid: SAM.RenditionTile[] | undefined;\n    listView: boolean;\n    theme: Themes | undefined;\n    elementsCount: number | undefined;\n    libraryType: LibraryPrimaryType;\n    singleTileDisplay?: boolean;\n}\n\nconst renderTile = (\n    currTile: SAM.RenditionTile | undefined,\n    listView: boolean,\n    libraryType: LibraryPrimaryType,\n    libraryRenditionGrid?: SAM.RenditionTile[],\n    singleTileDisplay?: boolean,\n) => {\n    // while waiting for libraryData to be populated, show skeleton\n    if (!libraryRenditionGrid) {\n        return (\n            <EmptyLibraryThumbnail\n                singleTileDisplay={singleTileDisplay}\n                listView={listView}\n                libraryType={libraryType}\n            />\n        );\n    }\n\n    if (currTile) {\n        /**\n         *  TODO: https://jira.corp.adobe.com/browse/CCXW-21306 There exist a type mismatch in SAM for type field in RenditionTile which is suppose to be\n         *  of type DataRenditionMimeTypes  but returned as type DataElementTypes\n         * */\n        const { type } = currTile as { type: RenditionTypes };\n\n        switch (type) {\n            case RenditionTypes.color:\n                return (\n                    <ColorElementView\n                        renditionData={currTile.data as SAM.LibraryObjectRenditions}\n                    />\n                );\n            case RenditionTypes.colorTheme:\n                return (\n                    <ColorThemeElementView\n                        renditionData={currTile.data as SAM.LibraryObjectRenditions}\n                    />\n                );\n            case RenditionTypes.gradient: {\n                const gradientData = toJS(currTile.data) as Gradient;\n                if (['linear', 'radial'].includes(gradientData.type)) {\n                    return <GradientElementView gradientData={gradientData} />;\n                }\n                break;\n            }\n            case RenditionTypes.image:\n                return (\n                    <ThumbnailView\n                        url={currTile.imageUrl || ''}\n                        renditionStatus={currTile.imageStatus}\n                        libraryType={libraryType}\n                    />\n                );\n            default:\n                return (\n                    <EmptyLibraryThumbnail\n                        singleTileDisplay={singleTileDisplay}\n                        listView={listView}\n                        libraryType={libraryType}\n                    />\n                );\n        }\n    }\n    return (\n        <EmptyLibraryThumbnail\n            singleTileDisplay={singleTileDisplay}\n            listView={listView}\n            libraryType={libraryType}\n        />\n    );\n};\n\nexport const LibraryRenditionView = observer(\n    ({\n        libraryRenditionGrid,\n        theme = Themes.light,\n        listView,\n        elementsCount = 0,\n        libraryType,\n        singleTileDisplay = false,\n    }: LibraryRenditionViewProps) => {\n        const isCustomModelTrainingSet = libraryType === LibraryPrimaryType.TRAINING_SET;\n        const currTile = useMemo(() => {\n            const tiles = libraryRenditionGrid;\n            return (tileInd: number) =>\n                tiles && tileInd < tiles.length ? tiles[tileInd] : undefined;\n        }, [libraryRenditionGrid]);\n\n        // error or no elements, display icon\n        if (!libraryRenditionGrid || (elementsCount === 0 && !singleTileDisplay)) {\n            return <EmptyLibraryThumbnail listView={listView} libraryType={libraryType} />;\n        }\n        // loaded but no rendition available, display icon\n        if (!libraryRenditionGrid || libraryRenditionGrid.length === 0) {\n            return <EmptyLibraryThumbnail listView={listView} libraryType={libraryType} />;\n        }\n\n        // not enough elements for 2x2 grid, show one tile only or it's a custom model training set listing\n        if (isCustomModelTrainingSet || elementsCount < 2 || singleTileDisplay) {\n            const tile = renderTile(currTile(0), listView, libraryType, libraryRenditionGrid, true);\n            const isEmptyViewIcon = tile.type === EmptyLibraryThumbnail;\n            return (\n                <div className={styles.libraryRenditionContainer} data-testid=\"main-rendition\">\n                    <div\n                        className={classnames(\n                            styles.libraryRenditionFull,\n                            styles.libraryRenditionTile,\n                            !isEmptyViewIcon && styles[`libraryRenditionTile${theme}`],\n                        )}\n                    >\n                        {tile}\n                    </div>\n                </div>\n            );\n        }\n        // two or more elements are found, show 2x2 grid\n        return (\n            <div\n                data-testid=\"library-card-rendition-tile\"\n                className={styles.libraryRenditionContainer}\n            >\n                {['TopLeft', 'TopRight', 'BottomLeft', 'BottomRight'].map((position, index) => {\n                    const tile = renderTile(\n                        currTile(index),\n                        listView,\n                        libraryType,\n                        libraryRenditionGrid,\n                        false,\n                    );\n                    const isEmptyViewIcon = tile.type === EmptyLibraryThumbnail;\n                    return (\n                        <div\n                            key={position}\n                            data-testid={`tile-${position}`}\n                            className={classnames(\n                                styles[`libraryRendition${position}`],\n                                styles.libraryRenditionTile,\n                                !isEmptyViewIcon && styles[`libraryRenditionTile${theme}`],\n                            )}\n                        >\n                            {tile}\n                        </div>\n                    );\n                })}\n            </div>\n        );\n    },\n);\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type { ICollectionItem } from '@csc/collection-view';\nimport { DateMetadata } from '@csc/collection-view';\nimport { getLibraryType, LibraryPrimaryType, isBrand } from '@csc/sam-utils';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport AppIcon from '../AppIcon';\nimport { DotSeparator } from '../DotSeparator/DotSeparator';\nimport { LibraryRenditionView } from '../Library/LibraryRenditionView';\nimport { LoadingPlaceholder } from '../LoadingPlaceholder/LoadingPlaceholder';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nexport interface ILibraryItemProps {\n    modifiedDate: Date;\n}\n\ntype RenditionGridProps = {\n    libraryRenditionGrid: SAM.RenditionTile[] | undefined;\n    singleTileDisplay: boolean;\n};\n\nconst _getRenditionViewProps = (library: SAM.Library): RenditionGridProps => {\n    const customThumbnail = library.customThumbnail;\n    const shouldUseCustomThumbnail = isBrand(library) && customThumbnail;\n    return {\n        libraryRenditionGrid: shouldUseCustomThumbnail ? [customThumbnail] : library.renditionGrid,\n        singleTileDisplay: !!shouldUseCustomThumbnail,\n    };\n};\n\nexport class LibraryGridItem extends AdobeAssetGridItem<ILibraryItemProps> {\n    private get libraryType(): string | undefined {\n        const { element } = this.props;\n        const collectionItem = element as BackedCollectionItem<SAM.Library>;\n        return getLibraryType(collectionItem.backingItem);\n    }\n\n    /** Optional classNames to add to the item. */\n    protected additionalClassNames(): string | undefined {\n        const { isSelected } = this.props;\n        return classNames(\n            'cdo-AdobeAssetGridItem',\n            { 'cdo-selected': isSelected },\n            this.libraryType !== LibraryPrimaryType.TRAINING_SET && 'library-element',\n        );\n    }\n\n    private renderLibraryMetadata(element: ICollectionItem, modifiedDate: Date) {\n        const collectionItem = element as BackedCollectionItem<SAM.Library>;\n        const isLoading = !collectionItem.backingItem.roles;\n        const getItemType = () => {\n            if (this.libraryType === LibraryPrimaryType.TRAINING_SET) {\n                return <FormattedMessage id=\"cm.subtitle\" defaultMessage=\"CUSTOM MODEL\" />;\n            }\n            if (this.libraryType === LibraryPrimaryType.BRAND) {\n                return <FormattedMessage id=\"brand.subtitle\" defaultMessage=\"BRAND\" />;\n            }\n            return <FormattedMessage id=\"library.subtitle\" defaultMessage=\"LIBRARY\" />;\n        };\n        const MetaDataContent = () => {\n            const fileNameContent = <span className=\"cdo-itemType\">{getItemType()}</span>;\n            const dateContent = (\n                <DateMetadata date={modifiedDate} id=\"LibraryGridItem_DateModified\" />\n            );\n            return (\n                <div className=\"aav-metaData\">\n                    {fileNameContent}\n                    {fileNameContent && dateContent && <DotSeparator />}\n                    {dateContent}\n                </div>\n            );\n        };\n        return (\n            <LoadingPlaceholder loading={isLoading} data-testid=\"loading-library-metadata\">\n                <MetaDataContent />\n            </LoadingPlaceholder>\n        );\n    }\n\n    protected renderRendition(): React.JSX.Element {\n        const { element } = this.props;\n        const collectionItem = element as BackedCollectionItem<SAM.Library>;\n        /**\n         *  if the element count is 0 that means there is not rendition grid no need to render ghost loading. In create library worklow\n         *  renditionGrid api load's async which can sometimes cause error state to be displayed due to timer.\n         */\n        const isLoading =\n            collectionItem.backingItem.elementsCount === 0\n                ? false\n                : !collectionItem.backingItem.renditionGrid;\n        const libraryType = getLibraryType(collectionItem.backingItem);\n        return (\n            <LoadingPlaceholder\n                loading={isLoading}\n                data-testid=\"loading-library-rendition\"\n                errorElement={super.renderRendition()}\n            >\n                <LibraryRenditionView\n                    theme={this.props.theme}\n                    listView={false}\n                    elementsCount={collectionItem.backingItem.elementsCount}\n                    libraryType={libraryType ?? LibraryPrimaryType.LIBRARY}\n                    {..._getRenditionViewProps(collectionItem.backingItem)}\n                />\n            </LoadingPlaceholder>\n        );\n    }\n\n    protected renderMetadata(): React.JSX.Element {\n        const { element, modifiedDate } = this.props;\n        return this.renderLibraryMetadata(element, modifiedDate);\n    }\n    protected renderAppIcon(): React.JSX.Element | undefined {\n        const { element, tileHeight = 0, loading } = this.props;\n        const { useOverlayTriggers } = this.state;\n        const collectionItem = element as BackedCollectionItem<SAM.Library>;\n        const isLoading = loading ? loading : !collectionItem.backingItem.roles;\n        if (isLoading) {\n            return;\n        }\n        return (\n            <AppIcon\n                element={element}\n                position={this.computeRenditionWrapperHeight(tileHeight)}\n                useOverlayTriggers={useOverlayTriggers}\n            />\n        );\n    }\n}\nexport class LibraryListItem extends AdobeAssetListItem<ILibraryItemProps> {\n    componentDidMount() {\n        super.componentDidMount();\n    }\n\n    protected renderRendition(): React.JSX.Element {\n        const { element } = this.props;\n        const collectionItem = element as BackedCollectionItem<SAM.Library>;\n        const libraryType = getLibraryType(collectionItem.backingItem);\n        const isLoading =\n            collectionItem.backingItem.elementsCount === 0\n                ? false\n                : !collectionItem.backingItem.renditionGrid;\n        return (\n            <LoadingPlaceholder\n                loading={isLoading}\n                data-testid=\"loading-library-rendition\"\n                errorElement={super.renderRendition()}\n            >\n                <LibraryRenditionView\n                    theme={this.props.theme}\n                    listView\n                    elementsCount={collectionItem.backingItem.elementsCount}\n                    libraryType={libraryType ?? LibraryPrimaryType.LIBRARY}\n                    {..._getRenditionViewProps(collectionItem.backingItem)}\n                />\n            </LoadingPlaceholder>\n        );\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ICollectionItem } from '@csc/collection-view';\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { ProjectNameBadge } from '../Project';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst renderProjectMetadata = () => (\n    <span className=\"cdo-itemType\">\n        <FormattedMessage id=\"project.subtitle\" defaultMessage=\"PROJECT\" />\n    </span>\n);\n\nconst renderProjectRendition = (projectId: string | undefined = undefined) => {\n    return <ProjectNameBadge projectId={projectId ?? ''} />;\n};\n\nexport class ProjectGridItem extends AdobeAssetGridItem {\n    protected renderRendition(): React.JSX.Element {\n        const { element } = this.props;\n        return renderProjectRendition(element.id);\n    }\n    protected renderMetadata(): React.JSX.Element {\n        return renderProjectMetadata();\n    }\n\n    protected locationFormat(_element: ICollectionItem): {\n        ui: React.JSX.Element;\n        tooltip?: string;\n    } {\n        return {\n            // leave blank like a folder?\n            ui: <span data-testid=\"projectLocation\" />,\n        };\n    }\n}\nexport class ProjectListItem extends AdobeAssetListItem {\n    protected legacyRenderMetadata(): React.JSX.Element {\n        return renderProjectMetadata();\n    }\n    protected renderRendition(): React.JSX.Element {\n        const { element } = this.props;\n        return renderProjectRendition(element.id);\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst renderReviewMetadata = () => (\n    <span className=\"cdo-itemType\">\n        <FormattedMessage id=\"review.subtitle\" defaultMessage=\"REVIEW\" />\n    </span>\n);\n\nexport class ReviewGridItem extends AdobeAssetGridItem {\n    protected renderMetadata(): React.JSX.Element {\n        return renderReviewMetadata();\n    }\n}\nexport class ReviewListItem extends AdobeAssetListItem {\n    protected legacyRenderMetadata(): React.JSX.Element {\n        return renderReviewMetadata();\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst renderWebLinkMetadata = () => (\n    <span className=\"cdo-itemType\">\n        <FormattedMessage id=\"webLink.subtitle\" defaultMessage=\"WEB LINK\" />\n    </span>\n);\n\nexport class WebLinkGridItem extends AdobeAssetGridItem {\n    protected renderMetadata(): React.JSX.Element {\n        return renderWebLinkMetadata();\n    }\n}\nexport class WebLinkListItem extends AdobeAssetListItem {\n    protected legacyRenderMetadata(): React.JSX.Element {\n        return renderWebLinkMetadata();\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { observable } from 'mobx';\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\ninterface IXDItemProps {\n    samJSHostAssetContext: SAM.AssetContext;\n}\n\nconst renderXdMetadata = (doc: SAM.IXDCEDocument) => {\n    return (\n        <span className=\"cdo-itemType\">\n            {doc.includesDevelopmentData ? (\n                <FormattedMessage id=\"designspecs.subtitle\" defaultMessage=\"DESIGN SPECS\" />\n            ) : (\n                <FormattedMessage id=\"prototype.subtitle\" defaultMessage=\"PROTOTYPE\" />\n            )}\n        </span>\n    );\n};\n\nexport class XdArtifactGridItem extends AdobeAssetGridItem<IXDItemProps> {\n    @observable private _xdartifactType: SAM.IXDCEDocument | undefined;\n\n    // eslint-disable-next-line @typescript-eslint/no-misused-promises -- Must be async\n    async componentDidMount() {\n        super.componentDidMount();\n        const { element, samJSHostAssetContext } = this.props;\n        try {\n            this._xdartifactType = await samJSHostAssetContext.getXDCEData(element.id);\n        } catch (err) {\n            console.error(err);\n        }\n    }\n\n    protected renderMetadata(): React.JSX.Element {\n        if (this._xdartifactType) {\n            return renderXdMetadata(this._xdartifactType);\n        }\n        return super.renderMetadata();\n    }\n}\n\nexport class XdArtifactListItem extends AdobeAssetListItem<IXDItemProps> {\n    @observable private _xdartifactType: SAM.IXDCEDocument | undefined;\n    // eslint-disable-next-line @typescript-eslint/no-misused-promises -- Must be async\n    async componentDidMount() {\n        super.componentDidMount();\n        const { element, samJSHostAssetContext } = this.props;\n        try {\n            this._xdartifactType = await samJSHostAssetContext.getXDCEData(element.id);\n        } catch (err) {\n            console.error(err);\n        }\n    }\n\n    protected legacyRenderMetadata(): React.JSX.Element {\n        if (this._xdartifactType) {\n            return renderXdMetadata(this._xdartifactType);\n        }\n        return super.legacyRenderMetadata();\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport FolderGeneral2024 from '../../svgs/FolderGeneral2024';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst renderFolderRendition = () => <FolderGeneral2024 />;\nconst renderFolderMetadata = () => (\n    <span className=\"cdo-itemType\">\n        <FormattedMessage id=\"aav.viewitem.subtitle.folder\" defaultMessage=\"FOLDER\" />\n    </span>\n);\n\nexport class FolderGridItem extends AdobeAssetGridItem {\n    protected additionalClassNames(): string | undefined {\n        return 'cdo-folder ' + super.additionalClassNames();\n    }\n\n    protected renderRendition(): React.JSX.Element {\n        return renderFolderRendition();\n    }\n\n    protected renderMetadata(): React.JSX.Element {\n        return renderFolderMetadata();\n    }\n}\n\nexport class FolderListItem extends AdobeAssetListItem {\n    protected additionalClassNames(): string | undefined {\n        return 'cdo-folder';\n    }\n\n    protected renderRendition(): React.JSX.Element {\n        return renderFolderRendition();\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport { DEFAULT_TOOLTIP_DELAY } from '@csc/collection-view';\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { DotSeparator } from '../DotSeparator/DotSeparator';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst renderConceptMetadata = (\n    element: BackedCollectionItem<SAM.AdobeAsset>,\n    metadataFormat?: (\n        element: BackedCollectionItem<SAM.AdobeAsset>,\n    ) => React.JSX.Element | undefined,\n) => {\n    const fileExt = (\n        <span className=\"cdo-itemType\">\n            <FormattedMessage id=\"concept.subtitle\" defaultMessage=\"FIREFLY BOARDS\" />\n        </span>\n    );\n    const metadataContent = metadataFormat?.(element);\n\n    return (\n        <OverlayTrigger\n            placement=\"bottom left\"\n            trigger={['hover']}\n            // @ts-expect-error workaround for UXPv8 until RS2 2.55 (in theory)\n            autoComplete\n            delayShow={DEFAULT_TOOLTIP_DELAY}\n        >\n            <div className=\"aav-metaData\">\n                {fileExt}\n                {fileExt && metadataContent && <DotSeparator />}\n                {metadataContent}\n            </div>\n            <Tooltip className=\"cdo-ItemTitleTooltip\">\n                {fileExt}\n                {fileExt && metadataContent && <DotSeparator />}\n                {metadataContent}\n            </Tooltip>\n        </OverlayTrigger>\n    );\n};\n\nexport class ConceptGridItem extends AdobeAssetGridItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected renderMetadata(): React.JSX.Element {\n        const { element, metadataFormat } = this.props;\n        return renderConceptMetadata(element, metadataFormat);\n    }\n}\nexport class ConceptListItem extends AdobeAssetListItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected legacyRenderMetadata(): React.JSX.Element {\n        const { element, metadataFormat } = this.props;\n        return renderConceptMetadata(element, metadataFormat);\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst DotSeparator = () => {\n    return (\n        <>\n            {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx -- HTML entities */}\n            <span aria-hidden=\"true\">&nbsp;&bull;&nbsp;</span>\n        </>\n    );\n};\n\nconst renderAssets3DMetadata = (\n    element: BackedCollectionItem<SAM.AdobeAsset>,\n    metadataFormat?: (\n        element: BackedCollectionItem<SAM.AdobeAsset>,\n    ) => React.JSX.Element | undefined,\n) => {\n    const fileExt = (\n        <span className=\"cdo-itemType\">\n            <FormattedMessage id=\"assets3d.subtitle\" defaultMessage=\"3D ASSET\" />\n        </span>\n    );\n\n    const dateMetadataContent = metadataFormat?.(element);\n    return (\n        <>\n            {fileExt}\n            {fileExt && dateMetadataContent && <DotSeparator />}\n            {dateMetadataContent}\n        </>\n    );\n};\n\nexport class Assets3DGridItem extends AdobeAssetGridItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected renderMetadata(): React.JSX.Element {\n        const { element, metadataFormat } = this.props;\n        return renderAssets3DMetadata(element, metadataFormat);\n    }\n}\nexport class Assets3DListItem extends AdobeAssetListItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected legacyRenderMetadata(): React.JSX.Element {\n        const { element, metadataFormat } = this.props;\n        return renderAssets3DMetadata(element, metadataFormat);\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { DotSeparator } from '../DotSeparator/DotSeparator';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst renderSquirrelMetadata = (\n    element: BackedCollectionItem<SAM.AdobeAsset>,\n    metadataFormat?: (\n        element: BackedCollectionItem<SAM.AdobeAsset>,\n    ) => React.JSX.Element | undefined,\n) => {\n    const fileExt = (\n        <span className=\"cdo-itemType\">\n            <FormattedMessage\n                id=\"squirrel.subtitle\"\n                defaultMessage=\"SQ TIMELINE\"\n                values={{ header: 'SQ' }}\n            />\n        </span>\n    );\n\n    const dateMetadataContent = metadataFormat?.(element);\n    return (\n        <>\n            {fileExt}\n            {fileExt && dateMetadataContent && <DotSeparator />}\n            {dateMetadataContent}\n        </>\n    );\n};\n\nexport class SquirrelGridItem extends AdobeAssetGridItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected renderMetadata(): React.JSX.Element {\n        const { element, metadataFormat } = this.props;\n        return renderSquirrelMetadata(element, metadataFormat);\n    }\n}\nexport class SquirrelListItem extends AdobeAssetListItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected legacyRenderMetadata(): React.JSX.Element {\n        const { element, metadataFormat } = this.props;\n        return renderSquirrelMetadata(element, metadataFormat);\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\n\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport Wait from '@ccx-public/spectrum-wrapper/dist/Wait';\nimport type { ICollectionItem } from '@csc/collection-view';\nimport { DEFAULT_TOOLTIP_DELAY, Rename } from '@csc/collection-view';\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { IconAIGenClockPending, IconAlertTriangle } from '../../utils/icons';\nimport {\n    isFireflyGenerationImage,\n    isFireflyGenerationIncomplete,\n    isFireflyGenerationVideo,\n} from '../../utils/view-item/view-item';\nimport { DotSeparator } from '../DotSeparator/DotSeparator';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\nimport classNames from 'classnames';\nimport { isTouchDevice } from '@csc/common';\nimport { generationHistoryUtils } from '@csc/sam-utils';\n\nfunction ImageFormattedMessage({ asset }: { asset: SAM.AdobeAsset }) {\n    const displayName = generationHistoryUtils?.getGenerationModelDisplayName?.(asset);\n    const isUpscaled =\n        generationHistoryUtils?.isUpscaled?.(asset) && (!displayName || displayName === 'Firefly');\n\n    if (displayName) {\n        return isUpscaled ? (\n            <FormattedMessage\n                id=\"firefly.subtitle.imageUpscaledModelName\"\n                defaultMessage=\"IMAGE ({displayName}, upscaled)\"\n                values={{ displayName }}\n            />\n        ) : (\n            <FormattedMessage\n                id=\"firefly.subtitle.imageModelName\"\n                defaultMessage=\"IMAGE ({displayName})\"\n                values={{ displayName }}\n            />\n        );\n    }\n\n    return isUpscaled ? (\n        <FormattedMessage id=\"firefly.subtitle.imageUpscaled\" defaultMessage=\"IMAGE (upscaled)\" />\n    ) : (\n        <FormattedMessage id=\"firefly.subtitle.image\" defaultMessage=\"IMAGE\" />\n    );\n}\n\nfunction getStateFormattedMessageElement({ asset }: { asset: SAM.AdobeAsset }) {\n    const state = generationHistoryUtils?.getGenerationState?.(\n        asset,\n    ) as SAM.GenerationHistoryAssetState;\n\n    if (state === SAM.GenerationHistoryAssetState.QUEUED) {\n        return (\n            <FormattedMessage\n                id=\"firefly.subtitle.generation.state.queued\"\n                defaultMessage=\"Queued\"\n            />\n        );\n    } else if (state === SAM.GenerationHistoryAssetState.IN_PROGRESS) {\n        return (\n            <FormattedMessage\n                id=\"firefly.subtitle.generation.state.inProgress\"\n                defaultMessage=\"Generating...\"\n            />\n        );\n    } else if (state === SAM.GenerationHistoryAssetState.FAILED) {\n        return (\n            <FormattedMessage\n                id=\"firefly.subtitle.generation.state.failed\"\n                defaultMessage=\"Failed\"\n            />\n        );\n    } else {\n        return null;\n    }\n}\n\nconst renderGenerationHistoryMetadata = (\n    element: BackedCollectionItem<SAM.AdobeAsset>,\n    metadataFormat?: (element: ICollectionItem) => React.JSX.Element | undefined,\n) => {\n    const displayName = generationHistoryUtils?.getGenerationModelDisplayName?.(\n        element.backingItem,\n    );\n    const mediaType = (\n        <span className=\"cdo-itemType\" data-testid=\"generation-history-view-item-media-type\">\n            {isFireflyGenerationImage(element.backingItem) && (\n                <ImageFormattedMessage asset={element.backingItem} />\n            )}\n            {isFireflyGenerationVideo(element.backingItem) &&\n                (displayName ? (\n                    <FormattedMessage\n                        id=\"firefly.subtitle.videoModelName\"\n                        defaultMessage=\"VIDEO ({displayName})\"\n                        values={{ displayName }}\n                    />\n                ) : (\n                    <FormattedMessage id=\"firefly.subtitle.video\" defaultMessage=\"VIDEO\" />\n                ))}\n        </span>\n    );\n    const dateMetadataContent = metadataFormat?.(element);\n\n    const stateMetadataContent = getStateFormattedMessageElement({ asset: element.backingItem });\n\n    const metadataContent = stateMetadataContent ?? dateMetadataContent;\n\n    return isTouchDevice() ? (\n        <div className=\"aav-metaData\" data-testid=\"generation-history-view-item-metadata\">\n            {mediaType}\n        </div>\n    ) : (\n        <OverlayTrigger\n            placement=\"bottom left\"\n            trigger={['hover']}\n            // @ts-expect-error workaround for UXPv8 until RS2 2.55 (in theory)\n            autoComplete\n            delayShow={DEFAULT_TOOLTIP_DELAY}\n        >\n            <div className=\"aav-metaData\" data-testid=\"generation-history-view-item-metadata\">\n                {mediaType}\n                {mediaType && metadataContent && <DotSeparator />}\n                {metadataContent}\n            </div>\n            <Tooltip className=\"cdo-ItemTitleTooltip\">\n                {mediaType}\n                {mediaType && metadataContent && <DotSeparator />}\n                {metadataContent}\n            </Tooltip>\n        </OverlayTrigger>\n    );\n};\n\nconst getTitle = (element: ICollectionItem): string => {\n    const asset = (element as BackedCollectionItem<SAM.AdobeAsset>).backingItem;\n\n    return isFireflyGenerationIncomplete(asset)\n        ? generationHistoryUtils?.getPrompt(asset) ?? element.title\n        : element.title;\n};\n\nexport class GenerationHistoryGridItem extends AdobeAssetGridItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected renderMetadata(): React.JSX.Element {\n        const { element, metadataFormat } = this.props;\n        return renderGenerationHistoryMetadata(element, metadataFormat);\n    }\n\n    protected additionalClassNames(): string | undefined {\n        const { element } = this.props;\n        const existingClassNames = super.additionalClassNames();\n        return classNames(existingClassNames, {\n            'cdo-IncompleteGenVideoItem': isFireflyGenerationIncomplete(element.backingItem),\n        });\n    }\n\n    protected renderRendition(): React.JSX.Element {\n        const { element } = this.props;\n\n        if (\n            (generationHistoryUtils?.getGenerationState?.(\n                element.backingItem,\n            ) as SAM.GenerationHistoryAssetState) === SAM.GenerationHistoryAssetState.QUEUED\n        ) {\n            return (\n                <div className=\"aav-generation-history-grid-item-description\">\n                    <IconAIGenClockPending width=\"32\" height=\"32\" />\n                    <div className=\"aav-generation-history-grid-item-description-text\">\n                        <FormattedMessage\n                            id=\"firefly.subtitle.generation.description.queued\"\n                            defaultMessage=\"Your video is queued for generation...\"\n                        />\n                    </div>\n                </div>\n            );\n        } else if (\n            (generationHistoryUtils?.getGenerationState?.(\n                element.backingItem,\n            ) as SAM.GenerationHistoryAssetState) === SAM.GenerationHistoryAssetState.IN_PROGRESS\n        ) {\n            return (\n                <div>\n                    <Wait data-testid=\"generation-history-view-item-spinner\" size=\"M\" />\n                </div>\n            );\n        } else if (\n            (generationHistoryUtils?.getGenerationState?.(\n                element.backingItem,\n            ) as SAM.GenerationHistoryAssetState) === SAM.GenerationHistoryAssetState.FAILED\n        ) {\n            return (\n                <div className=\"aav-generation-history-grid-item-description\">\n                    <IconAlertTriangle width=\"32\" height=\"32\" />\n                    <div className=\"aav-generation-history-grid-item-description-text\">\n                        <FormattedMessage\n                            id=\"firefly.subtitle.generation.description.failed\"\n                            defaultMessage=\"Video generation failed\"\n                        />\n                    </div>\n                </div>\n            );\n        } else {\n            return super.renderRendition();\n        }\n    }\n\n    protected renderTitle() {\n        const { element } = this.props;\n        const { isRenaming } = this.state;\n        return (\n            <div className={classNames('cdo-name', { ['cdo-isRenaming']: isRenaming })}>\n                <div className={classNames('cdo-nameString')} id=\"CDOGridItem_Name\">\n                    <Rename\n                        element={element}\n                        name={getTitle(element)}\n                        isRenaming={isRenaming}\n                        controller={this.renameAction}\n                        tooltip={generationHistoryUtils?.getPrompt(element.backingItem)}\n                    />\n                </div>\n            </div>\n        );\n    }\n\n    protected renderAppIcon(): React.JSX.Element | undefined {\n        const { element } = this.props;\n        return isFireflyGenerationIncomplete(element.backingItem)\n            ? undefined\n            : super.renderAppIcon();\n    }\n}\nexport class GenerationHistoryListItem extends AdobeAssetListItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport type { ICollectionItem } from '@csc/collection-view';\nimport { DEFAULT_TOOLTIP_DELAY } from '@csc/collection-view';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { DotSeparator } from '../DotSeparator/DotSeparator';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst renderFireflyTemplateMetadata = (\n    element: BackedCollectionItem<SAM.AdobeAsset>,\n    metadataFormat?: (element: ICollectionItem) => React.JSX.Element | undefined,\n): React.JSX.Element => {\n    const fileExt = (\n        <span className=\"cdo-itemType\">\n            <FormattedMessage id=\"firefly.subtitle.stylekit\" defaultMessage=\"STYLE KIT\" />\n        </span>\n    );\n\n    const MetadataContent = () => (\n        <>\n            {fileExt}\n            {fileExt && metadataFormat && <DotSeparator />}\n            {metadataFormat?.(element)}\n        </>\n    );\n\n    return (\n        <OverlayTrigger\n            placement=\"bottom left\"\n            trigger={['hover']}\n            // @ts-expect-error workaround for UXPv8 until RS2 2.55 (in theory)\n            autoComplete\n            delayShow={DEFAULT_TOOLTIP_DELAY}\n        >\n            <div className=\"aav-metaData\" data-testid=\"firefly-template-view-item-metadata\">\n                <MetadataContent />\n            </div>\n            <Tooltip className=\"cdo-ItemTitleTooltip\">\n                <MetadataContent />\n            </Tooltip>\n        </OverlayTrigger>\n    );\n};\n\nexport class FireflyTemplateGridItem extends AdobeAssetGridItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected renderMetadata(): React.JSX.Element {\n        const { element, metadataFormat } = this.props;\n        return renderFireflyTemplateMetadata(element, metadataFormat);\n    }\n}\nexport class FireflyTemplateListItem extends AdobeAssetListItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected legacyRenderMetadata(): React.JSX.Element {\n        const { element } = this.props;\n        return renderFireflyTemplateMetadata(element);\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport type { ICollectionItem } from '@csc/collection-view';\nimport { DEFAULT_TOOLTIP_DELAY } from '@csc/collection-view';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { DotSeparator } from '../DotSeparator/DotSeparator';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst renderTemplateMetadata = (\n    element: BackedCollectionItem<SAM.AdobeAsset>,\n    metadataFormat?: (element: ICollectionItem) => React.JSX.Element | undefined,\n): React.JSX.Element => {\n    const fileExt = (\n        <span className=\"cdo-itemType\">\n            <FormattedMessage id=\"template.subtitle\" defaultMessage=\"TEMPLATE\" />\n        </span>\n    );\n\n    const metadataContent = metadataFormat?.(element);\n\n    return (\n        <OverlayTrigger\n            placement=\"bottom left\"\n            trigger={['hover']}\n            // @ts-expect-error workaround for UXPv8 until RS2 2.55 (in theory)\n            autoComplete\n            delayShow={DEFAULT_TOOLTIP_DELAY}\n        >\n            <div className=\"aav-metaData\" data-testid=\"template-view-item-metadata\">\n                {fileExt}\n                {fileExt && metadataContent && <DotSeparator />}\n                {metadataContent}\n            </div>\n\n            <Tooltip className=\"cdo-ItemTitleTooltip\">\n                {fileExt}\n                {fileExt && metadataContent && <DotSeparator />}\n                {metadataContent}\n            </Tooltip>\n        </OverlayTrigger>\n    );\n};\n\nexport class TemplateGridItem extends AdobeAssetGridItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected renderMetadata(): React.JSX.Element {\n        const { element, metadataFormat } = this.props;\n        return renderTemplateMetadata(element, metadataFormat);\n    }\n}\n\nexport class TemplateListItem extends AdobeAssetListItem<{\n    element: BackedCollectionItem<SAM.AdobeAsset>;\n}> {\n    protected legacyRenderMetadata(): React.JSX.Element {\n        const { element } = this.props;\n        return renderTemplateMetadata(element);\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport IconFolderAdd from '@ccx-public/spectrum-wrapper/dist/Icon/FolderAdd';\nimport { Action } from '@csc/collection-view';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport React from 'react';\nimport AddFolderDialog from '../components/AddFolderDialog/AddFolderDialog';\nimport AdobeAssetCollectionItem from '../components/AdobeAssetsView/AdobeAssetCollectionItem';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport type { AAVActionArgs } from './utils';\n\ninterface AddFolderArgs extends AAVActionArgs {\n    closeModal: HostConfig['closeModal'];\n    parentFolder?: SAM.AdobeAsset;\n    showModal: HostConfig['showModal'];\n    showToast: HostConfig['showToast'];\n}\n\nexport function createAddFolderAction(\n    args: AddFolderArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    const { closeModal, intl, metricLogger, parentFolder, showModal, showToast, onAfter } = args;\n    return new Action({\n        beforeExecute: () => {\n            return Promise.resolve(\n                parentFolder ? [[new AdobeAssetCollectionItem(parentFolder)]] : [[]],\n            );\n        },\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            const { succeededElements } = await operationStore.assetOp({\n                elements,\n                opName: UXOpName.CREATE_NEW_FOLDER,\n                operation: async (_, element) => {\n                    const { type } = await showModal(\n                        <AddFolderDialog asset={element.backingItem} closeModal={closeModal} />,\n                    );\n\n                    if (type === AssetBrowser.ShowModalResultType.Success) {\n                        showToast({\n                            content: intl.formatMessage({\n                                id: 'aav.actions.addFolder.toast.success.message',\n                                defaultMessage: 'Folder created.',\n                            }),\n                            variant: 'positive',\n                        });\n                    }\n                },\n                metricLogger,\n                correlationId: correlationId,\n            });\n\n            void onAfter?.(succeededElements.map((e) => e.element));\n        },\n        icon: <IconFolderAdd />,\n        isEnabled: () => Boolean(parentFolder),\n        isFolderAction: true,\n        isVisible: () => Boolean(parentFolder?.hasPermission(SAM.Permission.Write)),\n        label: intl.formatMessage({\n            id: 'aav.actions.createFolder.label',\n            defaultMessage: 'Create folder',\n        }),\n        value: ActionAnalyticsValue.AddFolder,\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\n\nexport function elementsHavePermission(\n    elements: BackedCollectionItem<SAM.AdobeAsset>[] | undefined,\n    permission: SAM.Permission,\n): boolean {\n    if (!elements || elements.length === 0) {\n        return false;\n    }\n    return elements.every((element) => element.backingItem.hasPermission(permission));\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport type { IntlShape } from 'react-intl';\n\nconst getDisabledTooltipLabelForCopyTo = (intl: IntlShape): string => {\n    return intl.formatMessage({\n        defaultMessage: 'This tab is disabled for copy to operations',\n        id: 'aav.actions.copyto.uap.tabDisabledTooltip.label',\n    });\n};\n\nconst getDisabledTooltipLabelForMove = (intl: IntlShape): string => {\n    return intl.formatMessage({\n        defaultMessage: 'This tab is disabled for move operations',\n        id: 'aav.actions.move.uap.tabDisabledTooltip.label',\n    });\n};\n\nconst isViewEnabledForCopyTo = ({\n    parentAssetId,\n    currentView,\n}: {\n    parentAssetId: string;\n    currentView: AssetBrowser.NavigationEventDetail;\n}): boolean => {\n    const { name, params } = currentView;\n\n    if (name === AssetBrowser.ContentViewType.CloudDocuments && params?.assetId !== parentAssetId) {\n        return true;\n    }\n\n    if (name === AssetBrowser.ContentViewType.Project && params?.projectId) {\n        return true;\n    }\n    return false;\n};\n\n// Used to disable the CTA button in UAP Move\nconst isViewEnabledForMove = ({\n    parentAssetId,\n    currentView,\n}: {\n    parentAssetId: string;\n    currentView: AssetBrowser.NavigationEventDetail;\n}): boolean => {\n    const { name, params } = currentView;\n\n    // ProjectsOrganizer view\n    if (name === AssetBrowser.ContentViewType.Projects) {\n        return false;\n    }\n\n    // Starting directory, would result in a move-in-place / no-op\n    if (params?.assetId === parentAssetId) {\n        return false;\n    }\n\n    // Navigating back into the original Project (folder) in Projects view where the asset(s) to be moved live\n    if (params?.projectId === parentAssetId && !params?.assetId) {\n        return false;\n    }\n\n    return true;\n};\n\nexport {\n    getDisabledTooltipLabelForCopyTo,\n    getDisabledTooltipLabelForMove,\n    isViewEnabledForCopyTo,\n    isViewEnabledForMove,\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport Copy from '@ccx-public/spectrum-wrapper/dist/Icon/Copy';\nimport type { OperationStore } from '@csc/collection-view';\nimport { Action, deriveParentPath } from '@csc/collection-view';\nimport { PickerMode, NavigationEvent } from '@csc/common';\nimport { onlyOneOrMultipleAndNoSyncErrors } from '../utils/available-offline';\nimport React from 'react';\nimport type { IntlShape } from 'react-intl';\nimport type { AAVOperationStore, IOpMetricLogger } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { elementsHavePermission } from '../utils/permissions';\nimport {\n    getDisabledTooltipLabelForCopyTo,\n    isViewEnabledForCopyTo,\n} from '../utils/route-enabled-utils';\nimport type { AAVActionArgs } from './utils';\nimport { isFireflyGeneration } from '../utils/view-item/view-item';\nimport type HostConfig from '@csc/common/@types/HostConfig';\n\ninterface IUndoCopyToArgs {\n    correlationId?: string;\n    duplicateAssets: BackedCollectionItem<SAM.AdobeAsset>[];\n    intl: IntlShape;\n    metricLogger?: IOpMetricLogger;\n    operationStore: AAVOperationStore;\n    showToast: AssetBrowser.ShowToastFn;\n}\n\nexport async function undoCopyTo(args: IUndoCopyToArgs) {\n    const { correlationId, duplicateAssets, intl, metricLogger, operationStore, showToast } = args;\n    const { failedElements } = await operationStore.assetOp({\n        elements: duplicateAssets,\n        opName: UXOpName.DISCARD,\n        operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n            ele.backingItem.permanentlyDelete(),\n        metricLogger: metricLogger,\n        correlationId: correlationId || '',\n    });\n    if (failedElements.length > 0) {\n        showToast({\n            content: intl.formatMessage(\n                {\n                    id: 'aav.actions.copyto.toast.undoFailed',\n                    defaultMessage:\n                        'Failed to remove {count, plural, one {1 duplicate item} other {# duplicate items}}.',\n                },\n                { count: failedElements.length },\n            ),\n            variant: 'negative',\n        });\n    } else {\n        showToast({\n            content: intl.formatMessage({\n                id: 'aav.actions.copyto.toast.undoSuccess',\n                defaultMessage: 'Undo complete',\n            }),\n            variant: 'positive',\n        });\n    }\n}\n\ninterface ICopyToActionArgs extends AAVActionArgs {\n    featureFlags?: Record<string, boolean | string>;\n    getAssetWithCloudID: (assetId: string, confirmAccess?: boolean) => Promise<SAM.AdobeAsset>;\n    includeUndo?: boolean;\n    launchUAP: (...args) => Promise<{\n        destination: string;\n        destinationAsset: AssetBrowser.AssetDescriptor;\n    }>;\n    operationStore?: OperationStore;\n    showToast: AssetBrowser.ShowToastFn;\n    viewId: AssetBrowser.ContentViewType;\n    compatibleTypes?: string[];\n    mediaTypes?: string[];\n    excludeMediaTypes?: string[];\n    dispatchEvent?: HostConfig['dispatchEvent'];\n}\n\nexport function createCopyToAction(\n    args: ICopyToActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.CopyTo,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.copyto.label',\n            defaultMessage: 'Copy to',\n        }),\n        icon: <Copy />,\n        groupName: 'group2',\n        isVisible: (elements) =>\n            onlyOneOrMultipleAndNoSyncErrors(elements) &&\n            elementsHavePermission(elements, SAM.Permission.Duplicate),\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            const parentAssetId =\n                elements[0].backingItem.ancestorIDs?.[\n                    elements[0].backingItem.ancestorIDs.length - 1\n                ];\n            if (!parentAssetId && !isFireflyGeneration(elements[0].backingItem)) {\n                args.showToast({\n                    content: args.intl.formatMessage({\n                        id: 'aav.actions.copyto.uap.toast.preLoadFailed',\n                        defaultMessage: 'This asset cannot be copied, please try again later',\n                    }),\n                    variant: 'negative',\n                });\n            }\n            const firstAdobeAsset = elements[0].backingItem;\n            const source = {\n                cloudID: parentAssetId,\n                repositoryID: firstAdobeAsset.repositoryID,\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Legacy assertion, path could be undefined\n                repoPath: deriveParentPath(elements[0].path!),\n                parentProjectID: firstAdobeAsset.parentProjectID,\n            } as SAM.AdobeAsset;\n\n            try {\n                const uapResult = await args.launchUAP({\n                    compatibleTypes: args.compatibleTypes,\n                    mediaTypes: args.mediaTypes,\n                    excludeMediaTypes: args.excludeMediaTypes,\n                    elements,\n                    featureFlags: args.featureFlags,\n                    getDisabledTooltipLabel: () => getDisabledTooltipLabelForCopyTo(args.intl),\n                    isViewEnabled: (navigationDetail: AssetBrowser.NavigationEventDetail) =>\n                        isViewEnabledForCopyTo({\n                            parentAssetId: parentAssetId ?? '',\n                            currentView: navigationDetail,\n                        }),\n                    mode: PickerMode.copy,\n                    initialView: {\n                        name: args.viewId,\n                        params: {\n                            assetId: parentAssetId,\n                            repoPath: source.repoPath,\n                            projectId: source.parentProjectID,\n                        },\n                    },\n                });\n\n                if (uapResult.destinationAsset?.cloudID) {\n                    const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n                    const { failedElements, succeededElements } = await operationStore.assetOp({\n                        elements: filteredElements,\n                        opName: UXOpName.COPY_TO,\n                        operation: async (\n                            _correlationId: string,\n                            ele: BackedCollectionItem<SAM.AdobeAsset>,\n                        ) => {\n                            const destination: SAM.AdobeAsset = await args.getAssetWithCloudID(\n                                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- cloudID is checked above\n                                uapResult.destinationAsset.cloudID!,\n                            );\n                            return ele.backingItem.copy(destination);\n                        },\n                        metricLogger: args.metricLogger,\n                        correlationId,\n                    });\n\n                    if (failedElements.length > 0) {\n                        const content = isFireflyGeneration(elements[0].backingItem)\n                            ? args.intl.formatMessage(\n                                  {\n                                      id: 'aav.actions.copyto.toast.failed.generationHistory',\n                                      defaultMessage:\n                                          '{count, plural, one {Generation} other {Generations}} could not be added. Try again.',\n                                  },\n                                  { count: failedElements.length },\n                              )\n                            : args.intl.formatMessage(\n                                  {\n                                      id: 'aav.actions.copyto.toast.failed',\n                                      defaultMessage:\n                                          'Failed to copy {count,plural,one{1 item.} other{# items.}}',\n                                  },\n                                  { count: failedElements.length },\n                              );\n\n                        args.showToast({\n                            content,\n                            variant: 'negative',\n                        });\n                    } else {\n                        const undoCallback = {\n                            label: args.intl.formatMessage({\n                                id: 'aav.actions.copyto.toast.undo',\n                                defaultMessage: 'Undo',\n                            }),\n                            callback: () => {\n                                void undoCopyTo({\n                                    duplicateAssets: succeededElements.map(\n                                        (element) =>\n                                            ({\n                                                backingItem: element.response,\n                                            }) as BackedCollectionItem<SAM.AdobeAsset>,\n                                    ),\n                                    intl: args.intl,\n                                    metricLogger: args.undoMetricLogger,\n                                    operationStore,\n                                    showToast: args.showToast,\n                                });\n                            },\n                        };\n                        const targetAsset = await args.getAssetWithCloudID(\n                            uapResult.destinationAsset.cloudID,\n                        );\n\n                        const filesCallback = {\n                            label: args.intl.formatMessage({\n                                id: 'aav.actions.copyto.toast.button.label',\n                                defaultMessage: 'View',\n                            }),\n                            callback: () => {\n                                args.dispatchEvent?.(\n                                    new NavigationEvent({\n                                        name: AssetBrowser.ContentViewType.CloudDocuments,\n                                        params: {\n                                            assetId: targetAsset.id,\n                                        },\n                                    }),\n                                );\n                            },\n                        };\n                        const projectsCallback = {\n                            label: args.intl.formatMessage({\n                                id: 'aav.actions.copyto.toast.button.label',\n                                defaultMessage: 'View',\n                            }),\n                            callback: () => {\n                                args.dispatchEvent?.(\n                                    new NavigationEvent({\n                                        name: AssetBrowser.ContentViewType.Project,\n                                        params: {\n                                            projectId: targetAsset.isProject\n                                                ? targetAsset.id\n                                                : targetAsset.parentProjectID,\n                                            assetId: targetAsset.isProject\n                                                ? undefined\n                                                : targetAsset.id,\n                                        },\n                                    }),\n                                );\n                            },\n                        };\n\n                        let actionCallback:\n                            | {\n                                  label: string;\n                                  callback: () => void;\n                              }\n                            | undefined;\n\n                        if (isFireflyGeneration(elements[0].backingItem)) {\n                            if (targetAsset.isProject || targetAsset.isChildOfProject) {\n                                actionCallback = projectsCallback;\n                            } else {\n                                actionCallback = filesCallback;\n                            }\n                        } else if (args.includeUndo) {\n                            actionCallback = undoCallback;\n                        } else {\n                            actionCallback = undefined;\n                        }\n\n                        args.showToast({\n                            actionCallback,\n                            content: isFireflyGeneration(elements[0].backingItem)\n                                ? args.intl.formatMessage(\n                                      {\n                                          id: 'aav.actions.copyto.toast.success.generationHistory',\n                                          defaultMessage:\n                                              '{count, plural, one {Generation} other {Generations}} added',\n                                      },\n                                      { count: elements.length },\n                                  )\n                                : args.intl.formatMessage(\n                                      {\n                                          id: 'aav.actions.copyto.toast.success',\n                                          defaultMessage:\n                                              '{count,plural,one{1 item} other{# items}} copied.',\n                                      },\n                                      { count: elements.length },\n                                  ),\n                            variant: 'positive',\n                        });\n                        void args.onAfter?.(succeededElements.map((e) => e.element));\n                    }\n                } else if (\n                    uapResult.destinationAsset &&\n                    uapResult.destinationAsset.cloudID === undefined\n                ) {\n                    throw new Error('Encountered asset descriptor without cloudID');\n                }\n            } catch {\n                args.showToast({\n                    content: args.intl.formatMessage({\n                        id: 'aav.actions.copyto.uap.toast.postLoadFailed',\n                        defaultMessage: 'An error occurred selecting an asset to copy',\n                    }),\n                    variant: 'negative',\n                });\n            }\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport Download from '@ccx-public/spectrum-wrapper/dist/Icon/Download';\nimport { Action } from '@csc/collection-view';\nimport { hasOnlyOne } from '@csc/common';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport React from 'react';\nimport { ExportEvent } from '../events/ExportEvent';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { hasAllExportables, hasAnyLocalItemsToBeSynced } from '../utils/export-utils';\nimport { hasOnlyNonFolders } from '../utils/folders';\nimport type { AAVActionArgs } from './utils';\n\ninterface IExportActionArgs extends AAVActionArgs {\n    onExport?: (elements: SAM.AdobeAsset[]) => Promise<void>;\n    canExportMultiple?: boolean;\n    dispatchEvent: HostConfig['dispatchEvent'];\n}\n\nexport function createExportAction(\n    args: IExportActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Export,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.export.label',\n            defaultMessage: 'Download',\n        }),\n        icon: <Download />,\n        groupName: 'group2',\n        isVisible: args.isVisible\n            ? (elements) => Boolean(args.isVisible?.(elements))\n            : (elements) =>\n                  (args.canExportMultiple || hasOnlyOne(elements)) &&\n                  hasOnlyNonFolders(elements ?? []) &&\n                  !hasAnyLocalItemsToBeSynced(elements) &&\n                  hasAllExportables(elements ?? []),\n        execute: async (_operationStore: AAVOperationStore, elements) => {\n            const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n            if (args.onExport) {\n                await args.onExport(filteredElements.map((element) => element.backingItem));\n            } else {\n                const event = new ExportEvent({\n                    assets: filteredElements.map((element) => element.backingItem),\n                });\n                args.dispatchEvent(event);\n            }\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport IconStarOutline from '@ccx-public/spectrum-wrapper/dist/Icon/StarOutline';\nimport { Action, EventType } from '@csc/collection-view';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport React from 'react';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport type { AAVActionArgs } from './utils';\nimport { AnalyticsEvent } from './analytics/AnalyticsEvent';\nimport { NavigationEvent } from '@csc/common';\n\ninterface IFavoriteActionArgs extends AAVActionArgs {\n    showToast: AssetBrowser.ShowToastFn;\n    dispatchEvent?: HostConfig['dispatchEvent'];\n}\n\nexport function createFavoriteAction(\n    args: IFavoriteActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Favorite,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.favorite.label',\n            defaultMessage: 'Favorite',\n        }),\n        icon: <IconStarOutline className=\"cdo-Icon\" />,\n        isQuickAction: true,\n        groupName: 'group1',\n        isVisible: args.isVisible ? (elements) => Boolean(args.isVisible?.(elements)) : () => true,\n        execute: async (operationStore: AAVOperationStore, elements) => {\n            const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n            const initAnalyticsPayload = {\n                type: EventType.Click as string,\n                action: ActionAnalyticsValue.Favorite as string,\n                assetData: elements.map((element) => ({\n                    element: element,\n                })),\n            };\n            args.dispatchEvent?.(new AnalyticsEvent(initAnalyticsPayload));\n            const { succeededElements, failedElements } = await operationStore.assetOp({\n                elements: filteredElements,\n                opName: UXOpName.FAVORITE,\n                operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n                    ele.backingItem.setIsFavorite(true),\n                metricLogger: args.metricLogger,\n                correlationId: '',\n            });\n\n            if (failedElements.length > 0) {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.favorite.toast.failed',\n                            defaultMessage:\n                                \"{count,plural,one{Couldn't save to favorites.} other{Couldn't save # items to favorites.}}\",\n                        },\n                        { count: failedElements.length },\n                    ),\n                    variant: 'negative',\n                });\n                const failureAnalyticsPayload = {\n                    type: EventType.Failure as string,\n                    action: ActionAnalyticsValue.Favorite as string,\n                    assetData: failedElements,\n                };\n                args.dispatchEvent?.(new AnalyticsEvent(failureAnalyticsPayload));\n            } else {\n                const actionCallback = {\n                    label: args.intl.formatMessage({\n                        id: 'aav.actions.favorite.toast.button.label',\n                        defaultMessage: 'View Favorites',\n                    }),\n                    callback: () => {\n                        args.dispatchEvent?.(\n                            new NavigationEvent({\n                                name: AssetBrowser.ContentViewType.Favorites,\n                            }),\n                        );\n                    },\n                };\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.favorite.toast.success',\n                            defaultMessage:\n                                '{count,plural,one{Item saved to Favorites.} other{# items saved to Favorites.}}',\n                        },\n                        { count: filteredElements.length },\n                    ),\n                    variant: 'positive',\n                    actionCallback,\n                });\n            }\n            if (succeededElements.length > 0) {\n                const successAnalyticsPayload = {\n                    type: EventType.Success as string,\n                    action: ActionAnalyticsValue.Favorite as string,\n                    assetData: succeededElements,\n                };\n                args.dispatchEvent?.(new AnalyticsEvent(successAnalyticsPayload));\n            }\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport UploadToCloud from '@ccx-public/spectrum-wrapper/dist/Icon/UploadToCloud';\nimport { Action, normalizePath } from '@csc/collection-view';\nimport type { useDocumentCallbacks } from '@csc/common';\nimport { hasAny } from '@csc/common';\nimport React from 'react';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport type { AAVActionArgs } from './utils';\nimport AdobeAssetCollectionItem from '../components/AdobeAssetsView/AdobeAssetCollectionItem';\n\ninterface IImportActionArgs extends AAVActionArgs {\n    showToast: AssetBrowser.ShowToastFn;\n    parentFolder: SAM.AdobeAsset;\n    samList: SAM.GenericAssetList;\n    // TODO: change this to AssetBrowser.DocumentCallbacks once DocumentCallbacks has these fields\n    callbacks: ReturnType<typeof useDocumentCallbacks>;\n    logAnalytics?: (args: AssetBrowser.CDO.IImportAnalytics) => void;\n}\n\nfunction derivePath(path: string): string {\n    const normalized = normalizePath(path);\n    // ensure path starts with '/'\n    return normalized.startsWith('/') ? normalized : `/${normalized}`;\n}\n\nexport function createImportAction(\n    args: IImportActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Import,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.import.label',\n            defaultMessage: 'Upload',\n        }),\n        icon: <UploadToCloud />,\n        isFolderAction: true,\n        groupName: 'group2',\n        isVisible: (elements) => !hasAny(elements),\n        beforeExecute: () => {\n            // Header actions currently need a beforeExecute to return a list of filtered elements\n            // in order to reach the execute method. This is a workaround to allow the import action\n            return Promise.resolve([[new AdobeAssetCollectionItem(args.parentFolder)]]);\n        },\n        execute: async (\n            _operationStore: AAVOperationStore,\n            _elements,\n            _correlationId = '',\n            filesToImport: File[] | undefined = undefined,\n        ) => {\n            const fetchSuitableName = (suggestedName: string, extension: string): string => {\n                let extraName = '';\n                let fileName = `${suggestedName}${extraName}.${extension}`;\n                let count = 1;\n                const hasNameConflict = (name: string): boolean =>\n                    args.samList.items.some((element) => element.name === name) ?? false;\n\n                while (hasNameConflict(fileName)) {\n                    extraName = ` (${count})`;\n                    fileName = `${suggestedName}${extraName}.${extension}`;\n                    count += 1;\n                }\n                return fileName;\n            };\n\n            // eslint-disable-next-line @typescript-eslint/no-deprecated -- use document callbacks instead\n            const { importFiles, promptUserForFileImport } = args.callbacks;\n\n            const files =\n                filesToImport && filesToImport.length > 0\n                    ? filesToImport\n                    : await promptUserForFileImport?.();\n\n            if (!files) {\n                return false;\n            }\n\n            if (importFiles) {\n                void importFiles({\n                    files,\n                    cloudUri: args.parentFolder.cloudID,\n                    cloudPath: derivePath(args.parentFolder.repoPath),\n                    fetchSuitableName,\n                    logAnalytics: args.logAnalytics ?? (() => {}),\n                });\n                return undefined;\n            }\n\n            const uploadedFiles: SAM.AdobeAsset[] = [];\n            const failedFiles: File[] = [];\n            for (const file of files) {\n                if (file instanceof File) {\n                    try {\n                        const uploadedFile = await args.parentFolder.importFile({\n                            file: file,\n                            name: file.name,\n                            retryOnConflict: true,\n                        });\n                        uploadedFiles.push(uploadedFile);\n                    } catch {\n                        failedFiles.push(file);\n                    }\n                }\n            }\n            if (failedFiles.length > 0) {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.import.toast.failed',\n                            defaultMessage:\n                                '{count,plural,one{Failed to upload item.} other{Failed to upload # items.}}',\n                        },\n                        { count: failedFiles.length },\n                    ),\n                    variant: 'negative',\n                });\n            } else {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.import.toast.success',\n                            defaultMessage:\n                                '{count,plural,one{Item uploaded.} other{# items uploaded.}}',\n                        },\n                        { count: uploadedFiles.length },\n                    ),\n                    variant: 'positive',\n                });\n            }\n            void args.onAfter?.(uploadedFiles.map((file) => new AdobeAssetCollectionItem(file)));\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { useHostConfig } from '@csc/common';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport type { SyntheticEvent } from 'react';\nimport React, { useCallback } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\nexport default function LossyMoveWarningDialog() {\n    const intl = useIntl();\n    const { closeModal } = useHostConfig();\n\n    const handleCancel = useCallback(() => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Cancel });\n    }, [closeModal]);\n\n    const handleMove = useCallback(\n        (_type, event: SyntheticEvent) => {\n            event.preventDefault();\n            event.stopPropagation();\n            closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n        },\n        [closeModal],\n    );\n    return (\n        <DialogContent\n            title={intl.formatMessage({\n                id: 'aav.actions.move.lossyWarning.dialog.header',\n                defaultMessage: 'Some edits might not be saved',\n            })}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.actions.move.lossyWarning.dialog.moveButton',\n                defaultMessage: 'Move',\n            })}\n            cancelLabel={intl.formatMessage({\n                id: 'aav.actions.move.lossyWarning.dialog.cancelButton',\n                defaultMessage: 'Cancel',\n            })}\n            onConfirm={handleMove}\n            onCancel={handleCancel}\n        >\n            <div>\n                <FormattedMessage\n                    id=\"aav.actions.move.lossyWarning.dialog.content\"\n                    defaultMessage=\"If other collaborators are currently editing this item, any unsaved edits they've made may be lost.\"\n                />\n            </div>\n        </DialogContent>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport IconInfoOutline from '@ccx-public/spectrum-wrapper/dist/Icon/InfoOutline';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Rule from '@ccx-public/spectrum-wrapper/dist/Rule';\nimport Switch from '@ccx-public/spectrum-wrapper/dist/Switch';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport { useHostConfig } from '@csc/common';\nimport { isBrand, isCmTrainingSet } from '@csc/sam-utils';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport type { SyntheticEvent } from 'react';\nimport React, { useCallback, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { getAssetTypes } from '../../utils/view-item-utils';\nimport styles from './style.module.css';\n\nexport type MoveLibraryPermissionDialogProps = {\n    element: SAM.AdobeAsset;\n    setEditRestricted: (editRestricted: boolean) => void;\n};\n\nexport default function MoveLibraryPermissionDialog(props: MoveLibraryPermissionDialogProps) {\n    const intl = useIntl();\n    const { closeModal } = useHostConfig();\n    const [restrictEdit, setRestrictEdit] = useState(false);\n    const { assetType, pluralAssetType } = getAssetTypes(\n        isBrand(props.element),\n        isCmTrainingSet(props.element),\n        intl,\n    );\n    const handleCancel = useCallback(() => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Cancel });\n    }, [closeModal]);\n\n    const handleContinue = useCallback(\n        (_type, event: SyntheticEvent) => {\n            event.preventDefault();\n            event.stopPropagation();\n            props.setEditRestricted(restrictEdit);\n            closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- Leaving original hook dependencies\n        [closeModal],\n    );\n\n    return (\n        <DialogContent\n            title={intl.formatMessage(\n                {\n                    id: 'aav.actions.move.libraryPermissionDialog.title',\n                    defaultMessage: 'Move {pluralAssetType}',\n                },\n                { pluralAssetType },\n            )}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.actions.move.libraryPermissionDialog.moveButton',\n                defaultMessage: 'Move',\n            })}\n            cancelLabel={intl.formatMessage({\n                id: 'aav.actions.move.libraryPermissionDialog.cancelButton',\n                defaultMessage: 'Cancel',\n            })}\n            onConfirm={handleContinue}\n            onCancel={handleCancel}\n        >\n            <div>\n                <FormattedMessage\n                    id=\"aav.actions.move.libraryPermissionDialog.content\"\n                    defaultMessage=\"Moving {pluralAssetType} keeps original sharing settings, not project permissions. Turn off this restriction to align with project access.\"\n                    values={{ pluralAssetType }}\n                />\n            </div>\n            <Rule className={styles.divider} variant=\"small\" />\n            <div className={styles.restrictToggle}>\n                <Switch\n                    label={intl.formatMessage(\n                        {\n                            id: 'aav.actions.move.libraryPermissionDialog.label.restrictToggle',\n                            defaultMessage: 'Limit members from editing {assetType}',\n                        },\n                        { assetType },\n                    )}\n                    quiet\n                    data-testid=\"move-dialog-restrict-toggle\"\n                    onChange={(isSet) => setRestrictEdit(isSet)}\n                />\n                <OverlayTrigger placement=\"top\">\n                    <div slot=\"trigger\">\n                        <IconInfoOutline size=\"S\" />\n                    </div>\n                    <div slot=\"hover-content\">\n                        <Tooltip open placement=\"top\">\n                            <FormattedMessage\n                                id=\"aav.actions.move.libraryPermissionDialog.tooltip.restrictToggle\"\n                                defaultMessage=\"Toggle off will allow project members with edit access to modify {assetType} elements.\"\n                                values={{ assetType }}\n                            />\n                        </Tooltip>\n                    </div>\n                </OverlayTrigger>\n            </div>\n        </DialogContent>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport type { OptionalActionArgs } from '@csc/collection-view';\nimport { parseAssetRef } from '@csc/common';\nimport type { UABSAMCore } from '@csc/sam-utils';\nimport { isBrand } from '@csc/sam-utils';\nimport type { IntlShape } from 'react-intl';\nimport type { IOpMetricLogger } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport AdobeAssetCollectionItem from '../components/AdobeAssetsView/AdobeAssetCollectionItem';\n\nexport interface AAVActionArgs<T = BackedCollectionItem<SAM.AdobeAsset>[]>\n    extends OptionalActionArgs<BackedCollectionItem<SAM.AdobeAsset>> {\n    intl: IntlShape;\n    metricLogger?: IOpMetricLogger;\n    undoMetricLogger?: IOpMetricLogger;\n    /**\n     * @returns A filtered set of elements to operate on\n     */\n    onBefore?: (\n        elements: BackedCollectionItem<SAM.AdobeAsset>[],\n    ) => Promise<BackedCollectionItem<SAM.AdobeAsset>[]>;\n    onAfter?: (result: T) => Promise<void>;\n}\n\nexport async function checkAllowedAssetsBeforeOp({\n    elements,\n    getBlockedAssets,\n    intl,\n    sam,\n    showToast,\n    getCurrentlyOpenAssets,\n}: {\n    elements: BackedCollectionItem<SAM.AdobeAsset>[];\n    getBlockedAssets?: AssetBrowser.IOnBeforeOperation;\n    intl: IntlShape;\n    sam: UABSAMCore;\n    showToast: AssetBrowser.ShowToastFn;\n    getCurrentlyOpenAssets?: () => Promise<string[]>;\n}): Promise<BackedCollectionItem<SAM.AdobeAsset>[]> {\n    const adobeAssets = elements.map((item) => item.backingItem);\n    const filteredAssets = await checkAllowedAdobeAssetsBeforeOp({\n        elements: adobeAssets,\n        getBlockedAssets,\n        intl,\n        sam,\n        showToast,\n        getCurrentlyOpenAssets,\n    });\n    const filteredElementIds = filteredAssets.map((asset) => asset.id);\n    return elements.filter((item) => filteredElementIds.includes(item.backingItem.id));\n}\n\nexport async function checkAllowedAdobeAssetsBeforeOp({\n    elements,\n    getBlockedAssets,\n    intl,\n    sam,\n    showToast,\n    getCurrentlyOpenAssets,\n}: {\n    elements: SAM.AdobeAsset[];\n    getBlockedAssets?: AssetBrowser.IOnBeforeOperation;\n    intl: IntlShape;\n    sam: UABSAMCore;\n    showToast: AssetBrowser.ShowToastFn;\n    getCurrentlyOpenAssets?: () => Promise<string[]>;\n}): Promise<SAM.AdobeAsset[]> {\n    let filteredElements = elements;\n\n    try {\n        if (getCurrentlyOpenAssets) {\n            const { nonOpenAssets } = await partitionAssetsByOpenStatus({\n                elements: filteredElements,\n                getCurrentlyOpenAssets,\n                getAssetWithCloudID: (id) => sam.hostAssetContext.getAssetWithCloudID(id),\n            });\n            filteredElements = nonOpenAssets;\n        }\n\n        if (getBlockedAssets && filteredElements.length) {\n            // Remove the element that is blocked by the host\n            const results = await getBlockedAssets(filteredElements.map((item) => item.id));\n\n            filteredElements = filteredElements.filter((item) => {\n                const response = results[item.id];\n                return ![\n                    AssetBrowser.GetBlockedAssetsResponse.Cancel,\n                    AssetBrowser.GetBlockedAssetsResponse.CancelBecauseOpen,\n                ].includes(response);\n            });\n        }\n\n        // Show toast if there are filtered elements\n        const filteredElementCount = elements.length - filteredElements.length;\n        if (filteredElementCount > 0) {\n            showToast({\n                content: intl.formatMessage(\n                    {\n                        id: 'aav.actions.canceledBecauseOpen',\n                        defaultMessage:\n                            'Close the {count, plural, =1 {document} other {documents}} to perform this action.',\n                    },\n                    {\n                        count: filteredElementCount,\n                    },\n                ),\n                variant: 'neutral',\n            });\n        }\n\n        return filteredElements;\n    } catch (e) {\n        console.error(\n            `[adobe-assets-view][checkAllowedAssetsBeforeOp] Error while checking allowed assets before operation`,\n            e,\n        );\n        return elements;\n    }\n}\n\n/**\n * This function is used to get the source assets/elements of published brand before sharing.\n * @param elements - Passed in elements for processing.\n * @param getAssetWithCloudID - Function to get asset with a cloud ID.\n * @returns Processed elements for sharing.\n */\nexport async function mapPublishedBrandsForSharing({\n    elements,\n    getAssetWithCloudID,\n}: {\n    elements: BackedCollectionItem<SAM.AdobeAsset>[];\n    getAssetWithCloudID: UABSAMCore['hostAssetContext']['getAssetWithCloudID'];\n}): Promise<BackedCollectionItem<SAM.AdobeAsset>[]> {\n    if (!elements || elements.length === 0) {\n        return elements;\n    }\n\n    try {\n        const processedElements = await Promise.all(\n            elements.map(async (element) => {\n                if (\n                    element.backingItem.isLibrary &&\n                    isBrand(element.backingItem) &&\n                    (element.backingItem as SAM.Library).publishedFrom\n                ) {\n                    const sourceAsset = await getAssetWithCloudID(\n                        (element.backingItem as SAM.Library).publishedFrom,\n                    );\n                    return new AdobeAssetCollectionItem(sourceAsset);\n                }\n                return element;\n            }),\n        );\n        return processedElements;\n    } catch (e) {\n        console.error(\n            `[adobe-assets-view][mapPublishedBrandsForSharing] Error while getting elements for sharing`,\n            e,\n        );\n        return elements;\n    }\n}\n\n/**\n * Given a list of open asset ids provided by the host, separates selected assets into open and\n * non-open categories. Assets are considered open if they are currently open in the app or if they\n * are folders containing open assets. This is used to avoid destructive operations on them.\n * @param elements - The assets to categorize\n * @param getCurrentlyOpenAssets - Function that returns the ids of all currently open assets in the app\n * @param getAssetWithCloudID - SAM.js function to get an AdobeAsset given a cloud ID\n * @returns Object containing open, non-open assets, and a map of folders to their contained open assets\n */\nexport async function partitionAssetsByOpenStatus({\n    elements,\n    getCurrentlyOpenAssets,\n    getAssetWithCloudID,\n}: {\n    elements: SAM.AdobeAsset[];\n    getCurrentlyOpenAssets?: () => Promise<string[]>;\n    getAssetWithCloudID?: UABSAMCore['hostAssetContext']['getAssetWithCloudID'];\n}): Promise<{\n    openAssets: SAM.AdobeAsset[];\n    nonOpenAssets: SAM.AdobeAsset[];\n    folderToOpenAssetsMap: Record<string, SAM.AdobeAsset[]>;\n}> {\n    if (!getCurrentlyOpenAssets) {\n        return {\n            openAssets: [],\n            nonOpenAssets: elements,\n            folderToOpenAssetsMap: {},\n        };\n    }\n\n    const folderElements = elements.filter((asset) => asset.isFolder);\n    const nonFolderElements = elements.filter((asset) => !asset.isFolder);\n\n    // Get ids of assets that are currently open in the app\n    const openInAppAssetRefStrings = await getCurrentlyOpenAssets();\n    const openInAppAssetIds = openInAppAssetRefStrings\n        .map((assetRefString) => {\n            try {\n                return parseAssetRef(assetRefString).cloud_id;\n            } catch {\n                return undefined;\n            }\n        })\n        .filter((id) => id !== undefined);\n\n    // Get all open assets that are not folders\n    const openAssetIds = nonFolderElements\n        .filter(({ id }) => openInAppAssetIds.includes(id))\n        .map(({ id }) => id);\n\n    const folderToOpenAssetsMap: Record<string, SAM.AdobeAsset[]> = {};\n\n    // If an in-app open asset id is not matched to an selected asset,\n    // there is another chance that there is a folder containing it.\n    if (\n        openInAppAssetIds.length > openAssetIds.length &&\n        folderElements.length &&\n        getAssetWithCloudID\n    ) {\n        const nonCheckedOpenInAppAssetIds = openInAppAssetIds.filter(\n            (id) => !openAssetIds.includes(id),\n        );\n\n        const nonCheckedOpenInAppAssets = await Promise.all(\n            nonCheckedOpenInAppAssetIds.map((id) => getAssetWithCloudID(id)),\n        );\n\n        folderElements.forEach(({ id }) => {\n            const openAssetsInFolder = nonCheckedOpenInAppAssets.filter((asset) =>\n                asset.ancestorIDs?.includes(id),\n            );\n\n            if (openAssetsInFolder.length > 0) {\n                openAssetIds.push(id);\n                folderToOpenAssetsMap[id] = openAssetsInFolder;\n            }\n        });\n    }\n\n    const openAssets = elements.filter(({ id }) => openAssetIds.includes(id));\n    const nonOpenAssets = elements.filter(({ id }) => !openAssetIds.includes(id));\n\n    return {\n        openAssets,\n        nonOpenAssets,\n        folderToOpenAssetsMap,\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport MoveTo from '@ccx-public/spectrum-wrapper/dist/Icon/MoveTo';\nimport { Action, deriveParentPath, EventType } from '@csc/collection-view';\nimport type { ShowModalFn, LaunchUAPType } from '@csc/common';\nimport { hasAnyLegacyExpress, PickerMode } from '@csc/common';\nimport { onlyOneOrMultipleAndNoSyncErrors } from '../utils/available-offline';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport { getAssetName, isCmTrainingSet, isQuotaError } from '@csc/sam-utils';\nimport React from 'react';\nimport type { IntlShape, MessageDescriptor } from 'react-intl';\nimport { defineMessage } from 'react-intl';\nimport LossyMoveWarningDialog from '../components/LossyMoveWarning';\nimport MoveLibraryPermissionDialog from '../components/MoveLibraryPermissionDialog';\nimport ProgressDialog from '../components/ProgressDialog';\nimport type { AAVOperationStore, IOpMetricLogger } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { hasAnyFolders } from '../utils/folders';\nimport AAVMetrics from '../utils/metrics/aav-metrics';\nimport { elementsHavePermission } from '../utils/permissions';\nimport { getDisabledTooltipLabelForMove, isViewEnabledForMove } from '../utils/route-enabled-utils';\nimport type { AAVActionArgs } from './utils';\nimport { partitionAssetsByOpenStatus } from './utils';\n\ninterface IUndoMoveArgs {\n    correlationId?: string;\n    elements: BackedCollectionItem<SAM.AdobeAsset>[];\n    intl: IntlShape;\n    metricLogger?: IOpMetricLogger;\n    operationStore: AAVOperationStore;\n    showToast: AssetBrowser.ShowToastFn;\n    source: SAM.AdobeAsset;\n    showModal: ShowModalFn;\n    projectContext?: SAM.ProjectContext;\n}\n\ninterface GetFeatureFlagConfigProps {\n    elements: BackedCollectionItem<SAM.AdobeAsset>[];\n    featureFlags?: Record<string, boolean | string>;\n    isMobile?: boolean;\n    viewId: AssetBrowser.ContentViewType;\n}\n\ntype MoveMessage =\n    | 'failed'\n    | 'success'\n    | 'preLoadFailed'\n    | 'postLoadFailed'\n    | 'undoFailed'\n    | 'undoSuccess'\n    | 'failedQuota';\n// case for failedSingleOpenAsset and failedMultipleOpenAssets are handled in showToastForMoveOpenAssets\n\nconst getFeatureFlagConfig = ({\n    elements,\n    featureFlags,\n    isMobile,\n    viewId,\n}: GetFeatureFlagConfigProps) => {\n    const overrides: Record<string, boolean | string> = {\n        cdpTabs: true,\n        disableCloudDocumentsTab: false,\n        enableProjectsTab: true,\n        ...featureFlags,\n    };\n\n    if (areAllLibrariesMovable(elements)) {\n        overrides.disableCloudDocumentsTab = true;\n        overrides.enableCloudDocFolders = false;\n    }\n\n    // Don't show left navs from Projects if there are folders in the selection or smaller width breakpoint\n    // UAP should have disableSideNav set but does not currently\n    if (viewId === AssetBrowser.ContentViewType.Project && (hasAnyFolders(elements) || isMobile)) {\n        overrides.disableCloudDocumentsTab = true;\n    }\n\n    // Don't show Projects tab from Cloud Documents if there are folders, legacy Express assets in the selection, or smaller width breakpoint\n    if (\n        viewId === AssetBrowser.ContentViewType.CloudDocuments &&\n        (hasAnyFolders(elements) ||\n            // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Use new function\n            hasAnyLegacyExpress(elements) ||\n            // TODO - Remove once UAP mobile enhancements are complete - CCPROJ-13218\n            (isMobile && !featureFlags?.enableMobileView))\n    ) {\n        overrides.enableProjectsTab = false;\n    }\n\n    return overrides;\n};\n\nexport const showToastForMoveOpenAssets = ({\n    intl,\n    openAssets,\n    folderToOpenAssetsMap,\n    showToast,\n}: {\n    intl: IntlShape;\n    openAssets: SAM.AdobeAsset[];\n    folderToOpenAssetsMap: Record<string, SAM.AdobeAsset[]>;\n    showToast: AssetBrowser.ShowToastFn;\n}) => {\n    const count = openAssets.length;\n\n    if (!count) {\n        return;\n    }\n\n    if (count === 1) {\n        const asset = openAssets[0];\n        let name = getAssetName(asset);\n        let folderContainsMultipleAssets = false;\n\n        if (asset.isFolder) {\n            const openAssetsInFolder = folderToOpenAssetsMap[asset.id];\n            // When a folder contains only one asset, use the asset's name since it is more\n            // specific than the folder name\n            if (openAssetsInFolder.length === 1) {\n                name = getAssetName(openAssetsInFolder[0]);\n            } else {\n                folderContainsMultipleAssets = true;\n            }\n        }\n\n        showToast({\n            content: intl.formatMessage(\n                {\n                    id: 'aav.actions.move.toast.failedSingleOpenAsset',\n                    defaultMessage:\n                        '{isFolder,select,true{Can\\'t move \"{name}\" because it contains open files. Close them and try again} other{\"{name}\" can\\'t be moved because it\\'s open. Close it and try again}}',\n                },\n                { name, isFolder: folderContainsMultipleAssets },\n            ),\n            variant: 'negative',\n        });\n    } else {\n        showToast({\n            content: intl.formatMessage(\n                {\n                    id: 'aav.actions.move.toast.failedMultipleOpenAssets',\n                    defaultMessage: \"{count} items can't be moved because they're open\",\n                },\n                { count },\n            ),\n            variant: 'negative',\n        });\n    }\n};\n\nexport const getMoveToastContent = ({\n    message,\n    intl,\n    count,\n}: {\n    message: MoveMessage;\n    intl: IntlShape;\n    count?: number;\n}) => {\n    const options = {\n        failed: intl.formatMessage(\n            {\n                id: 'aav.actions.move.toast.failed',\n                defaultMessage: 'Failed to move {count, plural, one {1 item} other {# items}}',\n            },\n            { count },\n        ),\n        failedQuota: intl.formatMessage({\n            id: 'aav.actions.move.toast.failed.quota',\n            defaultMessage:\n                'You have reached your storage limit. Upgrade to continue syncing your work.',\n        }),\n        preLoadFailed: intl.formatMessage({\n            id: 'aav.actions.move.uap.toast.preLoadFailed',\n            defaultMessage: 'This asset cannot be moved, please try again later',\n        }),\n        postLoadFailed: intl.formatMessage({\n            id: 'aav.actions.move.uap.toast.postLoadFailed',\n            defaultMessage: 'An error occurred selecting an asset to move',\n        }),\n        success: intl.formatMessage(\n            {\n                id: 'aav.actions.move.toast.success',\n                defaultMessage: '{count, plural, one {1 item} other {# items}} moved',\n            },\n            { count },\n        ),\n        undoFailed: intl.formatMessage(\n            {\n                id: 'aav.actions.move.toast.undoFailed',\n                defaultMessage:\n                    'Failed to move {count, plural, one {1 item} other {# items}} back to their original location',\n            },\n            { count },\n        ),\n        undoSuccess: intl.formatMessage({\n            id: 'aav.actions.move.toast.undoSuccess',\n            defaultMessage: 'Undo complete',\n        }),\n    };\n    return options[message];\n};\n\nexport const areAllLibrariesMovable = (elements: BackedCollectionItem<SAM.AdobeAsset>[]) =>\n    elements.every(\n        (element) =>\n            element.backingItem.isLibrary &&\n            !(element.backingItem as SAM.Library).isEditingRestricted &&\n            (element.backingItem as SAM.Library).ownership !== 'incoming',\n    );\n\nexport const noneAreLibraries = (elements: BackedCollectionItem<SAM.AdobeAsset>[]) =>\n    elements.every((element) => !element.backingItem.isLibrary);\n\nexport const canMoveElements = (elements: BackedCollectionItem<SAM.AdobeAsset>[] = []) =>\n    onlyOneOrMultipleAndNoSyncErrors(elements) &&\n    elementsHavePermission(elements, SAM.Permission.Move) &&\n    // Need to separate libraries from other assets because for moving libraries,\n    // we can't select folders (move to Project root level only), but folders can be\n    // selected for moving other assets.\n    (areAllLibrariesMovable(elements) || noneAreLibraries(elements));\n\nexport async function undoMove(args: IUndoMoveArgs) {\n    const {\n        correlationId = '',\n        elements,\n        intl,\n        metricLogger,\n        operationStore,\n        source,\n        showToast,\n        showModal,\n    } = args;\n    const messageDescriptor: MessageDescriptor = defineMessage({\n        id: 'aav.actions.undoMove.progress',\n        defaultMessage:\n            '{batchSize,plural,=1{Moving back 1 item...} other{Moving back {numInProgress} of {batchSize} items...}}',\n    });\n\n    const { failedElements } = await operationStore.assetOp({\n        beforeAll: () => {\n            void showModal(\n                <ProgressDialog\n                    operationStore={operationStore}\n                    labelMessageDescriptor={messageDescriptor}\n                />,\n            );\n        },\n        elements,\n        opName: UXOpName.MOVE,\n        operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n            ele.backingItem.move(source),\n        metricLogger,\n        correlationId,\n    });\n    if (failedElements.length > 0) {\n        showToast({\n            content: getMoveToastContent({\n                message: 'undoFailed',\n                intl,\n                count: failedElements.length,\n            }),\n            variant: 'negative',\n        });\n    } else {\n        showToast({\n            content: getMoveToastContent({\n                message: 'undoSuccess',\n                intl,\n            }),\n            variant: 'positive',\n        });\n    }\n}\n\nexport interface IMoveActionArgs extends AAVActionArgs {\n    featureFlags?: Record<string, boolean | string>;\n    getAssetWithCloudID: (assetId: string, confirmAccess?: boolean) => Promise<SAM.AdobeAsset>;\n    includeUndo?: boolean;\n    launchUAP: LaunchUAPType;\n    viewId: AssetBrowser.ContentViewType;\n    showToast: AssetBrowser.ShowToastFn;\n    showModal: ShowModalFn;\n    closeModal?: HostConfig['closeModal'];\n    projectContext?: SAM.ProjectContext;\n    isMobile?: boolean;\n    assetContext?: SAM.AssetContext;\n    isMultiSelectEnabled?: boolean;\n    compatibleTypes?: string[];\n    mediaTypes?: string[];\n    excludeMediaTypes?: string[];\n    getCurrentlyOpenAssets?: () => Promise<string[]>;\n}\n\n/**\n * Determines if a target item should be disabled in the move dialog\n * @param element The target element to check\n * @param sourceElements The elements being moved\n * @param assetContext Optional asset context for checking move capability\n * @returns True if the item should be disabled, false otherwise\n */\nexport async function shouldRenderItemAsDisabled(\n    element: BackedCollectionItem<SAM.AdobeAsset>,\n    sourceElements: BackedCollectionItem<SAM.AdobeAsset>[],\n    assetContext?: SAM.AssetContext,\n): Promise<boolean> {\n    const targetAsset = element.backingItem;\n\n    // TO DO: [CCPROJ-12835] replace this check with SAM isCSCProject logic when available\n    // Disable CSC project navigation\n    if (\n        targetAsset?.isProject &&\n        (targetAsset as SAM.Project).directorySubtype === SAM.ProjectDirectorySubtype.WF_PROJECT\n    ) {\n        return true;\n    }\n\n    // Disable any element from the list of selected elements to be moved to prevent moving element into itself\n    if (sourceElements.find((sourceAsset) => sourceAsset.id === targetAsset.id)) {\n        return true;\n    }\n\n    // Libraries can only be moved to the root of the project.\n    // Disable all other targets when move libraries.\n    if (!targetAsset.isProject && areAllLibrariesMovable(sourceElements)) {\n        return true;\n    }\n\n    // Disable target project that the libraries being move belong to\n    if (\n        sourceElements.some(\n            (sourceAsset) =>\n                sourceAsset.backingItem.isLibrary &&\n                sourceAsset.backingItem.parentProjectID &&\n                sourceAsset.backingItem.parentProjectID === targetAsset.id,\n        )\n    ) {\n        return true;\n    }\n\n    const moveCapability = await assetContext?.getMoveCapability(\n        sourceElements.map((el) => el.backingItem),\n        targetAsset,\n    );\n\n    return !moveCapability?.canMove;\n}\n\nconst handlePersonalLibraryMove = async (\n    firstAdobeAsset: SAM.AdobeAsset,\n    targetCloudId: string,\n    projectContext: SAM.ProjectContext,\n    assetContext: SAM.AssetContext,\n    showModal: ShowModalFn,\n) => {\n    let restrictEditLibrary = false;\n    const projectInfo = await projectContext.getProjectbyID(targetCloudId);\n    const moveCapability = await assetContext.getMoveCapability(\n        [firstAdobeAsset],\n        projectInfo as SAM.AdobeAsset,\n    );\n    const shouldShowRestrictToggle = projectInfo?.repositoryOwner.type === 'org';\n\n    if (shouldShowRestrictToggle) {\n        const { type } = await showModal(\n            <MoveLibraryPermissionDialog\n                element={firstAdobeAsset}\n                setEditRestricted={(editRestricted) => (restrictEditLibrary = editRestricted)}\n            />,\n        );\n        if (type !== AssetBrowser.ShowModalResultType.Success) {\n            return { canMove: false, restrictEditLibrary, moveCancelled: true };\n        }\n    }\n\n    if (\n        moveCapability?.canMove &&\n        // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Use warnings instead\n        moveCapability.warning === SAM.MoveWarning.CollaboratorMaybeEditing\n    ) {\n        const { type } = await showModal(<LossyMoveWarningDialog />);\n        if (type !== AssetBrowser.ShowModalResultType.Success) {\n            return { canMove: false, restrictEditLibrary, moveCancelled: true };\n        }\n    }\n    return { canMove: true, restrictEditLibrary };\n};\n\nexport function createMoveAction({\n    assetContext,\n    compatibleTypes,\n    projectContext,\n    featureFlags,\n    getAssetWithCloudID,\n    includeUndo,\n    intl,\n    launchUAP,\n    metricLogger,\n    onAfter,\n    onBefore,\n    viewId,\n    showModal,\n    showToast,\n    undoMetricLogger,\n    isMobile,\n    isMultiSelectEnabled = true,\n    mediaTypes,\n    excludeMediaTypes,\n    getCurrentlyOpenAssets,\n}: IMoveActionArgs): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Move,\n        label: intl.formatMessage({\n            id: 'aav.actions.move.label',\n            defaultMessage: 'Move',\n        }),\n        icon: <MoveTo />,\n        groupName: 'group2',\n        resetSelection: false,\n        isVisible: (elements) =>\n            !!elements?.length &&\n            canMoveElements(elements) &&\n            (elements.length === 1 || isMultiSelectEnabled),\n        execute: async (\n            operationStore: AAVOperationStore,\n            selectedElements: BackedCollectionItem<SAM.AdobeAsset>[],\n            correlationId = '',\n            predefinedDestinationAssetId: string | undefined,\n        ) => {\n            // If there are assets that cannot be moved such as assets are currently open in the app\n            // or if they are folders containing open assets, show a toast and return early.\n            const { openAssets, folderToOpenAssetsMap } = await partitionAssetsByOpenStatus({\n                elements: selectedElements.map((el) => el.backingItem),\n                getCurrentlyOpenAssets,\n                getAssetWithCloudID,\n            });\n\n            if (openAssets.length) {\n                showToastForMoveOpenAssets({\n                    openAssets,\n                    folderToOpenAssetsMap,\n                    intl,\n                    showToast,\n                });\n                return;\n            }\n\n            // Exclude assets that cannot be moved from the onBeforeMove callback\n            const elements = (await onBefore?.(selectedElements)) ?? selectedElements;\n\n            if (!elements.length) {\n                return;\n            }\n\n            let firstAdobeAsset = elements[0].backingItem;\n            let parentOrAssetId =\n                firstAdobeAsset.ancestorIDs?.[firstAdobeAsset.ancestorIDs.length - 1];\n\n            const allElementsAreLibrariesMovable = areAllLibrariesMovable(elements);\n\n            if (allElementsAreLibrariesMovable) {\n                // SAM relies on Melville apis and no ancestorId is populated there, we have to use element ID as parentAssetId\n                parentOrAssetId = !parentOrAssetId ? firstAdobeAsset.id : parentOrAssetId;\n            }\n\n            if (!parentOrAssetId) {\n                showToast({\n                    content: getMoveToastContent({\n                        message: 'preLoadFailed',\n                        intl,\n                    }),\n                    variant: 'negative',\n                });\n            }\n\n            const source = {\n                cloudID: parentOrAssetId,\n                repositoryID: firstAdobeAsset.repositoryID,\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Legacy assertion, path could be undefined\n                repoPath: deriveParentPath(elements[0].path!),\n                parentProjectID: firstAdobeAsset.parentProjectID,\n            } as SAM.AdobeAsset;\n\n            try {\n                if (assetContext) {\n                    // if element is library and coming from library organizer then this libraray data comes from\n                    // Melville and Melville does not provide repository ID (CCXB-22450).\n                    // Once repository ID is provided by Melville then we dont need to resolve library with RAPI.\n                    // Currently only single library move is allowed from library organizer\n                    if (\n                        elements.length === 1 &&\n                        elements[0].backingItem.isLibrary &&\n                        !elements[0].backingItem.repositoryID\n                    ) {\n                        elements[0].backingItem = await getAssetWithCloudID(\n                            elements[0].backingItem.id,\n                        );\n                        firstAdobeAsset = elements[0].backingItem;\n                    }\n                }\n\n                let destinationCloudID: string;\n                if (predefinedDestinationAssetId) {\n                    destinationCloudID = predefinedDestinationAssetId;\n                } else {\n                    const { destinationAsset } = await launchUAP({\n                        compatibleTypes,\n                        mediaTypes,\n                        excludeMediaTypes,\n                        elements,\n                        featureFlags: getFeatureFlagConfig({\n                            elements,\n                            featureFlags,\n                            isMobile,\n                            viewId,\n                        }),\n                        getDisabledTooltipLabel: () => getDisabledTooltipLabelForMove(intl),\n                        shouldRenderItemAsDisabled: (\n                            element: BackedCollectionItem<SAM.AdobeAsset>,\n                        ) => shouldRenderItemAsDisabled(element, elements, assetContext),\n                        mode: PickerMode.move,\n                        isViewEnabled: (navigationDetail: AssetBrowser.NavigationEventDetail) =>\n                            isViewEnabledForMove({\n                                parentAssetId: parentOrAssetId ?? '',\n                                currentView: navigationDetail,\n                            }),\n                        initialView: {\n                            name: viewId,\n                            params: {\n                                assetId: parentOrAssetId,\n                                repoPath: source.repoPath,\n                                projectId: source.parentProjectID,\n                            },\n                        },\n                    });\n\n                    if (destinationAsset && destinationAsset.cloudID === undefined) {\n                        // UAP returned a selected destination, but without a valid cloudID.\n                        // this shouldn't happen.\n                        throw new Error('Encountered asset descriptor without cloudID');\n                    } else if (!destinationAsset) {\n                        // user cancelled out of UAP move\n                        return;\n                    }\n\n                    // TS isn't able to determine that destinationAsset.cloudID is definitely defined\n                    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- See above\n                    destinationCloudID = destinationAsset.cloudID!;\n                }\n\n                let restrictEdit = false;\n                // For library move we need to show Library permission dialog and lossy dialog if user is moving personal shared\n                // library to a Project\n                if (\n                    firstAdobeAsset.isLibrary &&\n                    !isCmTrainingSet(firstAdobeAsset) &&\n                    (firstAdobeAsset as SAM.Library).ownership === 'private' &&\n                    projectContext &&\n                    assetContext\n                ) {\n                    const { canMove, restrictEditLibrary, moveCancelled } =\n                        await handlePersonalLibraryMove(\n                            firstAdobeAsset,\n                            destinationCloudID,\n                            projectContext,\n                            assetContext,\n                            showModal,\n                        );\n                    if (moveCancelled) {\n                        return;\n                    }\n                    if (!canMove) {\n                        throw new Error('Error in Library move');\n                    }\n                    restrictEdit = restrictEditLibrary;\n                }\n                const messageDescriptor: MessageDescriptor = defineMessage({\n                    id: 'aav.actions.move.progress',\n                    defaultMessage:\n                        '{batchSize,plural,=1{Moving 1 item...} other{Moving {numInProgress} of {batchSize} items...}}',\n                });\n\n                const { failedElements, succeededElements } = await operationStore.assetOp({\n                    beforeAll: () => {\n                        void showModal(\n                            <ProgressDialog\n                                operationStore={operationStore}\n                                labelMessageDescriptor={messageDescriptor}\n                            />,\n                        );\n                    },\n                    elements,\n                    opName: UXOpName.MOVE,\n                    operation: async (\n                        _correlationId: string,\n                        ele: BackedCollectionItem<SAM.AdobeAsset>,\n                    ) => {\n                        const destination: SAM.AdobeAsset =\n                            await getAssetWithCloudID(destinationCloudID);\n\n                        //handling for libraries\n                        if (ele.backingItem.isLibrary) {\n                            return (ele.backingItem as SAM.Library).moveLibrary(\n                                destination,\n                                restrictEdit,\n                            );\n                        }\n\n                        return ele.backingItem.move(destination);\n                    },\n                    metricLogger,\n                    correlationId,\n                });\n\n                if (failedElements.length > 0) {\n                    const errorMessage = isQuotaError(failedElements) ? 'failedQuota' : 'failed';\n                    showToast({\n                        content: getMoveToastContent({\n                            message: errorMessage,\n                            intl,\n                            count: failedElements.length,\n                        }),\n                        variant: 'negative',\n                    });\n                } else {\n                    const actionCallback = {\n                        label: intl.formatMessage({\n                            id: 'aav.actions.move.toast.undo',\n                            defaultMessage: 'Undo',\n                        }),\n                        callback: () => {\n                            void undoMove({\n                                elements,\n                                intl,\n                                operationStore,\n                                source,\n                                showToast,\n                                metricLogger: undoMetricLogger,\n                                showModal,\n                            });\n                        },\n                    };\n                    showToast({\n                        content: getMoveToastContent({\n                            message: 'success',\n                            intl,\n                            count: elements.length,\n                        }),\n                        variant: 'positive',\n                        actionCallback: includeUndo ? actionCallback : undefined,\n                    });\n                    void onAfter?.(succeededElements.map((e) => e.element));\n                    return true;\n                }\n            } catch (err) {\n                const dtsStart = new Date(Date.now());\n                const error = err as Error;\n                void metricLogger?.({\n                    correlationId: AAVMetrics.createCorrelationId(),\n                    element: elements[0],\n                    eventType: EventType.Error,\n                    errorCode: SAM.SAMErrorCode[(error as SAM.SAMError).code],\n                    errorDesc: error.message,\n                    dtsStart,\n                    ...error,\n                });\n                showToast({\n                    content: getMoveToastContent({\n                        message: 'postLoadFailed',\n                        intl,\n                    }),\n                    variant: 'negative',\n                });\n            }\n        },\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport Move from '@ccx-public/spectrum-wrapper/dist/Icon/Move';\nimport { Action, EventType } from '@csc/collection-view';\nimport { PickerMode } from '@csc/common';\nimport React from 'react';\nimport type { MessageDescriptor } from 'react-intl';\nimport { defineMessage } from 'react-intl';\nimport AdobeAssetCollectionItem from '../components/AdobeAssetsView/AdobeAssetCollectionItem';\nimport ProgressDialog from '../components/ProgressDialog';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport BackedCollectionItem from '../types/BackedCollectionItem';\nimport AAVMetrics from '../utils/metrics/aav-metrics';\nimport type { IMoveActionArgs } from './createMoveAction';\nimport { getMoveToastContent, showToastForMoveOpenAssets } from './createMoveAction';\nimport { partitionAssetsByOpenStatus } from './utils';\n\ninterface IMoveFromActionArgs\n    extends Pick<\n        IMoveActionArgs,\n        | 'intl'\n        | 'launchUAP'\n        | 'metricLogger'\n        | 'onAfter'\n        | 'showModal'\n        | 'showToast'\n        | 'closeModal'\n        | 'compatibleTypes'\n        | 'mediaTypes'\n        | 'excludeMediaTypes'\n        | 'getAssetWithCloudID'\n    > {\n    destinationAsset: SAM.AdobeAsset;\n    getCurrentlyOpenAssets?: () => Promise<string[]>;\n}\n\nexport function createMoveFromAction({\n    getAssetWithCloudID,\n    getCurrentlyOpenAssets,\n    intl,\n    launchUAP,\n    metricLogger,\n    onAfter,\n    showModal,\n    showToast,\n    closeModal,\n    destinationAsset,\n    compatibleTypes,\n    mediaTypes,\n    excludeMediaTypes,\n}: IMoveFromActionArgs): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.MoveFrom,\n        label: intl.formatMessage({\n            id: 'aav.actions.moveFrom.label',\n            defaultMessage: 'Move files',\n        }),\n        icon: <Move />,\n        groupName: 'group2',\n        isFolderAction: true,\n        isVisible: () => true,\n        beforeExecute: () => {\n            return Promise.resolve([[new AdobeAssetCollectionItem(destinationAsset)]]);\n        },\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            try {\n                const data = await launchUAP({\n                    compatibleTypes,\n                    mediaTypes,\n                    excludeMediaTypes,\n                    elements,\n                    mode: PickerMode.moveFrom,\n                    initialView: {\n                        name: AssetBrowser.ContentViewType.CloudDocuments,\n                    },\n                });\n\n                const selectedAssets = data.selectedAssets;\n\n                if (!selectedAssets?.length) {\n                    // user cancelled out of UAP move\n                    return;\n                }\n\n                // If all the selected assets are assets that cannot be moved such as assets are\n                // currently open in the app or if they are folders containing open assets, show a\n                // toast and return early.\n                const { openAssets, folderToOpenAssetsMap } = await partitionAssetsByOpenStatus({\n                    elements: selectedAssets,\n                    getCurrentlyOpenAssets,\n                    getAssetWithCloudID,\n                });\n\n                if (openAssets.length === selectedAssets.length) {\n                    showToastForMoveOpenAssets({\n                        openAssets,\n                        folderToOpenAssetsMap,\n                        intl,\n                        showToast,\n                    });\n                    return;\n                }\n\n                const backedSelectedAssets = selectedAssets.map(\n                    (ele) =>\n                        new BackedCollectionItem(ele, (ele) => ({\n                            id: ele.id,\n                            title: ele.name,\n                            fileExtension: ele.extension,\n                            type: ele.mediaType,\n                        })),\n                );\n\n                const messageDescriptor: MessageDescriptor = defineMessage({\n                    id: 'aav.actions.move.progress',\n                    defaultMessage:\n                        '{batchSize,plural,=1{Moving 1 item...} other{Moving {numInProgress} of {batchSize} items...}}',\n                });\n\n                const { failedElements, succeededElements } = await operationStore.assetOp({\n                    beforeAll: () => {\n                        void showModal(\n                            <ProgressDialog\n                                operationStore={operationStore}\n                                labelMessageDescriptor={messageDescriptor}\n                            />,\n                        );\n                    },\n                    elements: backedSelectedAssets,\n                    opName: UXOpName.MOVE,\n                    operation: async (\n                        _correlationId: string,\n                        ele: BackedCollectionItem<SAM.AdobeAsset>,\n                    ) => {\n                        // Skip operation for open assets while keeping them in progress count\n                        if (openAssets.length && openAssets.find((asset) => asset.id === ele.id)) {\n                            return;\n                        }\n                        return ele.backingItem.move(destinationAsset);\n                    },\n                    metricLogger,\n                    correlationId,\n                });\n\n                if (failedElements.length > 0) {\n                    showToast({\n                        content: getMoveToastContent({\n                            message: 'failed',\n                            intl,\n                            count: failedElements.length + (openAssets?.length || 0),\n                        }),\n                        variant: 'negative',\n                    });\n                } else {\n                    if (openAssets.length) {\n                        // Even though move succeeded for non open assets, we show a toast\n                        // about open assets that were skipped.\n                        showToastForMoveOpenAssets({\n                            openAssets,\n                            folderToOpenAssetsMap,\n                            intl,\n                            showToast,\n                        });\n                    } else {\n                        showToast({\n                            content: getMoveToastContent({\n                                message: 'success',\n                                intl,\n                                count: succeededElements.length,\n                            }),\n                            variant: 'positive',\n                        });\n                    }\n                    void onAfter?.(succeededElements.map((e) => e.element));\n                    return true;\n                }\n            } catch (err) {\n                if (closeModal) {\n                    closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n                }\n                const dtsStart = new Date(Date.now());\n                const error = err as Error;\n                void metricLogger?.({\n                    correlationId: AAVMetrics.createCorrelationId(),\n                    element: elements[0],\n                    eventType: EventType.Error,\n                    errorCode: SAM.SAMErrorCode[(error as SAM.SAMError).code],\n                    errorDesc: error.message,\n                    dtsStart,\n                    ...error,\n                });\n                showToast({\n                    content: getMoveToastContent({\n                        message: 'postLoadFailed',\n                        intl,\n                    }),\n                    variant: 'negative',\n                });\n            }\n        },\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { SAM } from '@ccx-public/component-types';\nimport Undo from '@ccx-public/spectrum-wrapper/dist/Icon/Undo';\nimport { Action } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport React from 'react';\nimport type { MessageDescriptor } from 'react-intl';\nimport { defineMessage } from 'react-intl';\nimport ProgressDialog from '../components/ProgressDialog';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport type { AAVActionArgs } from './utils';\n\ninterface IRestoreActionArgs extends AAVActionArgs {\n    showModal: ShowModalFn;\n    showToast: AssetBrowser.ShowToastFn;\n}\n\nfunction canRestore(elements: BackedCollectionItem<SAM.AdobeAsset>[]) {\n    return (\n        elements.filter((el) => {\n            const needsPermission = el.backingItem.isProject || el.backingItem.isChildOfProject;\n            return !needsPermission || el.backingItem.hasPermission(SAM.Permission.Restore);\n        }).length > 0\n    );\n}\n\nexport function createRestoreAction(\n    args: IRestoreActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Restore,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.restore.label',\n            defaultMessage: 'Restore',\n        }),\n        icon: <Undo />,\n        groupName: 'group1',\n        isVisible: args.isVisible\n            ? (elements) => Boolean(args.isVisible?.(elements))\n            : (elements) => canRestore(elements ?? []),\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            const { showModal } = args;\n            const messageDescriptor: MessageDescriptor = defineMessage({\n                id: 'aav.actions.restore.progress',\n                defaultMessage:\n                    'Restoring {batchSize, plural, =1 {1 item} other {{numInProgress} of {batchSize} items}}...',\n            });\n\n            const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n\n            const { failedElements, succeededElements } = await operationStore.assetOp({\n                beforeAll: () => {\n                    void showModal(\n                        <ProgressDialog\n                            operationStore={operationStore}\n                            labelMessageDescriptor={messageDescriptor}\n                        />,\n                    );\n                },\n                elements: filteredElements,\n                opName: UXOpName.RESTORE,\n                operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n                    ele.backingItem.restore(),\n                metricLogger: args.metricLogger,\n                correlationId,\n            });\n\n            if (failedElements.length > 0) {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.restore.toast.failed',\n                            defaultMessage:\n                                \"{count,plural,one{Couldn't restore item.} other{Couldn't restore # items.}}\",\n                        },\n                        { count: failedElements.length },\n                    ),\n                    variant: 'negative',\n                });\n            } else {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.restore.toast.success',\n                            defaultMessage:\n                                '{count,plural,one{Item restored.} other{# items restored.}}',\n                        },\n                        { count: elements.length - failedElements.length },\n                    ),\n                    variant: 'positive',\n                });\n            }\n\n            void args.onAfter?.(succeededElements.map((e) => e.element));\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport IconFolder from '@ccx-public/spectrum-wrapper/dist/Icon/Folder';\nimport { Action } from '@csc/collection-view';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport { NavigationEvent } from '@csc/common';\nimport React from 'react';\nimport { ActionAnalyticsValue } from '../../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { getLocation } from '../../utils/view-item-utils';\nimport type { AAVActionArgs } from '../utils';\n\ninterface IShowLocationArgs extends AAVActionArgs {\n    dispatchEvent: HostConfig['dispatchEvent'];\n}\n\nexport function createShowLocationAction(\n    args: IShowLocationArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    const { dispatchEvent, intl } = args;\n    return new Action({\n        value: ActionAnalyticsValue.ShowLocation,\n        label: intl.formatMessage({\n            id: 'aav.actions.showLocation.label',\n            defaultMessage: 'Show location',\n        }),\n        icon: <IconFolder />,\n        groupName: 'group2',\n        execute: (_operationStore, [element]) => navigateToAssetLocation(element, dispatchEvent),\n        ...args,\n    });\n}\n\nexport async function navigateToAssetLocation(\n    element: BackedCollectionItem<SAM.AdobeAsset>,\n    dispatchEvent: (event: CustomEvent) => void,\n): Promise<void> {\n    if (!element) {\n        return Promise.resolve();\n    }\n\n    const name: AssetBrowser.ContentViewType = getLocation(element) as AssetBrowser.ContentViewType;\n    const item = element.backingItem;\n\n    if (name === AssetBrowser.ContentViewType.Project) {\n        const lastAncestorId = item.ancestorIDs?.[item.ancestorIDs.length - 1];\n\n        const projectEventDetail: AssetBrowser.ProjectNavigationEventDetail = {\n            name,\n            params: {\n                projectId: item.parentProjectID,\n                // If the last ancestor ID matches the project ID, the asset is at the root level.\n                // Otherwise, we need to navigate to the specific folder containing the asset.\n                assetId: lastAncestorId === item.parentProjectID ? undefined : lastAncestorId,\n                routeId: item.id,\n            },\n        };\n\n        dispatchEvent(new NavigationEvent(projectEventDetail));\n    } else {\n        const navEventDetail: AssetBrowser.NavigationEventDetail = {\n            name,\n            params: {\n                assetId: item.id,\n                routingRefreshTimestamp: Date.now().toString(),\n            },\n        };\n        dispatchEvent(new NavigationEvent(navEventDetail));\n    }\n\n    return Promise.resolve();\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport IconStar from '@ccx-public/spectrum-wrapper/dist/Icon/StarFilled';\nimport { Action, EventType } from '@csc/collection-view';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport React from 'react';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport type { AAVActionArgs } from './utils';\nimport { AnalyticsEvent } from './analytics/AnalyticsEvent';\n\ninterface IFavoriteActionArgs extends AAVActionArgs {\n    showToast: AssetBrowser.ShowToastFn;\n    dispatchEvent?: HostConfig['dispatchEvent'];\n}\n\nexport function createRemoveFavoriteAction(\n    args: IFavoriteActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.RemoveFavorite,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.removeFavorite.label',\n            defaultMessage: 'Remove from Favorites',\n        }),\n        icon: <IconStar className=\"cdo-Icon\" />,\n        isQuickAction: true,\n        groupName: 'group1',\n        isVisible: args.isVisible ? (elements) => Boolean(args.isVisible?.(elements)) : () => true,\n        execute: async (operationStore: AAVOperationStore, elements) => {\n            const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n            const initAnalyticsPayload = {\n                type: EventType.Click as string,\n                action: ActionAnalyticsValue.RemoveFavorite as string,\n                assetData: elements.map((element) => ({\n                    element: element,\n                })),\n            };\n            args.dispatchEvent?.(new AnalyticsEvent(initAnalyticsPayload));\n            const { succeededElements, failedElements } = await operationStore.assetOp({\n                elements: filteredElements,\n                opName: UXOpName.REMOVE_FAVORITE,\n                operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n                    ele.backingItem.setIsFavorite(false),\n                metricLogger: args.metricLogger,\n                correlationId: '',\n            });\n\n            if (failedElements.length > 0) {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.removeFavorite.toast.failed',\n                            defaultMessage:\n                                '{count,plural,one{Couldn’t remove from Favorites.} other{Couldn’t remove # items from Favorites.}}',\n                        },\n                        { count: failedElements.length },\n                    ),\n                    variant: 'negative',\n                });\n                const failureAnalyticsPayload = {\n                    type: EventType.Failure as string,\n                    action: ActionAnalyticsValue.RemoveFavorite as string,\n                    assetData: failedElements,\n                };\n                args.dispatchEvent?.(new AnalyticsEvent(failureAnalyticsPayload));\n            } else {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.removeFavorite.toast.success',\n                            defaultMessage:\n                                '{count,plural,one{Item removed from Favorites.} other{# items removed from Favorites.}}',\n                        },\n                        { count: filteredElements.length },\n                    ),\n                    variant: 'positive',\n                });\n            }\n            if (succeededElements.length > 0) {\n                const successAnalyticsPayload = {\n                    type: EventType.Success as string,\n                    action: ActionAnalyticsValue.RemoveFavorite as string,\n                    assetData: succeededElements,\n                };\n                args.dispatchEvent?.(new AnalyticsEvent(successAnalyticsPayload));\n            }\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport Flag from '@ccx-public/spectrum-wrapper/dist/Icon/Flag';\nimport { Action, EventType } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport { hasOnlyOne } from '@csc/common';\nimport React from 'react';\nimport type { IntlShape } from 'react-intl';\nimport ReportAbuse from '../../components/ReportAbuseDialog/ReportAbuseDialog';\nimport { ActionAnalyticsValue } from '../../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { hasOnlyNonFolders } from '../../utils/folders';\nimport AAVMetrics from '../../utils/metrics/aav-metrics';\nimport type { AAVActionArgs } from '../utils';\n\ninterface IReportAbuseActionArgs extends AAVActionArgs {\n    intl: IntlShape;\n    isMobile?: boolean;\n    showModal: ShowModalFn;\n    showToast: AssetBrowser.ShowToastFn;\n}\n\nexport function createReportAbuseAction({\n    intl,\n    isMobile,\n    showModal,\n    showToast,\n    metricLogger,\n    onAfter,\n    ...args\n}: IReportAbuseActionArgs): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.ReportAbuse,\n        label: intl.formatMessage({\n            id: 'aav.actions.reportabuse.label',\n            defaultMessage: 'Report abuse',\n        }),\n        icon: <Flag />,\n        resetSelection: false,\n        groupName: 'group2',\n        isNonBlocking: true,\n        isVisible: (elements) => {\n            return hasOnlyOne(elements) && hasOnlyNonFolders(elements ?? []);\n        },\n        execute: async (_, [element], correlationId = '') => {\n            const dtsStart = new Date(Date.now());\n            const computedCorrelationId = correlationId || AAVMetrics.createCorrelationId();\n            const onSuccess = () => {\n                void metricLogger?.({\n                    correlationId: computedCorrelationId,\n                    element,\n                    eventType: EventType.Success,\n                    dtsStart,\n                });\n                showToast({\n                    content: intl.formatMessage({\n                        id: 'aav.actions.reportabuse.onSuccess',\n                        defaultMessage: 'Successfully reported abuse',\n                    }),\n                    variant: 'positive',\n                });\n            };\n            const onError = (error: Error) => {\n                void metricLogger?.({\n                    correlationId: computedCorrelationId,\n                    element,\n                    eventType: EventType.Error,\n                    errorCode: error.name,\n                    errorDesc: error.message,\n                    dtsStart,\n                });\n                showToast({\n                    content: intl.formatMessage({\n                        id: 'aav.actions.reportabuse.onFail',\n                        defaultMessage: 'Failed to report abuse',\n                    }),\n                    variant: 'negative',\n                });\n            };\n\n            const { type } = await showModal(\n                <ReportAbuse\n                    assetId={element.id}\n                    isMobile={isMobile}\n                    onSuccess={onSuccess}\n                    onError={onError}\n                />,\n            );\n            if (type !== AssetBrowser.ShowModalResultType.Success) {\n                return false;\n            }\n            void onAfter?.([element]);\n            return true;\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport Remove from '@ccx-public/spectrum-wrapper/dist/Icon/Remove';\nimport { Action } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport { isBrand, isCmTrainingSet } from '@csc/sam-utils';\nimport React from 'react';\nimport type { MessageDescriptor } from 'react-intl';\nimport { defineMessage } from 'react-intl';\nimport ProgressDialog from '../components/ProgressDialog';\nimport type { AAVOperationStore } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { getAssetTypes } from '../utils/view-item-utils';\nimport type { AAVActionArgs } from './utils';\n\ninterface IRemoveLibraryActionArgs extends AAVActionArgs {\n    showToast: AssetBrowser.ShowToastFn;\n    showModal: ShowModalFn;\n}\n\nexport function createRemoveLibraryAction(\n    args: IRemoveLibraryActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.Remove,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.removeLibrary.label',\n            defaultMessage: 'Remove from your libraries & brands',\n        }),\n        icon: <Remove />,\n        groupName: 'group2',\n        isVisible: (elements) => {\n            if (!elements) {\n                return false;\n            }\n            return (\n                elements.length > 0 &&\n                elements.every((ele) => ele.backingItem.isLibrary) &&\n                elements.every((ele) => !isCmTrainingSet(ele.backingItem)) &&\n                elements.every((ele) => (ele.backingItem as SAM.Library).isBookmarked)\n            );\n        },\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            const { showModal } = args;\n            const filteredElements = (await args.onBefore?.(elements)) ?? elements;\n            const { pluralAssetType } =\n                filteredElements.length > 0 && filteredElements[0].backingItem\n                    ? getAssetTypes(\n                          isBrand(elements[0].backingItem),\n                          isCmTrainingSet(elements[0].backingItem),\n                          args.intl,\n                      )\n                    : { pluralAssetType: '' };\n\n            const messageDescriptor: MessageDescriptor = defineMessage({\n                id: 'aav.actions.removeLibrary.progress',\n                defaultMessage: 'Removing from your libraries & brands...',\n            });\n\n            const { failedElements, succeededElements } = await operationStore.assetOp({\n                beforeAll: () => {\n                    void showModal(\n                        <ProgressDialog\n                            operationStore={operationStore}\n                            labelMessageDescriptor={messageDescriptor}\n                        />,\n                    );\n                },\n                elements: filteredElements,\n                opName: UXOpName.REMOVE,\n                operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n                    (ele.backingItem as SAM.Library)?.unbookmark(),\n                metricLogger: args.metricLogger,\n                correlationId,\n            });\n\n            if (failedElements.length > 0) {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.removeLibrary.toast.failed',\n                            defaultMessage: 'Failed to remove from your {pluralAssetType}',\n                        },\n                        { pluralAssetType },\n                    ),\n                    variant: 'negative',\n                });\n            } else {\n                args.showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.removeLibrary.toast.success',\n                            defaultMessage: 'Removed from your {pluralAssetType} successfully',\n                        },\n                        { pluralAssetType },\n                    ),\n                    variant: 'positive',\n                });\n            }\n\n            void args.onAfter?.(succeededElements.map((e) => e.element));\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { localizedGoUrl, useHostConfig } from '@csc/common';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport React, { useCallback } from 'react';\nimport { FormattedMessage, defineMessage, useIntl } from 'react-intl';\nimport ExternalLink from '../ExternalLink/ExternalLink';\nimport { SYNC_ERR_GO_URL_BASE } from '../SyncErrorDialog/SyncErrorDialog';\n\nexport enum SyncErrorResolutionFailureType {\n    Duplicate = 'duplicate',\n    Purge = 'purge',\n}\n\ninterface ISyncErrorResolutionFailureDialogProps {\n    failureType: SyncErrorResolutionFailureType;\n}\n\nconst SyncErrorResolutionFailureDialog = (props: ISyncErrorResolutionFailureDialogProps) => {\n    const intl = useIntl();\n    const { closeModal } = useHostConfig();\n\n    const syncErrorCopy = {\n        heading: defineMessage({\n            id: 'aav.actions.resolveSyncConflict.syncErrorCopyFail.dialog.heading',\n            defaultMessage: 'Could not save a copy',\n        }),\n        body: defineMessage({\n            id: 'aav.actions.resolveSyncConflict.syncErrorCopyFail.dialog.body',\n            defaultMessage:\n                'You can still open this document and make edits, but your changes will not be saved to the cloud.',\n        }),\n        bodyWithLearnMore: defineMessage({\n            id: 'aav.actions.resolveSyncConflict.syncErrorCopyFail.dialog.bodyWithLearnMore',\n            defaultMessage:\n                'Please contact Adobe Customer Care for further assistance. (Error: LocalContentSyncSuspended)',\n        }),\n    };\n    const syncErrorPurge = {\n        heading: defineMessage({\n            id: 'aav.actions.resolveSyncConflict.syncErrorPurgeFail.dialog.heading',\n            defaultMessage: 'Could not restore to last version saved in cloud',\n        }),\n        body: defineMessage({\n            id: 'aav.actions.resolveSyncConflict.syncErrorPurgeFail.dialog.body',\n            defaultMessage:\n                'A copy of your document has been created, but we could not restore your document to the last saved version in the cloud.',\n        }),\n        bodyWithLearnMore: defineMessage({\n            id: 'aav.actions.resolveSyncConflict.syncErrorCopyFail.dialog.bodyWithLearnMore',\n            defaultMessage:\n                'Please contact Adobe Customer Care for further assistance. (Error: LocalContentSyncSuspended)',\n        }),\n    };\n    const errorLabelMap =\n        props.failureType === SyncErrorResolutionFailureType.Duplicate\n            ? syncErrorCopy\n            : syncErrorPurge;\n\n    const onCancel = useCallback(() => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Cancel });\n    }, [closeModal]);\n\n    const onConfirm = () => {\n        closeModal({ type: AssetBrowser.ShowModalResultType.Close });\n    };\n\n    return (\n        <DialogContent\n            title={intl.formatMessage(errorLabelMap.heading)}\n            cancelLabel={intl.formatMessage({\n                id: 'aav.actions.resolveSyncConflict.syncErrorFail.dialog.closeButton',\n                defaultMessage: 'Close',\n            })}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.actions.resolveSyncConflict.syncErrorFail.dialog.contactUs',\n                defaultMessage: 'Contact us',\n            })}\n            variant=\"error\"\n            onCancel={onCancel}\n            onConfirm={onConfirm}\n            expressTheme={false}\n        >\n            <div>\n                <FormattedMessage {...errorLabelMap.body}>{(txt) => <p>{txt}</p>}</FormattedMessage>\n                <FormattedMessage {...errorLabelMap.bodyWithLearnMore}>\n                    {(txt) => (\n                        <p>\n                            {txt}\n                            &nbsp;\n                            <ExternalLink url={localizedGoUrl(SYNC_ERR_GO_URL_BASE, intl.locale)}>\n                                <FormattedMessage\n                                    id=\"aav.actions.resolveSyncConflict.syncErrorFail.dialog.learnMore\"\n                                    defaultMessage=\"Learn more\"\n                                />\n                            </ExternalLink>\n                        </p>\n                    )}\n                </FormattedMessage>\n            </div>\n        </DialogContent>\n    );\n};\n\nexport default SyncErrorResolutionFailureDialog;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { Action, EventType } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport React from 'react';\nimport SyncErrorResolutionFailureDialog, {\n    SyncErrorResolutionFailureType,\n} from '../components/SynErrorResolutionFailureDialog/SyncErrorResolutionFailureDialog';\nimport SyncErrorDialog from '../components/SyncErrorDialog/SyncErrorDialog';\nimport type {\n    AAVOperationStore,\n    IOpMetricLogger,\n    IOperationalMetricOptions,\n} from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport AAVMetrics from '../utils/metrics/aav-metrics';\nimport type { AAVActionArgs } from './utils';\n\ninterface IResolveSyncConflictsActionArgs extends AAVActionArgs {\n    showToast: AssetBrowser.ShowToastFn;\n    showModal: ShowModalFn;\n    onOpen?: (assets: SAM.AdobeAsset[]) => void;\n}\n\nexport const resolveSyncError = async (\n    element: BackedCollectionItem<SAM.AdobeAsset>,\n    operationStore: AAVOperationStore,\n    correlationId: string = '',\n    metricLogger?: IOpMetricLogger,\n) => {\n    const metricOptions: IOperationalMetricOptions = {\n        // Metric duration is for both operations\n        dtsStart: new Date(Date.now()),\n        element,\n        correlationId,\n    };\n    //first duplicate the element\n    const { failedElements: duplicateFailedElements } = await operationStore.assetOp({\n        elements: [element],\n        opName: UXOpName.RESOLVE_SYNC_ERROR,\n        operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n            ele.backingItem.duplicate(undefined),\n        metricLogger,\n        correlationId: correlationId || AAVMetrics.createCorrelationId(),\n    });\n\n    if (duplicateFailedElements.length > 0) {\n        const e = duplicateFailedElements[0].error;\n        void metricLogger?.({\n            ...metricOptions,\n            eventType: EventType.Error,\n            errorCode: e && e.message,\n            errorDesc: e && `(duplicate) ${e.name}`,\n        });\n        // eslint-disable-next-line @typescript-eslint/only-throw-error -- Legacy error\n        throw SyncErrorResolutionFailureType.Duplicate;\n    }\n\n    const { failedElements: purgeFailedElements } = await operationStore.assetOp({\n        elements: [element],\n        opName: UXOpName.RESOLVE_SYNC_ERROR,\n        operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Legacy assertion, purge could be undefined\n            ele.backingItem.purge!(),\n        metricLogger: metricLogger,\n        correlationId,\n    });\n\n    if (purgeFailedElements.length > 0) {\n        const e = purgeFailedElements[0].error;\n        void metricLogger?.({\n            ...metricOptions,\n            eventType: EventType.Error,\n            errorCode: e && e.message,\n            errorDesc: e && `(purge) ${e.name}`,\n        });\n        // eslint-disable-next-line @typescript-eslint/only-throw-error -- Legacy error\n        throw SyncErrorResolutionFailureType.Purge;\n    }\n\n    // Log the action as an operational metric with success\n    void metricLogger?.({\n        ...metricOptions,\n        eventType: EventType.Success,\n    });\n};\n\nexport function createResolveSyncConflictsAction(\n    args: IResolveSyncConflictsActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.ResolveSyncError,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.resolveSyncConflict.label',\n            defaultMessage: 'Resolve sync conflicts',\n        }),\n        groupName: 'group3',\n        resetSelection: false,\n        isVisible: args.isVisible ? (elements) => Boolean(args.isVisible?.(elements)) : () => false,\n        isNonBlocking: true,\n        execute: async (operationStore: AAVOperationStore, [element], correlationId = '') => {\n            let shouldResolveConflict = true;\n            const showModalResult = await args.showModal(<SyncErrorDialog />);\n            if (showModalResult.type !== AssetBrowser.ShowModalResultType.Success) {\n                shouldResolveConflict = false;\n            }\n            const filteredElement = (await args.onBefore?.([element])) ?? [element];\n            const resolvableElement = filteredElement[0];\n            const metricLogger = args.metricLogger;\n            if (shouldResolveConflict) {\n                // Log the action as an operational metric\n                void metricLogger?.({\n                    correlationId,\n                    eventType: EventType.Click,\n                    element: resolvableElement,\n                });\n                try {\n                    await resolveSyncError(\n                        resolvableElement,\n                        operationStore,\n                        correlationId,\n                        metricLogger,\n                    );\n                    args.showToast({\n                        content: args.intl.formatMessage(\n                            {\n                                id: 'aav.actions.resolveSyncConflict.toast.success',\n                                defaultMessage:\n                                    'Copy of {name} created. You can compare both documents and reconcile any differences.',\n                            },\n                            { name: resolvableElement.title },\n                        ),\n                        variant: 'positive',\n                    });\n                    return true;\n                } catch (e) {\n                    void args.showModal(\n                        <SyncErrorResolutionFailureDialog\n                            failureType={e as SyncErrorResolutionFailureType}\n                        />,\n                    );\n                    return false;\n                } finally {\n                    // Just like normal Actions, if the action completes, log a success.\n                    // Operation failures are logged as operational metrics.\n                    void metricLogger?.({\n                        correlationId,\n                        eventType: EventType.Success,\n                    });\n                }\n            } else {\n                void args.onOpen?.([resolvableElement.backingItem]);\n                void metricLogger?.({\n                    correlationId,\n                    dtsStart: new Date(),\n                });\n            }\n            void args.onAfter?.([resolvableElement]);\n        },\n        ...args,\n    });\n}\n\nexport type { IResolveSyncConflictsActionArgs };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport { Action } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport IconCCLibrary from '@csc/ui/dist/src/Icons/CCLibrary';\nimport React from 'react';\nimport type { MessageDescriptor } from 'react-intl';\nimport { defineMessage } from 'react-intl';\nimport AdobeAssetCollectionItem from '../../components/AdobeAssetsView/AdobeAssetCollectionItem';\nimport ProgressDialog from '../../components/ProgressDialog';\nimport type { AAVOperationStore, IOpMetricLogger } from '../../stores/AAVOperationStore';\nimport { UXOpName } from '../../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport AAVMetrics from '../../utils/metrics/aav-metrics';\nimport type { AAVActionArgs } from '../utils';\nimport type { NewLibraryData } from './NewLibraryDialog';\nimport NewLibraryDialog from './NewLibraryDialog';\n\nexport interface ICreateNewLibraryActionArgs extends AAVActionArgs {\n    showModal: ShowModalFn;\n    showToast: AssetBrowser.ShowToastFn;\n    projectContext: SAM.ProjectContext;\n    libraryContext?: SAM.LibraryContext;\n    parentProject?: SAM.Project;\n    isMobile: boolean;\n    metricLogger: IOpMetricLogger;\n}\n\n/**\n * operationStore.assetOp is supposed to operate on selected assets, but here\n * we have no actual elements to operate on. So we are passing an array with a single\n * undefined element to operationStore.assetOp. This is a workaround to make operationStore.assetOp\n * work with this action. Benefit of using operationStore is that we're able to show progress dialog,\n * log metrics, and handle success/failure of the operation in a consistent way.\n */\nexport async function createLibraryAssetOp(\n    operationStore: AAVOperationStore,\n    elements: BackedCollectionItem<SAM.AdobeAsset>[],\n    libraryData: NewLibraryData,\n    showModal: ShowModalFn,\n    messageDescriptor: MessageDescriptor,\n    projectContext: SAM.ProjectContext,\n    corelationId: string,\n    metricLogger: IOpMetricLogger,\n    libraryContext?: SAM.LibraryContext,\n    parentProject?: SAM.Project,\n) {\n    const { failedElements, succeededElements } = await operationStore.assetOp({\n        beforeAll: () => {\n            void showModal(\n                <ProgressDialog\n                    operationStore={operationStore}\n                    labelMessageDescriptor={messageDescriptor}\n                />,\n            );\n        },\n        elements,\n        opName: UXOpName.NEW_LIBRARY,\n        operation: async () => {\n            const { name, isPersonalLibrary, projectData } = libraryData;\n            // Create personal library\n            if (isPersonalLibrary) {\n                if (!libraryContext) {\n                    throw new Error('Library context is not available');\n                }\n                const library = await libraryContext.createPersonalLibrary({ name });\n                return new AdobeAssetCollectionItem(library);\n            }\n            // Create library under project\n            if (!projectData) {\n                throw new Error('Error creating library');\n            }\n            const { id, restrictEdit } = projectData;\n            const project = parentProject ?? (await projectContext.getProjectbyID(id));\n            const library = await project.createLibrary({ name, restrictEdit });\n            return new AdobeAssetCollectionItem(library);\n        },\n        metricLogger: metricLogger,\n        correlationId: corelationId || AAVMetrics.createCorrelationId(),\n    });\n    return { failedElements, succeededElements };\n}\n\nexport function createNewLibraryAction(\n    args: ICreateNewLibraryActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    const {\n        intl,\n        showModal,\n        showToast,\n        projectContext,\n        libraryContext,\n        parentProject,\n        isMobile,\n        metricLogger,\n    } = args;\n    return new Action<BackedCollectionItem<SAM.AdobeAsset>>({\n        value: 'newLibrary',\n        label: intl.formatMessage({\n            id: 'aav.actions.newLibrary.label',\n            defaultMessage: 'Create library',\n        }),\n        isVisible: () => !parentProject || parentProject.hasPermission(SAM.Permission.Write), // either project is not provided or user has write permission\n        icon: <IconCCLibrary />,\n        isNonBlocking: true,\n        isFolderAction: true,\n        async beforeExecute(_operationStore, [element]) {\n            /**\n             * Since this action has isFolderAction set to true, the elements arg provided to beforeExecute\n             * will always be an empty array. We have to return at least one element from beforeExecute\n             * else execute will not be called. So here, we are returning a dummy undefined element.\n             * Notice that by destructing the elements arg as [element], we are actually assigning undefined\n             * to element while remaining type consistent.\n             * If we had instead done return [[undefined], libraryData], typescript would've complained\n             */\n            let libraryData;\n            const { type } = await showModal(\n                <NewLibraryDialog\n                    onLibraryCreated={(lib: NewLibraryData) => (libraryData = lib)}\n                    parentProject={parentProject}\n                    isMobile={isMobile}\n                />,\n            );\n            if (type != AssetBrowser.ShowModalResultType.Success) {\n                return [[]];\n            }\n            return [[element], libraryData];\n        },\n        execute: async (\n            operationStore: AAVOperationStore,\n            elements,\n            corelationId,\n            libraryData: NewLibraryData,\n        ) => {\n            // show progress dialog\n            const { showModal } = args;\n            const messageDescriptor: MessageDescriptor = defineMessage({\n                id: 'aav.actions.createNewLibrary.progress',\n                defaultMessage: 'Creating new library...',\n            });\n\n            const { failedElements, succeededElements } = await createLibraryAssetOp(\n                operationStore,\n                elements,\n                libraryData,\n                showModal,\n                messageDescriptor,\n                projectContext,\n                corelationId || AAVMetrics.createCorrelationId(),\n                metricLogger,\n                libraryContext,\n                parentProject,\n            );\n\n            if (failedElements.length > 0) {\n                showToast({\n                    content: intl.formatMessage({\n                        id: 'aav.actions.newLibrary.toast.error',\n                        defaultMessage: 'Error creating library',\n                    }),\n                    variant: 'negative',\n                });\n            } else {\n                showToast({\n                    content: intl.formatMessage({\n                        id: 'aav.actions.newLibrary.toast.success',\n                        defaultMessage: 'Library created',\n                    }),\n                    variant: 'positive',\n                });\n            }\n\n            void args.onAfter?.(\n                /**\n                 * succeededElements is a singleton array containing\n                 *   {\n                 *       element: undefined,\n                 *       response: <the newly created library>\n                 *   }\n                 *\n                 * we should return the created library item as the result instead of element\n                 */\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Legacy assertion, response could be undefined\n                succeededElements.map((e) => e.response!),\n            );\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport Add from '@ccx-public/spectrum-wrapper/dist/Icon/Add';\nimport { Action } from '@csc/collection-view';\nimport type { ShowModalFn } from '@csc/common';\nimport { isBrand, isCmTrainingSet } from '@csc/sam-utils';\nimport React from 'react';\nimport type { MessageDescriptor, IntlShape } from 'react-intl';\nimport { defineMessage } from 'react-intl';\nimport ProgressDialog from '../components/ProgressDialog';\nimport type { AAVOperationStore, IOpMetricLogger } from '../stores/AAVOperationStore';\nimport { ActionAnalyticsValue, UXOpName } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { getAssetTypes } from '../utils/view-item-utils';\nimport type { AAVActionArgs } from './utils';\n\ninterface IAddLibraryActionArgs extends AAVActionArgs {\n    showToast: AssetBrowser.ShowToastFn;\n    showModal: ShowModalFn;\n}\n\nexport function getPluralAssetType(\n    filteredElements: BackedCollectionItem<SAM.AdobeAsset>[],\n    intl: IntlShape,\n) {\n    const { pluralAssetType } =\n        filteredElements.length > 0 && filteredElements[0].backingItem\n            ? getAssetTypes(\n                  isBrand(filteredElements[0].backingItem),\n                  isCmTrainingSet(filteredElements[0].backingItem),\n                  intl,\n              )\n            : { pluralAssetType: '' };\n    return pluralAssetType;\n}\n\nexport async function performBookmarkOperation(\n    operationStore: AAVOperationStore,\n    filteredElements: BackedCollectionItem<SAM.AdobeAsset>[],\n    showModal: ShowModalFn,\n    messageDescriptor: MessageDescriptor,\n    correlationId: string,\n    metricLogger?: IOpMetricLogger,\n) {\n    const { failedElements, succeededElements } = await operationStore.assetOp({\n        beforeAll: () => {\n            void showModal(\n                <ProgressDialog\n                    operationStore={operationStore}\n                    labelMessageDescriptor={messageDescriptor}\n                />,\n            );\n        },\n        elements: filteredElements,\n        opName: UXOpName.ADD_LIBRARY,\n        operation: (_correlationId: string, ele: BackedCollectionItem<SAM.AdobeAsset>) =>\n            (ele.backingItem as SAM.Library)?.bookmark(),\n        metricLogger,\n        correlationId,\n    });\n\n    return { failedElements, succeededElements };\n}\n\nexport function createAddLibraryAction(\n    args: IAddLibraryActionArgs,\n): Action<BackedCollectionItem<SAM.AdobeAsset>> {\n    return new Action({\n        value: ActionAnalyticsValue.AddLibrary,\n        label: args.intl.formatMessage({\n            id: 'aav.actions.addLibrary.label',\n            defaultMessage: 'Add to your libraries & brands',\n        }),\n        icon: <Add />,\n        groupName: 'group2',\n        isVisible: (elements) => {\n            if (!elements) {\n                return false;\n            }\n            return (\n                elements.length > 0 &&\n                elements.every((ele) => ele.backingItem.isLibrary) &&\n                elements.every((ele) => !isCmTrainingSet(ele.backingItem)) &&\n                elements.every((ele) => !(ele.backingItem as SAM.Library).isBookmarked)\n            );\n        },\n        execute: async (operationStore: AAVOperationStore, elements, correlationId = '') => {\n            const { showModal, showToast, metricLogger, intl, onBefore, onAfter } = args;\n            const filteredElements = (await onBefore?.(elements)) ?? elements;\n            const pluralAssetType = getPluralAssetType(filteredElements, intl);\n\n            const messageDescriptor: MessageDescriptor = defineMessage({\n                id: 'aav.actions.addLibrary.progress',\n                defaultMessage: 'Adding to your libraries & brands...',\n            });\n\n            const { failedElements, succeededElements } = await performBookmarkOperation(\n                operationStore,\n                filteredElements,\n                showModal,\n                messageDescriptor,\n                correlationId,\n                metricLogger,\n            );\n\n            if (failedElements.length > 0) {\n                showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.addLibrary.toast.failed',\n                            defaultMessage: 'Failed to add to your {pluralAssetType}',\n                        },\n                        { pluralAssetType },\n                    ),\n                    variant: 'negative',\n                });\n            } else {\n                showToast({\n                    content: args.intl.formatMessage(\n                        {\n                            id: 'aav.actions.addLibrary.toast.success',\n                            defaultMessage: 'Added to your {pluralAssetType} successfully',\n                        },\n                        { pluralAssetType },\n                    ),\n                    variant: 'positive',\n                });\n            }\n\n            void onAfter?.(succeededElements.map((e) => e.element));\n        },\n        ...args,\n    });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type { ICollectionViewContext } from '@csc/collection-view';\nimport { useCollectionViewContext } from '@csc/collection-view';\nimport React, { createContext, useContext } from 'react';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport type { IAdobeAssetsViewProps } from './AdobeAssetsView';\n\ntype OptionalProps = Pick<IAdobeAssetsViewProps, 'asset' | 'list'>;\ntype RequiredProps = Required<\n    Pick<\n        IAdobeAssetsViewProps,\n        'actions' | 'onViewOptionsChange' | 'onNavigateOut' | 'sortBy' | 'sortDir' | 'viewMode'\n    >\n>;\n\nexport type IAAVContext = OptionalProps & RequiredProps;\ntype AAVContextProps = keyof IAAVContext;\nexport const AAVContext = createContext<IAAVContext | null>(null);\n\nexport function useAAVContext(): IAAVContext &\n    Omit<ICollectionViewContext<BackedCollectionItem<SAM.AdobeAsset>>, AAVContextProps> {\n    const cvContext = useCollectionViewContext<BackedCollectionItem<SAM.AdobeAsset>>();\n    const aavContext = useContext(AAVContext);\n\n    if (!aavContext) {\n        throw new Error('AAVContext not initialized');\n    }\n\n    return {\n        ...cvContext,\n        ...aavContext,\n    };\n}\n\nexport function AAVContextProvider(props: React.PropsWithChildren<IAAVContext>): React.JSX.Element {\n    const { children, ...rest } = props;\n    return <AAVContext.Provider value={rest}>{children}</AAVContext.Provider>;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type { ICollectionItem } from '@csc/collection-view';\nimport { getAssetName } from '@csc/sam-utils';\nimport BackedCollectionItem from '../../types/BackedCollectionItem';\n\nconst mapAdobeAssetToCollectionItem = (asset: SAM.AdobeAsset): ICollectionItem => {\n    const title: string = getAssetName(asset);\n\n    return {\n        id: asset.id,\n        title,\n        fileExtension: asset.extension,\n        path: asset.repoPath,\n        type: asset.mediaType,\n        rendition: asset.thumbnailURL,\n    };\n};\n\n/**\n * Use this class to construct a `BackedCollectionItem<SAM.AdobeAsset>` conveniently, but don't use it as an\n * expected type. Instead, use `BackedCollectionItem<SAM.AdobeAsset>` in that case directly.\n *\n * @example\n * ```ts\n * // DO:\n * const item = new AdobeAssetCollectionItem(asset);\n * // DO NOT:\n * function myFunction(item: AdobeAssetCollectionItem) { ... }\n * function createSomeAction(args): Action<AdobeAssetCollectionItem> { ... }\n * // DO:\n * function myFunction(item: BackedCollectionItem<SAM.AdobeAsset>) { ... }\n * function createSomeAction(args): Action<BackedCollectionItem<SAM.AdobeAsset>> { ... }\n * ```\n */\nexport default class AdobeAssetCollectionItem extends BackedCollectionItem<SAM.AdobeAsset> {\n    constructor(asset: SAM.AdobeAsset) {\n        super(asset, mapAdobeAssetToCollectionItem);\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type { ICollectionItem, IListViewCustomColumn } from '@csc/collection-view';\nimport { ColumnType, UXSortDir } from '@csc/collection-view';\nimport { useMemo } from 'react';\nimport { useIntl } from 'react-intl';\nimport type { Column } from '../components/columns';\nimport {\n    modifiedDateColumn,\n    sharedWithColumn,\n    sizeColumn,\n    typeColumn,\n} from '../components/columns';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\n\nfunction mapColumnType(type: Column['type']): ColumnType {\n    switch (type) {\n        case 'date':\n            return ColumnType.Date;\n        case 'action':\n            return ColumnType.Action;\n        case 'default':\n        default:\n            return ColumnType.Default;\n    }\n}\nexport default function useColumns({\n    sortBy,\n    sortDir,\n    columns,\n}: {\n    sortDir: string;\n    sortBy: string;\n    columns?: Column[];\n}): IListViewCustomColumn[] {\n    const intl = useIntl();\n    return useMemo(() => {\n        // Default columns if no columns are provided\n        const columnsToMap = columns ?? [\n            typeColumn(intl),\n            modifiedDateColumn(intl),\n            sizeColumn(intl),\n            sharedWithColumn(intl),\n        ];\n        return columnsToMap.map((column) => {\n            const { id, label, isSortDisabled } = column;\n            return {\n                activeSortDirection: sortDir === 'asc' ? UXSortDir.asc : UXSortDir.desc,\n                cellContentRender: (item: ICollectionItem) => {\n                    return column.render(\n                        (item as BackedCollectionItem<SAM.AdobeAsset>).backingItem,\n                    );\n                },\n                columnType: mapColumnType(column.type),\n                id,\n                isActiveSort: column.id === sortBy,\n                isSortDisabled,\n                label,\n                uxSortColumn: id,\n            };\n        });\n    }, [columns, sortBy, sortDir, intl]);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport HeaderActionButton from '../HeaderActionButton/HeaderActionButton';\nimport HeaderNavigation from '../HeaderNavigation/HeaderNavigation';\nimport HeaderViewOptions from '../HeaderViewOptions';\nimport styles from './styles.module.css';\n\nexport default function Header() {\n    return (\n        <div className={styles.header}>\n            <div className={styles.headerToolbar}>\n                <div className={styles.headerLeft}>\n                    <HeaderNavigation rootTitle=\"Files\" />\n                </div>\n                <div className={styles.headerRight}>\n                    <HeaderViewOptions />\n                    <HeaderActionButton />\n                </div>\n            </div>\n        </div>\n    );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"header--T3kVw\",\"headerToolbar\":\"headerToolbar--l7BXg\",\"headerLeft\":\"headerLeft--G0Cfm\",\"headerRight\":\"headerRight--d3PbK\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type { IGridItemPlaceholderProps, IListItemPlaceholderProps } from '@csc/collection-view';\nimport { Column } from '@csc/collection-view';\nimport React from 'react';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { AdobeAssetGridItem } from './AdobeAssetGridItem';\nimport { AdobeAssetListItem } from './AdobeAssetListItem';\n\nconst commonLibraryElementPlaceholder = {\n    fileExtension: 'Loading',\n    title: '',\n    type: 'application/vnd.adobecloud.directory+json',\n};\n\nexport const adobeAssetGridItemPlaceholder = function ({\n    tileHeight,\n    tileWidth,\n    index,\n}: IGridItemPlaceholderProps) {\n    return (\n        <AdobeAssetGridItem\n            loading\n            element={\n                {\n                    ...commonLibraryElementPlaceholder,\n                    id: `item-${index}-loading`,\n                } as unknown as BackedCollectionItem<SAM.AdobeAsset>\n            }\n            tileHeight={tileHeight}\n            tileWidth={tileWidth}\n        />\n    );\n};\n\nexport const adobeAssetListItemPlaceholder = function ({ index }: IListItemPlaceholderProps) {\n    return (\n        <AdobeAssetListItem\n            loading\n            element={\n                {\n                    ...commonLibraryElementPlaceholder,\n                    id: `item-${index}-loading`,\n                } as unknown as BackedCollectionItem<SAM.AdobeAsset>\n            }\n            columns={[Column.Title]}\n        />\n    );\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { SAM } from '@ccx-public/component-types';\n\nimport type {\n    Action,\n    ICollectionItem,\n    ICollectionViewProps,\n    IPaginationProps,\n    ISelectionBehavior,\n    ISelectionManager,\n    IViewItemProps,\n    ListViewColumn,\n    OperationStore,\n} from '@csc/collection-view';\nimport {\n    ClickSelectType,\n    CollectionView,\n    GridView,\n    ListView,\n    MultiSelectionManager,\n    ProcessingState,\n    UXSortBy,\n    UXSortDir,\n    ViewMode,\n} from '@csc/collection-view';\nimport type { OperationState } from '@csc/collection-view/dist/src/utils/constants';\nimport { useHostConfig, useBreakpoint } from '@csc/common';\nimport type { UABSAMCore, GenericAssetList } from '@csc/sam-utils';\nimport { useSAM } from '@csc/sam-utils';\nimport { observer } from 'mobx-react';\nimport React, { useCallback, useMemo } from 'react';\nimport useColumns from '../../hooks/useColumns';\nimport useDefaultActions from '../../hooks/useDefaultActions';\nimport { useDragDrop } from '../../hooks/useDragDrop';\nimport { useSAMListPagination } from '../../hooks/useSAMListPagination';\nimport { AAVOperationStore, ActionAnalyticsValue } from '../../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport type { AAVComponentId } from '../../utils/ingest';\nimport { Metrics } from '../../utils/ingest';\nimport { themeToCVTheme } from '../../utils/theme-utils';\nimport {\n    isAssets3d,\n    isConcept,\n    isExpress,\n    isWebLink,\n    isSquirrel,\n    isFireflyGeneration,\n    isFireflyTemplate,\n    ASSET_TYPES,\n} from '../../utils/view-item/view-item';\nimport Header from '../Header/Header';\nimport type { IGridItemProps, LocationData } from '../ViewItems/AdobeAssetGridItem';\nimport { AdobeAssetGridItem } from '../ViewItems/AdobeAssetGridItem';\nimport {\n    adobeAssetGridItemPlaceholder,\n    adobeAssetListItemPlaceholder,\n} from '../ViewItems/PlaceholderItem';\nimport type { IListItemProps } from '../ViewItems/ViewItems';\nimport {\n    ProjectGridItem,\n    ProjectListItem,\n    WebLinkGridItem,\n    WebLinkListItem,\n    ReviewGridItem,\n    ReviewListItem,\n    LibraryGridItem,\n    LibraryListItem,\n    LibraryElementGridItem,\n    LibraryElementListItem,\n    ExpressGridItem,\n    ExpressListItem,\n    XdArtifactGridItem,\n    XdArtifactListItem,\n    AdobeAssetListItem,\n    FolderListItem,\n    FolderGridItem,\n    ConceptGridItem,\n    ConceptListItem,\n    Assets3DGridItem,\n    Assets3DListItem,\n    SquirrelGridItem,\n    SquirrelListItem,\n    GenerationHistoryGridItem,\n    GenerationHistoryListItem,\n    FireflyTemplateGridItem,\n    FireflyTemplateListItem,\n    TemplateGridItem,\n    TemplateListItem,\n} from '../ViewItems/ViewItems';\nimport type { Column } from '../columns';\nimport { AAVContextProvider } from './AAVContext';\nimport AdobeAssetCollectionItem from './AdobeAssetCollectionItem';\nimport styles from './styles.modules.css';\nimport classNames from 'classnames';\n\nfunction getViewItem(\n    asset: SAM.AdobeAsset,\n    {\n        gridItemProps,\n        listItemProps,\n    }: {\n        gridItemProps: Partial<IGridItemProps>;\n        listItemProps: Partial<IListItemProps>;\n    },\n    sam: UABSAMCore,\n): {\n    gridItem: React.JSX.Element;\n    listItem: React.JSX.Element;\n} {\n    if (asset.isProject) {\n        return {\n            gridItem: <ProjectGridItem {...gridItemProps} />,\n            listItem: <ProjectListItem {...listItemProps} />,\n        };\n    }\n    if (isWebLink(asset)) {\n        return {\n            gridItem: <WebLinkGridItem {...gridItemProps} />,\n            listItem: <WebLinkListItem {...listItemProps} />,\n        };\n    }\n    if (asset.isReviewLink) {\n        return {\n            gridItem: <ReviewGridItem {...gridItemProps} />,\n            listItem: <ReviewListItem {...listItemProps} />,\n        };\n    }\n    if (asset.isLibrary) {\n        return {\n            gridItem: <LibraryGridItem {...gridItemProps} modifiedDate={asset.modified} />,\n            listItem: <LibraryListItem modifiedDate={asset.modified} {...listItemProps} />,\n        };\n    }\n    if (asset.isLibraryElement) {\n        return {\n            gridItem: <LibraryElementGridItem {...gridItemProps} />,\n            listItem: <LibraryElementListItem {...listItemProps} />,\n        };\n    }\n    if (asset.assetType === ASSET_TYPES.TEMPLATE) {\n        return {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            gridItem: <TemplateGridItem {...({} as any)} {...gridItemProps} />,\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            listItem: <TemplateListItem {...({} as any)} {...listItemProps} />,\n        };\n    }\n    if (isExpress(asset)) {\n        return {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            gridItem: <ExpressGridItem {...({} as any)} {...gridItemProps} />,\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            listItem: <ExpressListItem {...({} as any)} {...listItemProps} />,\n        };\n    }\n    if (isConcept(asset)) {\n        return {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            gridItem: <ConceptGridItem {...({} as any)} {...gridItemProps} />,\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            listItem: <ConceptListItem {...({} as any)} {...listItemProps} />,\n        };\n    }\n\n    if (isSquirrel(asset)) {\n        return {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            gridItem: <SquirrelGridItem {...({} as any)} {...gridItemProps} />,\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            listItem: <SquirrelListItem {...({} as any)} {...listItemProps} />,\n        };\n    }\n\n    if (isFireflyGeneration(asset)) {\n        return {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            gridItem: <GenerationHistoryGridItem {...({} as any)} {...gridItemProps} />,\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            listItem: <GenerationHistoryListItem {...({} as any)} {...listItemProps} />,\n        };\n    }\n\n    if (isFireflyTemplate(asset)) {\n        return {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            gridItem: <FireflyTemplateGridItem {...({} as any)} {...gridItemProps} />,\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            listItem: <FireflyTemplateListItem {...({} as any)} {...listItemProps} />,\n        };\n    }\n\n    if (asset.isArtifact) {\n        return {\n            gridItem: (\n                <XdArtifactGridItem\n                    samJSHostAssetContext={sam.hostAssetContext}\n                    {...gridItemProps}\n                />\n            ),\n            listItem: (\n                <XdArtifactListItem\n                    samJSHostAssetContext={sam.hostAssetContext}\n                    {...listItemProps}\n                />\n            ),\n        };\n    }\n\n    if (asset.isFolder) {\n        return {\n            gridItem: <FolderGridItem {...gridItemProps} />,\n            listItem: <FolderListItem {...listItemProps} />,\n        };\n    }\n\n    if (isAssets3d(asset)) {\n        return {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            gridItem: <Assets3DGridItem {...({} as any)} {...gridItemProps} />,\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Expects specific BackedCollectionItem<SAM.AdobeAsset>\n            listItem: <Assets3DListItem {...({} as any)} {...listItemProps} />,\n        };\n    }\n\n    return {\n        gridItem: <AdobeAssetGridItem {...gridItemProps} />,\n        listItem: <AdobeAssetListItem {...listItemProps} />,\n    };\n}\n\nexport interface IAdobeAssetsViewProps\n    extends Pick<\n            ICollectionViewProps,\n            | 'className'\n            | 'launchItems'\n            | 'filters'\n            | 'routeId'\n            | 'getEmptyViewProps'\n            | 'hideActionMenu'\n            | 'hideActionToolbar'\n            | 'onSelectionChange'\n            | 'allowClickEventOnDisabled'\n            | 'onRouted'\n            | 'getDraggedFiles'\n            | 'selectionManager'\n        >,\n        AssetBrowser.ViewOptions {\n    list?: GenericAssetList;\n    actions?: Action<BackedCollectionItem<SAM.AdobeAsset>>[];\n    asset?: SAM.AdobeAsset;\n    columns?: Column[];\n    showLocation?: LocationData['showLocation'];\n    onLocationClick?: LocationData['onLocationClick'];\n    metadataFormat?: (element: ICollectionItem) => React.JSX.Element | undefined;\n    header?: React.ReactNode;\n    onViewOptionsChange?: (config: AssetBrowser.ViewOptions) => unknown;\n    onNavigateOut?: () => unknown;\n    operationStore?: OperationStore;\n    onBeforeItemClicked?: (item: BackedCollectionItem<SAM.AdobeAsset>) => boolean;\n    overrideListColumns?: (columns: ListViewColumn[]) => ListViewColumn[];\n    componentId?: AAVComponentId;\n    ingestSubcategory?: string;\n    shouldRenderItemAsDisabled?: (\n        element: BackedCollectionItem<SAM.AdobeAsset>,\n    ) => Promise<boolean>;\n    getPropsForItem?: (item: BackedCollectionItem<SAM.AdobeAsset>) => Partial<IViewItemProps>;\n    dragDropEnabled?: boolean;\n    maxAssets?: number;\n    selectionBehavior?: ISelectionBehavior;\n    hideNextPageLoadingIndicator?: boolean;\n    routingRefreshTimestamp?: string;\n    listRowHeight?: number;\n}\n\nconst CV_FLAGS = {\n    enableUnifiedSelectionUX: true,\n    enableCDOActionBar: true,\n    enableContextMenu: true,\n    enableIconsWithActions: true,\n    focusManagementEnabled: true,\n    enableDragDrop: true,\n    enablePerformanceMetrics: true,\n};\n\nconst EMPTY_FUNCTION = () => {};\nconst ROW_MARGIN = 16;\nconst COLUMN_MARGIN = 16;\nconst MARGIN_AND_BORDER = 4;\nconst MIN_TILE_WIDTH_MOBILE = 140;\nconst MIN_TILE_WIDTH_DEFAULT = 168;\nconst MAX_TILE_WIDTH = 208;\nconst INFO_HEIGHT_WITH_LOCATION = 90;\nconst INFO_HEIGHT_DEFAULT = 64;\n\nexport default observer(function AdobeAssetsView({\n    list,\n    asset,\n    launchItems,\n    actions,\n    header,\n    operationStore,\n    columns,\n    routeId,\n    filters,\n    onViewOptionsChange = EMPTY_FUNCTION,\n    onNavigateOut = EMPTY_FUNCTION,\n    selectionManager,\n    selectionBehavior,\n    sortBy = UXSortBy.title,\n    sortDir = UXSortDir.asc,\n    viewMode = ViewMode.Grid,\n    showLocation,\n    onLocationClick,\n    metadataFormat,\n    getEmptyViewProps,\n    getPropsForItem,\n    onBeforeItemClicked,\n    overrideListColumns,\n    shouldRenderItemAsDisabled,\n    componentId,\n    ingestSubcategory,\n    hideActionMenu,\n    hideActionToolbar,\n    onSelectionChange,\n    allowClickEventOnDisabled,\n    dragDropEnabled,\n    maxAssets,\n    onRouted,\n    getDraggedFiles,\n    hideNextPageLoadingIndicator,\n    routingRefreshTimestamp,\n    className,\n    listRowHeight,\n}: IAdobeAssetsViewProps) {\n    const elements: Array<BackedCollectionItem<SAM.AdobeAsset>> = list\n        ? list.items.map((item) => new AdobeAssetCollectionItem(item))\n        : [];\n\n    const sam = useSAM();\n    const { isSmallBreakpoint } = useBreakpoint();\n    const gridItemProps: Partial<IGridItemProps> = {\n        showLocation,\n        onLocationClick,\n        metadataFormat,\n    };\n    const aavOperationStore = useMemo(() => new AAVOperationStore(), []);\n    const hostConfig = useHostConfig();\n    const { theme, scale } = hostConfig;\n    const mappedTheme = themeToCVTheme(theme);\n    const defaultActions = useDefaultActions(componentId);\n    const aavActions = actions ?? defaultActions;\n    const actionMenuItems = aavActions.filter((action) => !action.isFolderAction);\n\n    const dragDropConfig = useDragDrop({\n        dragDisabled: !dragDropEnabled,\n        componentId,\n        currentAsset: asset,\n        // TODO: allow consumers to pass in the actions to be used for drag & drop\n        importAction: aavActions.find(\n            (action) => action.analyticsValue === (ActionAnalyticsValue.Import as string),\n        ),\n        moveAction: aavActions.find(\n            (action) => action.analyticsValue === (ActionAnalyticsValue.Move as string),\n        ),\n        startOperation: () => operationStore ?? aavOperationStore,\n        onViewOptionsChange,\n        ingestSubcategory,\n        theme: mappedTheme,\n        getDraggedFiles,\n    });\n\n    const getCardSize = useCallback((isMobile: boolean, showLocation: boolean) => {\n        return {\n            minTileWidth: isMobile ? MIN_TILE_WIDTH_MOBILE : MIN_TILE_WIDTH_DEFAULT,\n            maxTileWidth: MAX_TILE_WIDTH,\n            infoHeight: showLocation ? INFO_HEIGHT_WITH_LOCATION : INFO_HEIGHT_DEFAULT,\n            rowMargin: ROW_MARGIN,\n            columnMargin: COLUMN_MARGIN,\n            marginAndBorder: MARGIN_AND_BORDER,\n        };\n    }, []);\n\n    const onSortSelected = useCallback(\n        (sort: string) => {\n            if (sort === sortBy) {\n                onViewOptionsChange?.({\n                    sortDir: sortDir === UXSortDir.asc ? UXSortDir.desc : UXSortDir.asc,\n                });\n            } else {\n                onViewOptionsChange?.({ sortBy: sort });\n            }\n        },\n        [onViewOptionsChange, sortBy, sortDir],\n    );\n\n    const listColumns = useColumns({ sortBy, sortDir, columns });\n    const cardSize = useMemo(\n        () => getCardSize(isSmallBreakpoint, !!showLocation),\n        [getCardSize, isSmallBreakpoint, showLocation],\n    );\n\n    const samPaginationProps = useSAMListPagination({\n        samList: list,\n        maxAssets,\n        hideNextPageLoadingIndicator,\n    });\n    const pagination: IPaginationProps = {\n        ...samPaginationProps,\n        initialPlaceholderElements: 20,\n        renderGridItemPlaceholder: adobeAssetGridItemPlaceholder,\n        renderListItemPlaceholder: adobeAssetListItemPlaceholder,\n    };\n\n    return (\n        <AAVContextProvider\n            list={list}\n            asset={asset}\n            sortBy={sortBy}\n            sortDir={sortDir}\n            actions={aavActions}\n            onViewOptionsChange={onViewOptionsChange}\n            onNavigateOut={onNavigateOut}\n            viewMode={viewMode}\n        >\n            <CollectionView\n                className={classNames(styles.adobeAssetsView, className)}\n                ingestSubcategory={ingestSubcategory}\n                metrics={componentId && Metrics[componentId]}\n                elements={elements}\n                routingRefreshTimestamp={routingRefreshTimestamp}\n                isLoading={() =>\n                    !sam ||\n                    !list ||\n                    (list.status === SAM.AssetListStatus.Loading && list.items.length === 0)\n                }\n                activeSort={sortBy}\n                activeSortDirection={sortDir}\n                filters={filters}\n                routeId={routeId}\n                shouldRenderItemAsDisabled={shouldRenderItemAsDisabled}\n                isFeatureFlagEnabled={(flag: string) => !!CV_FLAGS[flag]}\n                onBeforeItemClicked={(\n                    item: BackedCollectionItem<SAM.AdobeAsset>,\n                    selectionManager?: ISelectionManager,\n                ) => {\n                    const nonSingleClickSelect =\n                        selectionManager?.selectionUXConfig?.clickSelectionMode !==\n                        ClickSelectType.Single;\n\n                    // When in multi-select mode and a selection already exists,\n                    // clicking additional assets should add to the selection, not open\n                    // the asset.\n                    const multiSelectSingleClick =\n                        selectionManager instanceof MultiSelectionManager &&\n                        selectionManager.selectionUXConfig.clickSelectionMode ===\n                            ClickSelectType.Single;\n\n                    if (\n                        // Prevent opening assets (including navigating to folders) when in\n                        // selection mode.\n                        (selectionManager?.isInSelectionMode || selectionManager?.hasAnySelected) &&\n                        (nonSingleClickSelect || multiSelectSingleClick)\n                    ) {\n                        return false;\n                    }\n\n                    const backingItem = item.backingItem;\n                    if (backingItem.isFolder) {\n                        onViewOptionsChange?.({ assetId: backingItem.id });\n                        return false;\n                    }\n                    const allowedClick = onBeforeItemClicked?.(item) ?? true;\n                    if (!allowedClick) {\n                        return false;\n                    }\n                    return true;\n                }}\n                view={viewMode}\n                launchItems={launchItems}\n                actionMenuItems={actionMenuItems}\n                startOperation={() => operationStore ?? aavOperationStore}\n                operationState={aavOperationStore.assetOpState ?? ProcessingState.Idle}\n                selectionManager={selectionManager}\n                selectionBehavior={selectionBehavior}\n                setOperationState={(state: OperationState) =>\n                    aavOperationStore.setAssetOpState(state)\n                }\n                theme={mappedTheme}\n                scale={scale}\n                pagination={pagination}\n                getEmptyViewProps={getEmptyViewProps}\n                overrideListColumns={overrideListColumns}\n                hideActionMenu={hideActionMenu}\n                hideActionToolbar={hideActionToolbar}\n                onSelectionChange={onSelectionChange}\n                allowClickEventOnDisabled={allowClickEventOnDisabled}\n                onRouted={onRouted}\n                {...dragDropConfig}\n            >\n                {header ?? <Header />}\n                <GridView cardSize={cardSize} getPropsForItem={getPropsForItem}>\n                    {(asset) =>\n                        getViewItem(\n                            (asset as BackedCollectionItem<SAM.AdobeAsset>).backingItem,\n                            { gridItemProps, listItemProps: {} as Partial<IListItemProps> },\n                            sam,\n                        ).gridItem\n                    }\n                </GridView>\n                <ListView\n                    getPropsForItem={getPropsForItem}\n                    onSortSelected={onSortSelected}\n                    columns={listColumns}\n                    rowHeight={listRowHeight}\n                >\n                    {(asset) =>\n                        getViewItem(\n                            (asset as BackedCollectionItem<SAM.AdobeAsset>).backingItem,\n                            { gridItemProps, listItemProps: {} as Partial<IListItemProps> },\n                            sam,\n                        ).listItem\n                    }\n                </ListView>\n            </CollectionView>\n        </AAVContextProvider>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { Themes } from '@csc/common';\n\nexport type Theme =\n    | 'light'\n    | 'lightest'\n    | 'dark'\n    | 'darkest'\n    | 'light-express'\n    | 'lightest-express'\n    | 'dark-express'\n    | 'darkest-express';\n\nexport const themeToCVTheme = (theme: Theme): Themes | undefined => {\n    switch (theme) {\n        case 'light':\n        case 'light-express':\n            return Themes.light;\n        case 'lightest':\n        case 'lightest-express':\n            return Themes.lightest;\n        case 'dark':\n        case 'dark-express':\n            return Themes.dark;\n        case 'darkest':\n        case 'darkest-express':\n            return Themes.darkest;\n        default:\n            return undefined;\n    }\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type { Action } from '@csc/collection-view';\nimport { getBaseUrlMap, useHostConfig } from '@csc/common';\nimport { useSAM } from '@csc/sam-utils';\nimport { useMemo } from 'react';\nimport { useIntl } from 'react-intl';\nimport {\n    createCopyLinkAction,\n    createDiscardAction,\n    createDuplicateAction,\n    createOpenAction,\n    createRenameAction,\n    createShareAction,\n    createLeaveAction,\n    createPermDeleteAction,\n} from '../actions';\nimport { ActionAnalyticsValue } from '../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { Metrics } from '../utils/ingest';\nimport type AAVMetrics from '../utils/metrics/aav-metrics';\nimport aavRenameCallbacks from '../utils/metrics/aav-rename-callbacks';\n\nfunction useDefaultActions(\n    componentId: string = '',\n): Action<BackedCollectionItem<SAM.AdobeAsset>>[] {\n    const intl = useIntl();\n    const { dispatchEvent, environment, routes, showModal, showToast } = useHostConfig();\n    const baseUrls = useMemo(() => getBaseUrlMap(environment), [environment]);\n    const sam = useSAM();\n    const { hostAssetContext } = sam;\n    return useMemo(() => {\n        return [\n            createOpenAction({\n                baseUrls,\n                canOpenMultiple: false,\n                dispatchEvent,\n                intl,\n                metricLogger: (Metrics[componentId] as AAVMetrics)?.getOperationalMetricLogger(\n                    ActionAnalyticsValue.Open,\n                ),\n                sam,\n            }),\n            createShareAction({\n                intl,\n                showModal,\n                routes,\n                dispatchEvent,\n                baseUrls,\n                sam,\n            }),\n            createRenameAction({\n                intl,\n                showModal,\n                ...aavRenameCallbacks(\n                    (Metrics[componentId] as AAVMetrics)?.getOperationalMetricLogger(\n                        ActionAnalyticsValue.Rename,\n                    ),\n                ),\n            }),\n            createDuplicateAction({\n                intl,\n                showToast,\n                showModal,\n                metricLogger: (Metrics[componentId] as AAVMetrics)?.getOperationalMetricLogger(\n                    ActionAnalyticsValue.Duplicate,\n                ),\n                hostAssetContext,\n            }),\n            createCopyLinkAction({\n                intl,\n                routes,\n                showToast,\n                dispatchEvent,\n                baseUrls,\n                metricLogger: (Metrics[componentId] as AAVMetrics)?.getOperationalMetricLogger(\n                    ActionAnalyticsValue.CopyLink,\n                ),\n                sam,\n            }),\n            createLeaveAction({\n                intl,\n                showToast,\n                showModal,\n                metricLogger: (Metrics[componentId] as AAVMetrics)?.getOperationalMetricLogger(\n                    ActionAnalyticsValue.Leave,\n                ),\n            }),\n            createDiscardAction({\n                intl,\n                showToast,\n                showModal,\n                metricLogger: (Metrics[componentId] as AAVMetrics)?.getOperationalMetricLogger(\n                    ActionAnalyticsValue.Discard,\n                ),\n                undoMetricLogger: (\n                    Metrics[componentId] as AAVMetrics\n                )?.getUndoOperationalMetricLogger(ActionAnalyticsValue.Discard),\n            }),\n            createPermDeleteAction({\n                dispatchEvent,\n                intl,\n                sam,\n                showToast,\n                showModal,\n                metricLogger: (Metrics[componentId] as AAVMetrics)?.getOperationalMetricLogger(\n                    ActionAnalyticsValue.PermDelete,\n                ),\n            }),\n        ];\n    }, [\n        baseUrls,\n        componentId,\n        dispatchEvent,\n        intl,\n        routes,\n        showModal,\n        showToast,\n        hostAssetContext,\n        sam,\n    ]);\n}\n\nexport default useDefaultActions;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport type { DragState, Action, OperationStore, ICollectionViewProps } from '@csc/collection-view';\nimport { EventType, MenuType, Themes, ItemViewEventType, DragSource } from '@csc/collection-view';\nimport assetIcons from '@csc/common/dist/src/utils/assetIcons';\nimport AssetIcon from '@csc/ui/dist/src/AssetIcon/AssetIcon';\nimport React, { useCallback } from 'react';\nimport AdobeAssetCollectionItem from '../components/AdobeAssetsView/AdobeAssetCollectionItem';\nimport FolderGeneral2024 from '../svgs/FolderGeneral2024';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport type { AAVComponentId } from '../utils/ingest';\nimport { Metrics } from '../utils/ingest';\nimport isNormalFolder from '../utils/is-normal-folder';\n\nexport interface IDragDropArgs {\n    theme?: Themes;\n    componentId?: AAVComponentId;\n    ingestSubcategory?: string;\n    currentAsset?: SAM.AdobeAsset;\n    moveAction?: Action<BackedCollectionItem<SAM.AdobeAsset>>;\n    importAction?: Action<BackedCollectionItem<SAM.AdobeAsset>>;\n    startOperation?: () => OperationStore;\n    onViewOptionsChange?: (config: AssetBrowser.ViewOptions) => unknown;\n    // pass-through props for convenience of grouping all drag-drop props together\n    getDraggedFiles?: ICollectionViewProps['getDraggedFiles'];\n    dragDisabled: boolean;\n}\n\nexport interface IDragDropConfig {\n    getDragThumbnail: (element: BackedCollectionItem<SAM.AdobeAsset>) => React.ReactNode | string;\n    isValidDropTarget?: (element: BackedCollectionItem<SAM.AdobeAsset>) => boolean;\n    onItemDrop?: (\n        destElement: BackedCollectionItem<SAM.AdobeAsset>,\n        dragState: DragState<BackedCollectionItem<SAM.AdobeAsset>>,\n        e: React.DragEvent<HTMLDivElement>,\n    ) => Promise<void>;\n    onDragTimerEnd?: (element: BackedCollectionItem<SAM.AdobeAsset>) => void;\n    onViewDrop?: (dragState: DragState<BackedCollectionItem<SAM.AdobeAsset>>) => boolean;\n    // pass-through props for convenience of grouping all drag-drop props together\n    getDraggedFiles?: (event: DragEvent) => File[];\n    dragDisabled: boolean;\n}\n\nexport function useDragDrop({\n    dragDisabled,\n    currentAsset,\n    moveAction,\n    importAction,\n    theme,\n    startOperation,\n    onViewOptionsChange,\n    componentId,\n    ingestSubcategory = '',\n    getDraggedFiles,\n}: IDragDropArgs): IDragDropConfig {\n    const onItemDrop = useCallback(\n        async (\n            destElement: BackedCollectionItem<SAM.AdobeAsset>,\n            dragState: DragState<BackedCollectionItem<SAM.AdobeAsset>>,\n            e: React.DragEvent<HTMLDivElement>,\n        ) => {\n            if (!moveAction || !startOperation || !onViewOptionsChange || !componentId) {\n                return;\n            }\n\n            e.stopPropagation();\n            const elements = dragState.selectionStore.selectedElements;\n            const usageMetricLogger = Metrics[componentId].getUsageMetricLogger(\n                moveAction,\n                ingestSubcategory,\n            );\n            usageMetricLogger.start(elements, EventType.Drag, MenuType.DragFolder);\n            const operationStore = startOperation();\n            await moveAction.execute(\n                operationStore,\n                elements,\n                usageMetricLogger.correlationId,\n                destElement.backingItem.cloudID,\n            );\n            usageMetricLogger.success();\n        },\n        [componentId, ingestSubcategory, moveAction, onViewOptionsChange, startOperation],\n    );\n\n    const onDragTimerEnd = useCallback(\n        (element: BackedCollectionItem<SAM.AdobeAsset>) => {\n            if (componentId && element.backingItem.isFolder) {\n                onViewOptionsChange?.({ assetId: element.id });\n                Metrics[componentId].logItemViewMetric({\n                    ingestSubcategory: ingestSubcategory,\n                    element,\n                    itemViewEventType: ItemViewEventType.DragNav,\n                });\n            }\n        },\n        [componentId, ingestSubcategory, onViewOptionsChange],\n    );\n\n    const onViewDrop = useCallback(\n        (dragState: DragState<BackedCollectionItem<SAM.AdobeAsset>>): boolean => {\n            if (!currentAsset || !startOperation || !componentId) {\n                return false;\n            }\n\n            if (dragState.dragSource === DragSource.IMPORT) {\n                if (!importAction) {\n                    return false;\n                }\n\n                const usageMetricLogger = Metrics[componentId].getUsageMetricLogger(\n                    importAction,\n                    ingestSubcategory,\n                );\n                usageMetricLogger.start([], EventType.Drag, MenuType.DragView);\n                const operationStore = startOperation();\n                importAction\n                    .execute(\n                        operationStore,\n                        [new AdobeAssetCollectionItem(currentAsset)],\n                        usageMetricLogger.correlationId,\n                        dragState.dragFiles,\n                    )\n                    .then(() => usageMetricLogger.success())\n                    .catch(console.error);\n                return true;\n            } else {\n                if (!moveAction) {\n                    return false;\n                }\n                // drag source is DragSource.SELF\n                const elements = dragState.selectionStore.selectedElements;\n                if (\n                    elements.some((e) => {\n                        // if any item doesn't have ancestorIDs populated, do not allow the drop\n                        if (!e.backingItem.ancestorIDs) {\n                            return true;\n                        }\n                        // if the parent folder of any dragged item is the current folder, do not allow the drop\n                        const immediateAncestorId =\n                            e.backingItem.ancestorIDs[e.backingItem.ancestorIDs.length - 1];\n                        return currentAsset.cloudID === immediateAncestorId;\n                    })\n                ) {\n                    return false;\n                }\n\n                const usageMetricLogger = Metrics[componentId].getUsageMetricLogger(\n                    moveAction,\n                    ingestSubcategory,\n                );\n                usageMetricLogger.start(elements, EventType.Drag, MenuType.DragView);\n                const operationStore = startOperation();\n                moveAction\n                    .execute(\n                        operationStore,\n                        elements,\n                        usageMetricLogger.correlationId,\n                        currentAsset.cloudID,\n                    )\n                    .then(() => usageMetricLogger.success())\n                    .catch(console.error);\n                return true;\n            }\n        },\n        [componentId, currentAsset, ingestSubcategory, moveAction, importAction, startOperation],\n    );\n\n    const renderIcon = (element: BackedCollectionItem<SAM.AdobeAsset>) => {\n        const hasIconForType = assetIcons[element.backingItem.mediaType] !== undefined;\n        const iconType = hasIconForType ? element.backingItem.mediaType : 'default';\n        return <AssetIcon type={iconType} theme={theme || Themes.light} />;\n    };\n\n    return {\n        dragDisabled,\n        getDragThumbnail: (element: BackedCollectionItem<SAM.AdobeAsset>) => {\n            if (isNormalFolder(element.backingItem)) {\n                return <FolderGeneral2024 />;\n            }\n            return element.rendition || renderIcon(element);\n        },\n        isValidDropTarget: (element: BackedCollectionItem<SAM.AdobeAsset>) =>\n            element.backingItem.isFolder && navigator.onLine,\n        onItemDrop,\n        onDragTimerEnd,\n        onViewDrop,\n        getDraggedFiles,\n    };\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"adobeAssetsView\":\"adobeAssetsView--kuxjC\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport ChevronLeft from '@ccx-public/spectrum-wrapper/dist/Icon/ChevronLeft';\nimport React from 'react';\nimport styles from './styles.module.css';\n\nexport const DEFAULT_TOOLTIP_DELAY = 500;\n\nconst BackButton = <T extends { label: string }>({\n    items,\n    onClick,\n    showRootBackButton,\n}: {\n    items: T[];\n    onClick?: (item?: T) => void;\n    showRootBackButton?: boolean;\n}) => {\n    const parentItem = items.length < 2 ? undefined : items[items.length - 2];\n    if (!parentItem && !showRootBackButton) {\n        return null;\n    }\n\n    return (\n        <div className={styles.BackButton}>\n            <Button\n                quiet\n                size=\"xs\"\n                variant=\"tool\"\n                icon={<ChevronLeft />}\n                title={parentItem?.label}\n                role=\"button\"\n                onClick={() => onClick?.(parentItem)}\n            />\n        </div>\n    );\n};\n\nexport default BackButton;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport classnames from 'classnames';\nimport debounce from 'lodash-es/debounce';\nimport type { RefObject } from 'react';\nimport React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport type { ResizeHandler } from 'use-resize-observer';\nimport useResizeObserver from 'use-resize-observer';\nimport style from './style.module.css';\n\nfunction useWidth<Target extends RefObject<HTMLElement>>(target: Target) {\n    const [width, setWidth] = useState<number>();\n    const onResize = useMemo(() => debounce<ResizeHandler>((box) => setWidth(box.width), 50), []);\n\n    useLayoutEffect(() => {\n        if (target.current) {\n            setWidth(Math.ceil(target.current.getBoundingClientRect().width));\n        }\n    }, [target]);\n\n    useResizeObserver({ onResize, ref: target, round: Math.ceil });\n    return width;\n}\n\n/**\n * TextOverflowEllipsis will render the given string in a container with\n * `text-overflow: ellipsis` and wrapped in a Tooltip. The tooltip will only be\n * enabled when the text is overflowing.\n */\nexport default function TextOverflowEllipsis(props: {\n    children: React.ReactNode;\n    isTabbable?: boolean;\n}) {\n    const target = useRef<HTMLDivElement>(null);\n    const width = useWidth(target);\n    const needsTooltip = useMemo(() => {\n        return target.current && width ? width < target.current.scrollWidth : true;\n    }, [width]);\n\n    return (\n        <OverlayTrigger\n            className={style.ellipsis}\n            trigger={['hover']}\n            disabled={!needsTooltip || undefined}\n            placement=\"bottom\"\n            offset={0}\n        >\n            <div className={style.wrapper}>\n                <div\n                    className={classnames(style.content, style.ellipsis)}\n                    // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- Investigate tabIndex use\n                    tabIndex={props.isTabbable && needsTooltip ? 0 : -1}\n                    ref={target}\n                >\n                    <span>{props.children}</span>\n                </div>\n            </div>\n            <Tooltip className={style.tooltip}>{props.children}</Tooltip>\n        </OverlayTrigger>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport DropdownButton from '@ccx-public/spectrum-wrapper/dist/DropdownButton';\nimport ChevronRight from '@ccx-public/spectrum-wrapper/dist/Icon/ChevronRight';\nimport FolderOpen from '@ccx-public/spectrum-wrapper/dist/Icon/Folder';\nimport { MenuItem } from '@ccx-public/spectrum-wrapper/dist/Menu';\nimport classnames from 'classnames';\nimport type { SyntheticEvent } from 'react';\nimport React, { useCallback, useMemo } from 'react';\nimport type { BreadcrumbItem } from '../../types/Breadcrumb';\nimport { ProjectNameBadge } from '../Project';\nimport TextOverflowEllipsis from '../TextOverflowEllipsis/TextOverflowEllipsis';\nimport styles from './Breadcrumbs.module.css';\nimport spectrum from './spectrum-breadcrumbs.module.css';\n\nconst CHEVRON_RIGHT = (\n    <ChevronRight className={spectrum['spectrum-Breadcrumbs-itemSeparator']} size=\"S\" />\n);\n\nfunction BreadcrumbListItem({\n    item,\n    linkDisabled,\n    onClick,\n}: {\n    item: BreadcrumbItem;\n    linkDisabled?: boolean;\n    onClick?: (item: BreadcrumbItem) => unknown;\n}) {\n    const handleClick = useCallback(\n        (event?: SyntheticEvent) => {\n            event?.preventDefault();\n            onClick?.(item);\n        },\n        [item, onClick],\n    );\n    const handleKeyDown = useCallback(\n        (event: React.KeyboardEvent<HTMLAnchorElement>) => {\n            if (event.key === 'Enter') {\n                event.preventDefault();\n                onClick?.(item);\n            }\n        },\n        [item, onClick],\n    );\n\n    return (\n        <li\n            className={classnames(spectrum['spectrum-Breadcrumbs-item'], styles.breadcrumbsItem)}\n            data-testid=\"breadcrumb-item\"\n        >\n            {item.isProject && (\n                <span className={styles.breadcrumbsItemIcon}>\n                    <ProjectNameBadge projectId={item.assetId} size=\"XS\" />\n                </span>\n            )}\n            {linkDisabled ? (\n                // eslint-disable-next-line jsx-a11y/anchor-is-valid -- TODD: Investigate missing href or change to button\n                <a\n                    className={classnames(\n                        spectrum['spectrum-Breadcrumbs-itemLink'],\n                        styles.breadcrumbsItemLink,\n                    )}\n                    role=\"link\"\n                    aria-current=\"page\"\n                >\n                    <TextOverflowEllipsis>{item.label}</TextOverflowEllipsis>\n                </a>\n            ) : (\n                // eslint-disable-next-line jsx-a11y/anchor-is-valid -- TODD: Investigate missing href or change to button, add key event handling\n                <a\n                    className={classnames(\n                        spectrum['spectrum-Breadcrumbs-itemLink'],\n                        styles.enabledLink,\n                    )}\n                    onClick={handleClick}\n                    onKeyDown={handleKeyDown}\n                    tabIndex={0}\n                    aria-label={item.label}\n                    role=\"link\"\n                >\n                    <TextOverflowEllipsis>{item.label}</TextOverflowEllipsis>\n                </a>\n            )}\n            {CHEVRON_RIGHT}\n        </li>\n    );\n}\n\nfunction BreadcrumbsCollapsed({\n    items,\n    maxVisibleItems,\n    onBreadcrumbClick,\n    showRoot,\n}: {\n    items: BreadcrumbItem[];\n    maxVisibleItems: number;\n    onBreadcrumbClick?: (item: BreadcrumbItem) => unknown;\n    showRoot?: boolean;\n}) {\n    const rootOffset = showRoot ? 1 : 0;\n    const visibleItemsOffset = -(maxVisibleItems - 1 - rootOffset);\n\n    const root = showRoot ? items[0] : undefined;\n    const actionMenuItems = useMemo(\n        () => items.slice(rootOffset, visibleItemsOffset),\n        [items, rootOffset, visibleItemsOffset],\n    );\n    const visibleItems = useMemo(\n        () => items.slice(visibleItemsOffset),\n        [items, visibleItemsOffset],\n    );\n\n    const handleSelect = useCallback(\n        (assetId: string) => {\n            const item = items.find((item) => item.assetId === assetId || item.label === assetId);\n            if (item && onBreadcrumbClick) {\n                onBreadcrumbClick(item);\n            }\n        },\n        [items, onBreadcrumbClick],\n    );\n\n    return (\n        <>\n            {root && <BreadcrumbListItem item={root} onClick={onBreadcrumbClick} />}\n            <li\n                className={spectrum['spectrum-Breadcrumbs-item']}\n                data-testid=\"breadcrumb-item\"\n                data-has-menu=\"true\"\n            >\n                <DropdownButton\n                    icon={<FolderOpen />}\n                    onSelect={handleSelect}\n                    quiet\n                    size=\"m\"\n                    className={spectrum['spectrum-ActionButton']}\n                >\n                    {actionMenuItems.map((item) => (\n                        <MenuItem key={item.assetId} value={item.assetId} aria-label={item.label}>\n                            <div className={styles.menuItemWrapper}>\n                                <TextOverflowEllipsis>{item.label}</TextOverflowEllipsis>\n                            </div>\n                        </MenuItem>\n                    ))}\n                </DropdownButton>\n                {CHEVRON_RIGHT}\n            </li>\n            {visibleItems.map((item, i) => (\n                <BreadcrumbListItem\n                    key={item.assetId}\n                    item={item}\n                    linkDisabled={i === visibleItems.length - 1}\n                    onClick={onBreadcrumbClick}\n                />\n            ))}\n        </>\n    );\n}\n\nexport default function Breadcrumbs({\n    items,\n    maxVisibleItems,\n    onBreadcrumbClick,\n    showRoot,\n}: {\n    items: BreadcrumbItem[];\n    maxVisibleItems?: number;\n    onBreadcrumbClick?: (item: BreadcrumbItem) => unknown;\n    showRoot?: boolean;\n}) {\n    const hasMenu = maxVisibleItems && items.length > maxVisibleItems;\n\n    return (\n        <nav>\n            <ul\n                className={classnames(spectrum['spectrum-Breadcrumbs'], styles.breadcrumbs)}\n                data-testid=\"breadcrumbs\"\n            >\n                {hasMenu ? (\n                    <BreadcrumbsCollapsed\n                        items={items}\n                        maxVisibleItems={maxVisibleItems}\n                        onBreadcrumbClick={onBreadcrumbClick}\n                        showRoot={showRoot}\n                    />\n                ) : (\n                    items.map((item, i) => {\n                        const isLastItem = i === items.length - 1;\n                        const isOnlyItem = items.length === 1;\n                        const linkDisabled = isLastItem || isOnlyItem;\n                        return (\n                            <BreadcrumbListItem\n                                key={item.assetId}\n                                item={item}\n                                linkDisabled={linkDisabled}\n                                onClick={onBreadcrumbClick}\n                            />\n                        );\n                    })\n                )}\n            </ul>\n        </nav>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport Rule from '@ccx-public/spectrum-wrapper/dist/Rule';\nimport { observer } from 'mobx-react';\nimport React, { useMemo } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport styles from './styles.module.css';\n\nexport interface CollaboratorPopoverContentProps {\n    /** The list of collaborators to display. */\n    collaborators: SAM.Collaborator[];\n    /* Max collaborators shown in the 'Shared with' section, excluding the owner */\n    limit: number;\n}\n\nconst OtherCollaborators = observer(\n    ({ collaborators, limit }: { collaborators: SAM.Collaborator[]; limit: number }) => {\n        const people = collaborators.slice(0, limit);\n        return (\n            <>\n                {people.map(({ name, email }, i) => (\n                    <div key={i} className={styles.sharedWithCollaboratorName}>\n                        <CollaboratorName name={name} email={email} />\n                    </div>\n                ))}\n                {collaborators.length > limit && (\n                    <span>\n                        <FormattedMessage\n                            id=\"aav.collaborators.popover.more\"\n                            defaultMessage=\"+ {count, number} more\"\n                            values={{\n                                count: collaborators.length - limit,\n                            }}\n                        />\n                    </span>\n                )}\n            </>\n        );\n    },\n);\n\nfunction CollaboratorName({ name, email }: { name?: string; email?: string }) {\n    return (\n        <div className={styles.collaboratorName}>\n            <span className={styles.ellipsis}>{name ?? email ?? ''}</span>\n        </div>\n    );\n}\n\nfunction Me({ name, email }: { name?: string; email?: string }) {\n    return (\n        <div className={styles.collaboratorName}>\n            <span className={styles.ellipsis}>{name ?? email ?? ''}</span>\n            <span data-testid=\"collaborator-popover-is-you\" className={styles.you}>\n                <FormattedMessage id=\"aav.collaborators.popover.you\" defaultMessage=\"(You)\" />\n            </span>\n        </div>\n    );\n}\n\nfunction OwnerSection({ owner }: { owner: SAM.Collaborator }) {\n    return (\n        <>\n            <span className={styles.headerText}>\n                <FormattedMessage id=\"aav.collaborators.popover.owner\" defaultMessage=\"Owner\" />\n            </span>\n            <div data-testid=\"collaborator-popover-owner\">\n                {owner.isCurrentUser ? (\n                    <Me name={owner.name} email={owner.email} />\n                ) : (\n                    <CollaboratorName name={owner.name} email={owner.email} />\n                )}\n            </div>\n        </>\n    );\n}\n\n/** Utility hook to separate out collaborators */\nfunction useCollaboratorsByRole(collaborators: SAM.Collaborator[]): {\n    me: SAM.Collaborator | undefined;\n    owner: SAM.Collaborator | undefined;\n    otherCollaborators: SAM.Collaborator[];\n} {\n    return useMemo(() => {\n        let me: SAM.Collaborator | undefined;\n        let owner: SAM.Collaborator | undefined;\n        const otherCollaborators: SAM.Collaborator[] = [];\n        for (const collaborator of collaborators) {\n            // from SAM: It is not safe to assume that Collaborator.id === currentUserId\n            //  will work. Always use Collaborator.isCurrentUser instead.\n            if (collaborator.isCurrentUser) {\n                me = collaborator;\n            }\n            if (collaborator.role === 'owner') {\n                owner = collaborator;\n            }\n            if (collaborator.role !== 'owner' && !collaborator.isCurrentUser) {\n                otherCollaborators.push(collaborator);\n            }\n        }\n        return { me, owner, otherCollaborators };\n    }, [collaborators]);\n}\n\nexport default observer(function CollaboratorPopoverContent({\n    collaborators,\n    limit,\n}: CollaboratorPopoverContentProps) {\n    const { me, owner, otherCollaborators } = useCollaboratorsByRole(collaborators);\n    if (collaborators.length === 0) {\n        return null;\n    }\n    const showMe = me && me.role !== 'owner';\n    return (\n        <div data-testid=\"collaborator-summary\" className={styles.collaboratorSummary}>\n            {owner && (\n                <>\n                    <OwnerSection owner={owner} />\n                    <Rule className={styles.divider} variant=\"small\" />\n                </>\n            )}\n            <div data-testid=\"shared-with-section\">\n                <span className={styles.headerText}>\n                    <FormattedMessage\n                        id=\"aav.collaborators.popover.sharedWith\"\n                        defaultMessage=\"Shared with\"\n                    />\n                </span>\n                {showMe && me && <Me name={me.name} email={me.email} />}\n                <OtherCollaborators\n                    collaborators={otherCollaborators}\n                    limit={showMe ? limit - 1 : limit}\n                />\n            </div>\n        </div>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport UserGroupIcon from '@ccx-public/spectrum-wrapper/dist/Icon/UserGroup';\nimport classnames from 'classnames';\nimport React from 'react';\nimport { FormattedNumber, useIntl } from 'react-intl';\nimport styles from './styles.module.css';\n\nexport interface UserIconAndCountProps {\n    /** The number of users to show. The number will be formatted for the locale. */\n    count: number;\n    /** The size of the user group icon */\n    iconSize: 'S' | 'XS';\n}\n\n/**\n * Shows a user group icon and number beside it.\n */\nfunction UserIconAndCount({ count, iconSize }: UserIconAndCountProps) {\n    const intl = useIntl();\n\n    return (\n        <div className={styles.userIconAndCount}>\n            <UserGroupIcon\n                className={classnames(styles.usersIcon, {\n                    [styles.iconXS]: iconSize === 'XS',\n                })}\n                data-testid=\"user-group-icon\"\n                size={iconSize}\n            />\n            <span\n                aria-label={intl.formatMessage(\n                    {\n                        id: 'aav.usericonandcount.arialabel',\n                        defaultMessage:\n                            '{count,plural,=1{{count, number} person} other{{count, number} people}}',\n                    },\n                    { count },\n                )}\n                className={classnames(styles.userCount, {\n                    [styles.iconXS]: iconSize === 'XS',\n                })}\n                data-testid=\"count\"\n            >\n                <FormattedNumber value={count} />\n            </span>\n        </div>\n    );\n}\n\nexport default UserIconAndCount;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport { useDirectCollaborators } from '@csc/sam-utils';\nimport { observer } from 'mobx-react';\nimport React, { useMemo } from 'react';\nimport CollaboratorPopoverContent from '../CollaboratorPopoverContent/CollaboratorPopoverContent';\nimport UserIconAndCount from './UserIconAndCount';\n\nexport interface CollaboratorCountProps {\n    /** The Adobe Asset to display the collaborator count for. */\n    asset: SAM.AdobeAsset;\n    /** The size of the user group icon. Defaults to 'S' */\n    iconSize?: 'XS' | 'S';\n    /* Max collaborators shown in the 'Shared with' section, excluding the owner. Defaults to 10 */\n    limit?: number;\n    /** Display a dash when there no collaborators to display.\n     * Defaults to false. When false, displays nothing. */\n    placeHolderDash?: boolean;\n}\n/**\n * Displays an icon and count of collaborators for an Adobe Asset.\n */\nconst CollaboratorCount = observer(function CollaboratorCount({\n    asset,\n    iconSize = 'S',\n    limit = 10,\n    placeHolderDash = false,\n}: CollaboratorCountProps) {\n    const collaborators = useDirectCollaborators(asset);\n\n    // Exclude owner from the count\n    const collabCount = useMemo(\n        () => collaborators.filter((collaborator) => collaborator.role !== 'owner').length,\n        [collaborators],\n    );\n\n    if (collabCount === 0) {\n        return placeHolderDash ? (\n            // eslint-disable-next-line formatjs/no-literal-string-in-jsx -- Do not need internationalization\n            <span data-testid=\"no-collaborators\">–</span>\n        ) : null;\n    }\n\n    return (\n        <span data-testid=\"collaborators-count\">\n            <OverlayTrigger trigger=\"hover\" placement=\"bottom\">\n                <div data-testid=\"collaborators-count\">\n                    <UserIconAndCount count={collabCount} iconSize={iconSize} />\n                </div>\n                <Tooltip placement=\"bottom\" data-testid=\"collaborator-count-popover\">\n                    <CollaboratorPopoverContent limit={limit} collaborators={collaborators} />\n                </Tooltip>\n            </OverlayTrigger>\n        </span>\n    );\n});\n\nexport default CollaboratorCount;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport ButtonGroup from '@ccx-public/spectrum-wrapper/dist/ButtonGroup';\nimport React from 'react';\nimport { useIntl } from 'react-intl';\nimport { useAAVContext } from '../AdobeAssetsView/AAVContext';\nimport { getTypeViewModel } from '../TypeDropdownFilter/utils';\nimport styles from './styles.module.css';\nimport { AssetBrowser } from '@ccx-public/component-types/dist/base';\n\ntype CompatibilityFilterProps = {\n    label: string;\n    value: AssetBrowser.FileFilterTypeValues;\n    icon?: React.JSX.Element;\n    currentFilter: AssetBrowser.FileFilterTypeValues;\n};\n\nconst CompatibilityFilter = ({ label, value, icon, currentFilter }: CompatibilityFilterProps) => {\n    const intl = useIntl();\n    const allFiles = getTypeViewModel(intl, AssetBrowser.FileFilterTypeValues.AllFiles);\n    const { onViewOptionsChange } = useAAVContext();\n\n    const handleOnClick = (newVal: AssetBrowser.FileFilterTypeValues) => {\n        onViewOptionsChange({ filter: newVal });\n    };\n\n    const CompatibilityFilterIcon = () => {\n        return <span className={styles.compatibilityFilterIcon}>{icon}</span>;\n    };\n\n    return (\n        <ButtonGroup className={styles.compatibilityFilterMain} orientation=\"horizontal\">\n            <Button\n                className={styles.compatibilityFilterApp}\n                variant=\"action\"\n                onClick={() => handleOnClick(value)}\n                selected={currentFilter === value}\n                icon={<CompatibilityFilterIcon />}\n                label={label}\n                data-testid=\"appIconButton\"\n            />\n            <Button\n                className={styles.compatibilityFilterAllFiles}\n                variant=\"action\"\n                onClick={() => handleOnClick(allFiles.value)}\n                selected={currentFilter === allFiles.value}\n                label={allFiles.label}\n                data-testid=\"allFilesButton\"\n            />\n        </ButtonGroup>\n    );\n};\n\nexport default CompatibilityFilter;\n","// extracted by mini-css-extract-plugin\nexport default {\"compatibilityFilterMain\":\"compatibilityFilterMain--DmqUA\",\"compatibilityFilterApp\":\"compatibilityFilterApp--c62sx\",\"compatibilityFilterAllFiles\":\"compatibilityFilterAllFiles--csutZ\",\"compatibilityFilterIcon\":\"compatibilityFilterIcon--VV0_2\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport TypeDropdownFilter from '../TypeDropdownFilter/TypeDropdownFilter';\nimport CompatibilityFilter from '../CompatibilityFilter/CompatibilityFilter';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport type { FilterOptionViewModel } from '../TypeDropdownFilter/utils';\n\ninterface Props {\n    /**\n     * Set of compatible mimeTypes to show in the filter. When this is provided, the <CompatibilityFilter> will be used instead of the <TypeDropdownFilter>\n     */\n    compatibleTypesFilter?: FilterOptionViewModel;\n    /**\n     * filterOptions is an array of FilterOptionViewModel objects that will be used to populate the\n     * TypeDropdownFilter. Only use this if you want to override the default options.\n     */\n    filterOptions?: FilterOptionViewModel[];\n    /**\n     * filterValue is the current value of the filter state, used as the current value for the\n     * TypeDropdownFilter and CompatibilityFilter.\n     *\n     */\n    filterValue?: AssetBrowser.FileFilterTypeValues;\n}\n\nexport default function FileTypeFilter(props: Props) {\n    const filter = props.filterValue || AssetBrowser.FileFilterTypeValues.AllFiles;\n\n    if (props.compatibleTypesFilter) {\n        return <CompatibilityFilter {...props.compatibleTypesFilter} currentFilter={filter} />;\n    }\n\n    return <TypeDropdownFilter options={props.filterOptions} value={filter} />;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport DropdownButton from '@ccx-public/spectrum-wrapper/dist/DropdownButton';\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport AddCircle from '@ccx-public/spectrum-wrapper/dist/Icon/AddCircle';\nimport { MenuItem } from '@ccx-public/spectrum-wrapper/dist/Menu';\nimport type { IMenuItem } from '@csc/collection-view';\nimport React, { cloneElement } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useAAVContext } from '../AdobeAssetsView/AAVContext';\nimport styles from './styles.module.css';\n\n// TODO: this was ported from CDO, controlling which actions go in the `New` dropdown should be configurable.\n// Are there any `isFolderAction: true` actions that should not be in the `New` dropdown?\n\nexport interface IActionButtonsProps {\n    withoutLabel?: boolean;\n    disabled?: boolean;\n    tabIndex?: number;\n    icon?: React.JSX.Element;\n    quiet?: boolean;\n    variant?: IMenuItem['buttonVariant'];\n}\n\nexport default function HeaderActionButton({\n    withoutLabel = false,\n    disabled = false,\n    tabIndex = 0,\n    icon = <AddCircle size=\"S\" />,\n    quiet = true,\n    variant = 'action',\n}: IActionButtonsProps) {\n    const { onFolderActionClick, selectedElements, actions } = useAAVContext();\n    const intl = useIntl();\n\n    const relevantActions = actions?.filter(\n        (action) => action.isFolderAction && action.isVisible(selectedElements),\n    );\n\n    if (relevantActions?.length === 1) {\n        const [action] = relevantActions;\n        const label = action.label;\n        return (\n            <Button\n                disabled={disabled}\n                icon={icon}\n                quiet={quiet}\n                tabIndex={tabIndex}\n                label={label}\n                variant={variant}\n                onClick={() => onFolderActionClick(action)}\n                data-testid=\"add-folder-action-button\"\n            />\n        );\n    }\n\n    if (relevantActions?.length > 1) {\n        return (\n            <DropdownButton\n                quiet={quiet}\n                icon={icon}\n                placement=\"bottom-end\"\n                tabIndex={tabIndex}\n                onSelect={(value: string) => {\n                    const index = relevantActions.findIndex((item) => item.value === value);\n                    const action = relevantActions[index];\n                    // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression -- TODO: Investigate if onFolderActionClick actually returns anything\n                    return onFolderActionClick(action);\n                }}\n                label={intl.formatMessage({ id: 'aav.header.button.add', defaultMessage: 'Add' })}\n                disabled={disabled}\n                data-testid=\"header-action-menu\"\n            >\n                {relevantActions.map((action) => {\n                    const label = !withoutLabel && action.label;\n                    const icon = action.icon && cloneElement(action.icon, { size: 'S' });\n                    return (\n                        <MenuItem\n                            className={styles.toolbarMenuItem}\n                            key={action.value}\n                            value={action.value}\n                            disabled={!action.isEnabled?.(selectedElements)}\n                            tabIndex={-1}\n                            {...(icon ? { icon: <Icon size=\"S\">{icon}</Icon> } : {})}\n                            data-testid={`action-${action.value}`}\n                            aria-label={label}\n                        >\n                            {label}\n                        </MenuItem>\n                    );\n                })}\n            </DropdownButton>\n        );\n    }\n\n    return null;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { normalizePath } from '@csc/collection-view';\nimport { computed } from 'mobx';\nimport { useMemo } from 'react';\nimport type { BreadcrumbItem } from '../types/Breadcrumb';\n\nexport function getRootItem(label: string, assetId?: string) {\n    return { assetId: assetId ?? '', label };\n}\n\nfunction mapToBreadcrumbs(\n    folderNames: string[],\n    ancestorIds: string[],\n    options: { projectId?: string } = {},\n): BreadcrumbItem[] {\n    return ancestorIds.map((id, index) => {\n        return {\n            assetId: id,\n            label: folderNames[index],\n            isProject: Boolean(options.projectId && options.projectId === id),\n        };\n    });\n}\n\nfunction generateBreadcrumbs({\n    asset,\n    rootAsset,\n    trimRootCrumb,\n    options,\n    rootItem,\n}: {\n    asset: SAM.AdobeAsset;\n    rootAsset: SAM.AdobeAsset;\n    rootTitle: string;\n    trimRootCrumb: boolean;\n    options: { projectId?: string };\n    rootItem: { label: string; assetId: string };\n}): BreadcrumbItem[] {\n    if (!asset.ancestorIDs) {\n        return [rootItem];\n    }\n\n    const rootAssetIndex = asset.ancestorIDs.indexOf(rootAsset.id);\n    const normalizedAncestorIds = [...asset.ancestorIDs.slice(rootAssetIndex), asset.id];\n    const folderNames = normalizePath(asset.repoPath)\n        .split('/')\n        .filter((s) => s)\n        .slice(-normalizedAncestorIds.length);\n\n    return [\n        rootItem,\n        ...mapToBreadcrumbs(\n            folderNames.slice(trimRootCrumb ? 1 : 0),\n            normalizedAncestorIds.slice(trimRootCrumb ? 1 : 0),\n            options,\n        ),\n    ];\n}\n\nfunction generateProjectAssetBreadcrumbs({\n    asset,\n    rootAsset,\n    rootTitle,\n}: {\n    asset: SAM.AdobeAsset;\n    rootAsset: SAM.AdobeAsset;\n    rootTitle: string;\n}): BreadcrumbItem[] {\n    const rootItem = getRootItem(rootTitle);\n    if (!asset.ancestorIDs) {\n        return [rootItem];\n    }\n\n    if (asset.isProject || !asset.parentProjectID) {\n        return [\n            rootItem,\n            {\n                assetId: asset.id,\n                label: asset.name,\n                isProject: asset.isProject,\n            },\n        ];\n    }\n\n    return generateBreadcrumbs({\n        asset,\n        rootAsset,\n        rootTitle,\n        trimRootCrumb: false, // Don't remove any breadcrumbs, `rootTitle` will be added to the beginning\n        options: { projectId: asset.parentProjectID },\n        rootItem,\n    });\n}\n\nfunction generateCloudAssetBreadcrumbs({\n    asset,\n    rootTitle,\n    rootAsset,\n}: {\n    asset: SAM.AdobeAsset;\n    rootAsset: SAM.AdobeAsset;\n    rootTitle: string;\n}): BreadcrumbItem[] {\n    const rootItem = getRootItem(rootTitle, rootAsset.id);\n\n    if (!asset.ancestorIDs || asset.id === rootAsset.id) {\n        return [rootItem];\n    }\n\n    return generateBreadcrumbs({\n        asset,\n        rootAsset,\n        rootTitle,\n        trimRootCrumb: true, // Remove the first breadcrumb, `rootTitle` will replace it\n        options: {},\n        rootItem,\n    });\n}\n\nexport function useBreadcrumbs({\n    asset,\n    rootTitle,\n    rootAsset,\n}: {\n    asset: SAM.AdobeAsset;\n    rootAsset: SAM.AdobeAsset;\n    rootTitle: string;\n}): BreadcrumbItem[] {\n    return useMemo(() => {\n        return computed(() => {\n            if (asset.isProject || asset.isChildOfProject) {\n                return generateProjectAssetBreadcrumbs({ asset, rootAsset, rootTitle });\n            }\n\n            return generateCloudAssetBreadcrumbs({ asset, rootTitle, rootAsset });\n        });\n    }, [asset, rootTitle, rootAsset]).get();\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport useBreakpoint from '@csc/common/dist/src/hooks/useBreakpoint';\nimport React, { useCallback, useMemo } from 'react';\nimport { getRootItem, useBreadcrumbs } from '../../hooks/useBreadcrumbs';\nimport type { BreadcrumbItem } from '../../types/Breadcrumb';\nimport { useAAVContext } from '../AdobeAssetsView/AAVContext';\nimport BackButton from '../BackButton/BackButton';\nimport Breadcrumbs from '../Breadcrumbs/Breadcrumbs';\nimport styles from './styles.module.css';\n\nfunction RootBackButton() {\n    const { onNavigateOut } = useAAVContext();\n    return <BackButton items={[]} onClick={onNavigateOut} showRootBackButton />;\n}\n\nexport type HeaderNavigationProps = {\n    rootTitle: string;\n    rootAsset?: SAM.AdobeAsset;\n    compact?: boolean;\n    showRootBackButton?: boolean;\n};\n\nfunction HeaderCompactBreadcrumbs({\n    breadcrumbs,\n    onBreadcrumbClick,\n    showRootBackButton,\n}: {\n    breadcrumbs: BreadcrumbItem[];\n    onBreadcrumbClick: (breadcrumb?: BreadcrumbItem) => void;\n    showRootBackButton?: boolean;\n}) {\n    const crumbs = useMemo(() => {\n        const reversed = [...breadcrumbs].reverse();\n        return reversed.slice(0, 1);\n    }, [breadcrumbs]);\n\n    return (\n        <div className={styles.HeaderCompactBreadcrumbs}>\n            <BackButton\n                items={breadcrumbs}\n                onClick={onBreadcrumbClick}\n                showRootBackButton={showRootBackButton}\n            />\n            <Breadcrumbs items={crumbs} />\n        </div>\n    );\n}\n\nfunction HeaderBreadcrumbs({\n    asset,\n    rootTitle,\n    rootAsset,\n    compact,\n    showRootBackButton,\n}: {\n    asset: SAM.AdobeAsset;\n    rootTitle: string;\n    rootAsset: SAM.AdobeAsset;\n    compact?: boolean;\n    showRootBackButton?: boolean;\n}) {\n    const { onViewOptionsChange, onNavigateOut } = useAAVContext();\n    const breadcrumbs = useBreadcrumbs({ asset, rootTitle, rootAsset });\n    const { isSmallBreakpoint } = useBreakpoint();\n\n    const handleBreadcrumbClick = useCallback(\n        (item: BreadcrumbItem | undefined) => {\n            if (showRootBackButton && item === undefined) {\n                // if the target assetId is undefined, and we know we're showing a back button at the root,\n                // then we want to navigate out\n                onNavigateOut();\n            } else {\n                onViewOptionsChange({ assetId: item?.assetId });\n            }\n        },\n        [onViewOptionsChange, onNavigateOut, showRootBackButton],\n    );\n\n    return isSmallBreakpoint || compact ? (\n        <HeaderCompactBreadcrumbs\n            breadcrumbs={breadcrumbs}\n            onBreadcrumbClick={handleBreadcrumbClick}\n            showRootBackButton={showRootBackButton}\n        />\n    ) : (\n        <>\n            {showRootBackButton && <RootBackButton />}\n            <Breadcrumbs\n                items={breadcrumbs}\n                maxVisibleItems={3}\n                onBreadcrumbClick={handleBreadcrumbClick}\n                showRoot\n            />\n        </>\n    );\n}\n\nexport function SingleBreadcrumb({\n    rootTitle,\n    showRootBackButton,\n}: {\n    rootTitle: string;\n    showRootBackButton?: boolean;\n}) {\n    return (\n        <>\n            {showRootBackButton && <RootBackButton />}\n            <Breadcrumbs items={[getRootItem(rootTitle)]} />\n        </>\n    );\n}\n\nexport default function HeaderNavigation({\n    rootTitle,\n    rootAsset,\n    compact,\n    showRootBackButton,\n}: HeaderNavigationProps) {\n    const { asset } = useAAVContext();\n\n    if (!asset || !rootAsset) {\n        return <SingleBreadcrumb rootTitle={rootTitle} showRootBackButton={showRootBackButton} />;\n    }\n\n    return (\n        <HeaderBreadcrumbs\n            asset={asset}\n            rootTitle={rootTitle}\n            rootAsset={rootAsset}\n            compact={compact}\n            showRootBackButton={showRootBackButton}\n        />\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport SelectBoxAll from '@ccx-public/spectrum-wrapper/dist/Icon/SelectBoxAll';\nimport { isTouchDevice } from '@csc/common';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport { useAAVContext } from '../AdobeAssetsView/AAVContext';\n\nexport default observer(function HeaderSelectButton() {\n    const { selectionManager, elements } = useAAVContext();\n\n    if (!selectionManager) {\n        return null;\n    }\n\n    const handleInSelectionMode = () => {\n        const currState = selectionManager.isInSelectionMode;\n        selectionManager.setIsInSelectionMode?.(!currState);\n    };\n\n    const enableSelectButton: boolean =\n        isTouchDevice() &&\n        elements?.length > 0 &&\n        Boolean(selectionManager.selectionUXConfig?.showCheckbox);\n\n    return (\n        <>\n            {enableSelectButton && (\n                <Button\n                    quiet\n                    variant=\"action\"\n                    icon={<SelectBoxAll size=\"S\" />}\n                    onClick={handleInSelectionMode}\n                    disabled={selectionManager.hasAnySelected}\n                    selected={selectionManager.isInSelectionMode}\n                    data-testid=\"header-select-button\"\n                />\n            )}\n        </>\n    );\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { ViewMode as CVViewMode } from '@csc/collection-view';\n\nexport function viewModeForCollectionView(viewMode: AssetBrowser.ViewMode): CVViewMode {\n    switch (viewMode) {\n        case 'list': {\n            return CVViewMode.List;\n        }\n        case 'grid': {\n            return CVViewMode.Grid;\n        }\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { UXSortBy, ViewToggles } from '@csc/collection-view';\nimport React from 'react';\nimport { useIntl } from 'react-intl';\nimport { useAAVContext } from '../components/AdobeAssetsView/AAVContext';\nimport { viewModeForCollectionView } from '../utils/collection-view-compat';\nimport HeaderSelectButton from './HeaderSelectButton/HeaderSelectButton';\nimport SortDropdown from './SortDropdown/SortDropdown';\n\nexport default function HeaderViewOptions() {\n    const intl = useIntl();\n    const { list, onViewOptionsChange, viewMode } = useAAVContext();\n\n    if (!list?.items.length) {\n        return null;\n    }\n\n    return (\n        <>\n            <HeaderSelectButton />\n            <SortDropdown\n                sortOptions={[\n                    {\n                        key: UXSortBy.modifiedDate,\n                        label: intl.formatMessage({\n                            id: 'aav.header.modifiedDate',\n                            defaultMessage: 'Date modified',\n                        }),\n                    },\n                    {\n                        key: UXSortBy.title,\n                        label: intl.formatMessage({\n                            id: 'aav.header.title',\n                            defaultMessage: 'Name',\n                        }),\n                    },\n                ]}\n            />\n            <ViewToggles\n                viewMode={viewModeForCollectionView(viewMode)}\n                onViewModeChange={(newViewMode) => onViewOptionsChange({ viewMode: newViewMode })}\n            />\n        </>\n    );\n}\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nexport default arrayMap;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n  var length = array.length;\n  end = end === undefined ? length : end;\n  return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n  var index = -1,\n      length = array.length;\n\n  if (start < 0) {\n    start = -start > length ? 0 : (length + start);\n  }\n  end = end > length ? length : end;\n  if (end < 0) {\n    end += length;\n  }\n  length = start > end ? 0 : ((end - start) >>> 0);\n  start >>>= 0;\n\n  var result = Array(length);\n  while (++index < length) {\n    result[index] = array[index + start];\n  }\n  return result;\n}\n\nexport default baseSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange  + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n  return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","import baseIsRegExp from './_baseIsRegExp.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nexport default isRegExp;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n  return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nexport default baseIsRegExp;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n  return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n  return hasUnicode(string)\n    ? unicodeToArray(string)\n    : asciiToArray(string);\n}\n\nexport default stringToArray;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n  return string.split('');\n}\n\nexport default asciiToArray;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport isRegExp from './isRegExp.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\nfunction split(string, separator, limit) {\n  if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n    separator = limit = undefined;\n  }\n  limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n  if (!limit) {\n    return [];\n  }\n  string = toString(string);\n  if (string && (\n        typeof separator == 'string' ||\n        (separator != null && !isRegExp(separator))\n      )) {\n    separator = baseToString(separator);\n    if (!separator && hasUnicode(string)) {\n      return castSlice(stringToArray(string), 0, limit);\n    }\n  }\n  return string.split(separator, limit);\n}\n\nexport default split;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { FormattableGradient } from '@csc/common';\nimport { useFormattedGradient } from '@csc/common';\nimport classnames from 'classnames';\nimport split from 'lodash-es/split';\nimport React from 'react';\nimport styles from './styles.module.css';\n\nexport type ProjectBadgeProps = {\n    name: string;\n    className?: string;\n    size?: 'XXS' | 'XS' | 'S' | 'M' | 'L' | 'L50' | 'XL' | 'XXL';\n    gradient?: FormattableGradient;\n};\n\nexport default function ProjectBadge({ name, className, size = 'M', gradient }: ProjectBadgeProps) {\n    const displayName = name === '' ? '_' : name;\n    const [firstCharacter] = split(displayName, '');\n    const badgeCharacter = firstCharacter?.toUpperCase() ?? '';\n    const gradientStyle = useFormattedGradient(gradient);\n    return (\n        <div\n            data-testid=\"badge\"\n            className={classnames(className, styles.badge, {\n                [styles.sizeXXS]: size === 'XXS',\n                [styles.sizeXS]: size === 'XS',\n                [styles.sizeS]: size === 'S',\n                [styles.sizeM]: size === 'M',\n                [styles.sizeL]: size === 'L',\n                [styles.sizeL50]: size === 'L50',\n                [styles.sizeXL]: size === 'XL',\n                [styles.sizeXXL]: size === 'XXL',\n            })}\n            style={gradientStyle}\n        >\n            {badgeCharacter}\n        </div>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport Textfield from '@ccx-public/spectrum-wrapper/dist/Textfield';\nimport { isIos, useHostConfig, useMobile, useTheme } from '@csc/common';\nimport { getAssetName, isSAMError, useNameValidation, type Messages } from '@csc/sam-utils';\nimport DialogContent from '@csc/ui/dist/src/DialogContent/DialogContent';\nimport HelpText from '@csc/ui/dist/src/HelpText/HelpText';\nimport LoadingState from '@csc/ui/dist/src/LoadingState/LoadingState';\nimport useEnterKeySubmit from '@csc/ui/dist/src/hooks/useEnterKeySubmit';\nimport classnames from 'classnames';\nimport type { SyntheticEvent, FocusEvent } from 'react';\nimport React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport type { IntlShape } from 'react-intl';\nimport { useIntl } from 'react-intl';\nimport styles from './style.module.css';\n\ntype Props = {\n    element: SAM.AdobeAsset;\n    messages?: Messages;\n    onConfirm?: (element: SAM.AdobeAsset) => void;\n    onConflict?: (element: SAM.AdobeAsset) => void;\n    onError?: (error: Error, element: SAM.AdobeAsset) => void;\n};\n\nconst trimFilename = (name: string): string => {\n    return (\n        name\n            .trim()\n            // [CCPROJ-10227] Remove zero-width joiners from beginning\n            .replace(/^[\\u200C\\u200D]+/g, '')\n    );\n};\n\nconst getValidationMessages = (intl: IntlShape) => ({\n    characters: intl.formatMessage({\n        id: 'aav.actions.rename.dialog.validationError.characters',\n        defaultMessage: 'Names can’t contain the following characters: \\\\ / * ? \" | : < >',\n    }),\n    lengthExceeded: intl.formatMessage({\n        id: 'aav.actions.rename.dialog.validationError.lengthExceeded',\n        defaultMessage: 'Name exceeded maximum length',\n    }),\n    endWithDot: intl.formatMessage({\n        id: 'aav.actions.rename.dialog.validationError.endWithDot',\n        defaultMessage: 'Names can’t end with a period',\n    }),\n    startWithDot: intl.formatMessage({\n        id: 'aav.actions.rename.dialog.validationError.startWithDot',\n        defaultMessage: 'Names can’t begin with a period',\n    }),\n    reservedName: intl.formatMessage({\n        id: 'aav.actions.rename.dialog.validationError.reservedName',\n        defaultMessage: 'The name is not available. Please choose a different name.',\n    }),\n    duplicate: ({ assetType }: { assetType?: string }) =>\n        intl.formatMessage(\n            {\n                id: 'aav.actions.rename.dialog.validationError.duplicate',\n                defaultMessage:\n                    '{assetType, select, project {There’s already a project with this name in this organization} other {There’s already a file with this name in this organization}}',\n            },\n            { assetType },\n        ),\n});\n\nfunction getHeaderLabel(asset: SAM.AdobeAsset, intl: IntlShape): string {\n    if (asset.isProject) {\n        return intl.formatMessage({\n            id: 'aav.actions.rename.dialog.header.project',\n            defaultMessage: 'Rename this project',\n        });\n    }\n    if (asset.isFolder) {\n        return intl.formatMessage({\n            id: 'aav.actions.rename.dialog.header.folder',\n            defaultMessage: 'Rename this folder',\n        });\n    }\n    return intl.formatMessage({\n        id: 'aav.actions.rename.dialog.header.file',\n        defaultMessage: 'Rename this file',\n    });\n}\n\nexport default function RenameDialog(props: Props) {\n    const { element, onConflict, onConfirm, onError } = props;\n    const [isExecuting, setIsExecuting] = useState<boolean>(false);\n    const [name, setName] = useState<string>();\n    const { themeIsExpress, themeIsSpectrum } = useTheme();\n    const { closeModal, showToast } = useHostConfig();\n    const mobile = useMobile();\n    const intl = useIntl();\n    const messages = props.messages ?? getValidationMessages(intl);\n    const { addDuplicate, error, onNameChange, helpText } = useNameValidation(element, {\n        messages,\n    });\n\n    useEffect(() => {\n        setName(getAssetName(element) || '');\n    }, [element]);\n\n    useEffect(() => {\n        if (error === 'duplicate') {\n            onConflict?.(element);\n        }\n    }, [element, error, onConflict]);\n\n    // Client-side validation expects just the name and no extension\n    const newFilename = useMemo(() => {\n        if (!name) {\n            return '';\n        }\n        return trimFilename(name);\n    }, [name]);\n\n    // SAM expects the full file name with the extension (used for deriving Type for some assets)\n    const newFileNameWithExtension = useMemo(() => {\n        // Special cases that don't have an extension\n        if (element.isProject || element.isFolder || element.isLibrary || !element.extension) {\n            return newFilename;\n        }\n        return `${newFilename}.${element.extension}`;\n    }, [newFilename, element.extension, element.isFolder, element.isLibrary, element.isProject]);\n\n    const handleSubmit = async (event?: SyntheticEvent) => {\n        if (event) {\n            event.preventDefault();\n            event.stopPropagation();\n        }\n        setIsExecuting(true);\n        onConfirm?.(element);\n        try {\n            const oldName = getAssetName(element);\n            await element.rename(newFileNameWithExtension);\n            // closeModal should be called first in the case showToast isn't defined,\n            // More context in PR#5167\n            closeModal({ type: AssetBrowser.ShowModalResultType.Success });\n            showToast({\n                content: intl.formatMessage(\n                    {\n                        id: 'aav.actions.rename.toast.success',\n                        defaultMessage: 'Renamed {oldName} to {name}',\n                    },\n                    { name, oldName },\n                ),\n                variant: 'positive',\n            });\n        } catch (e) {\n            if (isSAMError(e) && e.code === SAM.SAMErrorCode.CONFLICT) {\n                addDuplicate(newFilename);\n                onConflict?.(element);\n            } else {\n                const content = element.isProject\n                    ? intl.formatMessage({\n                          id: 'aav.actions.rename.dialog.error.project',\n                          defaultMessage: 'We ran into a problem renaming your project',\n                      })\n                    : intl.formatMessage({\n                          id: 'aav.actions.rename.dialog.error.file',\n                          defaultMessage: 'We ran into a problem renaming your file',\n                      });\n                // closeModal should be called first in the case showToast isn't defined,\n                // More context in PR#5167\n                closeModal({ type: AssetBrowser.ShowModalResultType.Error });\n                showToast({\n                    content,\n                    variant: 'negative',\n                });\n                onError?.(e as Error, element);\n            }\n        } finally {\n            setIsExecuting(false);\n        }\n    };\n\n    useEffect(() => {\n        onNameChange(newFilename);\n    }, [newFilename, onNameChange]);\n\n    const hasNameError = Boolean(error);\n    const noInput = useMemo(() => !name || trimFilename(name) === '', [name]);\n    const oldName = getAssetName(element);\n    const nameIsUnchanged = oldName === newFilename;\n    const submitDisabled = hasNameError || noInput || nameIsUnchanged;\n\n    const { onKeyDown } = useEnterKeySubmit({ handleSubmit, submitDisabled });\n\n    const onFocus = useCallback((event: FocusEvent<HTMLInputElement>) => {\n        // iOS shows an unwanted \"Copy/Paste\" menu when the input is selected,\n        // so Express doesn't auto-select the text on iOS, and neither shall we.\n        if (!isIos()) {\n            event.target.select();\n        }\n    }, []);\n\n    const assetType = element.isProject ? 'project' : 'file';\n\n    const headerLabel = getHeaderLabel(element, intl);\n\n    const contentBody = (\n        <div>\n            {isExecuting ? (\n                <LoadingState className={styles.waitContainer} />\n            ) : (\n                <>\n                    <Textfield\n                        aria-label={headerLabel}\n                        autofocus\n                        onFocus={onFocus}\n                        className={classnames(styles.renameInput, {\n                            [styles.inputExpress]: themeIsExpress,\n                        })}\n                        quiet={themeIsExpress}\n                        type=\"text\"\n                        value={name}\n                        onChange={(name) => setName(name)}\n                        onKeyDown={onKeyDown}\n                        invalid={themeIsSpectrum && hasNameError}\n                        data-testid=\"rename-dialog-textfield\"\n                    />\n                    <HelpText data-testid=\"helper-text\" variant={error ? 'negative' : 'neutral'}>\n                        {helpText}\n                    </HelpText>\n                </>\n            )}\n        </div>\n    );\n\n    return (\n        <DialogContent\n            cancelLabel={intl.formatMessage({\n                id: 'aav.button.cancel',\n                defaultMessage: 'Cancel',\n            })}\n            confirmDisabled={submitDisabled || isExecuting}\n            confirmLabel={intl.formatMessage({\n                id: 'aav.button.save',\n                defaultMessage: 'Save',\n            })}\n            className={styles.renameContent}\n            data-testid={`${assetType}-rename-dialog`}\n            expressTheme={themeIsExpress}\n            mobile={mobile}\n            onCancel={() => closeModal({ type: AssetBrowser.ShowModalResultType.Cancel })}\n            onConfirm={() => handleSubmit()}\n            size=\"s\"\n            title={headerLabel}\n        >\n            {contentBody}\n        </DialogContent>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport DropdownButton from '@ccx-public/spectrum-wrapper/dist/DropdownButton';\nimport SortOrderDown from '@ccx-public/spectrum-wrapper/dist/Icon/SortOrderDown';\nimport SortOrderUp from '@ccx-public/spectrum-wrapper/dist/Icon/SortOrderUp';\nimport {\n    MenuGroup as MenuGroupWrapper,\n    MenuDivider,\n    MenuItem,\n} from '@ccx-public/spectrum-wrapper/dist/Menu';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport React, { useCallback, useMemo } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport styles from './styles.module.css';\nimport { useAAVContext } from '../AdobeAssetsView/AAVContext';\n\nexport interface ISortDropdownProps {\n    sortOptions: Array<{ key: string; label: string }>;\n    tabIndex?: number;\n}\n\nconst DATE_SORT_TYPES = ['modifiedDate', 'shareDate', 'createDate', 'accessDate'];\n\nfunction isDateSortType(sortBy: string): boolean {\n    return DATE_SORT_TYPES.includes(sortBy);\n}\n\nexport default function SortDropdown({ sortOptions, tabIndex }: ISortDropdownProps) {\n    const { sortBy, sortDir, onViewOptionsChange } = useAAVContext();\n    const intl = useIntl();\n\n    // When sortBy is a date, the reverse order is ascending\n    // default sortBy dates are descending\n    const isReverseSelected = useMemo(\n        () => (isDateSortType(sortBy) ? sortDir === 'asc' : sortDir === 'desc'),\n        [sortBy, sortDir],\n    );\n\n    const reverseOption = {\n        label: intl.formatMessage({\n            id: 'aav.header.sortReverse',\n            defaultMessage: 'Reverse order',\n        }),\n        key: 'reverse',\n    };\n\n    const handleSortSelect = useCallback(\n        (key: string) => {\n            if (key === sortBy) {\n                // do nothing when selecting the existing sort\n                return;\n            }\n            const updatedSortOptions = {\n                sortBy,\n                sortDir,\n            };\n            if (key === reverseOption.key) {\n                // Toggle the sort direction\n                updatedSortOptions.sortDir = sortDir === 'asc' ? 'desc' : 'asc';\n            } else {\n                // When the sortBy changes, we always reset the sort direction to the default (Reverse should not be checked)\n                // For date sorts, the default direction is descending (i.e modifiedDate where most recent is on top)\n                // For non-date sorts, the default direction is ascending (i.e name, title)\n                const resetReverseDirection = isDateSortType(key) ? 'desc' : 'asc';\n                updatedSortOptions.sortDir = resetReverseDirection;\n                updatedSortOptions.sortBy = key;\n            }\n\n            onViewOptionsChange(updatedSortOptions);\n        },\n        [sortBy, sortDir, reverseOption.key, onViewOptionsChange],\n    );\n\n    const SortIcon = sortDir === 'asc' ? SortOrderUp : SortOrderDown;\n\n    const MenuGroup = (props: Parameters<typeof MenuGroupWrapper>[0]) => {\n        const { children, ...rest } = props;\n        return (\n            <MenuGroupWrapper fallback={<>{children}</>} {...rest}>\n                {children}\n            </MenuGroupWrapper>\n        );\n    };\n\n    return (\n        <OverlayTrigger placement=\"top right\" trigger={['hover']}>\n            <DropdownButton\n                className={styles.dropdownButton}\n                id=\"CDO_SortByDropDown\"\n                icon={<SortIcon size=\"M\" data-testid={`SortOrder_${sortDir}`} />}\n                quiet\n                tabIndex={tabIndex}\n                alignRight\n                onSelect={handleSortSelect}\n                data-testid=\"sort-dropdown\"\n            >\n                <MenuGroup selects=\"single\">\n                    {sortOptions.map(({ key, label }) => (\n                        <MenuItem\n                            key={key}\n                            id={`SortByDropDown_${key}`}\n                            value={key}\n                            className={styles.dropdownMenuItem}\n                            data-testid={`SortByDropDown_${key}`}\n                            selected={key === sortBy}\n                        >\n                            {label}\n                        </MenuItem>\n                    ))}\n                </MenuGroup>\n                <MenuDivider />\n                <MenuGroup selects=\"single\">\n                    <MenuItem\n                        key={reverseOption.key}\n                        value={reverseOption.key}\n                        className={styles.dropdownMenuItem}\n                        data-testid=\"SortByDropDown_reverse_order\"\n                        selected={isReverseSelected}\n                    >\n                        {reverseOption.label}\n                    </MenuItem>\n                </MenuGroup>\n            </DropdownButton>\n            <Tooltip>\n                <FormattedMessage id=\"aav.header.sortTooltip\" defaultMessage=\"Sort\" />\n            </Tooltip>\n        </OverlayTrigger>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Select from '@ccx-public/spectrum-wrapper/dist/Select';\nimport React, { useMemo } from 'react';\nimport { useAAVContext } from '../AdobeAssetsView/AAVContext';\nimport styles from './styles.module.css';\nimport type { FilterOptionViewModel } from './utils';\nimport { getDefaultFilterOptions, TypeGrouping } from './utils';\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { useIntl } from 'react-intl';\n\nexport interface TypeDropDownFilterProps {\n    options?: FilterOptionViewModel[];\n    value: AssetBrowser.FileFilterTypeValues;\n    disabled?: boolean;\n}\n\nconst DIVIDER = 'divider';\n\nexport default function TypeDropdownFilter(props: TypeDropDownFilterProps) {\n    const intl = useIntl();\n    const { onViewOptionsChange } = useAAVContext();\n\n    const selectOptions = useMemo(() => {\n        const options = props.options || getDefaultFilterOptions(intl);\n\n        const adobeAppTypes = options.filter((option) => option.group === TypeGrouping.Application);\n        const genericTypes = options.filter((option) => option.group === TypeGrouping.Generic);\n        const genStudioBrandsTypes = options.filter(\n            (option) => option.group === TypeGrouping.GenStudioBrands,\n        );\n        const otherBrandsTypes = options.filter(\n            (option) => option.group === TypeGrouping.OtherBrands,\n        );\n\n        const selectOptions: Array<typeof DIVIDER | (FilterOptionViewModel & { label: string })> = [\n            ...adobeAppTypes,\n        ];\n        if (genericTypes.length) {\n            selectOptions.push(DIVIDER, ...genericTypes);\n        }\n        if (genStudioBrandsTypes.length) {\n            selectOptions.push(...genStudioBrandsTypes);\n        }\n        if (otherBrandsTypes.length) {\n            selectOptions.push(DIVIDER, ...otherBrandsTypes);\n        }\n\n        // return a subset of our FilterOptionViewModel objects to align to OptionObject type\n        return selectOptions.map((option) => {\n            if (option === DIVIDER) {\n                return option;\n            }\n            return {\n                label: option.label,\n                value: option.value,\n                icon: option.icon,\n            };\n        });\n    }, [intl, props.options]);\n\n    return (\n        <Select\n            data-testid=\"type-filter-dropdown\"\n            disabled={props.disabled}\n            className={styles.typeFilterDropDown}\n            defaultValue={props.value}\n            options={selectOptions}\n            onChange={(newVal) =>\n                onViewOptionsChange({ filter: newVal as AssetBrowser.FileFilterTypeValues })\n            }\n        />\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useProject } from '@csc/sam-utils';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport ProjectBadge from '../ProjectBadge/ProjectBadge';\nimport styles from './styles.module.css';\n\ninterface ProjectNameWithBadgeProps {\n    id: string;\n}\n\nfunction ProjectNameWithBadge({ id }: ProjectNameWithBadgeProps) {\n    const { project, loading, error } = useProject(id);\n    if (loading) {\n        return (\n            // eslint-disable-next-line formatjs/no-literal-string-in-jsx -- Do not need internationalization\n            <span data-testid=\"no-collaborators\">&ndash;</span>\n        );\n    }\n    if (error) {\n        // TODO CCXW-21008 add error state here once confirmed with design\n        return (\n            // eslint-disable-next-line formatjs/no-literal-string-in-jsx -- Do not need internationalization\n            <span data-testid=\"shared-metadata-error\">&ndash;</span>\n        );\n    }\n\n    const { name = 'PROJECT', gradient } = project ?? {};\n    return (\n        <div className={styles.collabInfoContainer}>\n            <ProjectBadge name={name} gradient={gradient} size=\"XXS\" />\n            <span className={styles.collabInfoText}>{project?.name}</span>\n        </div>\n    );\n}\n\nexport default observer(ProjectNameWithBadge);\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport Globe from '@ccx-public/spectrum-wrapper/dist/Icon/Globe';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport CollaboratorCount from '../CollaboratorCount/CollaboratorCount';\nimport ProjectNameWithBadge from './ProjectNameWithBadge';\nimport styles from './styles.module.css';\n\nexport interface CollaboratorInfoProps {\n    /** The Adobe Asset to display the collaborator count for. */\n    asset: SAM.AdobeAsset;\n    /** The size of the user group icon. Defaults to 'S' */\n    iconSize?: 'XS' | 'S';\n    /* Max collaborators shown in the 'Shared with' section, excluding the owner. Defaults to 15 */\n    limit?: number;\n    /** Display a dash when there no collaborators to display.\n     * Defaults to false. When false, displays nothing. */\n    placeHolderDash?: boolean;\n}\n/**\n * Displays an icon and count of collaborators for an Adobe Asset.\n */\nconst CollaboratorInfo = observer(function SharingInfo({\n    asset,\n    iconSize = 'S',\n    limit = 15,\n    placeHolderDash = false,\n}: CollaboratorInfoProps) {\n    /**\n     * Asset is private if it's not public and ownership is private & the collaborator\n     * list is 0(if user shares the asset it will turn from only you to display collab count).\n     * */\n    const isPrivateLibrary =\n        asset.isLibrary &&\n        (asset as SAM.Library).ownership === 'private' &&\n        asset.directCollaboratorCount === 0;\n    const isPublicLibrary = (asset as SAM.Library).ownership === 'public';\n    const isPartOfProject = !!asset.parentProjectID;\n\n    if (isPublicLibrary) {\n        return (\n            <OverlayTrigger trigger=\"hover\" placement=\"top\">\n                <div className={styles.collabInfoContainer} data-testid=\"public-link-content\">\n                    <Globe size=\"XS\" />\n                    <span className={styles.collabInfoText}>\n                        <FormattedMessage\n                            id=\"aav.list.columns.shared.public\"\n                            defaultMessage=\"Public link\"\n                        />\n                    </span>\n                </div>\n                <Tooltip placement=\"top\" data-testid=\"public-link-tooltip\">\n                    <span>\n                        <FormattedMessage\n                            id=\"aav.list.columns.shared.public.tooltip\"\n                            defaultMessage=\"Anyone with the link can view\"\n                        />\n                    </span>\n                </Tooltip>\n            </OverlayTrigger>\n        );\n    }\n    if (isPrivateLibrary) {\n        return (\n            <span className={styles.collabInfoText}>\n                <FormattedMessage id=\"aav.list.columns.shared.you\" defaultMessage=\"Only you\" />\n            </span>\n        );\n    }\n    if (isPartOfProject) {\n        return <ProjectNameWithBadge id={asset.parentProjectID} />;\n    }\n\n    return (\n        <CollaboratorCount\n            asset={asset}\n            iconSize={iconSize}\n            limit={limit}\n            placeHolderDash={placeHolderDash}\n        />\n    );\n});\n\nexport default CollaboratorInfo;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { UXSortBy, renderDateColumn } from '@csc/collection-view';\nimport React from 'react';\nimport type { IntlShape } from 'react-intl';\nimport { getViewItemType } from '../utils/view-item/view-item';\nimport CollaboratorCount from './CollaboratorCount/CollaboratorCount';\nimport CollaboratorInfo from './CollaboratorInfo/CollaboratorInfo';\nimport Size from './Size/Size';\n\nexport interface Column {\n    id: string;\n    label: string;\n    isSortDisabled: boolean;\n    type: 'default' | 'date' | 'action';\n    render: (element: SAM.AdobeAsset) => React.ReactNode;\n}\n\nexport const isNonZeroAndValidDate = (date: Date) =>\n    !isNaN(date?.getTime()) && date?.getTime() !== 0;\n\nexport function modifiedDateColumn(intl: IntlShape): Column {\n    return {\n        id: UXSortBy.modifiedDate,\n        label: intl\n            .formatMessage({\n                id: 'aav.list.columns.header.modifiedDate',\n                defaultMessage: 'Date modified',\n            })\n            .toLocaleUpperCase(intl.locale),\n        isSortDisabled: false,\n        type: 'date',\n        render: (element) => renderDateColumn(element.modified, UXSortBy.modifiedDate),\n    };\n}\n\nexport function createDateColumn(intl: IntlShape): Column {\n    return {\n        id: UXSortBy.createDate,\n        label: intl\n            .formatMessage({\n                id: 'aav.list.columns.header.createDate',\n                defaultMessage: 'Date created',\n            })\n            .toLocaleUpperCase(intl.locale),\n        isSortDisabled: false,\n        type: 'date',\n        render: (element) => renderDateColumn(element.created, UXSortBy.createDate),\n    };\n}\n\nexport function shareDateColumn(intl: IntlShape): Column {\n    return {\n        id: UXSortBy.shareDate,\n        label: intl\n            .formatMessage({\n                id: 'aav.list.columns.header.shareDate',\n                defaultMessage: 'Date Shared',\n            })\n            .toLocaleUpperCase(intl.locale),\n        isSortDisabled: false,\n        type: 'date',\n        render: (element) => {\n            if (!element.shared || !isNonZeroAndValidDate(element.shared)) {\n                return null;\n            }\n            return renderDateColumn(element.shared, UXSortBy.shareDate);\n        },\n    };\n}\n\nexport function sizeColumn(intl: IntlShape): Column {\n    return {\n        id: 'size',\n        label: intl\n            .formatMessage({\n                id: 'aav.list.columns.header.size',\n                defaultMessage: 'Size',\n            })\n            .toLocaleUpperCase(intl.locale),\n        isSortDisabled: true,\n        type: 'default',\n        render: (element) => {\n            return <Size sizeInBytes={element.sizeInBytes} />;\n        },\n    };\n}\n\nexport function sharedWithColumn(intl: IntlShape): Column {\n    return {\n        id: 'shared',\n        label: intl\n            .formatMessage({\n                id: 'aav.list.columns.header.shared',\n                defaultMessage: 'Shared with',\n            })\n            .toLocaleUpperCase(intl.locale),\n        isSortDisabled: true,\n        type: 'default',\n        render: (element) => {\n            return (\n                <div className=\"cdo-sharing cdo-column\">\n                    <CollaboratorCount asset={element} iconSize=\"XS\" placeHolderDash />\n                </div>\n            );\n        },\n    };\n}\n\n/**\n * New column for sharing information in the list view as per latest design initally\n * will be adopted by libraries and later would be used for other views as well.\n */\nexport function sharingColumn(intl: IntlShape): Column {\n    return {\n        id: 'shared',\n        label: intl\n            .formatMessage({\n                id: 'aav.list.columns.header.sharing',\n                defaultMessage: 'Sharing',\n            })\n            .toLocaleUpperCase(intl.locale),\n        isSortDisabled: true,\n        type: 'default',\n        render: (element) => {\n            return (\n                <div className=\"cdo-sharing cdo-column\">\n                    <CollaboratorInfo asset={element} iconSize=\"XS\" placeHolderDash />\n                </div>\n            );\n        },\n    };\n}\n\nexport function typeColumn(intl: IntlShape): Column {\n    return {\n        id: 'type',\n        label: intl\n            .formatMessage({\n                id: 'aav.list.columns.header.type',\n                defaultMessage: 'Type',\n            })\n            .toLocaleUpperCase(intl.locale),\n        isSortDisabled: true,\n        type: 'default',\n        render: (element) => {\n            return (\n                <div key=\"type\" className=\"cdo-type cdo-column\">\n                    <span className=\"cdo-itemType\">{getViewItemType(element, intl)}</span>\n                </div>\n            );\n        },\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useMemo } from 'react';\nimport { useIntl } from 'react-intl';\nimport type { IntlShape } from 'react-intl';\nimport type { SAM } from '@ccx-public/component-types';\nimport type { FilterOptionViewModel } from '../components/TypeDropdownFilter/utils';\nimport { getViewAttributesMap } from '../components/TypeDropdownFilter/utils';\nimport {\n    getCompatibleTypesFileType,\n    isValidCompatibleTypes,\n} from '../utils/filtering-utils/compatibility-filter';\nimport isNormalFolder from '../utils/is-normal-folder';\n\n/**\n * Creates dynamic filter view model based on compatible types.\n * This is a pure function that can be used independently of React hooks.\n *\n * @param intl - Internationalization object for localized strings\n * @param compatibleTypes - Array of compatible mime types/file types\n * @param includeFolders - Whether to include folders in the filter\n * @returns FilterOptionViewModel if compatible types are found, undefined otherwise\n */\nexport function createCompatibleTypesFilterViewModel(\n    intl: IntlShape,\n    compatibleTypes?: string[],\n    includeFolders?: boolean,\n): FilterOptionViewModel | undefined {\n    if (!isValidCompatibleTypes(compatibleTypes)) {\n        return undefined;\n    }\n\n    const fileType = getCompatibleTypesFileType(compatibleTypes);\n    if (!fileType) {\n        return undefined;\n    }\n\n    const { label, icon, group } = getViewAttributesMap(intl, fileType);\n\n    // Create optimized filter function with Set\n    const compatibleTypesSet = new Set(compatibleTypes);\n    const filter = (asset: SAM.AdobeAsset): boolean => {\n        // Check if we should include folders first (most likely to short-circuit)\n        if (includeFolders && isNormalFolder(asset)) {\n            return true;\n        }\n\n        return compatibleTypesSet.has(asset.mediaType);\n    };\n\n    return {\n        label,\n        icon,\n        group,\n        value: fileType,\n        filter,\n    };\n}\n\n/**\n * Hook for creating a filter view model based on compatibleTypes[].\n * The icon, label, and group are derived from the first match we find by comparing the types in compatibleTypes[] with our internal mapping.\n * Given a mixed set of compatibleTypes[] its possible that the icon/label will not be what the host expected.\n * May need to follow up with an additional API to allow hosts to explicitly set the icon/label to use.\n *\n * The filter function is a simple check against the asset's mediaType against the compatibleTypes[] and folders are included if includeFolders is true.\n *\n * @param compatibleTypes - Array of compatible mime types/file types\n * @param includeFolders - Whether to include folders in the filter\n * @returns FilterOptionViewModel if compatible types are found, undefined otherwise\n *\n * @example\n * // For functional components\n * const MyComponent = ({ compatibleTypes }) => {\n *   const filterViewModel = useCompatibleTypesFilter(compatibleTypes);\n *   // Use filterViewModel in your component\n * };\n *\n */\nexport function useCompatibleTypesFilter(\n    compatibleTypes?: string[],\n    includeFolders?: boolean,\n): FilterOptionViewModel | undefined {\n    const intl = useIntl();\n\n    // Use shared logic with memoization for performance\n    return useMemo(() => {\n        return createCompatibleTypesFilterViewModel(intl, compatibleTypes, includeFolders);\n    }, [intl, compatibleTypes, includeFolders]);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { ADOBE_FILE_MIMETYPES } from './filtering-type-enums';\n\n/**\n * Gets the FileFilterTypeValues for compatible types by finding the first\n * ADOBE_FILE_MIMETYPES entry that matches the compatible types in order.\n * Respects the order of the compatibleTypes array for more intuitive behavior.\n *\n * @param compatibleTypes - Array of compatible mime types/file types (order matters)\n * @returns FileFilterTypeValues if found, undefined otherwise\n */\nexport function getCompatibleTypesFileType(\n    compatibleTypes: string[],\n): AssetBrowser.FileFilterTypeValues | undefined {\n    // Iterate through compatibleTypes first to respect their order\n    for (const compatibleType of compatibleTypes) {\n        // Find the Adobe file type that contains this compatible type\n        const mimeTypeEntry = Object.entries(ADOBE_FILE_MIMETYPES).find(\n            ([_fileTypeKey, mimeTypes]) => mimeTypes?.includes(compatibleType),\n        ) as [AssetBrowser.AdobeFileTypeValues, string[]] | undefined;\n\n        if (mimeTypeEntry) {\n            // Return the key which is the Adobe file type value\n            return mimeTypeEntry[0] as AssetBrowser.FileFilterTypeValues;\n        }\n    }\n\n    // Couldn't map any compatibleTypes to a recognized Adobe file mimeType set\n    return undefined;\n}\n\n/**\n * Type guard to check if compatible types array is valid\n */\nexport function isValidCompatibleTypes(compatibleTypes?: string[]): compatibleTypes is string[] {\n    return Array.isArray(compatibleTypes) && compatibleTypes.length > 0;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\nimport type { IPaginationProps } from '@csc/collection-view';\nimport { DEFAULT_PAGE_SIZE } from '@csc/sam-utils';\nimport { when } from 'mobx';\nimport { useCallback, useMemo } from 'react';\n\n/**\n * Hook to manage pagination around a SAM List\n * @param samList - SAM list to paginate\n * @returns hasNextPage, isNextPageLoading, loadNextPage\n */\nexport const useSAMListPagination = ({\n    samList,\n    maxAssets,\n    hideNextPageLoadingIndicator,\n}: {\n    samList?: SAM.IItemList<SAM.IItemSourceConfig>;\n    maxAssets?: number;\n    hideNextPageLoadingIndicator?: boolean;\n}): Pick<IPaginationProps, 'hasNextPage' | 'isNextPageLoading' | 'loadNextPage'> => {\n    const samListStatus = samList?.status;\n    const samListItemsLength = samList?.items.length ?? 0;\n    const loadNextPage = useCallback(\n        async ({ startIndex }: { startIndex: number }) => {\n            if (!samList) {\n                return;\n            }\n            // log error and return if there are loader errors\n            if ((samListStatus as SAM.AssetListStatus) === SAM.AssetListStatus.HadLoaderErrors) {\n                console.error('issue loading next page');\n                return;\n            }\n\n            // special case to discard load request when initial placeholders are used\n            if (\n                samListItemsLength === 0 &&\n                startIndex === 0 &&\n                (samListStatus as SAM.AssetListStatus) === SAM.AssetListStatus.Loading\n            ) {\n                return;\n            }\n\n            if ((samListStatus as SAM.AssetListStatus) === SAM.AssetListStatus.ReadyFullyLoaded) {\n                return;\n            }\n\n            if (maxAssets && samListItemsLength >= maxAssets) {\n                return;\n            }\n\n            const limit: number | undefined = maxAssets\n                ? // calculate the remaining assets to load\n                  Math.min(maxAssets - samListItemsLength, DEFAULT_PAGE_SIZE)\n                : undefined;\n\n            // wait until the list is not loading\n            await when(\n                () => (samListStatus as SAM.AssetListStatus) !== SAM.AssetListStatus.Loading,\n            );\n            // load next page, when there are more pages to load\n            if ((samListStatus as SAM.AssetListStatus) === SAM.AssetListStatus.ReadyHasMorePages) {\n                samList.loadNextPage({ limit });\n            }\n        },\n        [maxAssets, samList, samListStatus, samListItemsLength],\n    );\n    const pagination = useMemo(() => {\n        if (!samList) {\n            return {\n                hasNextPage: false,\n                loadNextPage: () => Promise.resolve(),\n                isNextPageLoading: false,\n            };\n        }\n        if (hideNextPageLoadingIndicator) {\n            return {\n                hasNextPage: false,\n                isNextPageLoading:\n                    samListItemsLength === 0 &&\n                    (samListStatus as SAM.AssetListStatus) === SAM.AssetListStatus.Loading,\n                loadNextPage: () => Promise.resolve(),\n            };\n        }\n        return {\n            hasNextPage: maxAssets\n                ? samListItemsLength < maxAssets &&\n                  (samListStatus as SAM.AssetListStatus) === SAM.AssetListStatus.ReadyHasMorePages\n                : (samListStatus as SAM.AssetListStatus) === SAM.AssetListStatus.ReadyHasMorePages,\n            isNextPageLoading:\n                (samListStatus as SAM.AssetListStatus) === SAM.AssetListStatus.Loading,\n            loadNextPage,\n        };\n    }, [\n        loadNextPage,\n        maxAssets,\n        samListStatus,\n        samListItemsLength,\n        hideNextPageLoadingIndicator,\n        samList,\n    ]);\n\n    return pagination;\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\n\nimport { OperationStore, EventType } from '@csc/collection-view';\nimport { action, observable } from 'mobx';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { captureSentryException } from '@csc/common';\n\nexport interface IOperationalMetricOptions {\n    correlationId: string;\n    element?: BackedCollectionItem<SAM.AdobeAsset>;\n    eventType?: EventType;\n    dtsStart?: Date;\n    errorCode?: string | number;\n    errorDesc?: string;\n    userId?: string;\n}\nexport interface IOpMetricLogger {\n    (options: IOperationalMetricOptions): Promise<void>;\n}\n\ninterface IAssetOpArgs<T> {\n    elements: BackedCollectionItem<SAM.AdobeAsset>[];\n    batchOperation?: (\n        correlationId: string,\n        elements: BackedCollectionItem<SAM.AdobeAsset>[],\n    ) => Promise<SAM.IBatchOperationAssetResult>;\n    beforeAll?: () => unknown;\n    opName: UXOpName | string;\n    operation: (correlationId: string, element: BackedCollectionItem<SAM.AdobeAsset>) => Promise<T>;\n    metricLogger?: IOpMetricLogger;\n    correlationId: string;\n}\n\nexport enum ActionAnalyticsValue {\n    AddFolder = 'create',\n    CopyLink = 'copy-link',\n    CopyTo = 'copy-to',\n    Discard = 'discard',\n    Duplicate = 'duplicate',\n    Export = 'export',\n    Favorite = 'favorite',\n    Import = 'import',\n    Move = 'move',\n    MoveFrom = 'move-from',\n    Open = 'open',\n    Leave = 'leave',\n    Pin = 'make-available-offline',\n    Restore = 'restore',\n    PermDelete = 'perm-delete',\n    Remove = 'remove-library',\n    RemoveFavorite = 'remove-favorite',\n    Rename = 'rename',\n    ResolveSyncError = 'resolve-sync-error',\n    ReportAbuse = 'report-abuse',\n    Share = 'share',\n    NewBrand = 'new-brand',\n    NewLibrary = 'new-library',\n    AddBrand = 'add-brand',\n    AddLibrary = 'add-library',\n    ShowLocation = 'show-location',\n    AddToBoard = 'add-to-board',\n}\n\n/**\n * Some operations have different user actions, but use the same ACP operation (e.g. move and rename are different\n * user actions, but both use OpType.MOVE). Some user actions do not map to any OpType. Use this enum to identify the\n * user gesture that initiated it so proper metrics and user messaging can be done.\n */\nexport enum UXOpName {\n    COPY_LINK = 'copy_link',\n    COPY_TO = 'copy_to',\n    CREATE_NEW_FOLDER = 'create_new_folder',\n    DISCARD = 'discard',\n    DUPLICATE = 'duplicate', // ACPL's OpType.COPY\n    EXPORT = 'export',\n    FAVORITE = 'favorite',\n    IMPORT = 'import',\n    MOVE = 'move',\n    RESTORE = 'restore',\n    LEAVE = 'leave',\n    USER_PIN = 'user_pin',\n    PERM_DELETE = 'perm_delete',\n    REMOVE = 'remove_library',\n    REMOVE_FAVORITE = 'remove_favorite',\n    RESOLVE_SYNC_ERROR = 'resolve_sync_error',\n    NEW_LIBRARY = 'new_library',\n    ADD_LIBRARY = 'add_library',\n    ADD_TO_BOARD = 'add_to_board',\n}\n\nclass AAVOperationStore extends OperationStore {\n    @observable public numInProgress = 0;\n    @observable public batchSize = 0;\n    @observable public opName = '';\n    @observable public assetOpCompleted = false;\n    @action private assetOpComplete() {\n        this.numInProgress = 0;\n        this.assetOpCompleted = true;\n    }\n\n    @action async assetOp<T>({\n        elements,\n        batchOperation,\n        beforeAll,\n        opName,\n        operation,\n        metricLogger = undefined,\n        correlationId,\n    }: IAssetOpArgs<T>): Promise<{\n        failedElements: Array<{ element: BackedCollectionItem<SAM.AdobeAsset>; error: Error }>;\n        succeededElements: Array<{ element: BackedCollectionItem<SAM.AdobeAsset>; response?: T }>;\n    }> {\n        const promiseList: Promise<void>[] = [];\n        this.assetOpCompleted = false;\n        this.batchSize = batchOperation ? 1 : elements.length;\n        this.opName = opName;\n        // Assume one is in progress on batch ops\n        if (elements.length > 1) {\n            this.numInProgress += 1;\n        }\n        const failedElements: Array<{\n            element: BackedCollectionItem<SAM.AdobeAsset>;\n            error: Error;\n        }> = [];\n        const succeededElements: Array<{\n            element: BackedCollectionItem<SAM.AdobeAsset>;\n            response?: T;\n        }> = [];\n\n        beforeAll?.();\n\n        const metricLogFailure = (\n            correlationId: string,\n            element: BackedCollectionItem<SAM.AdobeAsset>,\n            error: SAM.SAMError,\n            dtsStart: Date,\n        ) => {\n            const metricLoggerOptions: IOperationalMetricOptions = {\n                correlationId,\n                element: element,\n                eventType: EventType.Error,\n                errorCode: SAM.SAMErrorCode[error.code],\n                errorDesc: error.message,\n                dtsStart,\n                ...error,\n            };\n            void metricLogger?.(metricLoggerOptions);\n        };\n\n        const metricLogSuccess = (\n            correlationId: string,\n            element: BackedCollectionItem<SAM.AdobeAsset>,\n            dtsStart: Date,\n            response?: T,\n        ) =>\n            void metricLogger?.({\n                correlationId,\n                element: element ?? response,\n                eventType: EventType.Success,\n                dtsStart,\n            });\n\n        const reportOperationErrorToSentry = (\n            correlationId: string,\n            element: BackedCollectionItem<SAM.AdobeAsset>,\n            error: SAM.SAMError,\n            dtsStart: Date,\n            opName: string,\n        ) =>\n            captureSentryException(error, {\n                correlation_id: correlationId,\n                event_date: dtsStart.toISOString(),\n                total_asset_count: elements.length,\n                mimetype: element?.type,\n                error_code: SAM.SAMErrorCode[error.code],\n                error_desc: error.message,\n                action_type: opName,\n            });\n\n        if (elements && elements.length) {\n            this.logger.debug('assetOp batches pending', elements.length);\n\n            if (batchOperation) {\n                const dtsStart = new Date(Date.now()); // Explicit constructor with Date.now() is easier to mock\n                promiseList.push(\n                    batchOperation(correlationId, elements)\n                        .then((batchResponse) => {\n                            // currently, we only support perm delete batch operation\n                            // TODO: Handle newModels for batch operations like copy, move, etc.\n                            const { failedResults } = batchResponse;\n\n                            // Currently, SAMJS does not return individual errors for each operation.\n                            // When the operation fails, permanentlyDeleteAssets does not throw an error but returns a failedResults array\n                            // with a single object that contains the error. Until this changes, we will mark the whole batch as failed.\n                            // TODO: Revisit this when we do perm-delete in Delete view\n                            if (failedResults?.length > 0) {\n                                throw failedResults[0].error;\n                            }\n                            elements.forEach((element) => {\n                                metricLogSuccess(correlationId, element, dtsStart);\n                                succeededElements.push({ element });\n                            });\n                            return;\n                        })\n                        .catch((error: SAM.SAMError) => {\n                            elements.forEach((element) => {\n                                failedElements.push({ element, error });\n                                metricLogFailure(correlationId, element, error, dtsStart);\n                            });\n                            reportOperationErrorToSentry(\n                                correlationId,\n                                elements[0], // Using the first element to report the error to Sentry\n                                error,\n                                dtsStart,\n                                opName,\n                            );\n                        })\n                        .finally(() => {\n                            this.numInProgress++;\n                        }),\n                );\n            } else {\n                const promises = elements.map((ele: BackedCollectionItem<SAM.AdobeAsset>) => {\n                    const dtsStart = new Date(Date.now()); // Explicit constructor with Date.now() is easier to mock\n                    return operation(correlationId, ele)\n                        .then((response) => {\n                            metricLogSuccess(correlationId, ele, dtsStart, response);\n                            succeededElements.push({ element: ele, response });\n                            return;\n                        })\n                        .catch((error: SAM.SAMError) => {\n                            failedElements.push({ element: ele, error });\n                            metricLogFailure(correlationId, ele, error, dtsStart);\n\n                            reportOperationErrorToSentry(\n                                correlationId,\n                                ele,\n                                error,\n                                dtsStart,\n                                opName,\n                            );\n\n                            this.assetOpCompleted = true;\n                            this.logger.error(`Failed to perform ${opName} action on item`, error);\n                        })\n                        .finally(() => {\n                            this.numInProgress++;\n                        });\n                });\n                promiseList.push(...promises);\n                await Promise.all(promises); // Why is this needed?\n            }\n        } else {\n            // This isn't an error, because a beforeOp may have filtered out all items\n            this.logger.debug(`No items to operate on for ${opName}.`);\n            return { succeededElements, failedElements };\n        }\n\n        await Promise.all(promiseList);\n        this.logger.debug('assetOp %s complete', opName);\n        this.assetOpComplete();\n        return { succeededElements, failedElements };\n    }\n}\n\n// aliasing for clients who still use the old TS types when we had MST stores\ntype AAVOperationStoreType = AAVOperationStore;\nexport { AAVOperationStore, type AAVOperationStoreType };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_SIZE = {\n    width: 150,\n    height: 150,\n};\nconst EmptyCloudDocs = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n    primaryColor = '#b4b4b4',\n    secondaryColor = '#b1b1b1',\n    tertiaryColor = '#2680e9',\n}) => (\n    <svg\n        className={classNames('cdo-EmptyCloudDocs', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={height}\n        height={width}\n        viewBox={`0 0 ${height} ${width}`}\n    >\n        <path\n            fill={secondaryColor}\n            d=\"m58.03,109.374c-2.448,0-4.439-1.991-4.439-4.439s1.992-4.439,4.439-4.439,4.439,1.991,4.439,4.439-1.992,4.439-4.439,4.439Zm0-6.879c-1.345,0-2.439,1.095-2.439,2.439s1.094,2.439,2.439,2.439,2.439-1.095,2.439-2.439-1.094-2.439-2.439-2.439Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m49.579,118.667c-2.687,0-4.873-2.187-4.873-4.873s2.186-4.873,4.873-4.873,4.873,2.187,4.873,4.873-2.186,4.873-4.873,4.873Zm0-7.746c-1.584,0-2.873,1.289-2.873,2.873s1.289,2.873,2.873,2.873,2.873-1.289,2.873-2.873-1.289-2.873-2.873-2.873Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m36.243,121.25c-3.267,0-5.924-2.657-5.924-5.924s2.657-5.924,5.924-5.924,5.924,2.657,5.924,5.924-2.657,5.924-5.924,5.924Zm0-9.848c-2.164,0-3.924,1.76-3.924,3.924s1.76,3.924,3.924,3.924,3.924-1.76,3.924-3.924-1.76-3.924-3.924-3.924Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m21.543,117.731c-3.497,0-6.342-2.845-6.342-6.342s2.845-6.342,6.342-6.342,6.342,2.845,6.342,6.342-2.845,6.342-6.342,6.342Zm0-10.684c-2.395,0-4.342,1.947-4.342,4.342s1.948,4.342,4.342,4.342,4.342-1.947,4.342-4.342-1.948-4.342-4.342-4.342Z\"\n        />\n        <g>\n            <path\n                fill={tertiaryColor}\n                d=\"m91.602,79.134h-25.146c-.829,0-1.5-.672-1.5-1.5s.671-1.5,1.5-1.5h25.146c.828,0,1.5.672,1.5,1.5s-.672,1.5-1.5,1.5Z\"\n            />\n            <path\n                fill={tertiaryColor}\n                d=\"m79.028,91.707c-.828,0-1.5-.672-1.5-1.5v-25.146c0-.829.672-1.5,1.5-1.5s1.5.671,1.5,1.5v25.146c0,.828-.672,1.5-1.5,1.5Z\"\n            />\n        </g>\n        <path\n            fill={secondaryColor}\n            d=\"m79.126,102.463c-4.141,0-8.235-1.047-11.96-3.104-5.803-3.204-10.012-8.476-11.85-14.845s-1.085-13.073,2.119-18.875c3.204-5.803,8.476-10.012,14.845-11.85,6.371-1.838,13.074-1.084,18.876,2.119,5.803,3.204,10.011,8.476,11.849,14.845l-1.429.458-1.446.399c-1.623-5.625-5.322-10.259-10.424-13.076-5.103-2.817-10.996-3.479-16.594-1.862-5.599,1.615-10.234,5.315-13.051,10.417-2.817,5.102-3.478,10.995-1.862,16.594,1.615,5.6,5.315,10.234,10.417,13.051,5.102,2.817,10.995,3.479,16.594,1.862.795-.231,1.628.229,1.857,1.025s-.229,1.628-1.025,1.857c-2.281.658-4.606.984-6.916.984Z\"\n        />\n        <path\n            id=\"Path_142584\"\n            data-name=\"Path 142584\"\n            fill={primaryColor}\n            d=\"m105.566,68.492v6.216c0,.857.694,1.553,1.551,1.553h1.555c.857,0,1.552-.695,1.552-1.552h0v-3.109h6.216v18.633h-3.108c-.857,0-1.552.695-1.553,1.552v1.553c0,.858.696,1.553,1.553,1.553h10.87c.858,0,1.553-.694,1.554-1.552h0v-1.554c0-.858-.696-1.553-1.554-1.552h-3.108v-18.635h6.216v3.108c0,.857.694,1.553,1.551,1.553h1.554c.856-.004,1.548-.7,1.546-1.556v-6.216c0-.858-.695-1.553-1.553-1.553h-23.291c-.857,0-1.552.695-1.552,1.552h0\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m134.957,46.346c-.078,0-.157-.006-.235-.019l-8.175-1.301c-.177-.028-.347-.087-.503-.175l-42.923-24.254c-1.211-.685-1.64-2.229-.956-3.441l1.834-3.249c.686-1.212,2.23-1.641,3.441-.957l42.923,24.258c.155.088.294.203.409.339l5.332,6.333c.403.479.467,1.159.158,1.704-.269.476-.771.762-1.306.762Zm-7.672-4.24l3.931.626-2.564-3.045-42.273-23.891-1.367,2.422,42.274,23.888Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m88.294,22.931c-.155,0-.313-.036-.461-.113-.49-.255-.68-.859-.425-1.349l2.25-4.315c.255-.489.857-.683,1.349-.424.49.255.68.859.425,1.349l-2.25,4.315c-.179.342-.526.538-.888.538Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m126.581,44.412c-.155,0-.313-.036-.461-.113-.49-.255-.68-.859-.425-1.349l2.691-5.161c.256-.489.856-.682,1.349-.424.49.255.68.859.425,1.349l-2.691,5.161c-.179.342-.526.538-.888.538Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m120.227,60.015c-6.53,0-13.249-2.683-19.596-7.855-12.187-9.664-24.12-11.201-35.455-4.553-.714.418-1.634.18-2.053-.535s-.18-1.634.535-2.053c12.51-7.336,25.583-5.721,38.852,4.803,6.621,5.396,13.58,7.83,20.138,7.051,5.665-.673,10.786-3.821,14.809-9.106.501-.66,1.441-.788,2.102-.285.659.501.787,1.443.285,2.102-4.526,5.946-10.35,9.497-16.841,10.268-.921.109-1.847.164-2.775.164Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m36.907,127.376c-9.387-.115-18.543-3.441-25.801-9.367-3.328-2.641-5.426-6.503-5.597-10.319-.146-3.244,1.071-6.188,3.519-8.516,5.559-5.285,12.083-3.409,17.839-1.755.973.279,1.938.557,2.887.797,1.438.416,2.926-.117,3.742-1.317.019-.027.039-.055.06-.081.638-.814.859-1.655.676-2.569-.258-1.293-1.292-2.474-2.18-2.973-2.741-1.54-3.776-3.931-2.915-6.73,1.445-4.702,10.244-5.882,18.19-4.619.818.13,1.375.898,1.246,1.717-.131.818-.902,1.374-1.717,1.246-7.677-1.221-14.173.333-14.852,2.538-.324,1.055-.365,2.176,1.517,3.233,1.487.835,3.193,2.705,3.652,5,.352,1.759-.072,3.475-1.226,4.968-1.553,2.247-4.35,3.247-6.979,2.482-.93-.233-1.926-.52-2.931-.809-5.467-1.572-10.629-3.057-14.942,1.046-1.799,1.711-2.694,3.857-2.589,6.207.132,2.962,1.808,5.996,4.481,8.117,6.751,5.511,15.247,8.598,23.939,8.704,13,0,24.982-6.477,28.474-15.399.302-.771,1.174-1.15,1.943-.85.771.302,1.152,1.172.851,1.943-3.987,10.189-16.853,17.306-31.286,17.306Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m117.793,112.525c-.777,0-1.532-.225-2.184-.65l-23.148-15.103c-.354-.232-.648-.526-.878-.876-.923-1.406-.53-3.299.874-4.221l16.433-11.025c.688-.46,1.618-.279,2.082.41.461.688.277,1.62-.41,2.082l-16.445,11.033,23.133,15.188c.163.106.352.162.544.162.828,0,1.5.672,1.5s1.5-.672,1.5-1.5Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m117.79,112.525c-.828,0-1.5-.672-1.5-1.5s.672-1.5,1.5-1.5c.193,0,.382-.057.546-.163l23.149-15.102-15.364-10.1c-.694-.452-.89-1.382-.437-2.075.453-.694,1.382-.889,2.075-.437l15.364,10.024c1.408.924,1.801,2.816.879,4.221-.23.352-.524.646-.874.875l-23.155,15.105c-.652.426-1.407.65-2.184.65Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m117.795,127.278c-.778,0-1.534-.225-2.186-.65l-23.146-15.102c-.354-.232-.648-.526-.878-.876-.923-1.405-.53-3.298.874-4.221l4.312-2.812c.692-.453,1.623-.259,2.075.437.453.693.258,1.623-.437,2.075l-4.308,2.811,23.148,15.177c.163.106.352.162.545.162.828,0,1.5.672,1.5s1.5-.672,1.5-1.5Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m117.791,127.278c-.828,0-1.5-.672-1.5-1.5s.672-1.5,1.5-1.5c.193,0,.381-.056.541-.161l23.153-15.103-4.308-2.886c-.694-.452-.89-1.382-.437-2.075.453-.694,1.383-.889,2.075-.437l4.308,2.811c1.408.925,1.801,2.817.879,4.222-.23.351-.524.645-.874.874l-23.155,15.104c-.647.425-1.403.65-2.183.65Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m50.237,71.606H10.055c-1.237,0-2.244-1.006-2.246-2.243v-25.833c0-1.238,1.007-2.246,2.246-2.246h40.182c1.238,0,2.245,1.007,2.245,2.245v25.832c0,1.238-1.007,2.245-2.245,2.245Zm-39.428-3h38.673v-24.322H10.81v24.322Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m43.013,55.372c-.018,0-.035,0-.052,0-2.494-.02-4.51-2.065-4.495-4.559.031-2.531,2.065-4.534,4.546-4.534.019,0,.037,0,.056,0,2.507.031,4.522,2.095,4.491,4.602-.03,2.488-2.064,4.491-4.546,4.491Zm0-7.094c-1.39,0-2.529,1.122-2.546,2.516-.009,1.424,1.118,2.567,2.511,2.578.012,0,.024,0,.036,0,1.39,0,2.529-1.122,2.546-2.516.017-1.404-1.111-2.561-2.516-2.578-.011,0-.021,0-.032,0Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m50.236,71.104c-.249,0-.498-.092-.691-.278l-10.035-9.606c-.209-.202-.529-.203-.732-.005l-3.919,4.149c-.38.401-1.013.418-1.414.04-.401-.379-.419-1.012-.04-1.414l3.949-4.18c1.014-.986,2.557-.987,3.543-.031l10.03,9.602c.399.382.413,1.015.031,1.414-.196.205-.459.309-.722.309Z\"\n        />\n        <path\n            fill={secondaryColor}\n            d=\"m39.391,71.01c-.257,0-.515-.099-.71-.296l-13.812-13.948c-.086-.085-.222-.084-.305,0l-13.989,13.796c-.393.388-1.025.383-1.414-.01-.388-.393-.383-1.026.01-1.414l13.98-13.787c.849-.859,2.253-.868,3.122-.009l13.83,13.965c.389.393.386,1.025-.007,1.414-.195.193-.449.29-.704.29Z\"\n        />\n    </svg>\n);\n\nexport default EmptyCloudDocs;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\ninterface IconBoardProps {\n    height?: string;\n    width?: string;\n    viewBox?: string;\n}\n\nexport default function IconBoards(props: IconBoardProps) {\n    const { height = 20, width = 20 } = props;\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={width} height={height} viewBox=\"0 0 20 20\">\n            <path\n                d=\"M5.75,8h-2.5c-1.24023,0-2.25-1.00977-2.25-2.25v-1.5c0-1.24023,1.00977-2.25,2.25-2.25h2.5c1.24023,0,2.25,1.00977,2.25,2.25v1.5c0,1.24023-1.00977,2.25-2.25,2.25ZM3.25,3.5c-.41309,0-.75.33691-.75.75v1.5c0,.41309.33691.75.75.75h2.5c.41309,0,.75-.33691.75-.75v-1.5c0-.41309-.33691-.75-.75-.75h-2.5Z\"\n                fill=\"var(--iconPrimary, #222)\"\n            />\n            <path\n                d=\"M16.75,18h-1.5c-1.24023,0-2.25-1.00977-2.25-2.25v-1.5c0-1.24023,1.00977-2.25,2.25-2.25h1.5c1.24023,0,2.25,1.00977,2.25,2.25v1.5c0,1.24023-1.00977,2.25-2.25,2.25ZM15.25,13.5c-.41309,0-.75.33691-.75.75v1.5c0,.41309.33691.75.75.75h1.5c.41309,0,.75-.33691.75-.75v-1.5c0-.41309-.33691-.75-.75-.75h-1.5Z\"\n                fill=\"var(--iconPrimary, #222)\"\n            />\n            <path\n                d=\"M15.75,11h-2c-.41406,0-.75-.33594-.75-.75s.33594-.75.75-.75h2c.41309,0,.75-.33691.75-.75v-4.5c0-.41309-.33691-.75-.75-.75h-4.5c-.41309,0-.75.33691-.75.75v3c0,.41406-.33594.75-.75.75s-.75-.33594-.75-.75v-3c0-1.24023,1.00977-2.25,2.25-2.25h4.5c1.24023,0,2.25,1.00977,2.25,2.25v4.5c0,1.24023-1.00977,2.25-2.25,2.25Z\"\n                fill=\"var(--iconPrimary, #222)\"\n            />\n            <path\n                d=\"M9.75,9h-5.5c-1.24023,0-2.25,1.00977-2.25,2.25v4.5c0,1.24023,1.00977,2.25,2.25,2.25h5.5c1.24023,0,2.25-1.00977,2.25-2.25v-4.5c0-1.24023-1.00977-2.25-2.25-2.25ZM10.5,11.25v1.5h-2.75v-2.25h2c.41309,0,.75.33691.75.75ZM4.25,10.5h2v2.25h-2.75v-1.5c0-.41309.33691-.75.75-.75ZM3.5,15.75v-1.5h2.75v2.25h-2c-.41309,0-.75-.33691-.75-.75ZM9.75,16.5h-2v-2.25h2.75v1.5c0,.41309-.33691.75-.75.75Z\"\n                fill=\"var(--iconPrimary, #222)\"\n            />\n        </svg>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ICollectionItem } from '@csc/collection-view';\nimport { computed } from 'mobx';\n\nexport default class BackedCollectionItem<T> implements ICollectionItem {\n    backingItem: T;\n    private mapper: (t: T) => ICollectionItem;\n\n    constructor(backingItem: T, mapper: (t: T) => ICollectionItem) {\n        this.backingItem = backingItem;\n        this.mapper = mapper;\n    }\n\n    @computed\n    get mappedItem(): ICollectionItem {\n        return this.mapper(this.backingItem);\n    }\n\n    get id() {\n        return this.mappedItem.id;\n    }\n\n    get title() {\n        return this.mappedItem.title;\n    }\n\n    get path() {\n        return this.mappedItem.path;\n    }\n\n    get fileExtension() {\n        return this.mappedItem.fileExtension;\n    }\n\n    get rendition() {\n        return this.mappedItem.rendition;\n    }\n\n    get type() {\n        return this.mappedItem.type;\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\n\nexport type AssetLinkEventDetail = {\n    asset: SAM.AdobeAsset;\n    readonly link: string;\n    setLink(link: string): void;\n};\n\nexport class AssetLinkEvent extends CustomEvent<AssetLinkEventDetail> {\n    static readonly EVENT_NAME = 'asset-link';\n\n    constructor(detail: AssetLinkEventDetail) {\n        super(AssetLinkEvent.EVENT_NAME, { bubbles: true, composed: true, detail });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM, type AssetBrowser } from '@ccx-public/component-types';\nimport type { ExternalBaseURLs, LinkSource } from '@csc/common';\nimport { MIMETYPES, renderRouteTemplate } from '@csc/common';\nimport type { UABSAMCore } from '@csc/sam-utils';\nimport { getLibraryType, LibraryPrimaryType, TypeOfAsset } from '@csc/sam-utils';\nimport { AssetLinkEvent } from '../../events/AssetLinkEvent';\n\nfunction getLinkConstructorByMimeType(mimeType: string): typeof defaultAssetLink {\n    switch (mimeType) {\n        // ACROBAT\n        case MIMETYPES.PDF:\n            return pdfAssetLink;\n        // PHOTOSHOP\n        case MIMETYPES.PS_CLOUD_DOCUMENT_DEP:\n        case MIMETYPES.PS_CLOUD_DOCUMENT:\n        case MIMETYPES.PS_LIVE_DOCUMENT:\n            return photoshopAssetLink;\n        // ILLUSTRATOR\n        case MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT:\n            return illustratorAssetLink;\n        // SQUIRREL\n        case MIMETYPES.SQUIRREL:\n            return squirrelAssetLink;\n        // EXPRESS\n        case MIMETYPES.EXPRESS:\n            return expressAssetLink;\n        case MIMETYPES.EXPRESS_PAGE:\n        case MIMETYPES.EXPRESS_PAGE2:\n            return expressPageLink;\n        case MIMETYPES.EXPRESS_DRAWING:\n            return expressDrawingLink;\n        case MIMETYPES.EXPRESS_THEO:\n        case MIMETYPES.EXPRESS_LUCA_DOC:\n        case MIMETYPES.EXPRESS_LUCA_PROJECT:\n        case MIMETYPES.EXPRESS_GINGER_DOC:\n        case MIMETYPES.EXPRESS_GINGER_PROJECT:\n            return expressLegacyAssetLink;\n        // FIREFLY\n        case MIMETYPES.FIREFLY_GENERATION_IMAGE:\n        case MIMETYPES.FIREFLY_GENERATION_VIDEO:\n            return fireflyGenerationLink;\n        // INDESIGN\n        case MIMETYPES.INDESIGN_CLOUD_DOCUMENT:\n        case MIMETYPES.INDESIGN_CLOUD_DOCUMENT_LIVE:\n        case MIMETYPES.AERO:\n        case MIMETYPES.XD_DESIGN_SPECS:\n        case MIMETYPES.XD_PROTOTYPE:\n        case MIMETYPES.XD_SHAREDARTIFACT:\n        case MIMETYPES.XD_CLOUD_DOCUMENT:\n        case MIMETYPES.AURA:\n        default:\n            return defaultAssetLink;\n    }\n}\n\nfunction defaultAssetLink(\n    asset: SAM.AdobeAsset,\n    baseUrls: ExternalBaseURLs,\n    locale: string,\n): string {\n    const { id } = asset;\n\n    const url = new URL(`/id/${id}`, baseUrls.ASSETS_WEB);\n    url.searchParams.set('view', 'difile');\n    url.searchParams.set('locale', locale);\n\n    return url.href;\n}\n\nfunction pdfAssetLink(asset: SAM.AdobeAsset, baseUrls: ExternalBaseURLs): string {\n    const { id } = asset;\n\n    const url = new URL(`/id/${id}`, baseUrls.ACROBAT_WEB);\n    return url.href;\n}\n\nfunction photoshopAssetLink(asset: SAM.AdobeAsset, baseUrls: ExternalBaseURLs): string {\n    const { id } = asset;\n\n    const url = new URL(`/id/${id}`, baseUrls.PHOTOSHOP_WEB);\n    return url.href;\n}\n\nfunction illustratorAssetLink(asset: SAM.AdobeAsset, baseUrls: ExternalBaseURLs): string {\n    const { id } = asset;\n\n    const url = new URL(`/id/${id}`, baseUrls.ILLUSTRATOR_WEB);\n    return url.href;\n}\n\nfunction expressAssetLink(asset: SAM.AdobeAsset, baseUrls: ExternalBaseURLs): string {\n    const { id } = asset;\n\n    const url = new URL(`/id/${id}`, baseUrls.EXPRESS_WEB);\n    return url.href;\n}\n\nfunction expressPageLink(asset: SAM.AdobeAsset, baseUrls: ExternalBaseURLs): string {\n    const { id } = asset;\n\n    const url = new URL(`/webpage/design/${id}`, baseUrls.EXPRESS_WEB);\n    return url.href;\n}\n\nfunction expressDrawingLink(asset: SAM.AdobeAsset, baseUrls: ExternalBaseURLs): string {\n    const { id } = asset;\n\n    const url = new URL(`/drawing/id/${id}`, baseUrls.EXPRESS_WEB);\n    return url.href;\n}\n\nfunction expressLegacyAssetLink(asset: SAM.AdobeAsset, baseUrls: ExternalBaseURLs): string {\n    const { id } = asset;\n\n    const url = new URL(`/resolve/id/${id}`, baseUrls.EXPRESS_WEB);\n    return url.href;\n}\n\nfunction fireflyGenerationLink(asset: SAM.AdobeAsset, baseUrls: ExternalBaseURLs): string {\n    const { id } = asset;\n\n    const url = new URL(`/open/${id}`, baseUrls.FIREFLY);\n    return url.href;\n}\n\nfunction libraryAssetLink(\n    library: SAM.Library,\n    baseUrls: ExternalBaseURLs,\n    linkSource?: LinkSource,\n): string {\n    const { version, id } = library;\n\n    if (getLibraryType(library) === LibraryPrimaryType.TRAINING_SET) {\n        const url = new URL(`/cme/train/${library.cloudID}`, baseUrls.FIREFLY);\n        return url.href;\n    }\n    // When a library is shared via sharesheet email invite, we need to open the notification dialog, to accept the invite\n    if (linkSource === 'email-invite') {\n        const url = new URL(`/libraries`, baseUrls.ASSETS_WEB);\n        url.searchParams.set('dialog', 'notifications');\n        return url.href;\n    }\n\n    const url = new URL(`/files/libraries/${id}`, baseUrls.ADOBE_HOME);\n    url.searchParams.set('libraryVersion', version);\n    return url.href;\n}\n\nfunction folderAssetLink(\n    asset: SAM.AdobeAsset,\n    baseUrls: ExternalBaseURLs,\n    routes?: AssetBrowser.RouteTemplates,\n    linkSource?: LinkSource,\n): string {\n    const { id } = asset;\n\n    // Folder within a project\n    if (asset.isChildOfProject && asset.parentProjectID) {\n        const projectId = asset.parentProjectID;\n        // try to construct link based on route template first\n        if (routes && 'project' in routes) {\n            const projectRoute = renderRouteTemplate(routes, 'project', { urn: projectId });\n            return `${projectRoute}?folderId=${id}`;\n        } else {\n            // fallback to Adobe Home\n            const url = new URL(`/files/projects/${projectId}`, baseUrls.ADOBE_HOME);\n            url.searchParams.set('folderId', id);\n            return url.href;\n        }\n    }\n\n    // Assume folder is from cloud-documents\n    if (routes && 'folderLink' in routes) {\n        return renderRouteTemplate(routes, 'folderLink', { urn: id, linkSource: linkSource ?? '' });\n    } else {\n        // fallback to Adobe Home\n        const url = new URL(`/files/id/${id}`, baseUrls.ADOBE_HOME);\n        return url.href;\n    }\n}\n\nasync function projectAssetLink(\n    project: SAM.Project,\n    baseUrls: ExternalBaseURLs,\n    sam: Pick<UABSAMCore, 'getWorkfrontContext'>,\n    routes?: AssetBrowser.RouteTemplates,\n    linkSource?: LinkSource,\n): Promise<string> {\n    const { id } = project;\n\n    if (project.directorySubtype === SAM.ProjectDirectorySubtype.WF_PROJECT) {\n        const workfrontLink = await getWorkfrontAssetLink({ asset: project, sam });\n        if (workfrontLink) {\n            return workfrontLink;\n        }\n    }\n\n    // try to construct link based on route template first\n    if (routes && ('projectInviteLink' in routes || 'project' in routes)) {\n        const templateName = 'projectInviteLink' in routes ? 'projectInviteLink' : 'project';\n        return renderRouteTemplate(routes, templateName, { urn: id, linkSource: linkSource ?? '' });\n    }\n\n    // fallback to Adobe Home\n    const url = new URL(`/files/projects/${id}`, baseUrls.ADOBE_HOME);\n    return url.href;\n}\n\nfunction squirrelAssetLink(asset: SAM.AdobeAsset, baseUrls: ExternalBaseURLs): string {\n    const { id } = asset;\n\n    const url = new URL(`/id/${id}`, baseUrls.SQUIRREL);\n    return url.href;\n}\n\ntype GetWorkfrontLinkOptions = {\n    asset: SAM.AdobeAsset;\n    sam: Pick<UABSAMCore, 'getWorkfrontContext'>;\n};\n\nexport const getWorkfrontAssetLink = async ({\n    asset,\n    sam,\n}: GetWorkfrontLinkOptions): Promise<string | undefined> => {\n    try {\n        const workfrontContext = await sam.getWorkfrontContext();\n        const workfrontLink = await workfrontContext.getWorkfrontLink(asset.id);\n        if (typeof workfrontLink === 'string') {\n            return workfrontLink;\n        } else {\n            throw new Error('Did not receive proper response from esm-connector service');\n        }\n    } catch (e) {\n        console.error(e);\n        throw new Error('Error getting Workfront link');\n    }\n};\n\nexport async function constructAssetLink({\n    asset,\n    baseUrls,\n    locale,\n    routeTemplates,\n    linkSource,\n    dispatchEvent,\n    sam,\n}: {\n    asset: SAM.AdobeAsset;\n    baseUrls: ExternalBaseURLs;\n    locale: string;\n    routeTemplates?: AssetBrowser.RouteTemplates;\n    linkSource?: LinkSource;\n    dispatchEvent?: (event: CustomEvent) => void;\n    sam: Pick<UABSAMCore, 'getWorkfrontContext'>;\n}): Promise<string> {\n    let link: string;\n    const defaultLink = defaultAssetLink(asset, baseUrls, locale);\n\n    // cases when asset link handling derived from SAM asset\n    if (TypeOfAsset.isProject(asset)) {\n        // Project isFolder so we need to check it first.\n        link = await projectAssetLink(asset, baseUrls, sam, routeTemplates, linkSource);\n    } else if (asset.isFolder) {\n        link = folderAssetLink(asset, baseUrls, routeTemplates, linkSource);\n    } else if (TypeOfAsset.isLibrary(asset)) {\n        link = libraryAssetLink(asset, baseUrls, linkSource);\n    }\n    // generate default link for ReviewLinks since we dont' care about mimeTypes\n    else if (asset.isReviewLink) {\n        link = defaultLink;\n    } else {\n        link = getLinkConstructorByMimeType(asset.mediaType)(asset, baseUrls, locale);\n    }\n\n    // Wrapping this in a try catch in case isChildOfCSCProject fails.\n    let isChildOfCSCProject = false;\n    try {\n        isChildOfCSCProject = await asset.isChildOfCSCProject();\n    } catch (e) {\n        console.warn('Failed to check if asset is child of CSC project:', e);\n    }\n\n    // For CSC project asset open action, CSC project assets should use Workfront routing as default instead of opening to AH/AW.\n    // However, we only want to change the open action default route for non-compatible items. For example, a read-only PSDC belonging to a CSC project should still open in PS Web.\n    // For CSC project asset copy-link action, we want to change the link to Workfront, always.\n    if (isChildOfCSCProject && (link === defaultLink || linkSource === 'copy-link')) {\n        link = (await getWorkfrontAssetLink({ asset, sam })) ?? link;\n    }\n\n    if (dispatchEvent) {\n        // host may call this on the event to provide a different link that should be used\n        const setLink = (newLink: string) => {\n            link = newLink;\n        };\n\n        const event = new AssetLinkEvent({ asset, link, setLink });\n\n        dispatchEvent(event);\n    }\n\n    return link;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\n\nconst legacyExpressElementType = [\n    'application/vnd.adobe.theo.document+dcx',\n    'application/vnd.adobe.luca.document+dcx',\n    'application/vnd.adobe.luca.project+dcx',\n    'application/vnd.adobe.ginger.document+dcx',\n    'application/vnd.adobe.ginger.project+dcx',\n];\n\nconst betaExpressType = [\n    'application/vnd.adobe.hz.temp.page+dcx',\n    'document/vnd.adobe.expressdrawing+dcx',\n];\n\nexport const FIREFLY_GENERATIONS_MIMETYPES = {\n    // Refer to wiki for more details on the generation types\n    // https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=ACPC&title=Firefly+Generation+History+Module+and+Model+Mappings\n    [AssetBrowser.FireflyGenerationTypeValues.GenerationAll]: [\n        'application/vnd.adobe.firefly-generation-image+dcx',\n        'application/vnd.adobe.firefly-generation-video+dcx',\n        'application/vnd.adobe.firefly-generation-audio+dcx',\n        'application/vnd.adobe.firefly-generation-vector+dcx',\n    ],\n    [AssetBrowser.FireflyGenerationTypeValues.GenerationImage]: [\n        'application/vnd.adobe.firefly-generation-image+dcx',\n    ],\n    [AssetBrowser.FireflyGenerationTypeValues.GenerationVideo]: [\n        'application/vnd.adobe.firefly-generation-video+dcx',\n    ],\n    [AssetBrowser.FireflyGenerationTypeValues.GenerationAudio]: [\n        'application/vnd.adobe.firefly-generation-audio+dcx',\n    ],\n    [AssetBrowser.FireflyGenerationTypeValues.GenerationVector]: [\n        'application/vnd.adobe.firefly-generation-vector+dcx',\n    ],\n};\n\nexport const ADOBE_FILE_MIMETYPES: { [key in AssetBrowser.AdobeFileTypeValues]: string[] } = {\n    [AssetBrowser.AdobeFileTypeValues.Photoshop]: [\n        'document/vnd.adobe.psdc+dcx',\n        'document/vnd.adobe.cpsd+dcx',\n        'application/photoshop',\n        'application/vnd.adobe.photoshop',\n        'application/photoshop.large',\n        'document/vnd.adobe.cpsd.live+dcx',\n    ],\n    [AssetBrowser.AdobeFileTypeValues.Illustrator]: [\n        'document/vnd.adobe.illustrator+dcx',\n        'application/illustrator',\n    ],\n    [AssetBrowser.AdobeFileTypeValues.Express]: [\n        'application/vnd.adobe.hz.express+dcx',\n        'application/vnd.adobe.hztemp.page+dcx',\n        ...betaExpressType,\n        ...legacyExpressElementType,\n    ],\n    [AssetBrowser.AdobeFileTypeValues.Acrobat]: ['application/pdf'],\n    [AssetBrowser.AdobeFileTypeValues.InDesign]: [\n        'application/x-indesign',\n        'document/vnd.adobe.indesign+dcx',\n        'document/vnd.adobe.indesign.live+dcx',\n        // This is not a 'real' mimeType. Return value for Legacy InDesign files coming from SAM\n        // Set in SAM's get reviewLinkSourceType()\n        // See: https://git.corp.adobe.com/torq/acpl-model/blob/15c35cf98d8517c8b068ded49ecfcf6d0bff3c37/modules/sam-js/src/assets/AdobeAsset.ts#L763\n        'legacy-INDD',\n    ],\n    [AssetBrowser.AdobeFileTypeValues.Aero]: ['application/vnd.adobe.real+dcx'],\n    [AssetBrowser.AdobeFileTypeValues.XD]: [\n        'application/vnd.adobe.uxdesign.designspec+dcx',\n        'application/vnd.adobe.uxdesign.prototype+dcx',\n        'application/vnd.adobe.xd.sharedartifact+dcx',\n        'application/vnd.adobe.xd.cloudproject+dcx',\n    ],\n    [AssetBrowser.AdobeFileTypeValues.Concept]: [\n        'application/vnd.adobe.hz.aura+dcx', // concept\n        'application/vnd.adobe.firefly-template+dcx', // stylekit\n        ...FIREFLY_GENERATIONS_MIMETYPES[AssetBrowser.FireflyGenerationTypeValues.GenerationAll],\n    ],\n    [AssetBrowser.AdobeFileTypeValues.Squirrel]: ['application/vnd.adobe.hz.squirrel+dcx'],\n};\n\nexport const GENERIC_FILE_MIMETYPES: { [key in AssetBrowser.GenericFileTypeValues]: string[] } = {\n    [AssetBrowser.GenericFileTypeValues.Assets3d]: [\n        'model/gltf-binary',\n        'application/vnd.adobe.usdcx+dcx',\n        'application/vnd.adobe.usdcx.asset+dcx',\n    ],\n    [AssetBrowser.GenericFileTypeValues.Images]: [\n        'image/apng',\n        'image/avif',\n        'image/gif',\n        'image/jpeg',\n        'image/png',\n        'image/svg+xml',\n        'image/webp',\n    ],\n    [AssetBrowser.GenericFileTypeValues.Videos]: [\n        'video/quicktime',\n        'video/mp4',\n        'video/mpeg',\n        'video/mpg',\n        'video/x-f4v',\n        'video/x-flv',\n        'video/x-m4v',\n        'video/x-msvideo',\n        'video/x-ms-asf',\n        'video/x-ms-wmv',\n        'video/x-photoshop',\n        'video/x-quicktime',\n        'video/3gpp',\n        'video/x-matroska',\n    ],\n    [AssetBrowser.GenericFileTypeValues.Audio]: [\n        'audio/aac',\n        'audio/aacp',\n        'audio/aif',\n        'audio/m4a',\n        'audio/mp4a',\n        'audio/mpeg',\n        'audio/mp3',\n        'audio/mpeg3',\n        'audio/mpg',\n        'audio/wav',\n        'audio/wave',\n        'audio/x-aac',\n        'audio/x-mpeg',\n        'audio/x-wav',\n        'audio/x-aiff',\n    ],\n};\n\n// @ts-expect-error TODO: https://jira.corp.adobe.com/browse/CCXCD-14231\nexport const OTHER_MIMETYPES: { [key in AssetBrowser.OtherFileTypeValues]: string[] } = {\n    FOLDER: ['application/vnd.adobecloud.directory+json'],\n    ALL_FILES: [],\n};\n\n/**\n * BRANDS does not have a different mimetype from libraries, setting mimetype is needed as\n * clients rely on mimetype array to set the empty state for example projects.\n */\n\nexport const LIBRARIES_MIMETYPES: { [key in AssetBrowser.LibrariesAndBrandsTypeValues]: string[] } =\n    {\n        LIBRARIES: ['application/vnd.adobe.library+dcx'],\n        BRANDS: ['application/vnd.adobe.library+dcx'],\n    };\n\nexport const ALL_MIMETYPES = {\n    ...GENERIC_FILE_MIMETYPES,\n    ...ADOBE_FILE_MIMETYPES,\n    ...OTHER_MIMETYPES,\n    ...LIBRARIES_MIMETYPES,\n    ...FIREFLY_GENERATIONS_MIMETYPES,\n} as { [key in AssetBrowser.FileFilterTypeValues]: string[] };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { type SAM, AssetBrowser } from '@ccx-public/component-types';\nimport type { ICollectionItem, IEmptyProps } from '@csc/collection-view';\nimport { EmptyFilterView } from '@csc/collection-view';\nimport type { IFilter } from '@csc/collection-view/dist/src/types/IFilter';\nimport React from 'react';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport { ALL_MIMETYPES } from './filtering-type-enums';\n\n/**\n * Helper function for determining if a mime type is valid\n * @param assetMimeType MIME type pulled from an AdobeAsset\n * @param typeToMatch FileFilterTypeValues enum to match the asset mime type against\n **/\nexport const mimeTypeFilter = (\n    assetMimeType: string,\n    typeToMatch: AssetBrowser.FileFilterTypeValues,\n): boolean => {\n    if (typeToMatch === AssetBrowser.FileFilterTypeValues.AllFiles) {\n        return true;\n    }\n\n    const mimeTypes: string[] = ALL_MIMETYPES[typeToMatch];\n    return mimeTypes.includes(assetMimeType);\n};\n\n/** callback to determine if asset should be filtered or not */\nexport interface UIAssetFilterFn {\n    (asset: SAM.AdobeAsset): boolean;\n}\n\ninterface ConstructIFilterArgs {\n    filter: UIAssetFilterFn;\n    getFilterEmptyProps?: () => IEmptyProps;\n    isHiddenFilter?: boolean;\n}\n\n/**\n * @param filters Array of UIAssetFilterFns used to construct a CV IFilter function\n * @param emptyProps Optional IEmptyProps object for when the filter yields no results\n * @param isHiddenFilter Optional boolean for filters that shouldn't impact UI empty state (ex: documentExclusionFilter)\n **/\nexport const constructIFilter = ({\n    filter,\n    getFilterEmptyProps,\n    isHiddenFilter,\n}: ConstructIFilterArgs): IFilter => {\n    // TODO: now that we use simple filter fns, switch to using CV IFilter directly instead\n    // of UIAssetFilterFn, so there are less layers of indirection.\n    return {\n        filter: (elements: ICollectionItem[]) =>\n            elements.filter((element) =>\n                filter((element as BackedCollectionItem<SAM.AdobeAsset>).backingItem),\n            ),\n        getFilterEmptyProps: (): IEmptyProps => {\n            return (\n                getFilterEmptyProps?.() ?? {\n                    image: <EmptyFilterView />,\n                    titleId: 'empty.filter.title',\n                    subtitleId: 'empty.filter.subtitle',\n                }\n            );\n        },\n        isHiddenFilter,\n    };\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { hasAny, hasOnlyOne } from '@csc/common';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\n\n/**\n * Set of utilities to determine if a collection of elements contains only folders, only non-folders, or any folders.\n * Useful for determining visibility of certain UI elements or actions.\n */\n\n/**\n * Utility to determine if a collection of elements contains only folders\n * @param elements\n * @returns boolean\n */\nexport function hasOnlyFolders(elements: BackedCollectionItem<SAM.AdobeAsset>[]): boolean {\n    return hasAny(elements) && elements.every((e) => e.backingItem.isFolder);\n}\n\n/**\n * Utility to determine if a collection of elements has any folders\n * @param elements\n * @returns boolean\n */\nexport function hasAnyFolders(elements: BackedCollectionItem<SAM.AdobeAsset>[]): boolean {\n    return elements.some((e) => e.backingItem.isFolder);\n}\n\n/**\n * Utility to determine if a collection of elements has only non-folders\n * @param elements\n * @returns boolean\n */\nexport function hasOnlyNonFolders(elements: BackedCollectionItem<SAM.AdobeAsset>[]): boolean {\n    return hasAny(elements) && !hasAnyFolders(elements);\n}\n\n/**\n * Utility to return only the folders from a collection of elements\n * @param elements\n * @returns boolean\n */\nexport function selectedFolders(\n    elements: BackedCollectionItem<SAM.AdobeAsset>[],\n): BackedCollectionItem<SAM.AdobeAsset>[] {\n    return elements.filter((e) => e.backingItem.isFolder);\n}\n\n/**\n * Utility to determine if a collection of elements is only a single folder\n * @param elements\n * @returns boolean\n */\nexport function isSingleFolder(elements: BackedCollectionItem<SAM.AdobeAsset>[]): boolean {\n    return hasOnlyOne(elements) && hasOnlyFolders(elements);\n}\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M2.75 15a.75.75 0 0 1-.75-.75v-10C2 3.01 3.01 2 4.25 2h10a.75.75 0 0 1 0 1.5h-10a.751.751 0 0 0-.75.75v10a.75.75 0 0 1-.75.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.63 5H7.37A2.373 2.373 0 0 0 5 7.37v8.26A2.373 2.373 0 0 0 7.37 18h8.26A2.373 2.373 0 0 0 18 15.63V7.37A2.373 2.373 0 0 0 15.63 5zm.87 10.63c0 .48-.39.87-.87.87H7.37c-.48 0-.87-.39-.87-.87V7.37c0-.48.39-.87.87-.87H11v4.134a.4.4 0 0 0 .683.283l1.034-1.034a.4.4 0 0 1 .566 0l1.034 1.034a.4.4 0 0 0 .683-.283V6.5h.63c.48 0 .87.39.87.87v8.26z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"circle\", {\n  cx: \"4.125\",\n  cy: \"6\",\n  r: \".75\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.75 3H3.25C2.01 3 1 4.01 1 5.25v9.5C1 15.99 2.01 17 3.25 17H7a.75.75 0 0 0 0-1.5H3.25a.751.751 0 0 1-.75-.75V9H11a.75.75 0 0 0 0-1.5H2.5V5.25c0-.413.336-.75.75-.75h13.5c.414 0 .75.337.75.75v.979a.75.75 0 0 0 1.5 0V5.25C19 4.01 17.99 3 16.75 3z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M12.2 18.25c-.922 0-1.788-.36-2.44-1.01a3.425 3.425 0 0 1-1.01-2.44c0-.921.359-1.788 1.01-2.44l.11-.109a.75.75 0 0 1 1.06 1.062l-.11.109c-.367.367-.57.857-.57 1.378 0 .521.203 1.01.571 1.379.737.736 2.02.735 2.758 0l.111-.11a.75.75 0 1 1 1.056 1.064l-.11.108A3.424 3.424 0 0 1 12.2 18.25z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M17.6 13.968a.75.75 0 0 1-.53-1.281l.11-.109c.367-.367.57-.857.57-1.378 0-.521-.203-1.01-.571-1.379-.738-.737-2.022-.736-2.758 0l-.111.11a.75.75 0 1 1-1.056-1.064l.11-.108c1.297-1.3 3.572-1.301 4.875.002a3.425 3.425 0 0 1 1.011 2.44c0 .92-.359 1.787-1.01 2.439l-.11.109a.75.75 0 0 1-.53.219z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M12.8 14.95a.75.75 0 0 1-.53-1.28l2.4-2.4a.75.75 0 1 1 1.06 1.06l-2.4 2.4a.748.748 0 0 1-.53.22z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"56\",\n  height: \"55\",\n  fill: \"none\",\n  viewBox: \"0 0 56 55\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#B30B00\",\n  d: \"M9.9.5h36.2c5.5 0 9.9 4.4 9.9 9.9v34.2c0 5.5-4.4 9.9-9.9 9.9H9.9c-5.5 0-9.9-4.4-9.9-9.9V10.4C0 4.9 4.4.5 9.9.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#fff\",\n  d: \"M45 31.7c-2.6-2.7-9.7-1.6-11.4-1.4-2.5-2.4-4.2-5.3-4.8-6.3.9-2.7 1.5-5.4 1.6-8.3 0-2.5-1-5.2-3.8-5.2-1 0-1.9.6-2.4 1.4-1.2 2.1-.7 6.3 1.2 10.6-1.1 3.1-2.1 6.1-4.9 11.4-2.9 1.2-9 4-9.5 7-.2.9.1 1.8.8 2.5.7.6 1.6.9 2.5.9 3.7 0 7.3-5.1 9.8-9.4 2.1-.7 5.4-1.7 8.7-2.3 3.9 3.4 7.3 3.9 9.1 3.9 2.4 0 3.3-1 3.6-1.9.5-1 .2-2.1-.5-2.9zm-2.5 1.7c-.1.7-1 1.4-2.6 1-1.9-.5-3.6-1.4-5.1-2.6 1.3-.2 4.2-.5 6.3-.1.8.2 1.6.7 1.4 1.7zM25.8 12.8c.2-.3.5-.5.8-.5.9 0 1.1 1.1 1.1 2-.1 2.1-.5 4.2-1.2 6.2-1.5-4-1.2-6.8-.7-7.7zm-.2 19.4c.8-1.6 1.9-4.4 2.3-5.6.9 1.5 2.4 3.3 3.2 4.1 0 .1-3.1.7-5.5 1.5zm-5.9 4c-2.3 3.8-4.7 6.2-6 6.2-.2 0-.4-.1-.6-.2-.3-.2-.4-.5-.3-.9.3-1.4 2.9-3.3 6.9-5.1z\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"56\",\n  height: \"55\",\n  fill: \"none\",\n  viewBox: \"0 0 56 55\"\n}, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n  id: \"a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#fff\",\n  d: \"M0 .5h56v54H0z\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n  clipPath: \"url(#a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#1E3101\",\n  d: \"M46.086.5H9.914C4.438.5 0 4.939 0 10.414v34.172C0 50.061 4.438 54.5 9.914 54.5h36.172C51.56 54.5 56 50.061 56 44.586V10.414C56 4.939 51.56.5 46.086.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#99E83F\",\n  d: \"M25.243 32.47h-8.547l-1.707 5.667a.435.435 0 0 1-.162.247.435.435 0 0 1-.282.086h-4.329c-.246 0-.333-.136-.259-.407l7.368-21.28c.184-.651.308-1.318.37-1.992a.228.228 0 0 1 .01-.105.23.23 0 0 1 .055-.09.23.23 0 0 1 .09-.055.23.23 0 0 1 .104-.01h5.883c.172 0 .271.063.296.186L32.565 38.1c.073.247 0 .37-.223.37h-4.81a.343.343 0 0 1-.234-.06.342.342 0 0 1-.136-.199l-1.919-5.742zm-7.215-3.907h5.846c-.148-.493-.925-3.399-1.147-4.102l-.666-2.109a69.324 69.324 0 0 1-.61-2.035c-.185-.653-.352-1.252-.5-1.795h-.037a29.704 29.704 0 0 1-.777 2.96c-.346 1.11-.697 2.245-1.055 3.404-.357 1.16-.709 2.69-1.054 3.677zm17.04-8.875h3.939a.504.504 0 0 1 .302.105.504.504 0 0 1 .18.265c.087.162.149.337.184.518.049.222.086.888.111 1.148.024.259.037.536.037.832a8.949 8.949 0 0 1 2.46-2.094 6.677 6.677 0 0 1 3.364-.774.296.296 0 0 1 .135.013.295.295 0 0 1 .115.07.295.295 0 0 1 .071.116.296.296 0 0 1 .012.134v4.592c0 .173-.124.259-.37.259a8.744 8.744 0 0 0-2.364.108 9.117 9.117 0 0 0-1.925.61 4.742 4.742 0 0 0-1.382.851v11.664c0 .222-.098.333-.295.333h-4.24a.328.328 0 0 1-.15-.013.327.327 0 0 1-.207-.207.328.328 0 0 1-.014-.15V25.405c0-.542-.006-1.116-.018-1.72a91.373 91.373 0 0 0-.056-1.795c-.025-.592-.074-1.523-.148-1.943a.211.211 0 0 1 0-.109.212.212 0 0 1 .056-.094.212.212 0 0 1 .094-.055.214.214 0 0 1 .11 0z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"56\",\n  height: \"55\",\n  fill: \"none\",\n  viewBox: \"0 0 56 55\"\n}, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n  id: \"a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#fff\",\n  d: \"M0 .5h56v54H0z\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n  id: \"b\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#fff\",\n  d: \"M0 .5h56v54H0z\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n  clipPath: \"url(#a)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  clipPath: \"url(#b)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#300\",\n  d: \"M0 10.5C0 4.977 4.477.5 10 .5h36c5.523 0 10 4.477 10 10v34c0 5.523-4.477 10-10 10H10c-5.523 0-10-4.477-10-10v-34z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FF9A00\",\n  d: \"M27.453 32.803h-8.437l-1.753 5.405c-.073.219-.219.292-.438.292H12.59c-.256 0-.329-.11-.256-.365l7.304-21.073c.146-.366.293-.804.329-2.192 0-.182.11-.255.256-.255h5.807c.182 0 .255.036.292.182l8.327 23.374c.073.22.036.329-.22.329h-4.747c-.183 0-.292-.073-.402-.22l-1.826-5.477zm-7.122-4.53h5.734c-.694-2.41-2.155-6.829-2.885-9.458h-.037c-.584 2.483-1.862 6.5-2.812 9.459zm17.025 9.898V20.677c0-.219.11-.292.33-.292h4.491c.22 0 .292.037.292.292v17.494c0 .256-.073.329-.328.329h-4.42c-.219 0-.365-.073-.365-.329zM39.95 18.45c-1.716 0-2.848-1.17-2.848-2.85s1.205-2.848 2.885-2.848c1.753 0 2.812 1.205 2.812 2.849 0 1.716-1.169 2.849-2.849 2.849z\"\n})))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"56\",\n  height: \"55\",\n  fill: \"none\",\n  viewBox: \"0 0 56 55\"\n}, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n  id: \"a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#fff\",\n  d: \"M0 .5h56v54H0z\"\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n  id: \"b\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#fff\",\n  d: \"M0 .5h56v54H0z\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n  clipPath: \"url(#a)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  clipPath: \"url(#b)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#49021F\",\n  d: \"M0 10.5C0 4.977 4.477.5 10 .5h36c5.523 0 10 4.477 10 10v34c0 5.523-4.477 10-10 10H10c-5.523 0-10-4.477-10-10v-34z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#F36\",\n  d: \"M20.821 14.907V38.17c0 .256-.073.329-.292.329h-4.456c-.256 0-.329-.073-.329-.329V14.907c0-.256.11-.292.33-.292h4.455c.182 0 .292.073.292.292zm13.417 23.958c-5.405 0-9.532-3.031-9.532-9.24 0-5.259 3.908-9.605 10.591-9.605.292 0 .62 0 1.169.036v-7.194c0-.183.11-.256.255-.256h4.639c.146 0 .182.073.182.22V34.41c0 .876.073 1.972.146 2.666 0 .219-.036.292-.219.365-2.52 1.059-4.967 1.424-7.231 1.424zm2.228-4.529v-9.933c-.365-.11-.84-.146-1.352-.146-2.775 0-5.186 1.68-5.186 5.113 0 3.615 2.082 5.186 4.821 5.186.621 0 1.205-.073 1.717-.22z\"\n})))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"56\",\n  height: \"55\",\n  fill: \"none\",\n  viewBox: \"0 0 56 55\"\n}, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n  id: \"a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#fff\",\n  d: \"M0 .5h56v54H0z\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n  clipPath: \"url(#a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#001E36\",\n  d: \"M0 10.5C0 4.977 4.477.5 10 .5h36c5.523 0 10 4.477 10 10v34c0 5.523-4.477 10-10 10H10c-5.523 0-10-4.477-10-10v-34z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#31A8FF\",\n  d: \"M12.56 38.244V14.907c0-.183.073-.256.256-.256 1.497-.073 4.382-.11 7.158-.11 7.377 0 9.897 4.091 9.897 8.036 0 5.916-4.565 8.436-10.153 8.436h-2.081v7.195c0 .219-.073.292-.329.292h-4.456c-.182 0-.292-.073-.292-.256zm5.077-19.247v7.56c.62.037 1.022.037 2.045.037 2.849 0 5.186-.877 5.186-3.908 0-2.3-1.57-3.762-4.784-3.762-1.132 0-2.118.037-2.447.073zm25.966 6.1c-1.169-.585-3.031-1.06-4.675-1.06-1.716 0-2.3.658-2.3 1.279 0 .62.474 1.059 2.63 1.899 4.418 1.607 5.806 3.323 5.806 5.916 0 3.433-2.703 5.734-7.524 5.734-2.264 0-4.2-.402-5.332-.986-.182-.11-.219-.219-.219-.438v-3.945c0-.219.11-.292.256-.182 1.68 1.022 3.725 1.46 5.369 1.46 1.716 0 2.483-.474 2.483-1.278 0-.693-.584-1.205-2.74-2.008-4.126-1.534-5.514-3.25-5.514-5.88 0-2.849 2.301-5.588 7.158-5.588 2.155 0 3.835.256 4.748.73.22.11.22.256.22.475v3.652c0 .183-.11.33-.366.22z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 2\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 56 54\"\n}, props), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"DC/EC Logo Surface\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n  width: \"56\",\n  height: \"54\",\n  rx: \"9.91\",\n  ry: \"9.91\",\n  fill: \"#eb1000\",\n  \"data-name\": \"Outline no shadow\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"Outlined Mnemonics &amp; Logos\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"Firefly Mnemonic One Sparkle\",\n  fill: \"#fff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M21.57 37.57c0 .22-.1.32-.32.32h-4.57c-.18 0-.25-.13-.25-.32V13.94c0-.21.07-.29.28-.29h14.65c.25 0 .31.07.35.31l.41 3.99c.04.22-.07.32-.31.32H21.57v5.62h9.23c.21 0 .31.07.31.29v4.04c0 .22-.11.29-.29.29h-9.25v9.06z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M34.86 19.81c0-.21.1-.31.31-.31h4.55c.24 0 .31.06.31.3v17.74c0 .24-.07.34-.34.34h-4.46c-.25 0-.37-.11-.37-.35V19.8z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M38.56 15.5l2.26.51c.89.2 1.51-.86.89-1.53l-1.57-1.7a.899.899 0 0 1-.22-.83l.51-2.26c.2-.89-.87-1.5-1.54-.88l-1.7 1.57c-.22.21-.54.29-.83.22l-2.26-.51c-.89-.2-1.51.86-.89 1.53l1.57 1.7c.21.22.29.53.22.83l-.51 2.26c-.2.89.87 1.5 1.54.88l1.7-1.57c.22-.21.54-.29.83-.22z\"\n})))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"56\",\n  height: \"55\",\n  fill: \"none\",\n  viewBox: \"0 0 56 55\"\n}, props), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n  id: \"a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#fff\",\n  d: \"M0 .5h56v54H0z\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n  clipPath: \"url(#a)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#470137\",\n  d: \"M46.086.5H9.914C4.439.5 0 4.939 0 10.414v34.172C0 50.061 4.439 54.5 9.914 54.5h36.172c5.475 0 9.914-4.439 9.914-9.914V10.414C56 4.939 51.561.5 46.086.5z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FF61F6\",\n  d: \"M29.5 14.92L22.62 25.995l7.363 11.992a.384.384 0 0 1 .037.277c-.025.087-.111.143-.259.167h-5.254a.83.83 0 0 1-.44-.077.83.83 0 0 1-.337-.293c-.494-.962-.987-1.847-1.48-2.797a100.14 100.14 0 0 0-1.572-2.905 172.233 172.233 0 0 1-1.647-2.997h-.037c-.494.987-1.005 1.974-1.535 2.96-.531.987-1.056 1.968-1.573 2.942-.518.975-1.048 1.872-1.591 2.834a.524.524 0 0 1-.205.25.523.523 0 0 1-.313.083h-5.07a.15.15 0 0 1-.06-.007.152.152 0 0 1-.055-.03.15.15 0 0 1-.05-.111.368.368 0 0 1 .055-.26l7.141-11.658-6.956-11.484c-.074-.098-.086-.178-.037-.24a.269.269 0 0 1 .1-.072.27.27 0 0 1 .122-.02h5.217a.773.773 0 0 1 .333.055c.089.05.164.12.222.203.444.987.938 1.692 1.48 2.678.543.987 1.091 1.962 1.647 2.923a41.24 41.24 0 0 1 1.535 2.923h.037c.493-1.01.993-1.998 1.498-2.96.506-.962 1.024-1.93 1.554-2.904s1.042-1.66 1.536-2.622a.562.562 0 0 1 .148-.241.535.535 0 0 1 .296-.056h4.847a.212.212 0 0 1 .14.014.212.212 0 0 1 .1.098.212.212 0 0 1 .018.139.212.212 0 0 1-.073.12zm10.245 23.952a11.462 11.462 0 0 1-4.94-1.036 7.856 7.856 0 0 1-3.46-3.126 10.002 10.002 0 0 1-1.257-5.236 9.662 9.662 0 0 1 1.257-4.847 9.239 9.239 0 0 1 3.664-3.552 11.827 11.827 0 0 1 5.809-1.332c.123 0 .283.006.48.019.198.013.618.031.89.055v-6.546a.596.596 0 0 1 .113-.438.596.596 0 0 1 .39-.232h3.58a.67.67 0 0 1 .473.196.67.67 0 0 1 .196.473v21.088c0 .42.019.876.055 1.37.037.493.068.937.093 1.331a.383.383 0 0 1-.054.22.383.383 0 0 1-.168.15 16.972 16.972 0 0 1-3.57 1.11 20.075 20.075 0 0 1-3.551.333zm2.357-4.588v-10.1a5.146 5.146 0 0 0-.71-.112 7.367 7.367 0 0 0-.76-.037 5.713 5.713 0 0 0-2.59.592 4.762 4.762 0 0 0-2.062 1.897 4.761 4.761 0 0 0-.638 2.728 6.527 6.527 0 0 0 .388 2.368 4.497 4.497 0 0 0 1.036 1.628c.44.425.972.741 1.554.925a6.086 6.086 0 0 0 1.905.296c.346 0 .667-.012.963-.037.308-.02.614-.07.913-.148z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"ICONS\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M12.658 19.03a.625.625 0 0 1-.611-.757l.126-.584-.401-.442a.624.624 0 0 1-.078-.732.618.618 0 0 1 .673-.298l.584.126.442-.401a.624.624 0 0 1 1.03.595l-.126.583.401.442a.625.625 0 0 1-.595 1.031l-.583-.126-.442.401a.625.625 0 0 1-.42.162z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.766 15.816a.625.625 0 0 1-.61-.757l.3-1.395-.958-1.058a.624.624 0 0 1-.078-.733.618.618 0 0 1 .673-.298l1.395.302 1.058-.96a.624.624 0 0 1 1.03.595l-.301 1.396.959 1.058a.625.625 0 0 1-.595 1.03l-1.395-.3-1.058.958a.625.625 0 0 1-.42.162z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M12.476 12.22a.75.75 0 0 1-.38-.104l-2.477-1.458a.75.75 0 0 1-.369-.646v-5a.75.75 0 0 1 1.5 0v4.571l2.107 1.24a.75.75 0 0 1-.381 1.397z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M17.64 9.06a.75.75 0 0 1-.578-.57 7.287 7.287 0 0 0-.428-1.308.75.75 0 1 1 1.375-.6c.22.507.395 1.038.517 1.58a.75.75 0 0 1-.886.898zM15.45 5.123a.75.75 0 0 1-.372-.2 7.23 7.23 0 0 0-1.067-.868c-.342-.23-.459-.706-.234-1.05.227-.345.665-.457 1.012-.235l.06.04c.458.306.892.658 1.284 1.045a.751.751 0 0 1-.683 1.268z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M10 18.75c-4.825 0-8.75-3.925-8.75-8.75S5.175 1.25 10 1.25a8.81 8.81 0 0 1 1.847.195.751.751 0 0 1-.317 1.467A7.277 7.277 0 0 0 10 2.75c-3.998 0-7.25 3.252-7.25 7.25s3.252 7.25 7.25 7.25a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.876 4.84h-.001l-5.749-3.319a2.252 2.252 0 0 0-2.251 0l-5.751 3.32A2.26 2.26 0 0 0 2 6.79v6.64c0 .801.432 1.548 1.125 1.948l5.749 3.32a2.248 2.248 0 0 0 2.251 0l5.75-3.32A2.256 2.256 0 0 0 18 13.43V6.79c0-.8-.43-1.548-1.124-1.95zm-7.25-2.02a.739.739 0 0 1 .749 0l5.285 3.052L10 8.994l-5.664-3.12 5.29-3.054zM3.875 14.08a.753.753 0 0 1-.375-.65V7.126l5.75 3.168v6.889l-5.375-3.104zm12.25 0l-5.375 3.102v-6.889l5.75-3.172v6.309a.753.753 0 0 1-.375.65z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M10 15.123a.888.888 0 0 1-.627-.228.956.956 0 0 1 0-1.285.873.873 0 0 1 .626-.234c.237-.01.466.08.633.247a.86.86 0 0 1 .242.627.88.88 0 0 1-.228.639.862.862 0 0 1-.647.234z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M10 11.75a.75.75 0 0 1-.75-.75V7a.75.75 0 0 1 1.5 0v4a.75.75 0 0 1-.75.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.733 18H3.267c-.8 0-1.523-.41-1.933-1.098s-.427-1.518-.046-2.222L8.02 2.232a2.248 2.248 0 0 1 3.958 0l6.733 12.448c.381.704.364 1.535-.046 2.222S17.534 18 16.733 18zM10 2.553a.734.734 0 0 0-.66.392L2.607 15.393a.737.737 0 0 0 .016.74c.065.111.259.367.644.367h13.466a.737.737 0 0 0 .644-.366.737.737 0 0 0 .016-.741L10.66 2.945a.734.734 0 0 0-.66-.392z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"rect\", {\n  x: \"2.25\",\n  y: \"2.25\",\n  width: \"3.5\",\n  height: \"3.5\",\n  rx: \"1\",\n  ry: \"1\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n  x: \"8.25\",\n  y: \"2.25\",\n  width: \"3.5\",\n  height: \"3.5\",\n  rx: \"1\",\n  ry: \"1\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n  x: \"14.25\",\n  y: \"2.25\",\n  width: \"3.5\",\n  height: \"3.5\",\n  rx: \"1\",\n  ry: \"1\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n  x: \"2.25\",\n  y: \"8.25\",\n  width: \"3.5\",\n  height: \"3.5\",\n  rx: \"1\",\n  ry: \"1\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n  x: \"8.25\",\n  y: \"8.25\",\n  width: \"3.5\",\n  height: \"3.5\",\n  rx: \"1\",\n  ry: \"1\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n  x: \"14.25\",\n  y: \"8.25\",\n  width: \"3.5\",\n  height: \"3.5\",\n  rx: \"1\",\n  ry: \"1\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n  x: \"2.25\",\n  y: \"14.25\",\n  width: \"3.5\",\n  height: \"3.5\",\n  rx: \"1\",\n  ry: \"1\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n  x: \"8.25\",\n  y: \"14.25\",\n  width: \"3.5\",\n  height: \"3.5\",\n  rx: \"1\",\n  ry: \"1\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n  x: \"14.25\",\n  y: \"14.25\",\n  width: \"3.5\",\n  height: \"3.5\",\n  rx: \"1\",\n  ry: \"1\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"ICONS\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M17.176 1.589a2.252 2.252 0 0 0-1.867-.466l-7 1.4A2.257 2.257 0 0 0 6.5 4.73v8.997c-.85-.325-1.95-.291-3.026.188C1.65 14.728.7 16.438 1.31 17.81c.31.692.986 1.181 1.857 1.341.212.04.432.058.656.058.6 0 1.232-.138 1.83-.404.823-.367 1.505-.942 1.92-1.618.281-.458.426-.942.426-1.408V7.15l8.5-1.7v6.276c-.85-.325-1.95-.291-3.026.188-1.824.814-2.774 2.524-2.163 3.896.31.692.986 1.181 1.857 1.341.212.04.432.058.656.058.6 0 1.232-.138 1.83-.404.823-.367 1.505-.942 1.92-1.618.281-.458.426-.942.426-1.408V3.33c0-.677-.3-1.311-.824-1.741zM5.043 17.435c-.542.24-1.127.328-1.605.24-.22-.04-.614-.155-.757-.477-.226-.508.295-1.42 1.403-1.914a3.034 3.034 0 0 1 1.221-.277c.57 0 1.004.203 1.142.513a.63.63 0 0 1 .053.245c.005.25-.116.493-.205.637-.254.414-.71.791-1.252 1.033zM16.5 13.767c.005.247-.116.491-.205.635-.254.414-.71.791-1.252 1.033-.541.24-1.126.329-1.605.24-.22-.04-.614-.155-.757-.477-.226-.508.295-1.42 1.403-1.914a3.034 3.034 0 0 1 1.221-.277c.57 0 1.004.203 1.142.513.035.08.051.162.053.247zm0-9.846L8 5.62v-.892c0-.355.254-.665.603-.735l7-1.4a.75.75 0 0 1 .897.736v.59z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13.001 12.747a.75.75 0 0 1-.417-1.374c.411-.274.666-.802.666-1.376s-.255-1.101-.666-1.376a.75.75 0 0 1 .832-1.248c.835.558 1.334 1.538 1.334 2.624s-.499 2.066-1.334 2.624a.749.749 0 0 1-.415.126z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.251 14.247a.751.751 0 0 1-.418-1.374c.874-.583 1.417-1.686 1.417-2.876 0-1.191-.543-2.293-1.416-2.876a.75.75 0 0 1 .832-1.248c1.285.857 2.084 2.438 2.084 4.124 0 1.686-.798 3.266-2.083 4.124a.752.752 0 0 1-.416.126z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9.248 18.337c-.454 0-.9-.178-1.235-.514L5.409 15.22a.755.755 0 0 0-.53-.22H3.25C2.01 15 1 13.99 1 12.75v-5.5C1 6.01 2.01 5 3.25 5h1.629c.197 0 .39-.08.53-.22l2.604-2.603a1.741 1.741 0 0 1 1.907-.38c.656.272 1.08.907 1.08 1.617v13.172c0 .71-.424 1.345-1.08 1.616-.218.09-.446.135-.672.135zM3.25 6.5a.751.751 0 0 0-.75.75v5.5c0 .413.337.75.75.75h1.629c.592 0 1.172.24 1.59.66l2.604 2.603c.103.101.215.079.273.053a.237.237 0 0 0 .154-.23V3.414a.237.237 0 0 0-.154-.23.237.237 0 0 0-.273.053L6.47 5.841c-.42.419-1 .659-1.591.659H3.25z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"ICONS\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M2.75 11.75A.75.75 0 0 1 2 11V8.5a.75.75 0 0 1 1.5 0V11a.75.75 0 0 1-.75.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.75 12.75A.75.75 0 0 1 16 12V7.5a.75.75 0 0 1 1.5 0V12a.75.75 0 0 1-.75.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.25 16.5a.75.75 0 0 1-.75-.75v-12a.75.75 0 0 1 1.5 0v12a.75.75 0 0 1-.75.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9.75 14.5a.75.75 0 0 1-.75-.75v-8a.75.75 0 0 1 1.5 0v8a.75.75 0 0 1-.75.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13.25 19a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0v16.5a.75.75 0 0 1-.75.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"ICONS\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M10.007 19c-.084 0-.168-.002-.253-.004A8.186 8.186 0 0 1 2 10.685V3.25c0-1.24 1.01-2.25 2.25-2.25H15.75C16.99 1 18 2.01 18 3.25l-.003 7.99a7.955 7.955 0 0 1-2.516 5.587A7.947 7.947 0 0 1 10.007 19zM4.25 2.5a.751.751 0 0 0-.75.75v7.445a6.688 6.688 0 0 0 6.32 6.802c1.706.052 3.367-.573 4.632-1.763s1.991-2.8 2.044-4.537L16.5 11V3.25a.751.751 0 0 0-.75-.75H4.251z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M14.25 12h-5.5a.75.75 0 0 1-.658-1.11l2.75-5.038a.75.75 0 0 1 1.316 0l2.75 5.039A.748.748 0 0 1 14.25 12zm-4.236-1.5h2.972l-1.485-2.724-1.487 2.724z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M5.749 12a.75.75 0 0 1-.657-1.11l1.981-3.628a.749.749 0 1 1 1.317.718l-1.982 3.63a.75.75 0 0 1-.659.39z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.34 5.296l-3.62-3.622a2.266 2.266 0 0 0-1.591-.66H5.25C4.01 1.015 3 2.025 3 3.265v12.484c0 1.24 1.01 2.25 2.25 2.25h9.5c1.24 0 2.25-1.01 2.25-2.25V6.887c0-.6-.234-1.166-.66-1.591zm-1.06 1.06c.046.047.074.104.106.159H12.25a.751.751 0 0 1-.75-.75V2.628c.055.033.114.06.16.106l3.62 3.622zm-.53 10.142h-9.5a.751.751 0 0 1-.75-.75V3.265c0-.413.337-.75.75-.75H10v3.25c0 1.24 1.01 2.25 2.25 2.25h3.25v7.733c0 .413-.337.75-.75.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13 11.498H7a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13 14.498H7a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.25 7h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M11.916 7h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M8.584 7h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M5.25 7h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.25 14.5h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M11.916 14.5h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M8.584 14.5h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M5.25 14.5h-.5a.75.75 0 0 1 0-1.5h.5a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.75 17H3.25C2.01 17 1 15.99 1 14.75v-9.5C1 4.01 2.01 3 3.25 3h13.5C17.99 3 19 4.01 19 5.25v9.5c0 1.24-1.01 2.25-2.25 2.25zM3.25 4.5a.751.751 0 0 0-.75.75v9.5c0 .413.336.75.75.75h13.5c.414 0 .75-.337.75-.75v-9.5a.751.751 0 0 0-.75-.75H3.25z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.75 5h-5.964a.752.752 0 0 1-.567-.259L8.516 2.776A2.25 2.25 0 0 0 6.816 2H3.25C2.01 2 1 3.01 1 4.25v10.5C1 15.99 2.01 17 3.25 17h13.5c1.24 0 2.25-1.01 2.25-2.25v-7.5C19 6.01 17.99 5 16.75 5zM3.25 3.5h3.565c.218 0 .424.095.567.259L8.458 5H2.5v-.75c0-.413.336-.75.75-.75zM17.5 14.75c0 .413-.336.75-.75.75H3.25a.751.751 0 0 1-.75-.75V6.5h14.25c.414 0 .75.337.75.75v7.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Path 1005062\",\n  d: \"M14.5 7.521a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.75 3H3.25C2.01 3 1 4.01 1 5.25v9.5C1 15.99 2.01 17 3.25 17h13.5c1.24 0 2.25-1.01 2.25-2.25v-9.5C19 4.01 17.99 3 16.75 3zM3.25 4.5h13.5c.413 0 .75.337.75.75v8.21l-1.91-1.908a2.253 2.253 0 0 0-3.18 0l-1.232 1.231a.253.253 0 0 1-.355.001L7.591 9.552c-.85-.85-2.332-.85-3.182 0L2.5 11.46V5.25c0-.413.337-.75.75-.75zm0 11a.751.751 0 0 1-.75-.75v-1.168l2.97-2.97a.75.75 0 0 1 1.06 0l3.234 3.234c.681.68 1.792.68 2.473-.001l1.233-1.233a.75.75 0 0 1 1.06 0l2.701 2.701a.738.738 0 0 1-.481.187H3.25z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"circle\", {\n  cx: \"16\",\n  cy: \"8\",\n  r: \".75\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M11.5 9.875c-.758 0-1.375-.617-1.375-1.375s.617-1.375 1.375-1.375 1.375.617 1.375 1.375-.617 1.375-1.375 1.375zm0-1.75a.376.376 0 0 0 0 .75.376.376 0 0 0 0-.75z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M15.75 11H4.995l5.718-6.634c.782-.908.73-2.24-.118-2.97l-.323-.277a1.951 1.951 0 0 0-1.54-.451 2.24 2.24 0 0 0-1.414.771L1.44 8.259c-.782.908-.729 2.24.118 2.97l.323.278c.183.158.39.276.613.355A2.228 2.228 0 0 0 2 13.25v3A2.753 2.753 0 0 0 4.75 19h10.5A2.753 2.753 0 0 0 18 16.25v-3c0-1.24-1.01-2.25-2.25-2.25zM2.575 9.24l5.88-6.822a.749.749 0 0 1 .54-.267c.086 0 .2.02.298.104l.323.277c.217.187.2.578-.038.854l-5.88 6.821a.749.749 0 0 1-.467.263.483.483 0 0 1-.372-.099l-.322-.278c-.217-.187-.2-.578.038-.854zM16.5 16.25c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25v-3a.75.75 0 0 1 .75-.75h11.5a.75.75 0 0 1 .75.75v3z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M11.5 15.5h-3a.75.75 0 0 1 0-1.5h3a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M14.627 5.947a.625.625 0 0 1-.6-.45l-.756-2.592a.625.625 0 0 1 .425-.776l2.592-.756a.625.625 0 0 1 .775.425l.756 2.592a.625.625 0 0 1-.424.775l-2.592.757a.634.634 0 0 1-.176.025zm.019-2.793l.406 1.392 1.392-.406-.406-1.392-1.392.406z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9 1.25C4.727 1.25 1.25 4.727 1.25 9S4.727 16.75 9 16.75c.297 0 .59-.018.879-.05a.75.75 0 0 0 .661-.829.761.761 0 0 0-.83-.661 6.215 6.215 0 0 1-4.591-1.32c1.09-.806 2.804-1.268 4.462-1.132a.749.749 0 1 0 .123-1.494c-2.116-.177-4.259.44-5.645 1.549A6.212 6.212 0 0 1 2.75 9 6.257 6.257 0 0 1 9 2.75a6.257 6.257 0 0 1 6.242 6.557.75.75 0 0 0 .711.787c.388.042.766-.295.787-.711.007-.127.01-.255.01-.383 0-4.273-3.477-7.75-7.75-7.75z\",\n  fill: \"#DBDBDB\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9.047 10.233a2.86 2.86 0 0 1-1.595-.45 3.095 3.095 0 0 1-1.072-1.17 3.398 3.398 0 0 1-.386-1.622 3.18 3.18 0 0 1 1.452-2.718 2.891 2.891 0 0 1 3.095-.005c.453.294.822.694 1.074 1.163a3.25 3.25 0 0 1 .39 1.581 3.398 3.398 0 0 1-.385 1.607c-.249.477-.619.882-1.07 1.174-.453.29-.97.44-1.503.44zm-.038-1.5h.01c.223.01.505-.065.72-.202.23-.149.422-.359.551-.606.147-.28.22-.595.216-.91a1.769 1.769 0 0 0-.21-.871 1.692 1.692 0 0 0-.565-.614 1.385 1.385 0 0 0-1.472.003 1.696 1.696 0 0 0-.765 1.456c-.005.338.07.65.215.93.129.244.318.451.55.6.22.14.475.214.738.214h.012z\",\n  fill: \"#DBDBDB\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13.457 19.645A1.46 1.46 0 0 1 12 18.19v-6.085c0-.591.352-1.119.898-1.345a1.447 1.447 0 0 1 1.584.313l4.16 4.149c.423.42.547 1.055.314 1.618a1.453 1.453 0 0 1-1.34.911h-1.651c-.028 0-.02-.001-.023-.002l-1.453 1.467c-.28.281-.652.43-1.032.43zm-.033-7.51l.075 5.986 1.432-1.484c.382-.387.873-.387 1.034-.387h1.65l-4.191-4.115z\",\n  fill: \"#DBDBDB\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  width: \"20\",\n  height: \"20\",\n  viewBox: \"0 0 20 20\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9 1.25C4.727 1.25 1.25 4.727 1.25 9S4.727 16.75 9 16.75c.297 0 .59-.018.879-.05a.75.75 0 0 0 .661-.829.761.761 0 0 0-.83-.661 6.215 6.215 0 0 1-4.591-1.32c1.09-.806 2.804-1.268 4.462-1.132a.749.749 0 1 0 .123-1.494c-2.116-.177-4.259.44-5.645 1.549A6.212 6.212 0 0 1 2.75 9 6.257 6.257 0 0 1 9 2.75a6.257 6.257 0 0 1 6.242 6.557.75.75 0 0 0 .711.787c.388.042.766-.295.787-.711.007-.127.01-.255.01-.383 0-4.273-3.477-7.75-7.75-7.75z\",\n  fill: \"#292929\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9.047 10.233a2.86 2.86 0 0 1-1.595-.45 3.095 3.095 0 0 1-1.072-1.17 3.398 3.398 0 0 1-.386-1.622 3.18 3.18 0 0 1 1.452-2.718 2.891 2.891 0 0 1 3.095-.005c.453.294.822.694 1.074 1.163a3.25 3.25 0 0 1 .39 1.581 3.398 3.398 0 0 1-.385 1.607c-.249.477-.619.882-1.07 1.174-.453.29-.97.44-1.503.44zm-.038-1.5h.01c.223.01.505-.065.72-.202.23-.149.422-.359.551-.606.147-.28.22-.595.216-.91a1.769 1.769 0 0 0-.21-.871 1.692 1.692 0 0 0-.565-.614 1.385 1.385 0 0 0-1.472.003 1.696 1.696 0 0 0-.765 1.456c-.005.338.07.65.215.93.129.244.318.451.55.6.22.14.475.214.738.214h.012z\",\n  fill: \"#292929\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13.457 19.645A1.46 1.46 0 0 1 12 18.19v-6.085c0-.591.352-1.119.898-1.345a1.447 1.447 0 0 1 1.584.313l4.16 4.149c.423.42.547 1.055.314 1.618a1.453 1.453 0 0 1-1.34.911h-1.651c-.028 0-.02-.001-.023-.002l-1.453 1.467c-.28.281-.652.43-1.032.43zm-.033-7.51l.075 5.986 1.432-1.484c.382-.387.873-.387 1.034-.387h1.65l-4.191-4.115z\",\n  fill: \"#292929\"\n})));","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport React from 'react';\n\nconst IconSquirrel = ({ width = '20px', height = '20px' }: { width: string; height: string }) => {\n    return (\n        <Icon slot=\"icon\" size=\"S\">\n            <svg\n                width={width}\n                height={height}\n                viewBox=\"0 0 400 400\"\n                fill=\"none\"\n                xmlns=\"http://www.w3.org/2000/svg\"\n            >\n                <rect width=\"400\" height=\"400\" rx=\"80\" fill=\"#000057\" />\n                <path\n                    d=\"M321.671 259.907L300.955 247.935C295.695 244.894 289.12 248.694 289.12 254.776V278.718C289.12 284.797 295.695 288.596 300.955 285.559L321.671 273.588C326.931 270.547 326.931 262.948 321.671 259.91V259.907Z\"\n                    fill=\"#E40880\"\n                />\n                <path\n                    d=\"M320.957 195.406L282.14 172.977C271.616 166.894 258.464 174.497 258.464 186.658V231.521C258.464 243.682 271.616 251.284 282.14 245.202L320.957 222.773C331.481 216.69 331.481 201.488 320.957 195.41V195.406Z\"\n                    fill=\"#E40880\"\n                />\n                <path\n                    d=\"M257.812 248.591C252.363 243.362 250.706 235.285 250.323 229.021C250.023 224.088 245.351 220.612 240.556 221.797C195.824 232.864 162.658 273.291 162.658 321.484C162.658 330.208 169.725 337.282 178.442 337.282H249.471C266.904 337.282 281.039 323.135 281.039 305.686V263.082C281.039 258.812 277.649 255.321 273.384 255.187C268.68 255.04 262.95 253.52 257.812 248.587V248.591Z\"\n                    fill=\"#E40880\"\n                />\n                <path\n                    d=\"M163.451 278.437C169.903 263.168 178.584 252.144 185.485 244.948C191.124 239.068 194.269 231.232 194.269 223.08V178.545C194.269 144.409 175.928 112.907 146.254 96.074L99.4541 69.533C88.934 63.5652 75.8884 71.1721 75.8884 83.2774V226.054C75.8884 260.19 94.2296 291.691 123.904 308.524L155.263 326.309C154.797 324.074 152.883 303.453 163.455 278.437H163.451Z\"\n                    fill=\"#E40880\"\n                />\n            </svg>\n        </Icon>\n    );\n};\n\nexport default IconSquirrel;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport type { RS2IconProps } from '@ccx-public/spectrum-wrapper/dist/Icon/utils';\n\nexport default function IconVector(props: RS2IconProps) {\n    return (\n        <Icon {...props}>\n            <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\">\n                <path d=\"M11.9002 9.9883V6.8254C11.9002 6.53556 11.665 6.3004 11.3752 6.3004C11.0854 6.3004 10.8502 6.53556 10.8502 6.8254V9.98834C10.4531 10.1392 10.139 10.4533 9.98814 10.8504H4.01229C3.86143 10.4533 3.54732 10.1392 3.1502 9.9883V4.71245C3.54732 4.56158 3.86139 4.24752 4.01225 3.85039H6.1252C6.41504 3.85039 6.6502 3.61523 6.6502 3.32539C6.6502 3.03555 6.41504 2.80039 6.1252 2.80039H4.01229C3.79919 2.23942 3.26009 1.83789 2.6252 1.83789C1.80488 1.83789 1.1377 2.50507 1.1377 3.32539C1.1377 3.96028 1.53922 4.49933 2.1002 4.71245V9.98834C1.53922 10.2014 1.1377 10.7405 1.1377 11.3754C1.1377 12.1957 1.80488 12.8629 2.6252 12.8629C3.26008 12.8629 3.79914 12.4614 4.01225 11.9004H9.98815C10.2013 12.4614 10.7403 12.8629 11.3752 12.8629C12.1955 12.8629 12.8627 12.1957 12.8627 11.3754C12.8627 10.7405 12.4612 10.2014 11.9002 9.9883ZM2.6252 2.7129C2.96289 2.7129 3.2377 2.9877 3.2377 3.3254C3.2377 3.66309 2.96289 3.9379 2.6252 3.9379C2.2875 3.9379 2.0127 3.66309 2.0127 3.3254C2.0127 2.9877 2.2875 2.7129 2.6252 2.7129ZM2.6252 11.9879C2.2875 11.9879 2.0127 11.7131 2.0127 11.3754C2.0127 11.0377 2.2875 10.7629 2.6252 10.7629C2.96289 10.7629 3.2377 11.0377 3.2377 11.3754C3.2377 11.7131 2.96289 11.9879 2.6252 11.9879ZM11.3752 11.9879C11.0375 11.9879 10.7627 11.7131 10.7627 11.3754C10.7627 11.0377 11.0375 10.7629 11.3752 10.7629C11.7129 10.7629 11.9877 11.0377 11.9877 11.3754C11.9877 11.7131 11.7129 11.9879 11.3752 11.9879Z\" />\n                <path d=\"M7.18955 7.64473C7.09931 7.64473 7.00908 7.62149 6.92705 7.57432C6.72948 7.46016 6.62831 7.23184 6.67617 7.00899L6.81835 6.35137L6.36649 5.85303C6.21337 5.6835 6.1867 5.43536 6.30087 5.2378C6.41503 5.04024 6.64061 4.94248 6.86688 4.98692L7.52382 5.12979L8.02215 4.67793C8.19169 4.52412 8.43914 4.49883 8.63739 4.61231C8.83495 4.72647 8.93612 4.95479 8.88827 5.17764L8.74609 5.83525L9.19794 6.33359C9.35107 6.50312 9.37773 6.75127 9.26357 6.94883C9.14941 7.14639 8.92314 7.24551 8.69756 7.19971L8.03994 7.05684L7.54228 7.5087C7.44316 7.59825 7.31669 7.64473 7.18955 7.64473Z\" />\n                <path d=\"M10.1067 5.38072C9.9813 5.38072 9.85484 5.34824 9.74033 5.28194C9.46416 5.12232 9.32402 4.80581 9.39136 4.4941L9.6788 3.16314L8.76416 2.15449C8.54985 1.91797 8.51328 1.57344 8.6729 1.29727C8.83183 1.0211 9.14629 0.880277 9.4604 0.948289L10.7914 1.23574L11.8003 0.321089C12.0362 0.106784 12.3811 0.0695231 12.6576 0.22983C12.9337 0.389451 13.0742 0.705956 13.0065 1.01767L12.7191 2.34898L13.6334 3.35728C13.8477 3.59346 13.8846 3.93765 13.7254 4.21416C13.5657 4.49033 13.2479 4.63081 12.9372 4.56347L11.6062 4.27603L10.5976 5.19067C10.4591 5.31611 10.2838 5.38072 10.1067 5.38072ZM10.2083 2.18389L10.4954 2.5004C10.6977 2.72394 10.7808 3.03326 10.7175 3.32823L10.627 3.74659L10.9435 3.45948C11.1663 3.25782 11.475 3.17476 11.7713 3.23732L12.1893 3.32789L11.9022 3.01138C11.6992 2.78648 11.6165 2.47682 11.6807 2.18219L11.771 1.7652L11.4541 2.05231C11.2313 2.25465 10.9216 2.33805 10.6266 2.27447L10.2083 2.18389Z\" />\n            </svg>\n        </Icon>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport IconAcrobat from '@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_AdobeAcrobatPDF.svg';\nimport IconAero from '@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_Aero.svg';\nimport IconIllustrator from '@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_Illustrator.svg';\nimport IconInDesign from '@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_InDesign.svg';\nimport IconPhotoshop from '@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_Photoshop.svg';\nimport IconAdobeFirefly from '@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_AdobeFirefly.svg';\nimport IconXD from '@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_XD.svg';\nimport IconAIGenClockPending from '@a4u/a4u-firefly-s2/assets/svg/S2_Icon_AIGenClockPending_20_N.svg';\nimport IconAssets3d from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_3D_20_N.svg';\nimport IconAlertTriangle from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_AlertTriangle_20_N.svg';\nimport IconAllFiles from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_AppsAll_20_N.svg';\nimport IconMusic from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_MusicNote_20_N.svg';\nimport IconSoundEffect from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_VolumeTwo_20_N.svg';\nimport IconAudio from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_AudioWave_20_N.svg';\nimport IconBrand from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_Brand_20_N.svg';\nimport IconLibrary from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_CCLibrary_20_N.svg';\nimport IconOffice from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_FileText_20_N.svg';\nimport IconVideo from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_Filmstrip_20_N.svg';\nimport IconFolder from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_Folder_20_N.svg';\nimport IconImage from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_Image_20_N.svg';\nimport IconProject from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_Project_20_N.svg';\nimport IconReviewLink from '@a4u/a4u-s2-icon-global-set/assets/svg/S2_Icon_ReviewLink_20_N.svg';\n// need to use a modified version for now.  See https://jira.corp.adobe.com/browse/CCXCD-13292\nimport React from 'react';\nimport IconExpressPng from '../svgs/B_app_AdobeExpress.png';\nimport IconLceDark from '../svgs/LceBadge_darkUI.svg';\nimport IconLceLight from '../svgs/LceBadge_lightUI.svg';\nimport IconSquirrel from '../svgs/SquirrelIcon';\nimport IconBoards from '../svgs/IconBoards';\nimport IconVector from '../svgs/IconVector';\n\nfunction IconExpress({ width, height, ...rest }: { width: string; height: string }) {\n    // eslint-disable-next-line jsx-a11y/alt-text -- TODO: Add alt text\n    return <img src={IconExpressPng as string} width={width} height={height} {...rest} />;\n}\n\nfunction IconFirefly({\n    width = '20',\n    height = '20',\n    className,\n}: {\n    width?: string;\n    height?: string;\n    className?: string;\n}) {\n    return (\n        <svg\n            className={className}\n            width={width}\n            height={height}\n            viewBox=\"0 0 20 20\"\n            fill=\"none\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n        >\n            <g clipPath=\"url(#clip0_1178_26689)\">\n                <path\n                    fillRule=\"evenodd\"\n                    clipRule=\"evenodd\"\n                    d=\"M3.18536 0H14.8146C16.5739 0 18 1.39679 18 3.11981V13.8802C18 15.6032 16.5739 17 14.8146 17H3.18536C1.42613 17 0 15.6032 0 13.8802V3.11981C0 1.39679 1.42613 0 3.18536 0ZM6.83054 12.9242C6.90125 12.9242 6.93339 12.8927 6.93339 12.8235V9.97125H9.90661C9.96446 9.97125 9.99982 9.94921 9.99982 9.87995V8.6081C9.99982 8.53884 9.96768 8.5168 9.90018 8.5168H6.93339V6.74754H10.2248C10.302 6.74754 10.3373 6.71606 10.3245 6.6468L10.1927 5.39069C10.1798 5.31514 10.1605 5.2931 10.0802 5.2931H5.37125C5.30375 5.2931 5.28125 5.31828 5.28125 5.3844V12.8235C5.28125 12.8833 5.30375 12.9242 5.36161 12.9242H6.83054ZM11.2052 7.23236C11.2052 7.16625 11.2373 7.13477 11.3048 7.13477H12.7673C12.8445 7.13477 12.867 7.15365 12.867 7.22921V12.814C12.867 12.8896 12.8445 12.9211 12.7577 12.9211H11.3241C11.2438 12.9211 11.2052 12.8864 11.2052 12.8109V7.23236ZM13.1209 6.03606L12.3945 5.87551C12.3013 5.85347 12.1984 5.87865 12.1277 5.94477L11.5813 6.43903C11.3659 6.63421 11.022 6.44217 11.0863 6.16199L11.2502 5.45051C11.2727 5.35606 11.247 5.25847 11.1795 5.18921L10.6748 4.65403C10.4755 4.4431 10.6748 4.1094 10.9609 4.17236L11.6873 4.33291C11.7805 4.35495 11.8834 4.32977 11.9541 4.26365L12.5005 3.7694C12.7159 3.57421 13.0598 3.76625 12.9955 4.04643L12.8316 4.75791C12.8091 4.85236 12.8348 4.94995 12.9023 5.01921L13.407 5.5544C13.6063 5.76532 13.407 6.09903 13.1209 6.03606Z\"\n                    fill=\"currentcolor\"\n                />\n            </g>\n            <defs>\n                <clipPath id=\"clip0_1178_26689\">\n                    <rect width=\"18\" height=\"17\" fill=\"white\" />\n                </clipPath>\n            </defs>\n        </svg>\n    );\n}\n\nexport {\n    IconAcrobat,\n    IconAero,\n    IconAdobeFirefly,\n    IconBoards,\n    IconExpress,\n    IconIllustrator,\n    IconInDesign,\n    IconPhotoshop,\n    IconXD,\n    IconAIGenClockPending,\n    IconAssets3d,\n    IconAlertTriangle,\n    IconAllFiles,\n    IconAudio,\n    IconMusic,\n    IconSoundEffect,\n    IconVideo,\n    IconFolder,\n    IconImage,\n    IconProject,\n    IconOffice,\n    IconLibrary,\n    IconBrand,\n    IconReviewLink,\n    IconSquirrel,\n    IconLceDark,\n    IconLceLight,\n    IconFirefly,\n    IconVector,\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { ccxController as IngestController } from '@ccx-public/ccx-ingest';\nimport type HostConfig from '@csc/common/@types/HostConfig';\nimport type AAVMetrics from './metrics/aav-metrics';\nimport { aavMetrics } from './metrics/aav-metrics';\nimport { librariesAAVMetrics } from './metrics/libraries-aav-metrics';\nimport { projectsAAVMetrics } from './metrics/projects-aav-metrics';\nimport type { IAnalyticsData } from '@csc/collection-view';\nimport { merge } from 'lodash-es';\n\ninterface IngestConfig {\n    allowNoToken: boolean;\n    apiKey: string;\n    env: string;\n    data?: IAnalyticsData;\n    maxQueuedEvents: number;\n    debounce: number;\n    product: string;\n    project: string;\n    onLog?: (msg: string) => void; // Optional property\n}\n\n// TODO, inject AAVMetrics instance instead\nexport enum AAVComponentId {\n    PROJECTS = 'ace-projects',\n    LIBRARIES = 'ace-libraries',\n    CDO = 'CDO',\n    ASSETSPREVIEW = 'ace-assets-preview',\n}\n\nexport const AAVComponentProjectName: { [key in AAVComponentId]: string } = {\n    [AAVComponentId.PROJECTS]: 'ace-projects',\n    [AAVComponentId.LIBRARIES]: 'cclib-panel',\n    [AAVComponentId.CDO]: 'cdo-service',\n    [AAVComponentId.ASSETSPREVIEW]: 'ace-assets-preview',\n};\n\nexport const AAVComponentIngestApiKey: { [key in AAVComponentId]: string } = {\n    [AAVComponentId.PROJECTS]: 'ace-projects-service',\n    [AAVComponentId.LIBRARIES]: 'ace-library-service',\n    [AAVComponentId.CDO]: 'cdo-service',\n    [AAVComponentId.ASSETSPREVIEW]: 'AssetPreview',\n};\n\nexport const Metrics: { [key in AAVComponentId]: AAVMetrics } = {\n    [AAVComponentId.PROJECTS]: projectsAAVMetrics,\n    [AAVComponentId.LIBRARIES]: librariesAAVMetrics,\n    [AAVComponentId.CDO]: aavMetrics,\n    [AAVComponentId.ASSETSPREVIEW]: aavMetrics,\n};\n\nexport const MetricsInitialized: { [key in AAVComponentId]: boolean } = {\n    [AAVComponentId.PROJECTS]: false,\n    [AAVComponentId.LIBRARIES]: false,\n    [AAVComponentId.CDO]: false,\n    [AAVComponentId.ASSETSPREVIEW]: false,\n};\n\nexport const INGEST_MAX_QUEUED_EVENTS = 500;\nexport const INGEST_DEBOUNCE_VALUE = 5000;\n\n/**\n * An interface to Metrics that React views can inject to simplify logging of metrics\n */\nexport default class AAVIngest {\n    private _componentId: AAVComponentId;\n    private _hostConfig: HostConfig;\n    private _customAnalyticsData?: IAnalyticsData;\n\n    constructor(\n        componentId: AAVComponentId,\n        hostConfig: HostConfig,\n        customAnalyticsData?: IAnalyticsData,\n    ) {\n        this._componentId = componentId;\n        this._hostConfig = hostConfig;\n        this._customAnalyticsData = customAnalyticsData;\n\n        this.init();\n    }\n\n    init() {\n        if (!MetricsInitialized[this._componentId]) {\n            const ingestConfig = this.getIngestConfig();\n            Metrics[this._componentId].controller = new IngestController(ingestConfig);\n            Metrics[this._componentId].userId = this._hostConfig.userId;\n            Metrics[this._componentId].initialized = true;\n            MetricsInitialized[this._componentId] = true;\n            console.log('[AAVIngest]', this._componentId, 'initialized');\n        }\n        // Disable analytics if hostConfig.disableAnalytics is true\n        Metrics[this._componentId].disabled = !!this._hostConfig.disableAnalytics;\n    }\n\n    getIngestConfig() {\n        const { clientId, environment, locale, userId, appName, appVersion, productId } =\n            this._hostConfig;\n\n        const isDesktopApp =\n            appName === 'Photoshop' || appName === 'Illustrator' || appName === 'InDesign';\n\n        const ingestBase: IAnalyticsData = {\n            env: {\n                fw: {\n                    version: process.env.VERSION,\n                    name: this._componentId,\n                },\n                svc: {\n                    name: this._componentId,\n                    version: process.env.VERSION,\n                },\n            },\n            event: {\n                category: isDesktopApp ? 'DESKTOP' : 'WEB',\n                language: locale,\n                context_guid: this.getSessionGuid(),\n                user_agent: navigator.userAgent,\n                user_guid: userId,\n            },\n            source: {\n                client_id: clientId,\n                name: appName ?? productId,\n                // eslint-disable-next-line @typescript-eslint/no-deprecated -- TODO: Replace with platform from user agent\n                platform: navigator.platform,\n                version: appVersion,\n            },\n        };\n\n        // Add custom analytics data if available\n        let finalData: IAnalyticsData = ingestBase;\n        if (this._customAnalyticsData) {\n            // Create merged object: keep all ingestBase properties, override only where customAnalyticsData exists\n            finalData = merge({}, ingestBase, this._customAnalyticsData);\n        }\n\n        const ingestConfig: IngestConfig = {\n            allowNoToken: true,\n            apiKey: AAVComponentIngestApiKey[this._componentId],\n            data: finalData,\n            env: environment,\n            product: `UAB v${process.env.VERSION}`,\n            project: AAVComponentProjectName[this._componentId],\n            maxQueuedEvents: INGEST_MAX_QUEUED_EVENTS,\n            debounce: INGEST_DEBOUNCE_VALUE,\n        };\n\n        return ingestConfig;\n    }\n\n    get metrics(): AAVMetrics {\n        return Metrics[this._componentId];\n    }\n\n    getSessionGuid(): string {\n        const sessionGuid = this.metrics.getSessionGuid();\n        return sessionGuid;\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IIngestOptions, ccxController as IngestController } from '@ccx-public/ccx-ingest';\nimport { SAM } from '@ccx-public/component-types';\nimport type {\n    Action,\n    IAnalyticsData,\n    ICollectionViewMetrics,\n    IItemViewMetric as BaseItemViewMetric,\n    IUsageMetricLogger as BaseUsageMetricLogger,\n    IAnalyticsOptions,\n    ViewMode,\n    IUsageMetricOptions,\n    ICollectionItem,\n} from '@csc/collection-view';\nimport {\n    ItemViewEventType,\n    MenuType,\n    EventType,\n    Workflow as BaseWorkflow,\n    UsageMetricPhase,\n} from '@csc/collection-view';\nimport merge from 'lodash-es/merge';\nimport { v4 as uuidv4 } from 'uuid';\nimport type { IOperationalMetricOptions, IOpMetricLogger } from '../../stores/AAVOperationStore';\nimport { ActionAnalyticsValue } from '../../stores/AAVOperationStore';\nimport type BackedCollectionItem from '../../types/BackedCollectionItem';\nimport type { AAVComponentId } from '../ingest';\n\ntype IItemViewMetric = BaseItemViewMetric<BackedCollectionItem<SAM.AdobeAsset>>;\ntype IUsageMetricLogger = BaseUsageMetricLogger<BackedCollectionItem<SAM.AdobeAsset>>;\n\nexport const OPERATION_ANALYTICS_VALUE_OVERRIDE: { [key: string]: string } = {\n    [ActionAnalyticsValue.Move]: 'move_asset',\n};\n\nexport const OPERATIONS_SUBCATEGORY = 'Performance';\n\nexport const Workflow = {\n    ...BaseWorkflow,\n    CloudDocuments: 'Cloud Documents',\n} as const;\n\nexport enum AssetType {\n    Document = 'Composite',\n    Folder = 'Folder',\n    File = 'File',\n    Project = 'Project',\n    Library = 'Library',\n}\n\nexport enum CacheStatus {\n    Cached = 'Cached',\n    Uncached = 'Uncached',\n}\n\n/**\n * An interface to Metrics that React views can inject to simplify logging of metrics\n */\nclass AAVMetrics implements ICollectionViewMetrics<BackedCollectionItem<SAM.AdobeAsset>> {\n    public ItemViewEventType = ItemViewEventType;\n    static ItemViewEventType = ItemViewEventType;\n    isOffline = () => !navigator.onLine;\n    getView!: () => ViewMode;\n\n    private _userId = '';\n    private _componentIdInitialized: AAVComponentId | undefined;\n    private _ingestController: IngestController | undefined;\n    private _initialized = false;\n    private _disabled: boolean = true;\n    private _ingestOptions: IIngestOptions | undefined;\n\n    set userId(userId: string) {\n        this._userId = userId;\n    }\n\n    set controller(controller: IngestController) {\n        this._ingestController = controller;\n    }\n\n    set initialized(initialized: boolean) {\n        this._initialized = initialized;\n    }\n\n    set disabled(disabled: boolean) {\n        this._disabled = disabled;\n    }\n\n    set ingestOptions(ingestOptions: IIngestOptions) {\n        this._ingestOptions = ingestOptions;\n    }\n\n    get userId() {\n        return this._userId;\n    }\n\n    get controller() {\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Handle when the controller is not defined\n        return this._ingestController!;\n    }\n\n    get initialized() {\n        return this._initialized;\n    }\n\n    get disabled() {\n        return this._disabled;\n    }\n\n    get isActive() {\n        return this._initialized && !this._disabled;\n    }\n\n    get ingestOptions(): IIngestOptions | undefined {\n        return this._ingestOptions;\n    }\n\n    static createCorrelationId() {\n        return uuidv4();\n    }\n\n    public setIsOffline(isOfflineStatusFunction: () => boolean) {\n        this.isOffline = isOfflineStatusFunction;\n    }\n\n    public setGetView(setViewFunction: () => ViewMode) {\n        this.getView = setViewFunction;\n    }\n\n    public getSessionGuid = (): string => {\n        let sessionGuid = sessionStorage.getItem('sessionGuid');\n        if (!sessionGuid) {\n            sessionGuid = uuidv4();\n            sessionStorage.setItem('sessionGuid', sessionGuid);\n        }\n        return sessionGuid;\n    };\n\n    /**\n     * Fire the ingest event\n     *\n     * @param ccxIngest       IngestController object from provider\n     * @param data            analytics data\n     * @param isOffline       offline connection status\n     */\n    private _fireEvent(ccxIngest: IngestController, data: IAnalyticsData, isOffline?: boolean) {\n        if (!this.isActive) {\n            return;\n        }\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Fix type or add null check\n        data.event!.offline = isOffline;\n        ccxIngest.fireEvent(data, false, this.ingestOptions).catch((e) => {\n            if (!isOffline) {\n                // Promise will always reject if offline, even though the events are queued\n                // No need to clutter the console log\n                console.error(`[ccx-cdo] ccxIngest.fireEvent failed ${e}`);\n            }\n        });\n    }\n\n    /**\n     * Generic logging of Ingest events.\n     *\n     * NOTE: Before using this method to log an event, consider creating a new method to log that *type*\n     *       of metric. Metrics often need to be consistent across components, which can only be achieved\n     *       by reducing as much repetition as possible.\n     *\n     * @param data {IAnalyticsData} the metric payload\n     */\n    fireEvent(data: IAnalyticsData, options?: IAnalyticsOptions) {\n        if (!this.isActive) {\n            return;\n        }\n        const { perSession } = options ?? {};\n        if (!perSession) {\n            this._fireEvent(this.controller, data, this.isOffline());\n        } else {\n            const { subcategory, type, subtype } = data.event ?? {};\n            const sessionGuid = this.getSessionGuid();\n            const key = [sessionGuid, subcategory, type, subtype].join(',');\n            if (sessionStorage?.getItem(key) === null) {\n                this._fireEvent(this.controller, data, this.isOffline());\n                sessionStorage.setItem(key, 'true');\n            }\n        }\n    }\n    public getCancelledSubtype(actionAnalyticsValue: string) {\n        return `${actionAnalyticsValue}-cancelled`;\n    }\n\n    getErrorSubtype(actionAnalyticsValue: string) {\n        return `${actionAnalyticsValue}-error`;\n    }\n\n    getAssetData(element: BackedCollectionItem<SAM.AdobeAsset>): IAnalyticsData {\n        const data: IAnalyticsData = { content: {}, event: {} };\n        /* eslint-disable @typescript-eslint/no-non-null-assertion -- TODO: Fix type or add null check */\n        data.content!.category = this.determineAssetType(element);\n        data.content!.cache_status = this.determineCacheStatus(element);\n        if (element && element.backingItem && element.backingItem.extension) {\n            data.content!.extension = element.backingItem.extension;\n        }\n        if (element && element.backingItem && element.backingItem.mediaType) {\n            data.content!.mimetype = element.backingItem.mediaType;\n        }\n        // Per SDM the content.id field should be the local id, if one exists\n        if (element && element.backingItem && element.backingItem.localID) {\n            data.content!.id = element.backingItem.localID;\n        }\n        // Per SDM the event.context_guid field should be the cloud id, if one exists\n        if (element && element.backingItem && element.backingItem.id) {\n            data.event!.context_guid = element.backingItem.id;\n        }\n        /* eslint-enable @typescript-eslint/no-non-null-assertion -- TODO: Fix type or add null check */\n        return data;\n    }\n\n    determineCacheStatus(element: BackedCollectionItem<SAM.AdobeAsset>) {\n        if (element && element.backingItem) {\n            return element.backingItem.isAvailableOffline\n                ? CacheStatus.Cached\n                : CacheStatus.Uncached;\n        }\n        return CacheStatus.Uncached;\n    }\n\n    determineAssetType(element: BackedCollectionItem<SAM.AdobeAsset>) {\n        if (element && element.backingItem) {\n            if (element.backingItem.isProject) {\n                return AssetType.Project;\n            }\n\n            if (element.backingItem.isFolder) {\n                return AssetType.Folder;\n            }\n            if (element.backingItem.isFile) {\n                return AssetType.File;\n            }\n\n            if (element.backingItem.isLibrary) {\n                return AssetType.Library;\n            }\n        }\n        return AssetType.Document;\n    }\n\n    /**\n     * Workflow based on element type\n     */\n    determineUsageSDMWorkflow(element?: BackedCollectionItem<SAM.AdobeAsset>): string {\n        if (element) {\n            if (element.backingItem.isProject) {\n                return Workflow.Project as string;\n            } else if (element.backingItem.isLibrary) {\n                return Workflow.Library as string;\n            } else if (element.backingItem.isFolder) {\n                return Workflow.Folder;\n            } else if (element.backingItem.isFile) {\n                return Workflow.Document;\n            }\n        }\n        return Workflow.Asset;\n    }\n\n    getPerformanceData(\n        eventType: EventType,\n        dtsStart?: Date,\n        element?: BackedCollectionItem<SAM.AdobeAsset>,\n        errorCode?: string | number,\n        errorDesc?: string,\n    ): Partial<IAnalyticsData> {\n        const data: Partial<IAnalyticsData> = {};\n\n        // TODO: Update this to attempt numbers, currently following the PS behavior\n        // to determine success and error: https://jira.corp.adobe.com/browse/PS-39334\n        // success is 0, and recover 1 (more than one attempt) since we don't handle recover count is 0\n        // Jira: https://jira.corp.adobe.com/browse/CCXCD-2976\n        if (eventType === EventType.Success) {\n            data.event = { count: 0 };\n        }\n        if (dtsStart) {\n            merge(data, this.getDurationData(dtsStart));\n        }\n        if (element) {\n            merge(data, this.getAssetData(element));\n        }\n        if (errorCode) {\n            data.event = { ...data.event, error_code: errorCode };\n        }\n        if (errorDesc) {\n            data.event = { ...data.event, error_desc: errorDesc };\n        }\n\n        return data;\n    }\n\n    /**\n     * Logs metrics for GridItem and ListItem\n     *\n     * @param {string} ingestSubcategory\n     * @param {BackedCollectionItem<SAM.AdobeAsset>} element\n     * @param {ItemViewEventType} itemViewEventType\n     */\n    public logItemViewMetric({ ingestSubcategory, element, itemViewEventType }: IItemViewMetric) {\n        const data: IAnalyticsData = {\n            event: {\n                subcategory: ingestSubcategory,\n                subtype: 'document', // per SDM, this is always 'document', even for folders\n                type: itemViewEventType,\n                workflow: 'Gallery',\n            },\n            ui: {\n                view_type: typeof this.getView === 'function' ? this.getView() : 'unknown',\n            },\n            content: {\n                size: element.backingItem.sizeInBytes,\n            },\n        };\n        merge(data, this.getAssetData(element));\n        // As type is variable itemViewEventType, avoiding only clicks to get logged.\n        if (itemViewEventType !== ItemViewEventType.Click) {\n            this.fireEvent(data);\n        }\n    }\n\n    /**\n     * Formats metric data for use in operational metrics\n     *\n     * @param {string} actionAnalyticsValue\n     * @param {string} correlationId\n     * @param {BackedCollectionItem<SAM.AdobeAsset>} element\n     * @param {string} eventType\n     * @param {Date} dtsStart\n     * @param {number} errorCode\n     * @param {string} errorDesc\n     * @returns operational metric data\n     */\n\n    public getOperationalMetricData(\n        actionAnalyticsValue: string,\n        {\n            correlationId,\n            element,\n            eventType,\n            dtsStart,\n            errorCode,\n            errorDesc,\n        }: IOperationalMetricOptions,\n    ): IAnalyticsData {\n        const subtype =\n            OPERATION_ANALYTICS_VALUE_OVERRIDE[actionAnalyticsValue] || actionAnalyticsValue;\n        const data: IAnalyticsData = {\n            event: {\n                workflow: Workflow.CloudDocuments,\n                subcategory: OPERATIONS_SUBCATEGORY,\n                type: eventType,\n                subtype,\n            },\n            content: {},\n            context: {\n                guid: correlationId || AAVMetrics.createCorrelationId(),\n            },\n        };\n\n        const performanceData = this.getPerformanceData(\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Fix type or add null check\n            eventType!,\n            dtsStart,\n            element,\n            errorCode,\n            errorDesc,\n        );\n        merge(data, performanceData);\n\n        return data;\n    }\n\n    /**\n     * Factory that returns a function which logs SDM analytics for operations\n     */\n    public getOperationalMetricLogger(actionAnalyticsValue: string): IOpMetricLogger {\n        return (data: IOperationalMetricOptions): Promise<void> => {\n            this.fireEvent(this.getOperationalMetricData(actionAnalyticsValue, data));\n            return Promise.resolve();\n        };\n    }\n\n    /**\n     * Factory that returns an object to manage metrics for Actions. Usage example:\n     *\n     *  const usageMetricLogger = cdoMetrics.getUsageMetricLogger(this.someAction, INGEST_SUBCATEGORY);\n     *  if (filteredElements.length) {\n     *      usageMetricLogger.start(filteredElements, cdoMetrics.EventType.Click, cdoMetrics.MenuType.Context);\n     *      await action.execute(...);\n     *      usageMetricLogger.success();\n     *  } else {\n     *      // log cancel metric with elements that were selected at time of cancellation\n     *      usageMetricLogger.cancelled(elements);\n     *  }\n     *\n     * @param {Action} action\n     * @param {string} ingestSubcategory\n     * @returns usageMetricLogger, see usage above\n     */\n    public getUsageMetricLogger(\n        action: Action<BackedCollectionItem<SAM.AdobeAsset>>,\n        ingestSubcategory: string,\n    ): IUsageMetricLogger {\n        const { analyticsValue } = action;\n        const logger: IUsageMetricLogger = {\n            correlationId: AAVMetrics.createCorrelationId(),\n            dtsStart: new Date(),\n            elements: [],\n            type: EventType.Click,\n            menu: MenuType.Item,\n\n            /**\n             * Call before the action is performed\n             *\n             * @param {ICollectionItem[]} elements -- only the elements for which the action will be performed\n             * @param {EventType} type\n             * @param {MenuType} menu\n             */\n            start: (\n                elements: BackedCollectionItem<SAM.AdobeAsset>[] = [],\n                type: EventType = EventType.Click,\n                menu: MenuType,\n            ) => {\n                logger.dtsStart = new Date(Date.now());\n                logger.elements = elements;\n                logger.type = type;\n                logger.menu = menu;\n                elements.forEach((element) =>\n                    this.logUsageMetric(\n                        {\n                            correlationId: logger.correlationId,\n                            dtsStart: logger.dtsStart,\n                            element,\n                            ingestSubcategory,\n                            type,\n                            subtype: analyticsValue,\n                            menu,\n                        },\n                        action.getAnalyticsOverrides(element, UsageMetricPhase?.ActionStart),\n                    ),\n                );\n            },\n\n            /**\n             * Call after the action completes, even if some items didn't complete successfully\n             */\n            success: () => {\n                // Only include the element if exactly 1 element was acted upon\n                const element = logger.elements.length === 1 ? logger.elements[0] : undefined;\n                this.logUsageMetric(\n                    {\n                        correlationId: logger.correlationId,\n                        ingestSubcategory,\n                        type: EventType.Success,\n                        subtype: analyticsValue,\n                        menu: logger.menu,\n                        count: logger.elements.length,\n                        element,\n                        dtsStart: logger.dtsStart,\n                        workflow: Workflow.Asset,\n                    },\n                    action.getAnalyticsOverrides(\n                        element ?? ({} as BackedCollectionItem<SAM.AdobeAsset>),\n                        UsageMetricPhase.ActionComplete,\n                    ),\n                );\n            },\n\n            /**\n             * Call with all elements that were selected before the user chose to cancel.\n             * @param {BackedCollectionItem<SAM.AdobeAsset>[]} elements\n             */\n            cancel: (elements: BackedCollectionItem<SAM.AdobeAsset>[]) => {\n                // Only include the element if exactly 1 element was selected\n                const element = elements.length === 1 ? elements[0] : undefined;\n                this.logUsageMetric(\n                    {\n                        correlationId: logger.correlationId,\n                        ingestSubcategory,\n                        type: logger.type,\n                        subtype: this.getCancelledSubtype(analyticsValue),\n                        menu: logger.menu,\n                        count: elements.length,\n                        element,\n                        dtsStart: logger.dtsStart,\n                        workflow: Workflow.Asset,\n                    },\n                    action.getAnalyticsOverrides(\n                        element ?? ({} as BackedCollectionItem<SAM.AdobeAsset>),\n                        UsageMetricPhase.ActionCancelled,\n                    ),\n                );\n            },\n            /**\n             * Call with all elements that were selected when error occurred.\n             */\n            error: (elements: BackedCollectionItem<SAM.AdobeAsset>[], error: SAM.SAMError) => {\n                // Only include the element if exactly 1 element was acted upon\n                const element = elements.length === 1 ? elements[0] : undefined;\n                this.logUsageMetric(\n                    {\n                        correlationId: logger.correlationId,\n                        ingestSubcategory,\n                        type: EventType.Error,\n                        subtype: this.getErrorSubtype(analyticsValue),\n                        menu: logger.menu,\n                        count: elements.length,\n                        element,\n                        dtsStart: logger.dtsStart,\n                        workflow: Workflow.Asset,\n                        errorCode: SAM.SAMErrorCode[error.code],\n                        errorDesc: error.message,\n                        ...error,\n                    },\n                    action.getAnalyticsOverrides(\n                        element ?? ({} as BackedCollectionItem<SAM.AdobeAsset>),\n                        UsageMetricPhase.ActionError as UsageMetricPhase,\n                    ),\n                );\n            },\n        };\n\n        return logger;\n    }\n\n    /**\n     * Same as getOperationalMetricLogger, but for undo operations.\n     *\n     * @param {string} actionAnalyticsValue -- NOTE: this should match the original operation, not the\n     *          operation done to perform the undo. E.g., use 'archive' for the undo operation, even though\n     *          it will perform a restore.\n     * @returns {IOpMetricLogger}\n     */\n    public getUndoOperationalMetricLogger(actionAnalyticsValue: string): IOpMetricLogger {\n        return this.getOperationalMetricLogger(`${actionAnalyticsValue}-undo`);\n    }\n\n    public logUsageMetric(\n        options: IUsageMetricOptions<ICollectionItem>,\n        analyticsOverrides?: IAnalyticsData,\n    ) {\n        const {\n            ingestSubcategory = options.ingestSubcategory ?? this._componentIdInitialized,\n            element,\n            count = 1,\n            type = EventType.Click,\n            subtype,\n            menu,\n            view,\n            dtsStart,\n            workflow,\n            correlationId,\n            error,\n            errorCode,\n            errorDesc,\n        } = options as IUsageMetricOptions<BackedCollectionItem<SAM.AdobeAsset>>;\n        const offline = this.isOffline();\n\n        const data: IAnalyticsData = {\n            event: {\n                workflow: workflow || this.determineUsageSDMWorkflow(element),\n                subcategory: ingestSubcategory,\n                type,\n                subtype,\n                count,\n                offline,\n                error: error?.toString(),\n                error_code: errorCode,\n                error_desc: errorDesc,\n            },\n            ui: {\n                sequence: menu,\n                view_type: typeof this.getView === 'function' ? this.getView() : (view as ViewMode),\n            },\n            context: {},\n        };\n        if (element) {\n            merge(data, this.getAssetData(element));\n        }\n        if (dtsStart) {\n            merge(data, this.getDurationData(dtsStart));\n        }\n        if (correlationId) {\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Fix type or add null check\n            data.context!.guid = correlationId;\n        }\n        if (analyticsOverrides) {\n            merge(data, analyticsOverrides);\n        }\n        this._fireEvent(this.controller, data, offline);\n    }\n\n    getDurationData(dtsStart: Date): IAnalyticsData {\n        const trnNumber = AAVMetrics.createCorrelationId();\n        const duration = Date.now() - dtsStart.getTime();\n        const durationInSeconds = duration / 1000;\n        return {\n            event: {\n                dts_start: dtsStart,\n                value: durationInSeconds,\n            },\n            trn: {\n                number: trnNumber,\n                product: 'Performance',\n                amount: 0,\n                quantity: durationInSeconds,\n            },\n        };\n    }\n}\n\nexport const aavMetrics = new AAVMetrics();\n\nexport default AAVMetrics;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\n\nimport { EventType } from '@csc/collection-view';\nimport AdobeAssetCollectionItem from '../../components/AdobeAssetsView/AdobeAssetCollectionItem';\nimport type { IOpMetricLogger } from '../../stores/AAVOperationStore';\nimport AAVMetrics from './aav-metrics';\n\nconst aavRenameCallbacks = (metricLogger: IOpMetricLogger) => {\n    const dtsStart = new Date(Date.now());\n    const correlationId = AAVMetrics.createCorrelationId();\n\n    return {\n        onSuccess: (element: SAM.AdobeAsset) => {\n            void metricLogger?.({\n                correlationId,\n                eventType: EventType.Success,\n                element: new AdobeAssetCollectionItem(element),\n                dtsStart,\n            });\n        },\n\n        onError: (error: Error, element: SAM.AdobeAsset) => {\n            void metricLogger?.({\n                correlationId,\n                element: new AdobeAssetCollectionItem(element),\n                eventType: EventType.Error,\n                errorCode: SAM.SAMErrorCode[(error as SAM.SAMError).code],\n                errorDesc: error.message,\n                dtsStart,\n                ...error,\n            });\n        },\n\n        onCancel: (element: SAM.AdobeAsset) => {\n            void metricLogger?.({\n                correlationId,\n                eventType: EventType.Cancel,\n                element: new AdobeAssetCollectionItem(element),\n                dtsStart,\n            });\n        },\n\n        onConflict: (element: SAM.AdobeAsset) => {\n            void metricLogger?.({\n                correlationId,\n                eventType: EventType.Conflict,\n                element: new AdobeAssetCollectionItem(element),\n                dtsStart,\n            });\n        },\n\n        onConfirm: (element: SAM.AdobeAsset) => {\n            void metricLogger?.({\n                correlationId,\n                eventType: EventType.Confirm,\n                element: new AdobeAssetCollectionItem(element),\n                dtsStart,\n            });\n        },\n\n        onClose: (element: SAM.AdobeAsset) => {\n            void metricLogger?.({\n                correlationId,\n                eventType: EventType.Close,\n                element: new AdobeAssetCollectionItem(element),\n                dtsStart,\n            });\n        },\n    };\n};\n\nexport default aavRenameCallbacks;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type { IOperationalMetricOptions } from '@csc/adobe-assets-view/src/stores/AAVOperationStore';\nimport type BackedCollectionItem from '@csc/adobe-assets-view/src/types/BackedCollectionItem';\nimport type { IAnalyticsData } from '@csc/collection-view';\nimport merge from 'lodash-es/merge';\nimport AAVMetrics, { OPERATION_ANALYTICS_VALUE_OVERRIDE, Workflow } from './aav-metrics';\n\nexport const LIBRARYCONTENT_SUBCATEGORY = 'library';\n\ninterface LibrariesIAnalyticsData extends IAnalyticsData {\n    event?: IAnalyticsData['event'] & {\n        url?: string;\n        pagename?: string;\n        referer?: string;\n    };\n    content?: IAnalyticsData['content'] & {\n        author?: string;\n        type?: 'file' | 'project' | 'folder' | 'library';\n    };\n}\n\nclass LibrariesAAVMetrics extends AAVMetrics {\n    getAssetData(element: BackedCollectionItem<SAM.AdobeAsset>): LibrariesIAnalyticsData {\n        let type: 'file' | 'project' | 'folder' | 'library';\n        // SDM spec calls for regions stripped from the URN\n        const id = element.id.split(':').pop();\n\n        if (element.backingItem.isProject) {\n            type = 'project';\n        } else if (element.backingItem.isLibrary) {\n            type = 'library';\n        } else if (element.backingItem.isFolder) {\n            type = 'folder';\n        } else if (element.backingItem.isFile) {\n            type = 'file';\n        }\n\n        return {\n            content: {\n                author: element.backingItem.createdBy,\n                extension: element.backingItem.extension,\n                id,\n                mimetype: element.backingItem.mediaType,\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Fix type or add null check\n                type: type!,\n            },\n        };\n    }\n\n    // Override the workflow for Libraries\n    getOperationalMetricData(\n        actionAnalyticsValue: string,\n        {\n            correlationId,\n            element,\n            eventType,\n            dtsStart,\n            errorCode,\n            errorDesc,\n        }: IOperationalMetricOptions,\n    ): LibrariesIAnalyticsData {\n        const contentData = element && this.getAssetData(element);\n        const subtype =\n            OPERATION_ANALYTICS_VALUE_OVERRIDE[actionAnalyticsValue] || actionAnalyticsValue;\n        const data: LibrariesIAnalyticsData = {\n            event: {\n                workflow: Workflow.Library as string,\n                subcategory: LIBRARYCONTENT_SUBCATEGORY,\n                type: eventType,\n                url: location.href,\n                pagename: 'Library View',\n                subtype,\n                referer: document.referrer,\n            },\n            ...contentData,\n            context: {\n                guid: correlationId || AAVMetrics.createCorrelationId(),\n            },\n        };\n        const performanceData = super.getPerformanceData(\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Fix type or add null check\n            eventType!,\n            dtsStart,\n            element,\n            errorCode,\n            errorDesc,\n        );\n\n        merge(data, performanceData);\n\n        return data;\n    }\n}\n\nexport const librariesAAVMetrics = new LibrariesAAVMetrics();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\n\nimport type { IOperationalMetricOptions } from '@csc/adobe-assets-view/src/stores/AAVOperationStore';\nimport type { IAnalyticsData } from '@csc/collection-view';\nimport merge from 'lodash-es/merge';\nimport AAVMetrics, { OPERATION_ANALYTICS_VALUE_OVERRIDE, Workflow } from './aav-metrics';\n\ninterface ProjectsIAnalyticsData extends IAnalyticsData {\n    event?: IAnalyticsData['event'] & {\n        url?: string;\n    };\n    content?: IAnalyticsData['content'] & {\n        author: string;\n    };\n    custom?: IAnalyticsData['custom'] & {\n        collab?: {\n            access_level: string;\n            user_type: string;\n        };\n        project_urn: string;\n    };\n}\n\nexport const PROJECTCONTENTS_SUBCATEGORY = '1up';\n\nclass ProjectsAAVMetrics extends AAVMetrics {\n    getProjectUrn(element: SAM.AdobeAsset) {\n        // SDM spec calls for regions stripped from the URN\n        const projectUrn = element.id.split(':').pop();\n        return projectUrn;\n    }\n\n    getCollabData(element: SAM.AdobeAsset, userId: string) {\n        const role = element.collaboratorArray.find((c) => c.id === userId)?.role;\n        // Levels in increasing order of access\n        let accessLevel = 'none';\n        if (element.hasPermission(SAM.Permission.Read)) {\n            accessLevel = 'comment';\n        }\n        if (element.hasPermission(SAM.Permission.Rename)) {\n            accessLevel = 'edit';\n        }\n\n        return {\n            accessLevel,\n            role,\n        };\n    }\n\n    // Override the workflow for Projects\n    getOperationalMetricData(\n        actionAnalyticsValue: string,\n        {\n            correlationId,\n            element,\n            eventType,\n            dtsStart,\n            errorCode,\n            errorDesc,\n            userId,\n        }: IOperationalMetricOptions,\n    ): ProjectsIAnalyticsData {\n        const computedUserId = userId || this.userId;\n        /* eslint-disable @typescript-eslint/no-non-null-assertion -- TODO: Fix type or add null check */\n        const collabData = this.getCollabData(element!.backingItem, computedUserId);\n        const subtype =\n            OPERATION_ANALYTICS_VALUE_OVERRIDE[actionAnalyticsValue] || actionAnalyticsValue;\n        const data: ProjectsIAnalyticsData = {\n            event: {\n                workflow: Workflow.Project as string,\n                subcategory: PROJECTCONTENTS_SUBCATEGORY,\n                type: eventType,\n                url: location.href,\n                subtype,\n            },\n            custom: {\n                collab: {\n                    access_level: collabData.accessLevel,\n                    user_type: collabData.role || 'unknown',\n                },\n                project_urn: this.getProjectUrn(element!.backingItem) || '',\n            },\n            content: {\n                author: element!.backingItem.createdBy,\n            },\n            context: {\n                guid: correlationId || AAVMetrics.createCorrelationId(),\n            },\n        };\n        const performanceData = super.getPerformanceData(\n            eventType!,\n            dtsStart,\n            element,\n            errorCode,\n            errorDesc,\n        );\n        /* eslint-enable @typescript-eslint/no-non-null-assertion -- TODO: Fix type or add null check */\n\n        merge(data, performanceData);\n\n        return data;\n    }\n}\n\nexport const projectsAAVMetrics = new ProjectsAAVMetrics();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\n\nexport type OpenEventDetail = {\n    asset: SAM.AdobeAsset;\n    readonly link: string;\n    setLink(link: string): void;\n    source?: string;\n};\n\nexport class OpenEvent extends CustomEvent<OpenEventDetail> {\n    static readonly EVENT_NAME = 'open';\n\n    constructor(detail: OpenEventDetail) {\n        super(OpenEvent.EVENT_NAME, { bubbles: true, cancelable: true, composed: true, detail });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type { ExternalBaseURLs } from '@csc/common';\nimport { OpenEvent } from '../events/OpenEvent';\nimport { constructAssetLink } from './asset-link/constructAssetLink';\nimport type { UABSAMCore } from '@csc/sam-utils';\n\nexport enum ClickSource {\n    // Single click on asset\n    Asset = 'asset-click',\n    // Click from action bar/context menu\n    Action = 'action-click',\n}\n\ntype Options = {\n    asset: SAM.AdobeAsset;\n    baseUrls: ExternalBaseURLs;\n    dispatchEvent: (event: CustomEvent<unknown>) => void;\n    source: ClickSource;\n    locale: string;\n    sam: UABSAMCore;\n};\n\nexport const openAdobeAsset = async ({\n    asset,\n    baseUrls,\n    dispatchEvent,\n    locale,\n    source,\n    sam,\n}: Options): Promise<void> => {\n    let link = await constructAssetLink({\n        asset,\n        baseUrls,\n        locale,\n        sam,\n    });\n\n    const setLink = (newLink: string) => {\n        link = newLink;\n    };\n    const event = new OpenEvent({\n        asset,\n        link,\n        setLink,\n        source,\n    });\n    dispatchEvent(event);\n    // Call window.open if event was not cancelled\n    if (!event.defaultPrevented) {\n        window.open(link);\n    }\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport type { ICollectionItem } from '@csc/collection-view';\nimport { expressElementType, libraryElementType, MIMETYPES } from '@csc/common';\nimport type { IntlShape } from 'react-intl';\nimport type BackedCollectionItem from '../types/BackedCollectionItem';\nimport { generationHistoryUtils } from '@csc/sam-utils';\n\n/**\n * Copy of SAM's isChidOfProject getter without the asynchronous resource correction\n *\n * @linkcode https://git.corp.adobe.com/torq/acpl-model/blob/d38785d77b24e2f52ad49eed147ac693cbc92437/modules/sam-js/src/assets/AdobeAsset.ts#L658-L703\n *\n * @param element - Backed collection item with an AdobeAsset backing item\n *\n * @returns true if the AdobeAsset is a child of a project\n */\nexport function isChildOfProject(element: BackedCollectionItem<SAM.AdobeAsset>) {\n    if (!element.backingItem.cloudID) {\n        // local files are not part of a project\n        return false;\n    }\n\n    if (element.backingItem.parentProjectID) {\n        return true;\n    }\n\n    const resource = element.backingItem.appMetadata;\n\n    // Follow link for more info on below eslint disablement https://git.corp.adobe.com/torq/acpl-model/blob/d38785d77b24e2f52ad49eed147ac693cbc92437/modules/sam-js/src/assets/Resource.ts#L63-L65\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- SAM has resource.data as any, leaving the path to be anything\n    const parentProjectId: string | undefined =\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- See above\n        resource?.data?.['cc:inherited']?.['cc:team']?.['repo:assetId'];\n\n    return (\n        // See https://git.corp.adobe.com/torq/acpl-model/blob/5333519096256598b855bbc5d0b7106863570f2c/modules/sam-js/src/assets/AdobeAsset.ts#L658 disabled eslint rule\n        parentProjectId !== undefined ||\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-call -- Internal SAM method\n        (element.backingItem['_isPathInsideProject']?.() as boolean)\n    );\n}\n\nexport function isLibrary(element: BackedCollectionItem<SAM.AdobeAsset>) {\n    return element.backingItem.isLibrary || element.type === 'application/vnd.adobe.library+dcx';\n}\n\nexport function isLibraryElement(element: BackedCollectionItem<SAM.AdobeAsset>) {\n    return element.backingItem.isLibraryElement || libraryElementType.includes(element.type ?? '');\n}\n\nexport function isReview(element: BackedCollectionItem<SAM.AdobeAsset>) {\n    return element.backingItem.isReviewLink;\n}\n\nexport function isExpress(element: ICollectionItem) {\n    return expressElementType.includes(element.type ?? '');\n}\n\nexport function isSharedWithYouAsset(element: BackedCollectionItem<SAM.AdobeAsset>) {\n    return element.backingItem.isSharedWithYouAsset;\n}\n\nexport function isXdArtifact(element: ICollectionItem) {\n    return element.type === 'application/vnd.adobe.xd.sharedartifact+dcx';\n}\n\nexport function isWebLink(element: ICollectionItem) {\n    return element.type === 'application/vnd.adobe.weblink+dcx';\n}\n\nexport function isLceDocument(element: ICollectionItem) {\n    return (\n        element.type === MIMETYPES.PS_LIVE_DOCUMENT ||\n        element.type === MIMETYPES.INDESIGN_CLOUD_DOCUMENT_LIVE\n    );\n}\n\n//Using already existing locale strings for CM, Brands and libraries\nexport function getAssetTypes(isBrand: boolean, isCmTrainingSet: boolean, intl: IntlShape) {\n    let assetType = '';\n    let pluralAssetType = '';\n\n    if (isBrand) {\n        assetType = intl.formatMessage({\n            id: 'aav.actions.move.libraryPermissionDialog.brand',\n            defaultMessage: 'Brand',\n        });\n        pluralAssetType = intl.formatMessage({\n            id: 'aav.actions.move.libraryPermissionDialog.brands',\n            defaultMessage: 'Brands',\n        });\n    } else if (isCmTrainingSet) {\n        assetType = intl.formatMessage({\n            id: 'aav.actions.move.libraryPermissionDialog.trainingSet',\n            defaultMessage: 'Training Set',\n        });\n        pluralAssetType = intl.formatMessage({\n            id: 'aav.actions.move.libraryPermissionDialog.trainingSets',\n            defaultMessage: 'Training Sets',\n        });\n    } else {\n        assetType = intl.formatMessage({\n            id: 'aav.actions.move.libraryPermissionDialog.library',\n            defaultMessage: 'Library',\n        });\n        pluralAssetType = intl.formatMessage({\n            id: 'aav.actions.move.libraryPermissionDialog.libraries',\n            defaultMessage: 'Libraries',\n        });\n    }\n\n    return { assetType, pluralAssetType };\n}\n\n/**\n * An \"unhydrated\" asset is one whose backingItem is not a valid AdobeAsset.\n * This is to support FMHS Recents rendering items before SAMjs has finished\n * initializing, relying solely on the data coming from the hosts' recents\n * cache. This data is already mapped to valid ICollectionItems, so there's\n * enough information to render most of the UI.\n *\n * @param asset - The adobe asset\n *\n * @returns true if the asset is unhydrated\n */\nexport function isUnhydratedAsset(asset: SAM.AdobeAsset) {\n    // `cloudID` is the only field provided by FMHS for unhydrated assets.\n    // `id` should always be present for valid AdobeAssets from SAMjs.\n    //\n    // This may seem a bit fragile because SAMjs can always update to remove\n    // `id` for legitimate reasons, but if that happens we would get a lint\n    // error here when we upgrade our SAM version. Then we can update to check\n    // that another expected field (for valid assets) is not present instead.\n    return asset.cloudID && !asset.id;\n}\n\n/**\n * Gets the location of an element based on its backing item.\n *\n * @param element The adobe asset\n *\n * @returns The location of the asset\n */\nexport function getLocation(element: BackedCollectionItem<SAM.AdobeAsset>) {\n    // highest priority because projects, files and libaries could be shared\n    if (isSharedWithYouAsset(element)) {\n        return AssetBrowser.ContentViewType.SharedWithYou;\n    }\n\n    if (isReview(element)) {\n        return AssetBrowser.ContentViewType.ReviewLinks;\n    }\n\n    if (isChildOfProject(element)) {\n        return AssetBrowser.ContentViewType.Project;\n    }\n\n    if (isLibrary(element) || isLibraryElement(element)) {\n        return AssetBrowser.ContentViewType.Libraries;\n    }\n\n    // We also check sync status here since, first-sync assets don't have a cloudID, but they could\n    // still be mid-sync.\n    if (\n        !element.backingItem.cloudID &&\n        (element.backingItem.syncStatus as SAM.AssetSyncStatus) !== SAM.AssetSyncStatus.Syncing\n    ) {\n        return AssetBrowser.ContentViewType.Local;\n    }\n\n    if (generationHistoryUtils?.isGenerationHistoryAsset(element.backingItem)) {\n        return AssetBrowser.ContentViewType.GenerationHistory;\n    }\n\n    // For newly created assets, parentProjectID is not available immediately until ONS\n    // notification is received. Our isChildOfProject util above then checks AdobeAsset's\n    // _isPathInsideProject to determine if it will be a Projects location instead of the\n    // default Files location. For Workfront assets, the path is more complex so there aren't\n    // absolute path patterns to check - only that it will start with /workfront, so the asset\n    // may or may not be in a CSC Project. Since the only use case for this is the Location\n    // Button, it's acceptable to have some extra traffic for featching appMetadata context for\n    // cases where assets aren't in a CSC Project under this hierarchy.\n    // Pre SMU: /content/assets/workfront and Post SMU: /workfront\n    if (\n        element.path?.startsWith('/workfront/') ||\n        element.path?.startsWith('/content/assets/workfront/')\n    ) {\n        return AssetBrowser.ContentViewType.Project;\n    }\n\n    return AssetBrowser.ContentViewType.CloudDocuments;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser, SAM } from '@ccx-public/component-types';\nimport { expressElementType } from '@csc/common';\nimport { getLibraryType, LibraryPrimaryType, generationHistoryUtils } from '@csc/sam-utils';\nimport type { IntlShape } from 'react-intl';\nimport { GENERIC_FILE_MIMETYPES } from '../filtering-utils/filtering-type-enums';\n\nexport const ASSET_TYPES: Record<string, SAM.AssetType> = {\n    TEMPLATE: 'template' as SAM.AssetType,\n};\n\nexport function isConcept(asset: SAM.AdobeAsset) {\n    return asset.mediaType === 'application/vnd.adobe.hz.aura+dcx';\n}\n\nexport function isExpress(asset: SAM.AdobeAsset) {\n    return expressElementType.includes(asset.mediaType ?? '');\n}\n\nexport function isWebLink(asset: SAM.AdobeAsset) {\n    return asset.mediaType === 'application/vnd.adobe.weblink+dcx';\n}\n\nexport function isFireflyTemplate(asset: SAM.AdobeAsset) {\n    return asset.mediaType === 'application/vnd.adobe.firefly-template+dcx';\n}\n\nexport function isFireflyGeneration(asset: SAM.AdobeAsset) {\n    return (\n        isFireflyGenerationImage(asset) ||\n        isFireflyGenerationVideo(asset) ||\n        isFireflyGenerationVector(asset) ||\n        isFireflyGenerationAudio(asset)\n    );\n}\n\nexport function isFireflyGenerationImage(asset: SAM.AdobeAsset) {\n    return asset?.mediaType === 'application/vnd.adobe.firefly-generation-image+dcx';\n}\n\nexport function isFireflyGenerationVideo(asset: SAM.AdobeAsset) {\n    return asset?.mediaType === 'application/vnd.adobe.firefly-generation-video+dcx';\n}\n\nexport function isFireflyGenerationVector(asset: SAM.AdobeAsset) {\n    return asset?.mediaType === 'application/vnd.adobe.firefly-generation-vector+dcx';\n}\n\nexport function isFireflyGenerationAudio(asset: SAM.AdobeAsset) {\n    return asset?.mediaType === 'application/vnd.adobe.firefly-generation-audio+dcx';\n}\n\nexport function isFireflyGenerationIncomplete(asset: SAM.AdobeAsset) {\n    const generationHistoryState = generationHistoryUtils?.getGenerationState?.(\n        asset,\n    ) as SAM.GenerationHistoryAssetState;\n    return (\n        generationHistoryState === SAM.GenerationHistoryAssetState.QUEUED ||\n        generationHistoryState === SAM.GenerationHistoryAssetState.IN_PROGRESS ||\n        generationHistoryState === SAM.GenerationHistoryAssetState.FAILED\n    );\n}\n\nexport function isXdDesignSpec(asset: SAM.AdobeAsset) {\n    return asset.mediaType === 'application/vnd.adobe.uxdesign.designspec+dcx';\n}\n\nexport function isXdPrototype(asset: SAM.AdobeAsset) {\n    return asset.mediaType === 'application/vnd.adobe.uxdesign.prototype+dcx';\n}\n\nexport function isAssets3d(asset: SAM.AdobeAsset) {\n    return GENERIC_FILE_MIMETYPES[AssetBrowser.GenericFileTypeValues.Assets3d].includes(\n        asset.mediaType,\n    );\n}\n\nexport function isSquirrel(asset: SAM.AdobeAsset) {\n    // Type for cached squirrel assets: 'backyard/walnut-cache+dcx'\n    // We don't want to show these cached assets as squirrel assets\n    return asset.mediaType === 'application/vnd.adobe.hz.squirrel+dcx';\n}\n\nexport function getViewItemType(asset: SAM.AdobeAsset, intl: IntlShape): string {\n    if (asset.isLibraryElement) {\n        return intl.formatMessage({\n            id: 'libraryelement.subtitle',\n            defaultMessage: 'LIBRARY ELEMENT',\n        });\n    }\n    // Brand is also a library but has role parameter\n    if (asset.isLibrary) {\n        const primaryType = getLibraryType(asset as SAM.Library);\n        if (primaryType === LibraryPrimaryType.TRAINING_SET) {\n            return intl.formatMessage({\n                id: 'cm.subtitle',\n                defaultMessage: 'CUSTOM MODEL',\n            });\n        }\n        if (primaryType === LibraryPrimaryType.BRAND) {\n            return intl.formatMessage({\n                id: 'brand.subtitle',\n                defaultMessage: 'BRAND',\n            });\n        }\n        if (primaryType === LibraryPrimaryType.LIBRARY) {\n            return intl.formatMessage({\n                id: 'library.subtitle',\n                defaultMessage: 'LIBRARY',\n            });\n        }\n\n        // Roles have not loaded yet\n        return '–';\n    }\n    if (asset.isReviewLink) {\n        return intl.formatMessage({\n            id: 'review.subtitle',\n            defaultMessage: 'REVIEW',\n        });\n    }\n    if (asset.isProject) {\n        return intl.formatMessage({\n            id: 'project.subtitle',\n            defaultMessage: 'PROJECT',\n        });\n    }\n    if (asset.assetType === ASSET_TYPES.TEMPLATE) {\n        return intl.formatMessage({\n            id: 'template.subtitle',\n            defaultMessage: 'TEMPLATE',\n        });\n    }\n    if (isXdPrototype(asset)) {\n        return intl.formatMessage({\n            id: 'prototype.subtitle',\n            defaultMessage: 'PROTOTYPE',\n        });\n    }\n    if (isXdDesignSpec(asset)) {\n        return intl.formatMessage({\n            id: 'designspecs.subtitle',\n            defaultMessage: 'DESIGN SPECS',\n        });\n    }\n    if (isExpress(asset)) {\n        return intl.formatMessage({\n            id: 'express.subtitle',\n            defaultMessage: 'ADOBE EXPRESS',\n        });\n    }\n    if (isWebLink(asset)) {\n        return intl.formatMessage({\n            id: 'webLink.subtitle',\n            defaultMessage: 'WEB LINK',\n        });\n    }\n    if (isFireflyTemplate(asset)) {\n        return intl.formatMessage({\n            id: 'aav.list.columns.subtitle.firefly',\n            defaultMessage: 'STYLE KIT',\n        });\n    }\n    if (isFireflyGenerationImage(asset)) {\n        return intl.formatMessage({\n            id: 'firefly.subtitle.image',\n            defaultMessage: 'IMAGE',\n        });\n    }\n    if (isFireflyGenerationVideo(asset)) {\n        return intl.formatMessage({\n            id: 'firefly.subtitle.video',\n            defaultMessage: 'VIDEO',\n        });\n    }\n\n    if (isConcept(asset)) {\n        return intl.formatMessage({\n            id: 'concept.subtitle',\n            defaultMessage: 'FIREFLY BOARDS',\n        });\n    }\n\n    if (isAssets3d(asset)) {\n        return intl.formatMessage({\n            id: 'assets3d.subtitle',\n            defaultMessage: '3D ASSET',\n        });\n    }\n\n    if (isSquirrel(asset)) {\n        return intl.formatMessage({\n            id: 'squirrel.subtitle',\n            defaultMessage: 'SQ TIMELINE',\n        });\n    }\n\n    // if not folder, derive type by extension\n    const fileExt: string = asset.extension?.trim()?.toUpperCase();\n    const type: string | React.JSX.Element = asset.isFolder\n        ? intl.formatMessage({\n              id: 'aav.viewitem.subtitle.folder',\n              defaultMessage: 'FOLDER',\n          })\n        : fileExt;\n    return type;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\n\nexport default function isNormalFolder(asset: SAM.AdobeAsset) {\n    const isSpecialDirectoryType = asset.isProject || asset.isLibrary;\n    return asset.isFolder && !isSpecialDirectoryType;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport React from 'react';\nimport type { IntlShape } from 'react-intl';\nimport type { UIAssetFilterFn } from '../../utils/filtering-utils/filtering-utils';\nimport { mimeTypeFilter } from '../../utils/filtering-utils/filtering-utils';\nimport {\n    IconAcrobat,\n    IconAero,\n    IconAllFiles,\n    IconAssets3d,\n    IconAudio,\n    IconBrand,\n    IconAdobeFirefly,\n    IconExpress,\n    IconFolder,\n    IconIllustrator,\n    IconImage,\n    IconInDesign,\n    IconLibrary,\n    IconPhotoshop,\n    IconProject,\n    IconReviewLink,\n    IconSquirrel,\n    IconVector,\n    IconVideo,\n    IconXD,\n} from '../../utils/icons';\nimport isNormalFolder from '../../utils/is-normal-folder';\nimport IconYours from '@csc/ui/dist/src/Icons/User';\nimport IconSharedWithYou from '@csc/ui/dist/src/Icons/UserGroup';\n\nexport interface ViewAttributes {\n    label: string;\n    icon: React.JSX.Element;\n    group: TypeGrouping;\n}\n\nexport interface FilterOptionViewModel {\n    label: string;\n    value: AssetBrowser.FileFilterTypeValues;\n    // TODO: switch to CV IFilter directly. it needs to be made generic\n    filter: UIAssetFilterFn;\n    icon?: React.JSX.Element;\n    group?: TypeGrouping;\n}\n\nexport interface ProjectFilterOptionViewModel {\n    label: string;\n    value: SAM.ProjectViews;\n    icon?: React.JSX.Element;\n    group?: TypeGrouping;\n}\n\nexport enum TypeGrouping {\n    Generic = 'GENERIC', //Images, video, etc.\n    Application = 'APPLICATION', //Photoshop, etc. Or All Files\n    GenStudioBrands = 'GENSTUDIO_BRANDS', //Brands in Adobe GenStudio Brands project\n    OtherBrands = 'OTHER_BRANDS', //Brands in non Adobe GenStudio Brands projects\n}\n\nconst iconWH = '20px';\n// only the s2_global icons are sized to 14 when badgeSizing = true\nconst badgeIconWH = '14px';\nconst badgeIconAdobeWH = '20px';\nconst viewBox = ' 0 0 56 55'; //TODO: CCXCD-13292 - viewbox missing on icons in AAV storybook\n\nexport const getViewAttributesMap = (\n    intl: IntlShape,\n    fileType: AssetBrowser.FileFilterTypeValues,\n    badgeSizing = false,\n): ViewAttributes => {\n    const iconSize = badgeSizing ? badgeIconWH : iconWH;\n    const adobeIconSize = badgeSizing ? badgeIconAdobeWH : iconWH;\n\n    // return the view attributes based on the file type\n    switch (fileType) {\n        case AssetBrowser.OtherFileTypeValues.AllFiles:\n            return {\n                label: intl.formatMessage({ id: 'aav.typeFilter.AllFiles', defaultMessage: 'All' }),\n                icon: <IconAllFiles aria-hidden=\"true\" />,\n                group: TypeGrouping.Application,\n            };\n        case AssetBrowser.FileFilterTypeValues.Acrobat:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Acrobat',\n                    defaultMessage: 'Acrobat (PDF)',\n                }),\n                icon: (\n                    <IconAcrobat\n                        height={adobeIconSize}\n                        width={adobeIconSize}\n                        viewBox={viewBox}\n                        aria-hidden=\"true\"\n                    />\n                ),\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.FileFilterTypeValues.Aero:\n            return {\n                label: intl.formatMessage({ id: 'aav.typeFilter.Aero', defaultMessage: 'Aero' }),\n                icon: (\n                    <IconAero\n                        height={adobeIconSize}\n                        width={adobeIconSize}\n                        viewBox={viewBox}\n                        aria-hidden=\"true\"\n                    />\n                ),\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.FileFilterTypeValues.Assets3d:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Assets3d',\n                    defaultMessage: '3D Assets',\n                }),\n                icon: <IconAssets3d height={iconSize} width={iconSize} aria-hidden=\"true\" />,\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.FileFilterTypeValues.Audio:\n            return {\n                label: intl.formatMessage({ id: 'aav.typeFilter.Audio', defaultMessage: 'Audio' }),\n                icon: <IconAudio height={iconSize} width={iconSize} aria-hidden=\"true\" />,\n                group: TypeGrouping.Generic,\n            };\n\n        case AssetBrowser.AdobeFileTypeValues.Photoshop:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Photoshop',\n                    defaultMessage: 'Photoshop',\n                }),\n                icon: (\n                    <IconPhotoshop\n                        height={adobeIconSize}\n                        width={adobeIconSize}\n                        viewBox={viewBox}\n                        aria-hidden=\"true\"\n                    />\n                ),\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.AdobeFileTypeValues.Illustrator:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Illustrator',\n                    defaultMessage: 'Illustrator',\n                }),\n                icon: (\n                    <IconIllustrator\n                        height={adobeIconSize}\n                        width={adobeIconSize}\n                        viewBox={viewBox}\n                        aria-hidden=\"true\"\n                    />\n                ),\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.AdobeFileTypeValues.Express:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Express',\n                    defaultMessage: 'Adobe Express',\n                }),\n                icon: (\n                    <IconExpress height={adobeIconSize} width={adobeIconSize} aria-hidden=\"true\" />\n                ),\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.AdobeFileTypeValues.InDesign:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.InDesign',\n                    defaultMessage: 'InDesign',\n                }),\n                icon: (\n                    <IconInDesign\n                        height={adobeIconSize}\n                        width={adobeIconSize}\n                        viewBox={viewBox}\n                        aria-hidden=\"true\"\n                    />\n                ),\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.AdobeFileTypeValues.XD:\n            return {\n                label: intl.formatMessage({ id: 'aav.typeFilter.XD', defaultMessage: 'XD' }),\n                icon: (\n                    <IconXD\n                        height={adobeIconSize}\n                        width={adobeIconSize}\n                        viewBox={viewBox}\n                        aria-hidden=\"true\"\n                    />\n                ),\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.AdobeFileTypeValues.Concept:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Firefly.type',\n                    defaultMessage: 'Firefly',\n                }),\n                icon: (\n                    <IconAdobeFirefly\n                        height={adobeIconSize}\n                        width={adobeIconSize}\n                        aria-hidden=\"true\"\n                    />\n                ),\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.AdobeFileTypeValues.Squirrel:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.squirrel',\n                    defaultMessage: 'SQ Timeline',\n                }),\n                icon: <IconSquirrel height={adobeIconSize} width={adobeIconSize} />,\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.GenericFileTypeValues.Images:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Images',\n                    defaultMessage: 'Images',\n                }),\n                icon: <IconImage height={iconSize} width={iconSize} aria-hidden=\"true\" />,\n                group: TypeGrouping.Generic,\n            };\n\n        case AssetBrowser.GenericFileTypeValues.Videos:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Videos',\n                    defaultMessage: 'Videos',\n                }),\n                icon: <IconVideo height={iconSize} width={iconSize} aria-hidden=\"true\" />,\n                group: TypeGrouping.Generic,\n            };\n\n        case AssetBrowser.OtherFileTypeValues.Folder:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Folders',\n                    defaultMessage: 'Folders',\n                }),\n                icon: <IconFolder height={iconSize} width={iconSize} aria-hidden=\"true\" />,\n                group: TypeGrouping.Generic,\n            };\n\n        case AssetBrowser.FireflyGenerationTypeValues.GenerationAll:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.AllFiles',\n                    defaultMessage: 'All',\n                }),\n                icon: <IconAllFiles height={iconSize} width={iconSize} aria-hidden=\"true\" />,\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.FireflyGenerationTypeValues.GenerationImage:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Images',\n                    defaultMessage: 'Images',\n                }),\n                icon: <IconImage aria-hidden=\"true\" />,\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.FireflyGenerationTypeValues.GenerationVideo:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Videos',\n                    defaultMessage: 'Videos',\n                }),\n                icon: <IconVideo aria-hidden=\"true\" />,\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.FireflyGenerationTypeValues.GenerationAudio:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.generationAudio',\n                    defaultMessage: 'Audio',\n                }),\n                icon: <IconAudio aria-hidden=\"true\" />,\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.FireflyGenerationTypeValues.GenerationVector:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.generationVector',\n                    defaultMessage: 'Vector',\n                }),\n                icon: <IconVector size=\"S\" aria-hidden=\"true\" />,\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.LibrariesAndBrandsTypeValues.Libraries:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Libraries',\n                    defaultMessage: 'Libraries',\n                }),\n                icon: <IconLibrary height={iconSize} width={iconSize} aria-hidden=\"true\" />,\n                group: TypeGrouping.Generic,\n            };\n\n        case AssetBrowser.LibrariesAndBrandsTypeValues.Brands:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Brands',\n                    defaultMessage: 'Brands',\n                }),\n                icon: <IconBrand height={iconSize} width={iconSize} aria-hidden=\"true\" />,\n                group: TypeGrouping.Generic,\n            };\n\n        case AssetBrowser.FileFilterTypeValues.Project:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Projects',\n                    defaultMessage: 'Projects',\n                }),\n                icon: <IconProject className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />,\n                group: TypeGrouping.Generic,\n            };\n\n        case AssetBrowser.OtherFileTypeValues.ReviewLink:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.ReviewLinks',\n                    defaultMessage: 'Review Links',\n                }),\n                icon: (\n                    <IconReviewLink className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />\n                ),\n                group: TypeGrouping.Generic,\n            };\n\n        case AssetBrowser.SharedViewTypeValues.All:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.AllFiles',\n                    defaultMessage: 'All',\n                }),\n                icon: <IconAllFiles className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />,\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.SharedViewTypeValues.Yours:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.YourBoards',\n                    defaultMessage: 'Your boards',\n                }),\n                icon: <IconYours className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />,\n                group: TypeGrouping.Application,\n            };\n\n        case AssetBrowser.SharedViewTypeValues.SharedWithYou:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.SWY',\n                    defaultMessage: 'Shared with you',\n                }),\n                icon: (\n                    <IconSharedWithYou\n                        className=\"cdo-typefilter-dropdown-icon\"\n                        aria-hidden=\"true\"\n                    />\n                ),\n                group: TypeGrouping.Application,\n            };\n        case AssetBrowser.OtherFileTypeValues.AllCompatible:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.AllCompatible',\n                    defaultMessage: 'All compatible',\n                }),\n                icon: <IconAllFiles height={iconSize} width={iconSize} aria-hidden=\"true\" />,\n                group: TypeGrouping.Application,\n            };\n        // Note: these FileTypeValues are specific to Brands and these filter options are not used in AAV currently\n        // but re-defined in Libraries Package\n        // included for exhaustive check\n        case AssetBrowser.GenStudioBrandTypeValues.AllBrands:\n        case AssetBrowser.GenStudioBrandTypeValues.Drafts:\n        case AssetBrowser.GenStudioBrandTypeValues.Published:\n        case AssetBrowser.GenStudioBrandTypeValues.CreatedByYou:\n        case AssetBrowser.GenStudioBrandTypeValues.MyBrands:\n        case AssetBrowser.GenStudioBrandTypeValues.Public:\n            return {\n                label: intl.formatMessage({\n                    id: 'aav.typeFilter.Brands',\n                    defaultMessage: 'Brands',\n                }),\n                icon: <IconBrand height={iconSize} width={iconSize} aria-hidden=\"true\" />,\n                group: TypeGrouping.GenStudioBrands,\n            };\n        default: {\n            // Exhaustive check: This should never happen if all FileFilterTypeValues are handled\n            const _exhaustiveCheck: never = fileType;\n            throw new Error(`Unknown file type: ${fileType as string}`);\n        }\n    }\n};\n\nexport const getTypeViewModel = (\n    intl: IntlShape,\n    fileType: AssetBrowser.FileFilterTypeValues,\n    includeFolders?: boolean,\n): FilterOptionViewModel => {\n    const MAP = {\n        [AssetBrowser.AdobeFileTypeValues.Acrobat]: AcrobatPDFOption(intl, includeFolders),\n        // TODO: https://jira.corp.adobe.com/browse/CCXCD-14577\n        // Change the AdobeFileTypeValues.Concept to AdobeFileTypeValues.Firefly\n        [AssetBrowser.AdobeFileTypeValues.Concept]: FireflyOption(intl),\n        [AssetBrowser.OtherFileTypeValues.Folder]: FolderOption(intl),\n        [AssetBrowser.LibrariesAndBrandsTypeValues.Libraries]: LibrariesOption(\n            intl,\n            includeFolders,\n        ),\n        [AssetBrowser.LibrariesAndBrandsTypeValues.Brands]: BrandOption(intl, includeFolders),\n    } as const;\n\n    return (\n        (MAP[fileType] as FilterOptionViewModel) ??\n        getMimetypeMatchedViewModel(intl, fileType, includeFolders)\n    );\n};\n\nexport const getMimetypeMatchedViewModel = (\n    intl: IntlShape,\n    fileType: AssetBrowser.FileFilterTypeValues,\n    includeFolders?: boolean,\n): FilterOptionViewModel => {\n    const { label, icon, group } = getViewAttributesMap(intl, fileType);\n\n    function filter(asset: SAM.AdobeAsset) {\n        const mimetypeMatches = mimeTypeFilter(asset.mediaType, fileType);\n        return Boolean(mimetypeMatches || (includeFolders && isNormalFolder(asset)));\n    }\n\n    return {\n        label,\n        icon,\n        group,\n        filter,\n        value: fileType,\n    };\n};\n\n/** Default set of UI type filter options, excludes Folder because Folders are shown when any non-directory option is selected */\nexport const getDefaultFilterOptions = (intl: IntlShape): FilterOptionViewModel[] => {\n    const allMimeTypesInOrder = [\n        AssetBrowser.OtherFileTypeValues.AllFiles,\n        AssetBrowser.AdobeFileTypeValues.Photoshop,\n        AssetBrowser.AdobeFileTypeValues.Illustrator,\n        AssetBrowser.AdobeFileTypeValues.Express,\n        AssetBrowser.AdobeFileTypeValues.Concept,\n        AssetBrowser.AdobeFileTypeValues.Acrobat,\n        AssetBrowser.AdobeFileTypeValues.InDesign,\n        AssetBrowser.AdobeFileTypeValues.Aero,\n        AssetBrowser.AdobeFileTypeValues.XD,\n        AssetBrowser.AdobeFileTypeValues.Squirrel,\n        AssetBrowser.GenericFileTypeValues.Assets3d,\n        // AssetBrowser.OtherFileTypeValues.Folder, -- this is where folders go in some views, but not default. see above. leaving here for reference\n        AssetBrowser.GenericFileTypeValues.Images,\n        AssetBrowser.GenericFileTypeValues.Videos,\n        AssetBrowser.GenericFileTypeValues.Audio,\n    ];\n\n    return allMimeTypesInOrder.map((type) => getTypeViewModel(intl, type, true));\n};\n\nexport const FolderOption = (intl: IntlShape): FilterOptionViewModel => {\n    return {\n        ...getViewAttributesMap(intl, AssetBrowser.OtherFileTypeValues.Folder),\n        value: AssetBrowser.OtherFileTypeValues.Folder,\n        filter: isNormalFolder,\n    };\n};\n\nexport const ProjectOption = (intl: IntlShape): FilterOptionViewModel => {\n    return {\n        label: intl.formatMessage({ id: 'aav.typeFilter.Projects', defaultMessage: 'Projects' }),\n        value: AssetBrowser.FileFilterTypeValues.Project,\n        filter: (asset) => asset.isProject,\n        icon: <IconProject className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />,\n        group: TypeGrouping.Generic,\n    };\n};\n\nexport const LibrariesOption = (\n    intl: IntlShape,\n    includeFolders?: boolean,\n): FilterOptionViewModel => {\n    const filter = (asset: SAM.AdobeAsset) => {\n        const isLibrary = Boolean(\n            (asset as SAM.Library).roles &&\n                !(\n                    (asset as SAM.Library).roles?.find((role) => role.type === 'brand') ||\n                    (asset as SAM.Library).roles?.find((role) => role.type === 'cm_training_set')\n                ),\n        );\n        return Boolean(isLibrary || (includeFolders && isNormalFolder(asset)));\n    };\n\n    return {\n        label: intl.formatMessage({ id: 'aav.typeFilter.Libraries', defaultMessage: 'Libraries' }),\n        value: AssetBrowser.LibrariesAndBrandsTypeValues.Libraries,\n        filter,\n        icon: <IconLibrary className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />,\n        group: TypeGrouping.Generic,\n    };\n};\n\nexport const BrandOption = (intl: IntlShape, includeFolders?: boolean): FilterOptionViewModel => {\n    const filter = (asset: SAM.AdobeAsset) => {\n        const isBrand = Boolean(\n            (asset as SAM.Library).roles?.find((role) => role.type === 'brand'),\n        );\n        return Boolean(isBrand || (includeFolders && isNormalFolder(asset)));\n    };\n\n    return {\n        label: intl.formatMessage({ id: 'aav.typeFilter.Brands', defaultMessage: 'Brands' }),\n        value: AssetBrowser.LibrariesAndBrandsTypeValues.Brands,\n        filter,\n        icon: <IconBrand className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />,\n        group: TypeGrouping.Generic,\n    };\n};\n\nexport const ReviewLinksOption = (intl: IntlShape): FilterOptionViewModel => {\n    return {\n        label: intl.formatMessage({\n            id: 'aav.typeFilter.ReviewLinks',\n            defaultMessage: 'Review Links',\n        }),\n        value: 'isReviewLink' as AssetBrowser.FileFilterTypeValues,\n        filter: (asset) => Boolean(asset.isReviewLink),\n        icon: <IconReviewLink className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />,\n        group: TypeGrouping.Generic,\n    };\n};\n\nexport const FireflyOption = (intl: IntlShape): FilterOptionViewModel => {\n    return {\n        label: intl.formatMessage({\n            id: 'aav.typeFilter.Firefly.type',\n            defaultMessage: 'Firefly',\n        }),\n        value: AssetBrowser.AdobeFileTypeValues.Concept,\n        filter: (asset) => {\n            const mimetypeMatches =\n                asset.isCustomModel ||\n                mimeTypeFilter(asset.mediaType, AssetBrowser.AdobeFileTypeValues.Concept);\n            return mimetypeMatches;\n        },\n        icon: <IconAdobeFirefly height={iconWH} width={iconWH} />,\n        group: TypeGrouping.Application,\n    };\n};\n\nexport const AcrobatPDFOption = (\n    intl: IntlShape,\n    includeFolders?: boolean,\n): FilterOptionViewModel => {\n    return {\n        ...getViewAttributesMap(intl, AssetBrowser.AdobeFileTypeValues.Acrobat),\n        value: AssetBrowser.AdobeFileTypeValues.Acrobat,\n        filter: (asset) => {\n            const mimetypeMatches =\n                mimeTypeFilter(asset.mediaType, AssetBrowser.AdobeFileTypeValues.Acrobat) &&\n                !asset.isReviewLink;\n            return Boolean(mimetypeMatches || (includeFolders && isNormalFolder(asset)));\n        },\n    };\n};\n\nexport const AllBoardsOption = (intl: IntlShape): FilterOptionViewModel => {\n    return {\n        label: intl.formatMessage({\n            id: 'aav.typeFilter.AllFiles',\n            defaultMessage: 'All',\n        }),\n        value: AssetBrowser.SharedViewTypeValues.All,\n        filter: () => true, // filter through SAM\n        icon: <IconAllFiles className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />,\n        group: TypeGrouping.Application,\n    };\n};\n\nexport const YourBoardsOption = (intl: IntlShape): FilterOptionViewModel => {\n    return {\n        label: intl.formatMessage({\n            id: 'aav.typeFilter.YourBoards',\n            defaultMessage: 'Your boards',\n        }),\n        value: AssetBrowser.SharedViewTypeValues.Yours,\n        filter: () => true, // filter through SAM\n        icon: <IconYours className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />,\n        group: TypeGrouping.Application,\n    };\n};\n\nexport const SharedWithYouBoardsOption = (intl: IntlShape): FilterOptionViewModel => {\n    return {\n        label: intl.formatMessage({\n            id: 'aav.typeFilter.SWY',\n            defaultMessage: 'Shared with you',\n        }),\n        value: AssetBrowser.SharedViewTypeValues.SharedWithYou,\n        filter: () => true, // filter through SAM\n        icon: <IconSharedWithYou className=\"cdo-typefilter-dropdown-icon\" aria-hidden=\"true\" />,\n        group: TypeGrouping.Application,\n    };\n};\n","import rng from './rng.js';\nimport { unsafeStringify } from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n  let i = buf && offset || 0;\n  const b = buf || new Array(16);\n  options = options || {};\n  let node = options.node || _nodeId;\n  let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n  // specified.  We do this lazily to minimize issues related to insufficient\n  // system entropy.  See #189\n\n  if (node == null || clockseq == null) {\n    const seedBytes = options.random || (options.rng || rng)();\n\n    if (node == null) {\n      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n      node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n    }\n\n    if (clockseq == null) {\n      // Per 4.2.2, randomize (14 bit) clockseq\n      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n    }\n  } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so\n  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n  let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n  // cycle to simulate higher resolution clock\n\n  let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n  const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n  if (dt < 0 && options.clockseq === undefined) {\n    clockseq = clockseq + 1 & 0x3fff;\n  } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n  // time interval\n\n\n  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n    nsecs = 0;\n  } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n  if (nsecs >= 10000) {\n    throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n  }\n\n  _lastMSecs = msecs;\n  _lastNSecs = nsecs;\n  _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n  msecs += 12219292800000; // `time_low`\n\n  const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n  b[i++] = tl >>> 24 & 0xff;\n  b[i++] = tl >>> 16 & 0xff;\n  b[i++] = tl >>> 8 & 0xff;\n  b[i++] = tl & 0xff; // `time_mid`\n\n  const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n  b[i++] = tmh >>> 8 & 0xff;\n  b[i++] = tmh & 0xff; // `time_high_and_version`\n\n  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n  b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n  b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n  b[i++] = clockseq & 0xff; // `node`\n\n  for (let n = 0; n < 6; ++n) {\n    b[i + n] = node[n];\n  }\n\n  return buf || unsafeStringify(b);\n}\n\nexport default v1;","export default function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}","export default function requiredArgs(required, args) {\n  if (args.length < required) {\n    throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n  }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n  requiredArgs(1, arguments);\n  var argStr = Object.prototype.toString.call(argument);\n\n  // Clone the date\n  if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n    // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n    return new Date(argument.getTime());\n  } else if (typeof argument === 'number' || argStr === '[object Number]') {\n    return new Date(argument);\n  } else {\n    if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n      // eslint-disable-next-line no-console\n      console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n      // eslint-disable-next-line no-console\n      console.warn(new Error().stack);\n    }\n    return new Date(NaN);\n  }\n}","var roundingMap = {\n  ceil: Math.ceil,\n  round: Math.round,\n  floor: Math.floor,\n  trunc: function trunc(value) {\n    return value < 0 ? Math.ceil(value) : Math.floor(value);\n  } // Math.trunc is not supported by IE\n};\n\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n  return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n  var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n  utcDate.setUTCFullYear(date.getFullYear());\n  return date.getTime() - utcDate.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n  requiredArgs(1, arguments);\n  var date = toDate(dirtyDate);\n  date.setHours(0, 0, 0, 0);\n  return date;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n *   new Date(2011, 6, 3, 0, 1),\n *   new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var startOfDayLeft = startOfDay(dirtyDateLeft);\n  var startOfDayRight = startOfDay(dirtyDateRight);\n  var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n  var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n  // Round the number of days to the nearest integer\n  // because the number of milliseconds in a day is not constant\n  // (e.g. it's different in the day of the daylight saving time clock shift)\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n  return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n  defaultOptions = newOptions;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfWeek(dirtyDate, options) {\n  var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n  requiredArgs(1, arguments);\n  var defaultOptions = getDefaultOptions();\n  var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n  // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n  }\n  var date = toDate(dirtyDate);\n  var day = date.getDay();\n  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n  date.setDate(date.getDate() - diff);\n  date.setHours(0, 0, 0, 0);\n  return date;\n}","export default function toInteger(dirtyNumber) {\n  if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n    return NaN;\n  }\n  var number = Number(dirtyNumber);\n  if (isNaN(number)) {\n    return number;\n  }\n  return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n *   new Date(2014, 6, 20),\n *   new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n *   new Date(2014, 6, 20),\n *   new Date(2014, 6, 5),\n *   { weekStartsOn: 1 }\n * )\n * //=> 2\n */\nexport default function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, options) {\n  requiredArgs(2, arguments);\n  var startOfWeekLeft = startOfWeek(dirtyDateLeft, options);\n  var startOfWeekRight = startOfWeek(dirtyDateRight, options);\n  var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n  var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight);\n\n  // Round the number of days to the nearest integer\n  // because the number of milliseconds in a week is not constant\n  // (e.g. it's different in the week of the daylight saving time clock shift)\n  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Return a descriptor removing the value and returning a getter\n * The getter will return a .bind version of the function\n * and memoize the result against a symbol on the instance\n */\nexport function boundMethod(target, key, descriptor) {\n  var fn = descriptor.value;\n\n  if (typeof fn !== 'function') {\n    throw new TypeError(\"@boundMethod decorator can only be applied to methods not: \".concat(_typeof(fn)));\n  } // In IE11 calling Object.defineProperty has a side-effect of evaluating the\n  // getter for the property which is being replaced. This causes infinite\n  // recursion and an \"Out of stack space\" error.\n\n\n  var definingProperty = false;\n  return {\n    configurable: true,\n    get: function get() {\n      // eslint-disable-next-line no-prototype-builtins\n      if (definingProperty || this === target.prototype || this.hasOwnProperty(key) || typeof fn !== 'function') {\n        return fn;\n      }\n\n      var boundFn = fn.bind(this);\n      definingProperty = true;\n      Object.defineProperty(this, key, {\n        configurable: true,\n        get: function get() {\n          return boundFn;\n        },\n        set: function set(value) {\n          fn = value;\n          delete this[key];\n        }\n      });\n      definingProperty = false;\n      return boundFn;\n    },\n    set: function set(value) {\n      fn = value;\n    }\n  };\n}\n/**\n * Use boundMethod to bind all methods on the target.prototype\n */\n\nexport function boundClass(target) {\n  // (Using reflect to get all keys including symbols)\n  var keys; // Use Reflect if exists\n\n  if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {\n    keys = Reflect.ownKeys(target.prototype);\n  } else {\n    keys = Object.getOwnPropertyNames(target.prototype); // Use symbols if support is provided\n\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      keys = keys.concat(Object.getOwnPropertySymbols(target.prototype));\n    }\n  }\n\n  keys.forEach(function (key) {\n    // Ignore special case target method\n    if (key === 'constructor') {\n      return;\n    }\n\n    var descriptor = Object.getOwnPropertyDescriptor(target.prototype, key); // Only methods need binding\n\n    if (typeof descriptor.value === 'function') {\n      Object.defineProperty(target.prototype, key, boundMethod(target, key, descriptor));\n    }\n  });\n  return target;\n}\nexport default function autobind() {\n  if (arguments.length === 1) {\n    return boundClass.apply(void 0, arguments);\n  }\n\n  return boundMethod.apply(void 0, arguments);\n}","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nenum ActionAnalyticsValue {\n    AddFolder = 'create',\n    Archive = 'discard',\n    CopyLink = 'copy-link',\n    Duplicate = 'duplicate',\n    // NOTE: there is no SDM definition for this\n    Export = 'export',\n    // NOTE: there is no SDM definition for this\n    Import = 'import',\n    Move = 'move',\n    // NOTE: there is no SDM definition for this\n    Open = 'open',\n    PermDelete = 'delete',\n    Pin = 'make-available-offline',\n    Rename = 'rename',\n    Restore = 'restore',\n    // NOTE: there is no SDM definition for this\n    UnPin = 'make-available-online',\n    Preview = 'preview',\n    Schedule = 'schedule',\n    Leave = 'leave',\n}\nenum UsageMetricPhase {\n    ActionStart = 'start',\n    ActionComplete = 'complete',\n    ActionCancelled = 'cancelled',\n    ActionError = 'error',\n}\n\nexport { ActionAnalyticsValue, UsageMetricPhase };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/** Extract the inner type T from an Array<T> */\ntype ValueOf<T> = T extends Map<string, infer U> ? U : never;\n\nexport type ISubscribableCallbacks = { [key in string]: Map<string, (...args: any[]) => any> };\n\n/**\n * Extend this class to support multiple clients providing separate callbacks for the same events.\n *\n * @see AssetSyncStateStore for example usage\n * @see CloudStatusStore for example usage\n */\nexport class Subscribable<Fns extends ISubscribableCallbacks> {\n    private subscriptions: Fns = {} as Fns;\n\n    protected notifySubscribers<T extends keyof Fns>(\n        name: T,\n        ...values: Parameters<ValueOf<Fns[T]>>\n    ) {\n        this.initSubscriptionMap(name);\n\n        for (const fn of this.subscriptions[name].values()) {\n            // @ts-ignore TS doesn't know which particular callback fn is here,\n            // but it does enforce it correctly when fireCallbackForSubscribers is called\n            fn(...values);\n        }\n    }\n\n    public subscribe<T extends keyof Fns>(name: T, key: string, fn: ValueOf<Fns[T]>) {\n        this.initSubscriptionMap(name);\n\n        // @ts-ignore TS doesn't know which particular callback fn is here,\n        // but it does enforce it correctly when subscribe is called\n        this.subscriptions[name].set(key, fn);\n    }\n\n    public unsubscribe<T extends keyof Fns>(name: T, key: string) {\n        this.initSubscriptionMap(name);\n\n        this.subscriptions[name].delete(key);\n    }\n\n    private initSubscriptionMap<T extends keyof Fns>(name: T) {\n        if (!this.subscriptions[name]) {\n            this.subscriptions[name] = new Map() as Fns[T];\n        }\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { UsageMetricPhase } from './metrics';\nimport type IMenuItem from '../types/IMenuItem';\nimport type ICollectionItem from '../types/ICollectionItem';\nimport type { IAnalyticsData } from '../types/CollectionViewMetrics';\nimport { Subscribable } from './Subscribable';\nimport { hasAny } from '@csc/common';\n\nconst DEFAULT_DISABLED_TOOLTIP_MSG_ID = 'tooltip.offline.general';\nconst DEFAULT_CORESYNCDOWN_DISABLED_TOOLTIP_MSG_ID = 'item.coresyncdown.cloudonly';\n\ninterface ActionArgs<TCollectionItem extends ICollectionItem = ICollectionItem>\n    extends IMenuItem<TCollectionItem> {\n    /**\n     * Identifier for the i18n string for the action menu button label\n     * (only used if it's different from the header label)\n     */\n    actionMenuLabel?: string;\n\n    /**\n     * For metrics. Defaults to `value`.\n     */\n    analyticsValue?: string;\n\n    /**\n     * child Actions for submenus\n     */\n    children?: ActionArgs<TCollectionItem>[];\n\n    /**\n     * If true, before {@link Action#execute} is run, the current selection is cleared.\n     * @default true\n     */\n    resetSelection?: boolean;\n\n    /**\n     * Allows Action to filter out some of the selections before continuing to {@link Action#execute}.\n     * For example, see {@link Deleted#permDeleteAction}.\n     * @return Promise<any[]> Array of arguments to be passed on to {@link Action#execute}, the first\n     *         item *must* be an array of ICollectionItem[]. If it is empty, the action is cancelled.\n     * @default Immediately resolves with all elements\n     */\n    beforeExecute?(\n        operationStore: any,\n        elements: TCollectionItem[],\n    ): Promise<[TCollectionItem[], ...any[]]>;\n\n    /**\n     * Performs the action asynchronously. Typically a call to DocumentStore operation.\n     * @param elements {ICollectionItem[]} the elements to act upon\n     * @param correlationId {string} Used for metrics, to track user interaction from click to service call completion\n     * @param moreArgs {any[]} Additional arguments from Action.beforeExecute, e.g. {@link CloudDocuments#moveAction}\n     */\n    execute(\n        operationStore: any,\n        elements: TCollectionItem[],\n        correlationId?: string,\n        ...moreArgs: any[]\n    ): Promise<boolean | undefined | void>;\n\n    /**\n     * See @react/react-spectrum/Button#quiet\n     * @default true\n     */\n    buttonQuiet?: boolean;\n\n    /**\n     * When true, Action handlers should use the current folder as the sole element to\n     * isVisible, execute, etc.\n     */\n    isFolderAction?: boolean;\n\n    /**\n     * When true, the action will be show over the thumbnail of each asset in the grid view\n     */\n    isQuickAction?: boolean;\n\n    /**\n     * Get analytics data specific to the action\n     */\n    getAnalyticsOverrides?(\n        element: TCollectionItem | undefined,\n        phase: UsageMetricPhase,\n    ): IAnalyticsData;\n\n    /**\n     * [CCXCD-11852] Group actions into sections and add divider between them\n     */\n    groupName?: string;\n\n    /**\n     * Denotes whether this action should not block the UI\n     * If set to true, it prevents loading spinner from showing\n     * default value is set to false\n     */\n    isNonBlocking?: boolean;\n}\n\n// subclasses define required props like execute() so their additional properties interfaces can\n// extend this interface so those required props become optional.\ninterface OptionalActionArgs<TCollectionItem extends ICollectionItem = ICollectionItem>\n    extends Partial<ActionArgs<TCollectionItem>> {}\n\nexport type IActionSubscribablePayload<TCollectionItem extends ICollectionItem = ICollectionItem> =\n    (element: TCollectionItem, action: Action<TCollectionItem>) => Promise<void>;\n\nexport type ActionSubscribableCallbacks<TCollectionItem extends ICollectionItem = ICollectionItem> =\n    {\n        dialogOpen: Map<string, IActionSubscribablePayload<TCollectionItem>>;\n        dialogClose: Map<string, IActionSubscribablePayload<TCollectionItem>>;\n        executing: Map<string, IActionSubscribablePayload<TCollectionItem>>;\n        executed: Map<string, IActionSubscribablePayload<TCollectionItem>>;\n        canceled: Map<string, IActionSubscribablePayload<TCollectionItem>>;\n    };\n\n// this is the generic interface to be published/exported for alternate implementations\ninterface IAction<TCollectionItem extends ICollectionItem = ICollectionItem>\n    extends Required<ActionArgs<TCollectionItem>> {}\n\n// This interface avoids re-defining fields that are on IActionArgs\ninterface Action<TCollectionItem extends ICollectionItem = ICollectionItem>\n    extends Required<ActionArgs<TCollectionItem>> {}\n\nclass Action<TCollectionItem extends ICollectionItem = ICollectionItem>\n    extends Subscribable<ActionSubscribableCallbacks<TCollectionItem>>\n    implements IAction<TCollectionItem>\n{\n    // actions are enabled by default unless they have a disabled tooltip message\n    isEnabled(elements: TCollectionItem[]): boolean {\n        return this.getDisabledTooltipMsgId ? this.getDisabledTooltipMsgId(elements) === '' : true;\n    }\n\n    constructor(args: ActionArgs<TCollectionItem>) {\n        super();\n        const props = {\n            analyticsValue: args.value,\n            resetSelection: true,\n            buttonVariant: 'action',\n            buttonQuiet: true,\n            isFolderAction: false,\n            isQuickAction: false,\n            isVisible: (elements) => hasAny(elements),\n            getDisabledTooltipMsgId: () => '',\n            getAnalyticsOverrides: () => ({}),\n            isNonBlocking: false,\n            ...args,\n        };\n        Object.assign(this, props);\n    }\n}\n\nexport default Action;\nexport {\n    DEFAULT_DISABLED_TOOLTIP_MSG_ID,\n    DEFAULT_CORESYNCDOWN_DISABLED_TOOLTIP_MSG_ID,\n    UsageMetricPhase,\n};\nexport type { ActionArgs, OptionalActionArgs, IAction };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { expressElementType } from '@csc/common';\nexport const FOCUS_ITEM_CLASS = 'cdo-focusItem';\n\nexport type RootFolderType = 'cloud-content';\nexport const ROOT_FOLDER_PATH: RootFolderType = 'cloud-content';\nexport type ArchiveFolderType = 'cloud-content-archive';\nexport const ARCHIVE_FOLDER_PATH: ArchiveFolderType = 'cloud-content-archive';\nexport type SharedWithYouType = 'shared-with-you';\n// SHARED_WITH_YOU_PATH only used for host apps that use routing, like CCD\nexport const SHARED_WITH_YOU_PATH: SharedWithYouType = 'shared-with-you';\nexport type ReviewLinksType = 'review-links';\nexport const REVIEW_LINKS_PATH: ReviewLinksType = 'review-links';\nexport type CDORootPathType =\n    | RootFolderType\n    | ArchiveFolderType\n    | SharedWithYouType\n    | ReviewLinksType;\n\nexport const TOAST_DEFAULT_DELAY = 8000; // ms\nexport const TOAST_ERROR_DELAY = 3000; // ms\nexport const TOAST_EXCEEDED_QUOTA_DELAY = 3000; // ms\n\nexport const MOBILE_VIEW_BREAKPOINT = 768; // px\nexport const BREADCRUMB_MAX_ITEMS = 3;\n\nexport enum ProcessingState {\n    Pending = 'pending',\n    Fetching = 'fetching',\n    Done = 'done',\n    Error = 'error',\n    ReadyToExecute = 'readyToExecute',\n    Processing = 'processing',\n    Idle = 'idle',\n}\n\nexport type OperationState = Extract<\n    ProcessingState,\n    | ProcessingState.Processing\n    | ProcessingState.Idle\n    | ProcessingState.Pending\n    | ProcessingState.ReadyToExecute\n>;\n\n/*\n * In order to keep views agnostic of the data sources (e.g., Cloud Docs vs. Recents vs. Resources),\n * separate UX sorting enum from API sorting parameters.\n */\n\nexport enum UXSortBy {\n    accessDate = 'accessDate',\n    createDate = 'createDate',\n    modifiedDate = 'modifiedDate',\n    none = 'none', // Specifically to signify no sorting\n    shareDate = 'shareDate',\n    size = 'size',\n    title = 'title',\n}\n\n/**\n * Map of UXSortBy keys to values used for ingest metrics\n */\nexport const UX_SORT_TO_INGEST: { [key: string]: string } = {\n    [UXSortBy.accessDate]: 'Date Opened',\n    [UXSortBy.createDate]: 'Date Created',\n    [UXSortBy.modifiedDate]: 'Date Modified',\n    [UXSortBy.shareDate]: 'Date Shared',\n    [UXSortBy.size]: 'Size',\n    [UXSortBy.title]: 'Name',\n    // Used for projects\n    ['name']: 'Name',\n    ['created']: 'Created',\n};\nexport enum UXSortDir {\n    asc = 'asc',\n    desc = 'desc',\n}\n\n/**\n * Sort options that area only available on views that use ACP data.\n * (Currently everything but shareDate)\n */\nexport type UXSortByForACP = Exclude<UXSortBy, UXSortBy.shareDate>;\nexport const BYTE_CONVERSION_BASE = 1024;\nexport const INGEST_DEBOUNCE_VALUE = 5000;\n\nexport enum ModeType {\n    organizer = 'organizer',\n    open = 'open',\n    saveAs = 'saveAs',\n    saveAsCopy = 'saveAsCopy',\n    saveToFolder = 'saveToFolder',\n    linkAssets = 'linkAssets',\n    place = 'place',\n    placeLinkOrEmbed = 'placeLinkOrEmbed',\n    move = 'move',\n    export = 'export',\n    copy = 'copy',\n}\n\nexport enum ViewMode {\n    List = 'list',\n    Grid = 'grid',\n}\n\nexport interface IOnOpFail {\n    (element?: any, error?: any): void;\n}\n\nexport const ENTER_KEY_CODE = 13;\nexport const SPACE_KEY_CODE = 32;\n\nexport const DEFAULT_TOOLTIP_DELAY = 500;\nexport const MINIMUM_ACCEPTED_TIMEOUT = 100;\nexport const CCD_CONTENTVIEW_RESIZE_EVENT = 'ccd-contentview-resize';\nexport const CDO_UPDATE_SCROLL_POSITION = 'cdo-update-scroll-position';\n\n// TODO: Will deprecate in favor of advanced filter config: https://jira.corp.adobe.com/browse/CCXCD-11569\nexport const MIMETYPES = {\n    AERO: 'application/vnd.adobe.real+dcx',\n    AURA: 'application/vnd.adobe.hz.aura+dcx',\n    ILLUSTRATOR_DOCUMENT: 'application/illustrator',\n    ILLUSTRATOR_CLOUD_DOCUMENT: 'document/vnd.adobe.illustrator+dcx',\n    FR_CLOUD_DOCUMENT: 'application/vnd.adobe.gemini+dcx',\n    PS_DOCUMENT: 'application/photoshop',\n    PS_DOCUMENT_LOCAL: 'application/vnd.adobe.photoshop',\n    PS_DOCUMENT_LARGE: 'application/photoshop.large',\n    PS_CLOUD_DOCUMENT: 'document/vnd.adobe.psdc+dcx',\n    PS_CLOUD_DOCUMENT_DEP: 'document/vnd.adobe.cpsd+dcx',\n    XD_CLOUD_DOCUMENT: 'application/vnd.adobe.xd.cloudproject+dcx',\n    XD_DESIGN_SPECS: 'application/vnd.adobe.uxdesign.designspec+dcx',\n    XD_PROTOTYPE: 'application/vnd.adobe.uxdesign.prototype+dcx',\n    XD_SHAREDARTIFACT: 'application/vnd.adobe.xd.sharedartifact+dcx',\n    MIGRATED_GEMINI: 'document/vnd.adobe.gemini+dcx',\n    INDESIGN_ARTIFACT: 'application/pdf',\n    INDESIGN_DOCUMENT: 'application/x-indesign',\n    INDESIGN_CLOUD_DOCUMENT: 'document/vnd.adobe.indesign+dcx',\n    INDESIGN_CLOUD_DOCUMENT_LIVE: 'document/vnd.adobe.indesign.live+dcx',\n    SHARED_CLOUD_COLLECTION: 'application/x-sharedcloud-collection+json',\n    LIBRARIES: 'application/vnd.adobe.library+dcx',\n    OFFICE_DOCUMENT_PRESENTATION:\n        'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n    OFFICE_DOCUMENT_SHEET: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n    OFFICE_DOCUMENT_WORD_DOCUMENT:\n        'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n    WORD: 'application/msword',\n    MS_EXCEL: 'application/msexcel',\n    POWERPOINT: 'application/vnd.ms-powerpoint',\n    OPENTEXT: 'application/vnd.oasis.opendocument.text',\n    OFFICE: 'application/x-tika-msoffice',\n    XLSMACRO: 'application/vnd.ms-excel.sheet.macroenabled.12',\n    XLS: 'application/vnd.ms-excel',\n    PDF: 'application/pdf',\n    THREEDSCENE: 'model/gltf-binary',\n};\n\nexport const DC_OFFICE_FILES = [\n    MIMETYPES.OFFICE_DOCUMENT_WORD_DOCUMENT, // DOCX\n    MIMETYPES.OFFICE_DOCUMENT_SHEET, // Sheet\n    MIMETYPES.WORD, // MSWORD\n    MIMETYPES.OFFICE_DOCUMENT_PRESENTATION, // presentation\n    MIMETYPES.MS_EXCEL,\n    MIMETYPES.POWERPOINT, // MSPPT\n    MIMETYPES.OPENTEXT,\n    MIMETYPES.OFFICE,\n    MIMETYPES.XLSMACRO,\n    MIMETYPES.XLS,\n];\n\nexport type SWYFilterType = keyof typeof SWYSupportedFilterOptions;\nexport type RLFilterType = keyof typeof RLSupportedFilterOptions;\nexport type FilterType = SWYFilterType | RLFilterType;\n\nexport const SWYSupportedFilterOptions = {\n    all: [],\n    cloudDocuments: [\n        MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT,\n        MIMETYPES.PS_CLOUD_DOCUMENT,\n        MIMETYPES.PS_CLOUD_DOCUMENT_DEP,\n        MIMETYPES.XD_CLOUD_DOCUMENT,\n        MIMETYPES.INDESIGN_CLOUD_DOCUMENT,\n        MIMETYPES.INDESIGN_CLOUD_DOCUMENT_LIVE,\n        ...expressElementType,\n    ],\n    reviewLinks: [\n        MIMETYPES.XD_PROTOTYPE,\n        MIMETYPES.XD_DESIGN_SPECS,\n        MIMETYPES.XD_SHAREDARTIFACT,\n        MIMETYPES.INDESIGN_ARTIFACT,\n    ],\n    libraries: [MIMETYPES.LIBRARIES],\n    pdf: [MIMETYPES.PDF],\n    officeFiles: DC_OFFICE_FILES,\n};\n\nexport const SWYFilterDisplayNames: Map<SWYFilterType, string> = new Map<SWYFilterType, string>([\n    ['all', 'swy.filter.displayName.all'],\n    ['cloudDocuments', 'swy.filter.displayName.cloudDocuments'],\n    ['reviewLinks', 'swy.filter.displayName.reviewLinks'],\n    ['libraries', 'swy.filter.displayName.libraries'],\n    ['pdf', 'swy.filter.displayName.pdf'],\n    ['officeFiles', 'swy.filter.displayName.officeFiles'],\n]);\n\nexport const RLFilterDisplayNames: Map<RLFilterType, string> = new Map<RLFilterType, string>([\n    ['all', 'rl.filter.displayName.all'],\n    ['reviewLinksPs', 'rl.filter.displayName.reviewLinksPs'],\n    ['reviewLinksAi', 'rl.filter.displayName.reviewLinksAi'],\n    ['reviewLinksId', 'rl.filter.displayName.reviewLinksId'],\n    ['reviewLinksXD', 'rl.filter.displayName.reviewLinksXD'],\n    ['aero', 'rl.filter.displayName.aero'],\n    ['scenes', 'rl.filter.displayName.scenes'],\n]);\n\nexport const RLSupportedFilterOptions = {\n    all: [],\n    reviewLinksAi: [MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT, MIMETYPES.ILLUSTRATOR_DOCUMENT],\n    reviewLinksId: [MIMETYPES.INDESIGN_DOCUMENT],\n    reviewLinksPs: [\n        MIMETYPES.PS_CLOUD_DOCUMENT,\n        MIMETYPES.PS_CLOUD_DOCUMENT_DEP,\n        MIMETYPES.PS_DOCUMENT,\n        MIMETYPES.PS_DOCUMENT_LOCAL,\n    ],\n    reviewLinksXD: [MIMETYPES.XD_DESIGN_SPECS, MIMETYPES.XD_PROTOTYPE, MIMETYPES.XD_SHAREDARTIFACT],\n    aero: [MIMETYPES.AERO],\n    scenes: [MIMETYPES.THREEDSCENE],\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\n\nimport type { WrappedComponentProps } from 'react-intl';\nimport { injectIntl, FormattedMessage } from 'react-intl';\nimport type Action from '../utils/action';\nimport { DEFAULT_TOOLTIP_DELAY } from '../utils/constants';\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\n\ninterface ActionButtonProps {\n    action: Action;\n    onClick: (action: Action) => void;\n    enabled: boolean;\n    disabledTooltipMsgId: string;\n    withoutLabel?: boolean;\n    slot?: string;\n    tabIndex?: number;\n    className?: string;\n    staticColor?: 'white' | 'black';\n}\n\nclass ActionButton extends React.Component<ActionButtonProps & WrappedComponentProps> {\n    private onClick = () => {\n        const { onClick, action } = this.props;\n        onClick(action);\n    };\n\n    render() {\n        const {\n            intl,\n            action,\n            className,\n            enabled,\n            disabledTooltipMsgId,\n            withoutLabel = false,\n            slot,\n            tabIndex,\n            staticColor,\n        } = this.props;\n        const labelText =\n            action.label && !withoutLabel ? intl.formatMessage({ id: action.label }) : null;\n        const icon = action.icon && React.cloneElement(action.icon, { size: 'S' });\n\n        const unwrappedButton = (\n            <Button\n                id={`ActionButton_${action.value}`}\n                variant={action.buttonVariant}\n                quiet={action.buttonQuiet}\n                icon={<Icon size=\"S\">{icon}</Icon>}\n                onClick={this.onClick}\n                label={labelText}\n                disabled={!enabled}\n                slot={slot}\n                tabIndex={tabIndex}\n                className={className}\n                staticColor={staticColor}\n            />\n        );\n\n        if (enabled) {\n            return unwrappedButton;\n        }\n\n        return (\n            <OverlayTrigger\n                className=\"cdo-ActionButton_Overlay\"\n                placement=\"top\"\n                disabled={enabled}\n                trigger={['hover']}\n                delayShow={DEFAULT_TOOLTIP_DELAY}\n            >\n                {unwrappedButton}\n                <Tooltip>\n                    <FormattedMessage id={disabledTooltipMsgId} />\n                </Tooltip>\n            </OverlayTrigger>\n        );\n    }\n}\n\nexport default injectIntl(ActionButton);\nexport { ActionButton as ActionButtonForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { createContext, useContext } from 'react';\nimport type ICollectionItem from '../types/ICollectionItem';\nimport type Action from '../utils/action';\nimport { ViewMode } from '../utils/constants';\nimport type { IFilter } from '../types/IFilter';\nimport type { ISelectionManager } from '../types/ISelectionManager';\n\nexport type ICollectionViewContext<TCollectionItem extends ICollectionItem = ICollectionItem> = {\n    collectionViewRef?: React.RefObject<HTMLDivElement>;\n    elements: TCollectionItem[];\n    selectedElements: TCollectionItem[];\n    viewMode: ViewMode;\n    onFolderActionClick: (action: Action<TCollectionItem>) => void;\n    filters: IFilter[];\n    selectionManager?: ISelectionManager;\n};\n\n// TODO: Make CollectionViewContext's value start as `null` so that we don't fill with bogus values\n// just throw an error in `useCollectionViewContext` if it's still null\nexport const CollectionViewContext = createContext<ICollectionViewContext>({\n    collectionViewRef: undefined,\n    elements: [],\n    selectedElements: [],\n    viewMode: ViewMode.Grid,\n    onFolderActionClick: () => {\n        throw new Error('CollectionViewContext not initialized');\n    },\n    filters: [],\n    selectionManager: undefined,\n});\n\nexport default function useCollectionViewContext<\n    TCollectionItem extends ICollectionItem = ICollectionItem,\n>(): ICollectionViewContext<TCollectionItem> {\n    const collectionViewContext = useContext(CollectionViewContext);\n    return collectionViewContext as ICollectionViewContext<TCollectionItem>;\n}\n\nexport function CVContextProvider<TCollectionItem extends ICollectionItem = ICollectionItem>(\n    props: React.PropsWithChildren<ICollectionViewContext<TCollectionItem>>,\n): JSX.Element {\n    const { children, ...rest } = props;\n    return <CollectionViewContext.Provider value={rest}>{children}</CollectionViewContext.Provider>;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport { observer } from 'mobx-react';\nimport DropdownButton from '@ccx-public/spectrum-wrapper/dist/DropdownButton';\nimport More from '@react/react-spectrum/Icon/More';\n\nimport type Action from '../utils/action';\nimport { skipPropagation } from '@csc/common';\n\nimport type { IItemsActionClick } from './CDOView';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { injectIntl } from 'react-intl';\nimport { MenuDivider, MenuItem, SubMenu } from '@ccx-public/spectrum-wrapper/dist/Menu';\nimport type ICollectionItem from '../types/ICollectionItem';\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport I18NCollectionView from '../utils/i18n';\nimport { CollectionViewContext } from '../contexts/CollectionViewContext';\n\n/**\n * Interfaces\n */\ninterface ActionMenuProps\n    extends Pick<\n        React.ComponentProps<typeof DropdownButton>,\n        'label' | 'disabled' | 'icon' | 'placement' | 'tabIndex'\n    > {\n    elements: ICollectionItem[];\n    onActionButtonClick: IItemsActionClick;\n    actionMenuItems?: Action[];\n    contextMenuCoords?: { x: number; y: number };\n    isContextMenu?: boolean;\n    isFeatureFlagEnabled?: (feature: string) => boolean;\n    open?: boolean;\n}\n\n@observer\nclass ActionMenu extends React.Component<ActionMenuProps & WrappedComponentProps> {\n    static contextType = CollectionViewContext;\n    static defaultProps: Partial<ActionMenuProps & WrappedComponentProps> = {\n        disabled: false,\n        actionMenuItems: [],\n        isContextMenu: false,\n        placement: 'bottom-end',\n    };\n\n    private getActiveItems = (actionMenuItems: Action[]): Action[] => {\n        return actionMenuItems.filter(\n            (item) => Boolean(item) && item.isVisible(this.props.elements),\n        );\n    };\n\n    private getActionByValue = (value: string, actions: Action[]): Action | undefined => {\n        for (const action of actions) {\n            if (action.value === value) {\n                return action;\n            } else if (action.children) {\n                const childAction = this.getActionByValue(value, action.children as Action[]);\n                if (childAction) {\n                    return childAction;\n                }\n            }\n        }\n    };\n\n    private onSelect = (value: string) => {\n        const { actionMenuItems, onActionButtonClick, elements } = this.props;\n        const action = this.getActionByValue(value, this.getActiveItems(actionMenuItems));\n        // do actions\n        onActionButtonClick(action, elements);\n    };\n\n    private renderMenuItem = (action: Action) => {\n        const { intl, isFeatureFlagEnabled } = this.props;\n        const messageId = action.actionMenuLabel || action.label;\n        const label = I18NCollectionView.isMessageDefined(intl, messageId)\n            ? intl.formatMessage({ id: messageId })\n            : messageId;\n\n        const testid = `cdo-action-menu-item-${action.value}`;\n\n        if (action.children?.length) {\n            const subMenuActions = this.getActiveItems((action.children as Action[]) ?? []);\n            if (subMenuActions.length) {\n                return (\n                    <SubMenu data-testid={testid} label={label}>\n                        {subMenuActions.map((subMenuAction) => {\n                            return this.renderMenuItem(subMenuAction);\n                        })}\n                    </SubMenu>\n                );\n            }\n            return null;\n        }\n\n        const icon = action.icon && React.cloneElement(action.icon, { size: 'S' });\n        return (\n            <MenuItem\n                key={action.value}\n                id={`CDOItem_ActionMenu_${action.value}`}\n                value={action.value}\n                disabled={!action.isEnabled?.(this.props.elements)}\n                style={{ minWidth: '176px' }}\n                tabIndex={-1}\n                icon={\n                    isFeatureFlagEnabled?.('enableIconsWithActions') ? (\n                        <Icon size=\"S\">{icon}</Icon>\n                    ) : undefined\n                }\n                data-testid={testid}\n            >\n                {label}\n            </MenuItem>\n        );\n    };\n\n    /**\n     * Component renderer.\n     * @return {ReactElement} markup\n     */\n    render() {\n        const {\n            actionMenuItems,\n            disabled,\n            isContextMenu,\n            isFeatureFlagEnabled,\n            intl,\n            label,\n            icon,\n            placement,\n            tabIndex,\n            open,\n        } = this.props;\n        const { collectionViewRef } = this.context;\n        // Remove disabled/hidden actions, which are represented as 'false'\n        const buttons = this.getActiveItems(actionMenuItems);\n\n        //TODO: This code will be investigated if really needed to prevent console errors during first time load\n        //when context menu is not yet rendered\n        if (!buttons.length && !isContextMenu) {\n            return null;\n        }\n        /**\n         * Each action is assigned a group name\n         * The ordering of actions is dictated by the order in tabActions array.\n         * We assume that actions belonging to a group will be ordered consecutively.\n         *\n         * Here, we iterate over each action, and insert a divider when\n         * there is a change in group between two consecutive actions.\n         */\n        const menuItems = [];\n        let grp;\n        buttons.forEach((button, index) => {\n            const showDivider = grp !== button.groupName && index !== 0;\n            grp = button.groupName;\n            if (showDivider) {\n                menuItems.push(<MenuDivider key={`divider-${index}`} className=\"cdo-divider\" />);\n            }\n            menuItems.push(this.renderMenuItem(button));\n        });\n        const iconEl = icon ? React.cloneElement(icon, { size: 'S' }) : undefined;\n        const actionMenuIcon = icon ? (\n            <Icon key=\"icon-key\" size=\"S\">\n                {iconEl}\n            </Icon>\n        ) : (\n            <More key=\"more-icon-key\" size=\"S\" />\n        );\n\n        return (\n            <div onKeyDown={skipPropagation}>\n                <DropdownButton\n                    disabled={disabled}\n                    quiet\n                    icon={actionMenuIcon}\n                    id=\"CDOItem_ActionMenu\"\n                    className=\"cdo-ActionMenu\"\n                    onSelect={this.onSelect}\n                    tabIndex={tabIndex ?? -1}\n                    /**\n                     * This prop exists on the component, but spectrum-wrapper needs to be updated\n                     * to recognize it in the typescript definition. This ts-ignore can be\n                     * removed once that's done.\n                     * @ts-ignore */\n                    boundariesElement={() => collectionViewRef?.current}\n                    placement={placement}\n                    label={label && intl.formatMessage({ id: label })}\n                    open={open}\n                >\n                    {menuItems}\n                </DropdownButton>\n            </div>\n        );\n    }\n}\n\nexport default injectIntl(ActionMenu);\nexport { ActionMenu as ActionMenuForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * @param path The raw path to normalize\n * @param root Serves as both the fallback value as well as the start of the path to trim off repository scoping\n * @returns A normalized path *without* a leading slash\n */\nexport default function normalizePath(path: string = ''): string {\n    // remove leading and trailing slash, if any\n    const fixedSlashes = path\n        .split('/')\n        .filter((s) => s)\n        .join('/');\n    // TODO: Remove this trimming once SAM.js is updated to know that `/users/<userID>/cloud-content`\n    // and `/cloud-content` mean the same thing.\n    // TODO: Revisit this if it becomes possible to have multiple users within the same view, because\n    // if you query SAM for a path without providing a repoID it assumes the current user.\n    // convert `/users/*/etc` to `/etc`\n    const scoped = fixedSlashes.replace(/^\\/?users\\/[^/]+/, '');\n    return scoped;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport normalizePath from './normalize-path';\n\n/**\n * Given a file or folder path, return the normalized parent path.\n *\n * @param path {String} the folder or file path\n */\nfunction deriveParentPath(path: string): string {\n    const normalized = normalizePath(path);\n    return normalized.split('/').slice(0, -1).join('/');\n}\n\nexport default deriveParentPath;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport Button from '@react/react-spectrum/Button';\nimport ChevronLeft from '@react/react-spectrum/Icon/ChevronLeft';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport deriveParentPath from '../utils/derive-parent-path';\nimport { DEFAULT_TOOLTIP_DELAY } from '../utils/constants';\n\nimport '../styles/BackButton.css';\n\nexport interface ICDOBackButtonProps {\n    title: string;\n    currentPath: string;\n    onPathClick: (path: string) => void;\n}\n\nconst BackButton = ({ title, currentPath, onPathClick }: ICDOBackButtonProps) => {\n    const getParentPath = () => {\n        // if no currentPath, back button will display as page title only\n        return currentPath ? deriveParentPath(currentPath) : null;\n    };\n\n    const getCurrentPageTitle = (): string => {\n        const paths = currentPath.split('/');\n        return paths.pop();\n    };\n\n    const handleBackButtonClick = (): void => {\n        onPathClick(getParentPath());\n    };\n\n    const viewTitle = getParentPath() ? getCurrentPageTitle() : title;\n\n    return (\n        <div id=\"BackButton\">\n            {getParentPath() && (\n                <Button\n                    className=\"cdo-BackButton_button\"\n                    quiet\n                    size=\"XS\"\n                    variant=\"tool\"\n                    icon={<ChevronLeft />}\n                    onClick={handleBackButtonClick}\n                />\n            )}\n            <OverlayTrigger placement=\"right\" trigger={['hover']} delayShow={DEFAULT_TOOLTIP_DELAY}>\n                <div className=\"cdo-BackButton_heading\" data-testid=\"BackButtonTitle\">\n                    {viewTitle}\n                </div>\n                <Tooltip>{viewTitle}</Tooltip>\n            </OverlayTrigger>\n        </div>\n    );\n};\n\nexport default BackButton;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\nimport Wait from '@react/react-spectrum/Wait';\n\nimport '../styles/Busy.css';\n\nconst Busy = ({ id = 'WaitSpinner', size = 'L', className = '', ...props }) => (\n    <div className={classNames('cdo-busy', className)} {...props} id={id}>\n        <Wait size={size} />\n    </div>\n);\n\nexport default Busy;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nconst platform = global && global.process && global.process.platform;\n\n/**\n * Simple utility container.\n */\nclass Utils {\n    /**\n     * Determine if we're currently running on UXP\n     * @returns {boolean}\n     */\n    static usingUXP() {\n        return Boolean(window.navigator.userAgent.indexOf('UXP') > -1);\n    }\n\n    static getResizeElement() {\n        // UXP currently does not bubble up the resize event to the window but\n        // it does dispatch the event to every DOM node up to document.\n        return Utils.usingUXP() ? document : window;\n    }\n}\n\nexport default Utils;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Utils from './utils';\n\nexport enum Platform {\n    mac = 'mac',\n    win = 'win',\n    web = 'web',\n    unset = 'unset',\n}\n\n/**\n * Utility for checking if windows\n */\nexport function isWindows() {\n    return normalizePlatform(navigator.platform) === Platform.win;\n}\n\n/**\n * Get the normalized platform enum based on a provided platform string.\n *\n * @param platformString        platform string to check\n * @return normalized Platform enum.\n */\nexport function normalizePlatform(platformString: string): Platform {\n    if (!platformString) {\n        // '' is falsey\n        return Platform.unset;\n    }\n    const platform = platformString.toLowerCase();\n\n    // UXP can return `darwin` when platform is queried by accessing\n    // the .navigator property; or global.process.platform however,\n    // host data will usually return 'mac' for the platform - so we\n    // need to normalize it for use so we dont have multiple checks\n    if (platform.indexOf('darwin') > -1 || platform.indexOf('mac') > -1) {\n        return Platform.mac;\n    }\n    if (platform.indexOf('win') > -1 || platform.indexOf('uwp') > -1) {\n        return Platform.win;\n    }\n    return Platform.web;\n}\n\n/**\n * Get the platform OS version.\n *\n * @return {String} containing the plaform's OS version.\n */\nexport function platformOsVersion(): string {\n    let osVer = 'Unknown';\n    const wdow = window as any; // get by TypeScript warnings\n    if (Utils.usingUXP() && wdow && wdow.require) {\n        // pull in the UXP 'os' bindings\n        osVer = wdow.require('os').release();\n    }\n    return osVer;\n}\n\n// determine if its a touch device\nexport function isTouchDevice() {\n    const wdow = window as any; // get by TypeScript warnings\n    return (\n        !!(\n            typeof window !== 'undefined' &&\n            ('ontouchstart' in window ||\n                (wdow.DocumentTouch &&\n                    typeof document !== 'undefined' &&\n                    document instanceof wdow.DocumentTouch))\n        ) ||\n        !!(\n            typeof navigator !== 'undefined' &&\n            (window.navigator.maxTouchPoints || wdow.navigator.msMaxTouchPoints)\n        )\n    );\n}\n\n// determine if its a mobile device, matches the media query for mobile devices, the media query has been taken from SWC MatchMediaController\nexport function isMobile() {\n    return window.matchMedia(\n        '(max-width: 700px) and (hover: none) and (pointer: coarse), (max-height: 700px) and (hover: none) and (pointer: coarse)',\n    ).matches;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { normalizePlatform, Platform } from './platform';\n\nenum DragSource {\n    /**\n     * The drag originated from within the CV, dragging an item\n     */\n    SELF = 'collection-view',\n    /**\n     * The drag originated from outside of CV, an external file to import\n     */\n    IMPORT = 'import',\n}\n\ninterface IDropTargetData {\n    dropIndex?: number;\n}\n\ntype AnyDragEvent = DragEvent | React.DragEvent<HTMLDivElement>;\n\nconst CV_DROP_PATH_ATTR = 'data-cv-drop-path';\nconst CV_DROP_CONTEXT_ATTR = 'data-cv-drop-context';\nconst CV_DROP_INDEX_ATTR = 'data-cv-drop-index';\n\nconst CV_DRAG_MIMETYPE = 'application/collection-view.asset-drag';\n\ninterface IDragConfig {\n    source: DragSource;\n}\n\nfunction isCVDragEvent(e: AnyDragEvent) {\n    return e?.dataTransfer?.types?.includes(CV_DRAG_MIMETYPE) ?? false;\n}\nfunction isImportDragEvent(e: AnyDragEvent) {\n    return e?.dataTransfer?.types?.includes('Files') ?? false;\n}\n\nconst DRAG_CONFIGS: Array<[(e: AnyDragEvent) => boolean, IDragConfig]> = [\n    [\n        isCVDragEvent,\n        {\n            source: DragSource.SELF,\n        },\n    ],\n    [\n        isImportDragEvent,\n        {\n            source: DragSource.IMPORT,\n        },\n    ],\n];\n\nfunction getDragSource(e: AnyDragEvent): DragSource | undefined {\n    const config = getDragConfig(e);\n    return config && config.source;\n}\n\nfunction getDragConfig(e: AnyDragEvent): IDragConfig | undefined {\n    const match = DRAG_CONFIGS.find(([check, cfg]) => check(e));\n    if (!match) {\n        return undefined;\n    }\n\n    const [chk, config] = match;\n    return config;\n}\n\nfunction hasCopyModifierKey(e: AnyDragEvent): boolean {\n    if (normalizePlatform(navigator.platform) === Platform.mac) {\n        return e.altKey;\n    }\n    return e.ctrlKey;\n}\n\nfunction getDropTargetData(e: AnyDragEvent): IDropTargetData {\n    const dropTargetEl = e.target as HTMLDivElement;\n    if (!(dropTargetEl && dropTargetEl.getAttribute)) {\n        return {};\n    }\n\n    const dropIndex = parseInt(dropTargetEl.getAttribute(CV_DROP_INDEX_ATTR), 10);\n    return {\n        dropIndex,\n    };\n}\n\n/**\n * Use to determine if a dragEnter event is for a parent element and not\n * between any of its children elements.\n *\n * ie if this dragEnter event is entering CDOView entirely for the first time\n * rather than entering one of the many children elements within CDOView\n *\n * @param e The DragEvent\n */\nfunction isFirstDragEnter(e: AnyDragEvent): boolean {\n    const element = e.currentTarget as HTMLElement;\n    const entered = e.target as HTMLElement;\n    const exited = e.relatedTarget as HTMLElement;\n\n    return element.contains(entered) && !element.contains(exited);\n}\n\n/**\n * Use to determine if a dragLeave event is for a parent element and not\n * between any of its children elements.\n *\n * ie if this dragLeave event is leaving CDOView entirely rather than just\n * leaving a ViewItem\n *\n * @param e The DragEvent\n */\nfunction isLastDragLeave(e: AnyDragEvent): boolean {\n    const element = e.currentTarget as HTMLElement;\n    const exited = e.target as HTMLElement;\n    const entered = e.relatedTarget as HTMLElement;\n\n    return element.contains(exited) && !element.contains(entered);\n}\n\nexport {\n    CV_DRAG_MIMETYPE,\n    CV_DROP_CONTEXT_ATTR,\n    CV_DROP_PATH_ATTR,\n    CV_DROP_INDEX_ATTR,\n    getDropTargetData,\n    hasCopyModifierKey,\n    isCVDragEvent,\n    getDragSource,\n    DragSource,\n    isFirstDragEnter,\n    isLastDragLeave,\n};\n\nexport type { AnyDragEvent, IDropTargetData };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { action, observable } from 'mobx';\nimport type { RefObject } from 'react';\nimport React from 'react';\n\nimport type { AnyDragEvent } from '../utils/drag-utils';\nimport { CV_DRAG_MIMETYPE, DragSource, getDragSource, isCVDragEvent } from '../utils/drag-utils';\nimport type ICollectionItem from '../types/ICollectionItem';\nimport type SelectionStore from './SelectionStore';\n\nconst DRAG_CARD_OFFSET = 64; // half of drag card size, in px\n\nclass DragState<TCollectionItem extends ICollectionItem = ICollectionItem> {\n    constructor(selectionStore: SelectionStore<TCollectionItem>) {\n        this.selectionStore = selectionStore;\n    }\n\n    selectionStore: SelectionStore<TCollectionItem>;\n    /**\n     * The asset model being dragged\n     */\n    @observable element: TCollectionItem;\n    /**\n     * ref for the DOM node of the custom drag image, rendered by CDOView. To use a custom drag image, it\n     * must be visible to the user, and manually repositioned to track the mouse pointer.\n     */\n    dragImageRef: RefObject<HTMLDivElement> = React.createRef();\n    /**\n     * The DOM node that started the drag. The dragEnd event requires that the original DOM node be attached\n     * in order to fire.\n     */\n    sourceEl: HTMLDivElement;\n    /**\n     * Navigating or scrolling can cause the DOM node to be unmounted, so it needs to be re-attached and\n     * hidden when this happens, and removed again when drag ends.\n     */\n    sourceElWasReattached: boolean = false;\n    dragSource: DragSource;\n    dragFiles: File[] = [];\n\n    /***\n     * Only used when starting to drag an asset from CDOView.\n     */\n    @action\n    startDragAsset(\n        element: TCollectionItem,\n        allSelectedElements: TCollectionItem[],\n        e: AnyDragEvent,\n    ) {\n        this.element = element;\n        this.sourceEl = e.target as HTMLDivElement;\n        this.selectionStore.clear();\n        this.selectionStore.addSelections(allSelectedElements);\n        e.dataTransfer.setData(CV_DRAG_MIMETYPE, ''); // so event handlers can verify this is a CDO drag event\n        e.dataTransfer.setDragImage(\n            this.dragImageRef.current,\n            -DRAG_CARD_OFFSET,\n            -DRAG_CARD_OFFSET,\n        );\n        e.dataTransfer.effectAllowed = 'move';\n        this.dragSource = DragSource.SELF;\n    }\n\n    /**\n     * Used for first dragEnter event on CDOView\n     */\n    @action\n    startDragImportIfNeeded(e: AnyDragEvent) {\n        // When dragging into CDOView the drag payload is\n        //   a) Assets: drag started in CDOView, left, then came back;\n        //      this.dragSource should already be CDO, and can be ignored.\n        //   b) Files: drag started outside CDOView, so start the\n        //      import workflow.\n        //   c) Other: drag started outside CDOView, but the payload should\n        //      be ignored; this.dragSource should be cleaned up by dragEnd,\n        //      dragLeave, or drop, so no further work should be done here.\n        //\n        // If it seems like this is the right place to fix a problem with\n        // this.dragSource, try to find what's failing to clean up, as there\n        // are likely other bugs.\n        if (getDragSource(e) === DragSource.IMPORT) {\n            this.dragSource = DragSource.IMPORT;\n        }\n    }\n\n    // For convenience, tests\n    isCVDragEvent = isCVDragEvent;\n\n    isDraggingElement(element: TCollectionItem): boolean {\n        return this.selectionStore.isSelected(element);\n    }\n\n    onDragOver(e: AnyDragEvent) {\n        const { clientX: x, clientY: y } = e;\n        if (this.dragSource === DragSource.SELF) {\n            this.reattachSourceEl();\n            const dragImage = this.dragImageRef.current;\n            dragImage.style.visibility = 'visible';\n            // to center the image, both the setDragImage and left/top need to be offset by the same amount\n            dragImage.style.left = `${x - DRAG_CARD_OFFSET}px`;\n            dragImage.style.top = `${y - DRAG_CARD_OFFSET}px`;\n        }\n    }\n\n    reattachSourceEl() {\n        if (this.sourceEl && !this.sourceEl.isConnected) {\n            this.getReattachContainer().appendChild(this.sourceEl);\n            this.sourceEl.style.display = 'none';\n            this.sourceElWasReattached = true;\n        }\n    }\n\n    // encapsulate for tests\n\n    getReattachContainer() {\n        return document.body;\n    }\n\n    @action\n    cleanUp() {\n        if (this.sourceElWasReattached) {\n            this.getReattachContainer().removeChild(this.sourceEl);\n        }\n        this.selectionStore.clear();\n        this.element = null;\n        this.sourceEl = null;\n        this.sourceElWasReattached = false;\n        if (this.dragImageRef.current) {\n            this.dragImageRef.current.style.visibility = 'hidden';\n        }\n        this.dragSource = undefined;\n        this.dragFiles = [];\n    }\n}\n\nexport default DragState;\nexport { DRAG_CARD_OFFSET as DRAG_CARD_OFFSET_FOR_TESTS };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { action, computed, observable } from 'mobx';\nimport { hasAny, hasOnlyOne } from '@csc/common';\nimport type ISelectionBehavior from '../types/ISelectionBehavior';\nimport type ICollectionItem from '../types/ICollectionItem';\n\ninterface IReadOnlySelectionStore<TCollectionItem extends ICollectionItem = ICollectionItem> {\n    selectedElements: TCollectionItem[];\n    isSelected: (element: TCollectionItem) => boolean;\n}\n\ninterface ISelectionStore<TCollectionItem extends ICollectionItem = ICollectionItem>\n    extends IReadOnlySelectionStore {\n    setSelectionBehavior: (newSelectionBehavior: ISelectionBehavior) => void;\n    selectionBehavior: ISelectionBehavior;\n    setSelection: (elements: TCollectionItem[]) => void;\n    addSelections: (elements: TCollectionItem[]) => void;\n    toggleSelection: (element: TCollectionItem) => void;\n    clear: () => void;\n    extendSelection: (\n        elements: TCollectionItem[],\n        targetElement: TCollectionItem,\n        extendSelectionMode: ExtendSelectionMode,\n    ) => void;\n}\n\nenum ExtendSelectionMode {\n    /**\n     * only one item selected at a time\n     */\n    Single,\n    /**\n     * additive/subtractive selection\n     */\n    Toggle,\n    /**\n     * override selection with a range between 2 points\n     */\n    Range,\n}\n\nconst defaultSelectionBehavior: ISelectionBehavior = {\n    single: false,\n    hideFolderCheckbox: false,\n    hideFileCheckbox: false,\n    shouldHideCheckbox: () => false,\n};\n\nclass SelectionStore<TCollectionItem extends ICollectionItem = ICollectionItem>\n    implements ISelectionStore<TCollectionItem>\n{\n    @observable\n    private pivotElement: TCollectionItem | undefined = undefined;\n\n    @observable\n    private readonly selections: Map<string, TCollectionItem>;\n\n    @observable\n    public selectionBehavior: ISelectionBehavior = defaultSelectionBehavior;\n\n    constructor(elements: TCollectionItem[] = []) {\n        this.selections = new Map(\n            elements.map((e: TCollectionItem) => [e.id, e] as [string, TCollectionItem]),\n        );\n    }\n\n    @action\n    setSelectionBehavior(newSelectionBehavior: ISelectionBehavior = defaultSelectionBehavior) {\n        this.selectionBehavior = newSelectionBehavior;\n    }\n\n    @action\n    setSelection(elements: TCollectionItem[]) {\n        this.clear();\n        this.addSelections(elements);\n    }\n\n    @action\n    addSelections(elements: TCollectionItem[]) {\n        elements\n            .filter((e) => !(this.selectionBehavior?.shouldHideCheckbox?.(e) ?? false)) //filter out items that are not selectable\n            .forEach((e) => this.selections.set(e.id, e));\n    }\n\n    @action\n    toggleSelection(element: TCollectionItem) {\n        if (this.selections.has(element.id)) {\n            this.selections.delete(element.id);\n        } else {\n            this.selections.set(element.id, element);\n        }\n    }\n\n    @action\n    clear(): void {\n        this.selections.clear();\n        this.pivotElement = undefined;\n    }\n\n    /**\n     * User-initiated gestures for modifying selection should be handled solely by this method.\n     */\n    @action\n    public extendSelection(\n        /**\n         * All items in the current view that are potential candidates for extending selection\n         */\n        elements: TCollectionItem[],\n        /**\n         * The item that the user clicked (or click-equivalent keyboard event)\n         */\n        targetElement: TCollectionItem,\n        /**\n         * Determines how the selection should be extended:\n         *  - single: targetElement replaces the current selection\n         *  - toggle: targetElement is added or removed from selection\n         *  - range: selection is extended from the \"pivot\" to the targetElement\n         */\n        extendSelectionMode: ExtendSelectionMode,\n    ) {\n        let extendMode = extendSelectionMode;\n\n        // Global single-select mode overrides any user gesture\n        if (this.selectionBehavior.single) {\n            extendMode = ExtendSelectionMode.Single;\n        }\n\n        if (extendMode === ExtendSelectionMode.Range) {\n            // possible for the pivotElement to not be in elements, because it\n            // can be deleted from the collection but will still be in SelectionStore\n            if (\n                (this.selections.has(targetElement.id) && hasOnlyOne(this.selectedElements)) ||\n                !hasAny(this.selectedElements)\n            ) {\n                extendMode = ExtendSelectionMode.Single;\n            }\n        }\n\n        const { pivotElement, lastSelectedElement } = this;\n        switch (extendMode) {\n            case ExtendSelectionMode.Single: {\n                // only a single item is selected at a time\n                this.clear();\n                this.toggleSelection(targetElement);\n                this.pivotElement = targetElement;\n                return;\n            }\n            case ExtendSelectionMode.Range: {\n                // all items between the pivot and the clicked item (inclusively) are selected\n\n                // possible for pivotElement to not be in elements if the element is deleted,\n                // so fallback to last selected element then clicked element\n                const pivotExistsInElements = elements.find(\n                    (element) => element.id === pivotElement.id,\n                );\n                const pivot =\n                    (pivotExistsInElements && pivotElement) || lastSelectedElement || targetElement;\n\n                this.pivotElement = pivot; // if the pivotElement was removed from elements, update it to fallback\n                const pivotIndex: number = elements.findIndex(\n                    (element) => element.id === this.pivotElement.id,\n                );\n\n                const clearContiguous = (start: number, dir: -1 | 1): void => {\n                    for (let i = start + dir; i >= 0 && i < elements.length; i += dir) {\n                        // start at start + dir to keep pivot selected\n                        const current = elements[i];\n\n                        if (this.selectionBehavior?.shouldHideCheckbox?.(current)) {\n                            continue; // Skip items which are not selectable (determined by the return value of shouldHideCheckbox function)\n                        }\n\n                        if (!this.selections.has(current.id)) {\n                            break; // Stop clearing as the contiguous selection is broken\n                        }\n\n                        this.selections.delete(current.id);\n                    }\n                };\n\n                const clickedIndex = elements.findIndex(\n                    (element) => element.id === targetElement.id,\n                );\n\n                if (pivotIndex > clickedIndex) {\n                    // If pivot index > clicked index,\n                    // then all contiguous selections at index > pivot and index < clickedIndex are cleared.\n                    clearContiguous(pivotIndex, 1);\n                    clearContiguous(clickedIndex, -1);\n                } else if (pivotIndex < clickedIndex) {\n                    // If pivot index < clicked index,\n                    // then all contiguous selections at index < pivot and index > clickedIndex are cleared.\n                    clearContiguous(pivotIndex, -1);\n                    clearContiguous(clickedIndex, 1);\n                } else if (pivotIndex === clickedIndex) {\n                    // If pivot index = clicked index,\n                    // then all contiguous selections at index < pivot and index > pivot are cleared.\n                    clearContiguous(pivotIndex, 1);\n                    clearContiguous(pivotIndex, -1);\n                }\n                // select new range\n                const start = Math.min(clickedIndex, pivotIndex);\n                const end = Math.max(clickedIndex, pivotIndex);\n                this.addSelections(elements.slice(start, end + 1));\n                return;\n            }\n            default:\n            case ExtendSelectionMode.Toggle: {\n                let updatePivot = false;\n                if (this.selections.has(targetElement.id)) {\n                    // unselecting\n                    // When the pivot is unselected, make the next/last selected item the new pivot\n                    if (targetElement.id === (pivotElement && pivotElement.id)) {\n                        updatePivot = true;\n                    }\n                    const nextElement =\n                        elements.findIndex((element) => element.id === targetElement.id) + 1;\n                    if (\n                        nextElement < elements.length &&\n                        this.selections.has(elements[nextElement].id)\n                    ) {\n                        this.pivotElement = elements[nextElement];\n                    }\n                } else {\n                    // selecting\n                    // When selecting a new item, make it the new pivot\n                    this.pivotElement = targetElement;\n                }\n\n                this.toggleSelection(targetElement);\n\n                if (updatePivot) {\n                    let curIndex = -1;\n                    if (pivotElement) {\n                        // Find the next selected element after pivotElement\n                        curIndex =\n                            elements.findIndex((element) => element.id === pivotElement.id) + 1;\n                        while (\n                            curIndex < elements.length &&\n                            !this.selections.has(elements[curIndex].id)\n                        ) {\n                            curIndex++;\n                        }\n                    }\n                    this.pivotElement = elements[curIndex] || lastSelectedElement;\n                }\n            }\n        }\n    }\n\n    isSelected(element: ICollectionItem): boolean {\n        return this.selections.has(element.id);\n    }\n\n    @computed\n    get size(): number {\n        return this.selections.size;\n    }\n    @computed\n    get selectedElements(): TCollectionItem[] {\n        return [...this.selections.values()];\n    }\n\n    @computed\n    get selectedIds(): string[] {\n        return [...this.selections.keys()];\n    }\n\n    @computed\n    get lastSelectedElement(): TCollectionItem | undefined {\n        return this.selectedElements.slice(-1)[0];\n    }\n}\n\nexport default SelectionStore;\n\nexport { ExtendSelectionMode };\nexport type { IReadOnlySelectionStore, ISelectionStore };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ccxController as IngestController } from '@ccx-public/ccx-ingest';\n\nimport type ICollectionItem from '../types/ICollectionItem';\nimport type Action from '../utils/action';\n\nexport enum MenuType {\n    CCDRightRail = 'right-nav',\n    Context = 'context-menu',\n    Dialog = 'dialog',\n    DragBreadcrumb = 'drag-breadcrumb',\n    DragFolder = 'drag-folder',\n    DragShortcut = 'drag-shortcut',\n    DragSideNav = 'drag-side-nav',\n    DragView = 'drag-view',\n    Header = 'header',\n    Item = 'item', // open action clicking on view item\n    Desktop = 'desktop',\n    ActionBar = 'action-bar',\n}\n\n/**\n * String representations of statuses for analytics\n */\nexport enum EventType {\n    Click = 'click',\n    Route = 'route',\n    Drag = 'drag',\n    Error = 'error',\n    Success = 'success',\n    Undo = 'undo',\n    Info = 'info',\n    Conflict = 'conflict',\n    Cancel = 'cancel',\n    Confirm = 'confirm',\n    Close = 'close',\n    Failure = 'failure',\n}\n\nexport enum ItemViewEventType {\n    Render = 'render',\n    Click = 'click',\n    DragNav = 'drag-nav',\n}\n\n/**\n * String representations of different SDM Workflows\n */\nexport enum Workflow {\n    Document = 'Document-Operation',\n    Folder = 'Folder-Operation',\n    Asset = 'Asset-Operation',\n    Project = 'Project-Operation',\n    Library = 'Library-Operation',\n    Navigation = 'Navigation',\n    General = 'General Operations',\n}\n\nexport interface IItemViewMetric<TCollectionItem extends ICollectionItem> {\n    ingestSubcategory: string;\n    element: TCollectionItem;\n    itemViewEventType: ItemViewEventType;\n}\n\nexport interface IUsageMetricOptions<TCollectionItem extends ICollectionItem> {\n    ingestSubcategory: string;\n    element?: TCollectionItem;\n    count?: number;\n    type?: EventType;\n    subtype: string;\n    menu: MenuType;\n    view?: string;\n    ccxIngest?: IngestController;\n    dtsStart?: Date;\n    correlationId?: string;\n    workflow?: string;\n    error?: Error;\n    errorCode?: string | number;\n    errorDesc?: string;\n}\n\nexport interface IUsageMetricLogger<TCollectionItem extends ICollectionItem> {\n    correlationId: string;\n    dtsStart?: Date;\n    elements: TCollectionItem[];\n    type: EventType;\n    menu: MenuType;\n\n    /**\n     * Call before the action is performed\n     *\n     * @param {TCollectionItem[]} elements -- only the elements for which the action will be performed\n     * @param {EventType} type\n     * @param {MenuType} menu\n     */\n    start(elements: TCollectionItem[], type: EventType, menu: MenuType): void;\n    /**\n     * Call after the action completes, even if some items didn't complete successfully\n     */\n    success(): void;\n    /**\n     * Call with all elements that were selected before the user chose to cancel.\n     * @param {TCollectionItem[]} elements\n     */\n    cancel(elements: TCollectionItem[]): void;\n    /**\n     * Call when the action fails\n     * @param {TCollectionItem[]} elements\n     */\n    error(elements: TCollectionItem[], error: Error): void;\n}\n\nexport interface IAnalyticsOptions {\n    perSession?: boolean;\n}\nexport interface IAnalyticsData {\n    consumer?: any;\n    content?: {\n        category?: string;\n        extension?: string;\n        id?: string;\n        mimetype?: string;\n        size?: number;\n        cache_status?: string;\n    };\n    context?: {\n        guid?: string;\n    };\n    custom?: {\n        country_code?: string;\n        user_type?: string;\n    };\n    derived?: any;\n    env?: any;\n    event?: {\n        build?: string;\n        context_guid?: string;\n        category?: string;\n        count?: number;\n        dts_start?: Date;\n        error_code?: string | number;\n        error_desc?: string;\n        error?: string;\n        language?: string;\n        offline?: boolean;\n        subcategory?: string;\n        subtype?: string;\n        type?: string;\n        user_guid?: string;\n        user_agent?: string;\n        workflow?: string;\n        value?: string | number | boolean;\n    };\n    source?: any;\n    trn?: {\n        number?: string;\n        product?: string;\n        amount?: number;\n        quantity?: number;\n    };\n    ui?: any;\n    user?: any;\n}\n\nexport interface ICollectionViewMetrics<TCollectionItem extends ICollectionItem = ICollectionItem> {\n    fireEvent: (data: IAnalyticsData, options?: IAnalyticsOptions) => void;\n    logItemViewMetric: (data: IItemViewMetric<TCollectionItem>) => void;\n    logUsageMetric: (\n        options: IUsageMetricOptions<TCollectionItem>,\n        analyticsOverrides?: IAnalyticsData,\n    ) => void;\n    getUsageMetricLogger: (\n        action: Action<TCollectionItem>,\n        ingestSubcategory: string,\n    ) => IUsageMetricLogger<TCollectionItem>;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nexport function removeUndefinedFields(obj) {\n    Object.keys(obj).forEach((key) => obj[key] === undefined && delete obj[key]);\n    return obj;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * Use this utility to prevent bubbling of events without creating new instances of a function in each render\n * call. Defining functions inside a React render method causes performance to drag, because React\n * can't tell that the functions are the same when running its DOM diff engine, and so it must trigger\n * DOM repaints more than it should.\n *\n * If you use a mix of React event binding and `.addEventListener` event binding,\n * you have to stopPropagation on both the React synthetic event and the native event.\n * Passing `true` for `stopNative` will stop the underlying nativeEvent.\n *\n *  Example usage. Let's say you have a panel that does something on click and also contains buttons. Event bubbling\n *  would cause the panel's click handler to be called when a button is clicked. To prevent that:\n *\n *      <div onClick={this.onPanelClick}>\n *          <div className='buttonBar' onClick={stopPropagation} />\n *              <button onClick={this.onConfirmClick}>Confirm</button>\n *              <button onClick={this.onCancelClick}><Cancel</button>\n *          </div>\n *      </div>\n *\n *\n * @param event\n */\n\ntype AnyEvent = React.UIEvent | React.MouseEvent | React.KeyboardEvent;\n\nexport default function stopPropagation(event: AnyEvent, stopNative = false) {\n    event.stopPropagation();\n    if (stopNative && event.nativeEvent) {\n        event.nativeEvent.stopImmediatePropagation();\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nclass ImageView extends React.Component<{\n    image: any;\n    className?: string;\n    [key: string]: any; // allow pass-through props\n}> {\n    private _imageRef: React.RefObject<HTMLImageElement> = React.createRef();\n\n    private _previousImageValue: any = null;\n\n    state = {\n        isImageLoaded: false,\n    };\n\n    componentDidMount() {\n        this.updateImageSrc();\n    }\n\n    componentDidUpdate() {\n        this.updateImageSrc();\n    }\n\n    /**\n     * Prevent image UXP flicker issue caused by setting src to the same URL it had before, and bypass React's slow\n     * copy of string data.\n     */\n    updateImageSrc() {\n        const { image } = this.props;\n        if (\n            image &&\n            this._imageRef &&\n            this._imageRef.current &&\n            image !== this._previousImageValue\n        ) {\n            this.setState({\n                isImageLoaded: false,\n            });\n            this._previousImageValue = image;\n            this._imageRef.current.setAttribute('src', image as string);\n        }\n    }\n\n    onImageLoad = () => {\n        this.setState({\n            isImageLoaded: true,\n        });\n    };\n\n    /**\n     * Component renderer.\n     * @return {ReactElement} markup\n     */\n    render() {\n        const { image, className, ...passThroughProps } = this.props;\n        const { isImageLoaded } = this.state;\n        return (\n            <img\n                alt=\"\"\n                ref={this._imageRef}\n                onLoad={this.onImageLoad}\n                className={classNames(isImageLoaded && 'cdo-image-loaded', className)}\n                {...passThroughProps}\n            />\n        );\n    }\n}\n\nexport default ImageView;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport { observer } from 'mobx-react';\n\nimport type DragState from '../stores/DragState';\nimport ImageView from './ImageView';\nimport type ICollectionItem from '../types/ICollectionItem';\n\nimport '../styles/DragCard.css';\n\nconst MAX_COUNT = 99;\n\ninterface IDragCardProps {\n    dragState: DragState;\n    getThumbnail?: (element: ICollectionItem) => React.ReactNode | string;\n}\n\nconst DragCard = observer((props: IDragCardProps) => {\n    const { dragState, getThumbnail } = props;\n    const { dragImageRef, element, selectionStore } = dragState;\n    const dragSelectionSize = selectionStore.size;\n\n    let content;\n    if (element) {\n        const thumbnail = getThumbnail?.(element) ?? element.rendition;\n\n        if (typeof thumbnail === 'string') {\n            content = <ImageView className=\"cdo-image\" image={thumbnail} />;\n        } else {\n            content = thumbnail;\n        }\n    }\n\n    let badge;\n    if (dragSelectionSize > 1) {\n        badge = (\n            <div className=\"cdo-badge\">\n                {dragSelectionSize > MAX_COUNT ? '99+' : dragSelectionSize}\n            </div>\n        );\n    }\n\n    return (\n        <div ref={dragImageRef} className=\"cdo-DragCard\" data-testid=\"drag-card\">\n            <div className=\"cdo-dragImageWrapper\">{content}</div>\n            {badge}\n        </div>\n    );\n});\n\nexport default DragCard;\nexport { type IDragCardProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { useEffect } from 'react';\nimport classNames from 'classnames';\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\n/**\n * Immediately fetch the SWC button ahead of time so that offline empty views can use it.\n * If the first time we show an emptyview with a button is when you go offline, the async fetch will fail without this.\n */\n(async () => {\n    await import(\n        /* webpackChunkName: \"SpButton\" */\n        '@ccx-public/spectrum-wrapper/dist/Button'\n    );\n})();\n\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport type { ICollectionViewMetrics } from '../types/CollectionViewMetrics';\nimport I18NCollectionView from '../utils/i18n';\n\nimport '../styles/EmptyView.css';\n\nexport type EmptyViewButton = {\n    label: string;\n    callback: () => void;\n};\n\nexport interface IEmptyProps {\n    metrics?: ICollectionViewMetrics;\n    image?: any;\n    /**\n     * An I18N id from CV locale messages, or a translated message to\n     * avoid introducing non-CV specific messages in CV.\n     */\n    titleId?: string;\n    /**\n     * An I18N id from CV locale messages, or a translated message to\n     * avoid introducing non-CV specific messages in CV.\n     */\n    subtitleId?: string;\n    /**\n     * Passed in JSX components for links.\n     * */\n    link?: React.ReactNode;\n    hideSubtitle?: boolean;\n    buttons?: EmptyViewButton[];\n    customButtons?: JSX.Element[];\n    ingestSubcategory?: string;\n    automationSuffix?: string;\n    className?: string;\n    renderEventMetricSubtype?: string;\n    productName?: string;\n    filterString?: string;\n    viewName?: string;\n}\n\nconst EmptyView = ({\n    image,\n    titleId,\n    subtitleId,\n    hideSubtitle,\n    buttons,\n    customButtons,\n    automationSuffix,\n    className,\n    productName,\n    filterString,\n    metrics,\n    ingestSubcategory,\n    renderEventMetricSubtype,\n    link,\n}: IEmptyProps) => {\n    const intl = useIntl();\n\n    useEffect(() => {\n        if (renderEventMetricSubtype) {\n            metrics?.fireEvent?.({\n                event: {\n                    type: 'render',\n                    value: 'empty',\n                    subtype: renderEventMetricSubtype,\n                    subcategory: ingestSubcategory,\n                },\n            });\n        }\n    }, [metrics, renderEventMetricSubtype, ingestSubcategory]);\n\n    const handleClick = (action: EmptyViewButton) => {\n        action.callback();\n    };\n\n    const renderButtons = (buttons: EmptyViewButton[]) => {\n        return buttons.map((value) => (\n            <Button\n                id={value.label}\n                className=\"cdo-button\"\n                variant=\"secondary\"\n                treatment=\"fill\"\n                key={value.label}\n                label={\n                    I18NCollectionView.isMessageDefined(intl, value.label)\n                        ? intl.formatMessage({ id: value.label })\n                        : value.label\n                }\n                onClick={(_) => handleClick(value)}\n            />\n        ));\n    };\n\n    return (\n        <div\n            className={classNames('cdo-EmptyView', className)}\n            data-testid=\"empty-view\"\n            id={`EmptyView_${automationSuffix}`}\n        >\n            {image && <div className=\"cdo-emptyImage\">{image}</div>}\n\n            <div className=\"cdo-message\">\n                <div className=\"cdo-title\">\n                    {I18NCollectionView.isMessageDefined(intl, titleId) ? (\n                        <FormattedMessage\n                            id={titleId}\n                            values={{ productName, filterString }}\n                            defaultMessage={titleId}\n                        />\n                    ) : (\n                        titleId\n                    )}\n                    {link}\n                </div>\n                {!hideSubtitle && subtitleId && (\n                    <div className=\"cdo-subtitle\">\n                        {I18NCollectionView.isMessageDefined(intl, subtitleId) ? (\n                            <FormattedMessage\n                                id={subtitleId}\n                                values={{ productName }}\n                                defaultMessage={subtitleId}\n                            />\n                        ) : (\n                            subtitleId\n                        )}\n                    </div>\n                )}\n            </div>\n            {buttons && (\n                <div className=\"cdo-buttons\" id=\"EmptyView_Buttons\">\n                    {renderButtons(buttons)}\n                </div>\n            )}\n            {customButtons && (\n                <div className=\"custom-buttons\">{customButtons.map((button) => button)}</div>\n            )}\n        </div>\n    );\n};\n\nexport default EmptyView;\nexport { type IEmptyProps as IEmptyViewProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nimport '../styles/Dimmer.css';\n\nexport interface IDimmerProps {\n    dim?: boolean;\n    children: React.ReactNode;\n}\n\n/**\n * A utility component which adds a transparent overlay its children.\n *\n * @param children - JSX content which will be dimmed\n * @param dim - whether or not to dim the content. Defaults to `true`\n *\n * @note\n * A better way to implement an overlay is with an inset box-shadow, but\n * UXP doesn't support box-shadow currently\n */\nconst Dimmer = ({ children, dim = true }: IDimmerProps) => (\n    <>\n        {children}\n        {dim && <div data-testid=\"cdo-dimmer-overlay\" className=\"cdo-dimmer-overlay\" />}\n    </>\n);\n\nexport default Dimmer;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nconst MAX_NAME_LENGTH = 200;\n\nexport const INVALID_REGEX = {\n    //   \\ : * ? \" / | < >\n    badPrintableCharacters: /[\\\\:*?\"/|<>]/,\n    // ASCII character codes 0 - 31\n    badUnprintableCharacters: /[\\x00-\\x1F]/, // eslint-disable-line no-control-regex\n    // Files cannot be one of these names, with or without an extension\n    // CON PRN AUX NUL COM1 COM2 ... COM9 LPT1 ... LPT9\n    restrictedFileNames: /^((?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\\.[^.]*)?$)/i,\n    // Files cannot end with space or period\n    badFileEnding: /[\\s.]$/,\n};\n\nexport const VALIDATION_INVALID_CHARS = '\\\\ / * ? \" | : < >';\n\nexport enum ReactSpectrumValidationState {\n    invalid = 'invalid',\n    valid = 'valid',\n    indeterminate = '',\n}\n\nexport enum ValidationStatus {\n    valid = 'valid',\n    invalidChar = 'invalidChar',\n    invalidName = 'invalidName',\n    invalidEnd = 'invalidEnd',\n    // 'charRestriction' means 'too many characters'\n    // TODO: maybe rename to `invalidLength` and fix string ids to match\n    // Jira: https://jira.corp.adobe.com/browse/CCXCD-2978\n    charRestriction = 'charRestriction',\n    duplicateName = 'duplicateName',\n}\n\nexport function fileNameValidator(newName: string): ValidationStatus {\n    if (newName.length > MAX_NAME_LENGTH) {\n        return ValidationStatus.charRestriction;\n    }\n    // We can show these characters in an error message, so there's a specific ValidationStatus for this case\n    if (INVALID_REGEX.badPrintableCharacters.test(newName)) {\n        return ValidationStatus.invalidChar;\n    }\n    // It would be too confusing to describe \"bad characters\" as an ASCII range. It's also too confusing to\n    // explain that not every file name works on all OSes. So these two cases get lumped into a generic \"invalid\"\n    // case.\n    if (\n        INVALID_REGEX.badUnprintableCharacters.test(newName) ||\n        INVALID_REGEX.restrictedFileNames.test(newName)\n    ) {\n        return ValidationStatus.invalidName;\n    }\n    // Currently, we don't have a separate error message to show about invalid filename endings, so it's\n    // also grouped with the generic \"invalid\" category\n    if (INVALID_REGEX.badFileEnding.test(newName)) {\n        return ValidationStatus.invalidEnd;\n    }\n\n    // None of the above applies, so it's good\n    return ValidationStatus.valid;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Textfield from '@react/react-spectrum/Textfield';\nimport stopPropagation from '../utils/stop-propagation';\nimport { ValidationStatus, ReactSpectrumValidationState } from '../utils/validate-filename';\nimport { DEFAULT_TOOLTIP_DELAY } from '../utils/constants';\nimport type { IOnOpFail } from '../utils/constants';\nimport type ICollectionItem from '../types/ICollectionItem';\n\nimport '../styles/Rename.css';\n\nexport type IOnRenameSubmit = (\n    element: ICollectionItem,\n    newName: string,\n    onFail: IOnOpFail,\n) => void;\nexport type IOnRenameCancel = () => void;\nexport type IOnRenameInvalid = (attemptedName: string) => void;\nexport type IRenameValidator = (newName: string) => ValidationStatus;\n// specifying an object instead of 3 callbacks allows a class's instance\n// methods to be used without Function.bind.  Arrow functions\n// would work but can't be overridden and call super in subclasses.\nexport type IRenameController = {\n    onRenameSubmit: IOnRenameSubmit;\n    onRenameCancel: IOnRenameCancel;\n    onRenameInvalid?: IOnRenameInvalid;\n    nameValidator: IRenameValidator;\n};\n\ninterface IRenameProps {\n    isRenaming: boolean;\n    element: ICollectionItem;\n    controller: IRenameController;\n    name: string;\n    maxInput?: number;\n    tooltip?: string;\n}\n\ninterface IRenameState {\n    name: string;\n    validationStatus?: ValidationStatus;\n    hasSubmitted: boolean;\n    mouseOverDetected: boolean;\n}\n\nclass Rename extends React.Component<IRenameProps, IRenameState> {\n    state = {\n        name: this.props.name,\n        validationStatus: ValidationStatus.valid,\n        hasSubmitted: false,\n        mouseOverDetected: false,\n    };\n\n    componentDidUpdate(prevProps: IRenameProps) {\n        const { name, isRenaming } = this.props;\n        const { validationStatus } = this.state;\n        // If the prop.name changed, then the model changed.\n        // Even if the user's input hasn't been saved, it should show the updated name.\n        if (prevProps.name !== name) {\n            this.setState({ name });\n        }\n\n        // Exiting rename,\n        if (prevProps.isRenaming && !isRenaming) {\n            // assume we only want to reset validationStatus ahd hasSubmitted\n            const newState: Partial<IRenameState> = {\n                validationStatus: ValidationStatus.valid,\n                hasSubmitted: false,\n            };\n            // if not valid, or cancelling without submitting, restore the original name\n            if (validationStatus && validationStatus !== ValidationStatus.valid) {\n                newState.name = name;\n            }\n\n            this.setState(newState as IRenameState);\n        }\n    }\n\n    handleChange = (name: string) => {\n        this.setState({ name });\n        this.validateName(name);\n    };\n\n    handleKeyDown = (e: React.KeyboardEvent) => {\n        let stopAllPropagation = e.altKey || e.ctrlKey || e.metaKey || e.shiftKey;\n        switch (e.key) {\n            case ' ':\n                stopAllPropagation = true;\n                break;\n            case 'Escape':\n                stopAllPropagation = true;\n                this.cancelRename();\n                break;\n            case 'Enter':\n                stopAllPropagation = true;\n                this.onSubmit();\n                break;\n            default:\n                break;\n        }\n        if (stopAllPropagation) {\n            stopPropagation(e, true);\n        }\n    };\n\n    handleOnBlur = () => {\n        this.onSubmit();\n    };\n\n    handleFocus = (event) => {\n        event.target.select();\n    };\n\n    cancelRename() {\n        const { controller, name: originalName } = this.props;\n        this.setState({\n            name: originalName,\n            validationStatus: ValidationStatus.valid,\n        });\n        controller.onRenameCancel();\n    }\n\n    validateName(name: string): ValidationStatus {\n        const { controller } = this.props;\n        const validationStatus = controller.nameValidator(name);\n        this.setState({ validationStatus }); // update state to render red outline\n        return validationStatus; // return status for caller because setState is async\n    }\n\n    onSubmit() {\n        const { name: originalName, controller, element } = this.props;\n        const { name: newName, hasSubmitted } = this.state;\n        // Prevent double-firing from blur and keydown\n        if (hasSubmitted) {\n            return;\n        }\n\n        const validationStatus = this.validateName(newName);\n\n        if (validationStatus !== ValidationStatus.valid) {\n            controller.onRenameInvalid(newName);\n            this.cancelRename();\n            return;\n        }\n        if (newName === originalName || newName === '') {\n            this.cancelRename();\n            return;\n        }\n\n        this.setState({ hasSubmitted: true });\n        controller.onRenameSubmit(element, newName, () => this.cancelRename());\n    }\n\n    // Break into its own function to make it testable\n    private renderTooltip() {\n        const { name } = this.state;\n        const { tooltip = name } = this.props;\n        // Default to &nbsp; as empty tooltip can cause a fatal error. This should never happen.\n        return <Tooltip className=\"cdo-ItemTitleTooltip\">{tooltip || '&nbsp;'}</Tooltip>;\n    }\n\n    private renderOverlayTrigger(children: any) {\n        const { name, mouseOverDetected } = this.state;\n        const { isRenaming, tooltip = name } = this.props;\n\n        return mouseOverDetected ? (\n            <OverlayTrigger\n                placement=\"bottom left\"\n                trigger={['hover']}\n                // @ts-ignore workaround for UXPv8 until RS2 2.55 (in theory)\n                autoComplete\n                disabled={isRenaming || !tooltip}\n                delayShow={DEFAULT_TOOLTIP_DELAY}\n            >\n                {children}\n                {this.renderTooltip()}\n            </OverlayTrigger>\n        ) : (\n            <>{children}</>\n        );\n    }\n\n    private onMouseOver = () => {\n        this.setState({ mouseOverDetected: true });\n    };\n\n    /**\n     * Component renderer.\n     * @return {ReactElement} markup\n     */\n    render() {\n        const { name, validationStatus } = this.state;\n        const { isRenaming } = this.props;\n\n        // RS Textfield starts with '' as its default for validationState, but its\n        // propTypes do not allow it, so to prevent spurious React warning, only pass\n        // validationState if there is something to show\n        const validationStateProp = validationStatus !== ValidationStatus.valid && {\n            validationState: ReactSpectrumValidationState.invalid,\n        };\n\n        const renameComponent = isRenaming ? (\n            <div className=\"cdo-rename\">\n                <Textfield\n                    className=\"cdo-nameInput\"\n                    defaultPreventedKeys={['Escape']}\n                    {...validationStateProp}\n                    id=\"Rename_Input\"\n                    autoFocus\n                    value={name}\n                    onChange={this.handleChange}\n                    onKeyDown={this.handleKeyDown}\n                    onBlur={this.handleOnBlur}\n                    onDragStart={stopPropagation}\n                    onDoubleClick={stopPropagation}\n                    onFocus={this.handleFocus}\n                    onClick={stopPropagation}\n                />\n            </div>\n        ) : (\n            this.renderOverlayTrigger(\n                <div onMouseOver={this.onMouseOver} className=\"cdo-rename\">\n                    {name}\n                </div>,\n            )\n        );\n\n        return renameComponent;\n    }\n}\n\nexport default Rename;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport {\n    differenceInCalendarDays,\n    differenceInSeconds,\n    differenceInCalendarMonths,\n    differenceInCalendarWeeks,\n} from 'date-fns';\n\ntype Unit = 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year';\ntype ThresholdType = Record<'second' | 'minute' | 'hour' | 'day' | 'week' | 'month', number>;\n\nexport const DEFAULT_THRESHOLDS: ThresholdType = {\n    second: 60, // seconds to minute\n    minute: 60, // minutes to hour\n    hour: 24, // hour to day\n    day: 14, // day to week\n    week: 4, // week to month\n    month: 12, // month to year\n};\n\nexport function selectUnit(\n    from: Date | number,\n    to: Date | number = Date.now(),\n    thresholds = DEFAULT_THRESHOLDS,\n): { value: number; unit: Unit } | undefined {\n    const secs = differenceInSeconds(from, to);\n    if (Math.abs(secs) < thresholds.second) {\n        return {\n            value: Math.round(secs),\n            unit: 'second',\n        };\n    }\n    const mins = secs / 60;\n    if (Math.abs(mins) < thresholds.minute) {\n        return {\n            value: Math.round(mins),\n            unit: 'minute',\n        };\n    }\n    const hours = mins / 60;\n    if (Math.abs(hours) < thresholds.hour) {\n        return {\n            value: Math.round(hours),\n            unit: 'hour',\n        };\n    }\n\n    const days = differenceInCalendarDays(from, to);\n    if (Math.abs(days) < thresholds.day) {\n        return {\n            value: Math.round(days),\n            unit: 'day',\n        };\n    }\n\n    const weeks = differenceInCalendarWeeks(from, to);\n    if (Math.abs(weeks) <= thresholds.week) {\n        return {\n            value: Math.round(weeks),\n            unit: 'week',\n        };\n    }\n\n    const months = differenceInCalendarMonths(from, to);\n    if (Math.abs(months) < thresholds.month) {\n        return {\n            value: Math.round(months),\n            unit: 'month',\n        };\n    }\n\n    const years = months / 12;\n    if (Math.abs(years) > 0) {\n        return {\n            value: Math.round(years),\n            unit: 'year',\n        };\n    }\n}\n","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n *   new Date(2014, 6, 2, 12, 30, 20, 0),\n *   new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n  requiredArgs(2, arguments);\n  var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n  return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n *   new Date(2014, 6, 2, 12, 30, 21, 700),\n *   new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n  requiredArgs(2, arguments);\n  return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n *   new Date(2014, 8, 1),\n *   new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n  requiredArgs(2, arguments);\n  var dateLeft = toDate(dirtyDateLeft);\n  var dateRight = toDate(dirtyDateRight);\n  var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n  var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n  return yearDiff * 12 + monthDiff;\n}","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { ExtendSelectionMode } from '../stores/SelectionStore';\nimport { normalizePlatform, Platform } from './platform';\n\nfunction getExtendSelectionMode(\n    e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n): ExtendSelectionMode {\n    const toggleKey =\n        normalizePlatform(navigator.platform) === Platform.mac\n            ? e.metaKey // Cmd+Click on Mac\n            : e.ctrlKey; // Ctrl+Click on Windows\n\n    const rangeKey = e.shiftKey;\n\n    let extendSelectionMode: ExtendSelectionMode;\n\n    // If both range and toggle keys are pressed, we default to toggle and ignore range\n    if (toggleKey) {\n        extendSelectionMode = ExtendSelectionMode.Toggle;\n    } else if (rangeKey) {\n        extendSelectionMode = ExtendSelectionMode.Range;\n    } else {\n        extendSelectionMode = ExtendSelectionMode.Toggle;\n    }\n    return extendSelectionMode;\n}\n\nexport default getExtendSelectionMode;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nimport type { OptionalActionArgs } from '../action';\nimport Action from '../action';\nimport Rename from '@react/react-spectrum/Icon/Rename';\nimport { ActionAnalyticsValue } from '../metrics';\nimport type { IRenameController } from '../../components/Rename';\nimport type ICollectionItem from '../../types/ICollectionItem';\nimport { ValidationStatus } from '../validate-filename';\nimport type { IOnOpFail } from '../../types/IOnOpFail';\nimport { hasAnyLegacyExpress, hasOnlyOne } from '@csc/common';\n\nclass RenameAction<TCollectionItem extends ICollectionItem = ICollectionItem>\n    extends Action<TCollectionItem>\n    implements IRenameController\n{\n    static readonly actionValue = ActionAnalyticsValue.Rename;\n\n    constructor(args: OptionalActionArgs<TCollectionItem> = {}) {\n        super({\n            value: RenameAction.actionValue,\n            label: 'button.rename',\n            icon: <Rename />,\n            resetSelection: true,\n            isVisible: (selectionStore) =>\n                !hasAnyLegacyExpress(selectionStore) && hasOnlyOne(selectionStore),\n            execute: async (operationStore: any, [element]) => {\n                const disabled = this.isRenameDisabled(element);\n                const enabled = !disabled;\n                if (enabled) {\n                    this.notifySubscribers('executing', element, this);\n                }\n                return Promise.resolve();\n            },\n            ...args,\n        });\n    }\n\n    isRenameDisabled = (element: ICollectionItem) => false;\n\n    // IOnRenameSubmit\n    async onRenameSubmit(item: ICollectionItem, newName: string, onFail: IOnOpFail): Promise<void> {\n        this.notifySubscribers('executed', item as TCollectionItem, this);\n    }\n\n    // IOnRenameCancel\n    onRenameCancel() {\n        this.notifySubscribers('canceled', null, this);\n    }\n\n    // IRenameValidator\n    nameValidator(newName: string) {\n        return ValidationStatus.valid;\n    }\n\n    onRenameInvalid() {\n        return;\n    }\n}\n\nexport default RenameAction;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport type { IObservableValue, IReactionDisposer } from 'mobx';\nimport { action, computed, observable, reaction } from 'mobx';\nimport * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport type { Themes } from '@csc/common';\nimport { FormattedRelativeTime, type MessageDescriptor } from 'react-intl';\nimport { v1 as uuidv1 } from 'uuid';\nimport { selectUnit } from '../utils/relativeDateTimeUtils';\n\nimport type {\n    IOnDragTimerEnd,\n    IOnItemDragEnter,\n    IOnItemDragLeave,\n    IOnItemDragStart,\n    IOnItemDrop,\n} from './CDOView';\n\nimport type { ExtendSelectionMode, ISelectionStore } from '../stores/SelectionStore';\nimport type Action from '../utils/action';\nimport getExtendSelectionMode from '../utils/get-extend-selection-mode';\nimport { isLastDragLeave } from '../utils/drag-utils';\n\nimport type ICollectionItem from '../types/ICollectionItem';\nimport type { ICollectionViewMetrics } from '../types/CollectionViewMetrics';\nimport { ItemViewEventType } from '../types/CollectionViewMetrics';\n\nimport '../styles/ViewItem.css';\nimport RenameAction from '../utils/actions/RenameAction';\nimport type { ISelectionManager } from '../types/ISelectionManager';\nimport { isTouchDevice } from '../utils/platform';\nimport type { ShouldRenderItemAsDisabled } from '../types/ICommonCollectionViewProps';\n\nexport type MetadataFormat = (element: ICollectionItem) => JSX.Element | undefined;\n\ninterface IViewItemProps {\n    metrics?: ICollectionViewMetrics;\n    theme?: Themes;\n    element: ICollectionItem;\n    disabled?: boolean;\n    isSelected: boolean;\n    ingestSubcategory: string;\n    selectOnClick?: boolean;\n    hideEllipsisMenu?: boolean;\n    disableContextMenu?: boolean;\n    actionMenuItems?: Action[];\n    onItemClickedHandler: (\n        element: ICollectionItem,\n        event?: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ) => void;\n    onActionButtonClick: (action: Action, elements: ICollectionItem[]) => void;\n    onItemSelected?: (element: ICollectionItem, extendSelectionMode: ExtendSelectionMode) => void;\n    onDocMounted?: (doc: ICollectionItem) => void;\n    onDocUnmounted?: (doc: ICollectionItem) => void;\n    renderTooltip?: (element: ICollectionItem) => string;\n    shouldRenderItemAsDisabled?: ShouldRenderItemAsDisabled;\n    focusManagementEnabled?: boolean;\n    tabIndex?: number;\n    actionMenuTabIndex?: number;\n    metadataFormat?: MetadataFormat;\n    doubleClickToOpen?: boolean;\n    onItemDragStart?: IOnItemDragStart;\n    onItemDragEnter?: IOnItemDragEnter;\n    onItemDragLeave?: IOnItemDragLeave;\n    onItemDrop?: IOnItemDrop;\n    dragDisabled?: boolean;\n    onDragTimerEnd?: IOnDragTimerEnd;\n    renderBadge?: (element: ICollectionItem) => React.ReactNode;\n    shouldHideCheckbox?: (element: ICollectionItem) => boolean;\n    allowClickEventOnDisabled?: boolean;\n    getSelectionStore?: (items: ICollectionItem[]) => ISelectionStore;\n    ariaLabel?: string;\n    isFeatureFlagEnabled?: (flag: string) => boolean;\n    selectionManager?: ISelectionManager;\n    selectionStore: ISelectionStore;\n    isEllipsisMenuOpen?: boolean;\n    onEllipsisClick?: (event: React.MouseEvent, element: ICollectionItem) => void;\n    overrideIcon?: IconData;\n}\n\ninterface IconData {\n    icon?: React.JSX.Element;\n    viewBox: string;\n    tooltip: MessageDescriptor;\n}\n\ninterface IViewItemState {\n    isRenaming: boolean;\n    isContextMenuStart: boolean;\n    // some subclasses don't always want to render OverlayTriggers due to\n    // slow performance of OverlayTrigger or if not used on Mobile devices\n    useOverlayTriggers: boolean;\n}\n\nconst DRAG_TIMER_DURATION_MS = 1500; // ms\n\nconst DateMetadata = ({ date, id }: { date: Date; id: string }) => {\n    const { unit, value } = selectUnit(date);\n    return (\n        <FormattedRelativeTime unit={unit} value={value}>\n            {(msg: string) => (\n                <span id={id} className=\"cdo-dateMetadata\">\n                    {msg}\n                </span>\n            )}\n        </FormattedRelativeTime>\n    );\n};\n\nabstract class ViewItem<TProps> extends React.Component<IViewItemProps & TProps, IViewItemState> {\n    private disposer!: IReactionDisposer;\n    private subscriptionKey = uuidv1();\n    protected metrics: ICollectionViewMetrics = this.props.metrics;\n    protected renameAction: RenameAction;\n\n    state: IViewItemState = {\n        isRenaming: false,\n        isContextMenuStart: false,\n        useOverlayTriggers: true,\n    };\n\n    /**\n     * onDragEnter/Leave is fired for each child element, but we only want to react when the count is > 0 or == 0.\n     * @type {number}\n     */\n    @observable private dragEnterCount: IObservableValue<number> = observable.box(0);\n\n    componentDidMount() {\n        const { element, onDocMounted } = this.props;\n        if (onDocMounted) {\n            onDocMounted(element);\n        }\n\n        // Use isValidDropTarget reaction on a delay. The reaction will occur when it transitions from\n        // false to true and vice versa. Only call onDragTimerEnd when it transitions to true.\n        this.disposer = reaction(\n            () => this.isValidDropTarget,\n            () => {\n                if (this.isValidDropTarget) {\n                    this.onDragTimerEnd();\n                }\n            },\n            {\n                delay: DRAG_TIMER_DURATION_MS,\n            },\n        );\n        this.setupRenaming();\n    }\n\n    protected setupRenaming() {\n        const { element, actionMenuItems } = this.props;\n\n        if (!this.renameAction) {\n            this.renameAction = actionMenuItems?.find(\n                (actionItem) => actionItem.value === RenameAction.actionValue,\n            ) as RenameAction;\n            this.renameAction?.subscribe(\n                'executing',\n                this.subscriptionKey,\n                async (el: ICollectionItem, theAction: Action<ICollectionItem>) => {\n                    // TODO: https://jira.corp.adobe.com/browse/CCXCD-12948\n                    // HACK - prevents us from losing bubbling event from action menu\n                    // in certain mobile views (otherwise can cause double actions rename+open)\n                    setTimeout(() => {\n                        this.setState({ isRenaming: el?.id === element.id });\n                    }, 0);\n                },\n            );\n            this.renameAction?.subscribe(\n                'executed',\n                this.subscriptionKey,\n                async (el: ICollectionItem, theAction: Action<ICollectionItem>) => {\n                    this.setState({ isRenaming: false });\n                },\n            );\n            this.renameAction?.subscribe(\n                'canceled',\n                this.subscriptionKey,\n                async (el: ICollectionItem, theAction: Action<ICollectionItem>) => {\n                    this.setState({ isRenaming: false });\n                },\n            );\n        }\n    }\n\n    componentWillUnmount() {\n        const { element, onDocUnmounted } = this.props;\n        onDocUnmounted?.(element);\n        this.disposer?.();\n        if (this.renameAction) {\n            this.renameAction.unsubscribe('executing', this.subscriptionKey);\n            this.renameAction.unsubscribe('executed', this.subscriptionKey);\n            this.renameAction.unsubscribe('canceled', this.subscriptionKey);\n        }\n    }\n\n    /** Optional classNames to add to the item. */\n    protected additionalClassNames(): string | undefined {\n        return undefined;\n    }\n\n    // for backward compat with Spaces ProjectViewItem\n    protected get isRenaming() {\n        const { isRenaming } = this.state;\n        return isRenaming;\n    }\n\n    @computed protected get isValidDropTarget() {\n        return this.dragEnterCount.get() > 0;\n    }\n\n    @action private incrDragEnterCount() {\n        this.dragEnterCount.set(this.dragEnterCount.get() + 1);\n    }\n\n    @action private decrDragEnterCount() {\n        const current = this.dragEnterCount.get();\n        if (current > 0) {\n            this.dragEnterCount.set(current - 1);\n        }\n    }\n\n    @action private clearDragEnterCount() {\n        this.dragEnterCount.set(0);\n    }\n\n    protected get isDragDisabled() {\n        const { disabled, dragDisabled, isSelected } = this.props;\n        const { isRenaming } = this.state;\n        // drag & drop is disabled when one of the following:\n        // - item is being renamed\n        // - featureflag is off\n        // - dragDisabled prop is true\n        return isRenaming || disabled || dragDisabled;\n    }\n\n    protected _updateSelection(e: React.MouseEvent | React.KeyboardEvent) {\n        const { element, onItemSelected } = this.props;\n\n        if (onItemSelected) {\n            const extendSelectionMode: ExtendSelectionMode = getExtendSelectionMode(e);\n            onItemSelected(element, extendSelectionMode);\n        }\n    }\n\n    /**\n     * Fires an ingest event for grid/list item\n     */\n    protected fireIngestEvent(itemViewEventType: ItemViewEventType) {\n        const { ingestSubcategory, element } = this.props;\n\n        this.metrics?.logItemViewMetric?.({\n            ingestSubcategory,\n            element,\n            itemViewEventType,\n        });\n    }\n\n    protected handleClickSelection = (\n        e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ) => {\n        const { element, selectionManager, onItemClickedHandler, shouldHideCheckbox } = this.props;\n        // if shouldHideCheckbox?.(element) returns true, this check prevents the item from being selected as part of a multi-selection operation.\n        if (\n            !shouldHideCheckbox?.(element) &&\n            (selectionManager.isInSelectionMode ||\n                selectionManager.hasAnySelected ||\n                selectionManager.selectionUXConfig.clickSelectionMode ===\n                    AssetBrowser.CDO.ClickSelectType.Single)\n        ) {\n            selectionManager.onViewItemClickSelection(element, e, onItemClickedHandler);\n        } else {\n            onItemClickedHandler?.(element, e);\n        }\n\n        this.fireIngestEvent(ItemViewEventType.Click);\n        if (\n            selectionManager.selectionUXConfig.clickSelectionMode !==\n            AssetBrowser.CDO.ClickSelectType.None\n        ) {\n            this.focusOnItem();\n        }\n    };\n\n    protected handleCheckBoxSelection = (\n        e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ) => {\n        const { element, selectionManager } = this.props;\n        selectionManager?.onViewItemCheckBoxSelection(element, e);\n        this.fireIngestEvent(ItemViewEventType.Click);\n        this.focusOnItem();\n    };\n\n    protected handleKeyDownSelection = (e: React.KeyboardEvent) => {\n        const { element, selectionManager, shouldHideCheckbox } = this.props;\n        switch (e.key) {\n            case ' ':\n                if (shouldHideCheckbox?.(element)) {\n                    e.preventDefault(); // prevent scrolling down\n                    return;\n                }\n                selectionManager?.onViewItemKeyDownSelection(element, e);\n                e.preventDefault(); // prevent scrolling down\n                this.fireIngestEvent(ItemViewEventType.Click);\n                this.focusOnItem();\n                break;\n            case 'Enter':\n                this.handleClickSelection(e);\n                break;\n            default:\n                break;\n        }\n    };\n\n    protected handleContextMenuSelection = (e: React.MouseEvent | React.TouchEvent) => {\n        const { element, selectionManager, isFeatureFlagEnabled, dragDisabled } = this.props;\n        if (isTouchDevice()) {\n            e.preventDefault();\n            // Both long press and drag adds item to selection store\n            // If drag selection is enabled, then long press should not toggle item selection again\n            if (dragDisabled) {\n                selectionManager?.onViewItemLongPressSelection(element, e as React.TouchEvent);\n            }\n            this.fireIngestEvent(ItemViewEventType.Click);\n            this.focusOnItem();\n            return;\n        }\n        // enable right click menu only when enableContextMenu flag is enabled\n        if (isFeatureFlagEnabled?.('enableContextMenu')) {\n            this.onContextMenu(e as React.MouseEvent);\n        }\n    };\n\n    protected focusOnItem = () => {\n        try {\n            // eslint-disable-next-line react/no-find-dom-node\n            (ReactDOM.findDOMNode(this) as HTMLElement).focus();\n        } catch (err) {\n            // not mounted in unit tests\n        }\n    };\n\n    /* overridden in subclasses */\n    protected onMouseOver = () => {};\n\n    protected onClick = (e: React.MouseEvent | React.KeyboardEvent) => {\n        const {\n            element,\n            selectOnClick,\n            onItemClickedHandler,\n            shouldHideCheckbox,\n            selectionManager,\n        } = this.props;\n\n        // if shouldHideCheckbox?.(element) returns true, this check prevents the item from being selected as part of a multi-selection operation.\n        if (\n            onItemClickedHandler &&\n            !selectionManager?.isInSelectionMode &&\n            (!selectOnClick || shouldHideCheckbox?.(element))\n        ) {\n            // onItemClickedHandler also fires ingest event so log our\n            // click first\n            this.fireIngestEvent(ItemViewEventType.Click);\n            onItemClickedHandler(element);\n        } else {\n            this._updateSelection(e);\n            this.fireIngestEvent(ItemViewEventType.Click);\n        }\n        try {\n            // eslint-disable-next-line react/no-find-dom-node\n            (ReactDOM.findDOMNode(this) as HTMLElement).focus();\n        } catch (err) {\n            // not mounted in unit tests\n        }\n    };\n\n    protected onDoubleClick = () => {\n        const { element, onItemClickedHandler, doubleClickToOpen } = this.props;\n        if (doubleClickToOpen) {\n            onItemClickedHandler?.(element);\n        }\n    };\n\n    protected onCheckboxSelection = (e: React.MouseEvent | React.KeyboardEvent) => {\n        this._updateSelection(e);\n        this.fireIngestEvent(ItemViewEventType.Click);\n        try {\n            // eslint-disable-next-line react/no-find-dom-node\n            (ReactDOM.findDOMNode(this) as HTMLElement).focus();\n        } catch (err) {\n            // not mounted in unit tests\n        }\n    };\n\n    protected onKeyDown = (e: React.KeyboardEvent) => {\n        const { focusManagementEnabled, doubleClickToOpen, shouldHideCheckbox, element } =\n            this.props;\n\n        if (focusManagementEnabled) {\n            switch (e.key) {\n                case ' ':\n                    if (!shouldHideCheckbox?.(element)) {\n                        this._updateSelection(e);\n                    }\n                    e.preventDefault(); // prevent scrolling down\n                    break;\n                case 'Enter':\n                    if (doubleClickToOpen) {\n                        this.onDoubleClick();\n                    } else {\n                        this.onClick(e);\n                    }\n                    break;\n                default:\n                    break;\n            }\n        }\n    };\n\n    /**\n     * [CCXCD-12503] A race condition exists with the SWC Overlay and the ContextMenu (right+click) event.\n     * When the 'contextmenu' event fires and the custom CDO ContextMenu is displayed, the following 'pointerup' event closes the SWC Overlay,\n     * causing a menu flash.\n     *\n     * The recommended solution from SWC is to use a VirtualTrigger in these cases. Unfortunately there is no RS2 equivalent API for a VirtualTrigger.\n     *\n     * Instead we will track if a right+click has started via the `contextmenu` event but wait to take action until the `pointerup` event has also been fired.\n     */\n    protected onPointerUp = (e: React.PointerEvent) => {\n        const {\n            selectionStore,\n            element,\n            actionMenuItems = [] as Action[],\n            isFeatureFlagEnabled,\n        } = this.props;\n        if (isFeatureFlagEnabled?.('enableContextMenu') && this.state.isContextMenuStart) {\n            e.preventDefault();\n            e.stopPropagation();\n            /**\n             * Right clicking changes selection:\n                    If a user has Asset A selected, and right clicks Asset B, right click menu shows actions for Asset B, Asset B is selected (action bar is also shown, given selection mode enabled). Asset A is deselected.\n\n            * Right clicking when there is bulk selection:\n                    If user has Asset A and Asset B selected (bulk select, selection mode), and…\n                    User right clicks on Asset A or Asset B - selection remains. Right click menu shows actions that can be applied to both Asset A and B (consistent with actions in action bar).\n                    User right click on Asset C - selection changes to Asset C only (A and B are deselected). Right click menu shows actions that can be applied to Asset C.\n            */\n            if (!selectionStore.isSelected(element)) {\n                selectionStore.setSelection([element]);\n            }\n            const event = new CustomEvent('CDOContextMenu', {\n                detail: {\n                    posX: e.clientX,\n                    posY: e.clientY,\n                    elements: selectionStore.selectedElements,\n                    actionMenuItems,\n                },\n            });\n            document.dispatchEvent(event);\n            // reset context menu state\n            this.setState({ isContextMenuStart: false });\n        }\n    };\n\n    protected onContextMenu = (e: React.MouseEvent) => {\n        const { isFeatureFlagEnabled, disableContextMenu, actionMenuItems } = this.props;\n\n        // [CCXCD-9933] With enableContextMenu flag enabled, right click context menu should be shown\n        if (isFeatureFlagEnabled?.('enableContextMenu')) {\n            // [CCXCD-9934] provide a way for CDO consumers to disable context menu e.g. UAP\n            if (disableContextMenu || !actionMenuItems?.length) {\n                return;\n            }\n\n            /** CDO Context Menu */\n            e.preventDefault();\n            e.stopPropagation();\n\n            // rely on onPointerUp handler to determine if contextmenu event has finished and to take action\n            this.setState({ isContextMenuStart: true });\n            return;\n        }\n    };\n\n    protected onDragStart = (e: React.DragEvent<HTMLDivElement>) => {\n        const { element, onItemDragStart, disabled, dragDisabled } = this.props;\n\n        if (onItemDragStart && !disabled && !dragDisabled) {\n            onItemDragStart(element, e);\n        }\n    };\n\n    protected onDragEnter = (e: React.DragEvent<HTMLDivElement>) => {\n        const { element, onItemDragEnter, disabled } = this.props;\n        if (onItemDragEnter && !disabled) {\n            onItemDragEnter(element, e);\n\n            // If the handler calls preventDefault, then this target is a valid drop target\n            if (e.defaultPrevented) {\n                this.incrDragEnterCount();\n            }\n        }\n    };\n\n    protected onDragLeave = (e: React.DragEvent<HTMLDivElement>) => {\n        e.preventDefault();\n        this.decrDragEnterCount();\n\n        const { element, onItemDragLeave } = this.props as IViewItemProps;\n        const isExitingViewItem = isLastDragLeave(e);\n        if (isExitingViewItem && onItemDragLeave) {\n            onItemDragLeave(element, e);\n        }\n    };\n\n    protected onDragTimerEnd = () => {\n        const { element, onDragTimerEnd } = this.props;\n        if (onDragTimerEnd) {\n            onDragTimerEnd(element);\n        }\n    };\n\n    protected onDrop = (e: React.DragEvent<HTMLDivElement>) => {\n        const { onItemDrop, element, disabled } = this.props;\n        if (onItemDrop && !disabled) {\n            onItemDrop(element, e);\n            this.clearDragEnterCount();\n        }\n    };\n\n    protected abstract renderRendition(): React.ReactNode;\n    protected abstract renderTitle(): React.ReactNode;\n\n    protected renderMetadata() {\n        const { element, metadataFormat } = this.props;\n\n        const fileExt = element.fileExtension?.trim().toUpperCase();\n        const fileExtContent = fileExt && <span className=\"cdo-itemType\">{fileExt}</span>;\n        const metadataContent = metadataFormat?.(element);\n\n        return (\n            <>\n                {fileExtContent}\n                {fileExtContent && metadataContent && <>&nbsp;&bull;&nbsp;</>}\n                {metadataContent}\n            </>\n        );\n    }\n}\n\nexport default ViewItem;\nexport { type IViewItemProps, type IViewItemState, DateMetadata };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport AssetIcon from '@csc/ui/dist/src/AssetIcon/AssetIcon';\nimport { Themes } from '@csc/common';\nimport assetIcons from '@csc/common/dist/src/utils/assetIcons';\n\nimport type ICollectionItem from '../types/ICollectionItem';\n\nimport ImageView from './ImageView';\n\ninterface IViewItemIconProps {\n    element: ICollectionItem;\n    theme?: Themes;\n    [key: string]: any; // allow pass-through props\n}\n\n@observer\nexport default class ViewItemIcon extends React.Component<IViewItemIconProps> {\n    protected get isDefaultIcon() {\n        const { element } = this.props;\n        return !element.rendition;\n    }\n\n    protected get commonProps() {\n        const { ...passThroughProps } = this.props;\n        return {\n            className: classNames([\n                'cdo-rendition',\n                ...(this.isDefaultIcon ? ['cdo-defaultIcon'] : []),\n            ]),\n            ...passThroughProps,\n        };\n    }\n\n    renderImage(image: any) {\n        return <ImageView image={image} {...this.commonProps} />;\n    }\n\n    render() {\n        const { element, theme = Themes.light } = this.props;\n\n        if (element.rendition) {\n            return this.renderImage(element.rendition);\n        }\n\n        const hasIconForType = assetIcons[element.type] !== undefined;\n        if (hasIconForType) {\n            return <AssetIcon type={element.type} theme={theme} />;\n        }\n\n        return <AssetIcon type=\"default\" theme={theme || Themes.light} />;\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// @ts-nocheck -- forked\n/**\n * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/events.js\n */\n\nexport function interpretKeyboardEvent(event, orientation = 'vertical') {\n    switch (event.key) {\n        case 'Enter':\n        case ' ':\n            if (this.onSelectFocused) {\n                this.onSelectFocused(event);\n            }\n            break;\n\n        case 'Tab':\n            if (this.onTab) {\n                this.onTab(event);\n            }\n            break;\n\n        case 'PageUp':\n            if (this.onPageUp) {\n                this.onPageUp(event);\n            } else if (this.onFocusFirst) {\n                this.onFocusFirst(event);\n            }\n            break;\n\n        case 'PageDown':\n            if (this.onPageDown) {\n                this.onPageDown(event);\n            } else if (this.onFocusLast) {\n                this.onFocusLast(event);\n            }\n            break;\n\n        case 'Home':\n            if (this.onFocusFirst) {\n                this.onFocusFirst(event);\n            }\n            break;\n\n        case 'End':\n            if (this.onFocusLast) {\n                this.onFocusLast(event);\n            }\n            break;\n\n        case 'ArrowUp':\n        case 'Up':\n            if (event.altKey && this.onAltArrowUp) {\n                this.onAltArrowUp(event);\n            } else if (this.onFocusPrevious) {\n                switch (orientation) {\n                    case 'vertical':\n                        this.onFocusPrevious(event);\n                        break;\n                    case 'horizontal':\n                        break;\n                    default:\n                        if (this.props.prevFocusOffset) {\n                            this.onFocusPrevious(event, this.props.prevFocusOffset());\n                        } else {\n                            this.onFocusPrevious(event);\n                        }\n                        break;\n                }\n            }\n            break;\n\n        case 'ArrowDown':\n        case 'Down':\n            if (event.altKey && this.onAltArrowDown) {\n                this.onAltArrowDown(event);\n            } else if (this.onFocusNext) {\n                switch (orientation) {\n                    case 'vertical':\n                        this.onFocusNext(event);\n                        break;\n                    case 'horizontal':\n                        break;\n                    default:\n                        if (this.props.nextFocusOffset) {\n                            this.onFocusNext(event, this.props.nextFocusOffset());\n                        } else {\n                            this.onFocusNext(event);\n                        }\n                        break;\n                }\n            }\n            break;\n\n        case 'ArrowLeft':\n        case 'Left':\n            if (orientation !== 'vertical' && this.onFocusPrevious) {\n                this.onFocusPrevious(event);\n            }\n            break;\n\n        case 'ArrowRight':\n        case 'Right':\n            if (orientation !== 'vertical' && this.onFocusNext) {\n                this.onFocusNext(event);\n            }\n            break;\n\n        case 'Escape':\n        case 'Esc':\n            if (this.onEscape) {\n                this.onEscape(event);\n            }\n            break;\n\n        default:\n        // do nothing\n    }\n}\n\nexport function chain(...callbacks) {\n    return (...args) => {\n        for (const callback of callbacks) {\n            if (typeof callback === 'function') {\n                callback(...args);\n            }\n        }\n    };\n}\n\nlet mouseDownPrevented = false;\nexport function focusAfterMouseEvent(handler, event) {\n    // If server side rendering, just call handler method.\n    if (!document) {\n        handler?.call(this, event);\n        return;\n    }\n\n    // execute the handler\n    if (handler) {\n        handler.call(this, event);\n        if (event.isDefaultPrevented()) {\n            mouseDownPrevented = event.type === 'mousedown';\n            return;\n        }\n    }\n\n    // make sure that the element has focus by calling this.focus();\n    if (!mouseDownPrevented && typeof this.focus === 'function') {\n        this.focus();\n    }\n\n    if (event.type === 'mouseup') {\n        mouseDownPrevented = false;\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// @ts-nocheck -- forked\n/**\n * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/scrollToDOMNode.js\n */\nexport default (node, parentNode, alignToStart) => {\n    if (parentNode && parentNode.contains(node)) {\n        const { clientHeight, clientWidth, scrollTop, scrollLeft } = parentNode;\n        const { offsetHeight, offsetWidth, offsetTop, offsetLeft } = node;\n        const parentPosition = window.getComputedStyle(parentNode).position;\n        let parentOffsetTop = parentNode.offsetTop;\n        let parentOffsetLeft = parentNode.offsetLeft;\n\n        if (parentPosition !== 'static') {\n            parentOffsetTop = parentOffsetLeft = 0;\n        }\n\n        if (offsetTop < scrollTop) {\n            parentNode.scrollTop = offsetTop;\n        } else {\n            const offsetBottom = offsetTop + offsetHeight;\n            const scrollBottom = scrollTop + clientHeight;\n            if (offsetBottom > scrollBottom) {\n                if (alignToStart) {\n                    parentNode.scrollTop = offsetTop - parentOffsetTop;\n                } else {\n                    parentNode.scrollTop = offsetBottom - clientHeight - parentOffsetTop;\n                }\n            }\n        }\n\n        if (offsetLeft < scrollLeft) {\n            parentNode.scrollLeft = offsetLeft;\n        } else {\n            const offsetRight = offsetLeft + offsetWidth;\n            const scrollRight = scrollLeft + clientWidth;\n            if (offsetRight > scrollRight) {\n                if (alignToStart) {\n                    parentNode.scrollLeft = offsetLeft - parentOffsetLeft;\n                } else {\n                    parentNode.scrollLeft = offsetRight - clientWidth - parentOffsetLeft;\n                }\n            }\n        }\n    }\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// @ts-nocheck -- forked\n/**\n * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/string.js\n */\nexport function isUrl(string) {\n    return string && !!string.match(/\\/|:|\\./g);\n}\n\nexport function normalize(string = '', normalizationForm = 'NFC') {\n    if ('normalize' in String.prototype) {\n        string = string.normalize(normalizationForm);\n    }\n    return string;\n}\n\nexport function removeDiacritics(string = '', normalizationForm = 'NFD') {\n    return normalize(string, normalizationForm.replace('C', 'D')).replace(/[\\u0300-\\u036f]/g, '');\n}\n\n/** adapted from https://github.com/rwu823/react-addons-text-content */\nexport function getTextFromReact(reactChild) {\n    let result = '';\n\n    const addChildTextToResult = (child) => {\n        if (typeof child === 'string' || typeof child === 'number') {\n            result = `${result} ${child}`;\n        } else if (Array.isArray(child)) {\n            child.forEach((c) => addChildTextToResult(c));\n        } else if (child && child.props) {\n            const { children } = child.props;\n            if (Array.isArray(children)) {\n                children.forEach((c) => addChildTextToResult(c));\n            } else {\n                addChildTextToResult(children);\n            }\n        }\n    };\n\n    addChildTextToResult(reactChild);\n\n    // clean up adjacent whitespace in result\n    const adjacentWhitespaceRegex = /(\\s)(?:\\s+)/g;\n    return result.trim().replace(adjacentWhitespaceRegex, '$1');\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// @ts-nocheck -- Disabling TS for the entire file because this file is maintained by UXP, but\n//                we have to keep a copy because the UXP implementation deviates from the RS\n//                implementation and isn't available to non-UXP clients (web, CCD). If we add\n//                types here, we'll have to do it again if we need to take updates from UXP.\n/**\n * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/FocusManager.js\n */\nimport autobind from 'autobind-decorator';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { chain, interpretKeyboardEvent } from './events';\nimport scrollToDOMNode from './scrollToDOMNode';\nimport { removeDiacritics } from './string';\n\nconst WHITESPACE_REGEXP = /[\\n\\r]+|[\\s]{1,}/g;\nconst DELAY_BEFORE_AUTOFOCUS = 175;\n\ninterface FocusManagerProps {\n    itemSelector: string;\n    manageTabIndex?: boolean;\n    orientation?: string;\n    selectedItemSelector?: string;\n    disabled?: boolean;\n    disableCyclicFocus?: boolean;\n    typeToSelect?: boolean;\n    includeSelf?: boolean;\n    ignorePageUpPageDown?: boolean;\n    autoFocus?: boolean;\n    nextFocusOffset?: () => number;\n    prevFocusOffset?: () => number;\n    onKeyboardFocusChange?: (item, index, e) => void;\n}\n\n@autobind\nexport default class FocusManager extends React.Component<FocusManagerProps> {\n    static propTypes = {\n        /**\n         * A selector of focusable elements to manage focus between\n         */\n        itemSelector: PropTypes.string.isRequired,\n\n        /**\n         * Whether to use roving tabIndex so that only one element within the group can receive focus with tab\n         * key at a time.\n         */\n        manageTabIndex: PropTypes.bool,\n\n        /**\n         * Orientation of items; \"horizontal\" orientation ignores up/down arrow keys, \"vertical\" orientation\n         * ignores left/right arrow keys, \"both\" handles up/left and down/right.\n         */\n        orientation: PropTypes.oneOf(['horizontal', 'vertical', 'both']),\n\n        /**\n         * A selector of selected elements\n         */\n        selectedItemSelector: PropTypes.string,\n\n        /**\n         * Whether to disable focus management\n         */\n        disabled: PropTypes.bool,\n\n        /**\n         * Whether arrow key navigation will wrap around to the other end, such as\n         * up arrow from the first item wrapping around to the last item.\n         */\n        disableCyclicFocus: PropTypes.bool,\n\n        /**\n         * Whether to include alphanumeric typing as a way to move focus to items in a list.\n         */\n        typeToSelect: PropTypes.bool,\n\n        /**\n         * Whether to include the child wrapper element in the group of elements that can receive focus.\n         */\n        includeSelf: PropTypes.bool,\n\n        /**\n         * Whether to ignore PageUp and PageDown events to move focus between items.\n         */\n        ignorePageUpPageDown: PropTypes.bool,\n\n        /**\n         * Whether to autoFocus first selected item or first item.\n         */\n        autoFocus: PropTypes.bool,\n    };\n\n    static defaultProps = {\n        manageTabIndex: true,\n        orientation: 'vertical',\n        typeToSelect: false,\n        includeSelf: false,\n        ignorePageUpPageDown: false,\n        autoFocus: false,\n        selectedItemSelector: '',\n        disabled: false,\n        disableCyclicFocus: false,\n    };\n\n    private searchIndex: number;\n    private focusTimer: number;\n\n    getItems(selected = false) {\n        const { itemSelector, selectedItemSelector, includeSelf } = this.props;\n        const selector = selected && selectedItemSelector ? selectedItemSelector : itemSelector;\n        // eslint-disable-next-line react/no-find-dom-node\n        const node = ReactDOM.findDOMNode(this) as HTMLDivElement;\n        const array = [];\n        if (includeSelf && node.matches(selector)) {\n            array.push(node);\n        }\n        const items = array.concat(Array.from(node.querySelectorAll(selector)));\n\n        /* When items have data-order defined, we use the attribute to sort the items.\n         * The sort order based on data-order attribute defines the next focus element.\n         */\n        if (items.length > 0 && items[0].getAttribute('data-order') !== undefined) {\n            items.sort((a, b) => {\n                const p1 = a.getAttribute('data-order');\n                const p2 = b.getAttribute('data-order');\n                return parseInt(p1, 10) - parseInt(p2, 10);\n            });\n        }\n        return items;\n    }\n\n    keyboardFocusItem(item, index, e) {\n        const { onKeyboardFocusChange } = this.props;\n        item.focus();\n        if (onKeyboardFocusChange) {\n            onKeyboardFocusChange(item, index, e);\n        }\n    }\n\n    onFocusFirst(e?) {\n        const items = this.getItems();\n        if (items.length && (!e || items.indexOf(e.target) !== -1)) {\n            if (e) {\n                e.preventDefault();\n            }\n            this.keyboardFocusItem(items[0], 0, e);\n        }\n    }\n\n    onFocusLast(e) {\n        const items = this.getItems();\n        if (items.length && (!e || items.indexOf(e.target) !== -1)) {\n            if (e) {\n                e.preventDefault();\n            }\n            this.keyboardFocusItem(items[items.length - 1], items.length - 1, e);\n        }\n    }\n\n    onFocusPrevious(e, offset = 1) {\n        const { disableCyclicFocus } = this.props;\n        const items = this.getItems();\n        if (items.length && e && items.indexOf(e.target) !== -1) {\n            e.preventDefault();\n\n            let index = items.indexOf(e.target) - offset;\n            if (index < 0) {\n                if (disableCyclicFocus) {\n                    return;\n                }\n                index = items.length - 1;\n            }\n            this.keyboardFocusItem(items[index], index, e);\n        }\n    }\n\n    onFocusNext(e, offset = 1) {\n        const { disableCyclicFocus } = this.props;\n        const items = this.getItems();\n        if (items.length && e && items.indexOf(e.target) !== -1) {\n            e.preventDefault();\n\n            let index = items.indexOf(e.target) + offset;\n            if (index >= items.length) {\n                if (disableCyclicFocus) {\n                    return;\n                }\n                index = 0;\n            }\n            this.keyboardFocusItem(items[index], index, e);\n        }\n    }\n\n    onPageUp(e) {\n        const { ignorePageUpPageDown } = this.props;\n        if (ignorePageUpPageDown) {\n            return;\n        }\n\n        const items = this.getItems();\n        if (items.length && e && items.indexOf(e.target) !== -1) {\n            e.preventDefault();\n\n            // eslint-disable-next-line react/no-find-dom-node\n            const listNode = ReactDOM.findDOMNode(this) as HTMLDivElement;\n            const nextPage = Math.max(\n                e.target.offsetTop + e.target.offsetHeight - listNode.clientHeight,\n                0,\n            );\n            const index = items.indexOf(e.target);\n            const item = items\n                .slice(0, index)\n                .reverse()\n                .find((item) => item.offsetTop < nextPage);\n\n            if (item) {\n                this.keyboardFocusItem(item, index, e);\n                scrollToDOMNode(item, listNode, true);\n            } else {\n                this.onFocusFirst(e);\n            }\n        }\n    }\n\n    onPageDown(e) {\n        const { ignorePageUpPageDown } = this.props;\n        if (ignorePageUpPageDown) {\n            return;\n        }\n\n        const items = this.getItems();\n        if (items.length && e && items.indexOf(e.target) !== -1) {\n            e.preventDefault();\n\n            // eslint-disable-next-line react/no-find-dom-node\n            const listNode = ReactDOM.findDOMNode(this) as HTMLDivElement;\n            const nextPage = Math.min(\n                e.target.offsetTop + listNode.clientHeight,\n                listNode.scrollHeight + listNode.clientHeight,\n            );\n            const index = items.indexOf(e.target) + 1;\n            const item = items\n                .slice(index)\n                .find((item) => item.offsetTop + item.offsetHeight > nextPage);\n\n            if (item) {\n                this.keyboardFocusItem(item, index, e);\n                scrollToDOMNode(item, listNode, true);\n            } else {\n                this.onFocusLast(e);\n            }\n        }\n    }\n\n    keysSoFar = '';\n    keyClearTimeout = null;\n\n    findItemToFocus(e) {\n        const { target, shiftKey, charCode } = e;\n\n        const character = removeDiacritics(String.fromCharCode(charCode)).toUpperCase();\n\n        let items = this.getItems();\n\n        if (this.keysSoFar === '' || character === this.keysSoFar || shiftKey) {\n            // reverse order if shiftKey is pressed\n            if (shiftKey) {\n                items = items.reverse();\n            }\n            this.searchIndex = items.indexOf(target);\n        }\n\n        if (character !== this.keysSoFar) {\n            this.keysSoFar += character;\n        }\n\n        this.clearKeysSoFarAfterDelay();\n\n        let item = this.findMatchInRange(items, this.searchIndex + 1, items.length);\n\n        if (!item) {\n            item = this.findMatchInRange(items, 0, this.searchIndex);\n        }\n\n        if (item) {\n            item.focus();\n        }\n    }\n\n    clearKeysSoFarAfterDelay() {\n        if (this.keyClearTimeout) {\n            clearTimeout(this.keyClearTimeout);\n        }\n        this.keyClearTimeout = setTimeout(() => {\n            this.keysSoFar = '';\n        }, 500);\n    }\n\n    findMatchInRange(items, startIndex, endIndex) {\n        // Find the first item starting with the keysSoFar substring, searching in the specified range of items\n        for (let i = startIndex; i < endIndex; i++) {\n            const label = items[i].innerText || items[i].textContent;\n            if (\n                label &&\n                removeDiacritics(label)\n                    .replace(WHITESPACE_REGEXP, '')\n                    .toUpperCase()\n                    .startsWith(this.keysSoFar)\n            ) {\n                return items[i];\n            }\n        }\n        return null;\n    }\n\n    /**\n     * Handle keydown event\n     * @param {Event} e Event object\n     */\n    onKeyDown(e) {\n        if (e.isPropagationStopped()) {\n            return;\n        }\n\n        interpretKeyboardEvent.call(this, e, this.props.orientation);\n    }\n\n    /**\n     * Handle keypress event\n     * @param {Event} e Event object\n     */\n    onKeyPress(e) {\n        if (e.isPropagationStopped()) {\n            return;\n        }\n\n        this.findItemToFocus(e);\n    }\n\n    /**\n     * When an item receives focus, it should have tabIndex === 0 and all other items should have tabIndex === -1\n     * @param {Event} e Event object\n     */\n    onFocus(e) {\n        if (e.isPropagationStopped()) {\n            return;\n        }\n\n        this.getItems().forEach((item) => {\n            item.tabIndex = item === e.target ? 0 : -1;\n        });\n    }\n\n    /**\n     * When an item loses focus, set the appropriate tabIndex on each item based on its selected state.\n     * If the item losing focus is selected,\n     * it should be the only item to receive focus on shift+tab or tab back to the control,\n     * However, if the item losing focus is not selected,\n     * any of the selected items should receive focus on shift+tab or tab.\n     * @param {Event} e Event object\n     */\n    onBlur(e) {\n        if (e.isPropagationStopped()) {\n            return;\n        }\n\n        const selectedItems = this.getItems(true);\n\n        // If there are selected items,\n        if (selectedItems.length) {\n            // store whether item losing focus is selected.\n            const targetSelected = selectedItems.indexOf(e.target) !== -1;\n\n            this.getItems().forEach((item) => {\n                // store whether the current item is selected.\n                const selected = selectedItems.indexOf(item) !== -1;\n\n                // If the current item is the item losing focus and it is selected,\n                // or the current item is selected and the item losing focus is not selected,\n                // set tabIndex === 0, otherwise set tabIndex === -1.\n                item.tabIndex =\n                    (item === e.target && targetSelected) || (!targetSelected && selected) ? 0 : -1;\n            });\n        }\n    }\n\n    componentDidMount() {\n        const { autoFocus, selectedItemSelector } = this.props;\n        if (autoFocus) {\n            // @ts-ignore\n\n            const selectedItem = selectedItemSelector\n                ? ReactDOM.findDOMNode(this).querySelector(selectedItemSelector)\n                : null;\n\n            // wait a frame before trying to shift focus\n            // @ts-ignore\n            this.focusTimer = setTimeout(() => {\n                if (selectedItem) {\n                    selectedItem.focus();\n                } else {\n                    this.onFocusFirst();\n                }\n            }, DELAY_BEFORE_AUTOFOCUS);\n        }\n    }\n\n    componentWillUnmount() {\n        clearTimeout(this.focusTimer);\n    }\n\n    render() {\n        const { children, disabled, manageTabIndex, typeToSelect } = this.props;\n        const child = React.Children.only(children);\n        const {\n            onKeyDown,\n            onKeyPress,\n            onFocus,\n            onBlur,\n            // @ts-ignore\n        } = child.props;\n        // @ts-ignore\n        return React.cloneElement(child, {\n            onKeyDown: !disabled ? chain(onKeyDown, this.onKeyDown) : onKeyDown,\n            onKeyPress: typeToSelect && !disabled ? chain(onKeyPress, this.onKeyPress) : onKeyPress,\n            onFocus: manageTabIndex && !disabled ? chain(onFocus, this.onFocus) : onFocus,\n            onBlur: manageTabIndex && !disabled ? chain(onBlur, this.onBlur) : onBlur,\n        });\n    }\n}\n\nconst focusableElements = [\n    'input:not([disabled]):not([type=hidden])',\n    'select:not([disabled])',\n    'textarea:not([disabled])',\n    'button:not([disabled])',\n    'a[href]',\n    'area[href]',\n    'summary',\n    'iframe',\n    'object',\n    'embed',\n    'audio[controls]',\n    'video[controls]',\n    '[contenteditable]',\n];\n\nexport const FOCUSABLE_ELEMENT_SELECTOR = `${focusableElements.join(',')},[tabindex]`;\n\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"])');\n\nexport const TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([tabindex=\"-1\"]),');\n\nexport function trapFocus(componentOrElement, event) {\n    const { type, key, shiftKey, target } = event;\n\n    let node;\n    let tabbables;\n    let tabbable;\n    let first;\n    let last;\n\n    if (type === 'keydown' || type === 'focus') {\n        // eslint-disable-next-line react/no-find-dom-node\n        node = ReactDOM.findDOMNode(componentOrElement);\n        if (node) {\n            // find tabbable elements within container element\n            tabbables = Array.from(node.querySelectorAll(TABBABLE_ELEMENT_SELECTOR)).filter(\n                (el) => el !== node,\n            );\n            [first] = tabbables;\n            last = tabbables[tabbables.length - 1];\n        }\n    }\n\n    // If navigating using the tab key,\n    if (type === 'keydown' && key === 'Tab') {\n        if (node) {\n            if (shiftKey) {\n                // with focus on first tabbable element, navigating backwards,\n                if (target === first) {\n                    // focus the last tabbable element\n                    tabbable = last;\n                }\n                // otherwise, with focus on last tabbable element, navigating forwards,\n            } else if (target === last) {\n                // focus the first tabbable element.\n                tabbable = first;\n            }\n        }\n    } else if (type === 'focus') {\n        if (target === node) {\n            tabbable = first;\n        }\n    }\n    if (tabbable) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        if (tabbable !== document.activeElement) {\n            tabbable.focus();\n        }\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { observable, runInAction } from 'mobx';\nimport Utils from './utils';\n\nlet measureDiv: HTMLDivElement;\nlet innerDiv: HTMLDivElement;\nconst Measurer = observable({\n    scrollbarWidth: 16, // Mac OS default\n});\n\nfunction measureScrollbar() {\n    if (!measureDiv) {\n        measureDiv = document.createElement('div');\n        measureDiv.setAttribute(\n            'style',\n            // use position 'fixed' instead of 'absolute'\n            // changing position context fixes bug CCXCD-5551 & still works for this util\n            'position: fixed; top: -999px; height: 100px; width: 100px; overflow: scroll;',\n        );\n        innerDiv = document.createElement('div');\n        measureDiv.appendChild(innerDiv);\n        innerDiv.style.height = '200px';\n        document.body.appendChild(measureDiv);\n        // Changing OS scrollbar settings will trigger resize event\n        Utils.getResizeElement().addEventListener('resize', measureScrollbar);\n    }\n\n    const updateWidth = () => {\n        runInAction(() => {\n            Measurer.scrollbarWidth = measureDiv.offsetWidth - innerDiv.offsetWidth;\n        });\n    };\n    // Update immediately for web targets to prevent layout from shifting, as\n    // setTimeout can be delayed when the browser is busy rendering. A second\n    // check after a setTimeout will make sure UXP gets the correct value too.\n    updateWidth();\n\n    const ms = 10; // UXP seems to take 30-80ms to update sizes\n    setTimeout(updateWidth, ms);\n}\n\nexport function getScrollbarMeasurer() {\n    measureScrollbar();\n    return Measurer;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * React Virtualized uses simple comparison of props to determine whether or not it should rerender its contents.\n * This often means it doesn't re-render when we think it should. For example, if we don't pass the array of items to\n * render, it won't re-render if the array is replaced with new data. Even if we do pass the elements,\n * it won't re-render if the array is sorted.\n *\n * To fix this, we can pass additional props that trigger a change...but we don't want to pass props that could collide\n * with React Virtualized props. Also it's tedious to type out all the props that could change. Enter this utility!\n *\n *    <Grid\n *        width={width}\n *        height={height}\n *        {...changeProps(activeSort, activeSortDir, elements.length, selectedItems)}\n *    />\n *\n * @param args\n * @returns {*|{}}\n */\nexport default function changeProps(...args: any[]) {\n    return args.reduce((result, arg, i) => {\n        result[`_dummy${i}`] = arg;\n        return result;\n    }, {});\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * Utility that searched for all items that match the CSS selector and then\n * checks if any of the found items have a tabindex of 0, if not then this utility\n * will set tabindex 0 on the first item found in the array of all the items.\n * @param focusClassSelector CSS Class selector for items that you want to check.\n * @param searchNode The base element containing all the items you are searching for.\n */\nexport default function ensureFocusOnItems(focusClassSelector: string, searchNode: HTMLElement) {\n    // Grab all focusable grid items.\n    const items = [...searchNode.querySelectorAll(`.${focusClassSelector}`)];\n    const hasTabbableElement =\n        items.length && items.some((el) => el.getAttribute('tabindex') === '0');\n    if (!hasTabbableElement && items.length) {\n        items[0].setAttribute('tabindex', '0');\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\n\ninterface IErrorBoundaryProps {\n    message?: string;\n}\n\ninterface IErrorBoundaryState {\n    hasError: boolean;\n}\n\nexport default class ErrorBoundary extends React.Component<\n    IErrorBoundaryProps,\n    IErrorBoundaryState\n> {\n    static getDerivedStateFromError(error: Error) {\n        return { hasError: true };\n    }\n\n    state = {\n        hasError: false,\n    };\n\n    componentDidCatch(error: Error) {\n        const { message } = this.props;\n\n        console.error(`Component Error: ${message}`, error);\n    }\n\n    render() {\n        const { children, message } = this.props;\n        const { hasError } = this.state;\n        if (hasError) {\n            // You can render any custom fallback UI\n            return <p>{`Error: ${message}`}</p>;\n        }\n        return children;\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { useCallback, useEffect } from 'react';\nimport { observer } from 'mobx-react';\nimport type ICollectionItem from '../types/ICollectionItem';\nimport type { ShouldRenderItemAsDisabled } from '../types/ICommonCollectionViewProps';\ninterface IUnableToOpenItemWarningProps {\n    children: any;\n    element: ICollectionItem;\n    shouldRenderItemAsDisabled?: ShouldRenderItemAsDisabled;\n    onItemClickedHandler?: (\n        element: ICollectionItem,\n        event?: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ) => void;\n    allowClickEventOnDisabled?: boolean;\n}\nconst UnableToOpenItemWarning: React.FC<IUnableToOpenItemWarningProps> = observer(\n    ({\n        children,\n        element,\n        shouldRenderItemAsDisabled,\n        onItemClickedHandler = () => {},\n        allowClickEventOnDisabled,\n    }) => {\n        const [disabled, setDisabled] = React.useState(shouldRenderItemAsDisabled !== undefined);\n\n        useEffect(() => {\n            if (shouldRenderItemAsDisabled) {\n                shouldRenderItemAsDisabled(element)\n                    .then((isDisabled) => {\n                        setDisabled(isDisabled);\n                    })\n                    .catch(() => {\n                        // noop\n                    });\n            } else {\n                setDisabled(false);\n            }\n        }, [element, shouldRenderItemAsDisabled]);\n\n        const handleItemClick = useCallback(\n            (\n                element: ICollectionItem,\n                event?: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n            ) => {\n                if (!disabled || allowClickEventOnDisabled) {\n                    onItemClickedHandler(element, event);\n                }\n            },\n            [allowClickEventOnDisabled, disabled, onItemClickedHandler],\n        );\n\n        return (\n            <div className=\"cdo-unable-to-open-overlay\">\n                {React.cloneElement(children, {\n                    disabled,\n                    onItemClickedHandler: handleItemClick,\n                })}\n            </div>\n        );\n    },\n);\n\nexport default UnableToOpenItemWarning;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ReactElement } from 'react';\nimport React, { forwardRef } from 'react';\nimport { WindowScroller } from 'react-virtualized';\n\ninterface AdditionalScrollProps {\n    height: number;\n    isScrolling: boolean;\n    onChildScroll: Function;\n    scrollTop: number;\n    autoHeight: boolean;\n}\n\ninterface Props {\n    children?: (props: Partial<AdditionalScrollProps>) => ReactElement;\n    scrollElementRef?: React.RefObject<HTMLDivElement>;\n}\n\n/**\n * WindowScrollerProvider provides scrollProps for react-virtualized's List/Grid\n * using a WindowScroller, only if necessary. If the view doesn't have a scrollElement,\n * it provides an empty set of props, since we just want the default behavior.\n */\nexport default forwardRef<WindowScroller, Props>(function WindowScrollerProvider(\n    { children, scrollElementRef }: Props,\n    ref,\n): ReactElement {\n    if (scrollElementRef) {\n        return (\n            <WindowScroller ref={ref} scrollElement={scrollElementRef.current}>\n                {({ height, isScrolling, onChildScroll, scrollTop }) =>\n                    children({\n                        height,\n                        isScrolling,\n                        onChildScroll,\n                        scrollTop,\n                        autoHeight: true,\n                    })\n                }\n            </WindowScroller>\n        );\n    } else {\n        return children({});\n    }\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { observer } from 'mobx-react';\nimport debounce from 'lodash-es/debounce';\nimport type { WindowScroller, IndexRange, SectionRenderedParams, Index } from 'react-virtualized';\nimport {\n    Grid,\n    ColumnSizer,\n    accessibilityOverscanIndicesGetter,\n    InfiniteLoader,\n} from 'react-virtualized';\nimport classNames from 'classnames';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport FocusManager from '../thirdparty/FocusManager';\nimport type { ExtendSelectionMode } from '../stores/SelectionStore';\nimport Utils from '../utils/utils';\nimport changeProps from '../utils/react-virtualized-change-props';\nimport ensureFocusOnItems from '../utils/ensure-focus-on-items';\nimport type { UXSortBy } from '../utils/constants';\nimport {\n    MINIMUM_ACCEPTED_TIMEOUT,\n    FOCUS_ITEM_CLASS,\n    CCD_CONTENTVIEW_RESIZE_EVENT,\n    CDO_UPDATE_SCROLL_POSITION,\n} from '../utils/constants';\nimport ErrorBoundary from './ErrorBoundary';\nimport type { IPaginationProps } from '../types/ICommonCollectionViewProps';\nimport type ICommonCollectionViewProps from '../types/ICommonCollectionViewProps';\nimport { getScrollbarMeasurer } from '../utils/scrollbar-measurer';\nimport UnableToOpenItemWarning from './UnableToOpenItemWarning';\nimport type { IGridItemProps } from './GridItem';\nimport DefaultGridItem from './GridItem';\nimport getExtendSelectionMode from '../utils/get-extend-selection-mode';\nimport type { IViewItemProps } from './ViewItem';\nimport WindowScrollerProvider from './WindowScrollerProvider';\n\nimport '../styles/GridView.css';\nimport type ICollectionItem from '../types/ICollectionItem';\n\nenum CardSize {\n    Medium = 'M',\n    Large = 'L',\n}\n\nexport interface ICardSize {\n    /** Minimum width of the tile (the rendition area). */\n    minTileWidth: number;\n    /** Maximum width of the tile. */\n    maxTileWidth: number;\n    /** Margin between rows. */\n    rowMargin: number;\n    /** Margin between columns. */\n    columnMargin: number;\n    /** Height of the metadata area (below the rendition). */\n    infoHeight: number;\n    /** If the tile is not square, the height of the tile. */\n    tileHeight?: number;\n    /** bottom margin and border in the card itself */\n    marginAndBorder?: number;\n}\n\ninterface GridLayout {\n    columnCount: number;\n    columnWidth: number;\n    tileWidth: number;\n}\n\nexport const COMMON_CARD_SIZES: { [key in CardSize]: ICardSize } = {\n    [CardSize.Medium]: {\n        minTileWidth: 118,\n        maxTileWidth: 150,\n        infoHeight: 95,\n        rowMargin: 16,\n        columnMargin: 12,\n        marginAndBorder: 4,\n    },\n    [CardSize.Large]: {\n        minTileWidth: 168,\n        maxTileWidth: 208,\n        infoHeight: 95,\n        rowMargin: 16,\n        columnMargin: 12,\n        marginAndBorder: 4,\n    },\n} as const;\n\ninterface IGridViewProps {\n    sortOptions: UXSortBy[];\n    /** \"M\" and \"L\" shortcuts are deprecated; use CardSize directly. */\n    cardSize?: CardSize | ICardSize;\n    /** For defining item-specific ViewItem props */\n    getPropsForItem?: (item) => Partial<IViewItemProps>;\n}\n\ninterface IGridViewState {\n    width: number;\n    height: number;\n    elementsSeen: Array<ICollectionItem['id']>;\n    columnCount: number;\n    columnWidth: number;\n    lastColumnWidth: number;\n    rowHeight: number;\n    tileWidth: number;\n    tileHeight: number;\n}\n\nconst RECALC_DEBOUNCE = 1000 / 60; // debounce to at most 60fps\n\n/**\n * Simple unordered grid view bound to data store.\n */\n@observer\nclass GridView extends React.Component<\n    IGridViewProps & WrappedComponentProps & ICommonCollectionViewProps,\n    IGridViewState\n> {\n    static defaultProps: Partial<React.ComponentProps<typeof GridView>> = {\n        additionalChangeProps: [],\n        cardSize: CardSize.Large,\n    };\n\n    state = {\n        columnCount: 0,\n        columnWidth: 0,\n        elementsSeen: [],\n        height: 0,\n        lastColumnWidth: 0,\n        rowHeight: 0,\n        tileHeight: 0,\n        tileWidth: 0,\n        width: 0,\n    };\n\n    private _gridRef: React.RefObject<HTMLDivElement> = React.createRef();\n    private resizeObserver: ResizeObserver;\n\n    // Methods like getBoundingClientRect in this._computeLayout below, when requested/called in JavaScript,\n    // will trigger the browser to synchronously calculate the style and layout. This\n    // is also called reflow or layout thrashing, and is a common performance bottleneck.\n    // https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    private _measureContainerDimensions = () => {\n        if (this._gridRef.current) {\n            // UXP dispatches the resize event every 'frame' rendered on the screen\n            // even if the user has not resized the screen. To resolve this\n            // We need to compare the current dimensions of the screen against\n            // the values saved in this.state\n            const { height, width } = this._gridRef.current.getBoundingClientRect();\n            if (this.state.height === height && this.state.width === width) {\n                return;\n            }\n            this._computeLayout({ width, height });\n        }\n    };\n\n    // Only refresh after MINIMUM_ACCEPTED_TIMEOUT ms since last resize. This fixes\n    // https://jira.corp.adobe.com/browse/CCXCD-4510 and seems more responsive than throttling.\n    private handleResize = debounce(\n        (): void => {\n            this._measureContainerDimensions();\n        },\n        RECALC_DEBOUNCE,\n        { leading: true },\n    );\n\n    private windowScrollerRef = React.createRef<WindowScroller>();\n\n    private onUpdateScrollPosition = () => {\n        this.windowScrollerRef.current?.updatePosition();\n    };\n\n    public componentDidMount() {\n        this.handleResize();\n        // Duplicate call to _measureContainerDimensions to get accurate dimensions for certain low-spec devices\n        requestAnimationFrame(() => this._measureContainerDimensions());\n        const resizeElement = this._getResizeElement();\n        resizeElement.addEventListener('resize', this.handleResize);\n        resizeElement.addEventListener(CCD_CONTENTVIEW_RESIZE_EVENT, this.handleResize);\n        resizeElement.addEventListener(CDO_UPDATE_SCROLL_POSITION, this.onUpdateScrollPosition);\n\n        this.resizeObserver = new ResizeObserver(this.handleResize);\n        if (this._gridRef.current) {\n            this.resizeObserver.observe(this._gridRef.current);\n        }\n    }\n\n    public componentDidUpdate(\n        prevProps: IGridViewProps & ICommonCollectionViewProps,\n        prevState: IGridViewState,\n    ) {\n        if (!this._gridRef.current) {\n            return;\n        }\n\n        const { elements } = this.props;\n        const { width, height } = this.state;\n        // Some prop and state changes require a relayout, even if the window has not been resized:\n        // - A different number of items is visible.\n        // - A transition from an unrendered grid (0-width or 0-height) to a visible grid (see isGridVisible)\n        //   (causing the header to appear, making the available grid area smaller).\n        if (\n            prevProps.elements.length !== elements.length ||\n            (prevState.width === 0 && width > 0) ||\n            (prevState.height === 0 && height > 0) ||\n            prevProps.cardSize !== this.props.cardSize ||\n            prevProps.pagination?.isNextPageLoading !== this.props.pagination?.isNextPageLoading ||\n            prevProps.pagination?.hasNextPage !== this.props.pagination?.hasNextPage\n        ) {\n            const dimensions = this._gridRef.current.getBoundingClientRect();\n            this._computeLayout(dimensions);\n        }\n\n        ensureFocusOnItems(FOCUS_ITEM_CLASS, this._gridRef.current);\n    }\n\n    public componentWillUnmount() {\n        // Cancel any pending throttled handleResize events\n        this.handleResize.cancel();\n        const resizeElement = this._getResizeElement();\n        resizeElement.removeEventListener('resize', this.handleResize);\n        resizeElement.removeEventListener(CCD_CONTENTVIEW_RESIZE_EVENT, this.handleResize);\n        resizeElement.removeEventListener(CDO_UPDATE_SCROLL_POSITION, this.onUpdateScrollPosition);\n        if (this._gridRef.current) {\n            this.resizeObserver?.unobserve(this._gridRef.current);\n        }\n    }\n\n    private _computeColumns(totalWidth: number): GridLayout {\n        const { elements, pagination } = this.props;\n\n        const numberOfElements: number =\n            elements.length > 0 ? elements.length : pagination?.initialPlaceholderElements;\n\n        // If there are no elements, return an empty layout\n        if (!numberOfElements) {\n            return {\n                columnCount: 0,\n                columnWidth: 0,\n                tileWidth: 0,\n            };\n        }\n\n        const { scrollbarWidth } = getScrollbarMeasurer();\n\n        const width = totalWidth - scrollbarWidth;\n        let bestLayout: GridLayout;\n        let targetColumnCount: number;\n\n        for (\n            let tileWidth = this.cardSize.minTileWidth;\n            tileWidth <= this.cardSize.maxTileWidth;\n            tileWidth++\n        ) {\n            const columnWidth = tileWidth + this.cardSize.columnMargin;\n            const columnCount: number =\n                targetColumnCount || Math.min(Math.floor(width / columnWidth), numberOfElements);\n\n            if (columnCount * columnWidth <= width) {\n                targetColumnCount = targetColumnCount || columnCount;\n                bestLayout = {\n                    columnCount,\n                    columnWidth,\n                    tileWidth,\n                };\n            }\n        }\n        return bestLayout;\n    }\n\n    private _getColumnWidthByIndex = ({ index }: { index: number }) => {\n        if (index === this.state.columnCount - 1) {\n            return this.state.lastColumnWidth;\n        }\n        return this.state.columnWidth;\n    };\n\n    private _computeLayout({ width, height }: { width: number; height: number }): void {\n        const { columnWidth, tileWidth, columnCount } = this._computeColumns(width);\n\n        const renditionAspectRatio = 0.75;\n        const defaultTileHeight =\n            tileWidth * renditionAspectRatio +\n            this.cardSize.infoHeight +\n            this.cardSize.marginAndBorder;\n\n        const tileHeight = this.cardSize.tileHeight ?? defaultTileHeight;\n\n        const rowHeight = tileHeight + this.cardSize.rowMargin;\n\n        this.setState({\n            columnCount,\n            columnWidth,\n            height,\n            lastColumnWidth: tileWidth,\n            rowHeight,\n            tileHeight,\n            tileWidth,\n            width,\n        });\n\n        // When the grid's layout changes, notify any sibling grids within the\n        // same scroll container, so that they can call WindowScroller's\n        // updatePosition() to update their scroll offsets.\n        const resizeElement = this._getResizeElement();\n        resizeElement.dispatchEvent(new CustomEvent(CDO_UPDATE_SCROLL_POSITION));\n    }\n\n    private _getFocusOffset = () => this.state.columnCount;\n\n    private _getResizeElement() {\n        // UXP currently does not bubble up the resize event to the window but\n        // it does dispatch the event to every DOM node up to document.\n        return Utils.usingUXP() ? document : window;\n    }\n\n    private shouldRenderPlaceholder = (\n        index: number,\n        numberOfElements: number,\n        pagination?: IPaginationProps,\n    ): boolean => {\n        // only render placeholders when we have placeholders defined\n        if (!pagination) {\n            return false;\n        }\n\n        const { initialPlaceholderElements, isNextPageLoading } = pagination;\n\n        // special case on initial load for when we want to render the exact number of placeholders\n        if (numberOfElements === 0 && index >= initialPlaceholderElements) {\n            return false;\n        }\n\n        // otherwise, render placeholders when we are loading the next page\n        return isNextPageLoading;\n    };\n\n    /**\n     * Cell Renderer\n     * The function called for each cell rendered on the Grid\n     * more information https://github.com/bvaughn/react-virtualized/blob/master/docs/Grid.md\n     */\n    private onCellRender = ({\n        columnIndex, // Horizontal (column) index of cell\n        key, // Unique key within array of cells\n        rowIndex, // Vertical (row) index of cell\n        style, // Style object to be applied to cell (to position it);\n    }: {\n        columnIndex: number;\n        key: string;\n        rowIndex: number;\n        style: { [key: string]: string };\n    }): React.ReactElement<HTMLDivElement> => {\n        const {\n            selectionStore,\n            elements,\n            ingestSubcategory,\n            hideSelectionCheckbox,\n            shouldHideCheckbox,\n            onItemSelected,\n            children,\n            openActionMenuId,\n            onEllipsisClick,\n            pagination,\n            cardSize,\n            getPropsForItem,\n            intl,\n        } = this.props;\n        const { tileWidth, tileHeight, columnCount } = this.state;\n\n        const curIndex = rowIndex * columnCount + columnIndex;\n        if (curIndex >= elements.length) {\n            return this.shouldRenderPlaceholder(curIndex, elements.length, pagination) ? (\n                <div key={key} style={style}>\n                    {pagination.renderGridItemPlaceholder({\n                        index: curIndex,\n                        cardSize: this.cardSize,\n                        tileWidth,\n                        tileHeight,\n                    })}\n                </div>\n            ) : null;\n        }\n\n        const element = elements[curIndex];\n        const isSelected = selectionStore?.isSelected(element);\n        // @ts-ignore\n        const viewItem: typeof DefaultGridItem =\n            typeof children === 'function' ? children?.(element) ?? DefaultGridItem : children; // backward compatibility for FMHS Recents\n        const { props: viewItemProps } = viewItem as unknown as ReactElement;\n        const currentKey = element.id;\n        // If this is the first item, set a positive tab index\n        // to prevent tabbing to other GridItems and let\n        // FocusManager manage the other items' tabindex.\n        const itemTabIndex = rowIndex + columnIndex === 0 ? 0 : -1;\n        return (\n            <div key={currentKey} style={style}>\n                <ErrorBoundary message=\"GridView.GridItem failed to render\">\n                    <UnableToOpenItemWarning {...viewItemProps} element={element}>\n                        {React.cloneElement(\n                            viewItem as unknown as ReactElement,\n                            {\n                                element,\n                                isSelected,\n                                tileWidth,\n                                tileHeight,\n                                ingestSubcategory,\n                                tabIndex: itemTabIndex,\n                                shouldHideCheckbox,\n                                hideSelectionCheckbox,\n                                onItemSelected,\n                                selectionStore,\n                                isEllipsisMenuOpen: openActionMenuId === element.id,\n                                onEllipsisClick: onEllipsisClick,\n                                cardSize,\n                                intl,\n                                ...(getPropsForItem?.(element) ?? {}),\n                            } as Partial<IGridItemProps>,\n                        )}\n                    </UnableToOpenItemWarning>\n                </ErrorBoundary>\n            </div>\n        );\n    };\n\n    private onSectionRendered = (params: SectionRenderedParams): void => {\n        ensureFocusOnItems(FOCUS_ITEM_CLASS, this._gridRef.current);\n        if (params) {\n            this.onRowsRendered({\n                startIndex: params.rowStartIndex,\n                stopIndex: params.rowStopIndex,\n            });\n        }\n    };\n\n    // needed for infinite scroll in grid\n    // referenced in renderInfiniteLoader\n    // https://github.com/bvaughn/react-virtualized/blob/master/docs/InfiniteLoader.md#infiniteloader-and-grid\n    private onRowsRendered: (params: IndexRange) => void = () => {};\n\n    private isRowLoaded = (params: Index) => {\n        // params.index is the row index, not the element index\n        const { columnCount } = this.state;\n        return columnCount * (params.index + 1) < this.props.elements.length;\n    };\n\n    private loadMoreRows = ({\n        startIndex, // row start\n        stopIndex, // row stop\n    }: IndexRange) => {\n        const columnCount = this.state.columnCount || 1;\n        const startElementIndex = columnCount * startIndex;\n        const stopElementIndex = columnCount * stopIndex;\n        return this.props.pagination.loadNextPage({\n            startIndex: startElementIndex,\n            stopIndex: stopElementIndex,\n        });\n    };\n\n    private renderInfiniteLoader() {\n        return (\n            <ErrorBoundary message=\"GridView.ReactVirtualized.InfiniteLoader failed to render\">\n                <InfiniteLoader\n                    isRowLoaded={this.isRowLoaded}\n                    loadMoreRows={this.loadMoreRows}\n                    rowCount={this.rowCount}\n                    // threshold is the number of rows scrolled from the end of the view at which to pre-fetch data.\n                    // Default of 15 is too high for GridView, since it really represents 15 * columnCount of elements.\n                    // Note: if clients require different values, we should consider making it a configuration in IPaginationProps.\n                    threshold={2}\n                >\n                    {({ onRowsRendered, registerChild }) =>\n                        this.renderGridContents(onRowsRendered, registerChild)\n                    }\n                </InfiniteLoader>\n            </ErrorBoundary>\n        );\n    }\n    private onKeyboardFocusChange = (item: HTMLElement, index: number, e: React.MouseEvent) => {\n        const { elements, onItemSelected, arrowKeyMovesSelection } = this.props;\n\n        if (!arrowKeyMovesSelection) {\n            return;\n        }\n\n        // find the focused element\n        const targetId = item.getAttribute('data-element-id');\n        const element = elements.find((el) => el.id === targetId);\n\n        if (onItemSelected && element) {\n            const extendSelectionMode: ExtendSelectionMode = getExtendSelectionMode(e);\n            onItemSelected(element, extendSelectionMode);\n        }\n    };\n\n    private get cardSize(): ICardSize {\n        const { cardSize } = this.props;\n        if (typeof cardSize === 'string') {\n            return COMMON_CARD_SIZES[cardSize];\n        } else {\n            return cardSize;\n        }\n    }\n\n    private renderColumnSizer(children: any) {\n        const { width, columnCount } = this.state;\n\n        const columnSizerProps = {\n            columnMaxWidth: this.cardSize.maxTileWidth + this.cardSize.columnMargin,\n            columnCount,\n            width,\n        };\n\n        return <ColumnSizer {...columnSizerProps}>{children}</ColumnSizer>;\n    }\n\n    get rowCount(): number {\n        const { elements, pagination } = this.props;\n        const { columnCount } = this.state;\n        const rowCount = Math.ceil(elements.length / (columnCount || 1));\n\n        // when there are no elements use initialPlaceholderElements to determine the number of rows\n        const placeholderRowCount =\n            elements.length === 0\n                ? Math.ceil(pagination?.initialPlaceholderElements / (columnCount || 1))\n                : rowCount + 1;\n\n        // return the appropriate number of rows when there are more pages to load or while loading is in progress\n        const renderPlaceholderRow = pagination?.isNextPageLoading || pagination?.hasNextPage;\n        return renderPlaceholderRow ? placeholderRowCount : rowCount;\n    }\n    private renderGridContents(\n        onRowsRendered?: (params: IndexRange) => void,\n        virtualRegisterChild?,\n    ) {\n        this.onRowsRendered = onRowsRendered ?? this.onRowsRendered;\n        const { width, height, columnCount, rowHeight } = this.state;\n        const {\n            elements,\n            autoHeight,\n            // overscanRowCount should be at least 2 so that keyboard nav + virtual scrolling works smoothly\n            overscanRowCount = 2,\n            additionalChangeProps,\n            scrollIndex = -1,\n            scrollElementRef,\n            openActionMenuId,\n            onScroll,\n            pagination,\n        } = this.props;\n\n        const isNextPageLoading = pagination?.isNextPageLoading ?? false;\n        const commonGridProps = {\n            cellRenderer: this.onCellRender,\n            columnCount,\n            columnWidth: this._getColumnWidthByIndex,\n            rowCount: this.rowCount,\n            rowHeight,\n            width,\n            height,\n            overscanRowCount,\n            overscanColumnCount: 1,\n            autoHeight,\n            tabIndex: -1, // Prevents the <Grid> element from being focusable\n            // Trigger re-render when these values change\n            // NOTE: elements must be a new array each time so that\n            // React-virtualized can do simple === check on these props to detect changes.\n            ...changeProps(elements, isNextPageLoading, ...additionalChangeProps),\n            overscanIndicesGetter: accessibilityOverscanIndicesGetter,\n            onSectionRendered: this.onSectionRendered,\n            scrollToRow: Math.ceil((scrollIndex + 1) / (columnCount || 1)) - 1,\n            openActionMenuId,\n            onRowsRendered,\n        };\n\n        // Unwrapping the observable here is required for the test\n        // suite to properly pass.\n        const hasElements = Boolean(\n            pagination?.initialPlaceholderElements || (elements && elements.length > 0),\n        );\n        const isGridVisible =\n            width > 0 && height > 0 && hasElements && columnCount > 0 && this.rowCount > 0;\n        const GridComponent = Grid;\n\n        return (\n            <div>\n                {isGridVisible && (\n                    <ErrorBoundary message=\"GridView.ReactVirtualized.ColumnSizer failed to render\">\n                        {this.renderColumnSizer(({ registerChild }: any) => (\n                            <ErrorBoundary message=\"GridView.ReactVirtualized.Grid failed to render\">\n                                {\n                                    // FocusManager has to be wrapped\n                                    // Directly around Grid\n                                    this.renderFocusElement(\n                                        <WindowScrollerProvider\n                                            ref={this.windowScrollerRef}\n                                            scrollElementRef={scrollElementRef}\n                                        >\n                                            {(scrollProps) => (\n                                                <GridComponent\n                                                    ref={(ref) => {\n                                                        registerChild(ref);\n                                                        virtualRegisterChild?.(ref);\n                                                    }}\n                                                    {...commonGridProps}\n                                                    {...scrollProps}\n                                                    onScroll={onScroll}\n                                                />\n                                            )}\n                                        </WindowScrollerProvider>,\n                                    )\n                                }\n                            </ErrorBoundary>\n                        ))}\n                    </ErrorBoundary>\n                )}\n            </div>\n        );\n    }\n\n    private renderGrid() {\n        const { pagination } = this.props;\n        return (\n            <div className=\"cdo-itemsContainer\" ref={this._gridRef}>\n                {pagination ? this.renderInfiniteLoader() : this.renderGridContents()}\n            </div>\n        );\n    }\n\n    private renderFocusElement(children: ReactElement) {\n        const { focusManagementEnabled, selectionManager, isFeatureFlagEnabled } = this.props;\n\n        if (focusManagementEnabled) {\n            return (\n                <FocusManager\n                    itemSelector={`.${FOCUS_ITEM_CLASS}`}\n                    orientation=\"both\"\n                    manageTabIndex\n                    nextFocusOffset={this._getFocusOffset}\n                    prevFocusOffset={this._getFocusOffset}\n                    disableCyclicFocus\n                    onKeyboardFocusChange={\n                        isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                            ? selectionManager?.onKeyboardFocusChange\n                            : this.onKeyboardFocusChange\n                    }\n                >\n                    {/**\n                     * Required By <FocusManager> in combination\n                     * with <Grid>\n                     */}\n                    <div tabIndex={-1}>{children}</div>\n                </FocusManager>\n            );\n        }\n        return children;\n    }\n\n    /**\n     * Component renderer.\n     * @return {ReactElement} markup\n     */\n    public render() {\n        const { className } = this.props;\n\n        return (\n            <div className={classNames('cdo-GridView', className ?? '')}>{this.renderGrid()}</div>\n        );\n    }\n}\n\ntype IGridViewPropsExternal = IGridViewProps & ICommonCollectionViewProps;\n\nexport default GridView;\nexport {\n    type IGridViewPropsExternal as IGridViewProps,\n    type IGridViewState as IGridViewStateForTests,\n    CardSize,\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Checkbox from '@react/react-spectrum/Checkbox';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { FOCUS_ITEM_CLASS } from '../utils/constants';\nimport stopPropagation from '../utils/stop-propagation';\nimport ActionMenu from './ActionMenu';\nimport Dimmer from './Dimmer';\nimport Rename from './Rename';\nimport type { IViewItemProps } from './ViewItem';\nimport ViewItem from './ViewItem';\nimport ViewItemIcon from './ViewItemIcon';\nimport type ICollectionItem from '../types/ICollectionItem';\nimport type Action from '../utils/action';\nimport type { ICardSize } from './GridView';\nimport { CardSize, COMMON_CARD_SIZES } from './GridView';\n\nimport '../styles/GridItem.css';\n\ninterface IGridItemProps {\n    tileWidth?: number;\n    tileHeight?: number;\n    additionalNameContent?: (element: ICollectionItem) => JSX.Element;\n    hideSelectionCheckbox?: boolean;\n    shouldHideCheckbox?: (element: ICollectionItem) => boolean;\n    enablePerformanceMetrics?: boolean;\n    cardSize?: ICardSize; // used by subclasses\n}\n\nclass GridItem<TProps = {}> extends ViewItem<IGridItemProps & TProps> {\n    gridItemRef: React.RefObject<HTMLDivElement> = React.createRef();\n\n    /* overridden in subclasses */\n    protected onMouseOver = () => {};\n\n    protected renditionMargins = 16; // top + bottom or left + right\n\n    protected computeRenditionWrapperHeight = (tileHeight: number) => {\n        const { cardSize = CardSize.Large } = this.props;\n        const cardData = typeof cardSize === 'string' ? COMMON_CARD_SIZES[cardSize] : cardSize;\n        const { marginAndBorder = 0, infoHeight } = cardData;\n\n        return tileHeight - infoHeight - marginAndBorder;\n    };\n    protected computeHeight = (tileHeight) => tileHeight;\n\n    protected renderRendition() {\n        const { tileHeight = 0, tileWidth = 0, element } = this.props;\n\n        return (\n            <ViewItemIcon\n                element={element}\n                style={{\n                    maxWidth: tileWidth - this.renditionMargins,\n                    maxHeight:\n                        this.computeRenditionWrapperHeight(tileHeight) - this.renditionMargins,\n                }}\n                theme={this.props.theme}\n            />\n        );\n    }\n\n    protected renderTitle() {\n        const {\n            element,\n            renderTooltip,\n            additionalNameContent = () => {},\n            isFeatureFlagEnabled,\n        } = this.props;\n        const { isRenaming } = this.state;\n        return (\n            <div className={classNames('cdo-name', { ['cdo-isRenaming']: isRenaming })}>\n                <div className=\"cdo-nameString\" id=\"CDOGridItem_Name\">\n                    <Rename\n                        element={element}\n                        name={element.title}\n                        tooltip={renderTooltip && renderTooltip(element)}\n                        isRenaming={isRenaming}\n                        controller={this.renameAction}\n                    />\n                </div>\n                {additionalNameContent(element)}\n                {!isFeatureFlagEnabled?.('enableUnifiedSelectionUX') && this.renderActionMenu()}\n            </div>\n        );\n    }\n\n    protected renderCheckBox() {\n        const { isSelected, isFeatureFlagEnabled, selectionManager, isEllipsisMenuOpen } =\n            this.props;\n        const enableUnifiedSelectionUX = isFeatureFlagEnabled?.('enableUnifiedSelectionUX');\n\n        const isInSelectionContext =\n            isSelected || selectionManager?.isInSelectionMode || selectionManager?.hasAnySelected;\n\n        return (\n            <div\n                id={`CDOGridItem_Selected_${isSelected}`}\n                className={classNames('cdo-checkbox', {\n                    ['cdo-selected']: enableUnifiedSelectionUX\n                        ? isInSelectionContext || isEllipsisMenuOpen\n                        : isSelected,\n                    ['cdo-mobile-selected']: enableUnifiedSelectionUX\n                        ? isInSelectionContext\n                        : isSelected,\n                })}\n                onClick={stopPropagation}\n            >\n                <Checkbox\n                    id=\"CDOGridItem_Checkbox\"\n                    tabIndex={-1} /* the checkbox shouldn't take focus from the item */\n                    checked={isSelected}\n                    renderLabel={false} /* gets rid of React warning */\n                    className=\"cdo-spectrumCheckbox\"\n                    onClick={\n                        enableUnifiedSelectionUX\n                            ? this.handleCheckBoxSelection\n                            : this.onCheckboxSelection\n                    }\n                    // TODO: Modifier keys don't work for onClick in UXP.\n                    // When https://jira.corp.adobe.com/browse/UXP-12952 is resolved, check\n                    // that shift-clicking works in Ps to select a range of items\n                    // per https://jira.corp.adobe.com/browse/CCXCD-3457\n                />\n            </div>\n        );\n    }\n\n    protected renderActionMenu() {\n        const {\n            disabled,\n            element,\n            actionMenuItems = [] as Action[],\n            hideEllipsisMenu,\n            onActionButtonClick,\n            selectionManager,\n            isFeatureFlagEnabled,\n            onEllipsisClick,\n            isEllipsisMenuOpen,\n        } = this.props;\n        const { isRenaming } = this.state;\n        const { alwaysShowEllipsis, showEllipsisOnHover } =\n            selectionManager?.selectionUXConfig ?? {};\n        const showEllipses =\n            (alwaysShowEllipsis || showEllipsisOnHover) &&\n            !isRenaming &&\n            !selectionManager?.hasAnySelected;\n        const actionMenu = isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n            ? showEllipses && (\n                  <div\n                      className={classNames('cdo-grid-ellipsis', {\n                          ['cdo-alwaysShowEllipsis']: alwaysShowEllipsis || isEllipsisMenuOpen,\n                      })}\n                  >\n                      <ActionMenu\n                          disabled={disabled}\n                          elements={[element]}\n                          onActionButtonClick={onActionButtonClick}\n                          actionMenuItems={actionMenuItems}\n                          isFeatureFlagEnabled={isFeatureFlagEnabled}\n                          tabIndex={this.props.actionMenuTabIndex}\n                      />\n                  </div>\n              )\n            : !isFeatureFlagEnabled?.('enableContextMenu') &&\n              !hideEllipsisMenu &&\n              !isRenaming && (\n                  <ActionMenu\n                      disabled={disabled}\n                      elements={[element]}\n                      onActionButtonClick={onActionButtonClick}\n                      actionMenuItems={actionMenuItems}\n                      isFeatureFlagEnabled={isFeatureFlagEnabled}\n                      tabIndex={this.props.actionMenuTabIndex}\n                  />\n              );\n\n        return (\n            <div\n                className=\"cdo-actionMenu\"\n                onClick={onEllipsisClick ? (e) => onEllipsisClick(e, element) : stopPropagation}\n            >\n                {actionMenu}\n            </div>\n        );\n    }\n\n    protected renderThumbnail(renderQuickActions?: React.ReactNode) {\n        const {\n            element,\n            tileHeight = 0,\n            disabled,\n            onItemSelected,\n            isSelected,\n            renderBadge,\n            hideSelectionCheckbox,\n            shouldHideCheckbox,\n            selectionManager,\n            isFeatureFlagEnabled,\n        } = this.props;\n        const { isRenaming } = this.state;\n\n        const selectionEnabled = Boolean(onItemSelected && !isRenaming);\n        const hideCheckbox = hideSelectionCheckbox || shouldHideCheckbox?.(element);\n        return (\n            <div\n                className=\"cdo-renditionWrapper\"\n                style={{ height: this.computeRenditionWrapperHeight(tileHeight) }}\n            >\n                {renderBadge?.(element)}\n                <Dimmer dim={disabled}>{this.renderRendition()}</Dimmer>\n                {isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                    ? selectionManager?.selectionUXConfig?.showCheckbox &&\n                      !isRenaming &&\n                      !hideCheckbox &&\n                      this.renderCheckBox()\n                    : selectionEnabled && !hideCheckbox && this.renderCheckBox()}\n                {isFeatureFlagEnabled?.('enableUnifiedSelectionUX') && this.renderActionMenu()}\n                {renderQuickActions}\n                <div className={classNames('cdo-overlay', { ['cdo-selected']: isSelected })} />\n            </div>\n        );\n    }\n\n    render() {\n        const {\n            disabled = false,\n            element,\n            tileWidth = 0,\n            tileHeight = 0,\n            focusManagementEnabled,\n            tabIndex = -1,\n            enablePerformanceMetrics,\n            ariaLabel,\n            isFeatureFlagEnabled,\n        } = this.props;\n        // const folder = isFolder(element);\n        // @ts-ignore\n        // const folder = element?.backingItem?.isFolder;\n        const gridItemClassNames = {\n            ['cdo-disabled']: disabled,\n        };\n\n        if (enablePerformanceMetrics) {\n            window?.performance?.measure('cdo:GridItem-render');\n        }\n        const tileStyles = {\n            width: tileWidth,\n            height: tileHeight,\n        };\n\n        return (\n            <div\n                aria-label={ariaLabel}\n                className={classNames(\n                    'cdo-ViewItem',\n                    'cdo-GridItem',\n                    gridItemClassNames,\n                    this.additionalClassNames(),\n                    focusManagementEnabled && FOCUS_ITEM_CLASS,\n                    { ['cdo-isValidDropTarget']: this.isValidDropTarget },\n                )}\n                id=\"CDOGridItem\"\n                onClick={\n                    isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                        ? this.handleClickSelection\n                        : this.onClick\n                }\n                onDoubleClick={\n                    isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                        ? undefined\n                        : this.onDoubleClick\n                }\n                // on UXP, box model doesn't seem to work so factor in 2px border and 24px margin\n                style={tileStyles}\n                {...(focusManagementEnabled ? { tabIndex } : {})}\n                onKeyDown={\n                    isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                        ? this.handleKeyDownSelection\n                        : this.onKeyDown\n                }\n                ref={this.gridItemRef}\n                onMouseOverCapture={this.onMouseOver}\n                onContextMenu={\n                    isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                        ? this.handleContextMenuSelection\n                        : this.onContextMenu\n                }\n                onPointerUp={this.onPointerUp}\n                onDragStart={this.onDragStart}\n                onDragEnter={this.onDragEnter}\n                onDragLeave={this.onDragLeave}\n                onDrop={this.onDrop}\n                draggable={!this.isDragDisabled}\n                data-element-id={element.id}\n                data-testid={`grid-${element.id}`}\n            >\n                {this.renderThumbnail()}\n                {this.renderAppIcon()}\n                {this.renderSecondaryBadge()}\n                {this.renderTitleAndMetadata()}\n            </div>\n        );\n    }\n\n    protected renderAppIcon() {}\n    protected renderSecondaryBadge() {}\n\n    protected renderTitleAndMetadata() {\n        const { isRenaming } = this.state;\n        return (\n            <div className=\"cdo-info\" id=\"CDOGridItem_Info\">\n                {this.renderTitle()}\n                {!isRenaming && (\n                    <div className=\"cdo-metaData\" id=\"CDOGridItem_MetaData\">\n                        {this.renderMetadata()}\n                    </div>\n                )}\n            </div>\n        );\n    }\n}\n\ntype IGridItemPropsExternal = IGridItemProps & IViewItemProps;\n\nexport default observer(GridItem);\nexport { type IGridItemPropsExternal as IGridItemProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport ArrowDefault from '@spectrum/spectrum-iconstore/icons/react/core/ArrowDownSmall';\nimport ArrowReverse from '@spectrum/spectrum-iconstore/icons/react/core/ArrowUpSmall';\nimport { UXSortDir } from '../utils/constants';\n\nconst SortArrow = ({ activeSortDirection }: { activeSortDirection: UXSortDir }) =>\n    activeSortDirection === UXSortDir.desc ? (\n        <ArrowDefault size=\"XS\" className=\"cdo-sortDirectionIcon\" data-testid=\"arrow-default\" />\n    ) : (\n        <ArrowReverse size=\"XS\" className=\"cdo-sortDirectionIcon\" data-testid=\"arrow-reverse\" />\n    );\n\nexport default SortArrow;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nimport { UXSortDir, ENTER_KEY_CODE, SPACE_KEY_CODE } from '../utils/constants';\nimport ErrorBoundary from './ErrorBoundary';\nimport SortArrow from './SortArrow';\nimport type { ColumnType } from './ListView';\n\nexport interface IHeaderColumnProps {\n    // Automation id\n    id: string;\n    // UXSortBy option used to change sort field when the column is clicked\n    uxSortColumn: string;\n    // True if this column is the one currently being sorted by\n    isActiveSort: boolean;\n    // If this is the active sort column, this determines which sort arrow to show\n    activeSortDirection: UXSortDir;\n    // Text to display as the column header\n    label: string;\n    // If true, clicking the column does nothing and the column is styled as unsortable\n    isSortDisabled: boolean;\n    // Called when the user clicks the column\n    onColumnClick?: (sortBy: string) => void;\n    // Determines the style and format of the column\n    columnType: ColumnType;\n    forwardedRef?: React.LegacyRef<HTMLDivElement>;\n    isSelectionEnabled?: boolean;\n}\n\nclass HeaderColumn extends React.Component<IHeaderColumnProps> {\n    onLabelClick = (e: React.MouseEvent<any>) => {\n        const { uxSortColumn, onColumnClick, isSortDisabled } = this.props;\n\n        if (!isSortDisabled && uxSortColumn) {\n            onColumnClick(uxSortColumn);\n            // stopPropagation, so changing sort preserves selection.\n            e.stopPropagation();\n        }\n    };\n\n    private onKeyDown = (e: React.KeyboardEvent<any>) => {\n        switch (e.keyCode) {\n            case SPACE_KEY_CODE:\n            case ENTER_KEY_CODE:\n                this.onLabelClick(e as any);\n                break;\n            default:\n                break;\n        }\n    };\n\n    private renderHeaderColumn() {\n        const {\n            id,\n            uxSortColumn,\n            label,\n            isActiveSort,\n            isSortDisabled,\n            activeSortDirection,\n            columnType,\n            forwardedRef,\n            isSelectionEnabled,\n        } = this.props;\n\n        return (\n            <div\n                /*\n                   Note: Include uxSortColumn as className below so outside CDO, clients can override specific\n                         styles by columnType\n                */\n                className={classNames('cdo-column', `cdo-${uxSortColumn}`, `cdo-${columnType}`, {\n                    ['cdo-sortable']: !isSortDisabled,\n                    ['cdo-selectionDisabled']: !isSelectionEnabled,\n                })}\n                id={id}\n                onClick={this.onLabelClick}\n                onKeyDown={this.onKeyDown}\n                ref={forwardedRef}\n            >\n                <div\n                    className={classNames('cdo-textWrapper', { ['cdo-sortable']: !isSortDisabled })}\n                >\n                    <span\n                        className={classNames({\n                            ['cdo-isActiveSort']: isActiveSort,\n                            ['cdo-text']: true,\n                        })}\n                    >\n                        {label}\n                    </span>\n                    {isActiveSort && (\n                        <div\n                            className=\"cdo-sortArrowWrapper\"\n                            id={\n                                activeSortDirection === UXSortDir.desc\n                                    ? 'CDOList_SortDescending'\n                                    : 'CDOList_SortAscending'\n                            }\n                        >\n                            <SortArrow activeSortDirection={activeSortDirection} />\n                        </div>\n                    )}\n                </div>\n            </div>\n        );\n    }\n\n    render() {\n        const { id } = this.props;\n\n        return (\n            <ErrorBoundary message={`ListView.${id} failed to render`}>\n                {this.renderHeaderColumn()}\n            </ErrorBoundary>\n        );\n    }\n}\n\nexport default HeaderColumn;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/* eslint-disable react/no-find-dom-node */\n\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { observer } from 'mobx-react';\nimport type { WindowScroller, IndexRange, Index } from 'react-virtualized';\nimport { List, accessibilityOverscanIndicesGetter, InfiniteLoader } from 'react-virtualized';\nimport throttle from 'lodash-es/throttle';\nimport Checkbox from '@react/react-spectrum/Checkbox';\nimport classnames from 'classnames';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nimport ensureFocusOnItems from '../utils/ensure-focus-on-items';\nimport FocusManager from '../thirdparty/FocusManager';\nimport Utils from '../utils/utils';\nimport changeProps from '../utils/react-virtualized-change-props';\nimport {\n    MINIMUM_ACCEPTED_TIMEOUT,\n    FOCUS_ITEM_CLASS,\n    CCD_CONTENTVIEW_RESIZE_EVENT,\n    UX_SORT_TO_INGEST,\n    UXSortBy,\n    CDO_UPDATE_SCROLL_POSITION,\n} from '../utils/constants';\nimport type ICommonCollectionViewProps from '../types/ICommonCollectionViewProps';\nimport ErrorBoundary from './ErrorBoundary';\nimport type { IHeaderColumnProps } from './HeaderColumn';\nimport HeaderColumn from './HeaderColumn';\nimport type { ExtendSelectionMode } from '../stores/SelectionStore';\nimport { getScrollbarMeasurer } from '../utils/scrollbar-measurer';\nimport UnableToOpenItemWarning from './UnableToOpenItemWarning';\nimport type { IListItemProps } from './ListItem';\nimport DefaultListItem from './ListItem';\nimport getExtendSelectionMode from '../utils/get-extend-selection-mode';\nimport type ICollectionItem from '../types/ICollectionItem';\nimport type { ICollectionViewMetrics } from '../types/CollectionViewMetrics';\nimport WindowScrollerProvider from './WindowScrollerProvider';\nimport '../styles/ListView.css';\nimport type { IViewItemProps } from './ViewItem';\n\n// Which value goes in this column, sometimes defines automation ids and i18n msg ids\nenum Column {\n    Action = 'Action',\n    Select = 'Select',\n    Title = 'Name',\n}\n\n// How to style/format the column\nenum ColumnType {\n    Default = 'default',\n    Date = 'date',\n    Action = 'action',\n}\n\nconst COLUMN_TO_SORTBY: { [key: string]: UXSortBy } = {\n    [Column.Title]: UXSortBy.title,\n};\n\ntype IListViewCustomColumn = Omit<IHeaderColumnProps, 'key' | 'onColumnClick'> & {\n    /** If not provided, then `predefinedColumn` should be provided */\n    cellContentRender?: (element: ICollectionItem) => any;\n    /** A predefined column to override the default colums with custom props */\n    predefinedColumn?: Column;\n};\n\ntype ListViewColumn = Column | IListViewCustomColumn;\n\ninterface IListViewProps {\n    columns: ListViewColumn[];\n    unsortableColumns?: ListViewColumn[];\n    /** For defining item-specific ViewItem props */\n    getPropsForItem?: (item) => Partial<IViewItemProps>;\n    rowHeight?: number;\n}\n\ninterface IListViewState {\n    scrollbarIsVisible: boolean;\n    width: number;\n    height: number;\n    columnIndexes: number[];\n    elementsSeen: Array<ICollectionItem['id']>;\n}\n\n// Determines how to style and format the column\nconst COLUMN_TO_TYPE: { [key: string]: ColumnType } = {\n    [Column.Action]: ColumnType.Action,\n    [Column.Title]: ColumnType.Default,\n};\n\nconst HEADER_HEIGHT = 32;\nconst COLUMNS_NOT_TO_BE_REMOVED = ['Name', 'Action', 'Select'];\nconst COLUMNS_MIN_WIDTH = {\n    Name: 212,\n    Action: 80,\n    Select: 36,\n};\nconst CUSTOM_COLUMN_MIN_WIDTH = 140;\n/**\n * Simple unordered list view bound to data store.\n */\n@observer\nclass ListView extends React.Component<\n    IListViewProps & WrappedComponentProps & ICommonCollectionViewProps,\n    IListViewState\n> {\n    private metrics: ICollectionViewMetrics = this.props.metrics;\n\n    private containerRef: React.RefObject<HTMLDivElement> = React.createRef();\n    private _listRef: React.RefObject<HTMLDivElement> = React.createRef();\n\n    private resizeObserverContainer: ResizeObserver;\n    private resizeObserverColumns: ResizeObserver;\n\n    private _listComponent: React.RefObject<List> = React.createRef();\n    private _columnRefs: Array<React.RefObject<HTMLDivElement>> = this.props.columns.map((column) =>\n        React.createRef<HTMLDivElement>(),\n    );\n\n    private _unsortableColumnsSet = new Set(this.props.unsortableColumns || []);\n\n    state = {\n        scrollbarIsVisible: false,\n        width: 0,\n        height: 0,\n        columnIndexes: [],\n        elementsSeen: [],\n    };\n\n    static defaultProps: Partial<React.ComponentProps<typeof ListView>> = {\n        additionalChangeProps: [],\n    };\n\n    private getVisibleColumnIndexes(): number[] {\n        const { columns } = this.props;\n        if (!this._listRef.current) {\n            // default to all columns, this shouldn't ever happen but better to show all columns in unknown cases\n            return this.props.columns.map((c, index) => index);\n        }\n\n        const isNonRemovable = (column: ListViewColumn) =>\n            COLUMNS_NOT_TO_BE_REMOVED.includes(column as Column) ||\n            COLUMNS_NOT_TO_BE_REMOVED.includes((column as IListViewCustomColumn).predefinedColumn);\n\n        // inclusive of non-removable columns\n        // track the columns we can show\n        const visibleColumnIndexes: number[] = new Array(columns.length).fill(undefined);\n        const containerWidth = this._listRef.current.offsetWidth;\n        let minVisibleColumnWidth = 0;\n        // add the number of non-removable columns first\n        for (let i = 0; i < columns.length; i++) {\n            const column = columns[i];\n            if (isNonRemovable(column) && Boolean(column)) {\n                const minWidth =\n                    COLUMNS_MIN_WIDTH[column as Column] ??\n                    COLUMNS_MIN_WIDTH[(column as IListViewCustomColumn).predefinedColumn];\n                // always add at least one non-removable column\n\n                if (\n                    minVisibleColumnWidth > 0 &&\n                    minVisibleColumnWidth + minWidth > containerWidth\n                ) {\n                    break;\n                }\n                // can add the column\n                visibleColumnIndexes[i] = i;\n                minVisibleColumnWidth += minWidth;\n            }\n        }\n        // then try to add removable columns\n        for (let i = 0; i < columns.length; i++) {\n            const column = columns[i];\n            if (!isNonRemovable(column) && Boolean(column)) {\n                const minWidth = CUSTOM_COLUMN_MIN_WIDTH;\n                if (minVisibleColumnWidth + minWidth > containerWidth) {\n                    // maxed out\n                    break;\n                }\n                // can add the column\n                visibleColumnIndexes[i] = i;\n                minVisibleColumnWidth += minWidth;\n            }\n        }\n\n        return visibleColumnIndexes.filter((index) => index !== undefined);\n    }\n\n    private handleResizeColumns = throttle(() => {\n        const updatedColumns = this.getVisibleColumnIndexes();\n        this.setState({ columnIndexes: updatedColumns });\n    }, MINIMUM_ACCEPTED_TIMEOUT);\n\n    private allColumnsMeasured = false;\n\n    private updateColumnWidths = () => {\n        if (this.allColumnsMeasured) {\n            return true;\n        }\n        let retval = true;\n        // Update the column widths\n        this.state.columnIndexes.forEach((i) => {\n            if (this._columnRefs[i]?.current) {\n                if (this._columnRefs[i].current.offsetWidth === 0) {\n                    retval = false;\n                }\n            } else {\n                retval = false;\n            }\n        });\n        this.allColumnsMeasured = retval;\n        return retval;\n    };\n\n    private createResizeObserver = () => {\n        this.resizeObserverColumns = new ResizeObserver(this.handleResizeColumns);\n        if (this._listRef.current) {\n            this.resizeObserverColumns.observe(this._listRef.current);\n        }\n\n        this.resizeObserverContainer = new ResizeObserver(this.handleResize);\n        if (this.containerRef.current) {\n            this.resizeObserverContainer.observe(this.containerRef.current);\n        }\n    };\n\n    // Methods like getBoundingClientRect in this._computeLayout, when requested/called in JavaScript,\n    // will trigger the browser to synchronously calculate the style and layout. This\n    // is also called reflow or layout thrashing, and is a common performance bottleneck.\n    // https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n    private _measureContainerDimensions = () => {\n        // Height of the list must be calculated as list container height - header height. On\n        // first render, the header isn't rendered, so when componentDidMount calls this, the\n        // list has 100% height. Then the next render adds the header, making the list too tall.\n        // This doesn't happen on UXP because it keeps firing resize events. Hence, containerRef\n        // is measured and not _listRef.\n        if (this.containerRef.current) {\n            // UXP dispatches the resize event every 'frame' rendered on the screen\n            // even if the user has not resized the screen. To resolve this\n            // We need to compare the current dimensions of the screen against\n            // the values saved in this.state\n            const { height, width } = this.containerRef.current.getBoundingClientRect();\n            const sizeChanged = this.state.height !== height || this.state.width !== width;\n            const scrollChanged = this.state.scrollbarIsVisible !== this.isScrollbarVisible();\n            const shouldUpdate = sizeChanged || scrollChanged;\n            if (!shouldUpdate) {\n                return;\n            }\n\n            this.setState({\n                height,\n                width,\n            });\n            this._computeLayout();\n            this.updateColumnWidths();\n        }\n    };\n\n    private handleResize = throttle(() => {\n        this._measureContainerDimensions();\n    }, MINIMUM_ACCEPTED_TIMEOUT);\n\n    private windowScrollerRef = React.createRef<WindowScroller>();\n\n    /**\n     * If CDOView is inside a scrollable parent, the parent might have multiple\n     * CDOView children. If the other CDOViews change size, our WindowScroller\n     * needs to know about the change in position.\n     */\n    private onUpdateScrollPosition = () => {\n        this.windowScrollerRef.current?.updatePosition();\n    };\n\n    componentDidMount() {\n        const resizeElement = this.getResizeElement();\n        resizeElement.addEventListener('resize', this.handleResize);\n        resizeElement.addEventListener(CCD_CONTENTVIEW_RESIZE_EVENT, this.handleResize);\n        resizeElement.addEventListener(CDO_UPDATE_SCROLL_POSITION, this.onUpdateScrollPosition);\n        this._measureContainerDimensions();\n        // Duplicate call to _measureContainerDimensions to get accurate dimensions for certain low-spec devices\n        requestAnimationFrame(() => this._measureContainerDimensions());\n        this.handleResizeColumns();\n        this.createResizeObserver();\n        this.updateColumnWidths();\n    }\n\n    componentDidUpdate(prevProps: IListViewProps, prevState: IListViewState) {\n        ensureFocusOnItems(FOCUS_ITEM_CLASS, this._listRef.current);\n        const scrollbarIsVisible = this.isScrollbarVisible();\n        const { columnIndexes } = this.state;\n        if (scrollbarIsVisible !== prevState.scrollbarIsVisible) {\n            this.setState({ scrollbarIsVisible });\n        }\n        // _rowRenderer on react-virtualized's List caches rendered rows for performance optimizations\n        // However, when columnIndexes state changes\n        // renderHeader gets updated but rowRenderer does not\n        // This is seen sometimes when resizing and often on zoom\n        // forceUpdateGrid() will force react-virtualized's List update on state change\n        if (prevState.columnIndexes != columnIndexes) {\n            this._listComponent?.current?.forceUpdateGrid();\n        }\n    }\n\n    componentWillUnmount(): void {\n        // clear any trailing throttled resize events\n        this.handleResize.cancel();\n        this.handleResizeColumns.cancel();\n        const resizeElement = this.getResizeElement();\n        resizeElement.removeEventListener('resize', this.handleResize);\n        resizeElement.removeEventListener(CCD_CONTENTVIEW_RESIZE_EVENT, this.handleResize);\n        resizeElement.removeEventListener(CDO_UPDATE_SCROLL_POSITION, this.onUpdateScrollPosition);\n\n        if (this._listRef.current) {\n            this.resizeObserverColumns?.unobserve(this._listRef.current);\n        }\n\n        if (this.containerRef.current) {\n            this.resizeObserverContainer?.unobserve(this.containerRef.current);\n        }\n    }\n\n    private isScrollbarVisible = () => {\n        const grid = this._listComponent.current?.Grid as any;\n        const gridInnerContainer =\n            grid &&\n            (ReactDOM.findDOMNode(grid) as Element).getElementsByClassName(\n                'ReactVirtualized__Grid__innerScrollContainer',\n            )[0];\n        return (\n            grid &&\n            gridInnerContainer &&\n            grid._scrollingContainer.clientHeight < gridInnerContainer.clientHeight\n        );\n    };\n\n    private getResizeElement() {\n        return Utils.getResizeElement();\n    }\n\n    private changeSort = (sortBy: UXSortBy) => {\n        const { ingestSubcategory, onSortSelected } = this.props;\n        this.metrics?.fireEvent?.({\n            event: {\n                subcategory: ingestSubcategory,\n                subtype: 'sort',\n                type: 'select',\n                value: UX_SORT_TO_INGEST[sortBy],\n                workflow: 'Gallery',\n            },\n            ui: {\n                view_type: 'list',\n            },\n        });\n        onSortSelected(sortBy);\n    };\n    private _rowRenderer = ({\n        index, // Index of row\n        key, // Unique key within array of rendered rows\n        style, // Style object to be applied to row (to position it);\n    }: // This must be passed through to the rendered row element.\n    {\n        index: number;\n        key: string;\n        style: { [key: string]: string };\n    }) => {\n        const {\n            elements,\n            selectionStore,\n            ingestSubcategory,\n            onItemSelected,\n            children,\n            openActionMenuId,\n            onEllipsisClick,\n            getPropsForItem,\n            pagination,\n        } = this.props;\n        if (index >= elements.length) {\n            if (pagination?.isNextPageLoading) {\n                return (\n                    <div key={key} style={style}>\n                        {pagination.renderListItemPlaceholder({ index })}\n                    </div>\n                );\n            }\n            return;\n        }\n        const element = elements[index];\n        // @ts-ignore\n        const viewItem: typeof DefaultListItem =\n            typeof children === 'function' ? children?.(element) ?? DefaultListItem : children; // backward compatibility for FMHS Recents\n        const { props: viewItemProps } = viewItem as unknown as ReactElement;\n        const isSelected = selectionStore?.isSelected(element);\n        const currentKey = element.id;\n        // If this is the first item, set a positive tab index\n        // to prevent tabbing to other ListItems and let\n        // FocusManager manage the other items' tabindex.\n        const itemTabIndex = index === 0 ? 0 : -1;\n        const columnsToRender = this.props.columns.filter((col, i) =>\n            this.state.columnIndexes.includes(i),\n        );\n\n        return (\n            <div key={currentKey} style={style}>\n                <UnableToOpenItemWarning {...viewItemProps} element={element}>\n                    {React.cloneElement(\n                        viewItem as unknown as ReactElement,\n                        {\n                            columns: columnsToRender,\n                            ingestSubcategory,\n                            element,\n                            isSelected,\n                            tabIndex: itemTabIndex,\n                            onItemSelected,\n                            selectionStore,\n                            isEllipsisMenuOpen: openActionMenuId === element.id,\n                            onEllipsisClick: onEllipsisClick,\n                            ...(getPropsForItem?.(element) ?? {}),\n                        } as Partial<IListItemProps>,\n                    )}\n                </UnableToOpenItemWarning>\n            </div>\n        );\n    };\n\n    private _computeLayout() {\n        if (!this.containerRef.current) {\n            return;\n        }\n\n        if (!this.updateColumnWidths()) {\n            return;\n        }\n\n        // console.log('figure out which columns fit');\n        // When the list's layout changes, notify any sibling lists within the\n        // same scroll container, so that they can call WindowScroller's\n        // updatePosition() to update their scroll offsets.\n        const resizeElement = this.getResizeElement();\n        resizeElement.dispatchEvent(new CustomEvent(CDO_UPDATE_SCROLL_POSITION));\n    }\n\n    private _uppercaseTranslation(translationId: string) {\n        const { intl } = this.props;\n        return intl.formatMessage({ id: translationId }).toUpperCase();\n    }\n\n    get rowCount(): number {\n        const { elements, pagination } = this.props;\n\n        const rowCount: number = elements.length;\n        // use initialPlaceholderElements if there are no elements to calculate row count\n        const placeholderRowCount: number =\n            elements.length === 0 ? pagination?.initialPlaceholderElements : rowCount + 1;\n        const renderPlaceholderRow = pagination?.isNextPageLoading || pagination?.hasNextPage;\n        return renderPlaceholderRow ? placeholderRowCount : rowCount;\n    }\n\n    private onColumnClick = (sortBy: string) => {\n        this.changeSort(sortBy as UXSortBy);\n    };\n    private onKeyboardFocusChange = (item: HTMLElement, index: number, e: React.MouseEvent) => {\n        const { onItemSelected, elements, arrowKeyMovesSelection } = this.props;\n\n        if (!arrowKeyMovesSelection) {\n            return;\n        }\n\n        // find the focused element\n        const targetId = item.getAttribute('data-element-id');\n        const element = elements.find((el) => el.id === targetId);\n\n        if (onItemSelected && element) {\n            const extendSelectionMode: ExtendSelectionMode = getExtendSelectionMode(e);\n            onItemSelected(element, extendSelectionMode);\n        }\n    };\n\n    // TODO: https://jira.corp.adobe.com/browse/CCXCD-12511\n    // Cleanup renderColumn and renderCustomColumn\n    private renderColumn(column: ListViewColumn, ref) {\n        const { activeSort, activeSortDirection, onItemSelected } = this.props;\n        const customColumn = column as IListViewCustomColumn;\n        const columnString = customColumn.predefinedColumn ?? (column as Column);\n        const sortBy = COLUMN_TO_SORTBY[columnString] || columnString;\n        const columnType = COLUMN_TO_TYPE[columnString];\n        const notSortable = sortBy === undefined || this._unsortableColumnsSet.has(columnString);\n        return (\n            <HeaderColumn\n                key={columnString}\n                forwardedRef={ref}\n                id={customColumn.id ?? `CDOListSortBy${columnString}`}\n                uxSortColumn={customColumn.uxSortColumn ?? sortBy}\n                activeSortDirection={customColumn.activeSortDirection ?? activeSortDirection}\n                label={customColumn.label ?? this._uppercaseTranslation(`header.${sortBy}`)}\n                isActiveSort={customColumn.isActiveSort ?? activeSort === sortBy}\n                isSortDisabled={customColumn.isSortDisabled ?? notSortable}\n                onColumnClick={this.onColumnClick}\n                columnType={customColumn.columnType ?? columnType}\n                isSelectionEnabled={Boolean(onItemSelected)}\n            />\n        );\n    }\n\n    private renderCustomColumn(\n        column: IListViewCustomColumn,\n        ref: React.LegacyRef<HTMLDivElement>,\n    ) {\n        const { cellContentRender, ...rest } = column;\n        return (\n            <HeaderColumn\n                key={`custom-${rest.id}`}\n                // @ts-ignore\n                forwardedRef={ref}\n                id={`custom-${rest.id}`}\n                onColumnClick={this.onColumnClick}\n                {...rest}\n            />\n        );\n    }\n\n    private renderHeader() {\n        const { focusManagementEnabled, columns } = this.props;\n        const { scrollbarWidth } = getScrollbarMeasurer();\n        const { scrollbarIsVisible } = this.state;\n        const paddingRight = scrollbarIsVisible ? scrollbarWidth : 0;\n\n        const columnContent = (index: number) => {\n            const column = columns[index];\n            const ref = this._columnRefs[index];\n            const customColumn = column as IListViewCustomColumn;\n            if (customColumn && customColumn.columnType) {\n                return this.renderCustomColumn(customColumn, ref);\n            }\n            const predefinedColumn = customColumn.predefinedColumn ?? column;\n            switch (predefinedColumn) {\n                // Standard columns\n                case Column.Title:\n                    return this.renderColumn(column, ref);\n\n                case Column.Action:\n                    return <div key=\"action\" ref={ref} className=\"cdo-column cdo-action\" />;\n\n                default:\n                    // This needs to be null to avoid React warnings about children without keys\n                    return null;\n            }\n        };\n        const content = (\n            <div\n                className=\"cdo-header\"\n                style={{\n                    paddingRight,\n                }}\n            >\n                {this.state.columnIndexes.map(columnContent)}\n            </div>\n        );\n\n        if (focusManagementEnabled) {\n            return (\n                <FocusManager\n                    orientation=\"horizontal\"\n                    itemSelector=\".cdo-focusItem, .cdo-column.cdo-sortable\"\n                >\n                    {content}\n                </FocusManager>\n            );\n        }\n        return content;\n    }\n    private isRowLoaded = (params: Index) => {\n        const { elements } = this.props;\n        return params.index < elements.length;\n    };\n\n    private loadMoreRows = (options: IndexRange) => {\n        return this.props.pagination.loadNextPage(options);\n    };\n\n    private renderInfiniteLoader() {\n        return (\n            <InfiniteLoader\n                isRowLoaded={this.isRowLoaded}\n                loadMoreRows={this.loadMoreRows}\n                rowCount={this.rowCount}\n            >\n                {({ onRowsRendered }) => this.renderListContents(onRowsRendered)}\n            </InfiniteLoader>\n        );\n    }\n\n    private renderListContents(onRowsRendered?: (params: IndexRange) => void) {\n        const {\n            elements,\n            additionalChangeProps,\n            // overscanRowCount should be at least 2 so that keyboard nav + virtual scrolling works smoothly\n            overscanRowCount = 2,\n            autoHeight = false,\n            scrollIndex = -1,\n            scrollElementRef,\n            isHeaderVisible = true,\n            openActionMenuId,\n            isFeatureFlagEnabled,\n            onScroll,\n            pagination,\n        } = this.props;\n        const { width, height } = this.state;\n        const isVisible = width > 0 && height > 0;\n        const listHeight = height - (isVisible && isHeaderVisible ? HEADER_HEIGHT : 0);\n        const isNextPageLoading = pagination?.isNextPageLoading ?? false;\n        const commonListProps = {\n            width,\n            height: listHeight,\n            rowCount: this.rowCount,\n            rowHeight: this.props.rowHeight ?? 75,\n            rowRenderer: this._rowRenderer,\n            autoHeight,\n            overscanRowCount,\n            tabIndex: -1, // This stops the entire frame form being focusable.\n            // Trigger re-render when these values change\n            // NOTE: elements must be a new array each time so that\n            // React-virtualized can do simple === check on these props to detect changes.\n            ...changeProps(elements, isNextPageLoading, ...(additionalChangeProps || [])),\n            overscanIndicesGetter: accessibilityOverscanIndicesGetter,\n            scrollToIndex: scrollIndex,\n            openActionMenuId,\n        };\n\n        const ListComponent = List;\n        return (\n            <ErrorBoundary message=\"ListView.ReactVirtualizedList failed to render\">\n                {isVisible &&\n                    this.renderFocusElement(\n                        <WindowScrollerProvider\n                            ref={this.windowScrollerRef}\n                            scrollElementRef={scrollElementRef}\n                        >\n                            {(scrollProps) => (\n                                <ListComponent\n                                    className={classnames({\n                                        'cdo-ListView-actionbar-spacing':\n                                            isFeatureFlagEnabled?.('enableCDOActionBar'),\n                                    })}\n                                    ref={this._listComponent}\n                                    {...commonListProps}\n                                    {...scrollProps}\n                                    onScroll={onScroll}\n                                    onRowsRendered={onRowsRendered}\n                                />\n                            )}\n                        </WindowScrollerProvider>,\n\n                        FOCUS_ITEM_CLASS,\n                    )}\n            </ErrorBoundary>\n        );\n    }\n\n    private renderList() {\n        const { width, height } = this.state;\n        const { isHeaderVisible = true, pagination } = this.props;\n        const isVisible = width > 0 && height > 0;\n        return (\n            <div className=\"cdo-container\">\n                {isVisible && isHeaderVisible && this.renderHeader()}\n                <div className=\"cdo-itemsContainer\" ref={this._listRef}>\n                    {pagination ? this.renderInfiniteLoader() : this.renderListContents()}\n                </div>\n            </div>\n        );\n    }\n\n    private renderFocusElement(children: React.ReactElement, focusClass: string) {\n        const { focusManagementEnabled, isFeatureFlagEnabled, selectionManager } = this.props;\n\n        if (focusManagementEnabled) {\n            return (\n                <FocusManager\n                    itemSelector={`.${focusClass}`}\n                    orientation=\"vertical\"\n                    manageTabIndex\n                    disableCyclicFocus\n                    onKeyboardFocusChange={\n                        isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                            ? selectionManager?.onKeyboardFocusChange\n                            : this.onKeyboardFocusChange\n                    }\n                >\n                    {/**\n                     * Required By <FocusManager> in combination\n                     * with <Grid>\n                     */}\n                    <div tabIndex={-1}>{children}</div>\n                </FocusManager>\n            );\n        }\n        return children;\n    }\n\n    /**\n     * Component renderer.\n     * @return {React} markup\n     */\n    render() {\n        const { className } = this.props;\n\n        return (\n            <div className={classnames('cdo-ListView', className)} ref={this.containerRef}>\n                {this.renderList()}\n            </div>\n        );\n    }\n}\n\ntype IListViewPropsExternal = IListViewProps & ICommonCollectionViewProps;\n\nexport default ListView;\nexport {\n    Column,\n    ColumnType,\n    type IListViewCustomColumn,\n    type ListViewColumn,\n    type IListViewPropsExternal as IListViewProps,\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Checkbox from '@react/react-spectrum/Checkbox';\nimport classNames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { selectUnit } from '../utils/relativeDateTimeUtils';\nimport { FOCUS_ITEM_CLASS } from '../utils/constants';\nimport stopPropagation from '../utils/stop-propagation';\nimport ActionMenu from './ActionMenu';\nimport Dimmer from './Dimmer';\nimport type { IListViewCustomColumn, ListViewColumn } from './ListView';\nimport { Column } from './ListView';\nimport Rename from './Rename';\nimport type { IViewItemProps } from './ViewItem';\nimport ViewItem from './ViewItem';\nimport { FormattedRelativeTime } from 'react-intl';\nimport ViewItemIcon from './ViewItemIcon';\nimport type Action from '../utils/action';\n\nimport '../styles/ListItem.css';\nimport { isTouchDevice } from '@csc/common';\n\nexport function renderDateColumn(date: Date, id: string) {\n    const { unit, value } = selectUnit(date);\n\n    /* eslint-disable react/no-children-prop */\n    return (\n        <div key={`date-${id}`} className=\"cdo-date cdo-column\">\n            <FormattedRelativeTime\n                value={value}\n                unit={unit}\n                children={(formattedMessage: string) => (\n                    <span id={`CDOListItem_${id}`}>{formattedMessage}</span>\n                )}\n            />\n        </div>\n    );\n    /* eslint-enable */\n}\n\n/**\n * Interfaces\n */\n\ninterface IListItemProps {\n    columns: ListViewColumn[];\n    /**\n     * Temporary, for DVA on Recents, until they can get working thumbnails\n     * TODO: remove when no longer needed\n     */\n    disableThumbnails?: boolean;\n}\n\nexport class ListItem<TProps = {}> extends ViewItem<IListItemProps & TProps> {\n    protected renderRendition() {\n        const { element } = this.props;\n\n        return (\n            <ViewItemIcon\n                element={element}\n                id=\"CDOListItem_Rendition\"\n                draggable={false}\n                theme={this.props.theme}\n            />\n        );\n    }\n\n    protected renderTitle() {\n        const { element, renderTooltip } = this.props;\n        const { isRenaming } = this.state;\n\n        return (\n            <div className=\"cdo-name\" id=\"CDOListItem_Name\">\n                <Rename\n                    element={element}\n                    name={element.title}\n                    tooltip={renderTooltip?.(element)}\n                    isRenaming={isRenaming}\n                    controller={this.renameAction}\n                />\n                {this.renderMetadata()}\n            </div>\n        );\n    }\n\n    private renderSelectboxColumn() {\n        const {\n            isSelected,\n            element,\n            shouldHideCheckbox,\n            selectionManager,\n            isFeatureFlagEnabled,\n            isEllipsisMenuOpen,\n            onItemSelected,\n        } = this.props;\n\n        const hideCheckbox = shouldHideCheckbox?.(element) ?? false;\n        const selectionEnabled = Boolean(onItemSelected);\n\n        const isInSelectionContext =\n            isSelected || selectionManager?.isInSelectionMode || selectionManager?.hasAnySelected;\n\n        const checkbox = isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n            ? selectionManager?.selectionUXConfig?.showCheckbox && (\n                  <Checkbox\n                      id=\"CDOListItem_Checkbox\"\n                      tabIndex={-1} /* the checkbox shouldn't take focus from the item */\n                      checked={isSelected}\n                      renderLabel={false} /* gets rid of React warning */\n                      onClick={this.handleCheckBoxSelection}\n                  />\n              )\n            : !hideCheckbox && (\n                  <Checkbox\n                      id=\"CDOListItem_Checkbox\"\n                      tabIndex={-1} /* the checkbox shouldn't take focus from the item */\n                      checked={isSelected}\n                      renderLabel={false} /* gets rid of React warning */\n                      onClick={this.onCheckboxSelection}\n                      // TODO: Modifier keys don't work for onClick in UXP.\n                      // When https://jira.corp.adobe.com/browse/UXP-12952 is resolved, check\n                      // that shift-clicking works in Ps to select a range of items\n                      // per https://jira.corp.adobe.com/browse/CCXCD-3457\n                  />\n              );\n        return (\n            selectionEnabled && (\n                <div\n                    key=\"selectbox\"\n                    id={`CDOListItem_Selected_${isSelected}`}\n                    className={classNames('cdo-checkbox', 'cdo-column', {\n                        ['cdo-selected']: isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                            ? isInSelectionContext || isEllipsisMenuOpen\n                            : isSelected,\n                        ['cdo-mobile-selected']: isFeatureFlagEnabled('enableUnifiedSelectionUX')\n                            ? isInSelectionContext\n                            : isSelected,\n                    })}\n                    onClick={stopPropagation}\n                >\n                    {checkbox}\n                </div>\n            )\n        );\n    }\n\n    private renderThumbnailAndTitle() {\n        const { disabled = false, element, renderBadge, disableThumbnails } = this.props;\n\n        return (\n            <div key=\"info\" className=\"cdo-info cdo-column\">\n                <div className=\"cdo-asset\">\n                    {!disableThumbnails && (\n                        <div className=\"cdo-container\">\n                            <div className=\"cdo-renditionWrapper\">\n                                <Dimmer dim={disabled}>{this.renderRendition()}</Dimmer>\n                            </div>\n                        </div>\n                    )}\n                    <div className=\"cdo-nameWrapper\">{this.renderTitle()}</div>\n                    {renderBadge?.(element)}\n                </div>\n            </div>\n        );\n    }\n\n    private renderActionColumn() {\n        const {\n            element,\n            actionMenuItems = [] as Action[],\n            hideEllipsisMenu,\n            onActionButtonClick,\n            disabled,\n            selectionManager,\n            isFeatureFlagEnabled,\n            isEllipsisMenuOpen,\n            onEllipsisClick,\n        } = this.props;\n        const { isRenaming } = this.state;\n        const { alwaysShowEllipsis, showEllipsisOnHover } =\n            selectionManager?.selectionUXConfig ?? {};\n        const showEllipses =\n            (alwaysShowEllipsis || showEllipsisOnHover) &&\n            !isRenaming &&\n            !selectionManager?.hasAnySelected;\n\n        const actionMenu = isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n            ? showEllipses && (\n                  <div\n                      className={classNames('cdo-list-ellipsis', {\n                          ['cdo-alwaysShowEllipsis']:\n                              alwaysShowEllipsis || isTouchDevice() || isEllipsisMenuOpen,\n                      })}\n                  >\n                      <ActionMenu\n                          disabled={disabled}\n                          elements={[element]}\n                          onActionButtonClick={onActionButtonClick}\n                          actionMenuItems={actionMenuItems}\n                          isFeatureFlagEnabled={isFeatureFlagEnabled}\n                          tabIndex={this.props.actionMenuTabIndex}\n                      />\n                  </div>\n              )\n            : !hideEllipsisMenu &&\n              !isFeatureFlagEnabled?.('enableContextMenu') &&\n              !isRenaming && (\n                  <ActionMenu\n                      disabled={disabled}\n                      elements={[element]}\n                      onActionButtonClick={onActionButtonClick}\n                      actionMenuItems={actionMenuItems}\n                      isFeatureFlagEnabled={isFeatureFlagEnabled}\n                      tabIndex={this.props.actionMenuTabIndex}\n                  />\n              );\n        return (\n            <div\n                key=\"action\"\n                className=\"cdo-column cdo-action\"\n                onClick={onEllipsisClick ? (e) => onEllipsisClick(e, element) : stopPropagation}\n            >\n                {actionMenu}\n            </div>\n        );\n    }\n\n    private renderCustomColumn({ id, columnType, cellContentRender }: IListViewCustomColumn) {\n        const { element } = this.props;\n        return (\n            <div key={id} className={classNames(`cdo-column cdo-${id} cdo-${columnType}`)}>\n                {cellContentRender(element)}\n            </div>\n        );\n    }\n\n    public render() {\n        const {\n            disabled,\n            element,\n            isSelected,\n            columns,\n            focusManagementEnabled,\n            tabIndex = -1,\n            ariaLabel,\n            isFeatureFlagEnabled,\n        } = this.props;\n        return (\n            <div\n                aria-label={ariaLabel}\n                className={classNames(\n                    'cdo-ViewItem',\n                    'cdo-ListItem',\n                    {\n                        ['cdo-disabled']: disabled,\n                        ['cdo-selected']: isSelected,\n                        ['cdo-isValidDropTarget']: this.isValidDropTarget,\n                    },\n                    this.additionalClassNames(),\n                    FOCUS_ITEM_CLASS,\n                )}\n                id=\"CDOListItem\"\n                onClick={\n                    isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                        ? this.handleClickSelection\n                        : this.onClick\n                }\n                onDoubleClick={\n                    isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                        ? undefined\n                        : this.onDoubleClick\n                }\n                {...(focusManagementEnabled ? { tabIndex } : {})}\n                onKeyDown={\n                    isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                        ? this.handleKeyDownSelection\n                        : this.onKeyDown\n                }\n                onContextMenu={\n                    isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                        ? this.handleContextMenuSelection\n                        : this.onContextMenu\n                }\n                onPointerUp={this.onPointerUp}\n                onDragStart={this.onDragStart}\n                onDragEnter={this.onDragEnter}\n                onDragLeave={this.onDragLeave}\n                onDrop={this.onDrop}\n                draggable={!this.isDragDisabled}\n                data-element-id={element.id}\n                data-testid={`list-${element.id}`}\n            >\n                {columns.map((column) => {\n                    const columnDefinition = column as IListViewCustomColumn;\n                    if (columnDefinition.columnType) {\n                        return this.renderCustomColumn(columnDefinition);\n                    }\n                    switch (columnDefinition.predefinedColumn ?? column) {\n                        case Column.Select:\n                            return this.renderSelectboxColumn();\n                        case Column.Title:\n                            return this.renderThumbnailAndTitle();\n                        case Column.Action:\n                            return this.renderActionColumn();\n                        default:\n                            // return null so that React doesn't complain about missing key on child\n                            return null;\n                    }\n                })}\n            </div>\n        );\n    }\n}\n\ntype IListItemPropsExternal = IListItemProps & IViewItemProps;\n\nexport default observer(ListItem);\nexport { type IListItemPropsExternal as IListItemProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\nimport classNames from 'classnames';\n\nconst DEFAULT_SIZE = {\n    width: 110,\n    height: 80,\n};\nconst EmptyFilterView = ({\n    height = DEFAULT_SIZE.height,\n    width = DEFAULT_SIZE.width,\n    className = '',\n    primaryColor = '#6e6e6e',\n}) => (\n    <svg\n        className={classNames('cdo-EmptyFilterView', className)}\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width={width}\n        height={height}\n        viewBox={`0 0 ${width} ${height}`}\n        fill={primaryColor}\n    >\n        <g>\n            <path d=\"M80.109 78.777H35.901C33.9604 78.7967 32.0912 78.0456 30.7038 76.6886C29.3164 75.3316 28.5242 73.4795 28.501 71.539V35.426C28.501 35.2601 28.5336 35.0959 28.5971 34.9426C28.6606 34.7894 28.7536 34.6502 28.8709 34.5329C28.9882 34.4156 29.1274 34.3226 29.2806 34.2591C29.4339 34.1956 29.5981 34.163 29.764 34.163C29.9298 34.163 30.0941 34.1956 30.2473 34.2591C30.4005 34.3226 30.5398 34.4156 30.6571 34.5329C30.7743 34.6502 30.8674 34.7894 30.9308 34.9426C30.9943 35.0959 31.027 35.2601 31.027 35.426V71.538C31.0504 72.8088 31.5769 74.0184 32.491 74.9016C33.405 75.7848 34.6321 76.2693 35.903 76.249H80.109C81.3798 76.2693 82.6069 75.7848 83.521 74.9016C84.4351 74.0184 84.9616 72.8088 84.985 71.538V69.974C84.985 69.639 85.118 69.3177 85.3549 69.0809C85.5918 68.844 85.913 68.711 86.248 68.711C86.5829 68.711 86.9042 68.844 87.141 69.0809C87.3779 69.3177 87.511 69.639 87.511 69.974V71.538C87.4878 73.4785 86.6955 75.3306 85.3081 76.6876C83.9207 78.0446 82.0516 78.7957 80.111 78.776L80.109 78.777Z\" />\n            <path d=\"M86.2481 44.979C85.9131 44.979 85.5919 44.8459 85.355 44.6091C85.1181 44.3722 84.9851 44.051 84.9851 43.716V24.758C84.9852 24.139 84.8603 23.5263 84.6181 22.9567C84.3758 22.3871 84.021 21.8723 83.5751 21.443L73.1531 11.265C72.2222 10.3678 70.98 9.86599 69.6871 9.86499H47.1041C46.7691 9.86499 46.4478 9.73192 46.211 9.49507C45.9741 9.25821 45.8411 8.93696 45.8411 8.60199C45.8411 8.26702 45.9741 7.94577 46.211 7.70891C46.4478 7.47206 46.7691 7.33899 47.1041 7.33899H69.6901C71.6422 7.3418 73.5173 8.10136 74.9211 9.45799L85.3391 19.636C86.027 20.2998 86.574 21.0955 86.9474 21.9756C87.3208 22.8557 87.5128 23.802 87.5121 24.758V43.715C87.5123 44.0494 87.3799 44.3703 87.1439 44.6073C86.9079 44.8443 86.5875 44.9779 86.2531 44.979H86.2481Z\" />\n            <path d=\"M97.384 65.406C97.0098 65.4065 96.6426 65.3048 96.322 65.112L77.66 53.889C77.3236 53.6866 77.0521 53.3922 76.8774 53.0406C76.7028 52.6889 76.6324 52.2947 76.6744 51.9044C76.7165 51.514 76.8692 51.1438 77.1147 50.8374C77.3602 50.531 77.6882 50.3012 78.06 50.175L108.331 39.975C108.566 39.8956 108.819 39.8871 109.059 39.9506C109.298 40.014 109.514 40.1466 109.679 40.3318C109.844 40.517 109.95 40.7467 109.986 40.9921C110.021 41.2376 109.983 41.4879 109.877 41.712L99.243 64.23C99.0768 64.5831 98.8136 64.8816 98.484 65.0906C98.1544 65.2995 97.7722 65.4103 97.382 65.41L97.384 65.406ZM79.828 52.247L97.177 62.677L106.323 43.314L79.828 52.247Z\" />\n            <path d=\"M86.491 66.015C86.2579 66.0141 86.0269 65.9715 85.809 65.889C85.4387 65.7531 85.1196 65.506 84.8953 65.1816C84.671 64.8572 84.5525 64.4714 84.556 64.077V57.32C84.5561 57.1176 84.6049 56.9182 84.6981 56.7387C84.7914 56.5591 84.9265 56.4045 85.092 56.288L108.006 40.139C108.28 39.9461 108.619 39.8698 108.949 39.927C109.279 39.9842 109.573 40.1702 109.766 40.444C109.959 40.7178 110.035 41.0571 109.978 41.3872C109.921 41.7172 109.735 42.0111 109.461 42.204L87.081 57.977V62.477L87.788 61.651C87.8958 61.5249 88.0274 61.4213 88.1752 61.3461C88.3231 61.2709 88.4843 61.2256 88.6497 61.2127C88.8151 61.1997 88.9814 61.2195 89.1391 61.2709C89.2968 61.3223 89.4429 61.4042 89.569 61.512C89.6951 61.6198 89.7987 61.7514 89.8739 61.8993C89.9491 62.0471 89.9944 62.2083 90.0073 62.3737C90.0202 62.5391 90.0005 62.7054 89.9491 62.8631C89.8977 63.0209 89.8158 63.1669 89.708 63.293L87.949 65.353C87.7687 65.5635 87.5451 65.7326 87.2935 65.8487C87.0418 65.9649 86.7681 66.0253 86.491 66.026V66.015Z\" />\n            <path d=\"M11.7231 17.602H11.6661C9.90562 17.5938 8.2203 16.8877 6.97982 15.6385C5.73933 14.3893 5.04499 12.6991 5.04909 10.9386C5.05319 9.17812 5.75542 7.49116 7.00171 6.24777C8.248 5.00438 9.9366 4.30609 11.6971 4.30609C13.4575 4.30609 15.1461 5.00438 16.3924 6.24777C17.6387 7.49116 18.341 9.17812 18.3451 10.9386C18.3492 12.6991 17.6548 14.3893 16.4143 15.6385C15.1738 16.8877 13.4885 17.5938 11.7281 17.602H11.7231ZM11.7231 5.84802C11.0762 5.84802 10.4356 5.97543 9.83797 6.22299C9.24032 6.47054 8.69728 6.83339 8.23986 7.29081C7.78244 7.74823 7.4196 8.29127 7.17204 8.88892C6.92449 9.48657 6.79707 10.1271 6.79707 10.774C6.79707 11.4209 6.92449 12.0615 7.17204 12.6591C7.4196 13.2568 7.78244 13.7998 8.23986 14.2572C8.69728 14.7146 9.24032 15.0775 9.83797 15.3251C10.4356 15.5726 11.0762 15.7 11.7231 15.7H11.7581C13.0528 15.6776 14.2867 15.1463 15.1927 14.2211C16.0988 13.2959 16.6042 12.0512 16.5996 10.7563C16.595 9.46132 16.0807 8.22025 15.1682 7.30152C14.2556 6.3828 13.018 5.86029 11.7231 5.84702V5.84802Z\" />\n            <path d=\"M7.64909 15.941C7.59782 15.9409 7.54664 15.9366 7.49609 15.928C7.24828 15.8877 7.0266 15.7507 6.87977 15.5471C6.73294 15.3434 6.67299 15.0898 6.71309 14.842C6.84087 14.1352 7.1851 13.4855 7.69816 12.9828C8.21123 12.4802 8.8678 12.1493 9.57709 12.036V11.98C9.13492 11.3339 8.89317 10.5718 8.88209 9.78899C8.83895 9.38875 8.88047 8.98392 9.00394 8.60077C9.12741 8.21762 9.33007 7.86471 9.59878 7.56497C9.86748 7.26522 10.1962 7.02533 10.5636 6.86087C10.9311 6.69641 11.329 6.61106 11.7315 6.61036C12.1341 6.60965 12.5323 6.69361 12.9003 6.85678C13.2683 7.01995 13.5979 7.25869 13.8676 7.55749C14.1374 7.85629 14.3413 8.20849 14.4661 8.5912C14.5909 8.97392 14.6338 9.37861 14.5921 9.77899C14.573 10.572 14.3205 11.3418 13.8661 11.992V12.021C14.5866 12.1171 15.2562 12.4455 15.7734 12.9563C16.2906 13.4672 16.6271 14.1327 16.7321 14.852C16.7534 14.9766 16.7495 15.1043 16.7207 15.2274C16.6919 15.3505 16.6387 15.4666 16.5643 15.5689C16.4899 15.6711 16.3957 15.7574 16.2874 15.8226C16.1791 15.8879 16.0588 15.9308 15.9337 15.9489C15.8085 15.9669 15.681 15.9597 15.5587 15.9276C15.4364 15.8956 15.3217 15.8394 15.2214 15.7623C15.1212 15.6853 15.0374 15.5889 14.975 15.4789C14.9126 15.3689 14.8728 15.2476 14.8581 15.122C14.7811 14.594 14.4121 13.94 13.0831 13.822C12.8696 13.797 12.6681 13.7099 12.5036 13.5717C12.339 13.4334 12.2185 13.25 12.1571 13.044C12.1571 13.03 11.6711 11.633 12.2211 11.023C12.5169 10.6631 12.684 10.2147 12.6961 9.74899C12.6961 9.19599 12.5271 8.50399 11.7251 8.50399C11.4901 8.50399 10.7751 8.50399 10.7751 9.77699C10.7831 10.2452 10.9491 10.697 11.2461 11.059C11.7661 11.639 11.2851 13.034 11.2801 13.048C11.2223 13.2479 11.1082 13.427 10.9515 13.5638C10.7947 13.7007 10.602 13.7896 10.3961 13.82C8.96909 13.965 8.64409 14.704 8.57509 15.139C8.54012 15.3615 8.42699 15.5643 8.25599 15.7109C8.085 15.8575 7.86734 15.9384 7.64209 15.939L7.64909 15.941Z\" />\n            <path d=\"M30.375 32.449C30.0444 32.449 29.7271 32.3194 29.491 32.088L19.147 21.929H5.913C4.34526 21.9274 2.84219 21.3039 1.73363 20.1954C0.625074 19.0868 0.00158839 17.5837 0 16.016V5.916C0.000794054 4.34774 0.623927 2.8439 1.73257 1.73469C2.84122 0.625487 4.34474 0.00158952 5.913 0H37.855C39.4228 0.00158792 40.926 0.625041 42.0347 1.73357C43.1434 2.8421 43.7671 4.34517 43.769 5.913V16.013C43.7679 17.5813 43.1446 19.0852 42.0358 20.1944C40.927 21.3035 39.4233 21.9274 37.855 21.929H31.638V31.181C31.638 31.516 31.5049 31.8372 31.2681 32.0741C31.0312 32.3109 30.71 32.444 30.375 32.444V32.449ZM5.913 2.529C5.0153 2.53006 4.15467 2.88714 3.51991 3.52191C2.88514 4.15667 2.52806 5.0173 2.527 5.915V16.015C2.527 16.9134 2.88361 17.775 3.51849 18.4107C4.15338 19.0463 5.01461 19.4039 5.913 19.405H19.664C19.9946 19.405 20.3119 19.5346 20.548 19.766L29.112 28.173V20.671C29.112 20.336 29.2451 20.0148 29.4819 19.7779C29.7188 19.5411 30.04 19.408 30.375 19.408H37.855C38.7533 19.4072 39.6146 19.05 40.2498 18.4148C40.885 17.7796 41.2422 16.9183 41.243 16.02V5.92C41.2433 5.02109 40.8865 4.15888 40.2512 3.52297C39.6158 2.88706 38.7539 2.52953 37.855 2.529H5.913Z\" />\n            <path d=\"M36.44 10.216H22.571C22.3197 10.216 22.0787 10.1162 21.9011 9.93847C21.7234 9.76078 21.6235 9.51978 21.6235 9.26848C21.6235 9.01719 21.7234 8.77619 21.9011 8.5985C22.0787 8.42081 22.3197 8.32098 22.571 8.32098H36.44C36.6913 8.32098 36.9323 8.42081 37.11 8.5985C37.2877 8.77619 37.3875 9.01719 37.3875 9.26848C37.3875 9.51978 37.2877 9.76078 37.11 9.93847C36.9323 10.1162 36.6913 10.216 36.44 10.216Z\" />\n            <path d=\"M33.1759 13.931H22.5659C22.3146 13.931 22.0736 13.8312 21.8959 13.6535C21.7182 13.4758 21.6184 13.2348 21.6184 12.9835C21.6184 12.7322 21.7182 12.4912 21.8959 12.3135C22.0736 12.1358 22.3146 12.036 22.5659 12.036H33.1759C33.4272 12.036 33.6682 12.1358 33.8459 12.3135C34.0236 12.4912 34.1234 12.7322 34.1234 12.9835C34.1234 13.2348 34.0236 13.4758 33.8459 13.6535C33.6682 13.8312 33.4272 13.931 33.1759 13.931Z\" />\n            <path d=\"M50.255 59.079C48.5875 59.0806 46.9569 58.5873 45.5699 57.6616C44.1829 56.7359 43.1017 55.4194 42.4634 53.8789C41.8251 52.3383 41.6583 50.643 41.9842 49.0075C42.3101 47.3721 43.114 45.8702 44.294 44.692L50.104 38.882C51.2162 37.7677 52.6185 36.9875 54.1516 36.63C55.6848 36.2724 57.2875 36.3518 58.7779 36.8591C60.2682 37.3665 61.5865 38.2814 62.5831 39.5002C63.5797 40.7189 64.2147 42.1926 64.416 43.754C64.4372 43.9185 64.4258 44.0856 64.3825 44.2458C64.3391 44.4059 64.2646 44.5559 64.1632 44.6873C64.0619 44.8186 63.9357 44.9287 63.7917 45.0113C63.6478 45.0939 63.4891 45.1473 63.3245 45.1685C63.16 45.1897 62.9929 45.1783 62.8327 45.1349C62.6726 45.0915 62.5226 45.017 62.3912 44.9157C62.2599 44.8143 62.1498 44.6881 62.0672 44.5442C61.9847 44.4003 61.9312 44.2415 61.91 44.077C61.7674 42.9848 61.3218 41.9544 60.6238 41.1023C59.9259 40.2502 59.0033 39.6106 57.9606 39.2557C56.9178 38.9009 55.7966 38.845 54.7238 39.0944C53.6509 39.3438 52.6693 39.8885 51.89 40.667L46.08 46.477C44.9729 47.5845 44.3511 49.0865 44.3513 50.6525C44.3516 52.2186 44.974 53.7203 46.0815 54.8275C47.1891 55.9346 48.6911 56.5565 50.2571 56.5562C51.8231 56.5559 53.3249 55.9335 54.432 54.826L58.032 51.226C58.1488 51.1062 58.2881 51.0108 58.442 50.9453C58.5958 50.8797 58.7612 50.8454 58.9284 50.8444C59.0957 50.8433 59.2615 50.8754 59.4162 50.9389C59.5709 51.0024 59.7115 51.096 59.8298 51.2143C59.948 51.3325 60.0416 51.4731 60.1051 51.6278C60.1686 51.7825 60.2007 51.9483 60.1997 52.1156C60.1986 52.2828 60.1643 52.4482 60.0988 52.602C60.0333 52.7559 59.9378 52.8953 59.818 53.012L56.218 56.612C55.4363 57.3955 54.5074 58.0168 53.4847 58.4402C52.4621 58.8635 51.3659 59.0806 50.259 59.079H50.255Z\" />\n            <path d=\"M59.493 50.237C57.5662 50.2418 55.6963 49.5841 54.1968 48.3741C52.6973 47.1641 51.6594 45.4753 51.257 43.591C51.1982 43.268 51.2674 42.9348 51.4501 42.662C51.6327 42.3892 51.9144 42.1982 52.2355 42.1296C52.5565 42.0609 52.8917 42.12 53.1699 42.2942C53.4481 42.4684 53.6476 42.7442 53.726 43.063C53.9515 44.0981 54.4512 45.0535 55.1728 45.829C55.8945 46.6046 56.8114 47.1718 57.8276 47.4712C58.8438 47.7706 59.9218 47.7912 60.9486 47.5307C61.9755 47.2703 62.9134 46.7385 63.664 45.991L69.474 40.181C70.5812 39.074 71.2032 37.5725 71.2033 36.0068C71.2034 34.4412 70.5815 32.9396 69.4745 31.8325C68.3675 30.7253 66.866 30.1033 65.3004 30.1032C63.7347 30.1031 62.2332 30.725 61.126 31.832L58.073 34.883C57.9563 35.0028 57.817 35.0982 57.6631 35.1637C57.5092 35.2292 57.3439 35.2635 57.1766 35.2646C57.0094 35.2657 56.8436 35.2336 56.6889 35.1701C56.5341 35.1066 56.3936 35.013 56.2753 34.8947C56.157 34.7764 56.0635 34.6359 56 34.4811C55.9365 34.3264 55.9043 34.1606 55.9054 33.9934C55.9065 33.8262 55.9408 33.6608 56.0063 33.5069C56.0718 33.353 56.1672 33.2137 56.287 33.097L59.34 30.044C60.1191 29.2458 61.0489 28.6103 62.0754 28.174C63.1019 27.7378 64.2048 27.5096 65.3201 27.5027C66.4355 27.4958 67.5411 27.7103 68.573 28.1338C69.6048 28.5572 70.5424 29.1812 71.3313 29.9697C72.1203 30.7581 72.7449 31.6952 73.1691 32.7268C73.5932 33.7583 73.8084 34.8638 73.8023 35.9792C73.7961 37.0945 73.5687 38.1975 73.1331 39.2244C72.6976 40.2512 72.0626 41.1813 71.265 41.961L65.454 47.771C64.6729 48.5559 63.7438 49.178 62.7206 49.6013C61.6974 50.0246 60.6003 50.2406 59.493 50.237Z\" />\n        </g>\n    </svg>\n);\n\nexport default EmptyFilterView;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\n// For temporary debugging, use the logpoint trick in Chrome to get a reference to Logger class,\n// then use Logger.setLogLevel to override. If you need to catch earlier log messages, modify\n// LOG_LEVEL map: either change the entry for 'default' to LogLevel.DEBUG, or add entries for\n// the classes you want to monitor (e.g., ['FolderCollection', LogLevel.DEBUG], ['Collection', LogLevel.DEBUG]).\nconst LOG_LEVEL: Map<string, AssetBrowser.CDOLogLevel> = new Map([\n    ['default', AssetBrowser.CDOLogLevel.INFO],\n]);\nconst LAST_ID = new Map();\nconst LOG_METHOD = {\n    [AssetBrowser.CDOLogLevel.DEBUG]: 'debug',\n    [AssetBrowser.CDOLogLevel.INFO]: 'log',\n    [AssetBrowser.CDOLogLevel.WARN]: 'warn',\n    [AssetBrowser.CDOLogLevel.ERROR]: 'error',\n};\n\n// For testing, swap out default LOG_LEVEL for a different instance so that\n// logging can be disabled by default for tests, but the prod instance can\n// be inspected by Logger.test.ts\nlet LOG_LEVEL_ENV: Map<string, AssetBrowser.CDOLogLevel> = LOG_LEVEL;\nif (process.env.NODE_ENV === 'test') {\n    LOG_LEVEL_ENV = new Map([['default', AssetBrowser.CDOLogLevel.DISABLED]]);\n}\n\n/**\n * Logging class to respect loglevels for debugging\n *\n * @example\n * class Collection {\n *    private logger = new Logger(this.constructor.name);  // subclasses will use their own name for logging\n *    public doIt() {\n *      this.logger.log('doing it');\n *    }\n * }\n *\n * class FolderCollection extends Collection { }\n * c = new Collection();\n * f = new FolderCollection();\n * c.doIt(); // console: [Collection-1] doing it\n * f.doIt(); // console: [FolderCollection-1] doing it\n */\nclass Logger {\n    className: string;\n    instanceId: number;\n\n    static setLogLevel(logLevel: AssetBrowser.CDOLogLevel, className: string = 'default'): void {\n        LOG_LEVEL_ENV.set(className, logLevel);\n    }\n\n    constructor(className: string) {\n        this.className = className;\n        this.instanceId = (LAST_ID.get(className) || 0) + 1;\n        LAST_ID.set(className, this.instanceId);\n    }\n\n    private out(logLevel: AssetBrowser.CDOLogLevel, msg: string, ...args: any[]): void {\n        const currentLevel = LOG_LEVEL_ENV.has(this.className)\n            ? LOG_LEVEL_ENV.get(this.className)\n            : LOG_LEVEL_ENV.get('default');\n        if (currentLevel <= logLevel) {\n            // @ts-ignore -- `LOG_METHOD[logLevel]` is valid method of `console`\n\n            console[LOG_METHOD[logLevel]](`[${this.className}-${this.instanceId}] ${msg}`, ...args);\n        }\n    }\n\n    debug(msg: string, ...args: any[]): void {\n        this.out(AssetBrowser.CDOLogLevel.DEBUG, msg, ...args);\n    }\n\n    log(msg: string, ...args: any[]): void {\n        this.out(AssetBrowser.CDOLogLevel.INFO, msg, ...args);\n    }\n\n    warn(msg: string, ...args: any[]): void {\n        this.out(AssetBrowser.CDOLogLevel.WARN, msg, ...args);\n    }\n\n    error(msg: string, ...args: any[]): void {\n        this.out(AssetBrowser.CDOLogLevel.ERROR, msg, ...args);\n    }\n}\n\nlet internalForTests;\nif (process.env.NODE_ENV === 'test') {\n    internalForTests = {\n        LOG_LEVEL,\n        LOG_LEVEL_ENV,\n    };\n}\n\nconst LogLevel = AssetBrowser.CDOLogLevel;\nexport { Logger, LogLevel, internalForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2021 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { OptionalActionArgs } from '../action';\nimport Action from '../action';\nimport type ICollectionItem from '../../types/ICollectionItem';\nimport { isWindows } from '../platform';\n\ninterface ISelectActionArgs extends OptionalActionArgs<ICollectionItem> {}\n\nclass SelectAction extends Action<ICollectionItem> {\n    static readonly actionValue = 'select';\n\n    constructor(args: ISelectActionArgs = {}) {\n        super({\n            value: SelectAction.actionValue,\n            label: 'button.select',\n            execute: async (operationStore: any, ele: ICollectionItem[]) => {\n                this.notifySubscribers('executing', ele[0], this);\n            },\n            resetSelection: false,\n            isVisible: isWindows, // only visible on touch (Windows) devices\n            ...args,\n        });\n    }\n}\n\nexport type { ISelectActionArgs };\nexport default SelectAction;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport type ICollectionItem from '../../types/ICollectionItem';\nimport type { ExtendSelectionMode, ISelectionStore } from '../../stores/SelectionStore';\nimport { hasAny } from '@csc/common';\nimport stopPropagation from '../stop-propagation';\nimport { isWindows } from '../platform';\nimport getExtendSelectionMode from '../get-extend-selection-mode';\nimport type React from 'react';\nimport type { ISelectionManager, ISelectionUXConfig } from '../../types/ISelectionManager';\nimport { action, observable } from 'mobx';\n\nclass SelectionManager implements ISelectionManager {\n    @observable selectionStore: ISelectionStore;\n    @observable elements: ICollectionItem[] = [];\n    @observable isInSelectionMode = false;\n\n    selectionUXConfig: ISelectionUXConfig = {\n        showEllipsisOnHover: true,\n        clickSelectionMode: AssetBrowser.CDO.ClickSelectType.None,\n        alwaysShowEllipsis: false,\n        showCheckbox: true,\n    };\n\n    @action\n    setElements(elements: ICollectionItem[]) {\n        this.elements = elements;\n    }\n\n    @action\n    setSelectionStore(selectionStore: ISelectionStore) {\n        this.selectionStore = selectionStore;\n    }\n    get hasAnySelected() {\n        return hasAny(this.selectionStore.selectedElements);\n    }\n\n    @action\n    setIsInSelectionMode(flag: boolean) {\n        this.isInSelectionMode = flag;\n    }\n\n    updateSelection = (\n        element: ICollectionItem,\n        e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ): void => {\n        const extendSelectionMode: ExtendSelectionMode = getExtendSelectionMode(e);\n        this.onItemSelected(element, extendSelectionMode);\n    };\n\n    // keeping selectionStore same as earlier, hence not changing extendSelectionMode\n    // adds or removes the element from selection\n    protected onItemSelected = (\n        element: ICollectionItem,\n        extendSelectionMode: ExtendSelectionMode,\n    ): void => {\n        this.selectionStore.extendSelection(this.elements, element, extendSelectionMode);\n    };\n\n    resetSelection(): void {\n        this.selectionStore.clear();\n        this.setIsInSelectionMode(false);\n    }\n\n    onKeyDownSelection = (e: React.KeyboardEvent) => {\n        switch (e.key) {\n            case 'Escape':\n                if (this.hasAnySelected) {\n                    this.resetSelection();\n                    stopPropagation(e, true);\n                }\n                break;\n            default:\n                break;\n        }\n    };\n\n    onBackgroundClick = (e: React.MouseEvent | React.TouchEvent) => {\n        const rageClickThreshold = 5;\n        const isRageClickCluster = e.detail % rageClickThreshold === 0;\n        if (e.detail >= rageClickThreshold && isRageClickCluster) {\n            throw new Error('Rage Clicking');\n        }\n\n        if (this.hasAnySelected) {\n            // Ignore clicks on the items or their children\n            // Fixes CCXCD-5071\n            // UXP does not currently support matches\n            // https://jira.corp.adobe.com/browse/UXP-11933\n            const element = e.target as HTMLElement;\n            if (\n                element.matches(\n                    '.spectrum-Underlay, .cdo-ViewItem, .cdo-ViewItem *, .cdo-buttons, .cdo-buttons *',\n                )\n            ) {\n                return;\n            }\n            // Ignore clicks on the action buttons or their children\n            if (element.parentElement?.matches('.cdo-buttons, .cdo-buttons *')) {\n                return;\n            }\n\n            // With modifier key, selection is being extended\n            if (e.shiftKey || (isWindows() ? e.ctrlKey : e.metaKey)) {\n                return;\n            }\n            this.resetSelection();\n        }\n    };\n\n    onKeyboardFocusChange: (item: HTMLElement, e: React.KeyboardEvent) => void;\n\n    onViewItemClickSelection = (\n        item: ICollectionItem,\n        e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ) => {\n        this.updateSelection(item, e);\n    };\n\n    onViewItemKeyDownSelection = (item: ICollectionItem, e: React.KeyboardEvent) => {\n        this.updateSelection(item, e);\n    };\n\n    onViewItemContextMenuSelection: (item: ICollectionItem, e: React.MouseEvent) => void;\n}\n\nexport default SelectionManager;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport SelectionManager from './SelectionManager';\nimport SelectionStore from '../../stores/SelectionStore';\nimport stopPropagation from '../stop-propagation';\nimport type ICollectionItem from '../../types/ICollectionItem';\n\nexport default class MultiSelectionManager extends SelectionManager {\n    constructor(config: Partial<MultiSelectionManager>) {\n        super();\n        Object.assign(this, config);\n        if (!config.selectionStore) {\n            this.selectionStore = new SelectionStore();\n        }\n    }\n\n    onKeyDownSelection = (e: React.KeyboardEvent) => {\n        switch (e.key) {\n            case 'a':\n                if (e.ctrlKey || e.metaKey) {\n                    this.selectAll(e);\n                }\n                break;\n            case 'Escape':\n                if (this.hasAnySelected) {\n                    this.resetSelection();\n                    stopPropagation(e, true);\n                }\n                break;\n            default:\n                break;\n        }\n    };\n\n    selectAll = (e: React.KeyboardEvent) => {\n        e.preventDefault();\n        this.selectionStore.addSelections(this.elements);\n    };\n\n    onViewItemCheckBoxSelection = (\n        item: ICollectionItem,\n        e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ) => {\n        this.updateSelection(item, e);\n    };\n\n    onViewItemLongPressSelection = (item: ICollectionItem, e: React.TouchEvent) => {\n        this.updateSelection(item, e);\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type ICollectionItem from '../../types/ICollectionItem';\nimport SelectionStore, { ExtendSelectionMode } from '../../stores/SelectionStore';\nimport SelectionManager from './SelectionManager';\n\nexport default class SingleSelectionManager extends SelectionManager {\n    constructor(config: Partial<SingleSelectionManager>) {\n        super();\n        Object.assign(this, config);\n        if (!config.selectionStore) {\n            this.selectionStore = new SelectionStore();\n        }\n    }\n    updateSelection = (\n        element: ICollectionItem,\n        e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ): void => {\n        this.onItemSelected(element, ExtendSelectionMode.Single);\n    };\n\n    onViewItemCheckBoxSelection = (\n        item: ICollectionItem,\n        e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ) => {\n        this.updateSelection(item, e);\n    };\n\n    onViewItemClickSelection = (\n        item: ICollectionItem,\n        e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n        onItemClickedHandler?: (\n            item: ICollectionItem,\n            e: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n        ) => void,\n    ) => {\n        this.updateSelection(item, e);\n        onItemClickedHandler?.(item, e);\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { action, observable } from 'mobx';\n\nimport { ProcessingState } from '../index';\nimport { Logger } from '../utils/Logger';\nimport type { OperationState } from '../utils/constants';\n\nclass OperationStore {\n    @observable assetOpState: OperationState = ProcessingState.Idle;\n\n    protected logger: Logger = new Logger(this.constructor.name);\n\n    @action setAssetOpState(newState: OperationState) {\n        this.assetOpState = newState;\n    }\n}\n\n// aliasing for clients who still use the old TS types when we had MST stores\ntype OperationStoreType = OperationStore;\nexport { OperationStore, type OperationStoreType };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { action, observable } from 'mobx';\n\nclass ViewStateStore {\n    @observable showSelectionBar: boolean = false;\n    @observable scrollIndex: number;\n\n    @action setScrollIndex(newScrollIndex: number) {\n        this.scrollIndex = newScrollIndex;\n    }\n    @action setSelectionBarDisplayState(newState: boolean) {\n        this.showSelectionBar = newState;\n    }\n\n    get isScrolling(): boolean {\n        return this.scrollIndex !== undefined;\n    }\n}\n\nexport default ViewStateStore;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport { observer } from 'mobx-react';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { injectIntl } from 'react-intl';\nimport ActionMenu from './ActionMenu';\nimport type { IItemsActionClick } from './CDOView';\nimport '../styles/ContextMenu.css';\n\n/**\n * Interfaces\n */\ninterface ContextMenuProps {\n    onActionButtonClick: IItemsActionClick;\n    isFeatureFlagEnabled: (featureFlag: string) => boolean;\n    isScrolling?: boolean;\n}\n\n@observer\nclass ContextMenu extends React.Component<ContextMenuProps & WrappedComponentProps> {\n    state = {\n        posX: 0,\n        posY: 0,\n        elements: undefined,\n        actionMenuItems: [],\n        showContextMenu: false,\n    };\n\n    private actionMenuWrapperRef: React.RefObject<HTMLDivElement> = React.createRef();\n\n    /**\n     * Component renderer.\n     * @return {ReactElement} markup\n     */\n    render() {\n        const { elements, actionMenuItems, posX, posY, showContextMenu } = this.state;\n        const { onActionButtonClick, isFeatureFlagEnabled } = this.props;\n        return (\n            showContextMenu && (\n                <div\n                    ref={this.actionMenuWrapperRef}\n                    className=\"cdo-ContextMenu\"\n                    style={{\n                        top: posY,\n                        left: posX,\n                    }}\n                >\n                    <ActionMenu\n                        disabled={false}\n                        elements={elements}\n                        onActionButtonClick={onActionButtonClick}\n                        actionMenuItems={actionMenuItems}\n                        contextMenuCoords={{ x: posX, y: posY }}\n                        isContextMenu\n                        isFeatureFlagEnabled={isFeatureFlagEnabled}\n                        open={showContextMenu}\n                    />\n                </div>\n            )\n        );\n    }\n\n    componentDidMount(): void {\n        document.addEventListener('CDOContextMenu', this.triggerMenu);\n    }\n\n    componentWillUnmount(): void {\n        document.removeEventListener('CDOContextMenu', this.triggerMenu);\n    }\n\n    componentDidUpdate(prevProps) {\n        if (this.props.isScrolling && prevProps.isScrolling !== this.props.isScrolling) {\n            // hide context menu when scrolling detected\n            this.setState({ showContextMenu: false });\n        }\n    }\n\n    triggerMenu = (event) => {\n        // offset the context menu by action button height so that it seems closer to mouse pointer\n        // Dividing button height by 2 so that when menu is flipped it still renders the same distance away from pointer\n        const yOffset = this.actionMenuWrapperRef.current\n            ? this.actionMenuWrapperRef.current?.offsetHeight / 2\n            : 0;\n\n        this.setState({\n            posX: event.detail.posX,\n            posY: event.detail.posY - yOffset,\n            elements: event.detail.elements,\n            actionMenuItems: event.detail.actionMenuItems,\n            showContextMenu: true,\n        });\n        const triggerButton = this.actionMenuWrapperRef.current?.getElementsByClassName(\n            'cdo-ActionMenu',\n        )[0] as HTMLButtonElement;\n        triggerButton?.click();\n    };\n}\n\nexport default injectIntl(ContextMenu);\nexport { ContextMenu as ContextMenuForTests };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport classNames from 'classnames';\nimport { debounce } from 'lodash-es';\nimport { observable, reaction, when } from 'mobx';\nimport { disposeOnUnmount, observer } from 'mobx-react';\nimport type { RefObject } from 'react';\nimport React, { Children, Component } from 'react';\nimport { v1 as uuidv1 } from 'uuid';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport type { WrappedComponentProps } from 'react-intl';\nimport { injectIntl } from 'react-intl';\n\nimport type ICollectionItem from '../types/ICollectionItem';\nimport type { OperationState, UXSortByForACP, UXSortDir } from '../utils/constants';\nimport { MINIMUM_ACCEPTED_TIMEOUT, ProcessingState, UXSortBy, ViewMode } from '../utils/constants';\nimport type { IToastConfig } from '../types/IToastConfig';\nimport type { IToastCoords } from '../types/IToastCoords';\nimport DragState from '../stores/DragState';\nimport type { ISelectionStore } from '../stores/SelectionStore';\nimport SelectionStore, { ExtendSelectionMode } from '../stores/SelectionStore';\nimport type { Themes } from '@csc/common';\nimport { hasAny, skipPropagation, ChunkLoadErrorEvent } from '@csc/common';\nimport type { ICollectionViewMetrics } from '../types/CollectionViewMetrics';\nimport { EventType, MenuType, Workflow } from '../types/CollectionViewMetrics';\nimport type { ShouldRenderItemAsDisabled } from '../types/ICommonCollectionViewProps';\nimport type ICommonCollectionViewProps from '../types/ICommonCollectionViewProps';\nimport type Action from '../utils/action';\nimport { removeUndefinedFields } from '../utils/objects';\nimport type { AnyDragEvent } from '../utils/drag-utils';\nimport { DragSource, isFirstDragEnter, isLastDragLeave } from '../utils/drag-utils';\nimport { ActionAnalyticsValue } from '../utils/metrics';\nimport { isWindows } from '../utils/platform';\nimport stopPropagation from '../utils/stop-propagation';\nimport Busy from './Busy';\nimport type { IDragCardProps } from './DragCard';\nimport DragCard from './DragCard';\nimport type { IEmptyProps } from './EmptyView';\nimport EmptyView from './EmptyView';\nimport type { IGridItemProps } from './GridItem';\nimport GridItem from './GridItem';\nimport GridView from './GridView';\nimport type { IListItemProps } from './ListItem';\nimport ListItem from './ListItem';\nimport type { ListViewColumn } from './ListView';\nimport ListView, { Column } from './ListView';\nimport EmptyFilterView from './svgs/EmptyFilterView';\nimport type { IViewItemProps } from './ViewItem';\nimport type ViewItem from './ViewItem';\nimport { Logger } from '../utils/Logger';\nimport SelectAction from '../utils/actions/SelectAction';\nimport type { IFilter } from '../types/IFilter';\nimport '../styles/CDOView.css';\nimport type { ISelectionManager } from '../types/ISelectionManager';\nimport MultiSelectionManager from '../utils/selectionManagers/MultiSelectionManager';\nimport SingleSelectionManager from '../utils/selectionManagers/SingleSelectionManager';\nimport { CVContextProvider } from '../contexts/CollectionViewContext';\nimport { OperationStore } from '../stores/OperationStore';\nimport ViewStateStore from '../stores/ViewStateStore';\nimport ContextMenu from './ContextMenu';\nimport type ISelectionBehavior from '../types/ISelectionBehavior';\nimport type { Scale } from '@ccx-public/component-types';\n\nconst CDOActionBar = React.lazy(() =>\n    import('./CDOActionBar').catch((error) => {\n        console.error('[collection-view] Failed to load CDOActionBar component', error);\n        document.dispatchEvent(new ChunkLoadErrorEvent());\n        // Re-throw to trigger React's error boundary\n        throw error;\n    }),\n);\n\n/**\n * These props are expected to be passed directly into the component\n */\ntype ICDOViewProps = {\n    selectionBehavior?: ISelectionBehavior;\n    metrics?: ICollectionViewMetrics;\n    theme?: Themes;\n    scale?: Scale;\n    isFeatureFlagEnabled?: (flag: string) => boolean;\n    ingestSubcategory?: string;\n    elements?: ICollectionItem[];\n    pagination?: ICommonCollectionViewProps['pagination'];\n\n    /**\n     * Can pass in ListView or GridView with custom ViewItem renderers.\n     * Can also pass in any other children and they will be rendered as-is\n     */\n    children?: React.ReactNode;\n    /**\n     * Prevents selection of the ViewItems if true.\n     */\n    selectionDisabled?: boolean;\n    className?: string;\n    /**\n     * The ViewMode to render the elements in. Either Grid or List mode.\n     */\n    view?: ViewMode;\n    setViewMode?: (mode: ViewMode) => void;\n    /**\n     * @description List of actions rendered in right-click context menu or ellipsis menu for one or more assets.\n     *\n     * To display a divider between groups of actions, add a `groupName` prop to each action.\n     * Divider will be shown when there is a change in group name between consecutive actions.\n     * `actionMenuItems` must be ordered by `groupName`\n     */\n    actionMenuItems?: Action[];\n    isLoading?: () => boolean;\n    onBeforeItemClicked?: (\n        element: ICollectionItem,\n        selectionManager?: ISelectionManager,\n    ) => boolean;\n    shouldRenderItemAsDisabled?: ShouldRenderItemAsDisabled;\n    /**\n     * If provided, called at mount and whenever selectionStore changes. NOTE: only to be used by CCDContentView\n     * @param {ISelectionStore} selectionStore - current selection store\n     * @param {Action[]} allActions - passes actionMenuItems and any additional default Actions\n     * @param actionHandler - a reference to CDOView.onActionButtonClick, in order to share Action processing and\n     *                        metrics\n     */\n    onSelectionChange?: (\n        selectionStore: ISelectionStore,\n        allActions: Action[],\n        actionHandler: IActionClick,\n    ) => void;\n    /**\n     * Disables drag start on this view. Will override 'enableDragDrop' feature flag\n     *\n     * NOTE: must also pass isValidDropTarget and onItemDrop, or dragging will be\n     * disabled.\n     */\n    dragDisabled?: boolean;\n    /**\n     * Callback that determines if the current drop target is valid. If not passed, dragging is disabled.\n     * @param {ICollectionItem} element\n     * @param {DragState} dragState\n     * @param {React.DragEvent<HTMLDivElement>} event\n     * @returns {boolean}\n     */\n    isValidDropTarget?: (\n        element: ICollectionItem,\n        dragState: DragState,\n        event: AnyDragEvent,\n    ) => boolean;\n    /**\n     * Callback when dragged elements are dropped on a valid drop target.\n     * @param {ICollectionItem} element\n     * @param {DragState} dragState\n     * @param {React.DragEvent<HTMLDivElement>} event\n     */\n    onItemDrop?: (\n        element: ICollectionItem,\n        dragState: DragState,\n        event: React.DragEvent<HTMLDivElement>,\n    ) => void;\n    /**\n     * Callback when user drags over a valid drop target and pauses until a timer expires.\n     * Used by CloudDocuments for navigating to folders.\n     *\n     * @param {ICollectionItem} element\n     */\n    onDragTimerEnd?: (element: ICollectionItem) => void;\n    /**\n     * Callback when user drops a selection into the view, and wasn't handled by an item drop.\n     * Return true if the drop was accepted.\n     *\n     * @param {DragState} dragState\n     */\n    onViewDrop?: (dragState: DragState) => boolean;\n    /**\n     * Called when dragging into CDOView for the first time\n     */\n    onViewDragEnter?: (e: AnyDragEvent, dragState: DragState) => void;\n    /**\n     * Called when dragging out of CDOView for the last time\n     */\n    onViewDragLeave?: (e: AnyDragEvent, dragState: DragState) => void;\n    /**\n     * Called when dragging over a ViewItem for the first time if it's a valid drop target\n     */\n    onAssetDragEnter?: (element: ICollectionItem, e: AnyDragEvent, dragState: DragState) => void;\n    /**\n     * Called when dragging out of a ViewItem for the last time\n     */\n    onAssetDragLeave?: (element: ICollectionItem, e: AnyDragEvent, dragState: DragState) => void;\n    getDragThumbnail?: IDragCardProps['getThumbnail'];\n    /**\n     *  If present, CV will use it to get the list of files dropped from an external source,\n     *  rather than the web standard (dragEvent.dataTransfer.files).\n     *  If there are no valid files in the drag source, return empty array.\n     */\n    getDraggedFiles?: (event: DragEvent) => File[];\n    hideActionToolbar?: boolean;\n    allowClickEventOnDisabled?: boolean;\n    hideActionColumn?: boolean;\n    removeToast?: () => void;\n    activeSort: UXSortBy | string;\n    activeSortDirection: UXSortDir;\n    onSortSelected?: (sortBy: UXSortByForACP) => void;\n    toastConfig?: IToastConfig;\n    setToastCoords?: (coords: IToastCoords) => void;\n    /**\n     * @param items The items that were selected\n     */\n    launchItems: (\n        items: ICollectionItem[],\n        e?: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ) => Promise<void>;\n    onItemMounted?: (item: ICollectionItem) => void;\n    startOperation?: () => OperationStore;\n    operationState?: OperationState | undefined;\n    setOperationState?: (newState: OperationState) => void;\n    /** Parent that is scrollable, if this view is inside a scrollable element. */\n    scrollElementRef?: RefObject<HTMLDivElement>;\n    getEmptyViewProps?: () => IEmptyProps;\n    filters?: IFilter[];\n    selectionManager?: ISelectionManager;\n    /**\n     * @param {ListViewColumn[]} - Default + Custom columns array\n     * @returns {ListViewColumn[]} - the final array of columns.\n     * @description  Callback to change columns in the list view. If not provided, the default columns along with custom columns will be used.\n     * Must pass Select, Title and Action columns for proper styling of the list view.\n     */\n    overrideListColumns?: (columns: ListViewColumn[]) => ListViewColumn[];\n    hideActionMenu?: boolean;\n    hideSelectionCheckbox?: boolean;\n    /** The following props: routeId and onRouted\n     * are a part of CollectionView's Routing API.\n     * CollectionView will select and scroll to the item with the given route ID */\n    routeId?: string;\n    /** This will be called after CollectionView has selected the item and\n     * it is expected that CollectionView will soon have finished scrolling the item into view.\n     * we will send an event that contains all of the current visible assets, and the current index.\n     * With this hosts can use their own logic to determine prev/next assets;\n     **/\n    onRouted?: (params: {\n        routeId: string;\n        assetIds: string[];\n        currentIndex: number;\n    }) => Promise<void>;\n\n    routingRefreshTimestamp?: string;\n};\n\n@observer\nclass CDOView extends Component<ICDOViewProps & WrappedComponentProps> {\n    private logger = new Logger(this.constructor.name);\n\n    private metrics: ICollectionViewMetrics = this.props.metrics;\n\n    private selectionStore = new SelectionStore();\n\n    private renderedWithElements = false;\n\n    private subscriptionKey = uuidv1();\n\n    private dragState = new DragState(this.selectionStore);\n\n    private cdoViewRef: RefObject<HTMLDivElement> = React.createRef();\n\n    private actionBarContainerRef: RefObject<HTMLDivElement> = React.createRef();\n\n    private resizeObserver;\n\n    private selectionManager = this.props.selectionManager;\n\n    private viewStateStore = new ViewStateStore();\n\n    private keyDownEventListener = (e) => {\n        this.selectionManager?.onKeyDownSelection(e);\n    };\n\n    @observable private openActionMenuId: string = null;\n\n    private firePopulatedStateRenderMetric = (): void => {\n        const { ingestSubcategory } = this.props;\n        this.metrics?.fireEvent?.(\n            {\n                event: {\n                    subcategory: ingestSubcategory,\n                    type: 'render',\n                    subtype: 'page',\n                    workflow: ingestSubcategory,\n                },\n            },\n            { perSession: true },\n        );\n    };\n\n    constructor(props, ...args) {\n        // @ts-ignore\n        super(props, ...args);\n\n        this.metrics?.fireEvent?.({\n            event: {\n                subcategory: 'Init',\n                subtype: 'component',\n                type: 'init',\n                workflow: 'Initialize',\n            },\n        });\n\n        this.selectionStore.setSelectionBehavior(this.props.selectionBehavior);\n\n        // MultiSelectionManager by default as SingleSelection is an exception\n        if (\n            this.props.isFeatureFlagEnabled?.('enableUnifiedSelectionUX') &&\n            !this.selectionManager\n        ) {\n            this.selectionManager = new MultiSelectionManager({\n                selectionStore: this.selectionStore,\n                elements: this.props.elements,\n            });\n        } else if (\n            this.props.isFeatureFlagEnabled?.('enableUnifiedSelectionUX') &&\n            this.selectionManager\n        ) {\n            this.selectionManager.setSelectionStore(this.selectionStore);\n        }\n    }\n\n    // This will set the scroll index to undefined after the last call to onScroll.\n    // This will free the scroll lock, allowing the user to scroll freely.\n    private onScroll = () => {\n        debounce(() => this.viewStateStore.setScrollIndex(undefined), MINIMUM_ACCEPTED_TIMEOUT, {\n            leading: false,\n        })();\n    };\n\n    componentDidMount() {\n        const { onSelectionChange, routeId } = this.props;\n        this.firePopulatedStateRenderMetric();\n\n        // Clear selections when navigating to a new view. This assumes we'll never have multiple CDOView\n        // instances visible at the same time (e.g., a split-pane view with different folders in each pane). If the need\n        // arises, we'll need to go back to having CDOView responsible for constructing and managing SelectionStore\n        // and not expose SelectionStore externally.\n        this.selectionStore.clear();\n\n        // Provide clients that need it a way to monitor for selection changes and get a reference\n        // to the visible actions and the handler to call to perform the action.\n        if (onSelectionChange) {\n            const selectionChanged = () =>\n                onSelectionChange(\n                    this.selectionStore,\n                    this.allActionMenuItems,\n                    this.onActionButtonClick,\n                );\n            disposeOnUnmount(\n                this,\n                reaction(() => this.selectionStore.selectedElements, selectionChanged),\n            );\n\n            // call once on mount\n            selectionChanged();\n        }\n\n        if (routeId) {\n            void this.routeToItem(routeId);\n        }\n\n        // ResizeObserver for floating toast coord tracking\n        this.resizeObserver = new ResizeObserver(this.handleToastResize);\n        if (this.cdoViewRef?.current) {\n            this.resizeObserver.observe(this.cdoViewRef.current);\n        }\n        if (this.actionBarContainerRef?.current) {\n            this.resizeObserver.observe(this.actionBarContainerRef.current);\n        }\n        const dragOverEl = this.getDragOverElement();\n        // `dragover` needs to be on `document` so that the drag card can\n        // be dragged outside CDOView\n        dragOverEl.addEventListener('dragover', this.onDragOver);\n        // `dragend` needs to be on `document` because navigating folders via\n        // drag does not fire `dragend` when bound via a prop in `render()`\n        dragOverEl.addEventListener('dragend', this.onDragEnd);\n        dragOverEl.addEventListener('keydown', this.keyDownEventListener);\n    }\n\n    componentWillUnmount(): void {\n        const dragOverEl = this.getDragOverElement();\n        dragOverEl.removeEventListener('dragover', this.onDragOver);\n        dragOverEl.removeEventListener('dragend', this.onDragEnd);\n        dragOverEl.removeEventListener('keydown', this.keyDownEventListener);\n        this.dragState.cleanUp();\n        if (this.cdoViewRef?.current) {\n            this.resizeObserver.unobserve(this.cdoViewRef.current);\n        }\n        if (this.actionBarContainerRef?.current) {\n            this.resizeObserver.unobserve(this.actionBarContainerRef.current);\n        }\n    }\n\n    componentDidUpdate(prevProps: ICDOViewProps) {\n        const { routeId, selectionBehavior, routingRefreshTimestamp } = this.props;\n        if (routeId) {\n            if (\n                routeId !== prevProps?.routeId ||\n                routingRefreshTimestamp !== prevProps.routingRefreshTimestamp\n            ) {\n                this.selectionStore.clear();\n                void this.routeToItem(routeId);\n            }\n        }\n        if (selectionBehavior !== prevProps.selectionBehavior) {\n            this.selectionStore.setSelectionBehavior(selectionBehavior);\n        }\n    }\n\n    handleToastResize = (entries) => {\n        let isUAPView;\n        const toastCoords: IToastCoords = {} as any;\n        const { setToastCoords } = this.props;\n        const root = window.innerHeight || document.body.clientHeight;\n        const toastCoordsBottomFallback = 10;\n        const toastCoordsBottomUAP = 60;\n        for (const entry of entries) {\n            const target = entry.target;\n            if (target.className.includes('CDOView')) {\n                // if UAP view, we use non-actionBar defaults\n                isUAPView = target.closest('.PickerView');\n                // web view viewport uses modal (not browser), so we need to remove left offset\n                const isUAPWebView = target.closest('.DocumentPickerWebDialog');\n\n                // setup toast overlay general coords\n                const CDOBox = target.getBoundingClientRect();\n                toastCoords.toastLeftOffset = isUAPWebView ? undefined : CDOBox?.x;\n                toastCoords.toastWidth = entry.contentRect.width;\n                toastCoords.toastBottomOffset = isUAPView\n                    ? toastCoordsBottomUAP\n                    : toastCoordsBottomFallback;\n\n                // if ActionBar exists on first render we need to update toastBottomOffset\n                const actionBar = this.actionBarContainerRef?.current;\n                if (actionBar && !isUAPView) {\n                    const actionBarBox =\n                        this.actionBarContainerRef?.current?.getBoundingClientRect();\n                    const actionBarBottomOffset = root - actionBarBox?.bottom;\n                    toastCoords.toastBottomOffset = actionBarBox?.height + actionBarBottomOffset;\n                }\n            }\n            // if ActionBar is visible we need to resize as it animates into frame\n            if (target.className.includes('ActionBar') && !isUAPView) {\n                const actionBarBox = target.getBoundingClientRect();\n                const actionBarBottomOffset = root - actionBarBox?.bottom;\n                toastCoords.toastBottomOffset = Math.max(\n                    entry.contentRect.height + actionBarBottomOffset,\n                    toastCoordsBottomFallback,\n                );\n            }\n\n            // only update coords that are new\n            const cleanToastCoords = removeUndefinedFields(toastCoords);\n            setToastCoords?.(cleanToastCoords);\n        }\n    };\n\n    // encapsulate for ease of testing\n    getDragOverElement(): Document {\n        return document;\n    }\n\n    get allActionMenuItems() {\n        const {\n            actionMenuItems = [] as Action[],\n            selectionDisabled,\n            isFeatureFlagEnabled,\n        } = this.props;\n        this.selectAction.subscribe(\n            'executing',\n            this.subscriptionKey,\n            async (el: ICollectionItem) => {\n                this.onItemSelected(el, ExtendSelectionMode.Toggle);\n            },\n        );\n        const selectActionItem =\n            !selectionDisabled &&\n            !isFeatureFlagEnabled?.('enableUnifiedSelectionUX') &&\n            this.selectAction;\n        return [...actionMenuItems, selectActionItem].filter(Boolean);\n    }\n\n    isInSelectionMode(): boolean {\n        const { lockSelectModeOn } = this.getSelectionBehaviorConfig();\n        return lockSelectModeOn || this.hasAnySelected;\n    }\n\n    isLoading = (): boolean => false;\n\n    isBusy = (): boolean => {\n        const { elements, isLoading = this.isLoading, pagination } = this.props;\n        // rely on pagination props for busy/loading states\n        if (pagination) {\n            return false;\n        }\n        // Show spinner when loading and there are no elements, otherwise the user might see the empty view\n        // with no indication that content is being fetched. This means that sometimes we will show the spinner\n        // when there are is no content to show, causing the empty state to flash.\n        // https://jira.corp.adobe.com/browse/CCXCD-1837\n        return isLoading() && elements?.length === 0;\n    };\n\n    public shouldRenderItemAsDisabled: ShouldRenderItemAsDisabled = async (\n        element: ICollectionItem,\n    ): Promise<boolean> => {\n        const { shouldRenderItemAsDisabled } = this.props;\n        return (await shouldRenderItemAsDisabled?.(element)) ?? false;\n    };\n\n    private resetSelection(): void {\n        this.selectionStore.clear();\n    }\n\n    private getGridSortOptions() {\n        return [UXSortBy.modifiedDate, UXSortBy.title];\n    }\n\n    private getColumns(columns: ListViewColumn[]): ListViewColumn[] {\n        const { overrideListColumns } = this.props;\n        return overrideListColumns?.(columns) ?? columns;\n    }\n\n    private validateViewDropTarget(e: AnyDragEvent): void {\n        const { isFeatureFlagEnabled } = this.props;\n        // Allow import when enabled\n        const enableImportDrop = isFeatureFlagEnabled?.('enableImportDrop');\n        if (enableImportDrop && this.dragState.dragSource === DragSource.IMPORT) {\n            // preventDefault allows drag/drop\n            e.preventDefault();\n        }\n        // Allow drag/drop within, from CV to CV\n        const enableDragDrop = isFeatureFlagEnabled?.('enableDragDrop');\n        if (enableDragDrop && this.dragState.dragSource === DragSource.SELF) {\n            e.preventDefault();\n        }\n    }\n\n    private validateDropTarget(element: ICollectionItem, e: AnyDragEvent): void {\n        const { isFeatureFlagEnabled } = this.props;\n\n        // Only CDO/import items are valid for dropping\n        if (!this.dragState.dragSource) {\n            return;\n        }\n        // Cannot drop onto element that is part of the drag selection\n        if (this.dragState.isDraggingElement(element)) {\n            return;\n        }\n        const enableImportDrop = isFeatureFlagEnabled?.('enableImportDrop');\n        if (!enableImportDrop && this.dragState.dragSource === DragSource.IMPORT) {\n            return;\n        }\n\n        const { isValidDropTarget } = this.props;\n        if (isValidDropTarget?.(element, this.dragState, e)) {\n            // preventDefault indicates this is a valid drop target\n            e.preventDefault();\n        }\n    }\n\n    private getSelectionBehaviorConfig(): Partial<ICDOViewProps> & {\n        [prop: string]: boolean | any;\n    } {\n        const { hideActionMenu, hideSelectionCheckbox } = this.props;\n        const { selectionBehavior } = this.selectionStore;\n        const isSingleSelect = selectionBehavior.single;\n\n        return {\n            lockSelectModeOn: isSingleSelect ?? false, // turns on selection mode at start\n            doubleClickToOpen: isSingleSelect ?? false,\n            arrowKeyMovesSelection: isSingleSelect ?? false,\n            hideSelectionCheckbox:\n                (selectionBehavior.hideFolderCheckbox && selectionBehavior.hideFileCheckbox) ||\n                (hideSelectionCheckbox ?? false),\n            hideSelectAllCheckbox: selectionBehavior.single,\n            shouldHideCheckbox: selectionBehavior.shouldHideCheckbox,\n            hideActionMenu: hideActionMenu ?? false,\n        };\n    }\n\n    get hasAnySelected() {\n        return hasAny(this.selectionStore.selectedElements);\n    }\n\n    get isDragDisabled() {\n        const { isFeatureFlagEnabled, dragDisabled = true } = this.props;\n        const ffDragEnabled = isFeatureFlagEnabled?.('enableDragDrop');\n\n        // drag & drop is disabled when one of the following:\n        // - featureflag is off\n        // - we're in UAP (handled by CDOTab)\n        // - dragDisabled prop is true\n        return !ffDragEnabled || dragDisabled;\n    }\n\n    private filterItems(): { items: ICollectionItem[]; emptyViewProps: IEmptyProps } {\n        const {\n            elements,\n            filters = [],\n            pagination,\n            getEmptyViewProps = () => ({\n                image: <EmptyFilterView />,\n                subtitleId: 'empty.filter.subtitle',\n                titleId: 'empty.filter.title',\n            }),\n        } = this.props;\n\n        let filteredItems: ICollectionItem[] = elements;\n\n        const hiddenFilters = filters.filter((filter) => filter.isHiddenFilter);\n        const visibleFilters = filters.filter((filter) => !filter.isHiddenFilter);\n\n        // apply hidden filters.\n        hiddenFilters.forEach((filter) => {\n            filteredItems = filter.filter(filteredItems);\n        });\n\n        let hideEmptyView =\n            filteredItems.length > 0 ||\n            (pagination && pagination.initialPlaceholderElements && pagination.isNextPageLoading);\n\n        //Filters is empty when the 'All' filter is selected\n        if (filters.length === 0) {\n            if (this.props.isFeatureFlagEnabled?.('enableUnifiedSelectionUX')) {\n                this.selectionManager?.setElements(elements);\n            }\n            return {\n                items: elements,\n                emptyViewProps: hideEmptyView ? undefined : getEmptyViewProps(),\n            };\n        }\n\n        let emptyViewProps: IEmptyProps;\n        for (const filter of visibleFilters) {\n            const shouldApplyFilter = filter.conditional?.() ?? true;\n            if (!shouldApplyFilter) {\n                continue;\n            }\n            filteredItems = filter.filter(filteredItems);\n            if (!filteredItems.length && !filter.isHiddenFilter) {\n                hideEmptyView =\n                    pagination &&\n                    pagination.initialPlaceholderElements &&\n                    pagination.isNextPageLoading;\n                emptyViewProps = filter.getFilterEmptyProps();\n                break;\n            }\n        }\n\n        if (this.props.isFeatureFlagEnabled?.('enableUnifiedSelectionUX')) {\n            this.selectionManager?.setElements(filteredItems);\n        }\n\n        return {\n            items: filteredItems,\n            emptyViewProps: hideEmptyView ? undefined : emptyViewProps ?? getEmptyViewProps(),\n        };\n    }\n\n    private onItemDragStart = (element: ICollectionItem, e: React.DragEvent<HTMLDivElement>) => {\n        if (!this.selectionStore.isSelected(element)) {\n            this.selectionStore.addSelections([element]);\n        }\n\n        this.dragState.startDragAsset(element, this.selectionStore.selectedElements, e);\n    };\n\n    private onItemDragEnter = (element: ICollectionItem, e: AnyDragEvent) => {\n        this.validateDropTarget(element, e);\n\n        const isValidDropTarget = e.defaultPrevented;\n        if (isValidDropTarget) {\n            this.props.onAssetDragEnter?.(element, e, this.dragState);\n        }\n    };\n\n    private onItemDragLeave = (element: ICollectionItem, e: AnyDragEvent) => {\n        this.props.onAssetDragLeave?.(element, e, this.dragState);\n    };\n\n    private onItemDrop = (element: ICollectionItem, e: React.DragEvent<HTMLDivElement>) => {\n        const { onItemDrop, getDraggedFiles } = this.props;\n        // Must re-validate that the element is a valid drop target\n        this.validateDropTarget(element, e);\n        if (onItemDrop && e.defaultPrevented) {\n            if (this.dragState.dragSource === DragSource.IMPORT) {\n                if (getDraggedFiles) {\n                    this.dragState.dragFiles = getDraggedFiles(e.nativeEvent);\n                } else {\n                    // extracting file data can only be done during onDrop\n                    this.dragState.dragFiles = Object.values(e.dataTransfer.files);\n                }\n            }\n\n            onItemDrop(element, this.dragState, e);\n            // Clear selection when drop is accepted, but not when cancelled. Other clean-up will happen in onDragEnd.\n            this.selectionStore.clear();\n\n            // For internal drag source, drop or Esc key will end the drag operation and fire dragEnd event, but when\n            // the source is external, dragEnd is not fired. Cleanup must be done here and in dragEnd.\n            if (this.dragState.dragSource === DragSource.IMPORT) {\n                this.dragState.cleanUp();\n            }\n        }\n    };\n\n    private onDragTimerEnd = (element: ICollectionItem) => {\n        const { onDragTimerEnd } = this.props;\n        if (onDragTimerEnd) {\n            onDragTimerEnd(element);\n        }\n    };\n\n    private onDragOver = (e: AnyDragEvent) => {\n        const { isFeatureFlagEnabled } = this.props;\n\n        // To support dragging from external source, preventDefault must\n        // be called in both dragOver and dragEnter. CDOView should only\n        // call preventDefault in dragEnter if it is a valid drop target\n        if (\n            isFeatureFlagEnabled?.('enableDragDrop') ||\n            isFeatureFlagEnabled?.('enableImportDrop')\n        ) {\n            e.preventDefault();\n        }\n        this.dragState.onDragOver(e);\n    };\n\n    /**\n     * For internal drag source, dragEnd is fired on drop or when cancelled by Esc key.\n     * For external drag source, no dragEnd events happen.\n     */\n    private onDragEnd = () => {\n        this.dragState.cleanUp();\n    };\n\n    private onDragEnter = (e: React.DragEvent<HTMLDivElement>) => {\n        const { onViewDragEnter } = this.props;\n        const isEnteringCDO = isFirstDragEnter(e);\n        if (isEnteringCDO) {\n            this.dragState.startDragImportIfNeeded(e);\n            this.validateViewDropTarget(e);\n            if (!e.defaultPrevented) {\n                return;\n            }\n            onViewDragEnter?.(e as unknown as DragEvent, this.dragState);\n        }\n    };\n\n    private onDragLeave = (e: React.DragEvent<HTMLDivElement>) => {\n        const { onViewDragLeave } = this.props;\n        const isExitingCDO = isLastDragLeave(e);\n        if (isExitingCDO) {\n            onViewDragLeave?.(e as unknown as DragEvent, this.dragState);\n            // For import, if leaving CDOView, clean up drag state so that next drag enter doesn't\n            // get treated as a continuation of the import. That drag enter will need to be re-evaluated.\n            if (this.dragState.dragSource === DragSource.IMPORT) {\n                this.dragState.cleanUp();\n            }\n        }\n    };\n\n    /**\n     * If onItemDrop doesn't handle the drop gesture (it doesn't call stopPropagation()), or if the drop\n     * happens on something other than a grid/list item, it'll bubble to CDOView's top-level drop event handler.\n     * This allows drop on empty view, or outside a grid/list view to be interpreted as \"drop in this view,\n     * whatever that means.\"\n     *\n     * @param {React.DragEvent<HTMLDivElement>} e\n     */\n    private onViewDrop = (e: React.DragEvent<HTMLDivElement>) => {\n        e.preventDefault();\n        e.stopPropagation();\n        const { onViewDrop, onViewDragLeave, getDraggedFiles } = this.props;\n        if (!onViewDrop || !this.dragState.dragSource) {\n            return;\n        }\n\n        if (this.dragState.dragSource === DragSource.IMPORT) {\n            if (getDraggedFiles) {\n                this.dragState.dragFiles = getDraggedFiles(e.nativeEvent);\n            } else {\n                // extracting file data can only be done during onDrop\n                this.dragState.dragFiles = Object.values(e.dataTransfer.files);\n            }\n        }\n\n        const accepted = onViewDrop(this.dragState);\n        // Clear selection when drop is accepted, but not when cancelled. Other clean-up will happen in onDragEnd.\n        if (accepted) {\n            this.selectionStore.clear();\n        }\n\n        // For internal drag source, drop or Esc key will end the drag operation and fire dragEnd event, but when\n        // the source is external, dragEnd is not fired. Cleanup must be done here and in dragEnd.\n        if (this.dragState.dragSource === DragSource.IMPORT) {\n            onViewDragLeave?.(e, this.dragState);\n            this.dragState.cleanUp();\n        }\n    };\n\n    protected async routeToItem(routeId: string) {\n        const { onRouted, ingestSubcategory, metrics } = this.props;\n\n        await when(() => !this.isBusy());\n\n        // use this.filterItems() to get only elements that are currently visible after filtering\n        const elements = this.filterItems().items;\n\n        const elementIndex = elements.findIndex((element) => element.id === routeId);\n        if (elementIndex === -1) {\n            return;\n        }\n\n        const selectedElement = elements[elementIndex];\n        this.viewStateStore.setScrollIndex(elementIndex);\n        this.onItemSelected(selectedElement, ExtendSelectionMode.Toggle);\n\n        metrics?.logUsageMetric?.({\n            ingestSubcategory,\n            element: selectedElement,\n            dtsStart: new Date(Date.now()),\n            type: EventType.Route,\n            subtype: EventType.Success,\n            menu: MenuType.Item,\n            view: this.props.view,\n            workflow: Workflow.Navigation,\n        });\n        const assetIds = elements.map((asset) => asset.id);\n        void onRouted?.({\n            routeId,\n            currentIndex: elementIndex,\n            assetIds,\n        });\n    }\n\n    private onItemClicked = async (\n        element: ICollectionItem,\n        e?: React.MouseEvent | React.KeyboardEvent | React.TouchEvent,\n    ): Promise<void> => {\n        const { ingestSubcategory, onBeforeItemClicked, launchItems } = this.props;\n        const eventSubType = ActionAnalyticsValue.Open;\n\n        if (onBeforeItemClicked && onBeforeItemClicked(element, this.selectionManager) === false) {\n            return;\n        }\n\n        const dtsStart = new Date(Date.now());\n        await launchItems([element], e);\n\n        this.metrics?.logUsageMetric?.({\n            ingestSubcategory,\n            element,\n            dtsStart: dtsStart,\n            subtype: eventSubType,\n            menu: MenuType.Item,\n        });\n    };\n\n    private onDocMounted = (item: ICollectionItem): void => {\n        const { onItemMounted } = this.props;\n        onItemMounted?.(item);\n    };\n\n    private onItemSelected = (\n        element: ICollectionItem,\n        extendSelectionMode: ExtendSelectionMode,\n    ): void => {\n        const { elements } = this.props;\n        this.selectionStore.extendSelection(elements, element, extendSelectionMode);\n    };\n\n    private selectAction: SelectAction = new SelectAction();\n\n    private onActionButtonClick = async (\n        action: Action,\n        menu: MenuType,\n        selectedElements: ICollectionItem[] = [],\n    ) => {\n        const { ingestSubcategory, startOperation, setOperationState, operationState } = this.props;\n        const usageMetricLogger = this.metrics?.getUsageMetricLogger(action, ingestSubcategory);\n        let filteredElements = selectedElements;\n        let moreArgs = [];\n        const operationStore = startOperation?.() ?? new OperationStore();\n        if (action.beforeExecute) {\n            if (operationState !== ProcessingState.Idle) {\n                return;\n            }\n            // warning: if an action's op is runInBackground: true and a beforeExecute is present,\n            // a loading spinner will still show during beforeExecute unless the action's isNonBlocking is set.\n            // Ideally the action op's runInBackground should be set to be the same as isNonBlocking\n            // so that the action as a whole becomes non-blocking\n            if (!action.isNonBlocking) {\n                setOperationState?.(ProcessingState.Pending);\n            }\n            // Async \"confirm\" step. Resolves with an array of elements that can be acted on, plus any\n            // additional arguments that need to be passed to execute.\n            // Resolve with empty array to cancel the action.\n            try {\n                [filteredElements, ...moreArgs] = await action.beforeExecute(\n                    operationStore,\n                    selectedElements,\n                );\n            } catch (e) {\n                this.logger.error(e);\n                setOperationState?.(ProcessingState.Idle);\n                return;\n            }\n        }\n\n        if (filteredElements.length > 0) {\n            setOperationState?.(ProcessingState.ReadyToExecute);\n            usageMetricLogger?.start(filteredElements, EventType.Click, menu);\n\n            if (action.resetSelection) {\n                this.resetSelection();\n            }\n\n            try {\n                const didActionExecute = await action.execute(\n                    operationStore,\n                    filteredElements,\n                    usageMetricLogger?.correlationId,\n                    ...moreArgs,\n                );\n\n                //For modal actions, reset selection only if the adobe asset operation was executed\n                if (didActionExecute) {\n                    this.resetSelection();\n                }\n                usageMetricLogger?.success();\n            } catch (e) {\n                this.logger.error(e);\n                usageMetricLogger?.error(selectedElements, e as Error);\n            }\n        } else {\n            // Action was cancelled in beforeExecute.\n            // Cancel metric is based on items selected at the time of cancellation\n            usageMetricLogger?.cancel(selectedElements);\n        }\n        setOperationState?.(ProcessingState.Idle);\n    };\n\n    private onActionBarActionButtonClick = (action: Action): void => {\n        this.onActionButtonClick(action, MenuType.ActionBar, this.selectionStore.selectedElements);\n    };\n\n    private onItemsActionButtonClick = (action: Action, elements: ICollectionItem[]): void => {\n        this.onActionButtonClick(action, MenuType.Context, elements);\n    };\n\n    private onFolderActionClick = (action: Action): void => {\n        this.onActionButtonClick(action, MenuType.Header);\n    };\n\n    /**\n     * The handler for select-all/deselect-all toggle\n     * @returns {undefined}\n     */\n    private onSelectAllItems = (): void => {\n        if (this.hasAnySelected) {\n            this.selectionStore.clear();\n        } else {\n            this.selectionStore.addSelections(this.filterItems().items);\n        }\n    };\n\n    private onKeyDown = (e: React.KeyboardEvent) => {\n        const { hideSelectionCheckbox } = this.getSelectionBehaviorConfig();\n        if (e.key === 'Escape' && this.hasAnySelected) {\n            // When checkboxes are shown, user can use esc to deselect\n            if (!hideSelectionCheckbox) {\n                this.resetSelection();\n                stopPropagation(e, true);\n            }\n        }\n    };\n\n    private onBackgroundClick = (e: React.MouseEvent) => {\n        const { isFeatureFlagEnabled } = this.props;\n        if (isFeatureFlagEnabled?.('enableUnifiedSelectionUX')) {\n            this.openActionMenuId = null;\n            this.selectionManager?.onBackgroundClick(e);\n            return;\n        }\n        const { hideSelectionCheckbox } = this.getSelectionBehaviorConfig();\n        // When checkboxes are shown, user can use the \"select all\" checkbox to deselect\n        if (!hideSelectionCheckbox) {\n            return;\n        }\n\n        if (this.hasAnySelected) {\n            // Ignore clicks on the items or their children\n            // Fixes CCXCD-5071\n            // UXP does not currently support matches\n            // https://jira.corp.adobe.com/browse/UXP-11933\n            if ((e.target as HTMLElement).matches('.cdo-ViewItem, .cdo-ViewItem *')) {\n                return;\n            }\n            // With modifier key, selection is being extended\n            if (e.shiftKey || (isWindows() ? e.ctrlKey : e.metaKey)) {\n                return;\n            }\n            this.resetSelection();\n        }\n    };\n\n    private renderOperationContent = () => {\n        const { operationState } = this.props;\n        if (operationState === ProcessingState.Pending) {\n            return (\n                <div\n                    id=\"CDO_PendingUnderlay\"\n                    className={classNames('spectrum-Underlay', 'is-open')}\n                >\n                    <Busy />\n                </div>\n            );\n        }\n    };\n\n    private get commonViewProps(): Partial<ICommonCollectionViewProps> {\n        const {\n            activeSort,\n            activeSortDirection,\n            ingestSubcategory,\n            onSortSelected,\n            isFeatureFlagEnabled,\n            isLoading = this.isLoading,\n            selectionDisabled,\n            scrollElementRef,\n            pagination,\n        } = this.props;\n        const { hideSelectAllCheckbox, arrowKeyMovesSelection, shouldHideCheckbox } =\n            this.getSelectionBehaviorConfig();\n        const focusManagementEnabled = isFeatureFlagEnabled?.('focusManagementEnabled');\n\n        return {\n            activeSort,\n            activeSortDirection,\n            elements: this.filterItems().items,\n            ingestSubcategory,\n            focusManagementEnabled,\n            onSelectAllItems: selectionDisabled ? undefined : this.onSelectAllItems,\n            onSortSelected,\n            selectionStore: this.selectionStore,\n            isSelectAllDisabled: isLoading(),\n            scrollIndex: this.viewStateStore.scrollIndex,\n            onItemSelected: selectionDisabled ? undefined : this.onItemSelected,\n            arrowKeyMovesSelection,\n            hideSelectAllCheckbox,\n            metrics: this.props.metrics,\n            intl: this.props.intl,\n            scrollElementRef,\n            isFeatureFlagEnabled,\n            shouldHideCheckbox,\n            selectionManager: this.selectionManager,\n            openActionMenuId: this.openActionMenuId,\n            onEllipsisClick: this.handleEllipsisMenuOpen,\n            onScroll: this.onScroll,\n            pagination,\n        };\n    }\n\n    private get commonItemProps(): Partial<IViewItemProps> {\n        const { isFeatureFlagEnabled, allowClickEventOnDisabled, metrics, theme } = this.props;\n        const { hideActionMenu, doubleClickToOpen } = this.getSelectionBehaviorConfig();\n        const focusManagementEnabled = isFeatureFlagEnabled?.('focusManagementEnabled');\n        const dragDisabled = this.isDragDisabled;\n        const hideEllipsisMenu = isFeatureFlagEnabled?.('enableEllipsisMenuForOneItem')\n            ? hideActionMenu || this.hasAnySelected\n            : hideActionMenu || this.hasAnySelected || this.allActionMenuItems.length <= 1;\n        return {\n            actionMenuItems: this.allActionMenuItems,\n            focusManagementEnabled,\n            shouldRenderItemAsDisabled: this.shouldRenderItemAsDisabled,\n            onActionButtonClick: this.onItemsActionButtonClick,\n            onDocMounted: this.onDocMounted,\n            onItemClickedHandler: this.onItemClicked,\n            selectOnClick: this.isInSelectionMode(),\n            doubleClickToOpen,\n            hideEllipsisMenu,\n            disableContextMenu: hideActionMenu,\n            onItemDragStart: this.onItemDragStart,\n            onItemDragEnter: this.onItemDragEnter,\n            onItemDragLeave: this.onItemDragLeave,\n            onItemDrop: this.onItemDrop,\n            dragDisabled,\n            onDragTimerEnd: this.onDragTimerEnd,\n            allowClickEventOnDisabled,\n            metrics,\n            theme,\n            isFeatureFlagEnabled,\n            selectionManager: this.selectionManager,\n        };\n    }\n\n    handleEllipsisMenuOpen = (event: React.MouseEvent, element: ICollectionItem) => {\n        skipPropagation(event);\n        if (this.openActionMenuId !== element.id) {\n            this.openActionMenuId = element.id;\n        }\n    };\n\n    render() {\n        const {\n            children,\n            elements,\n            className,\n            view = ViewMode.Grid,\n            selectionDisabled,\n            isFeatureFlagEnabled,\n            hideActionColumn,\n            hideActionToolbar,\n            scrollElementRef,\n        } = this.props;\n\n        const { hideSelectionCheckbox } = this.getSelectionBehaviorConfig();\n        const operationContent = this.renderOperationContent();\n\n        const isActionBarEnabled =\n            isFeatureFlagEnabled?.('enableCDOActionBar') &&\n            !(this.selectionManager instanceof SingleSelectionManager);\n\n        const leftColumns: Column[] = [\n            isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                ? Column.Select\n                : !selectionDisabled && !hideSelectionCheckbox && Column.Select,\n            Column.Title,\n        ];\n        const rightColumns: Column[] = [\n            isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                ? Column.Action\n                : !hideActionColumn && Column.Action,\n        ];\n\n        // ensure React Virtualized re-renders when online/offline status changes\n        // also re-render when rowHeight changes as we switch between 2 and 3 line info sections\n        const defaultChangeProps = ['rowHeight'];\n\n        const enablePerformanceMetrics = isFeatureFlagEnabled?.('enablePerformanceMetrics');\n        if (!this.renderedWithElements && elements.length > 0 && !this.isBusy()) {\n            if (enablePerformanceMetrics) {\n                window?.performance?.measure('cdo:rendered-with-elements');\n            }\n            this.renderedWithElements = true;\n        }\n\n        return (\n            <div\n                /** @ts-expect-error 'part' is a valid HTML attribute */\n                part=\"CDOView\"\n                className={classNames(\n                    'cdo-CDOView',\n                    className,\n                    isWindows() && 'win',\n                    scrollElementRef && 'cdo-insideScrollElement',\n                )}\n                onKeyDown={\n                    isFeatureFlagEnabled?.('enableUnifiedSelectionUX')\n                        ? this.selectionManager?.onKeyDownSelection\n                        : this.onKeyDown\n                }\n                onDrop={this.onViewDrop}\n                onClick={this.onBackgroundClick}\n                onDragOver={this.onDragOver}\n                onDragEnter={this.onDragEnter}\n                onDragLeave={this.onDragLeave}\n                ref={this.cdoViewRef}\n            >\n                <CVContextProvider\n                    collectionViewRef={this.cdoViewRef}\n                    viewMode={view}\n                    elements={elements}\n                    selectedElements={this.selectionStore.selectedElements}\n                    onFolderActionClick={this.onFolderActionClick}\n                    filters={this.props.filters ?? []}\n                    selectionManager={this.selectionManager}\n                >\n                    {this.isBusy() && <Busy id=\"cdo-wait-spinner\" />}\n                    {!this.isBusy() && operationContent}\n                    {/*\n                     * The spinnerContent will appear above the elements so the view component stays mounted.\n                     * We want the view component to stay mounted specifically so we maintain the user's scroll position\n                     * while the spinnerContent is rendered.\n                     */}\n\n                    {Children.map(children, (child: React.ReactElement) => {\n                        if (!child) {\n                            return;\n                        }\n                        const { type: ChildType, props: childProps = {} } = child;\n                        // NOTE: viewProps will override properties specified below\n                        const { children: grandChildren, ...viewProps } = childProps;\n                        const { additionalChangeProps: viewChangeProps = [] } = viewProps;\n                        // Create a new array on each pass so that it doesn't cause duplicates\n                        const additionalChangeProps = [\n                            ...defaultChangeProps,\n                            ...viewChangeProps,\n                            ...this.selectionStore.selectedElements.map((e) => e.id),\n                        ];\n\n                        const emptyViewProps = this.filterItems().emptyViewProps;\n                        const emptyView = !this.isBusy() && emptyViewProps && (\n                            <EmptyView {...emptyViewProps} />\n                        );\n\n                        switch (ChildType) {\n                            case GridView: {\n                                type GridViewProps = React.ComponentProps<typeof GridView>;\n                                const getFolderOrGridViewItem = (element: ICollectionItem) =>\n                                    React.cloneElement(\n                                        grandChildren?.(element) ?? <GridItem {...({} as any)} />,\n                                        this.commonItemProps,\n                                    ) as unknown as ViewItem<IGridItemProps>;\n                                return (\n                                    view === 'grid' &&\n                                    (emptyView ||\n                                        React.cloneElement(child, {\n                                            ...this.commonViewProps,\n                                            sortOptions: this.getGridSortOptions(),\n                                            isHeaderVisible: true,\n                                            ...(viewProps as GridViewProps),\n                                            additionalChangeProps,\n                                            hideSelectionCheckbox,\n                                            children: getFolderOrGridViewItem,\n                                        } as GridViewProps))\n                                );\n                            }\n                            case ListView: {\n                                const getFolderOrListViewItem = (element: ICollectionItem) =>\n                                    React.cloneElement(\n                                        grandChildren?.(element) ?? <ListItem {...({} as any)} />,\n                                        this.commonItemProps,\n                                    ) as unknown as ViewItem<IListItemProps>;\n                                const { columns } = viewProps as ListViewProps;\n                                const listColumns = [\n                                    ...leftColumns,\n                                    ...(columns ?? []),\n                                    ...rightColumns,\n                                ];\n                                type ListViewProps = React.ComponentProps<typeof ListView>;\n                                return (\n                                    view === 'list' &&\n                                    (emptyView ||\n                                        React.cloneElement(child, {\n                                            ...this.commonViewProps,\n                                            ...(viewProps as ListViewProps),\n                                            columns: this.getColumns(listColumns),\n                                            additionalChangeProps,\n                                            children: getFolderOrListViewItem,\n                                        } as ListViewProps))\n                                );\n                            }\n                            default: {\n                                return child;\n                            }\n                        }\n                    })}\n                    <DragCard\n                        dragState={this.dragState}\n                        getThumbnail={this.props.getDragThumbnail}\n                    />\n                    {isFeatureFlagEnabled?.('enableContextMenu') && (\n                        <ContextMenu\n                            isScrolling={this.viewStateStore.isScrolling}\n                            onActionButtonClick={this.onItemsActionButtonClick}\n                            isFeatureFlagEnabled={isFeatureFlagEnabled}\n                        />\n                    )}\n                    <React.Suspense fallback={<div />}>\n                        <div\n                            ref={this.actionBarContainerRef}\n                            className=\"cdo-ActionBarContainer\"\n                            onClick={skipPropagation}\n                            onKeyDown={skipPropagation}\n                        >\n                            {isActionBarEnabled && !hideActionToolbar && (\n                                <div data-testid=\"action-bar-container\">\n                                    <CDOActionBar\n                                        selectionStore={this.selectionStore}\n                                        viewStateStore={this.viewStateStore}\n                                        availableActions={this.allActionMenuItems}\n                                        onActionButtonClick={this.onActionBarActionButtonClick}\n                                        isFeatureFlagEnabled={isFeatureFlagEnabled}\n                                        scale={this.props.scale}\n                                    />\n                                </div>\n                            )}\n                        </div>\n                    </React.Suspense>\n                </CVContextProvider>\n            </div>\n        );\n    }\n}\n\ntype IItemsActionClick = CDOView['onItemsActionButtonClick'];\ntype IActionClick = CDOView['onActionButtonClick'];\ntype IOnSelectionChange = ICDOViewProps['onSelectionChange'];\ntype IOnFolderActionClick = CDOView['onFolderActionClick'];\ntype IOnActionBarClick = CDOView['onActionBarActionButtonClick'];\ntype IOnItemDragStart = CDOView['onItemDragStart'];\ntype IOnItemDragEnter = CDOView['onItemDragEnter'];\ntype IOnItemDragLeave = CDOView['onItemDragLeave'];\ntype IOnItemDrop = CDOView['onItemDrop'];\ntype IOnDragTimerEnd = ICDOViewProps['onDragTimerEnd'];\ntype IShouldRenderItemAsDisabled = ICDOViewProps['shouldRenderItemAsDisabled'];\n\nexport default injectIntl(CDOView);\n\nexport { CDOView as CDOViewForTests };\nexport type {\n    ICDOViewProps,\n    ICDOViewProps as ICollectionViewProps,\n    IItemsActionClick,\n    IActionClick,\n    IOnSelectionChange,\n    IOnFolderActionClick,\n    IOnActionBarClick,\n    IOnItemDragStart,\n    IOnItemDragEnter,\n    IOnItemDragLeave,\n    IOnItemDrop,\n    IOnDragTimerEnd,\n    IShouldRenderItemAsDisabled,\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2019 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * Simple utility to use in async functions in place of using setTimeout. E.g., instead of\n *\n * function checkStatus(httpResponse, retries = 0) {\n *     if (httpResponse.status === 202 && retries < 5) {\n *         setTimeout(() => {\n *              makeRequest().then(response => checkStatus(response, retries + 1));\n *         }, 1000);\n *     }\n *     return Promise.resolve(httpResponse);\n * }\n *\n * Do this\n *\n * async function checkStatus(httpResponse) {\n *     let retries = 0;\n *     while (httpResponse === 202 && retries < 5) {\n *          await sleep(1000);\n *          retries++;\n *          httpResponse = await makeRequest();\n *     }\n *     return httpResponse;\n * }\n *\n * @param milliseconds\n */\nconst sleep = async (milliseconds = 0) =>\n    new Promise((resolve) => setTimeout(resolve, milliseconds));\nexport default sleep;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport * as React from 'react';\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport ViewGrid from '@ccx-public/spectrum-wrapper/dist/Icon/ClassicGridView';\nimport ViewList from '@ccx-public/spectrum-wrapper/dist/Icon/ViewList';\nimport OverlayTrigger from '@ccx-public/spectrum-wrapper/dist/OverlayTrigger';\nimport Tooltip from '@ccx-public/spectrum-wrapper/dist/Tooltip';\nimport { FormattedMessage } from 'react-intl';\n\nimport { ViewMode } from '../utils/constants';\n\ninterface IViewToggleProps {\n    disabled?: boolean;\n    viewMode: ViewMode;\n    onViewModeChange(viewMode: ViewMode): void;\n    tabIndex?: number;\n}\n\n/**\n * Component for displaying list and grid view toggle buttons\n */\nconst ViewToggles = ({\n    disabled = false,\n    viewMode,\n    tabIndex = 0,\n    onViewModeChange,\n}: IViewToggleProps) => {\n    const toggleViewMode = viewMode === ViewMode.Grid ? ViewMode.List : ViewMode.Grid;\n    return (\n        <OverlayTrigger placement=\"top\" trigger={['hover']}>\n            <Button\n                variant=\"secondary\"\n                quiet\n                value={toggleViewMode}\n                icon={viewMode === ViewMode.Grid ? <ViewList /> : <ViewGrid />}\n                onClick={() => {\n                    onViewModeChange(toggleViewMode);\n                }}\n                disabled={disabled}\n                id={`ViewToggles_${viewMode === ViewMode.List ? 'viewGrid' : 'viewList'}Button`}\n                tabIndex={tabIndex}\n                data-testid=\"view-toggle-button\"\n            />\n            <Tooltip>\n                <FormattedMessage id=\"header.viewTogglesLabel\" defaultMessage=\"Grid or List view\" />\n            </Tooltip>\n        </OverlayTrigger>\n    );\n};\n\nexport default ViewToggles;\nexport type { IViewToggleProps };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ReactNode } from 'react';\nimport React, { useCallback, useState, forwardRef } from 'react';\nimport classNames from 'classnames';\n\nimport '../styles/ScrollContainer.css';\n\ninterface Props {\n    showBorderWhenScrolled?: boolean;\n    children: ReactNode;\n}\n\nconst ScrollContainer = forwardRef<HTMLDivElement, Props>(function ScrollContainer(\n    { children, showBorderWhenScrolled },\n    ref,\n) {\n    const [isScrolled, setIsScrolled] = useState(false);\n\n    const onScroll = useCallback((evt) => {\n        setIsScrolled(evt.currentTarget.scrollTop > 0);\n    }, []);\n\n    return (\n        <div className=\"cdo-ScrollContainer\">\n            {/* We use a separate scrollLine element because it needs to have a padding-right. */}\n            <div\n                className={classNames('cdo-scrollLine', {\n                    ['cdo-scrolled']: isScrolled && showBorderWhenScrolled,\n                })}\n            />\n            <div\n                ref={ref}\n                className={classNames('cdo-scrollArea', 'ReactScrollViewNode')}\n                onScroll={onScroll}\n            >\n                {children}\n            </div>\n        </div>\n    );\n});\n\nexport default ScrollContainer;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { observable, action } from 'mobx';\nimport sleep from '../utils/sleep';\nimport { TOAST_DEFAULT_DELAY } from '../utils/constants';\nimport { Subscribable } from '../utils/Subscribable';\n\nexport interface IToastConfig {\n    message: string;\n    variant?: 'info' | 'error' | 'warning' | 'success';\n    delay?: number;\n    show?: boolean;\n    values?: any;\n    actionLabelMsgId?: string;\n    action?: () => void;\n    priority?: number;\n    closable?: boolean;\n}\n\nexport interface IToastCoords {\n    toastBottomOffset?: number;\n    toastLeftOffset?: number;\n    toastWidth?: number;\n}\n\ntype ToastStoreCallbacks = {\n    onAddToast: Map<string, (config: IToastConfig) => void>;\n};\n\nexport type AddToastFn = (config: IToastConfig) => void;\n\nexport class ToastStore extends Subscribable<ToastStoreCallbacks> {\n    @observable alwaysDisableToasts: boolean = false;\n    @observable temporarilyDisableToasts: boolean = false;\n    @observable addToast: AddToastFn = this.defaultAddToast;\n    @observable toastConfig: IToastConfig;\n    @observable toastCoords: IToastCoords = undefined;\n\n    constructor(config: Partial<ToastStore>) {\n        super();\n        Object.assign(this, config);\n    }\n\n    @action private defaultAddToast({\n        message,\n        variant = undefined,\n        values = {},\n        delay = TOAST_DEFAULT_DELAY,\n        closable = true,\n        action = undefined,\n        actionLabelMsgId = undefined,\n    }: IToastConfig) {\n        // legacy toast\n        // updates @observable 'toastConfig' which CDOView updates\n        this.toastConfig = {\n            show: true,\n            message,\n            variant,\n            values,\n            closable,\n            actionLabelMsgId,\n            action,\n        };\n        if (delay) {\n            sleep(delay).then(() => this.removeToast());\n        }\n\n        // floatingToasts\n        // updates 'toastQueue' which is being passed into CDOToastUI\n        const config: IToastConfig = {\n            show: true,\n            message,\n            variant,\n            values,\n            delay,\n            closable,\n            actionLabelMsgId,\n            action,\n        };\n        this.notifySubscribers('onAddToast', config);\n    }\n\n    @action setAddToastFunc(fn: AddToastFn) {\n        this.addToast = fn;\n    }\n\n    @action removeToast() {\n        // legacy toast\n        // updates @observable 'toastConfig' which CDOView updates\n        this.toastConfig = {\n            closable: false,\n            message: '',\n            show: false,\n            values: {},\n            variant: undefined,\n            actionLabelMsgId: '',\n            action: undefined,\n        };\n    }\n\n    @action setTemporarilyDisableToasts(newToastState: boolean) {\n        this.temporarilyDisableToasts = newToastState;\n    }\n\n    @action setToastCoords = (coords: IToastCoords) => {\n        this.toastCoords = coords;\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useRef, type ComponentProps } from 'react';\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport classnames from 'classnames';\nimport IconChevronRight from '@ccx-public/spectrum-wrapper/dist/Icon/ChevronRight';\nimport IconChevronDown from '@ccx-public/spectrum-wrapper/dist/Icon/ChevronDown';\nimport React from 'react';\n\nexport function ExpandToggle({\n    onToggle,\n    hasChildren,\n    isExpanded,\n    isLoading,\n    ...props\n}: ComponentProps<typeof Button> & {\n    isExpanded: boolean;\n    isLoading: boolean;\n    hasChildren: boolean;\n    onToggle: (e: React.MouseEvent<HTMLButtonElement>) => void;\n}) {\n    const ref = useRef<HTMLButtonElement>(null);\n\n    const isDisabled = !isLoading && !hasChildren;\n\n    return (\n        <Button\n            ref={ref}\n            {...props}\n            quiet\n            variant=\"secondary\"\n            icon={isExpanded ? <IconChevronDown size=\"XS\" /> : <IconChevronRight size=\"XS\" />}\n            style={{\n                opacity: !isLoading && !hasChildren ? 0 : 1,\n            }}\n            className={classnames('cdo-hierarchy-expand-toggle', {\n                'cdo-hierarchy-loading': isLoading,\n            })}\n            disabled={isDisabled}\n            tabIndex={-1}\n            onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n                e.stopPropagation();\n                if (!isDisabled) {\n                    onToggle(e);\n                }\n            }}\n        />\n    );\n}\n\nexport default ExpandToggle;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nexport const HIERARCHY_ITEM_TOGGLE = 'hierarchy-item-toggle';\nexport const DATA_ID_ATTRIBUTE = 'data-id';\n\n/**\n * A flattened representation of a hierarchical item. Children should reference their\n * parent item using `parentId`. In a list of items, children directly follow their parent.\n */\nexport interface IHierarchyItem {\n    /** The ID of the item */\n    id: string;\n    /** The hierarchy level for indentation */\n    level: number;\n    /** The ID of the parent item */\n    parentId?: string;\n    /** Whether this item has children */\n    hasChildren: boolean;\n    /** Whether this item is currently loading */\n    isLoading: boolean;\n    /** Whether this item is selected */\n    isSelected: boolean;\n}\n\n/**\n * A function that renders an individual hierarchical item; called by the virtualized list\n * to render each item in the list when it is visible in the viewport.\n */\nexport type HierarchyItemRenderFunction<TItem extends IHierarchyItem> = (\n    item: TItem,\n    isExpanded: boolean,\n) => React.ReactNode;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { HIERARCHY_ITEM_TOGGLE, type IHierarchyItem } from './HierarchyListTypes';\n\nexport class ToggleHierarchyItemEvent<TItem extends IHierarchyItem> extends CustomEvent<TItem> {\n    constructor(item: TItem, bubbles: boolean = true, cancelable: boolean = false) {\n        super(HIERARCHY_ITEM_TOGGLE, { detail: item, bubbles, cancelable });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport React, { type ComponentProps } from 'react';\nimport type { IHierarchyItem } from './HierarchyListTypes';\nimport ExpandToggle from './ExpandToggle';\nimport { ToggleHierarchyItemEvent } from './ToggleHierarchyItemEvent';\nimport { FOCUS_ITEM_CLASS } from '../../utils/constants';\n\nexport interface HierarchyListItemProps<TItem extends IHierarchyItem> {\n    children: (item: TItem, isExpanded: boolean) => React.ReactNode;\n    item: TItem;\n    setSize?: number;\n    posInSet?: number;\n    isExpanded?: boolean;\n    tabIndex: number;\n    onClick?: (item: TItem, e: React.MouseEvent) => void;\n    onFocus?: (item: TItem, e: React.FocusEvent) => void;\n    onMouseEnter?: (item: TItem, e: React.MouseEvent) => void;\n}\n\nfunction HierarchyListItem<TItem extends IHierarchyItem>({\n    children,\n    item,\n    setSize,\n    posInSet,\n    tabIndex,\n    isExpanded,\n    onClick,\n    onFocus,\n    onMouseEnter,\n    ...divProps\n}: ComponentProps<'div'> & HierarchyListItemProps<TItem>) {\n    return (\n        <div\n            {...divProps}\n            className={classnames(\n                'cdo-hierarchy-item',\n                {\n                    'cdo-hierarchy-expanded': isExpanded,\n                    'cdo-hierarchy-has-children': item.hasChildren,\n                    'cdo-hierarchy-loading': item.isLoading,\n                    'cdo-hierarchy-selected': item.isSelected,\n                },\n                FOCUS_ITEM_CLASS,\n            )}\n            style={\n                {\n                    '--hierarchy-level': item.level,\n                } as React.CSSProperties\n            }\n            onClick={(e) => onClick?.(item, e)}\n            role=\"treeitem\"\n            aria-level={item.level + 1}\n            aria-posinset={posInSet}\n            aria-setsize={setSize}\n            aria-selected={item.isSelected ? 'true' : 'false'}\n            aria-labelledby={`cdo-hierarchy-item-${item.id}`}\n            tabIndex={tabIndex}\n            onFocus={(e) => onFocus?.(item, e)}\n            onMouseEnter={(e) => onMouseEnter?.(item, e)}\n        >\n            <div className=\"cdo-hierarchy-content\">\n                <ExpandToggle\n                    hasChildren={item.hasChildren}\n                    isExpanded={isExpanded}\n                    isLoading={item.isLoading}\n                    aria-describedby={`cdo-hierarchy-item-${item.id}`}\n                    aria-expanded={isExpanded ? 'true' : 'false'}\n                    onToggle={(e) => {\n                        e.target.dispatchEvent(new ToggleHierarchyItemEvent(item, true, false));\n                    }}\n                />\n                <div id={`cdo-hierarchy-item-${item.id}`}>{children(item, isExpanded)}</div>\n            </div>\n        </div>\n    );\n}\n\nexport default observer(HierarchyListItem);\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, {\n    useState,\n    useEffect,\n    useRef,\n    useMemo,\n    useCallback,\n    type ComponentProps,\n} from 'react';\nimport { observer } from 'mobx-react';\nimport { List } from 'react-virtualized';\nimport type { ListRowProps } from 'react-virtualized';\nimport classnames from 'classnames';\nimport throttle from 'lodash-es/throttle';\nimport { MINIMUM_ACCEPTED_TIMEOUT } from '../../utils/constants';\nimport HierarchyListItem from './HierarchyListItem';\nimport '../../styles/HierarchyList.css';\nimport type { ToggleHierarchyItemEvent } from './ToggleHierarchyItemEvent';\nimport {\n    HIERARCHY_ITEM_TOGGLE,\n    type HierarchyItemRenderFunction,\n    type IHierarchyItem,\n} from './HierarchyListTypes';\n\nconst DATA_INDEX_ATTRIBUTE = 'data-index';\n\ninterface IListProps extends ComponentProps<'div'> {\n    /** Height of the hierarchy list container */\n    height: number;\n    /** Default row height */\n    defaultRowHeight?: number;\n    /** Custom class name */\n    className?: string;\n    /** Enable keyboard navigation */\n    keyboardNavigationEnabled?: boolean;\n}\n\ninterface IHierarchyListProps<TItem extends IHierarchyItem> extends IListProps {\n    /** items to display (generic type) */\n    items: TItem[];\n    /** Render function for each row - takes full control of row rendering */\n    children?: HierarchyItemRenderFunction<TItem>;\n    /** Callback when an item is clicked - receives source item */\n    onItemClick?: (item: TItem) => void;\n    /** Callback when an item is expanded - receives source item */\n    onItemExpand?: (item: TItem, isExpanded: boolean) => void;\n}\n\n/**\n * A virtualized list of flattened hierarchical items.\n */\nfunction HierarchyList<TItem extends IHierarchyItem>({\n    height,\n    items,\n    defaultRowHeight = 44,\n    children,\n    onItemClick,\n    onItemExpand,\n    keyboardNavigationEnabled = false,\n    className,\n    'aria-label': ariaLabel,\n    ...divProps\n}: IHierarchyListProps<TItem>) {\n    const containerRef = useRef<HTMLDivElement>(null);\n    const listRef = useRef<List>(null);\n    const [expandedItems, setExpandedItems] = useState<{ [key: string]: boolean }>({});\n    const [focusedIndex, setFocusedIndex] = useState(-1);\n\n    const [width, setWidth] = useState(0);\n\n    const throttledSetWidth = useMemo(() => {\n        return throttle((newWidth: number) => {\n            setWidth(newWidth);\n        }, MINIMUM_ACCEPTED_TIMEOUT);\n    }, []);\n\n    const handleResize = useCallback(() => {\n        if (containerRef.current) {\n            const { width: newWidth } = containerRef.current.getBoundingClientRect();\n            throttledSetWidth(newWidth);\n        }\n    }, [throttledSetWidth]);\n\n    useEffect(() => {\n        window.addEventListener('resize', handleResize);\n        return () => window.removeEventListener('resize', handleResize);\n    }, [handleResize]);\n\n    const visibleItems = useMemo(() => {\n        const filtered = items.filter((item) => {\n            if (!item.parentId) {\n                return true;\n            }\n\n            // only when all the parents are expanded\n            let currentItem = item;\n            while (currentItem?.parentId) {\n                if (!expandedItems[currentItem.parentId]) {\n                    return false;\n                }\n                currentItem = items.find((parent) => parent.id === currentItem.parentId);\n            }\n            return true;\n        });\n\n        return filtered;\n    }, [items, expandedItems]);\n\n    const getCurrentFocusedIndex = useCallback((): number => {\n        const activeElement = document.activeElement as HTMLElement;\n        if (containerRef.current?.contains(activeElement)) {\n            try {\n                return parseInt(activeElement.getAttribute(DATA_INDEX_ATTRIBUTE) ?? '-1', 10);\n            } catch {\n                return -1;\n            }\n        }\n        return -1;\n    }, []);\n\n    const toggleExpansion = useCallback(\n        (item: TItem) => {\n            const itemId = item.id;\n\n            setExpandedItems((prev) => {\n                const wasExpanded = prev[itemId];\n                const newExpandedItems = { ...prev };\n                if (wasExpanded) {\n                    delete newExpandedItems[itemId];\n                    onItemExpand?.(item, false);\n                } else {\n                    newExpandedItems[itemId] = true;\n                    onItemExpand?.(item, true);\n                }\n                return newExpandedItems as { [key: string]: boolean };\n            });\n        },\n        [onItemExpand],\n    );\n\n    const focusItemAtIndex = useCallback((index: number) => {\n        if (containerRef.current && index >= 0) {\n            const elements = containerRef.current.querySelectorAll('.cdo-hierarchy-item');\n            const targetItem = Array.from(elements).find((element) => {\n                return element.getAttribute(DATA_INDEX_ATTRIBUTE) === index.toString();\n            });\n\n            if (targetItem instanceof HTMLElement) {\n                targetItem.focus();\n            } else {\n                setFocusedIndex(index);\n            }\n            listRef.current?.scrollToRow(index);\n        }\n    }, []);\n\n    const handleFocus = useCallback(\n        (e: React.FocusEvent) => {\n            e.preventDefault();\n\n            // When focus lands on the tree, shift the focus to the appropriate item\n            if (e.target === e.currentTarget) {\n                const currentFocusedIndex = getCurrentFocusedIndex();\n                const currentItem = visibleItems[currentFocusedIndex];\n\n                if (currentItem) {\n                    return;\n                }\n\n                // If one or more nodes are selected before the tree receives focus, focus is set on the first selected node.\n                const selectedItem = visibleItems.find((item) => item.isSelected);\n                if (selectedItem) {\n                    const index = visibleItems.findIndex((item) => item.id === selectedItem.id);\n                    focusItemAtIndex(index);\n                } else if (currentFocusedIndex === -1) {\n                    // If none of the nodes are selected before the tree receives focus, focus is set on the first node.\n                    focusItemAtIndex(0);\n                }\n            }\n        },\n        [getCurrentFocusedIndex, visibleItems, focusItemAtIndex],\n    );\n\n    const handleKeyDown = useCallback(\n        (e: React.KeyboardEvent) => {\n            if (visibleItems.length === 0) {\n                return;\n            }\n\n            const currentFocusedIndex = getCurrentFocusedIndex();\n            const currentItem = visibleItems[currentFocusedIndex];\n\n            switch (e.key) {\n                case 'ArrowUp': {\n                    e.preventDefault();\n                    const currentUpIndex = getCurrentFocusedIndex();\n\n                    if (currentUpIndex > 0) {\n                        const newIndex = currentUpIndex - 1;\n                        focusItemAtIndex(newIndex);\n                    }\n                    break;\n                }\n\n                case 'ArrowDown': {\n                    e.preventDefault();\n                    const currentDownIndex = getCurrentFocusedIndex();\n                    if (currentDownIndex < visibleItems.length) {\n                        const newIndex = currentDownIndex + 1;\n                        focusItemAtIndex(newIndex);\n                    }\n                    break;\n                }\n\n                case 'ArrowRight': {\n                    e.preventDefault();\n                    if (!currentItem.isLoading) {\n                        if (currentItem.hasChildren) {\n                            if (expandedItems[currentItem.id]) {\n                                // When focus is on a open node, moves focus to the first child node.\n                                focusItemAtIndex(\n                                    visibleItems.findIndex((item) => item.id === currentItem.id) +\n                                        1,\n                                );\n                            } else {\n                                // When focus is on a closed node, opens the node; focus does not move.\n                                void toggleExpansion(currentItem);\n                            }\n                        }\n                    }\n                    // When focus is on an end node, does nothing.\n                    break;\n                }\n                case 'ArrowLeft':\n                    e.preventDefault();\n                    if (currentItem.hasChildren && expandedItems[currentItem.id]) {\n                        // Collapse the node\n                        void toggleExpansion(currentItem);\n                    } else if (currentItem.level > 0) {\n                        // Move to parent\n                        if (currentItem.parentId) {\n                            const parentIndex = items.findIndex(\n                                (item) => item.id === currentItem.parentId,\n                            );\n                            focusItemAtIndex(parentIndex);\n                        }\n                    }\n                    break;\n\n                case 'Enter':\n                    e.preventDefault();\n                    toggleExpansion(currentItem);\n                    break;\n\n                case ' ':\n                    e.preventDefault();\n                    if (onItemClick) {\n                        onItemClick(currentItem);\n                    }\n                    break;\n\n                case 'Home':\n                    e.preventDefault();\n                    focusItemAtIndex(0);\n                    break;\n\n                case 'End':\n                    e.preventDefault();\n                    {\n                        const lastIndex = visibleItems.length - 1;\n                        focusItemAtIndex(lastIndex);\n                    }\n                    break;\n            }\n        },\n        [\n            visibleItems,\n            getCurrentFocusedIndex,\n            expandedItems,\n            toggleExpansion,\n            onItemClick,\n            focusItemAtIndex,\n            items,\n        ],\n    );\n\n    useEffect(() => {\n        if (keyboardNavigationEnabled && getCurrentFocusedIndex() >= items.length) {\n            const newIndex = Math.max(0, items.length - 1);\n            focusItemAtIndex(newIndex);\n        }\n    }, [items, getCurrentFocusedIndex, keyboardNavigationEnabled, focusItemAtIndex]);\n\n    const handleItemClick = useCallback(\n        (item: TItem) => {\n            if (onItemClick) {\n                onItemClick(item);\n            }\n        },\n        [onItemClick],\n    );\n\n    const reactVirtualizedRowRenderer = useCallback(\n        ({ index, key, style }: ListRowProps) => {\n            const item = visibleItems[index];\n            if (!item) {\n                return null;\n            }\n\n            let setSize = 0;\n            let posInSet = 0;\n            for (\n                let i = visibleItems.findIndex((i) => i.id === item.id) + 1;\n                i < visibleItems.length;\n                i++\n            ) {\n                const currentItem = visibleItems[i];\n                if (currentItem.parentId === item.parentId) {\n                    setSize++;\n                    if (currentItem.id === item.id) {\n                        posInSet = setSize;\n                    }\n                } else if (currentItem.level > item.level) {\n                    continue;\n                } else {\n                    break;\n                }\n            }\n\n            return (\n                <div key={key} className=\"cdo-hierarchy-list-row\" style={style}>\n                    <HierarchyListItem\n                        item={item}\n                        isExpanded={expandedItems[item.id]}\n                        setSize={setSize}\n                        posInSet={posInSet}\n                        data-index={index}\n                        tabIndex={keyboardNavigationEnabled ? getCurrentFocusedIndex() : -1}\n                        onClick={() => handleItemClick(item)}\n                    >\n                        {(item, isExpanded) => children(item, isExpanded)}\n                    </HierarchyListItem>\n                </div>\n            );\n        },\n        [\n            visibleItems,\n            expandedItems,\n            keyboardNavigationEnabled,\n            getCurrentFocusedIndex,\n            children,\n            handleItemClick,\n        ],\n    );\n\n    const handleRowsRendered = useCallback(\n        ({ startIndex, stopIndex }: { startIndex: number; stopIndex: number }) => {\n            // If we have a pending focus and the target row is now visible\n            if (focusedIndex !== null && focusedIndex >= startIndex && focusedIndex <= stopIndex) {\n                // Focus the item on next frame\n                requestAnimationFrame(() => {\n                    if (containerRef.current) {\n                        const elements =\n                            containerRef.current.querySelectorAll('.cdo-hierarchy-item');\n                        const targetElement = Array.from(elements).find((element) => {\n                            return (\n                                element.getAttribute(DATA_INDEX_ATTRIBUTE) ===\n                                focusedIndex.toString()\n                            );\n                        });\n\n                        if (targetElement instanceof HTMLElement) {\n                            targetElement.focus();\n                            setFocusedIndex(-1);\n                        }\n                    }\n                });\n            }\n        },\n        [containerRef, focusedIndex],\n    );\n\n    useEffect(() => {\n        const measureInitialWidth = () => {\n            if (containerRef.current) {\n                const { width: initialWidth } = containerRef.current.getBoundingClientRect();\n                setWidth(initialWidth);\n            }\n        };\n\n        measureInitialWidth();\n\n        const timeoutId = setTimeout(measureInitialWidth, 100);\n\n        return () => clearTimeout(timeoutId);\n    }, []);\n\n    useEffect(() => {\n        const container = containerRef.current;\n        if (!container) {\n            return;\n        }\n\n        const handleToggleExpansion = (event: Event) => {\n            const customEvent = event as ToggleHierarchyItemEvent<TItem>;\n            const item = customEvent.detail;\n\n            if (!item) {\n                return;\n            }\n\n            toggleExpansion(item);\n        };\n\n        container.addEventListener(HIERARCHY_ITEM_TOGGLE, handleToggleExpansion);\n\n        return () => {\n            container.removeEventListener(HIERARCHY_ITEM_TOGGLE, handleToggleExpansion);\n        };\n    }, [toggleExpansion]);\n\n    return (\n        <div\n            ref={containerRef}\n            className={classnames('cdo-hierarchy-list', className)}\n            style={{ height }}\n            onKeyDown={keyboardNavigationEnabled ? handleKeyDown : undefined}\n            onFocus={handleFocus}\n            tabIndex={keyboardNavigationEnabled ? 0 : -1}\n            {...divProps}\n        >\n            <List\n                ref={listRef}\n                width={width}\n                height={height}\n                rowCount={visibleItems.length}\n                rowHeight={defaultRowHeight}\n                rowRenderer={reactVirtualizedRowRenderer}\n                overscanRowCount={5}\n                tabIndex={-1}\n                containerStyle={{\n                    overflowX: 'auto',\n                }}\n                role=\"tree\"\n                containerRole=\"\"\n                aria-label={ariaLabel}\n                onRowsRendered={handleRowsRendered}\n            />\n        </div>\n    );\n}\n\nexport default observer(HierarchyList);\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { ActionArgs, OptionalActionArgs } from './utils/action';\nimport Action, {\n    DEFAULT_CORESYNCDOWN_DISABLED_TOOLTIP_MSG_ID,\n    DEFAULT_DISABLED_TOOLTIP_MSG_ID,\n    UsageMetricPhase,\n} from './utils/action';\nimport ActionButton from './components/ActionButton';\nimport ActionMenu from './components/ActionMenu';\nimport BackButton from './components/BackButton';\nimport BetaTag from './components/BetaTag';\nimport Busy from './components/Busy';\nimport type {\n    ICDOViewProps,\n    IShouldRenderItemAsDisabled,\n    IOnSelectionChange,\n    IOnFolderActionClick,\n    IOnActionBarClick,\n    IItemsActionClick,\n    IActionClick,\n    ICollectionViewProps,\n} from './components/CDOView';\nimport CDOView, { CDOViewForTests } from './components/CDOView';\nimport type {\n    IAnalyticsData,\n    ICollectionViewMetrics,\n    IItemViewMetric,\n    IUsageMetricLogger,\n    IUsageMetricOptions,\n    IAnalyticsOptions,\n} from './types/CollectionViewMetrics';\nimport { ItemViewEventType, EventType, MenuType, Workflow } from './types/CollectionViewMetrics';\nimport type {\n    IPaginationProps,\n    IGridItemPlaceholderProps,\n    IListItemPlaceholderProps,\n} from './types/ICommonCollectionViewProps';\nimport type ICommonCollectionViewProps from './types/ICommonCollectionViewProps';\nimport DragState from './stores/DragState';\nimport type { AnyDragEvent, IDropTargetData } from './utils/drag-utils';\nimport {\n    DragSource,\n    CV_DRAG_MIMETYPE,\n    CV_DROP_PATH_ATTR,\n    CV_DROP_CONTEXT_ATTR,\n    CV_DROP_INDEX_ATTR,\n    getDragSource,\n    getDropTargetData,\n    isCVDragEvent,\n} from './utils/drag-utils';\nimport deriveParentPath from './utils/derive-parent-path';\nimport type { IEmptyProps, IEmptyViewProps, EmptyViewButton } from './components/EmptyView';\nimport EmptyView from './components/EmptyView';\nimport EmptyFilterView from './components/svgs/EmptyFilterView';\nimport ErrorBoundary from './components/ErrorBoundary';\nimport ensureFocusOnItems from './utils/ensure-focus-on-items';\nimport FocusManager from './thirdparty/FocusManager';\nimport type { IFilter } from './types/IFilter';\nimport type { IGridItemProps } from './components/GridItem';\nimport GridItem from './components/GridItem';\nimport type { IGridViewProps, ICardSize } from './components/GridView';\nimport GridView, { COMMON_CARD_SIZES, CardSize } from './components/GridView';\nimport getExtendSelectionMode from './utils/get-extend-selection-mode';\nimport type ICollectionItem from './types/ICollectionItem';\nimport type { ILaunchDocInfo } from './utils/launch-item';\nimport ImageView from './components/ImageView';\nimport type { IListItemProps } from './components/ListItem';\nimport ListItem, { renderDateColumn } from './components/ListItem';\nimport type { IListViewProps, ListViewColumn, IListViewCustomColumn } from './components/ListView';\nimport ListView, { Column, ColumnType } from './components/ListView';\nimport type IMenuItem from './types/IMenuItem';\nimport normalizePath from './utils/normalize-path';\nimport type { OperationStoreType } from './stores/OperationStore';\nimport { OperationStore } from './stores/OperationStore';\nimport type {\n    IOnRenameSubmit,\n    IRenameController,\n    IOnRenameCancel,\n    IRenameValidator,\n} from './components/Rename';\nimport Rename from './components/Rename';\nimport RenameAction from './utils/actions/RenameAction';\nimport SelectAction from './utils/actions/SelectAction';\nimport type { IReadOnlySelectionStore, ISelectionStore } from './stores/SelectionStore';\nimport SelectionStore, { ExtendSelectionMode } from './stores/SelectionStore';\nimport type ISelectionBehavior from './types/ISelectionBehavior';\nimport sleep from './utils/sleep';\nimport ScrollContainer from './components/ScrollContainer';\nimport type { IViewItemProps, IViewItemState, MetadataFormat } from './components/ViewItem';\nimport ViewItem, { DateMetadata } from './components/ViewItem';\nimport ViewItemIcon from './components/ViewItemIcon';\nimport ViewToggles from './components/ViewToggles';\nimport {\n    fileNameValidator,\n    ValidationStatus,\n    ReactSpectrumValidationState,\n    VALIDATION_INVALID_CHARS,\n} from './utils/validate-filename';\nimport * as scrollBarModule from './utils/scrollbar-measurer';\nimport * as MockedDragUtils from './utils/drag-utils';\nimport WindowScrollerProvider from './components/WindowScrollerProvider';\nimport { Themes } from '@csc/common';\nimport type { FilterType, CDORootPathType } from './utils/constants';\nimport {\n    ARCHIVE_FOLDER_PATH,\n    ModeType,\n    MIMETYPES,\n    REVIEW_LINKS_PATH,\n    ROOT_FOLDER_PATH,\n    RLFilterDisplayNames,\n    RLSupportedFilterOptions,\n    SWYFilterDisplayNames,\n    SWYSupportedFilterOptions,\n    SHARED_WITH_YOU_PATH,\n    ViewMode,\n    TOAST_DEFAULT_DELAY,\n    TOAST_ERROR_DELAY,\n    TOAST_EXCEEDED_QUOTA_DELAY,\n    DEFAULT_TOOLTIP_DELAY,\n    ProcessingState,\n    UXSortBy,\n    UXSortDir,\n} from './utils/constants';\nimport type { ISelectionManager, ISelectionUXConfig } from './types/ISelectionManager';\nimport type { IToastConfig, AddToastFn } from './stores/ToastStore';\nimport { ToastStore } from './stores/ToastStore';\nimport MultiSelectionManager from './utils/selectionManagers/MultiSelectionManager';\nimport SingleSelectionManager from './utils/selectionManagers/SingleSelectionManager';\nimport { importMessages, isSupportedLocale } from './utils/i18n';\nimport { Subscribable } from './utils/Subscribable';\nimport { selectUnit } from './utils/relativeDateTimeUtils';\nimport { Logger } from './utils/Logger';\nimport type { ICollectionViewContext } from './contexts/CollectionViewContext';\nimport useCollectionViewContext, { CVContextProvider } from './contexts/CollectionViewContext';\nimport './styles.css';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport type { IHierarchyItem } from './components/HierarchyList/HierarchyListTypes';\nimport HierarchyList from './components/HierarchyList/HierarchyList';\n\nconst ClickSelectType = AssetBrowser.CDO.ClickSelectType;\n\nexport {\n    useCollectionViewContext,\n    CVContextProvider,\n    ARCHIVE_FOLDER_PATH,\n    Logger,\n    Action,\n    ActionButton,\n    ActionMenu,\n    BackButton,\n    BetaTag,\n    Busy,\n    CardSize,\n    CDOView,\n    CDOView as CollectionView,\n    CDOViewForTests,\n    Column,\n    ColumnType,\n    COMMON_CARD_SIZES,\n    CV_DRAG_MIMETYPE,\n    CV_DROP_PATH_ATTR,\n    CV_DROP_CONTEXT_ATTR,\n    CV_DROP_INDEX_ATTR,\n    ClickSelectType,\n    DateMetadata,\n    DragState,\n    DragSource,\n    deriveParentPath,\n    DEFAULT_CORESYNCDOWN_DISABLED_TOOLTIP_MSG_ID,\n    DEFAULT_DISABLED_TOOLTIP_MSG_ID,\n    DEFAULT_TOOLTIP_DELAY,\n    EmptyFilterView,\n    EmptyView,\n    ErrorBoundary,\n    EventType,\n    ExtendSelectionMode,\n    ensureFocusOnItems,\n    fileNameValidator,\n    FocusManager,\n    getDragSource,\n    GridItem,\n    GridView,\n    getDropTargetData,\n    getExtendSelectionMode,\n    ItemViewEventType,\n    ImageView,\n    ListItem,\n    MenuType,\n    MIMETYPES,\n    MultiSelectionManager,\n    ModeType,\n    MockedDragUtils,\n    normalizePath,\n    importMessages,\n    isSupportedLocale,\n    isCVDragEvent,\n    ListView,\n    OperationStore,\n    ProcessingState,\n    Rename,\n    RenameAction,\n    ReactSpectrumValidationState,\n    renderDateColumn,\n    REVIEW_LINKS_PATH,\n    ROOT_FOLDER_PATH,\n    RLFilterDisplayNames,\n    RLSupportedFilterOptions,\n    SWYFilterDisplayNames,\n    SWYSupportedFilterOptions,\n    ScrollContainer,\n    scrollBarModule,\n    SelectionStore,\n    SelectAction,\n    SingleSelectionManager,\n    SHARED_WITH_YOU_PATH,\n    sleep,\n    Subscribable,\n    Themes,\n    TOAST_DEFAULT_DELAY,\n    TOAST_ERROR_DELAY,\n    TOAST_EXCEEDED_QUOTA_DELAY,\n    ToastStore,\n    UsageMetricPhase,\n    ValidationStatus,\n    VALIDATION_INVALID_CHARS,\n    ViewItem,\n    ViewItemIcon,\n    ViewToggles,\n    Workflow,\n    WindowScrollerProvider,\n    UXSortBy,\n    UXSortDir,\n    ViewMode,\n    selectUnit,\n    HierarchyList,\n};\nexport type {\n    ICollectionViewContext,\n    ActionArgs,\n    AddToastFn,\n    AnyDragEvent,\n    IActionClick,\n    IAnalyticsData,\n    IAnalyticsOptions,\n    ICardSize,\n    CDORootPathType,\n    ICDOViewProps,\n    ICollectionViewProps,\n    ICollectionItem,\n    ICollectionViewMetrics,\n    ICommonCollectionViewProps,\n    IDropTargetData,\n    IEmptyProps,\n    IEmptyViewProps,\n    EmptyViewButton,\n    IFilter,\n    FilterType,\n    IGridItemProps,\n    IGridItemPlaceholderProps,\n    IGridViewProps,\n    IHierarchyItem,\n    IItemsActionClick,\n    IItemViewMetric,\n    ILaunchDocInfo,\n    IListItemProps,\n    IListItemPlaceholderProps,\n    IMenuItem,\n    IOnRenameSubmit,\n    IOnRenameCancel,\n    IPaginationProps,\n    IRenameController,\n    IRenameValidator,\n    IReadOnlySelectionStore,\n    IOnFolderActionClick,\n    IOnActionBarClick,\n    IOnSelectionChange,\n    ISelectionManager,\n    ISelectionUXConfig,\n    ISelectionStore,\n    ISelectionBehavior,\n    IShouldRenderItemAsDisabled,\n    IToastConfig,\n    IUsageMetricLogger,\n    IUsageMetricOptions,\n    IViewItemProps,\n    IViewItemState,\n    IListViewCustomColumn,\n    IListViewProps,\n    ListViewColumn,\n    MetadataFormat,\n    OperationStoreType,\n    OptionalActionArgs,\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2018 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IntlShape } from 'react-intl';\nimport type { FireflySupportedLocale, MessageLoader } from '@csc/common';\nconst DEFAULT_LANGUAGE = 'en';\n\nimport type Messages from '../../locale/en.json';\n\nexport type LocaleMessages = typeof Messages;\nexport type LocaleKey = keyof LocaleMessages;\n\nexport type SupportedLocale = FireflySupportedLocale;\n\nconst MESSAGE_LOADERS: Record<SupportedLocale, MessageLoader> = {\n    en: () => import('../../locale/en.json'),\n    bn: () => import('../../locale/bn.json'),\n    cs: () => import('../../locale/cs.json'),\n    cy: () => import('../../locale/cy.json'),\n    da: () => import('../../locale/da.json'),\n    de: () => import('../../locale/de.json'),\n    el: () => import('../../locale/el.json'),\n    es: () => import('../../locale/es.json'),\n    fi: () => import('../../locale/fi.json'),\n    fil: () => import('../../locale/fil.json'),\n    fr: () => import('../../locale/fr.json'),\n    hi: () => import('../../locale/hi.json'),\n    hu: () => import('../../locale/hu.json'),\n    id: () => import('../../locale/id.json'),\n    it: () => import('../../locale/it.json'),\n    ja: () => import('../../locale/ja.json'),\n    ko: () => import('../../locale/ko.json'),\n    ms: () => import('../../locale/ms.json'),\n    nb: () => import('../../locale/nb.json'),\n    nl: () => import('../../locale/nl.json'),\n    pl: () => import('../../locale/pl.json'),\n    pt: () => import('../../locale/pt.json'),\n    ro: () => import('../../locale/ro.json'),\n    ru: () => import('../../locale/ru.json'),\n    sv: () => import('../../locale/sv.json'),\n    ta: () => import('../../locale/ta.json'),\n    th: () => import('../../locale/th.json'),\n    tr: () => import('../../locale/tr.json'),\n    uk: () => import('../../locale/uk.json'),\n    vi: () => import('../../locale/vi.json'),\n    'zh-Hans': () => import('../../locale/zh-Hans.json'),\n    'zh-Hant': () => import('../../locale/zh-Hant.json'),\n    zu: () => import('../../locale/zu.json'),\n    zz: () => import('../../locale/zz.json'),\n};\n\nexport function isSupportedLocale(locale: string): locale is SupportedLocale {\n    return SUPPORTED_LOCALES.includes(locale);\n}\n\nexport const SUPPORTED_LOCALES = Object.keys(MESSAGE_LOADERS);\n\nexport const importMessages = async (locale: SupportedLocale): Promise<Record<string, string>> => {\n    let loader = MESSAGE_LOADERS[locale];\n\n    if (!loader) {\n        console.warn('Unsupported locale', locale, \"falling back to 'en'\");\n        loader = MESSAGE_LOADERS.en;\n    }\n\n    try {\n        const messages = await loader();\n        return (messages as { default: LocaleMessages }).default;\n    } catch (e) {\n        console.error('[collection-view] failed to load locale:', locale, e);\n        // UI will fallback to locale IDs\n        return {};\n    }\n};\n\nconst APP_LOCALE_REMAPPING_TABLE: { [key: string]: string } = {\n    fil: 'fil',\n    fil_ph: 'fil',\n    zh_cn: 'zh-Hans',\n    zh_tw: 'zh-Hant',\n    // If a new locale with hyphens is supported earlier in this list, it must also have\n    // an entry in this table with the '_' below.  NormalizedLocale converts\n    // the locale to have an '_' and then searches this list\n    // and if not found truncates the locale to two letters.\n    // Otherwise zh-Hans could get clipped to be zh\n    // and there is no zh locale support at this time.\n    zh_hans: 'zh-Hans',\n    zh_hant: 'zh-Hant',\n};\n\nclass I18NCollectionView {\n    static async getLazyStringsForLocale(locale: SupportedLocale): Promise<Record<string, string>> {\n        return await importMessages(locale);\n    }\n\n    static getSupportedSystemLocale(locale: string): string {\n        const languageCode = this.normalizeLocale(locale);\n        if (SUPPORTED_LOCALES.includes(languageCode)) {\n            return languageCode;\n        }\n        return DEFAULT_LANGUAGE;\n    }\n\n    /**\n     * Get the locale mapped to a supported one.\n     *\n     * @param {String} locale     locale specifier\n     * @return {String} with the remapped locale code if necessary.\n     */\n    static normalizeLocale(locale: string): SupportedLocale {\n        const lower = locale?.toLowerCase() ?? DEFAULT_LANGUAGE;\n        // CDO mainly supports two-character locales ('en', 'es', 'ru', etc) but also\n        // supports some hyphenated (flavored) locales ('zh-Hans', etc) and\n        // three-character locales ('fil', etc).\n        //\n        // react-intl appears to be using this standard\n        // https://www.unicode.org/reports/tr35/tr35.html#Identifiers\n        //\n        // Any unexpected variants of 'en' get mapped to 'en'.\n        // What isn't currently supported is truncating variants of\n        // hyphenated locales.  So if, per the standard, a locale is\n        // passed in like zh-Hant-HK it will not be normalized to\n        // zh-Hant\n        const remapped = APP_LOCALE_REMAPPING_TABLE[lower.replace(/-/g, '_')];\n\n        const normalized = remapped || lower.substr(0, 2);\n\n        // default to english in case of errors\n        if (!normalized || !normalized.length) {\n            return DEFAULT_LANGUAGE;\n        }\n        return normalized as SupportedLocale;\n    }\n\n    /**\n     * Get locale for external helpx/web links based on UI locale setting.\n     *\n     * @param {String} uiLocale       UI's language display\n     * @return {String} with the abbreviated locale id.\n     */\n    static getExternalLinkLocale(uiLocale: string): string {\n        // for Chinese variants, just set 'cn'\n        return uiLocale.startsWith('zh') ? 'cn' : this.getSupportedSystemLocale(uiLocale);\n    }\n\n    static isMessageDefined(intl: IntlShape, id: string): boolean {\n        return intl && Object.prototype.hasOwnProperty.call(intl.messages, id);\n    }\n\n    /**\n     * Returns product-specific message id if it exists, or the default id if it exists,\n     * or empty string if none exists.\n     *\n     * @param {IntlShape} intl\n     * @param {string} id\n     * @param {string} productId\n     * @returns {string} the message id, or empty string if none found\n     */\n    static getApplicationSpecificMsgId(intl: IntlShape, id: string, productId: string): string {\n        const productMsgId = `${id}.${productId.toLowerCase()}`;\n        if (I18NCollectionView.isMessageDefined(intl, productMsgId)) {\n            return productMsgId;\n        }\n        if (I18NCollectionView.isMessageDefined(intl, productMsgId)) {\n            return id;\n        }\n        return '';\n    }\n}\n\nlet internalForTests;\nif (process.env.NODE_ENV === 'test') {\n    internalForTests = {\n        SUPPORTED_LOCALES,\n    };\n}\nexport default I18NCollectionView;\nexport { internalForTests, MESSAGE_LOADERS };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nenum Themes {\n    light = 'light',\n    lightest = 'lightest',\n    dark = 'dark',\n    darkest = 'darkest',\n}\n\nexport default Themes;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type {\n    AssetBrowser,\n    IAUPSDK,\n    SharedContext,\n    SharedContextId,\n} from '@ccx-public/component-types';\n\nimport type ComponentLoaderInitOptions from '../../@types/ComponentLoaderInitOptions';\n\nclass SharedConfig {\n    config!: ComponentLoaderInitOptions;\n    cSdk?: IAUPSDK;\n    sharedContext?: SharedContext<AssetBrowser.ConfigSharedContextData>;\n\n    /**\n     * Lifecycle callback when connected\n     * @param {Object} config - configuration object\n     * @returns {undefined}\n     */\n    configure(config: ComponentLoaderInitOptions) {\n        const sharedConfig = this.sharedContext?.getContext() ?? {};\n        this.config = {\n            ...sharedConfig,\n            ...config,\n        };\n\n        window.dispatchEvent(new Event('uab-config-updated'));\n    }\n\n    private updateConfig = () => {\n        this.configure(this.config);\n    };\n\n    unsetSharedContext() {\n        if (this.sharedContext) {\n            this.sharedContext.off('change', this.updateConfig);\n            this.sharedContext = undefined;\n        }\n    }\n\n    async setSharedContext(contextId: SharedContextId<AssetBrowser.ConfigSharedContextData>) {\n        this.unsetSharedContext();\n\n        if (this.cSdk) {\n            this.sharedContext = await this.cSdk.getSharedContext(contextId);\n            this.sharedContext?.on('change', this.updateConfig);\n            this.updateConfig();\n        }\n    }\n}\n\nexport default new SharedConfig();\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useEffect, useState } from 'react';\n\nenum BREAKPOINT {\n    SMALL = 'S',\n}\n\nenum BREAKPOINT_WIDTHS {\n    'S' = 768,\n}\n\nconst getSize = (event): BREAKPOINT | undefined => {\n    return (event as MediaQueryListEvent).matches ? BREAKPOINT.SMALL : undefined;\n};\n\nconst mediaQuery = window.matchMedia?.(`(max-width: ${BREAKPOINT_WIDTHS.S}px)`);\n\n/**\n * Returns true if the screen width is less than or equal to 768px, otherwise false.\n * @returns true if the screen width is less than or equal to 768px, otherwise false\n */\n// this is for non functional components - basically mobile devices where we don't have to worry about state updates\nexport function isSmallBreakpoint() {\n    return mediaQuery?.matches || false;\n}\n\n/**\n * Indicates whether the viewport is currently at the SMALL\n * breakpoint (≤ 768 px).\n *\n * @returns {{ isSmallBreakpoint: boolean }} An object whose `isSmallBreakpoint`\n * property is `true` when the viewport width is ≤ 768 px, otherwise `false`.\n */\nfunction useBreakpoint(): { isSmallBreakpoint: boolean } {\n    const [breakpoint, setBreakpoint] = useState<BREAKPOINT | undefined>(() => {\n        return getSize(mediaQuery);\n    });\n\n    useEffect(() => {\n        const updateBreakpoint = () => {\n            setBreakpoint(getSize(mediaQuery));\n        };\n        mediaQuery.addEventListener('change', updateBreakpoint);\n\n        return () => {\n            mediaQuery.removeEventListener('change', updateBreakpoint);\n        };\n    }, [breakpoint]);\n\n    return { isSmallBreakpoint: breakpoint === BREAKPOINT.SMALL };\n}\n\nexport default useBreakpoint;\n","var e={d:(o,t)=>{for(var n in t)e.o(t,n)&&!e.o(o,n)&&Object.defineProperty(o,n,{enumerable:!0,get:t[n]})},o:(e,o)=>Object.prototype.hasOwnProperty.call(e,o)};(()=>{e.S={};var o={},t={};e.I=(n,r)=>{r||(r=[]);var i=t[n];if(i||(i=t[n]={}),!(r.indexOf(i)>=0)){if(r.push(i),o[n])return o[n];e.o(e.S,n)||(e.S[n]={}),e.S[n];var s=[];return o[n]=s.length?Promise.all(s).then((()=>o[n]=1)):1}}})();var o={};e.d(o,{e:()=>i,s:()=>a});const t={stage:{ACE:\"shared-components.stage.adobe.com\",PANDORA:\"pandora-cdn.stage.adobe.com\"},prod:{ACE:\"shared-components.adobe.com\",PANDORA:\"pandora-cdn.adobe.com\"}},n={AssetBrowser:{getURL:(e,o)=>`https://${t[e].ACE}/${r(\"asset-browser\",o)}/${o}/dist/remoteEntry.js`,scope:\"cc_asset_browser\",module:\"AssetBrowser\"},CCLibraries:{getURL:(e,o)=>`https://${t[e].ACE}/${r(\"libraries\",o)}/${o}/remoteEntry.js`,scope:\"cc_libraries\",module:\"CCLibraries\"},ColorPicker:{getURL:(e,o)=>`https://${t[e].ACE}/${r(\"color-picker\",o)}/${o}/dist/remoteEntry.js`,scope:\"ccx_color_picker\",module:\"ColorPicker\"},Commenting:{getURL:(e,o)=>`https://${t[e].ACE}/${r(\"commenting\",o)}/${o}/dist/remoteEntry.js`,scope:\"cc_commenting\",module:\"Commenting\"},NeuralFiltersRemoveBackground:{getURL:(e,o)=>`https://${t[e].ACE}/${r(\"nf-remove-background\",o)}/${o}/dist/remoteEntry.js`,scope:\"cc_neural_filters\",module:\"NeuralFiltersRemoveBackground\"},ShareSheet:{getURL:(e,o)=>`https://${t[e].ACE}/${r(\"share-sheet\",o)}/${o}/dist/remoteEntry.js`,scope:\"cc_share_sheet\",module:\"ShareSheet\"},Timeline:{getURL:(e,o)=>`https://${t[e].ACE}/${r(\"timeline\",o)}/${o}/remoteEntry.js`,scope:\"ccx_timeline\",module:\"Timeline\"},AccountMenuTrigger:{getURL:(e,o)=>`https://${t[e].PANDORA}/${r(\"web-component-account-menu-trigger\",o)}/${o}/loader/remoteEntry.js`,scope:\"pandora_web_component_account_menu_trigger\",module:\"AccountMenuTrigger\"},AccountMenuMiniApp:{getURL:(e,o)=>`https://${t[e].PANDORA}/${r(\"react-mini-app-account-menu\",o)}/${o}/loader/remoteEntry.js`,scope:\"pandora_react_mini_app_account_menu\",module:\"AccountMenuMiniApp\"}};function r(e,o){return function(e){return e.endsWith(\".pr\")||e.includes(\"-main-\")||e.includes(\"-dev-\")}(o)?`${e}_PR`:e}const i=\"__component_loader_override__\";\"undefined\"==typeof window||window[i]||(window[i]=new class{constructor(e={}){this._overrides=e}get(e){var o;const t=null===(o=this._getLocalStorageOverrides())||void 0===o?void 0:o[e];return t&&(this._overrides[e]=t),this._overrides[e]||null}set(e,o){this._overrides[e]=o;const t=this._getLocalStorageOverrides()||{};null===localStorage||void 0===localStorage||localStorage.setItem(i,JSON.stringify(Object.assign(Object.assign({},t),{[e]:o})))}remove(e){delete this._overrides[e];const o=this._getLocalStorageOverrides();o&&o[e]&&(delete o[e],null===localStorage||void 0===localStorage||localStorage.setItem(i,JSON.stringify(o)))}clear(){this._overrides={},null===localStorage||void 0===localStorage||localStorage.removeItem(i)}_getLocalStorageOverrides(){const e=null===localStorage||void 0===localStorage?void 0:localStorage.getItem(i);return e?JSON.parse(e):null}});const s={config:{},cdnEnvironment:\"prod\"};class a{constructor(e=s){this._options=e,this._scriptLoadingPromises=new Map,this._scopeLoadingPromises=new Map,this._loadedModulePromises=new Map,this._config=this._options.config||{}}_loadScript(e){if(!this._scriptLoadingPromises.has(e)){const o=document.createElement(\"script\");o.src=e,o.type=\"text/javascript\",o.async=!0,o.setAttribute(\"crossorigin\",\"anonymous\"),this._scriptLoadingPromises.set(e,new Promise(((t,n)=>(o.onload=()=>t(),o.onerror=()=>{this._scopeLoadingPromises.delete(e),n(`Failed to load ${e}`)},document.head.appendChild(o),o))))}return this._scriptLoadingPromises.get(e)}_loadRemoteContainer(o,t){const n=`${o}#${t}`;if(!this._scopeLoadingPromises.has(n)){const r=async()=>{await this._loadScript(o),await e.I(\"default\"),window.sharingscopes=e.S.default;const n=window[t];if(!n)throw new Error(`Could not find scope ${t}: this must match your ModuleFederationPlugin 'name'`);return await n.init(e.S.default),n};this._scopeLoadingPromises.set(n,r())}return this._scopeLoadingPromises.get(n)}get _cdnEnvironment(){return this._options.cdnEnvironment||\"prod\"}_getModuleConfig(e,o){var t;const r=n[e],s=null===(t=window[i])||void 0===t?void 0:t.get(e);if(\"string\"==typeof s)return Object.assign(Object.assign({},r),{getURL:()=>s});if(\"object\"==typeof s){const e=(null==s?void 0:s.version)||o,t=(null==s?void 0:s.cdnEnvironment)||this._cdnEnvironment;return Object.assign(Object.assign({},r),{getURL:()=>r.getURL(t,e)})}return r}_isUrl(e){return e.startsWith(\"http\")}async load(e,o,t={}){var n,r,i,s,a;(null===(n=window.performance)||void 0===n?void 0:n.mark)&&window.performance.mark(`component-loader:load:${e}:begin`);const c=`${e}#${o}`;let d=this._loadedModulePromises.get(c);if(d)(null===(s=window.performance)||void 0===s?void 0:s.mark)&&window.performance.mark(`component-loader:load:${e}:eval`);else{const n=this._getModuleConfig(e,o),s=this._isUrl(o)?o:n.getURL(this._cdnEnvironment,o),a=n.scope,l=await this._loadRemoteContainer(s,a);(null===(r=window.performance)||void 0===r?void 0:r.measure)&&window.performance.measure(`component-loader:load:${e}:eval`,`component-loader:load:${e}:begin`),(null===(i=window.performance)||void 0===i?void 0:i.mark)&&window.performance.mark(`component-loader:load:${e}:eval`);const m=function(e){return\"default\"in e?e.default:e}((await l.get(e))()),u=Object.assign({},t),g=Object.assign(t,this._config,u);d=m.init(g),this._loadedModulePromises.set(c,d)}return(null===(a=window.performance)||void 0===a?void 0:a.measure)&&window.performance.measure(`component-loader:load:${e}:init`,`component-loader:load:${e}:eval`),d}async updateConfig(e){this._config=Object.assign({},this._config,e),(await Promise.all(this._loadedModulePromises.values())).forEach((e=>{var o;null===(o=null==e?void 0:e.updateConfig)||void 0===o||o.call(e,this._config)}))}}var c=o.e,d=o.s;export{c as COMPONENT_LOADER_OVERRIDE_KEY,d as ComponentLoader};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2022 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n/**\n * TODO - pull in LinkStatus from SAM.js (wait until SAM.js converts to enums)\n */\nexport var LinkStatus;\n(function (LinkStatus) {\n    LinkStatus[\"UpToDate\"] = \"UpToDate\";\n    LinkStatus[\"OutOfDate\"] = \"OutOfDate\";\n    LinkStatus[\"MetadataOutOfDate\"] = \"MetadataOutOfDate\";\n    LinkStatus[\"Restricted\"] = \"Restricted\";\n    LinkStatus[\"Discarded\"] = \"Discarded\";\n    LinkStatus[\"Broken\"] = \"Broken\";\n})(LinkStatus || (LinkStatus = {}));\nexport var Role;\n(function (Role) {\n    Role[\"Edit\"] = \"Edit\";\n    Role[\"View\"] = \"View\";\n    Role[\"None\"] = \"None\";\n})(Role || (Role = {}));\n/**\n * Message types used in CCLibrariesInterface\n */\nexport var MessageType;\n(function (MessageType) {\n    MessageType[\"assets\"] = \"ccac.dap.in.notify.assets\";\n    MessageType[\"update\"] = \"ccac.dap.out.notify.update\";\n    MessageType[\"config\"] = \"ccac.dap.in.notify.config\";\n})(MessageType || (MessageType = {}));\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2021 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n// Types related to the libraries and document assets data models\n/**\n * TODO: Should pull these in from the Libraries API type definitions\n */\nexport var ElementType;\n(function (ElementType) {\n    ElementType[\"animation\"] = \"application/vnd.adobe.element.animation+dcx\";\n    ElementType[\"audio\"] = \"application/vnd.adobe.element.audio+dcx\";\n    ElementType[\"brush\"] = \"application/vnd.adobe.element.brush+dcx\";\n    ElementType[\"characterstyle\"] = \"application/vnd.adobe.element.characterstyle+dcx\";\n    ElementType[\"color\"] = \"application/vnd.adobe.element.color+dcx\";\n    ElementType[\"colortheme\"] = \"application/vnd.adobe.element.colortheme+dcx\";\n    ElementType[\"component\"] = \"application/vnd.adobe.element.component+dcx\";\n    ElementType[\"font\"] = \"application/vnd.adobe.element.font+dcx\";\n    ElementType[\"gradient\"] = \"application/vnd.adobe.element.gradient+dcx\";\n    ElementType[\"graphic\"] = \"application/vnd.adobe.element.image+dcx\";\n    ElementType[\"layerstyle\"] = \"application/vnd.adobe.element.layerstyle+dcx\";\n    ElementType[\"light\"] = \"application/vnd.adobe.element.light+dcx\";\n    ElementType[\"look\"] = \"application/vnd.adobe.element.look+dcx\";\n    ElementType[\"material\"] = \"application/vnd.adobe.element.material+dcx\";\n    ElementType[\"model\"] = \"application/vnd.adobe.element.3d+dcx\";\n    ElementType[\"mogrt\"] = \"application/vnd.adobe.element.graphic+dcx\";\n    ElementType[\"multicolorswatch\"] = \"application/vnd.adobe.element.multicolorswatch+dcx\";\n    ElementType[\"paragraphstyle\"] = \"application/vnd.adobe.element.paragraphstyle+dcx\";\n    ElementType[\"pattern\"] = \"application/vnd.adobe.element.pattern+dcx\";\n    ElementType[\"template\"] = \"application/vnd.adobe.element.template+dcx\";\n    ElementType[\"text\"] = \"application/vnd.adobe.element.text+dcx\";\n    ElementType[\"video\"] = \"application/vnd.adobe.element.video+dcx\";\n})(ElementType || (ElementType = {}));\n/**\n * TODO: Should pull these in from the Libraries API type definitions\n */\nexport var Relationship;\n(function (Relationship) {\n    Relationship[\"primary\"] = \"primary\";\n    Relationship[\"rendition\"] = \"rendition\";\n})(Relationship || (Relationship = {}));\n","export var Theme;\n(function (Theme) {\n    Theme[\"LIGHTEST\"] = \"lightest\";\n    Theme[\"LIGHT\"] = \"light\";\n    Theme[\"DARK\"] = \"dark\";\n    Theme[\"DARKEST\"] = \"darkest\";\n})(Theme || (Theme = {}));\nexport var Mode;\n(function (Mode) {\n    Mode[\"MOBILE\"] = \"mobile\";\n    Mode[\"DESKTOP\"] = \"desktop\";\n})(Mode || (Mode = {}));\nexport var Environment;\n(function (Environment) {\n    Environment[\"STAGE\"] = \"stage\";\n    Environment[\"PRODUCTION\"] = \"production\";\n})(Environment || (Environment = {}));\nexport var View;\n(function (View) {\n    View[\"WEB\"] = \"web\";\n    View[\"MOBILE\"] = \"mobile\";\n})(View || (View = {}));\nexport var MessageType;\n(function (MessageType) {\n    MessageType[\"OpenDocumentVersion\"] = \"onOpenDocumentVersion\";\n    MessageType[\"OpenDeepLinkVersion\"] = \"onOpenDeepLinkVersion\";\n    MessageType[\"VersionSelection\"] = \"onVersionSelection\";\n    MessageType[\"RestoreVersion\"] = \"onRestoreVersion\";\n    MessageType[\"Upgrade\"] = \"onUpgrade\";\n    MessageType[\"CreateCopy\"] = \"onCreateCopy\";\n    MessageType[\"Refresh\"] = \"onRefresh\";\n    MessageType[\"ModeChange\"] = \"onModeChange\";\n    MessageType[\"ThemeChange\"] = \"onThemeChange\";\n    MessageType[\"ClosePanel\"] = \"onClosePanel\";\n    MessageType[\"Error\"] = \"onError\";\n    MessageType[\"VersionBookmark\"] = \"onVersionBookmark\";\n    MessageType[\"VersionUnBookmark\"] = \"onVersionUnBookmark\";\n    MessageType[\"VersionBookmarkStart\"] = \"onVersionBookmarkStart\";\n    MessageType[\"VersionUnBookmarkStart\"] = \"onVersionUnBookmarkStart\";\n    MessageType[\"PermanentlyDeleteScreen\"] = \"onPermanentlyDeleteScreen\";\n    MessageType[\"PermanentlyDeleteVersion\"] = \"onPermanentlyDeleteVersion\";\n    MessageType[\"VersioningPanelLoadComplete\"] = \"onVersioningPanelLoadComplete\";\n    MessageType[\"PreviewThumbnailReceived\"] = \"onPreviewThumbnailReceived\";\n})(MessageType || (MessageType = {}));\n/* eslint-enable @typescript-eslint/no-namespace */\n","export var ErrorKind;\n(function (ErrorKind) {\n    /** Argument is unclosed (e.g. `{0`) */\n    ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n    /** Argument is empty (e.g. `{}`). */\n    ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n    /** Argument is malformed (e.g. `{foo!}``) */\n    ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n    /** Expect an argument type (e.g. `{foo,}`) */\n    ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n    /** Unsupported argument type (e.g. `{foo,foo}`) */\n    ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n    /** Expect an argument style (e.g. `{foo, number, }`) */\n    ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n    /** The number skeleton is invalid. */\n    ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n    /** The date time skeleton is invalid. */\n    ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n    /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n    ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n    /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n    ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n    /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n    ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n    /** Missing select argument options (e.g. `{foo, select}`) */\n    ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n    /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n    ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n    /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n    ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n    /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n    ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n    /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n    ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n    /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n    ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n    /**\n     * Expecting a message fragment after the `plural` or `selectordinal` selector\n     * (e.g. `{foo, plural, one}`)\n     */\n    ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n    /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n    ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n    /**\n     * Duplicate selectors in `plural` or `selectordinal` argument.\n     * (e.g. {foo, plural, one {#} one {#}})\n     */\n    ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n    /** Duplicate selectors in `select` argument.\n     * (e.g. {foo, select, apple {apple} apple {apple}})\n     */\n    ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n    /** Plural or select argument option must have `other` clause. */\n    ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n    /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n    ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n    /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n    ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n    /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n    ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n    /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n    ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n    /**\n     * Raw text\n     */\n    TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n    /**\n     * Variable w/o any format, e.g `var` in `this is a {var}`\n     */\n    TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n    /**\n     * Variable w/ number format\n     */\n    TYPE[TYPE[\"number\"] = 2] = \"number\";\n    /**\n     * Variable w/ date format\n     */\n    TYPE[TYPE[\"date\"] = 3] = \"date\";\n    /**\n     * Variable w/ time format\n     */\n    TYPE[TYPE[\"time\"] = 4] = \"time\";\n    /**\n     * Variable w/ select format\n     */\n    TYPE[TYPE[\"select\"] = 5] = \"select\";\n    /**\n     * Variable w/ plural format\n     */\n    TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n    /**\n     * Only possible within plural argument.\n     * This is the `#` symbol that will be substituted with the count.\n     */\n    TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n    /**\n     * XML-like tag\n     */\n    TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n    SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n    SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n    return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n    return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n    return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n    return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n    return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n    return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n    return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n    return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n    return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n    return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n    return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n    return {\n        type: TYPE.literal,\n        value: value,\n    };\n}\nexport function createNumberElement(value, style) {\n    return {\n        type: TYPE.number,\n        value: value,\n        style: style,\n    };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n    var result = {};\n    skeleton.replace(DATE_TIME_REGEX, function (match) {\n        var len = match.length;\n        switch (match[0]) {\n            // Era\n            case 'G':\n                result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n                break;\n            // Year\n            case 'y':\n                result.year = len === 2 ? '2-digit' : 'numeric';\n                break;\n            case 'Y':\n            case 'u':\n            case 'U':\n            case 'r':\n                throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n            // Quarter\n            case 'q':\n            case 'Q':\n                throw new RangeError('`q/Q` (quarter) patterns are not supported');\n            // Month\n            case 'M':\n            case 'L':\n                result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n                break;\n            // Week\n            case 'w':\n            case 'W':\n                throw new RangeError('`w/W` (week) patterns are not supported');\n            case 'd':\n                result.day = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'D':\n            case 'F':\n            case 'g':\n                throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n            // Weekday\n            case 'E':\n                result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n                break;\n            case 'e':\n                if (len < 4) {\n                    throw new RangeError('`e..eee` (weekday) patterns are not supported');\n                }\n                result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n                break;\n            case 'c':\n                if (len < 4) {\n                    throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n                }\n                result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n                break;\n            // Period\n            case 'a': // AM, PM\n                result.hour12 = true;\n                break;\n            case 'b': // am, pm, noon, midnight\n            case 'B': // flexible day periods\n                throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n            // Hour\n            case 'h':\n                result.hourCycle = 'h12';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'H':\n                result.hourCycle = 'h23';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'K':\n                result.hourCycle = 'h11';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'k':\n                result.hourCycle = 'h24';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'j':\n            case 'J':\n            case 'C':\n                throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n            // Minute\n            case 'm':\n                result.minute = ['numeric', '2-digit'][len - 1];\n                break;\n            // Second\n            case 's':\n                result.second = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'S':\n            case 'A':\n                throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n            // Zone\n            case 'z': // 1..3, 4: specific non-location format\n                result.timeZoneName = len < 4 ? 'short' : 'long';\n                break;\n            case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n            case 'O': // 1, 4: miliseconds in day short, long\n            case 'v': // 1, 4: generic non-location format\n            case 'V': // 1, 2, 3, 4: time zone ID or city\n            case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n            case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n                throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n        }\n        return '';\n    });\n    return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n    if (skeleton.length === 0) {\n        throw new Error('Number skeleton cannot be empty');\n    }\n    // Parse the skeleton\n    var stringTokens = skeleton\n        .split(WHITE_SPACE_REGEX)\n        .filter(function (x) { return x.length > 0; });\n    var tokens = [];\n    for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n        var stringToken = stringTokens_1[_i];\n        var stemAndOptions = stringToken.split('/');\n        if (stemAndOptions.length === 0) {\n            throw new Error('Invalid number skeleton');\n        }\n        var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n        for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n            var option = options_1[_a];\n            if (option.length === 0) {\n                throw new Error('Invalid number skeleton');\n            }\n        }\n        tokens.push({ stem: stem, options: options });\n    }\n    return tokens;\n}\nfunction icuUnitToEcma(unit) {\n    return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n    var result = {};\n    if (str[str.length - 1] === 'r') {\n        result.roundingPriority = 'morePrecision';\n    }\n    else if (str[str.length - 1] === 's') {\n        result.roundingPriority = 'lessPrecision';\n    }\n    str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n        // @@@ case\n        if (typeof g2 !== 'string') {\n            result.minimumSignificantDigits = g1.length;\n            result.maximumSignificantDigits = g1.length;\n        }\n        // @@@+ case\n        else if (g2 === '+') {\n            result.minimumSignificantDigits = g1.length;\n        }\n        // .### case\n        else if (g1[0] === '#') {\n            result.maximumSignificantDigits = g1.length;\n        }\n        // .@@## or .@@@ case\n        else {\n            result.minimumSignificantDigits = g1.length;\n            result.maximumSignificantDigits =\n                g1.length + (typeof g2 === 'string' ? g2.length : 0);\n        }\n        return '';\n    });\n    return result;\n}\nfunction parseSign(str) {\n    switch (str) {\n        case 'sign-auto':\n            return {\n                signDisplay: 'auto',\n            };\n        case 'sign-accounting':\n        case '()':\n            return {\n                currencySign: 'accounting',\n            };\n        case 'sign-always':\n        case '+!':\n            return {\n                signDisplay: 'always',\n            };\n        case 'sign-accounting-always':\n        case '()!':\n            return {\n                signDisplay: 'always',\n                currencySign: 'accounting',\n            };\n        case 'sign-except-zero':\n        case '+?':\n            return {\n                signDisplay: 'exceptZero',\n            };\n        case 'sign-accounting-except-zero':\n        case '()?':\n            return {\n                signDisplay: 'exceptZero',\n                currencySign: 'accounting',\n            };\n        case 'sign-never':\n        case '+_':\n            return {\n                signDisplay: 'never',\n            };\n    }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n    // Engineering\n    var result;\n    if (stem[0] === 'E' && stem[1] === 'E') {\n        result = {\n            notation: 'engineering',\n        };\n        stem = stem.slice(2);\n    }\n    else if (stem[0] === 'E') {\n        result = {\n            notation: 'scientific',\n        };\n        stem = stem.slice(1);\n    }\n    if (result) {\n        var signDisplay = stem.slice(0, 2);\n        if (signDisplay === '+!') {\n            result.signDisplay = 'always';\n            stem = stem.slice(2);\n        }\n        else if (signDisplay === '+?') {\n            result.signDisplay = 'exceptZero';\n            stem = stem.slice(2);\n        }\n        if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n            throw new Error('Malformed concise eng/scientific notation');\n        }\n        result.minimumIntegerDigits = stem.length;\n    }\n    return result;\n}\nfunction parseNotationOptions(opt) {\n    var result = {};\n    var signOpts = parseSign(opt);\n    if (signOpts) {\n        return signOpts;\n    }\n    return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n    var result = {};\n    for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n        var token = tokens_1[_i];\n        switch (token.stem) {\n            case 'percent':\n            case '%':\n                result.style = 'percent';\n                continue;\n            case '%x100':\n                result.style = 'percent';\n                result.scale = 100;\n                continue;\n            case 'currency':\n                result.style = 'currency';\n                result.currency = token.options[0];\n                continue;\n            case 'group-off':\n            case ',_':\n                result.useGrouping = false;\n                continue;\n            case 'precision-integer':\n            case '.':\n                result.maximumFractionDigits = 0;\n                continue;\n            case 'measure-unit':\n            case 'unit':\n                result.style = 'unit';\n                result.unit = icuUnitToEcma(token.options[0]);\n                continue;\n            case 'compact-short':\n            case 'K':\n                result.notation = 'compact';\n                result.compactDisplay = 'short';\n                continue;\n            case 'compact-long':\n            case 'KK':\n                result.notation = 'compact';\n                result.compactDisplay = 'long';\n                continue;\n            case 'scientific':\n                result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n                continue;\n            case 'engineering':\n                result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n                continue;\n            case 'notation-simple':\n                result.notation = 'standard';\n                continue;\n            // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n            case 'unit-width-narrow':\n                result.currencyDisplay = 'narrowSymbol';\n                result.unitDisplay = 'narrow';\n                continue;\n            case 'unit-width-short':\n                result.currencyDisplay = 'code';\n                result.unitDisplay = 'short';\n                continue;\n            case 'unit-width-full-name':\n                result.currencyDisplay = 'name';\n                result.unitDisplay = 'long';\n                continue;\n            case 'unit-width-iso-code':\n                result.currencyDisplay = 'symbol';\n                continue;\n            case 'scale':\n                result.scale = parseFloat(token.options[0]);\n                continue;\n            // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n            case 'integer-width':\n                if (token.options.length > 1) {\n                    throw new RangeError('integer-width stems only accept a single optional option');\n                }\n                token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n                    if (g1) {\n                        result.minimumIntegerDigits = g2.length;\n                    }\n                    else if (g3 && g4) {\n                        throw new Error('We currently do not support maximum integer digits');\n                    }\n                    else if (g5) {\n                        throw new Error('We currently do not support exact integer digits');\n                    }\n                    return '';\n                });\n                continue;\n        }\n        // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n        if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n            result.minimumIntegerDigits = token.stem.length;\n            continue;\n        }\n        if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n            // Precision\n            // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n            // precision-integer case\n            if (token.options.length > 1) {\n                throw new RangeError('Fraction-precision stems only accept a single optional option');\n            }\n            token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n                // .000* case (before ICU67 it was .000+)\n                if (g2 === '*') {\n                    result.minimumFractionDigits = g1.length;\n                }\n                // .### case\n                else if (g3 && g3[0] === '#') {\n                    result.maximumFractionDigits = g3.length;\n                }\n                // .00## case\n                else if (g4 && g5) {\n                    result.minimumFractionDigits = g4.length;\n                    result.maximumFractionDigits = g4.length + g5.length;\n                }\n                else {\n                    result.minimumFractionDigits = g1.length;\n                    result.maximumFractionDigits = g1.length;\n                }\n                return '';\n            });\n            var opt = token.options[0];\n            // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n            if (opt === 'w') {\n                result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n            }\n            else if (opt) {\n                result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n            }\n            continue;\n        }\n        // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n        if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n            result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n            continue;\n        }\n        var signOpts = parseSign(token.stem);\n        if (signOpts) {\n            result = __assign(__assign({}, result), signOpts);\n        }\n        var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n        if (conciseScientificAndEngineeringOpts) {\n            result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n        }\n    }\n    return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore  \nexport var timeData = {\n    \"001\": [\n        \"H\",\n        \"h\"\n    ],\n    \"AC\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"AD\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AE\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"AF\": [\n        \"H\",\n        \"hb\",\n        \"hB\",\n        \"h\"\n    ],\n    \"AG\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"AI\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"AL\": [\n        \"h\",\n        \"H\",\n        \"hB\"\n    ],\n    \"AM\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AO\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AR\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"AS\": [\n        \"h\",\n        \"H\"\n    ],\n    \"AT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AU\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"AW\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AX\": [\n        \"H\"\n    ],\n    \"AZ\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"BA\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"BB\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"BD\": [\n        \"h\",\n        \"hB\",\n        \"H\"\n    ],\n    \"BE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BG\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"BH\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"BI\": [\n        \"H\",\n        \"h\"\n    ],\n    \"BJ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BL\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"BN\": [\n        \"hb\",\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"BO\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"BQ\": [\n        \"H\"\n    ],\n    \"BR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BS\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"BT\": [\n        \"h\",\n        \"H\"\n    ],\n    \"BW\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"BY\": [\n        \"H\",\n        \"h\"\n    ],\n    \"BZ\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CA\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"CC\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CD\": [\n        \"hB\",\n        \"H\"\n    ],\n    \"CF\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"CG\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CH\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"CI\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CK\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CL\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CM\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"CN\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ],\n    \"CO\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CP\": [\n        \"H\"\n    ],\n    \"CR\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CU\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CV\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CW\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CX\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CY\": [\n        \"h\",\n        \"H\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CZ\": [\n        \"H\"\n    ],\n    \"DE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"DG\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"DJ\": [\n        \"h\",\n        \"H\"\n    ],\n    \"DK\": [\n        \"H\"\n    ],\n    \"DM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"DO\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"DZ\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"EA\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"EC\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"EE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"EG\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"EH\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"ER\": [\n        \"h\",\n        \"H\"\n    ],\n    \"ES\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"ET\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"FI\": [\n        \"H\"\n    ],\n    \"FJ\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"FK\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"FM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"FO\": [\n        \"H\",\n        \"h\"\n    ],\n    \"FR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GA\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GB\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GD\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"GE\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"GF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GG\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GH\": [\n        \"h\",\n        \"H\"\n    ],\n    \"GI\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GL\": [\n        \"H\",\n        \"h\"\n    ],\n    \"GM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"GN\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GP\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GQ\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"GR\": [\n        \"h\",\n        \"H\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GT\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"GU\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"GW\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GY\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"HK\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"HN\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"HR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"HU\": [\n        \"H\",\n        \"h\"\n    ],\n    \"IC\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"ID\": [\n        \"H\"\n    ],\n    \"IE\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"IL\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"IM\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"IN\": [\n        \"h\",\n        \"H\"\n    ],\n    \"IO\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"IQ\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"IR\": [\n        \"hB\",\n        \"H\"\n    ],\n    \"IS\": [\n        \"H\"\n    ],\n    \"IT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"JE\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"JM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"JO\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"JP\": [\n        \"H\",\n        \"K\",\n        \"h\"\n    ],\n    \"KE\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"KG\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KH\": [\n        \"hB\",\n        \"h\",\n        \"H\",\n        \"hb\"\n    ],\n    \"KI\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"KM\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KN\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"KP\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KR\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KW\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"KY\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"KZ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"LA\": [\n        \"H\",\n        \"hb\",\n        \"hB\",\n        \"h\"\n    ],\n    \"LB\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"LC\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"LI\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"LK\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"LR\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"LS\": [\n        \"h\",\n        \"H\"\n    ],\n    \"LT\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"LU\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"LV\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ],\n    \"LY\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"MA\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"MC\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"MD\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"ME\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"MF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"MG\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MH\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"MK\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"ML\": [\n        \"H\"\n    ],\n    \"MM\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"MN\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"MO\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"MP\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"MQ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"MR\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"MS\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"MT\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MU\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MV\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MW\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"MX\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"MY\": [\n        \"hb\",\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"MZ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"NA\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"NC\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"NE\": [\n        \"H\"\n    ],\n    \"NF\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NG\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NI\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"NL\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"NO\": [\n        \"H\",\n        \"h\"\n    ],\n    \"NP\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"NR\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NU\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NZ\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"OM\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"PA\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"PE\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"PF\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"PG\": [\n        \"h\",\n        \"H\"\n    ],\n    \"PH\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"PK\": [\n        \"h\",\n        \"hB\",\n        \"H\"\n    ],\n    \"PL\": [\n        \"H\",\n        \"h\"\n    ],\n    \"PM\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"PN\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"PR\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"PS\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"PT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"PW\": [\n        \"h\",\n        \"H\"\n    ],\n    \"PY\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"QA\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"RE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"RO\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"RS\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"RU\": [\n        \"H\"\n    ],\n    \"RW\": [\n        \"H\",\n        \"h\"\n    ],\n    \"SA\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"SB\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"SC\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"SD\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"SE\": [\n        \"H\"\n    ],\n    \"SG\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"SH\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"SI\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"SJ\": [\n        \"H\"\n    ],\n    \"SK\": [\n        \"H\"\n    ],\n    \"SL\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"SM\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"SN\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"SO\": [\n        \"h\",\n        \"H\"\n    ],\n    \"SR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"SS\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"ST\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"SV\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"SX\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"SY\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"SZ\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TA\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"TC\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TD\": [\n        \"h\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TF\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"TG\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"TH\": [\n        \"H\",\n        \"h\"\n    ],\n    \"TJ\": [\n        \"H\",\n        \"h\"\n    ],\n    \"TL\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ],\n    \"TM\": [\n        \"H\",\n        \"h\"\n    ],\n    \"TN\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"TO\": [\n        \"h\",\n        \"H\"\n    ],\n    \"TR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"TT\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TW\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"TZ\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"UA\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"UG\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"UM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"US\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"UY\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"UZ\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"VA\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"VC\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"VE\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"VG\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"VI\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"VN\": [\n        \"H\",\n        \"h\"\n    ],\n    \"VU\": [\n        \"h\",\n        \"H\"\n    ],\n    \"WF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"WS\": [\n        \"h\",\n        \"H\"\n    ],\n    \"XK\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"YE\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"YT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"ZA\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"ZM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"ZW\": [\n        \"H\",\n        \"h\"\n    ],\n    \"af-ZA\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"ar-001\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"ca-ES\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"en-001\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"es-BO\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-BR\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-EC\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-ES\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-GQ\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-PE\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"fr-CA\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"gl-ES\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"gu-IN\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"hi-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"it-CH\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"it-IT\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"kn-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"ml-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"mr-IN\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"pa-IN\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"ta-IN\": [\n        \"hB\",\n        \"h\",\n        \"hb\",\n        \"H\"\n    ],\n    \"te-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"zu-ZA\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ]\n};\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n    return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n    ? Number.isSafeInteger\n    : function (n) {\n        return (typeof n === 'number' &&\n            isFinite(n) &&\n            Math.floor(n) === n &&\n            Math.abs(n) <= 0x1fffffffffffff);\n    };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n    var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n    /**\n     * legacy Edge or Xbox One browser\n     * Unicode flag support: supported\n     * Pattern_Syntax support: not supported\n     * See https://github.com/formatjs/formatjs/issues/2822\n     */\n    REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n    REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n    ? // Native\n        function startsWith(s, search, position) {\n            return s.startsWith(search, position);\n        }\n    : // For IE11\n        function startsWith(s, search, position) {\n            return s.slice(position, position + search.length) === search;\n        };\nvar fromCodePoint = hasNativeFromCodePoint\n    ? String.fromCodePoint\n    : // IE11\n        function fromCodePoint() {\n            var codePoints = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                codePoints[_i] = arguments[_i];\n            }\n            var elements = '';\n            var length = codePoints.length;\n            var i = 0;\n            var code;\n            while (length > i) {\n                code = codePoints[i++];\n                if (code > 0x10ffff)\n                    throw RangeError(code + ' is not a valid code point');\n                elements +=\n                    code < 0x10000\n                        ? String.fromCharCode(code)\n                        : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n            }\n            return elements;\n        };\nvar fromEntries = \n// native\nhasNativeFromEntries\n    ? Object.fromEntries\n    : // Ponyfill\n        function fromEntries(entries) {\n            var obj = {};\n            for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n                var _a = entries_1[_i], k = _a[0], v = _a[1];\n                obj[k] = v;\n            }\n            return obj;\n        };\nvar codePointAt = hasNativeCodePointAt\n    ? // Native\n        function codePointAt(s, index) {\n            return s.codePointAt(index);\n        }\n    : // IE 11\n        function codePointAt(s, index) {\n            var size = s.length;\n            if (index < 0 || index >= size) {\n                return undefined;\n            }\n            var first = s.charCodeAt(index);\n            var second;\n            return first < 0xd800 ||\n                first > 0xdbff ||\n                index + 1 === size ||\n                (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n                second > 0xdfff\n                ? first\n                : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n        };\nvar trimStart = hasTrimStart\n    ? // Native\n        function trimStart(s) {\n            return s.trimStart();\n        }\n    : // Ponyfill\n        function trimStart(s) {\n            return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n        };\nvar trimEnd = hasTrimEnd\n    ? // Native\n        function trimEnd(s) {\n            return s.trimEnd();\n        }\n    : // Ponyfill\n        function trimEnd(s) {\n            return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n        };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n    return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n    // Native\n    var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n    matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n        var _a;\n        IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n        var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n        return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n    };\n}\nelse {\n    // IE11\n    matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n        var match = [];\n        while (true) {\n            var c = codePointAt(s, index);\n            if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n                break;\n            }\n            match.push(c);\n            index += c >= 0x10000 ? 2 : 1;\n        }\n        return fromCodePoint.apply(void 0, match);\n    };\n}\nvar Parser = /** @class */ (function () {\n    function Parser(message, options) {\n        if (options === void 0) { options = {}; }\n        this.message = message;\n        this.position = { offset: 0, line: 1, column: 1 };\n        this.ignoreTag = !!options.ignoreTag;\n        this.locale = options.locale;\n        this.requiresOtherClause = !!options.requiresOtherClause;\n        this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n    }\n    Parser.prototype.parse = function () {\n        if (this.offset() !== 0) {\n            throw Error('parser can only be used once');\n        }\n        return this.parseMessage(0, '', false);\n    };\n    Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n        var elements = [];\n        while (!this.isEOF()) {\n            var char = this.char();\n            if (char === 123 /* `{` */) {\n                var result = this.parseArgument(nestingLevel, expectingCloseTag);\n                if (result.err) {\n                    return result;\n                }\n                elements.push(result.val);\n            }\n            else if (char === 125 /* `}` */ && nestingLevel > 0) {\n                break;\n            }\n            else if (char === 35 /* `#` */ &&\n                (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n                var position = this.clonePosition();\n                this.bump();\n                elements.push({\n                    type: TYPE.pound,\n                    location: createLocation(position, this.clonePosition()),\n                });\n            }\n            else if (char === 60 /* `<` */ &&\n                !this.ignoreTag &&\n                this.peek() === 47 // char code for '/'\n            ) {\n                if (expectingCloseTag) {\n                    break;\n                }\n                else {\n                    return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n                }\n            }\n            else if (char === 60 /* `<` */ &&\n                !this.ignoreTag &&\n                _isAlpha(this.peek() || 0)) {\n                var result = this.parseTag(nestingLevel, parentArgType);\n                if (result.err) {\n                    return result;\n                }\n                elements.push(result.val);\n            }\n            else {\n                var result = this.parseLiteral(nestingLevel, parentArgType);\n                if (result.err) {\n                    return result;\n                }\n                elements.push(result.val);\n            }\n        }\n        return { val: elements, err: null };\n    };\n    /**\n     * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n     * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n     * are accepted:\n     *\n     * ```\n     * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n     * tagName ::= [a-z] (PENChar)*\n     * PENChar ::=\n     *     \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n     *     [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n     *     [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n     * ```\n     *\n     * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n     * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n     * since other tag-based engines like React allow it\n     */\n    Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n        var startPosition = this.clonePosition();\n        this.bump(); // `<`\n        var tagName = this.parseTagName();\n        this.bumpSpace();\n        if (this.bumpIf('/>')) {\n            // Self closing tag\n            return {\n                val: {\n                    type: TYPE.literal,\n                    value: \"<\".concat(tagName, \"/>\"),\n                    location: createLocation(startPosition, this.clonePosition()),\n                },\n                err: null,\n            };\n        }\n        else if (this.bumpIf('>')) {\n            var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n            if (childrenResult.err) {\n                return childrenResult;\n            }\n            var children = childrenResult.val;\n            // Expecting a close tag\n            var endTagStartPosition = this.clonePosition();\n            if (this.bumpIf('</')) {\n                if (this.isEOF() || !_isAlpha(this.char())) {\n                    return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n                }\n                var closingTagNameStartPosition = this.clonePosition();\n                var closingTagName = this.parseTagName();\n                if (tagName !== closingTagName) {\n                    return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n                }\n                this.bumpSpace();\n                if (!this.bumpIf('>')) {\n                    return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n                }\n                return {\n                    val: {\n                        type: TYPE.tag,\n                        value: tagName,\n                        children: children,\n                        location: createLocation(startPosition, this.clonePosition()),\n                    },\n                    err: null,\n                };\n            }\n            else {\n                return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n            }\n        }\n        else {\n            return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n        }\n    };\n    /**\n     * This method assumes that the caller has peeked ahead for the first tag character.\n     */\n    Parser.prototype.parseTagName = function () {\n        var startOffset = this.offset();\n        this.bump(); // the first tag name character\n        while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n            this.bump();\n        }\n        return this.message.slice(startOffset, this.offset());\n    };\n    Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n        var start = this.clonePosition();\n        var value = '';\n        while (true) {\n            var parseQuoteResult = this.tryParseQuote(parentArgType);\n            if (parseQuoteResult) {\n                value += parseQuoteResult;\n                continue;\n            }\n            var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n            if (parseUnquotedResult) {\n                value += parseUnquotedResult;\n                continue;\n            }\n            var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n            if (parseLeftAngleResult) {\n                value += parseLeftAngleResult;\n                continue;\n            }\n            break;\n        }\n        var location = createLocation(start, this.clonePosition());\n        return {\n            val: { type: TYPE.literal, value: value, location: location },\n            err: null,\n        };\n    };\n    Parser.prototype.tryParseLeftAngleBracket = function () {\n        if (!this.isEOF() &&\n            this.char() === 60 /* `<` */ &&\n            (this.ignoreTag ||\n                // If at the opening tag or closing tag position, bail.\n                !_isAlphaOrSlash(this.peek() || 0))) {\n            this.bump(); // `<`\n            return '<';\n        }\n        return null;\n    };\n    /**\n     * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n     * a character that requires quoting (that is, \"only where needed\"), and works the same in\n     * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n     */\n    Parser.prototype.tryParseQuote = function (parentArgType) {\n        if (this.isEOF() || this.char() !== 39 /* `'` */) {\n            return null;\n        }\n        // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n        // Check if is valid escaped character\n        switch (this.peek()) {\n            case 39 /* `'` */:\n                // double quote, should return as a single quote.\n                this.bump();\n                this.bump();\n                return \"'\";\n            // '{', '<', '>', '}'\n            case 123:\n            case 60:\n            case 62:\n            case 125:\n                break;\n            case 35: // '#'\n                if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n                    break;\n                }\n                return null;\n            default:\n                return null;\n        }\n        this.bump(); // apostrophe\n        var codePoints = [this.char()]; // escaped char\n        this.bump();\n        // read chars until the optional closing apostrophe is found\n        while (!this.isEOF()) {\n            var ch = this.char();\n            if (ch === 39 /* `'` */) {\n                if (this.peek() === 39 /* `'` */) {\n                    codePoints.push(39);\n                    // Bump one more time because we need to skip 2 characters.\n                    this.bump();\n                }\n                else {\n                    // Optional closing apostrophe.\n                    this.bump();\n                    break;\n                }\n            }\n            else {\n                codePoints.push(ch);\n            }\n            this.bump();\n        }\n        return fromCodePoint.apply(void 0, codePoints);\n    };\n    Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n        if (this.isEOF()) {\n            return null;\n        }\n        var ch = this.char();\n        if (ch === 60 /* `<` */ ||\n            ch === 123 /* `{` */ ||\n            (ch === 35 /* `#` */ &&\n                (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n            (ch === 125 /* `}` */ && nestingLevel > 0)) {\n            return null;\n        }\n        else {\n            this.bump();\n            return fromCodePoint(ch);\n        }\n    };\n    Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n        var openingBracePosition = this.clonePosition();\n        this.bump(); // `{`\n        this.bumpSpace();\n        if (this.isEOF()) {\n            return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        if (this.char() === 125 /* `}` */) {\n            this.bump();\n            return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        // argument name\n        var value = this.parseIdentifierIfPossible().value;\n        if (!value) {\n            return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        this.bumpSpace();\n        if (this.isEOF()) {\n            return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        switch (this.char()) {\n            // Simple argument: `{name}`\n            case 125 /* `}` */: {\n                this.bump(); // `}`\n                return {\n                    val: {\n                        type: TYPE.argument,\n                        // value does not include the opening and closing braces.\n                        value: value,\n                        location: createLocation(openingBracePosition, this.clonePosition()),\n                    },\n                    err: null,\n                };\n            }\n            // Argument with options: `{name, format, ...}`\n            case 44 /* `,` */: {\n                this.bump(); // `,`\n                this.bumpSpace();\n                if (this.isEOF()) {\n                    return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n                }\n                return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n            }\n            default:\n                return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n        }\n    };\n    /**\n     * Advance the parser until the end of the identifier, if it is currently on\n     * an identifier character. Return an empty string otherwise.\n     */\n    Parser.prototype.parseIdentifierIfPossible = function () {\n        var startingPosition = this.clonePosition();\n        var startOffset = this.offset();\n        var value = matchIdentifierAtIndex(this.message, startOffset);\n        var endOffset = startOffset + value.length;\n        this.bumpTo(endOffset);\n        var endPosition = this.clonePosition();\n        var location = createLocation(startingPosition, endPosition);\n        return { value: value, location: location };\n    };\n    Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n        var _a;\n        // Parse this range:\n        // {name, type, style}\n        //        ^---^\n        var typeStartPosition = this.clonePosition();\n        var argType = this.parseIdentifierIfPossible().value;\n        var typeEndPosition = this.clonePosition();\n        switch (argType) {\n            case '':\n                // Expecting a style string number, date, time, plural, selectordinal, or select.\n                return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n            case 'number':\n            case 'date':\n            case 'time': {\n                // Parse this range:\n                // {name, number, style}\n                //              ^-------^\n                this.bumpSpace();\n                var styleAndLocation = null;\n                if (this.bumpIf(',')) {\n                    this.bumpSpace();\n                    var styleStartPosition = this.clonePosition();\n                    var result = this.parseSimpleArgStyleIfPossible();\n                    if (result.err) {\n                        return result;\n                    }\n                    var style = trimEnd(result.val);\n                    if (style.length === 0) {\n                        return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n                    }\n                    var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n                    styleAndLocation = { style: style, styleLocation: styleLocation };\n                }\n                var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n                if (argCloseResult.err) {\n                    return argCloseResult;\n                }\n                var location_1 = createLocation(openingBracePosition, this.clonePosition());\n                // Extract style or skeleton\n                if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n                    // Skeleton starts with `::`.\n                    var skeleton = trimStart(styleAndLocation.style.slice(2));\n                    if (argType === 'number') {\n                        var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n                        if (result.err) {\n                            return result;\n                        }\n                        return {\n                            val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n                            err: null,\n                        };\n                    }\n                    else {\n                        if (skeleton.length === 0) {\n                            return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n                        }\n                        var dateTimePattern = skeleton;\n                        // Get \"best match\" pattern only if locale is passed, if not, let it\n                        // pass as-is where `parseDateTimeSkeleton()` will throw an error\n                        // for unsupported patterns.\n                        if (this.locale) {\n                            dateTimePattern = getBestPattern(skeleton, this.locale);\n                        }\n                        var style = {\n                            type: SKELETON_TYPE.dateTime,\n                            pattern: dateTimePattern,\n                            location: styleAndLocation.styleLocation,\n                            parsedOptions: this.shouldParseSkeletons\n                                ? parseDateTimeSkeleton(dateTimePattern)\n                                : {},\n                        };\n                        var type = argType === 'date' ? TYPE.date : TYPE.time;\n                        return {\n                            val: { type: type, value: value, location: location_1, style: style },\n                            err: null,\n                        };\n                    }\n                }\n                // Regular style or no style.\n                return {\n                    val: {\n                        type: argType === 'number'\n                            ? TYPE.number\n                            : argType === 'date'\n                                ? TYPE.date\n                                : TYPE.time,\n                        value: value,\n                        location: location_1,\n                        style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n                    },\n                    err: null,\n                };\n            }\n            case 'plural':\n            case 'selectordinal':\n            case 'select': {\n                // Parse this range:\n                // {name, plural, options}\n                //              ^---------^\n                var typeEndPosition_1 = this.clonePosition();\n                this.bumpSpace();\n                if (!this.bumpIf(',')) {\n                    return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n                }\n                this.bumpSpace();\n                // Parse offset:\n                // {name, plural, offset:1, options}\n                //                ^-----^\n                //\n                // or the first option:\n                //\n                // {name, plural, one {...} other {...}}\n                //                ^--^\n                var identifierAndLocation = this.parseIdentifierIfPossible();\n                var pluralOffset = 0;\n                if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n                    if (!this.bumpIf(':')) {\n                        return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n                    }\n                    this.bumpSpace();\n                    var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n                    if (result.err) {\n                        return result;\n                    }\n                    // Parse another identifier for option parsing\n                    this.bumpSpace();\n                    identifierAndLocation = this.parseIdentifierIfPossible();\n                    pluralOffset = result.val;\n                }\n                var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n                if (optionsResult.err) {\n                    return optionsResult;\n                }\n                var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n                if (argCloseResult.err) {\n                    return argCloseResult;\n                }\n                var location_2 = createLocation(openingBracePosition, this.clonePosition());\n                if (argType === 'select') {\n                    return {\n                        val: {\n                            type: TYPE.select,\n                            value: value,\n                            options: fromEntries(optionsResult.val),\n                            location: location_2,\n                        },\n                        err: null,\n                    };\n                }\n                else {\n                    return {\n                        val: {\n                            type: TYPE.plural,\n                            value: value,\n                            options: fromEntries(optionsResult.val),\n                            offset: pluralOffset,\n                            pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n                            location: location_2,\n                        },\n                        err: null,\n                    };\n                }\n            }\n            default:\n                return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n        }\n    };\n    Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n        // Parse: {value, number, ::currency/GBP }\n        //\n        if (this.isEOF() || this.char() !== 125 /* `}` */) {\n            return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        this.bump(); // `}`\n        return { val: true, err: null };\n    };\n    /**\n     * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n     */\n    Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n        var nestedBraces = 0;\n        var startPosition = this.clonePosition();\n        while (!this.isEOF()) {\n            var ch = this.char();\n            switch (ch) {\n                case 39 /* `'` */: {\n                    // Treat apostrophe as quoting but include it in the style part.\n                    // Find the end of the quoted literal text.\n                    this.bump();\n                    var apostrophePosition = this.clonePosition();\n                    if (!this.bumpUntil(\"'\")) {\n                        return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n                    }\n                    this.bump();\n                    break;\n                }\n                case 123 /* `{` */: {\n                    nestedBraces += 1;\n                    this.bump();\n                    break;\n                }\n                case 125 /* `}` */: {\n                    if (nestedBraces > 0) {\n                        nestedBraces -= 1;\n                    }\n                    else {\n                        return {\n                            val: this.message.slice(startPosition.offset, this.offset()),\n                            err: null,\n                        };\n                    }\n                    break;\n                }\n                default:\n                    this.bump();\n                    break;\n            }\n        }\n        return {\n            val: this.message.slice(startPosition.offset, this.offset()),\n            err: null,\n        };\n    };\n    Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n        var tokens = [];\n        try {\n            tokens = parseNumberSkeletonFromString(skeleton);\n        }\n        catch (e) {\n            return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n        }\n        return {\n            val: {\n                type: SKELETON_TYPE.number,\n                tokens: tokens,\n                location: location,\n                parsedOptions: this.shouldParseSkeletons\n                    ? parseNumberSkeleton(tokens)\n                    : {},\n            },\n            err: null,\n        };\n    };\n    /**\n     * @param nesting_level The current nesting level of messages.\n     *     This can be positive when parsing message fragment in select or plural argument options.\n     * @param parent_arg_type The parent argument's type.\n     * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n     *     the argument. It is a by-product of a previous parsing attempt.\n     * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n     *     between a pair of opening and closing tags. The nested message will not parse beyond\n     *     the closing tag boundary.\n     */\n    Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n        var _a;\n        var hasOtherClause = false;\n        var options = [];\n        var parsedSelectors = new Set();\n        var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n        // Parse:\n        // one {one apple}\n        // ^--^\n        while (true) {\n            if (selector.length === 0) {\n                var startPosition = this.clonePosition();\n                if (parentArgType !== 'select' && this.bumpIf('=')) {\n                    // Try parse `={number}` selector\n                    var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n                    if (result.err) {\n                        return result;\n                    }\n                    selectorLocation = createLocation(startPosition, this.clonePosition());\n                    selector = this.message.slice(startPosition.offset, this.offset());\n                }\n                else {\n                    break;\n                }\n            }\n            // Duplicate selector clauses\n            if (parsedSelectors.has(selector)) {\n                return this.error(parentArgType === 'select'\n                    ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n                    : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n            }\n            if (selector === 'other') {\n                hasOtherClause = true;\n            }\n            // Parse:\n            // one {one apple}\n            //     ^----------^\n            this.bumpSpace();\n            var openingBracePosition = this.clonePosition();\n            if (!this.bumpIf('{')) {\n                return this.error(parentArgType === 'select'\n                    ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n                    : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n            }\n            var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n            if (fragmentResult.err) {\n                return fragmentResult;\n            }\n            var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n            if (argCloseResult.err) {\n                return argCloseResult;\n            }\n            options.push([\n                selector,\n                {\n                    value: fragmentResult.val,\n                    location: createLocation(openingBracePosition, this.clonePosition()),\n                },\n            ]);\n            // Keep track of the existing selectors\n            parsedSelectors.add(selector);\n            // Prep next selector clause.\n            this.bumpSpace();\n            (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n        }\n        if (options.length === 0) {\n            return this.error(parentArgType === 'select'\n                ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n                : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n        }\n        if (this.requiresOtherClause && !hasOtherClause) {\n            return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n        }\n        return { val: options, err: null };\n    };\n    Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n        var sign = 1;\n        var startingPosition = this.clonePosition();\n        if (this.bumpIf('+')) {\n        }\n        else if (this.bumpIf('-')) {\n            sign = -1;\n        }\n        var hasDigits = false;\n        var decimal = 0;\n        while (!this.isEOF()) {\n            var ch = this.char();\n            if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n                hasDigits = true;\n                decimal = decimal * 10 + (ch - 48);\n                this.bump();\n            }\n            else {\n                break;\n            }\n        }\n        var location = createLocation(startingPosition, this.clonePosition());\n        if (!hasDigits) {\n            return this.error(expectNumberError, location);\n        }\n        decimal *= sign;\n        if (!isSafeInteger(decimal)) {\n            return this.error(invalidNumberError, location);\n        }\n        return { val: decimal, err: null };\n    };\n    Parser.prototype.offset = function () {\n        return this.position.offset;\n    };\n    Parser.prototype.isEOF = function () {\n        return this.offset() === this.message.length;\n    };\n    Parser.prototype.clonePosition = function () {\n        // This is much faster than `Object.assign` or spread.\n        return {\n            offset: this.position.offset,\n            line: this.position.line,\n            column: this.position.column,\n        };\n    };\n    /**\n     * Return the code point at the current position of the parser.\n     * Throws if the index is out of bound.\n     */\n    Parser.prototype.char = function () {\n        var offset = this.position.offset;\n        if (offset >= this.message.length) {\n            throw Error('out of bound');\n        }\n        var code = codePointAt(this.message, offset);\n        if (code === undefined) {\n            throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n        }\n        return code;\n    };\n    Parser.prototype.error = function (kind, location) {\n        return {\n            val: null,\n            err: {\n                kind: kind,\n                message: this.message,\n                location: location,\n            },\n        };\n    };\n    /** Bump the parser to the next UTF-16 code unit. */\n    Parser.prototype.bump = function () {\n        if (this.isEOF()) {\n            return;\n        }\n        var code = this.char();\n        if (code === 10 /* '\\n' */) {\n            this.position.line += 1;\n            this.position.column = 1;\n            this.position.offset += 1;\n        }\n        else {\n            this.position.column += 1;\n            // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n            this.position.offset += code < 0x10000 ? 1 : 2;\n        }\n    };\n    /**\n     * If the substring starting at the current position of the parser has\n     * the given prefix, then bump the parser to the character immediately\n     * following the prefix and return true. Otherwise, don't bump the parser\n     * and return false.\n     */\n    Parser.prototype.bumpIf = function (prefix) {\n        if (startsWith(this.message, prefix, this.offset())) {\n            for (var i = 0; i < prefix.length; i++) {\n                this.bump();\n            }\n            return true;\n        }\n        return false;\n    };\n    /**\n     * Bump the parser until the pattern character is found and return `true`.\n     * Otherwise bump to the end of the file and return `false`.\n     */\n    Parser.prototype.bumpUntil = function (pattern) {\n        var currentOffset = this.offset();\n        var index = this.message.indexOf(pattern, currentOffset);\n        if (index >= 0) {\n            this.bumpTo(index);\n            return true;\n        }\n        else {\n            this.bumpTo(this.message.length);\n            return false;\n        }\n    };\n    /**\n     * Bump the parser to the target offset.\n     * If target offset is beyond the end of the input, bump the parser to the end of the input.\n     */\n    Parser.prototype.bumpTo = function (targetOffset) {\n        if (this.offset() > targetOffset) {\n            throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n        }\n        targetOffset = Math.min(targetOffset, this.message.length);\n        while (true) {\n            var offset = this.offset();\n            if (offset === targetOffset) {\n                break;\n            }\n            if (offset > targetOffset) {\n                throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n            }\n            this.bump();\n            if (this.isEOF()) {\n                break;\n            }\n        }\n    };\n    /** advance the parser through all whitespace to the next non-whitespace code unit. */\n    Parser.prototype.bumpSpace = function () {\n        while (!this.isEOF() && _isWhiteSpace(this.char())) {\n            this.bump();\n        }\n    };\n    /**\n     * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n     * If the input has been exhausted, then this returns null.\n     */\n    Parser.prototype.peek = function () {\n        if (this.isEOF()) {\n            return null;\n        }\n        var code = this.char();\n        var offset = this.offset();\n        var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n        return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n    };\n    return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n    return ((codepoint >= 97 && codepoint <= 122) ||\n        (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n    return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n    return (c === 45 /* '-' */ ||\n        c === 46 /* '.' */ ||\n        (c >= 48 && c <= 57) /* 0..9 */ ||\n        c === 95 /* '_' */ ||\n        (c >= 97 && c <= 122) /** a..z */ ||\n        (c >= 65 && c <= 90) /* A..Z */ ||\n        c == 0xb7 ||\n        (c >= 0xc0 && c <= 0xd6) ||\n        (c >= 0xd8 && c <= 0xf6) ||\n        (c >= 0xf8 && c <= 0x37d) ||\n        (c >= 0x37f && c <= 0x1fff) ||\n        (c >= 0x200c && c <= 0x200d) ||\n        (c >= 0x203f && c <= 0x2040) ||\n        (c >= 0x2070 && c <= 0x218f) ||\n        (c >= 0x2c00 && c <= 0x2fef) ||\n        (c >= 0x3001 && c <= 0xd7ff) ||\n        (c >= 0xf900 && c <= 0xfdcf) ||\n        (c >= 0xfdf0 && c <= 0xfffd) ||\n        (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n    return ((c >= 0x0009 && c <= 0x000d) ||\n        c === 0x0020 ||\n        c === 0x0085 ||\n        (c >= 0x200e && c <= 0x200f) ||\n        c === 0x2028 ||\n        c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n    return ((c >= 0x0021 && c <= 0x0023) ||\n        c === 0x0024 ||\n        (c >= 0x0025 && c <= 0x0027) ||\n        c === 0x0028 ||\n        c === 0x0029 ||\n        c === 0x002a ||\n        c === 0x002b ||\n        c === 0x002c ||\n        c === 0x002d ||\n        (c >= 0x002e && c <= 0x002f) ||\n        (c >= 0x003a && c <= 0x003b) ||\n        (c >= 0x003c && c <= 0x003e) ||\n        (c >= 0x003f && c <= 0x0040) ||\n        c === 0x005b ||\n        c === 0x005c ||\n        c === 0x005d ||\n        c === 0x005e ||\n        c === 0x0060 ||\n        c === 0x007b ||\n        c === 0x007c ||\n        c === 0x007d ||\n        c === 0x007e ||\n        c === 0x00a1 ||\n        (c >= 0x00a2 && c <= 0x00a5) ||\n        c === 0x00a6 ||\n        c === 0x00a7 ||\n        c === 0x00a9 ||\n        c === 0x00ab ||\n        c === 0x00ac ||\n        c === 0x00ae ||\n        c === 0x00b0 ||\n        c === 0x00b1 ||\n        c === 0x00b6 ||\n        c === 0x00bb ||\n        c === 0x00bf ||\n        c === 0x00d7 ||\n        c === 0x00f7 ||\n        (c >= 0x2010 && c <= 0x2015) ||\n        (c >= 0x2016 && c <= 0x2017) ||\n        c === 0x2018 ||\n        c === 0x2019 ||\n        c === 0x201a ||\n        (c >= 0x201b && c <= 0x201c) ||\n        c === 0x201d ||\n        c === 0x201e ||\n        c === 0x201f ||\n        (c >= 0x2020 && c <= 0x2027) ||\n        (c >= 0x2030 && c <= 0x2038) ||\n        c === 0x2039 ||\n        c === 0x203a ||\n        (c >= 0x203b && c <= 0x203e) ||\n        (c >= 0x2041 && c <= 0x2043) ||\n        c === 0x2044 ||\n        c === 0x2045 ||\n        c === 0x2046 ||\n        (c >= 0x2047 && c <= 0x2051) ||\n        c === 0x2052 ||\n        c === 0x2053 ||\n        (c >= 0x2055 && c <= 0x205e) ||\n        (c >= 0x2190 && c <= 0x2194) ||\n        (c >= 0x2195 && c <= 0x2199) ||\n        (c >= 0x219a && c <= 0x219b) ||\n        (c >= 0x219c && c <= 0x219f) ||\n        c === 0x21a0 ||\n        (c >= 0x21a1 && c <= 0x21a2) ||\n        c === 0x21a3 ||\n        (c >= 0x21a4 && c <= 0x21a5) ||\n        c === 0x21a6 ||\n        (c >= 0x21a7 && c <= 0x21ad) ||\n        c === 0x21ae ||\n        (c >= 0x21af && c <= 0x21cd) ||\n        (c >= 0x21ce && c <= 0x21cf) ||\n        (c >= 0x21d0 && c <= 0x21d1) ||\n        c === 0x21d2 ||\n        c === 0x21d3 ||\n        c === 0x21d4 ||\n        (c >= 0x21d5 && c <= 0x21f3) ||\n        (c >= 0x21f4 && c <= 0x22ff) ||\n        (c >= 0x2300 && c <= 0x2307) ||\n        c === 0x2308 ||\n        c === 0x2309 ||\n        c === 0x230a ||\n        c === 0x230b ||\n        (c >= 0x230c && c <= 0x231f) ||\n        (c >= 0x2320 && c <= 0x2321) ||\n        (c >= 0x2322 && c <= 0x2328) ||\n        c === 0x2329 ||\n        c === 0x232a ||\n        (c >= 0x232b && c <= 0x237b) ||\n        c === 0x237c ||\n        (c >= 0x237d && c <= 0x239a) ||\n        (c >= 0x239b && c <= 0x23b3) ||\n        (c >= 0x23b4 && c <= 0x23db) ||\n        (c >= 0x23dc && c <= 0x23e1) ||\n        (c >= 0x23e2 && c <= 0x2426) ||\n        (c >= 0x2427 && c <= 0x243f) ||\n        (c >= 0x2440 && c <= 0x244a) ||\n        (c >= 0x244b && c <= 0x245f) ||\n        (c >= 0x2500 && c <= 0x25b6) ||\n        c === 0x25b7 ||\n        (c >= 0x25b8 && c <= 0x25c0) ||\n        c === 0x25c1 ||\n        (c >= 0x25c2 && c <= 0x25f7) ||\n        (c >= 0x25f8 && c <= 0x25ff) ||\n        (c >= 0x2600 && c <= 0x266e) ||\n        c === 0x266f ||\n        (c >= 0x2670 && c <= 0x2767) ||\n        c === 0x2768 ||\n        c === 0x2769 ||\n        c === 0x276a ||\n        c === 0x276b ||\n        c === 0x276c ||\n        c === 0x276d ||\n        c === 0x276e ||\n        c === 0x276f ||\n        c === 0x2770 ||\n        c === 0x2771 ||\n        c === 0x2772 ||\n        c === 0x2773 ||\n        c === 0x2774 ||\n        c === 0x2775 ||\n        (c >= 0x2794 && c <= 0x27bf) ||\n        (c >= 0x27c0 && c <= 0x27c4) ||\n        c === 0x27c5 ||\n        c === 0x27c6 ||\n        (c >= 0x27c7 && c <= 0x27e5) ||\n        c === 0x27e6 ||\n        c === 0x27e7 ||\n        c === 0x27e8 ||\n        c === 0x27e9 ||\n        c === 0x27ea ||\n        c === 0x27eb ||\n        c === 0x27ec ||\n        c === 0x27ed ||\n        c === 0x27ee ||\n        c === 0x27ef ||\n        (c >= 0x27f0 && c <= 0x27ff) ||\n        (c >= 0x2800 && c <= 0x28ff) ||\n        (c >= 0x2900 && c <= 0x2982) ||\n        c === 0x2983 ||\n        c === 0x2984 ||\n        c === 0x2985 ||\n        c === 0x2986 ||\n        c === 0x2987 ||\n        c === 0x2988 ||\n        c === 0x2989 ||\n        c === 0x298a ||\n        c === 0x298b ||\n        c === 0x298c ||\n        c === 0x298d ||\n        c === 0x298e ||\n        c === 0x298f ||\n        c === 0x2990 ||\n        c === 0x2991 ||\n        c === 0x2992 ||\n        c === 0x2993 ||\n        c === 0x2994 ||\n        c === 0x2995 ||\n        c === 0x2996 ||\n        c === 0x2997 ||\n        c === 0x2998 ||\n        (c >= 0x2999 && c <= 0x29d7) ||\n        c === 0x29d8 ||\n        c === 0x29d9 ||\n        c === 0x29da ||\n        c === 0x29db ||\n        (c >= 0x29dc && c <= 0x29fb) ||\n        c === 0x29fc ||\n        c === 0x29fd ||\n        (c >= 0x29fe && c <= 0x2aff) ||\n        (c >= 0x2b00 && c <= 0x2b2f) ||\n        (c >= 0x2b30 && c <= 0x2b44) ||\n        (c >= 0x2b45 && c <= 0x2b46) ||\n        (c >= 0x2b47 && c <= 0x2b4c) ||\n        (c >= 0x2b4d && c <= 0x2b73) ||\n        (c >= 0x2b74 && c <= 0x2b75) ||\n        (c >= 0x2b76 && c <= 0x2b95) ||\n        c === 0x2b96 ||\n        (c >= 0x2b97 && c <= 0x2bff) ||\n        (c >= 0x2e00 && c <= 0x2e01) ||\n        c === 0x2e02 ||\n        c === 0x2e03 ||\n        c === 0x2e04 ||\n        c === 0x2e05 ||\n        (c >= 0x2e06 && c <= 0x2e08) ||\n        c === 0x2e09 ||\n        c === 0x2e0a ||\n        c === 0x2e0b ||\n        c === 0x2e0c ||\n        c === 0x2e0d ||\n        (c >= 0x2e0e && c <= 0x2e16) ||\n        c === 0x2e17 ||\n        (c >= 0x2e18 && c <= 0x2e19) ||\n        c === 0x2e1a ||\n        c === 0x2e1b ||\n        c === 0x2e1c ||\n        c === 0x2e1d ||\n        (c >= 0x2e1e && c <= 0x2e1f) ||\n        c === 0x2e20 ||\n        c === 0x2e21 ||\n        c === 0x2e22 ||\n        c === 0x2e23 ||\n        c === 0x2e24 ||\n        c === 0x2e25 ||\n        c === 0x2e26 ||\n        c === 0x2e27 ||\n        c === 0x2e28 ||\n        c === 0x2e29 ||\n        (c >= 0x2e2a && c <= 0x2e2e) ||\n        c === 0x2e2f ||\n        (c >= 0x2e30 && c <= 0x2e39) ||\n        (c >= 0x2e3a && c <= 0x2e3b) ||\n        (c >= 0x2e3c && c <= 0x2e3f) ||\n        c === 0x2e40 ||\n        c === 0x2e41 ||\n        c === 0x2e42 ||\n        (c >= 0x2e43 && c <= 0x2e4f) ||\n        (c >= 0x2e50 && c <= 0x2e51) ||\n        c === 0x2e52 ||\n        (c >= 0x2e53 && c <= 0x2e7f) ||\n        (c >= 0x3001 && c <= 0x3003) ||\n        c === 0x3008 ||\n        c === 0x3009 ||\n        c === 0x300a ||\n        c === 0x300b ||\n        c === 0x300c ||\n        c === 0x300d ||\n        c === 0x300e ||\n        c === 0x300f ||\n        c === 0x3010 ||\n        c === 0x3011 ||\n        (c >= 0x3012 && c <= 0x3013) ||\n        c === 0x3014 ||\n        c === 0x3015 ||\n        c === 0x3016 ||\n        c === 0x3017 ||\n        c === 0x3018 ||\n        c === 0x3019 ||\n        c === 0x301a ||\n        c === 0x301b ||\n        c === 0x301c ||\n        c === 0x301d ||\n        (c >= 0x301e && c <= 0x301f) ||\n        c === 0x3020 ||\n        c === 0x3030 ||\n        c === 0xfd3e ||\n        c === 0xfd3f ||\n        (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n    var skeletonCopy = '';\n    for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n        var patternChar = skeleton.charAt(patternPos);\n        if (patternChar === 'j') {\n            var extraLength = 0;\n            while (patternPos + 1 < skeleton.length &&\n                skeleton.charAt(patternPos + 1) === patternChar) {\n                extraLength++;\n                patternPos++;\n            }\n            var hourLen = 1 + (extraLength & 1);\n            var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n            var dayPeriodChar = 'a';\n            var hourChar = getDefaultHourSymbolFromLocale(locale);\n            if (hourChar == 'H' || hourChar == 'k') {\n                dayPeriodLen = 0;\n            }\n            while (dayPeriodLen-- > 0) {\n                skeletonCopy += dayPeriodChar;\n            }\n            while (hourLen-- > 0) {\n                skeletonCopy = hourChar + skeletonCopy;\n            }\n        }\n        else if (patternChar === 'J') {\n            skeletonCopy += 'H';\n        }\n        else {\n            skeletonCopy += patternChar;\n        }\n    }\n    return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n    var hourCycle = locale.hourCycle;\n    if (hourCycle === undefined &&\n        // @ts-ignore hourCycle(s) is not identified yet\n        locale.hourCycles &&\n        // @ts-ignore\n        locale.hourCycles.length) {\n        // @ts-ignore\n        hourCycle = locale.hourCycles[0];\n    }\n    if (hourCycle) {\n        switch (hourCycle) {\n            case 'h24':\n                return 'k';\n            case 'h23':\n                return 'H';\n            case 'h12':\n                return 'h';\n            case 'h11':\n                return 'K';\n            default:\n                throw new Error('Invalid hourCycle');\n        }\n    }\n    // TODO: Once hourCycle is fully supported remove the following with data generation\n    var languageTag = locale.language;\n    var regionTag;\n    if (languageTag !== 'root') {\n        regionTag = locale.maximize().region;\n    }\n    var hourCycles = timeData[regionTag || ''] ||\n        timeData[languageTag || ''] ||\n        timeData[\"\".concat(languageTag, \"-001\")] ||\n        timeData['001'];\n    return hourCycles[0];\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n    els.forEach(function (el) {\n        delete el.location;\n        if (isSelectElement(el) || isPluralElement(el)) {\n            for (var k in el.options) {\n                delete el.options[k].location;\n                pruneLocation(el.options[k].value);\n            }\n        }\n        else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n            delete el.style.location;\n        }\n        else if ((isDateElement(el) || isTimeElement(el)) &&\n            isDateTimeSkeleton(el.style)) {\n            delete el.style.location;\n        }\n        else if (isTagElement(el)) {\n            pruneLocation(el.children);\n        }\n    });\n}\nexport function parse(message, opts) {\n    if (opts === void 0) { opts = {}; }\n    opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n    var result = new Parser(message, opts).parse();\n    if (result.err) {\n        var error = SyntaxError(ErrorKind[result.err.kind]);\n        // @ts-expect-error Assign to error object\n        error.location = result.err.location;\n        // @ts-expect-error Assign to error object\n        error.originalMessage = result.err.message;\n        throw error;\n    }\n    if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n        pruneLocation(result.val);\n    }\n    return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n    // When we have a placeholder but no value to format\n    ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n    // When value supplied is invalid\n    ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n    // When we need specific Intl API but it's not available\n    ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n    __extends(FormatError, _super);\n    function FormatError(msg, code, originalMessage) {\n        var _this = _super.call(this, msg) || this;\n        _this.code = code;\n        _this.originalMessage = originalMessage;\n        return _this;\n    }\n    FormatError.prototype.toString = function () {\n        return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n    };\n    return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n    __extends(InvalidValueError, _super);\n    function InvalidValueError(variableId, value, options, originalMessage) {\n        return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n    }\n    return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n    __extends(InvalidValueTypeError, _super);\n    function InvalidValueTypeError(value, type, originalMessage) {\n        return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n    }\n    return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n    __extends(MissingValueError, _super);\n    function MissingValueError(variableId, originalMessage) {\n        return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n    }\n    return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n    PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n    PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n    if (parts.length < 2) {\n        return parts;\n    }\n    return parts.reduce(function (all, part) {\n        var lastPart = all[all.length - 1];\n        if (!lastPart ||\n            lastPart.type !== PART_TYPE.literal ||\n            part.type !== PART_TYPE.literal) {\n            all.push(part);\n        }\n        else {\n            lastPart.value += part.value;\n        }\n        return all;\n    }, []);\n}\nexport function isFormatXMLElementFn(el) {\n    return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n    // Hot path for straight simple msg translations\n    if (els.length === 1 && isLiteralElement(els[0])) {\n        return [\n            {\n                type: PART_TYPE.literal,\n                value: els[0].value,\n            },\n        ];\n    }\n    var result = [];\n    for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n        var el = els_1[_i];\n        // Exit early for string parts.\n        if (isLiteralElement(el)) {\n            result.push({\n                type: PART_TYPE.literal,\n                value: el.value,\n            });\n            continue;\n        }\n        // TODO: should this part be literal type?\n        // Replace `#` in plural rules with the actual numeric value.\n        if (isPoundElement(el)) {\n            if (typeof currentPluralValue === 'number') {\n                result.push({\n                    type: PART_TYPE.literal,\n                    value: formatters.getNumberFormat(locales).format(currentPluralValue),\n                });\n            }\n            continue;\n        }\n        var varName = el.value;\n        // Enforce that all required values are provided by the caller.\n        if (!(values && varName in values)) {\n            throw new MissingValueError(varName, originalMessage);\n        }\n        var value = values[varName];\n        if (isArgumentElement(el)) {\n            if (!value || typeof value === 'string' || typeof value === 'number') {\n                value =\n                    typeof value === 'string' || typeof value === 'number'\n                        ? String(value)\n                        : '';\n            }\n            result.push({\n                type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n                value: value,\n            });\n            continue;\n        }\n        // Recursively format plural and select parts' option — which can be a\n        // nested pattern structure. The choosing of the option to use is\n        // abstracted-by and delegated-to the part helper object.\n        if (isDateElement(el)) {\n            var style = typeof el.style === 'string'\n                ? formats.date[el.style]\n                : isDateTimeSkeleton(el.style)\n                    ? el.style.parsedOptions\n                    : undefined;\n            result.push({\n                type: PART_TYPE.literal,\n                value: formatters\n                    .getDateTimeFormat(locales, style)\n                    .format(value),\n            });\n            continue;\n        }\n        if (isTimeElement(el)) {\n            var style = typeof el.style === 'string'\n                ? formats.time[el.style]\n                : isDateTimeSkeleton(el.style)\n                    ? el.style.parsedOptions\n                    : formats.time.medium;\n            result.push({\n                type: PART_TYPE.literal,\n                value: formatters\n                    .getDateTimeFormat(locales, style)\n                    .format(value),\n            });\n            continue;\n        }\n        if (isNumberElement(el)) {\n            var style = typeof el.style === 'string'\n                ? formats.number[el.style]\n                : isNumberSkeleton(el.style)\n                    ? el.style.parsedOptions\n                    : undefined;\n            if (style && style.scale) {\n                value =\n                    value *\n                        (style.scale || 1);\n            }\n            result.push({\n                type: PART_TYPE.literal,\n                value: formatters\n                    .getNumberFormat(locales, style)\n                    .format(value),\n            });\n            continue;\n        }\n        if (isTagElement(el)) {\n            var children = el.children, value_1 = el.value;\n            var formatFn = values[value_1];\n            if (!isFormatXMLElementFn(formatFn)) {\n                throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n            }\n            var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n            var chunks = formatFn(parts.map(function (p) { return p.value; }));\n            if (!Array.isArray(chunks)) {\n                chunks = [chunks];\n            }\n            result.push.apply(result, chunks.map(function (c) {\n                return {\n                    type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n                    value: c,\n                };\n            }));\n        }\n        if (isSelectElement(el)) {\n            var opt = el.options[value] || el.options.other;\n            if (!opt) {\n                throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n            }\n            result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n            continue;\n        }\n        if (isPluralElement(el)) {\n            var opt = el.options[\"=\".concat(value)];\n            if (!opt) {\n                if (!Intl.PluralRules) {\n                    throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n                }\n                var rule = formatters\n                    .getPluralRules(locales, { type: el.pluralType })\n                    .select(value - (el.offset || 0));\n                opt = el.options[rule] || el.options.other;\n            }\n            if (!opt) {\n                throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n            }\n            result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n            continue;\n        }\n    }\n    return mergeLiteral(result);\n}\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n    IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n    IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n    IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n    IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n    IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n    __extends(IntlError, _super);\n    function IntlError(code, message, exception) {\n        var _this = this;\n        var err = exception\n            ? exception instanceof Error\n                ? exception\n                : new Error(String(exception))\n            : undefined;\n        _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \"\\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n        _this.code = code;\n        // @ts-ignore just so we don't need to declare dep on @types/node\n        if (typeof Error.captureStackTrace === 'function') {\n            // @ts-ignore just so we don't need to declare dep on @types/node\n            Error.captureStackTrace(_this, IntlError);\n        }\n        return _this;\n    }\n    return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n    __extends(UnsupportedFormatterError, _super);\n    function UnsupportedFormatterError(message, exception) {\n        return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n    }\n    return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n    __extends(InvalidConfigError, _super);\n    function InvalidConfigError(message, exception) {\n        return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n    }\n    return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n    __extends(MissingDataError, _super);\n    function MissingDataError(message, exception) {\n        return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n    }\n    return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n    __extends(IntlFormatError, _super);\n    function IntlFormatError(message, locale, exception) {\n        var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \"\\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n        _this.locale = locale;\n        return _this;\n    }\n    return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n    __extends(MessageFormatError, _super);\n    function MessageFormatError(message, locale, descriptor, exception) {\n        var _this = _super.call(this, \"\".concat(message, \"\\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \"\\n\"), locale, exception) || this;\n        _this.descriptor = descriptor;\n        _this.locale = locale;\n        return _this;\n    }\n    return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n    __extends(MissingTranslationError, _super);\n    function MissingTranslationError(descriptor, locale) {\n        var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage\n            ? \"default message (\".concat(typeof descriptor.defaultMessage === 'string'\n                ? descriptor.defaultMessage\n                : descriptor.defaultMessage\n                    .map(function (e) { var _a; return (_a = e.value) !== null && _a !== void 0 ? _a : JSON.stringify(e); })\n                    .join(), \")\")\n            : 'id', \" as fallback.\")) || this;\n        _this.descriptor = descriptor;\n        return _this;\n    }\n    return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n    if (!c2) {\n        return c1;\n    }\n    return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n        all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n        return all;\n    }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n    if (!configs) {\n        return defaultConfig;\n    }\n    return Object.keys(defaultConfig).reduce(function (all, k) {\n        all[k] = mergeConfig(defaultConfig[k], configs[k]);\n        return all;\n    }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n    return {\n        create: function () {\n            return {\n                get: function (key) {\n                    return store[key];\n                },\n                set: function (key, value) {\n                    store[key] = value;\n                },\n            };\n        },\n    };\n}\nfunction createDefaultFormatters(cache) {\n    if (cache === void 0) { cache = {\n        number: {},\n        dateTime: {},\n        pluralRules: {},\n    }; }\n    return {\n        getNumberFormat: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.number),\n            strategy: strategies.variadic,\n        }),\n        getDateTimeFormat: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.dateTime),\n            strategy: strategies.variadic,\n        }),\n        getPluralRules: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.pluralRules),\n            strategy: strategies.variadic,\n        }),\n    };\n}\nexport var IntlMessageFormat = /** @class */ (function () {\n    function IntlMessageFormat(message, locales, overrideFormats, opts) {\n        if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n        var _this = this;\n        this.formatterCache = {\n            number: {},\n            dateTime: {},\n            pluralRules: {},\n        };\n        this.format = function (values) {\n            var parts = _this.formatToParts(values);\n            // Hot path for straight simple msg translations\n            if (parts.length === 1) {\n                return parts[0].value;\n            }\n            var result = parts.reduce(function (all, part) {\n                if (!all.length ||\n                    part.type !== PART_TYPE.literal ||\n                    typeof all[all.length - 1] !== 'string') {\n                    all.push(part.value);\n                }\n                else {\n                    all[all.length - 1] += part.value;\n                }\n                return all;\n            }, []);\n            if (result.length <= 1) {\n                return result[0] || '';\n            }\n            return result;\n        };\n        this.formatToParts = function (values) {\n            return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n        };\n        this.resolvedOptions = function () {\n            var _a;\n            return ({\n                locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n                    Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n            });\n        };\n        this.getAst = function () { return _this.ast; };\n        // Defined first because it's used to build the format pattern.\n        this.locales = locales;\n        this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n        if (typeof message === 'string') {\n            this.message = message;\n            if (!IntlMessageFormat.__parse) {\n                throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n            }\n            var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n            // Parse string messages into an AST.\n            this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n        }\n        else {\n            this.ast = message;\n        }\n        if (!Array.isArray(this.ast)) {\n            throw new TypeError('A message must be provided as a String or AST.');\n        }\n        // Creates a new object with the specified `formats` merged with the default\n        // formats.\n        this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n        this.formatters =\n            (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n    }\n    Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n        get: function () {\n            if (!IntlMessageFormat.memoizedDefaultLocale) {\n                IntlMessageFormat.memoizedDefaultLocale =\n                    new Intl.NumberFormat().resolvedOptions().locale;\n            }\n            return IntlMessageFormat.memoizedDefaultLocale;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    IntlMessageFormat.memoizedDefaultLocale = null;\n    IntlMessageFormat.resolveLocale = function (locales) {\n        if (typeof Intl.Locale === 'undefined') {\n            return;\n        }\n        var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n        if (supportedLocales.length > 0) {\n            return new Intl.Locale(supportedLocales[0]);\n        }\n        return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n    };\n    IntlMessageFormat.__parse = parse;\n    // Default format options used as the prototype of the `formats` provided to the\n    // constructor. These are used when constructing the internal Intl.NumberFormat\n    // and Intl.DateTimeFormat instances.\n    IntlMessageFormat.formats = {\n        number: {\n            integer: {\n                maximumFractionDigits: 0,\n            },\n            currency: {\n                style: 'currency',\n            },\n            percent: {\n                style: 'percent',\n            },\n        },\n        date: {\n            short: {\n                month: 'numeric',\n                day: 'numeric',\n                year: '2-digit',\n            },\n            medium: {\n                month: 'short',\n                day: 'numeric',\n                year: 'numeric',\n            },\n            long: {\n                month: 'long',\n                day: 'numeric',\n                year: 'numeric',\n            },\n            full: {\n                weekday: 'long',\n                month: 'long',\n                day: 'numeric',\n                year: 'numeric',\n            },\n        },\n        time: {\n            short: {\n                hour: 'numeric',\n                minute: 'numeric',\n            },\n            medium: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n            },\n            long: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n                timeZoneName: 'short',\n            },\n            full: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n                timeZoneName: 'short',\n            },\n        },\n    };\n    return IntlMessageFormat;\n}());\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar LIST_FORMAT_OPTIONS = [\n    'type',\n    'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n    return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n    if (options === void 0) { options = {}; }\n    var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n        var val = el.value;\n        if (typeof val !== 'string') {\n            all.push(val);\n        }\n        else if (typeof all[all.length - 1] === 'string') {\n            all[all.length - 1] += val;\n        }\n        else {\n            all.push(val);\n        }\n        return all;\n    }, []);\n    return results.length === 1 ? results[0] : results.length === 0 ? '' : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n    var locale = _a.locale, onError = _a.onError;\n    if (options === void 0) { options = {}; }\n    var ListFormat = Intl.ListFormat;\n    if (!ListFormat) {\n        onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n    }\n    var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n    try {\n        var richValues_1 = {};\n        var serializedValues = values.map(function (v, i) {\n            if (typeof v === 'object') {\n                var id = generateToken(i);\n                richValues_1[id] = v;\n                return id;\n            }\n            return String(v);\n        });\n        return getListFormat(locale, filteredOptions)\n            .formatToParts(serializedValues)\n            .map(function (part) {\n            return part.type === 'literal'\n                ? part\n                : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n        });\n    }\n    catch (e) {\n        onError(new IntlFormatError('Error formatting list.', locale, e));\n    }\n    // @ts-ignore\n    return values;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IntlConfig, IntlShape } from '@formatjs/intl';\nimport { createIntl, createIntlCache } from '@formatjs/intl';\nimport React, { createContext, useCallback, useMemo } from 'react';\n\nimport type { FormatIntlProps } from '../../@types/FormatIntl';\n\nexport const FormatIntlContext = createContext<IntlShape>({} as IntlShape);\n\n// Use createIntlCache rather than a custom object cache because createIntlCache has internal mechanism to prevent memory leak\n// Putting it outside of the component to prevent re-creating the cache in case there are multiple instances of FormatIntlProvider\nconst cache = createIntlCache();\n\n/* Provider that relies on formatjs/intl that allows the values such as date and number to use different locales from messages */\nexport const FormatIntlProvider: React.FC<FormatIntlProps> = ({\n    children,\n    localeOverrides = {},\n    onLocaleError,\n    ...intlConfig\n}) => {\n    // Create default intl instance for message formatting\n    const intl = createIntl(intlConfig as IntlConfig, cache);\n\n    const intlMap = useMemo(() => {\n        const map = new Map<string, IntlShape>([[intl.locale, intl]]);\n\n        Object.values(localeOverrides).forEach((locale: string) => {\n            if (locale && !map.has(locale)) {\n                try {\n                    let hasErrorOccurred = false;\n                    const newIntl = createIntl(\n                        {\n                            locale,\n                            messages: {} as Record<string, string>,\n                            // When the locale is not supported but has correct form (e.g. ab-cd),\n                            // it will not throw an error but will call what we pass in onError\n                            onError: (err) => {\n                                intlConfig.onError?.(err);\n                                // onError is synchronously ran, therefore we will have this set before the check below\n                                hasErrorOccurred = true;\n                            },\n                        },\n                        cache,\n                    );\n\n                    if (!hasErrorOccurred) {\n                        // Only when no error is called back from createIntl, add the to map\n                        map.set(locale, newIntl);\n                    }\n                    // ELSE: When an error is called back from createIntl, do not add to the map and allow for default intl instance to be used\n                } catch (error) {\n                    // When the locale is invalid (e.g. en_GB), it will throw an error so we catch it here to handle it gracefully.\n                    // Default intl instance will be used for invalid locale.\n                    onLocaleError?.(`Locale ${locale} is invalid. ${String(error)}`);\n                }\n            }\n        });\n\n        return map;\n    }, [intl, intlConfig, localeOverrides, onLocaleError]);\n\n    const getIntl = useCallback(\n        // It is guaranteed that the default locale is in the map\n        (locale: string = intl.locale): IntlShape => intlMap.get(locale) || intl,\n        [intl, intlMap],\n    );\n\n    const { date: dateLocale, number: numberLocale } = localeOverrides;\n    const formatIntl: IntlShape = useMemo(\n        () => ({\n            ...intl,\n            // args are needed to bind function to this so no unbound-function TS error\n            formatDate: (...args) => getIntl(dateLocale).formatDate(...args),\n            formatNumber: (...args) => getIntl(numberLocale).formatNumber(...args),\n            formatRelativeTime: (...args) => getIntl(dateLocale).formatRelativeTime(...args),\n        }),\n        [dateLocale, getIntl, intl, numberLocale],\n    );\n\n    return <FormatIntlContext.Provider value={formatIntl}>{children}</FormatIntlContext.Provider>;\n};\n\nFormatIntlProvider.displayName = 'FormatIntlProvider';\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\nimport React, { useEffect, useRef } from 'react';\nimport type { Toast as ToastType } from '@ccx-public/spectrum-web-component-fallbacks/dist/toast';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport type { ReactProps } from './utils';\nimport { filterBooleanProps, useComponent } from './utils';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport Button from './Button';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Toast: React.ComponentType<ReactProps<ToastType, RS2CompatProps>> =\n    process.env.INCLUDE_RS2\n        ? interopRequireDefault(require('react-spectrum/Toast')).Toast\n        : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(['sp-toast'], async () => {\n        const { Toast } = await import(\n            /* webpackChunkName: \"SpToast\" */\n            '@ccx-public/spectrum-web-component-fallbacks/dist/toast'\n        );\n        return [Toast];\n    });\n}\n\n// https://opensource.adobe.com/spectrum-web-components/components/toast/\n// https://git.corp.adobe.com/torq/react-spectrum/tree/develop/src/Toast\n// https://git.corp.adobe.com/React/react-spectrum-v2/blob/master/src/Toast/js/Toast.js\ntype RS2CompatProps = {\n    /**\n     * Variant of Toast: Success, Error, Warning, Info\n     */\n    variant?: 'error' | 'warning' | 'info' | 'success';\n    /**\n     * actionLabel of Toast: Button inside a toast\n     */\n    actionLabel?: string;\n    /**\n     * closeOnAction: Close the toast after clicking on button\n     */\n    closeOnAction?: boolean;\n    /**\n     * onAction: click on button of toast\n     */\n    onAction?: () => void;\n    /**\n     * onClose: click on close of toast\n     */\n    onClose: () => void;\n    /**\n     * Whether to show close button on toast.\n     */\n    closable?: boolean;\n};\n\nexport const Toast = createWrapper<ToastType, RS2CompatProps>({\n    displayName: 'Toast',\n    fallback: RS2Toast,\n    swcLoader,\n    SWCWrapper: function SpToast(props) {\n        const toastContainer = useRef<ToastType>(null);\n\n        const {\n            variant,\n            className,\n            actionLabel,\n            children,\n            closeOnAction,\n            onAction,\n            onClose,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            closable,\n            open = true,\n            ...rest\n        } = props;\n\n        useEffect(() => {\n            const current = toastContainer?.current;\n\n            if (current && onClose) {\n                current.addEventListener('close', onClose);\n            }\n\n            return () =>\n                current && onClose\n                    ? current.removeEventListener('close', onClose)\n                    : undefined;\n        });\n\n        // ReactSpectrum2        | SpectrumWebComponent\n        // ---------------------------------------------\n        // closable               | N/A (always closable)\n        // actionable             | added button component separately\n        // closeOnAction          | added button component separately\n        // Variant:error          | Variant:negative\n        // Variant:warning        | N/A\n        // Variant:info           | Variant:info\n        // Variant:success        | Variant:positive\n\n        //In SWC on close action they just disable the open attributes\n\n        const swcVariant =\n            variant === 'success'\n                ? ('positive' as const)\n                : variant === 'error'\n                ? ('negative' as const)\n                : variant;\n\n        const Toast = useComponent('sp-toast');\n        return (\n            <Toast\n                {...rest}\n                {...filterBooleanProps({ open })}\n                class={className}\n                ref={toastContainer}\n                variant={swcVariant}\n            >\n                {children}\n                {actionLabel && (\n                    <Button\n                        slot=\"action\"\n                        variant=\"overBackground\"\n                        onClick={() => {\n                            onAction?.();\n                            if (closeOnAction) {\n                                toastContainer.current?.close();\n                            }\n                        }}\n                    >\n                        {actionLabel}\n                    </Button>\n                )}\n            </Toast>\n        );\n    },\n    tagName: 'sp-toast',\n});\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport Provider from '@ccx-public/spectrum-wrapper/dist/Provider';\nimport { Toast } from '@ccx-public/spectrum-wrapper/dist/Toast';\nimport React, { useCallback, useReducer, useMemo } from 'react';\nimport { createPortal } from 'react-dom';\nimport { v4 as uuidv4 } from 'uuid';\n\nconst VARIANT_MAP: Record<\n    NonNullable<AssetBrowser.ToastConfig['variant']>,\n    NonNullable<React.ComponentProps<typeof Toast>['variant']>\n> = {\n    neutral: 'info',\n    info: 'info',\n    positive: 'success',\n    negative: 'error',\n};\n\ntype Add = { type: 'toast/add'; payload: AssetBrowser.ToastConfig };\ntype Remove = { type: 'toast/remove'; id: string };\ntype Action = Add | Remove;\ntype ToastWithIdAndPriority = AssetBrowser.ToastConfig & { id: string; priority: number };\n\nfunction getToastPriority(variant?: AssetBrowser.ToastConfig['variant']): number {\n    switch (variant) {\n        case 'negative':\n            return 1;\n        case 'positive':\n            return 2;\n        case 'info':\n        case 'neutral':\n        default:\n            return 3;\n    }\n}\n\nfunction toastsReducer(toasts: ToastWithIdAndPriority[], action: Action): ToastWithIdAndPriority[] {\n    switch (action.type) {\n        case 'toast/add': {\n            const newToast = {\n                ...action.payload,\n                id: uuidv4(),\n                priority: getToastPriority(action.payload.variant),\n            };\n\n            // insert toast in queue based on priority\n            let insertIndex = toasts.length; // By default, insert at the end\n            for (let i = 0; i < toasts.length; i++) {\n                if (newToast.priority <= toasts[i].priority) {\n                    insertIndex = i;\n                    break;\n                }\n            }\n\n            return [...toasts.slice(0, insertIndex), newToast];\n        }\n        case 'toast/remove': {\n            return toasts.filter((t) => t.id !== action.id);\n        }\n    }\n}\n\nexport function useToasts(\n    spectrum: React.ComponentProps<typeof Provider> | null,\n): [React.ReactNode, (config: AssetBrowser.ToastConfig) => unknown] {\n    const [toasts, dispatch] = useReducer(toastsReducer, []);\n\n    const showToast = useCallback((config: AssetBrowser.ToastConfig) => {\n        dispatch({ type: 'toast/add', payload: config });\n    }, []);\n\n    const currentToast = toasts[0];\n\n    const toastContainer = useMemo(() => {\n        return currentToast\n            ? createPortal(\n                  <Provider {...spectrum}>\n                      <div\n                          data-testid=\"uab-toast-container\"\n                          style={{\n                              position: 'fixed',\n                              left: '50%',\n                              transform: 'translateX(-50%)',\n                              bottom: '1rem',\n                          }}\n                          role=\"region\"\n                      >\n                          <Toast\n                              actionLabel={currentToast.actionCallback?.label}\n                              key={currentToast.id}\n                              onAction={() => {\n                                  currentToast.actionCallback?.callback();\n                                  // dismiss the toast after action callback because close is not automatically called\n                                  dispatch({ type: 'toast/remove', id: currentToast.id });\n                              }}\n                              onClose={() =>\n                                  dispatch({ type: 'toast/remove', id: currentToast.id })\n                              }\n                              timeout={currentToast.dismissTime ?? 6000}\n                              variant={\n                                  currentToast.variant ? VARIANT_MAP[currentToast.variant] : 'info'\n                              }\n                          >\n                              {currentToast.content}\n                          </Toast>\n                      </div>\n                  </Provider>,\n                  document.body,\n              )\n            : null;\n    }, [currentToast, spectrum]);\n\n    return [toastContainer, showToast];\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\n\nexport type SelectionChangeEventDetail = {\n    selection: SAM.AdobeAsset[];\n};\n\nexport class SelectionChangeEvent extends CustomEvent<SelectionChangeEventDetail> {\n    static readonly EVENT_NAME = 'selectionChange';\n\n    constructor(detail: SelectionChangeEventDetail) {\n        super(SelectionChangeEvent.EVENT_NAME, { bubbles: true, composed: true, detail });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { RefObject } from 'react';\nimport React, { Component, createRef } from 'react';\nimport { render, unmountComponentAtNode } from 'react-dom';\n\nexport function wrapComponentWithReactDom<T extends object>(\n    TargetComponent: React.ComponentType<T>,\n) {\n    return class ReactDomPropPasser extends Component<T> {\n        node: RefObject<HTMLDivElement> = createRef();\n\n        constructor(props: T) {\n            super(props);\n            this.updateTarget = this.updateTarget.bind(this);\n        }\n\n        updateTarget() {\n            if (this.node.current) {\n                render(<TargetComponent {...this.props} />, this.node.current);\n            }\n        }\n\n        componentDidMount() {\n            this.updateTarget();\n        }\n\n        componentDidUpdate() {\n            this.updateTarget();\n        }\n\n        componentWillUnmount() {\n            if (this.node.current) {\n                unmountComponentAtNode(this.node.current);\n            }\n        }\n\n        render() {\n            return <div ref={this.node} style={{ height: 'inherit' }} />;\n        }\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * Used when a chunk fails to load.\n */\nexport class ChunkLoadErrorEvent extends CustomEvent<string> {\n    static readonly EVENT_NAME = 'chunk-load-error';\n\n    constructor() {\n        super(ChunkLoadErrorEvent.EVENT_NAME, { bubbles: true, composed: true });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React, { createContext } from 'react';\n\nexport const MobileContext = createContext<boolean>(false);\n\nexport function MobileProvider({\n    isMobile,\n    children,\n}: React.PropsWithChildren<{ isMobile: boolean }>) {\n    return <MobileContext.Provider value={isMobile}>{children}</MobileContext.Provider>;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { PropsWithChildren } from 'react';\nimport React, { createContext, useCallback, useEffect, useState } from 'react';\n\nexport const NetworkContext = createContext<boolean>(true);\n\n/**\n * Provides the online/offline status to its children by listening  to the browser's online and offline events and updates the status accordingly.\n * @param {boolean} [props.online] - Optional prop to override the status.\n * @param {React.ReactNode} props.children - The children components that will receive the online status.\n * @returns {JSX.Element} The NetworkProvider component.\n */\nexport const NetworkProvider = ({ online, children }: PropsWithChildren<{ online?: boolean }>) => {\n    const [isOnline, setIsOnline] = useState<boolean>(true);\n\n    const updateOnlineStatus = useCallback(() => {\n        setIsOnline(online ?? navigator.onLine);\n    }, [online]);\n\n    useEffect(() => {\n        updateOnlineStatus();\n    }, [updateOnlineStatus]);\n\n    useEffect(() => {\n        window.addEventListener('online', updateOnlineStatus);\n        window.addEventListener('offline', updateOnlineStatus);\n\n        return () => {\n            window.removeEventListener('online', updateOnlineStatus);\n            window.removeEventListener('offline', updateOnlineStatus);\n        };\n    }, [updateOnlineStatus]);\n\n    return <NetworkContext.Provider value={isOnline}>{children}</NetworkContext.Provider>;\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2020 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * PickerMode is an enum for quickly configuring parts of CDP UI to show/hide various\n * features including tabs, buttons, and behvaioral changes. Modes can be sent through several APIs including through\n * Panel.tsx, Commands.tsx, and WebCommands.tsx, returned from host.getPickerInfo() calls and\n * through a PICKERSTATECHANGED event sent from UXP which provides the new mode.\n * The mode is also sent through executeValidPickerAction call into the host.\n */\nimport { AssetBrowser } from '@ccx-public/component-types';\n\nexport type PickerMode = AssetBrowser.PickerMode;\nexport const PickerMode = AssetBrowser.PickerMode;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { ComponentLoader } from '@ccx-public/component-loader';\nimport type { Env } from '@ccx-public/component-types';\nimport { useMemo } from 'react';\n\nconst LOADERS: Record<Env, ComponentLoader | void> = {\n    stage: undefined,\n    prod: undefined,\n};\n\nfunction createLoader(environment: Env = 'stage') {\n    return new ComponentLoader({ cdnEnvironment: environment });\n}\n\nfunction getLoader(environment: Env = 'stage'): ComponentLoader {\n    const cached = LOADERS[environment];\n    if (cached) {\n        return cached;\n    }\n\n    const loader = createLoader(environment);\n    LOADERS[environment] = loader;\n    return loader;\n}\n\nexport function useComponentLoader(env: Env): ComponentLoader {\n    return useMemo(() => getLoader(env), [env]);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport type { PropsWithChildren } from 'react';\nimport React, { createContext } from 'react';\n\nexport const DocumentCallbacksContext = createContext<\n    // TODO: change this to AssetBrowser.DocumentCallbacks once DocumentCallbacks has these fields\n    AssetBrowser.DocumentCallbacks &\n        Pick<AssetBrowser.ICDOCallbacks, 'promptUserForFileImport' | 'importFiles'>\n>({});\n\nexport function DocumentCallbacksProvider({\n    children,\n    ...rest\n}: PropsWithChildren<AssetBrowser.DocumentCallbacks>) {\n    return (\n        <DocumentCallbacksContext.Provider value={rest}>\n            {children}\n        </DocumentCallbacksContext.Provider>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { useContext } from 'react';\n\nimport { DocumentCallbacksContext } from '../providers/DocumentCallbacksProvider';\n\n// TODO: change this to AssetBrowser.DocumentCallbacks once DocumentCallbacks has these fields\nexport function useDocumentCallbacks(): AssetBrowser.DocumentCallbacks &\n    Pick<AssetBrowser.ICDOCallbacks, 'promptUserForFileImport' | 'importFiles'> {\n    const context = useContext(DocumentCallbacksContext);\n    return context;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport type { CSSProperties } from 'react';\nimport { useMemo } from 'react';\n\n// these color types are not exported from the top level of SAM\nexport type Stop = SAM.Gradient['stops'][0];\nexport type Color = Stop['color'][0];\nexport type FormattableGradient = Pick<SAM.Gradient, 'type' | 'angle' | 'stops' | 'textColorValue'>;\n\nexport function formatRGB({ value, mode }: Color) {\n    if (mode !== 'RGB') {\n        console.warn(`ace-uab gradient: unexpected color mode ${mode}`);\n    }\n    return `rgb(${value.r} ${value.g} ${value.b})`;\n}\n\nexport function formatGradient(\n    type: FormattableGradient['type'],\n    angle: FormattableGradient['angle'],\n    stops: FormattableGradient['stops'],\n) {\n    // can also be radial, which is not supported\n    if (type !== 'linear') {\n        console.warn(`ace-uab gradient: unexpected gradient type ${type}`);\n    }\n\n    // NOTE: the angle is based on XD where 0deg points right, and on the web 0deg points up, so\n    // we just need to rotate the angle by 90deg to get the correct value\n    // example: 315deg -> -225deg\n    const flippedAngle = 90 - angle;\n\n    const stopValues = stops\n        .map((stop) => {\n            const color = stop.color[0];\n            return `${formatRGB(color)} ${stop.offset * 100}%`;\n        })\n        .join(', ');\n    return `${type}-gradient(${flippedAngle}deg, ${stopValues})`;\n}\n\nexport const defaultGradient: FormattableGradient = {\n    type: 'linear',\n    angle: 315,\n    stops: [\n        {\n            color: [{ mode: 'RGB', value: { r: 244, g: 244, b: 244 } }],\n            offset: 0,\n        },\n        {\n            color: [{ mode: 'RGB', value: { r: 208, g: 208, b: 208 } }],\n            offset: 1,\n        },\n    ],\n    textColorValue: { r: 51, g: 51, b: 51 },\n};\n\nexport function useFormattedGradient(\n    gradient: FormattableGradient | undefined,\n): CSSProperties | undefined {\n    const { type, angle, stops, textColorValue } = gradient ?? defaultGradient;\n\n    return useMemo(() => {\n        if (\n            type === undefined ||\n            angle === undefined ||\n            stops === undefined ||\n            textColorValue === undefined ||\n            stops.length === 0\n        ) {\n            return undefined;\n        }\n\n        const background = formatGradient(type, angle, stops);\n        const color = formatRGB({ mode: 'RGB', value: textColorValue });\n        return { background, color };\n    }, [type, angle, stops, textColorValue]);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { PropsWithChildren } from 'react';\nimport React, { createContext } from 'react';\n\nimport type HostConfig from '../../@types/HostConfig';\n\nconst HostConfigContext = createContext<HostConfig | null>(null);\n\n/** Host configuration component */\nfunction HostConfigProvider(props: PropsWithChildren<HostConfig>) {\n    const { children, ...rest } = props;\n    return <HostConfigContext.Provider value={rest}>{children}</HostConfigContext.Provider>;\n}\n\nexport { HostConfigProvider, HostConfigContext };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useContext } from 'react';\n\nimport type HostConfig from '../../@types/HostConfig';\nimport { HostConfigContext } from '../providers/HostConfigProvider';\n\n/**\n * Hook to use host configuration.\n * @throws {Error} When the host configuration is not initialized.\n */\nexport function useHostConfig(): HostConfig {\n    const config = useContext(HostConfigContext);\n\n    if (!config) {\n        throw new Error('HostConfigContext is uninitialized');\n    }\n\n    return config;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useEffect, useState } from 'react';\n\nexport function useLoading<T>(\n    defaultValue: T | undefined,\n    fn: Promise<T>,\n): { value: T | undefined; error: Error | undefined; loading: boolean } {\n    const [result, setResult] = useState<T | undefined>(defaultValue);\n    const [error, setError] = useState<Error>();\n    const [loading, setLoading] = useState(false);\n\n    useEffect(() => {\n        let cancelled = false;\n\n        function safeState(fn: () => void) {\n            if (cancelled) {\n                return;\n            }\n\n            fn();\n        }\n\n        function load() {\n            safeState(() => setLoading(true));\n\n            // eslint-disable-next-line promise/catch-or-return -- This promise does have a catch block\n            fn.then((result) => {\n                safeState(() => {\n                    setResult(result);\n                    setError(undefined);\n                });\n                return;\n            })\n                .catch((error: Error) => {\n                    safeState(() => setError(error));\n                })\n                .finally(() => safeState(() => setLoading(false)));\n        }\n\n        load();\n\n        return () => {\n            cancelled = true;\n        };\n    }, [fn]);\n\n    return { value: result, error, loading };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useContext, useMemo } from 'react';\n\nimport { HostConfigContext } from '../providers/HostConfigProvider';\n\n/**\n * Options for the usePerformance hook\n */\ntype UsePerformanceOptions = {\n    /**\n     * Prefix to apply to the marker keys\n     */\n    prefix: string;\n    enablePerformanceMeasurement?: boolean;\n    dispatchEvent?: (event: CustomEvent) => void;\n    /**\n     * Optional callback for tracking performance measurements in analytics\n     * @param measureName Name of the measurement\n     * @param duration Duration of the measurement in milliseconds\n     */\n    trackPerformanceAnalytics?: (measureName: string, duration: number | undefined) => void;\n};\n\n/**\n * Util method to obtain a prefix and suffix string.\n * @param prefix - Text to appear at the beginning of the string\n * @param suffix - Text to appear at the end of the string\n * @returns Concatenated prefix and suffix with a colon joining them.\n */\nfunction withPrefix(prefix: string, suffix: string) {\n    return `${prefix}:${suffix}`;\n}\n\n/**\n * Object for capturing performance measurements\n */\nexport class PerformanceMarkerEvent extends CustomEvent<{ marker: string }> {\n    /**\n     * Event name passed to the super class\n     */\n    static readonly EVENT_NAME = 'performance-marker';\n\n    constructor(marker: string) {\n        super(PerformanceMarkerEvent.EVENT_NAME, {\n            bubbles: true,\n            composed: true,\n            detail: { marker },\n        });\n    }\n}\n\nexport type PerformanceUtil = {\n    mark: (marker: string) => void;\n    measure: (name: string, start?: string, end?: string) => PerformanceMeasure | undefined;\n    startMeasure: (measureName: string) => () => void;\n};\n\n/**\n * Creates a performance utility that can be used outside of React components\n * @param prefix Prefix for performance markers\n * @param enablePerformanceMeasurement Flag to enable/disable measurements\n * @param dispatchEvent Optional function to dispatch events\n * @param trackPerformanceAnalytics Optional callback for tracking analytics\n */\nexport function createPerformanceUtil(\n    prefix: string,\n    enablePerformanceMeasurement?: boolean,\n    dispatchEvent?: (event: CustomEvent) => void,\n    trackPerformanceAnalytics?: (measureName: string, duration: number | undefined) => void,\n): PerformanceUtil {\n    const perf = {\n        mark: (marker: string) => {\n            if (!enablePerformanceMeasurement) {\n                return;\n            }\n            const key = withPrefix(prefix, marker);\n            window.performance?.mark(key);\n            dispatchEvent?.(new PerformanceMarkerEvent(key));\n        },\n        measure: (name: string, start?: string, end?: string) => {\n            if (!enablePerformanceMeasurement) {\n                return;\n            }\n            return window.performance?.measure(\n                withPrefix(prefix, name),\n                start ? withPrefix(prefix, start) : undefined,\n                end ? withPrefix(prefix, end) : undefined,\n            );\n        },\n        /**\n         * Measure the performance between start() and end() markers:\n         * @example\n         *     const end = perf.startMeasure('MyComponent');\n         *     end();\n         */\n        startMeasure: (measureName: string) => {\n            const startKey = withPrefix(measureName, 'start');\n            const endKey = withPrefix(measureName, 'end');\n            perf.mark(startKey);\n            let ended = false;\n            return () => {\n                if (!ended) {\n                    ended = true;\n                    perf.mark(endKey);\n                    const performanceMeasure = perf.measure(measureName, startKey, endKey);\n\n                    // Call the trackPerformanceAnalytics callback if provided\n                    if (trackPerformanceAnalytics) {\n                        trackPerformanceAnalytics(measureName, performanceMeasure?.duration);\n                    }\n                }\n            };\n        },\n    };\n    return perf;\n}\n\n/**\n * Hook that provides methods for setting markers and measuring performance between said markers\n * @param options - UsePerformanceOptions\n * @returns Object containing the mark, measure, startMeasure methods\n */\nexport function usePerformance(options: UsePerformanceOptions): PerformanceUtil {\n    const {\n        prefix,\n        enablePerformanceMeasurement: optionsEnablePerformanceMeasurement,\n        dispatchEvent: optionsDispatchEvent,\n        trackPerformanceAnalytics,\n    } = options;\n    // This uses HostConfigContext directly so that we can still call `usePerformance`\n    // internally, even if we haven't fully mounted all the providers.\n    const hostConfig = useContext(HostConfigContext);\n    const {\n        enablePerformanceMeasurement: hostEnablePerformanceMeasurement,\n        dispatchEvent: hostConfigDispatchEvent,\n    } = hostConfig ?? {};\n    const enablePerformanceMeasurement =\n        optionsEnablePerformanceMeasurement || hostEnablePerformanceMeasurement;\n    // Prioritize dispatchEvent from options, fall back to hostConfig\n    const dispatchEvent = optionsDispatchEvent || hostConfigDispatchEvent;\n\n    return useMemo(\n        () =>\n            createPerformanceUtil(\n                prefix,\n                enablePerformanceMeasurement,\n                dispatchEvent,\n                trackPerformanceAnalytics,\n            ),\n        [dispatchEvent, enablePerformanceMeasurement, prefix, trackPerformanceAnalytics],\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport { usePerformance, createPerformanceUtil } from './usePerformance';\n\ninterface LoadPerformanceOptions {\n    /** Measure name */\n    measureName: string;\n    /** Prefix to apply to the marker keys */\n    prefix: string;\n    /** Optional view identifier that starts new measurement on view changes  */\n    view?: string;\n    /** Optional callback for tracking performance in analytics */\n    trackPerformanceAnalytics?: (measureName: string, duration: number | undefined) => void;\n    enablePerformanceMeasurement?: boolean;\n    dispatchEvent?: (event: CustomEvent) => void;\n}\n\n/**\n * Creates a performance measurement for component loading - for use in class components\n * @param options Configuration options\n * @param enablePerformanceMeasurement Flag to enable performance measurement\n * @param dispatchEvent Optional function to dispatch events\n * @returns A function to end the performance measurement\n */\nexport function createLoadPerformanceMeasurement(\n    options: LoadPerformanceOptions,\n    enablePerformanceMeasurement?: boolean,\n    dispatchEvent?: (event: CustomEvent) => void,\n): () => void {\n    const { measureName, prefix, trackPerformanceAnalytics } = options;\n    const perf = createPerformanceUtil(\n        prefix,\n        enablePerformanceMeasurement,\n        dispatchEvent,\n        trackPerformanceAnalytics,\n    );\n\n    // Start the measurement immediately\n    return perf.startMeasure(measureName);\n}\n\n/**\n * Measure the performance between the first render of a component and an end() marker.\n * @example\n *  const end = useLoadPerformance({measureName: 'MyComponent'});\n *  end();\n */\nexport function useLoadPerformance(options: LoadPerformanceOptions) {\n    const {\n        measureName,\n        prefix,\n        view,\n        trackPerformanceAnalytics,\n        enablePerformanceMeasurement,\n        dispatchEvent,\n    } = options;\n    const perf = usePerformance({\n        prefix,\n        trackPerformanceAnalytics,\n        enablePerformanceMeasurement,\n        dispatchEvent,\n    });\n    const endFn = useRef<() => void>();\n\n    useEffect(() => {\n        endFn.current = perf.startMeasure(measureName);\n        // We're disabling exhaustive-deps because we only want this start \"mark\"\n        // to fire once, based on the component name only. We don't want it to\n        // re-fire if `perf` changes (because hostConfig updates), but we do want\n        // to reset the timer if the component name changes (e.g. if we use it for individual items).\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- See above\n    }, [measureName, view]);\n\n    return useCallback(() => {\n        endFn.current?.();\n    }, []);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useContext } from 'react';\n\nimport { MobileContext } from '../contexts/MobileContext';\n\nexport function useMobile(): boolean {\n    return useContext(MobileContext);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useContext } from 'react';\n\nimport { NetworkContext } from '../contexts/NetworkContext';\n\nexport const useOnline = () => {\n    const isOnline = useContext(NetworkContext);\n    return isOnline;\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport { useHostConfig } from '../hooks/useHostConfig';\n\n/**\n * This hook is introduced to prevent a race condition where we direct the host to close the modal before the modal's open animation has finished.\n * This issue was observed in the ProgressDialog modal in desktop hosts applications, but could apply to other situations.\n *\n * This hook will wait for at least the minimum duration before calling the closeModal callback, ensuring the modal has finished animating on open before closing.\n * @param minimumDuration defaults to 100ms\n * @returns a function that can be used to close the modal safely\n */\nexport function useSafeCloseModal(minimumDuration: number = 100) {\n    const mountTimeRef = useRef<number>(Date.now());\n    const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n    const { closeModal } = useHostConfig();\n\n    const safeCloseModal = useCallback<typeof closeModal>(\n        (args) => {\n            // Clear any existing timeout\n            if (timeoutRef.current) {\n                clearTimeout(timeoutRef.current);\n                timeoutRef.current = null;\n            }\n\n            const elapsedTime = Date.now() - mountTimeRef.current;\n\n            if (elapsedTime >= minimumDuration) {\n                // If minimum duration has already elapsed, close immediately\n                closeModal(args);\n            } else {\n                // If minimum duration hasn't elapsed, wait for the remaining time\n                const remainingTime = minimumDuration - elapsedTime;\n                timeoutRef.current = setTimeout(() => {\n                    closeModal(args);\n                }, remainingTime);\n            }\n        },\n        [minimumDuration, closeModal],\n    );\n\n    // Cleanup function to clear timeout\n    useEffect(() => {\n        return () => {\n            if (timeoutRef.current) {\n                clearTimeout(timeoutRef.current);\n            }\n        };\n    }, []);\n\n    return safeCloseModal;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type {\n    AppID,\n    Env,\n    Theme,\n    SpectrumTheme,\n    ColorScheme,\n    ShareSheet,\n} from '@ccx-public/component-types';\nimport { useEffect, useMemo, useState } from 'react';\n\nimport { useComponentLoader } from './useComponentLoader';\nimport { useHostConfig } from './useHostConfig';\nimport SharedConfig from '../config/SharedConfig';\nimport { INVITE_API_VERSION, ProductId } from '../utils/constants';\n\ndeclare global {\n    interface Window {\n        __component_loader_versions__: {\n            ShareSheet?: {\n                version: string;\n            };\n        };\n    }\n}\n\nconst SHARESHEET_TAG_NAME = 'cc-share-dialog';\nconst SHARESHEET_MODULE_NAME = 'ShareSheet';\nconst DEFAULT_SHARESHEET_VERSION = 'uab-stable';\nconst SHARESHEET_EXPRESS_VERSION = 'express-stable';\nconst SHARESHEET_ADOBE_HOME_VERSION = 'adobe-home-stable';\nconst SHARESHEET_ADMIN_CONSOLE_VERSION = 'admin-console-stable';\nconst SHARESHEET_FIREFLY_VERSION = 'firefly-stable';\nconst SHARESHEET_PHOTOSHOP_DESKTOP_VERSION = 'photoshop-desktop-stable';\n\ninterface IShareSheetLoaderProps {\n    appId?: AppID;\n    environment: Env;\n    locale: string;\n    clientId: string;\n    userId: string;\n    productId: string;\n    userEmail?: string;\n    themeType?: SpectrumTheme;\n    theme?: Theme;\n    shareSheetVersion?: string;\n}\n\nconst getShareSheetVersion = (appId?: AppID, productId?: string, shareSheetVersion?: string) => {\n    let version = DEFAULT_SHARESHEET_VERSION;\n\n    //NOTE: If shareSheetVersion is specified by hosts, then it should take precedence.\n    //hosts like CCD will pass this down\n    if (shareSheetVersion) {\n        return shareSheetVersion;\n    }\n\n    if (appId === 'adobe_com') {\n        version = SHARESHEET_ADOBE_HOME_VERSION;\n    } else if (productId?.toLowerCase().includes(ProductId.express)) {\n        // Express has not onboarded the new standard appId and still uses productId.\n        version = SHARESHEET_EXPRESS_VERSION;\n    } else if (appId === 'photoshop') {\n        version = SHARESHEET_PHOTOSHOP_DESKTOP_VERSION;\n    } else if (appId === 'ONESIE1') {\n        version = SHARESHEET_ADMIN_CONSOLE_VERSION;\n    } else if (appId === 'firefly') {\n        version = SHARESHEET_FIREFLY_VERSION;\n    }\n\n    return version;\n};\n\nconst themeToColorScheme = (theme: Theme | undefined): ColorScheme | null => {\n    if (theme === 'light') {\n        return 'light';\n    }\n    if (theme === 'lightest') {\n        return 'lightest';\n    }\n    if (theme === 'dark') {\n        return 'dark';\n    }\n    if (theme === 'darkest') {\n        return 'darkest';\n    }\n    return null;\n};\n\nexport function useShareSheetLoader({\n    appId,\n    environment,\n    locale,\n    clientId,\n    userId,\n    userEmail,\n    themeType,\n    theme,\n    productId,\n    shareSheetVersion,\n}: IShareSheetLoaderProps): boolean {\n    const componentLoader = useComponentLoader(environment);\n    const sharesheetVersion = getShareSheetVersion(appId, productId, shareSheetVersion);\n    const { getAccessToken } = useHostConfig();\n    const aupSdk = SharedConfig.cSdk;\n    // TODO: [CCPROJ-13230] To be removed after PS GA\n    const isAupSdkConfigredWithApiKey = useMemo(() => !!aupSdk?.getConfig().apiKey, [aupSdk]);\n\n    const [isLoaded, setIsLoaded] = useState(false);\n\n    useEffect(() => {\n        async function getComponentLoaderConfig(): Promise<Partial<ShareSheet.Options>> {\n            const token = await getAccessToken();\n            return {\n                idpClientId: clientId,\n                imsData: {\n                    id: userId,\n                    email: userEmail,\n                    token,\n                },\n                inviteApiVersion: INVITE_API_VERSION,\n                apiKey: clientId,\n                environment,\n                locale,\n                theme: themeToColorScheme(theme) || undefined,\n                themeType,\n            };\n        }\n\n        async function loadShareSheet(componentLoaderConfig: Partial<ShareSheet.Options>) {\n            if (customElements.get(SHARESHEET_TAG_NAME)) {\n                setIsLoaded(true);\n                return;\n            }\n\n            if (aupSdk && isAupSdkConfigredWithApiKey) {\n                await aupSdk.loadUIComponent(SHARESHEET_TAG_NAME);\n            } else {\n                await componentLoader.load(\n                    SHARESHEET_MODULE_NAME,\n                    window?.__component_loader_versions__?.ShareSheet?.version || sharesheetVersion,\n                    // @ts-expect-error Missing properties are not needed\n                    componentLoaderConfig,\n                );\n            }\n        }\n\n        async function updateConfig(componentLoaderConfig: Partial<ShareSheet.Options>) {\n            // Since the AUP SDK is a singleton, only host apps should update the config\n            // So if we use the AUP SDK to load Share Sheet, we don't need to update the config\n            if (!aupSdk || !isAupSdkConfigredWithApiKey) {\n                // @ts-expect-error Missing properties are not needed\n                await componentLoader.updateConfig?.(componentLoaderConfig);\n            }\n        }\n\n        async function initializeShareSheet() {\n            try {\n                const componentLoaderConfig = await getComponentLoaderConfig();\n                await loadShareSheet(componentLoaderConfig);\n                await updateConfig(componentLoaderConfig);\n                setIsLoaded(true);\n            } catch (e) {\n                console.error(`Error while loading ShareSheet web component: `, e);\n            }\n        }\n\n        void initializeShareSheet();\n    }, [\n        clientId,\n        componentLoader,\n        environment,\n        locale,\n        sharesheetVersion,\n        theme,\n        themeType,\n        userEmail,\n        userId,\n        getAccessToken,\n        aupSdk,\n        isAupSdkConfigredWithApiKey,\n    ]);\n\n    return isLoaded;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useHostConfig } from './useHostConfig';\n\nexport type ThemeInfo = {\n    themeIsSpectrum: boolean;\n    themeIsExpress: boolean;\n};\n\nexport function useTheme(): ThemeInfo {\n    const { spectrumTheme } = useHostConfig();\n\n    return {\n        themeIsSpectrum: spectrumTheme === 'spectrum',\n        themeIsExpress: spectrumTheme === 'express',\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { AssetBrowser } from '@ccx-public/component-types';\n\nexport function handleShowModalResult(\n    showModalResultType: AssetBrowser.ShowModalResultType,\n    options?: AssetBrowser.ModalOptions,\n) {\n    const { onCancel, onClose, onError, onSuccess } = options ?? {};\n    switch (showModalResultType) {\n        case AssetBrowser.ShowModalResultType.Success:\n            onSuccess?.();\n            break;\n        case AssetBrowser.ShowModalResultType.Cancel:\n            onCancel?.();\n            break;\n        case AssetBrowser.ShowModalResultType.Close:\n            onClose?.();\n            break;\n        case AssetBrowser.ShowModalResultType.Error:\n            onError?.();\n            break;\n        case AssetBrowser.ShowModalResultType.NotImplemented:\n            break;\n        default:\n            ((x: never) => x)(showModalResultType);\n    }\n}\n\nexport type ShowModalFn = (\n    element: React.ReactElement,\n    options?: AssetBrowser.ModalOptions,\n) => Promise<AssetBrowser.ShowModalResult>;\n\nexport type CloseModalFn = (result: AssetBrowser.ShowModalResult) => void;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\nexport class NavigationEvent extends CustomEvent<\n    AssetBrowser.NavigationEventDetail | AssetBrowser.ProjectNavigationEventDetail\n> {\n    static readonly EVENT_NAME = 'navigate';\n\n    constructor(\n        detail: AssetBrowser.NavigationEventDetail | AssetBrowser.ProjectNavigationEventDetail,\n    ) {\n        super(NavigationEvent.EVENT_NAME, { bubbles: true, composed: true, detail });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { shouldPolyfill } from '@formatjs/intl-datetimeformat/should-polyfill';\n\n/**\n * Dynamically loads the Welsh polyfill when not supported in the current browser\n * Scoped to Welsh since that is currently our only known locale that requires a polyfill.\n * https://formatjs.io/docs/polyfills/intl-datetimeformat#dynamic-import--capability-detection\n *\n * @example\n * ```ts\n * import { localePolyfill } from '@csc/common';\n *\n * const [, messages] = await Promise.all([\n *     localePolyfill(locale),\n *     () => import(`path/to/${locale}.json`)]),\n * ]);\n * ```\n */\nexport async function localePolyfill(locale: string) {\n    // return immediately if not Welsh\n    if (locale !== 'cy') {\n        return;\n    }\n\n    const unsupportedLocale = shouldPolyfill(locale);\n\n    // This locale is supported, return without loading polyfills\n    if (!unsupportedLocale) {\n        return;\n    }\n\n    // Load the polyfills BEFORE loading data\n    const intlPolyfillForce = [\n        import('@formatjs/intl-datetimeformat/polyfill-force'),\n        import('@formatjs/intl-numberformat/polyfill-force'),\n        import('@formatjs/intl-pluralrules/polyfill-force'),\n        import('@formatjs/intl-relativetimeformat/polyfill-force'),\n    ];\n    await Promise.all(intlPolyfillForce);\n\n    // Parallelize CLDR data loading\n    const dataPolyfills = [\n        import('@formatjs/intl-datetimeformat/add-all-tz'),\n        // hardcode the locale data for Welsh to avoid dynamically bundling all locales in UAB\n        import(`@formatjs/intl-datetimeformat/locale-data/cy.js`),\n        import(`@formatjs/intl-numberformat/locale-data/cy.js`),\n        import(`@formatjs/intl-pluralrules/locale-data/cy.js`),\n        import(`@formatjs/intl-relativetimeformat/locale-data/cy.js`),\n    ];\n    await Promise.all(dataPolyfills);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { PropsWithChildren } from 'react';\nimport React from 'react';\n\nimport { HostConfigProvider } from './HostConfigProvider';\nimport type HostConfig from '../../@types/HostConfig';\nimport { useHostConfig } from '../hooks/useHostConfig';\n\n/**\n * HostConfigOverrides is a component that will create a new HostConfigContext.Provider and merge\n * the parent values with the values that you pass in as props. This is useful for a few things, for\n * example:\n *\n * - When a modal is show via showModal, the content of the modal will have its own\n *   HostConfigProvider via the HostConfigMixin in UAB. However there are some values that we want\n *   the modal content to inherit from the original, non-modal component, such as dispatchEvent, so\n *   that if we, say, dispatch a 'navigate' event from inside the modal, the host's event listener\n *   on the root component will get called without the host having to set up separate navigation\n *   listeners on the modal itself.\n * - Packages that export React components to be used in UAB will likely want to override the\n *   version of `showModal` in HostConfig so that React elements that are passed into `showModal`\n *   are automatically wrapped in the correct providers that are specific to that package, such as\n *   react-intl or any custom contexts. Individual packages can use `HostConfigOverrides` to\n *   accomplish this, so that any descendant component will use the package's wrapped version of\n *   `showModal`.\n *\n */\nexport function HostConfigOverrides(props: PropsWithChildren<Partial<HostConfig>>) {\n    const { children, ...overrides } = props;\n    const hostConfig = useHostConfig();\n\n    return (\n        <HostConfigProvider {...hostConfig} {...overrides}>\n            {children}\n        </HostConfigProvider>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Provider from '@ccx-public/spectrum-wrapper/dist/Provider';\nimport RS2Provider from '@react/react-spectrum/Provider';\nimport classNames from 'classnames';\nimport React, { useMemo } from 'react';\n\nimport style from './spectrum.module.css';\n\ntype ProviderProps = React.ComponentProps<typeof Provider>;\n\nexport type SpectrumConfig = {\n    scale: Exclude<ProviderProps['scale'], '' | undefined>;\n    spectrumTheme: Exclude<ProviderProps['spectrumTheme'], '' | undefined>;\n    theme: Exclude<ProviderProps['theme'], '' | undefined>;\n};\n\n/**\n * Because collection-view hasn't fully switched to spectrum-wrapper and still uses RS2 controls\n * for some components, we need an explicit RS2 provider. spectrum-wrapper only adds\n * an RS2 provider if SWC isn't available.\n */\nfunction ReactSpectrumProviderForCollectionView({\n    theme,\n    children,\n}: {\n    children?: React.ReactNode;\n    theme: ProviderProps['theme'];\n}) {\n    const rs2Theme = theme || 'light';\n    return (\n        <RS2Provider\n            className={`theme-${rs2Theme} ${style.RS2Provider} cdo-CoreVariables`}\n            theme={rs2Theme}\n        >\n            {children}\n        </RS2Provider>\n    );\n}\n\nexport function SpectrumProvider(\n    props: Partial<SpectrumConfig> & {\n        children?: React.ReactNode;\n        style?: React.CSSProperties;\n    },\n) {\n    const {\n        children,\n        scale = 'medium',\n        spectrumTheme = 'spectrum',\n        theme = 'light',\n        ...rest\n    } = props;\n    const config = useMemo(() => ({ scale, spectrumTheme, theme }), [scale, spectrumTheme, theme]);\n\n    return (\n        <ReactSpectrumProviderForCollectionView theme={theme}>\n            <Provider\n                {...rest}\n                className={classNames(style.themeProvider, style[spectrumTheme])}\n                {...config}\n            >\n                {children}\n            </Provider>\n        </ReactSpectrumProviderForCollectionView>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * Sent to hosts when the component has fully loaded\n */\nexport class RenderedEvent extends CustomEvent<string> {\n    static readonly EVENT_NAME = 'rendered';\n\n    constructor() {\n        super(RenderedEvent.EVENT_NAME, { bubbles: true, composed: true });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\nexport class RoutedEvent extends CustomEvent<AssetBrowser.RoutedEventDetail> {\n    static readonly EVENT_NAME = 'routed';\n\n    constructor(detail: AssetBrowser.RoutedEventDetail) {\n        super(RoutedEvent.EVENT_NAME, { bubbles: true, composed: true, detail });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * Sent to hosts to indicate to navigate out of the current component\n */\nexport class NavigateOutEvent extends CustomEvent<void> {\n    static readonly EVENT_NAME = 'navigate-out';\n\n    constructor() {\n        super(NavigateOutEvent.EVENT_NAME, { bubbles: true, composed: true });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\nexport type LinkSource = 'copy-link' | 'email-invite';\n\nexport function renderRouteTemplate(\n    templates: AssetBrowser.RouteTemplates,\n    name: keyof AssetBrowser.RouteTemplates,\n    params: Record<string, string | number>,\n): string {\n    const template = templates[name];\n    if (!template) {\n        throw new Error(`No route template found for ${name}`);\n    }\n\n    return template.replace(/:\\w+/g, (token) => {\n        const key = token.replace(':', '');\n        return key in params ? params[key].toString() : '';\n    });\n}\n\nexport type ExternalBaseURLs = Record<\n    | 'ACROBAT_WEB'\n    | 'ADOBE_HOME'\n    | 'ASSETS_WEB'\n    | 'EXPRESS_WEB'\n    | 'FIREFLY'\n    | 'ILLUSTRATOR_WEB'\n    | 'PHOTOSHOP_WEB'\n    | 'SQUIRREL',\n    string\n>;\n\nconst stageBaseUrls: ExternalBaseURLs = {\n    ADOBE_HOME: 'https://www.stage.adobe.com',\n    ASSETS_WEB: 'https://assets-stage.adobecc.com',\n    EXPRESS_WEB: 'https://stage.projectx.corp.adobe.com',\n    FIREFLY: 'https://firefly-stage.corp.adobe.com',\n    ILLUSTRATOR_WEB: 'https://stage.illustrator.adobe.com',\n    ACROBAT_WEB: 'https://stage.acrobat.adobe.com',\n    PHOTOSHOP_WEB: 'https://stage.photoshop.adobe.com',\n    SQUIRREL: 'https://squirrel-stage.hz.adobe.com',\n};\nconst prodBaseUrls: ExternalBaseURLs = {\n    ADOBE_HOME: 'https://www.adobe.com',\n    ASSETS_WEB: 'https://assets.adobe.com',\n    EXPRESS_WEB: 'https://new.express.adobe.com',\n    FIREFLY: 'https://firefly.adobe.com',\n    ILLUSTRATOR_WEB: 'https://illustrator.adobe.com',\n    ACROBAT_WEB: 'https://acrobat.adobe.com',\n    PHOTOSHOP_WEB: 'https://photoshop.adobe.com',\n    SQUIRREL: 'https://squirrel-prod.hz.adobe.com',\n};\n\nexport function getBaseUrlMap(env: 'stage' | 'prod'): ExternalBaseURLs {\n    return env === 'stage' ? stageBaseUrls : prodBaseUrls;\n}\n\nexport default {};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nexport function hasAny(elements: unknown[] = []): boolean {\n    return elements.length > 0;\n}\n\nexport function hasOnlyOne(elements: unknown[] = []): boolean {\n    return elements.length === 1;\n}\n\nexport function hasMultiple(elements: unknown[] = []): boolean {\n    return elements.length > 1;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// List of mimetypes that are Library elements. Reference:\n// https://git.corp.adobe.com/CCX/assets/blob/kodiak/src/utils/manifest/mimeTypeMap.ts\nexport const libraryElementType = [\n    'application/vnd.adobe.indesign-idms',\n    'application/vnd.adobe.muse-collection',\n    'application/vnd.adobe.charts+zip',\n    'application/vnd.adobe.element.animation+dcx',\n    'application/vnd.adobe.animate-xfl+zip',\n    'application/vnd.adobe.element.audio+dcx',\n    'application/vnd.adobe.element.brush+dcx',\n    'application/vnd.adobe.element.xbrush+dcx',\n    'application/vnd.adobe.element.capsule+dcx',\n    'application/vnd.adobe.element.characterstyle+dcx',\n    'application/vnd.adobe.element.colortheme+dcx',\n    'application/vnd.adobe.element.color+dcx',\n    'application/vnd.adobe.element.component+dcx',\n    'application/vnd.adobe.element.graphic+dcx',\n    'application/vnd.adobe.element.gradient+dcx',\n    'application/vnd.adobe.element.image+dcx',\n    'application/vnd.adobe.element.layerstyle+dcx',\n    'application/vnd.adobe.element.light+dcx',\n    'application/vnd.adobe.element.look+dcx',\n    'application/vnd.adobe.element.material+dcx',\n    'application/vnd.adobe.element.3d+dcx',\n    'application/vnd.adobe.element.paragraphstyle+dcx',\n    'application/vnd.adobe.element.pattern+dcx',\n    'application/vnd.adobe.element.template+dcx',\n    'application/vnd.adobe.element.text+dcx',\n    'application/vnd.adobe.element.video+dcx',\n    'application/vnd.adobe.library+dcx',\n    'image/photoshop',\n    'image/vnd.adobe.photoshop',\n    'image/vnd.adobe.shape+svg',\n];\n\nexport const legacyExpressElementType = [\n    'application/vnd.adobe.theo.document+dcx',\n    'application/vnd.adobe.luca.document+dcx',\n    'application/vnd.adobe.luca.project+dcx',\n    'application/vnd.adobe.ginger.document+dcx',\n    'application/vnd.adobe.ginger.project+dcx',\n];\n\nexport const betaExpressType = [\n    'application/vnd.adobe.hz.temp.page+dcx',\n    'document/vnd.adobe.expressdrawing+dcx',\n];\n\nexport const expressElementType = [\n    'application/vnd.adobe.hz.express+dcx',\n    'application/vnd.adobe.hztemp.page+dcx',\n    ...betaExpressType,\n    ...legacyExpressElementType,\n];\n\nexport const CANVAS_MIMETYPE = 'application/vnd.adobe.hz.canvas+dcx';\nexport const EXPRESS_MIMETYPE = 'application/vnd.adobe.hz.express+dcx';\nexport const EXPRESS_PAGE_MIMETYPE = 'application/vnd.adobe.hztemp.page+dcx';\nexport const WEBLINK_MIMETYPE = 'application/vnd.adobe.weblink+dcx';\nexport const CLOUD_ONLY_MIMETYPES = [CANVAS_MIMETYPE, EXPRESS_MIMETYPE, EXPRESS_PAGE_MIMETYPE];\nexport function isLegacyExpress(element: { type?: string }): boolean {\n    return Boolean(element.type && legacyExpressElementType.includes(element.type));\n}\n\nexport function isBetaExpress(element: { type?: string }): boolean {\n    return Boolean(element.type && betaExpressType.includes(element.type));\n}\n\nexport const MIMETYPES = {\n    AERO: 'application/vnd.adobe.real+dcx',\n    AURA: 'application/vnd.adobe.hz.aura+dcx',\n    ILLUSTRATOR_DOCUMENT: 'application/illustrator',\n    ILLUSTRATOR_CLOUD_DOCUMENT: 'document/vnd.adobe.illustrator+dcx',\n    FR_CLOUD_DOCUMENT: 'application/vnd.adobe.gemini+dcx',\n    PS_DOCUMENT: 'application/photoshop',\n    PS_LIVE_DOCUMENT: 'document/vnd.adobe.cpsd.live+dcx',\n    PS_DOCUMENT_LOCAL: 'application/vnd.adobe.photoshop',\n    PS_DOCUMENT_LARGE: 'application/photoshop.large',\n    PS_CLOUD_DOCUMENT: 'document/vnd.adobe.psdc+dcx',\n    PS_CLOUD_DOCUMENT_DEP: 'document/vnd.adobe.cpsd+dcx',\n    EXPRESS: 'application/vnd.adobe.hz.express+dcx',\n    EXPRESS_PAGE: 'application/vnd.adobe.hztemp.page+dcx',\n    EXPRESS_PAGE2: 'application/vnd.adobe.hz.temp.page+dcx',\n    EXPRESS_DRAWING: 'document/vnd.adobe.expressdrawing+dcx',\n    EXPRESS_THEO: 'application/vnd.adobe.theo.document+dcx',\n    EXPRESS_LUCA_DOC: 'application/vnd.adobe.luca.document+dcx',\n    EXPRESS_LUCA_PROJECT: 'application/vnd.adobe.luca.project+dcx',\n    EXPRESS_GINGER_DOC: 'application/vnd.adobe.ginger.document+dcx',\n    EXPRESS_GINGER_PROJECT: 'application/vnd.adobe.ginger.project+dcx',\n    FIREFLY_GENERATION_IMAGE: 'application/vnd.adobe.firefly-generation-image+dcx',\n    FIREFLY_GENERATION_VIDEO: 'application/vnd.adobe.firefly-generation-video+dcx',\n    FIREFLY_GENERATION_VECTOR: 'application/vnd.adobe.firefly-generation-vector+dcx',\n    XD_CLOUD_DOCUMENT: 'application/vnd.adobe.xd.cloudproject+dcx',\n    XD_DESIGN_SPECS: 'application/vnd.adobe.uxdesign.designspec+dcx',\n    XD_PROTOTYPE: 'application/vnd.adobe.uxdesign.prototype+dcx',\n    XD_SHAREDARTIFACT: 'application/vnd.adobe.xd.sharedartifact+dcx',\n    MIGRATED_GEMINI: 'document/vnd.adobe.gemini+dcx',\n    INDESIGN_ARTIFACT: 'application/pdf',\n    INDESIGN_DOCUMENT: 'application/x-indesign',\n    INDESIGN_CLOUD_DOCUMENT: 'document/vnd.adobe.indesign+dcx',\n    INDESIGN_CLOUD_DOCUMENT_LIVE: 'document/vnd.adobe.indesign.live+dcx',\n    SHARED_CLOUD_COLLECTION: 'application/x-sharedcloud-collection+json',\n    LIBRARIES: 'application/vnd.adobe.library+dcx',\n    OFFICE_DOCUMENT_PRESENTATION:\n        'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n    OFFICE_DOCUMENT_SHEET: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n    OFFICE_DOCUMENT_WORD_DOCUMENT:\n        'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n    WORD: 'application/msword',\n    MS_EXCEL: 'application/msexcel',\n    POWERPOINT: 'application/vnd.ms-powerpoint',\n    OPENTEXT: 'application/vnd.oasis.opendocument.text',\n    OFFICE: 'application/x-tika-msoffice',\n    XLSMACRO: 'application/vnd.ms-excel.sheet.macroenabled.12',\n    XLS: 'application/vnd.ms-excel',\n    PDF: 'application/pdf',\n    THREEDSCENE: 'model/gltf-binary',\n    SQUIRREL: 'application/vnd.adobe.hz.squirrel+dcx',\n};\n\nexport const DC_OFFICE_FILES = [\n    MIMETYPES.OFFICE_DOCUMENT_WORD_DOCUMENT, // DOCX\n    MIMETYPES.OFFICE_DOCUMENT_SHEET, // Sheet\n    MIMETYPES.WORD, // MSWORD\n    MIMETYPES.OFFICE_DOCUMENT_PRESENTATION, // presentation\n    MIMETYPES.MS_EXCEL,\n    MIMETYPES.POWERPOINT, // MSPPT\n    MIMETYPES.OPENTEXT,\n    MIMETYPES.OFFICE,\n    MIMETYPES.XLSMACRO,\n    MIMETYPES.XLS,\n];\n\nexport type SWYFilterType = keyof typeof SWYSupportedFilterOptions;\nexport type RLFilterType = keyof typeof RLSupportedFilterOptions;\nexport type FilterType = SWYFilterType;\n\nexport const SWYFilterDisplayNames: Map<SWYFilterType, string> = new Map<SWYFilterType, string>([\n    ['all', 'swy.filter.displayName.all'],\n    ['cloudDocuments', 'swy.filter.displayName.cloudDocuments'],\n    ['reviewLinks', 'swy.filter.displayName.reviewLinks'],\n    ['libraries', 'swy.filter.displayName.libraries'],\n    ['pdf', 'swy.filter.displayName.pdf'],\n    ['officeFiles', 'swy.filter.displayName.officeFiles'],\n]);\n\nexport const RLFilterDisplayNames: Map<RLFilterType, string> = new Map<RLFilterType, string>([\n    ['all', 'rl.filter.displayName.all'],\n    ['reviewLinksPs', 'rl.filter.displayName.reviewLinksPs'],\n    ['reviewLinksAi', 'rl.filter.displayName.reviewLinksAi'],\n    ['reviewLinksId', 'rl.filter.displayName.reviewLinksId'],\n    ['reviewLinksXD', 'rl.filter.displayName.reviewLinksXD'],\n    ['aero', 'rl.filter.displayName.aero'],\n    ['scenes', 'rl.filter.displayName.scenes'],\n]);\n\nexport const SWYSupportedFilterOptions = {\n    all: [],\n    cloudDocuments: [\n        MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT,\n        MIMETYPES.PS_CLOUD_DOCUMENT,\n        MIMETYPES.PS_CLOUD_DOCUMENT_DEP,\n        MIMETYPES.XD_CLOUD_DOCUMENT,\n        MIMETYPES.INDESIGN_CLOUD_DOCUMENT,\n        MIMETYPES.INDESIGN_CLOUD_DOCUMENT_LIVE,\n        ...expressElementType,\n    ],\n    reviewLinks: [\n        MIMETYPES.XD_PROTOTYPE,\n        MIMETYPES.XD_DESIGN_SPECS,\n        MIMETYPES.XD_SHAREDARTIFACT,\n        MIMETYPES.INDESIGN_ARTIFACT,\n    ],\n    libraries: [MIMETYPES.LIBRARIES],\n    pdf: [MIMETYPES.PDF],\n    officeFiles: DC_OFFICE_FILES,\n};\n\nexport const RLSupportedFilterOptions = {\n    all: [],\n    reviewLinksAi: [MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT, MIMETYPES.ILLUSTRATOR_DOCUMENT],\n    reviewLinksId: [MIMETYPES.INDESIGN_DOCUMENT, MIMETYPES.INDESIGN_CLOUD_DOCUMENT_LIVE],\n    reviewLinksPs: [\n        MIMETYPES.PS_CLOUD_DOCUMENT,\n        MIMETYPES.PS_CLOUD_DOCUMENT_DEP,\n        MIMETYPES.PS_DOCUMENT,\n        MIMETYPES.PS_DOCUMENT_LOCAL,\n    ],\n    reviewLinksXD: [MIMETYPES.XD_DESIGN_SPECS, MIMETYPES.XD_PROTOTYPE, MIMETYPES.XD_SHAREDARTIFACT],\n    aero: [MIMETYPES.AERO],\n    scenes: [MIMETYPES.THREEDSCENE],\n};\n\nexport type RootFolderType = 'cloud-content';\nexport const ROOT_FOLDER_PATH: RootFolderType = 'cloud-content';\nexport type ArchiveFolderType = 'cloud-content-archive';\nexport const ARCHIVE_FOLDER_PATH: ArchiveFolderType = 'cloud-content-archive';\nexport type SharedWithYouType = 'shared-with-you';\n// SHARED_WITH_YOU_PATH only used for host apps that use routing, like CCD\nexport const SHARED_WITH_YOU_PATH: SharedWithYouType = 'shared-with-you';\nexport type ReviewLinksType = 'review-links';\nexport const REVIEW_LINKS_PATH: ReviewLinksType = 'review-links';\nexport type CDORootPathType =\n    | RootFolderType\n    | ArchiveFolderType\n    | SharedWithYouType\n    | ReviewLinksType;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { hasAny } from './SelectionUtils';\nimport { isLegacyExpress, isBetaExpress } from '../utils/asset-mimetypes';\n\ntype Element = {\n    cloudID?: string;\n    hasPendingOperation?: boolean;\n    isCached?: boolean;\n    isComposite?: boolean;\n    isFile?: boolean;\n    isRenameDisabled?: boolean;\n    isSyncSuspended?: boolean;\n    isUserPinned?: boolean;\n    needsSyncErrorResolution?: boolean;\n    type?: string;\n};\n\n/**\n * @deprecated will be removed in the future\n * use utilities from AdobeAssetsView package\n */\nexport function hasAnyLegacyExpress(elements: Element[] = []): boolean {\n    return elements.some((e) => isLegacyExpress(e));\n}\n/**\n * @deprecated will be removed in the future\n * use utilities from AdobeAssetsView package\n */\nexport function hasAnyBetaExpress(elements: Element[] = []): boolean {\n    return elements.some((e) => isBetaExpress(e));\n}\n/**\n * @deprecated will be removed in the future\n * use utilities from AdobeAssetsView package\n */\nexport function hasAnyLocalItemsToBeSynced(elements: Element[] = []): boolean {\n    return hasAny(elements) && elements.some((el) => !el.cloudID);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2022 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * An AssetRefString is a serialized JSON string that represents the location of\n * an asset, either in the cloud or locally. This interface is used by desktop\n * apps as a way to include enough information to identify an asset. See\n * <https://wiki.corp.adobe.com/display/CCXCD/Proposal%3A+AdobeAssetRef+Proposal>\n * for some details of how SAM interacts with them.\n *\n * Each of these properties might be undefined; sometimes only some properties\n * are known.\n *\n * NOTE: This differs from IAssetRef defined in AssetSyncStateStore -- that one\n * is camel-cased. Note that the underscore-casing here is required, because this\n * represents data deserialized from standard JSON.\n */\ninterface AssetRef {\n    cloud_id?: string;\n    repository_id?: string;\n    path?: string;\n    local_id?: string;\n    display_name?: string;\n}\n\n/**\n * Parse a JSON-string AssetRef into an AssetRef object.\n */\nexport function parseAssetRef(assetRefString: string): AssetRef {\n    return JSON.parse(assetRefString) as AssetRef;\n}\n\n/**\n * Check if a given string looks like an AssetRef. NOTE: This does not check for\n * valid properties; only that it looks like a JSON-serialized string.\n */\nexport function isAssetRef(pathOrAssetRef: string | undefined): boolean {\n    return Boolean(pathOrAssetRef && pathOrAssetRef.startsWith('{'));\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * A helper method to filter out boolean attributes that are set to false to keep from populating the web component.\n * This is because for boolean attributes, the presence of the attribute itself is considered true, regardless\n * of its actual value.\n * @param attributes boolean attributes\n * @returns Returns a new object with only the attributes that are set to true\n */\nexport function filterBooleanAttributes<T extends Record<string, unknown>>(\n    attributes: T,\n): Partial<T> {\n    const result: Partial<T> = {};\n    for (const key in attributes) {\n        if (attributes[key] && attributes[key] !== 'false') {\n            result[key] = attributes[key];\n        }\n    }\n    return result;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { setUser, getCurrentScope } from '@sentry/react';\nimport * as Sentry from '@sentry/react';\n\nlet configured = false;\n\nexport interface SentryData {\n    accountType: string;\n    appAgentName?: string;\n    appId?: string;\n    appName?: string;\n    appVersion?: string;\n    countryCode?: string;\n    locale?: string;\n    serviceLevel?: string;\n    subscriptionType?: string;\n    theme?: string;\n    userId: string;\n}\n\n// Data transformers for different package formats\nexport const transformers = {\n    /**\n     * Transform CDO data format to common SentryData\n     */\n    fromCDO: (\n        hostProductData: {\n            productId?: string;\n            productName?: string;\n            productVersion?: string;\n            uiLocale?: string;\n            theme?: string;\n            appAgentName?: string;\n        },\n        imsData: {\n            accountType: string;\n            subscriptionType?: string;\n            countryCode?: string;\n            serviceLevel?: string;\n            fetchUserId: () => string;\n        },\n    ): SentryData => ({\n        accountType: imsData.accountType,\n        subscriptionType: imsData.subscriptionType,\n        countryCode: imsData.countryCode,\n        serviceLevel: imsData.serviceLevel,\n        locale: hostProductData.uiLocale,\n        appId: hostProductData.productId,\n        appName: hostProductData.productName,\n        appVersion: hostProductData.productVersion,\n        theme: hostProductData.theme,\n        appAgentName: hostProductData.appAgentName,\n        userId: imsData.fetchUserId(),\n    }),\n\n    /**\n     * Transform UAB ComponentLoaderInitOptions to common SentryData\n     */\n    fromUAB: (options: {\n        imsData: {\n            account_type: string;\n            countryCode?: string;\n            userId: string;\n            serviceAccounts?: Array<{\n                serviceCode: string;\n                serviceLevel?: string;\n                serviceStatus?: string;\n            }>;\n        };\n        productId?: string;\n        clientId?: string;\n        appName?: string;\n        locale?: string;\n        theme?: string;\n        context?: {\n            appId?: string;\n            appName?: string;\n            appVersion?: string;\n            locale?: string;\n            theme?: string;\n        };\n    }): SentryData => {\n        const serviceAccount = options.imsData.serviceAccounts?.filter(\n            (p) => p.serviceCode === 'creative_cloud',\n        )[0];\n\n        return {\n            accountType: options.imsData.account_type,\n            countryCode: options.imsData.countryCode,\n            serviceLevel: serviceAccount?.serviceLevel,\n            subscriptionType: serviceAccount?.serviceStatus,\n            userId: options.imsData.userId,\n            appId: options.productId || options.clientId || options.context?.appId,\n            appName: options.appName || options.context?.appName,\n            appVersion: options.context?.appVersion,\n            locale: options.locale || options.context?.locale,\n            theme: options.theme || options.context?.theme,\n        };\n    },\n};\n\nexport function configureSentry(data: SentryData) {\n    if (configured) {\n        return;\n    }\n\n    const {\n        accountType,\n        appId,\n        appName,\n        appVersion,\n        appAgentName,\n        countryCode,\n        locale,\n        serviceLevel,\n        subscriptionType,\n        theme,\n        userId,\n    } = data;\n\n    // Indicates if this is CI build, which is also a named release\n    const ci: boolean = process.env.IS_CI ? (JSON.parse(process.env.IS_CI) as boolean) : false;\n\n    setUser({ id: userId });\n    const scope = getCurrentScope();\n    scope.setTags({\n        'host.locale': locale,\n        'host.theme': theme,\n        'host.appId': appId,\n        'host.appName': appName,\n        'host.appVersion': appVersion,\n        'host.appAgentName': appAgentName,\n        'user.account_type': accountType,\n        'user.countryCode': countryCode,\n        'user.service_level': serviceLevel,\n        'user.subscription_type': subscriptionType,\n        'build.ci': ci,\n    });\n\n    configured = true;\n}\n\n/**\n * Type definition for Sentry tags\n * Only primitive values that work well with Sentry's tag system\n */\nexport type SentryTagValue = string | boolean | number;\nexport type SentryTags = Record<string, SentryTagValue>;\nexport type SentryTagSource = Record<string, SentryTagValue | undefined | null>;\n\n/**\n * Creates Sentry tags from a source object\n * @param source Source object to create tags from\n * @returns Object containing valid Sentry tags\n */\nconst createSentryTags = (source: SentryTagSource): SentryTags => {\n    const tags: SentryTags = {};\n\n    Object.keys(source).forEach((key) => {\n        const value = source[key];\n        const type = typeof value;\n\n        if (value && (type === 'string' || type === 'boolean' || type === 'number')) {\n            tags[key] = value;\n        }\n    });\n\n    return tags;\n};\n\n/**\n * Captures an error with Sentry tags\n * @param error Error to capture\n * @param tagSource Source object to create tags from\n */\nexport const captureSentryException = (error: Error, sentryTagSource: SentryTagSource): void => {\n    const sentryTags = createSentryTags(sentryTagSource);\n    Sentry.captureException(error, { tags: sentryTags });\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * This utility is like stopPropagation, except it still allows the event to be forwarded\n * to the document root.\n *\n * This is needed to workaround the fact that React 17 changed how event delegation works\n * such that events are no longer forwarded to the document root. Instead they're now\n * forwarded to the root of the React tree, so `stopPropagation` now successfully\n * stops propagation of React events to the document root.\n *\n * React-Spectrum uses react-overlays, which listens to the document for events, so using\n * stopPropagation in React 17 prevents react-overlays from closing dropdowns, popovers, etc.\n *\n * @see https://legacy.reactjs.org/blog/2020/10/20/react-v17.html#changes-to-event-delegation\n * @see https://github.com/react-bootstrap/react-overlays/issues/944\n */\nexport function skipPropagation(\n    e: MouseEvent | KeyboardEvent | React.MouseEvent | React.KeyboardEvent,\n) {\n    const native: MouseEvent | KeyboardEvent =\n        (e as React.MouseEvent | React.KeyboardEvent).nativeEvent ??\n        (e as MouseEvent | KeyboardEvent);\n    const constructor = native.constructor as typeof MouseEvent | typeof KeyboardEvent;\n    const { isTrusted, ...rest } = native;\n    const clone = new constructor(native.type);\n    Object.assign(clone, rest);\n    document.body.dispatchEvent(clone);\n    e.stopPropagation();\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n/**\n * All possible values that could be \"falsy\".\n * Taken from https://github.com/microsoft/TypeScript/pull/49625\n */\ntype Falsy = false | 0 | 0n | '' | null | undefined;\n\ntype Nullable<T> = T | null | undefined;\n\nconst isObject = (obj: unknown) => typeof obj === 'object' && obj !== null;\n\n/**\n * Determines if a value is falsy (https://developer.mozilla.org/en-US/docs/Glossary/Falsy) or not.\n * @throws {Error} If the value has an unimplemented type.\n */\nconst isFalsy = (value: unknown): value is Falsy => {\n    if (value === null) {\n        return true;\n    }\n\n    switch (typeof value) {\n        case 'string':\n            return value.length === 0;\n        case 'undefined':\n            return true;\n        case 'number':\n            return value === 0 || Number.isNaN(value);\n        case 'boolean':\n            return !value;\n        case 'bigint':\n            throw new Error('Project does not support BigInt');\n        case 'symbol':\n        case 'function':\n        case 'object':\n        default:\n            return false;\n    }\n};\n\n/**\n * Determines if a value is truthy (https://developer.mozilla.org/en-US/docs/Glossary/Truthy) or not.\n * @throws {Error} If the value has an unimplemented type.\n */\nconst isTruthy = <T>(value: T): value is Exclude<T, Falsy> => !isFalsy(value);\n\n/**\n * Returns the value if it is truthy (see `isTruthy`), otherwise returns the defaultValue.\n * You might be able to use `x || y` or `x ?? y` instead of this function, depends on the context.\n */\nconst orDefault = <T>(value: Nullable<T>, defaultValue: T): T =>\n    isFalsy(value) ? defaultValue : value;\n\n/** Returns true if an array has elements within it */\nconst hasLength = <T extends unknown[] | null | undefined>(\n    array: T,\n): array is Exclude<T, null | undefined> =>\n    Array.isArray(array) && isTruthy(array) && array.length > 0;\n\n/** Returns true if an array is empty, null, or undefined */\nconst isEmpty = <T extends unknown[] | null | undefined>(array: T): array is never =>\n    !hasLength(array);\n\n/** Returns true if an object has at least 1 key in it */\nconst hasKeys = <T>(obj: T): obj is Exclude<T, null | undefined> =>\n    isObject(obj) && isTruthy(obj) && Object.keys(obj as object).length > 0;\n\nexport { hasKeys, hasLength, isEmpty, isFalsy, isTruthy, orDefault };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\n// TODO: https://jira.corp.adobe.com/browse/CCXCD-13510\nconst GOURL = 'https://www.adobe.com/go';\n\nconst GOURL_LOCALEMAP = {\n    'zh-hans': 'zh-Hans',\n    'zh-hant': 'zh-Hant',\n};\nfunction mapGoURLLocale(locale: string): string {\n    const mappedLocale: string = (GOURL_LOCALEMAP[locale] as string) ?? locale;\n    return mappedLocale;\n}\nexport function localizedGoUrl(\n    baseToken: string,\n    locale: string,\n    queryParams?: { [key: string]: string },\n): string {\n    // Not using URL() because UXP didn't fully implement. :/\n    let url = `${GOURL}/${baseToken}_${mapGoURLLocale(locale)}`;\n    if (queryParams) {\n        url +=\n            '?' +\n            [...Object.entries(queryParams)]\n                .map(([param, val]) => `${param}=${encodeURIComponent(val)}`)\n                .join('&');\n    }\n    return url;\n}\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z\",\n  fill: \"#00005b\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z\",\n  fill: \"#99f\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M47.256 104.912l-.672 2.534-.672 2.534a.25.25 0 0 1-.073.151.271.271 0 0 1-.179.045h-2.492c-.084 0-.133-.014-.157-.052a.324.324 0 0 1-.011-.2l2.408-8.428 2.408-8.428a3.555 3.555 0 0 0 .105-.5c.028-.206.049-.479.063-.899a.184.184 0 0 1 .039-.126.131.131 0 0 1 .102-.042h3.556a.198.198 0 0 1 .129.032.222.222 0 0 1 .066.136l2.702 9.142 2.702 9.142a.25.25 0 0 1-.007.164.137.137 0 0 1-.133.059h-2.8a.299.299 0 0 1-.168-.042.204.204 0 0 1-.084-.126l-.7-2.548-.7-2.548h-5.432zm4.732-2.772c-.238-.938-.637-2.429-1.029-3.934s-.777-3.024-.987-4.018h-.028c-.182.994-.497 2.324-.854 3.735s-.756 2.901-1.106 4.217h4.004z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M69.907 109.952a.294.294 0 0 1-.073.175.254.254 0 0 1-.179.049H60.08a.185.185 0 0 1-.224-.224V91.724a.185.185 0 0 1 .224-.224h9.24a.306.306 0 0 1 .179.035.225.225 0 0 1 .073.161l.126 1.176.126 1.176a.205.205 0 0 1-.021.164.172.172 0 0 1-.147.059h-6.748v4.984h6.076a.208.208 0 0 1 .151.045.203.203 0 0 1 .046.151v2.38a.18.18 0 0 1-.06.15.261.261 0 0 1-.165.045h-6.048v5.376h7.196c.084 0 .133.014.158.046a.183.183 0 0 1 .01.151l-.182 1.176z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M73.127 91.724a.237.237 0 0 1 .032-.139.153.153 0 0 1 .136-.056c.546-.028 1.218-.049 1.964-.063s1.565-.021 2.405-.021a7.159 7.159 0 0 1 5.138 1.701 5.623 5.623 0 0 1 1.61 4.179 5.682 5.682 0 0 1-2.034 4.696 7.827 7.827 0 0 1-4.911 1.463c-.322 0-.539-.007-.731-.014s-.36-.014-.584-.014v6.524a.167.167 0 0 1-.197.196h-2.632a.208.208 0 0 1-.151-.045.202.202 0 0 1-.045-.151V91.724zm3.024 9.016c.196.014.371.021.581.024s.455.003.792.003a4.555 4.555 0 0 0 2.663-.686 3.658 3.658 0 0 0 .231-5.135 3.887 3.887 0 0 0-2.642-.815c-.336 0-.666.007-.949.018s-.521.024-.675.038v6.553z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"128\",\n  fill: \"#99f\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M55.556 59.576H40.513l-3.061 9.272a.765.765 0 0 1-.781.586h-7.62q-.652 0-.456-.716l13.025-37.51q.195-.587.39-1.336a9.568 9.568 0 0 0 .261-2.275.403.403 0 0 1 .456-.456h10.355q.454 0 .52.326l14.783 41.316q.196.652-.39.651h-8.466a.602.602 0 0 1-.652-.455zm-12.7-8.441h10.29q-.39-1.302-.911-2.93-.522-1.627-1.107-3.485l-1.173-3.712q-.586-1.856-1.074-3.581-.489-1.725-.88-3.159h-.064a52.556 52.556 0 0 1-1.368 5.21q-.913 2.93-1.856 5.991-.945 3.062-1.856 5.666z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M90.117 55.121l-12.344.08a11.307 11.307 0 0 0 1.238 4.027 7.596 7.596 0 0 0 2.944 2.918 12.489 12.489 0 0 0 5.177.912 23.618 23.618 0 0 0 4.2-.358 17.72 17.72 0 0 0 3.666-1.616c.217-.173.326-.065.326.326v6.186a.971.971 0 0 1-.098.489.94.94 0 0 1-.293.293 16.912 16.912 0 0 1-4.07 1.4 28.615 28.615 0 0 1-5.73.489 18.584 18.584 0 0 1-7.75-1.433 13.81 13.81 0 0 1-5.08-3.842 14.851 14.851 0 0 1-2.911-5.198 20.891 20.891 0 0 1-.847-5.894 20.529 20.529 0 0 1 1.01-6.414 17.55 17.55 0 0 1 3.14-5.646 13.552 13.552 0 0 1 4.815-3.566 15.273 15.273 0 0 1 6.773-1.4 14.696 14.696 0 0 1 6.284 1.237 9.223 9.223 0 0 1 3.848 2.998 14.803 14.803 0 0 1 2.41 4.591 16.346 16.346 0 0 1 .78 4.95q0 1.432-.097 2.604a8.775 8.775 0 0 1-.162 1.086.59.59 0 0 1-.586.521q-.392 0-1.335.098-.946.097-2.345.13-1.402.033-2.963.032zm-12.344-5.223h8.532q1.563 0 2.312-.033a4.59 4.59 0 0 0 .944-.097v-.797a5.193 5.193 0 0 0-.26-1.497 5.32 5.32 0 0 0-5.276-3.712 5.657 5.657 0 0 0-5.372 3.06 10.568 10.568 0 0 0-.88 3.076z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 1024 1024\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M223.8 963c-44.1 0-80-35.2-80-78.4V129.4c0-43.2 35.9-78.4 80-78.4H664c21.2 0 41.5 8.3 56.7 23.1l135.8 133.5c14.9 14.5 23.4 34.5 23.3 55.3v621.7c0 43.2-35.9 78.4-80 78.4h-576z\",\n  fill: \"#f5f5f5\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M664.4 66.9c16.9.1 33.2 6.8 45.2 18.7L845.4 219c11.9 11.5 18.7 27.4 18.8 44v621.7c0 34.4-28.9 62.3-64.2 62.3H224c-35.3 0-64.1-28.4-64.1-62.8V129c0-34.4 29-62.2 64.3-62.2h440.2m-.2-31.7H224c-53 0-95.8 42.2-95.8 94.3v755.2c0 52.1 42.5 94.4 95.5 94.4h576c53 0 96.1-42.1 96.1-94.2V263.1c0-25.1-10-49.2-28-66.8L732.1 62.7C714 45 689.6 35 664.2 35.1z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#4b4b4b\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M711.8 315c0-.3-.2-.6-.2-1.1 0-.7-.2-1.4-.5-2.1-.2-.7-.5-1.4-.8-2.1-.2-.7-.5-1.4-1-1.9-.5-.6-1-1.1-1.4-1.8-.4-.6-.9-1-1.4-1.4-1.2-1-2.4-1.8-3.8-2.4-.5-.3-1-.5-1.6-.6l-182.7-76.1-.6-.3c-3.9-1.7-8.3-1.5-12.1.3l-182.4 76.1c-.6.1-1.1.4-1.6.6-1.4.6-2.7 1.4-3.8 2.4-1.1 1-2 2-2.9 3.2-1.2 1.8-2.1 3.8-2.6 5.9-.3.7-.4 1.4-.3 2.1v200.4c.1 6.2 3.9 11.8 9.6 14.1l183.9 76.2c2 1 4.2 1.5 6.4 1.4 2 0 3.9-.4 5.7-1.1l.6-.3 184.1-76.2c5.7-2.3 9.5-7.8 9.6-14V316c0-.3 0-.7-.2-1zM512 376.3l-143.8-59.7 143-59.3L654.8 317 512 376.3zm168 128.2l-159.2 65.9V407L680 340.8v163.7z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M312.3 313.8c.5-2.1 1.4-4.1 2.6-5.9-1.4 1.7-2.3 3.7-2.6 5.9zm6.8-10.3c-.5.3-.9.7-1.3 1.1 1.2-1 2.4-1.8 3.8-2.4-.9.3-1.8.7-2.5 1.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M705.3 303.5c-.7-.6-1.6-1.1-2.6-1.3 1.4.6 2.7 1.4 3.8 2.4-.3-.4-.7-.8-1.2-1.1z\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M414.1 786.2c-1.2-.2-1.5-.6-1.5-1.9v-16.6c0-1 .4-1.5 1.2-1.5h41c1.2 0 1.5.4 1.5 1.5V837c.2 1-.2 1.5-1.2 1.9-12.3 4.6-23.7 5.8-34.1 5.8-42.8 0-62.8-31.6-62.8-70.3 0-44.9 27.2-72.2 67.2-72.2 11 0 20.6 1.2 26.8 4.2 1 .4 1.2 1.2 1.2 2.3V727c0 1-.6 1.5-1.7 1-7.3-3.7-16-5.2-26.4-5.2-28.9-.2-43.7 18.9-43.7 51 0 30.4 14.1 50.8 40.4 50.8 5 0 8.3-.4 11.6-1.7v-36l-19.5-.7z\",\n  fill: \"#2c2c2c\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#2c2c2c\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M486.9 842.7c-1.5 0-1.9-.6-1.9-1.9V705.7c0-1 .4-1.7 1.5-1.7h20c1 0 1.2.4 1.2 1.5v116.7h52c1 0 1.5.4 1.2 1.5l-3.1 17.7c-.2 1-.8 1.5-1.9 1.5h-69z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M579.3 705.9c0-1 .2-1.5 1-1.7 5.8-.2 21.6-.6 34.3-.6 38.5 0 45.3 22.5 45.3 36.2 0 15.4-7.5 23.9-12.9 28.1 7.5 4 19.1 13.5 19.1 33.3 0 26.2-21 42.2-53 42-13.5 0-25.8-.2-32.4-.4-1-.2-1.5-.8-1.5-1.7V705.9zm22.2 54.1h12.7c6 0 12.7.4 15.8 1 4.2-3.7 7.9-9.2 7.9-18.3 0-12.7-8.5-19.3-23.3-19.3-5 0-9.8.2-13.1.4V760zm0 63.2c3.7.2 7.3.4 11.9.4 16.4 0 29.5-6.2 29.5-22 0-9.8-5-17.1-15.2-20.2-3.5-1-7.7-1.7-12.3-1.7h-13.9v43.5z\"\n})))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 1024 1024\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M223.8 963c-44.1 0-80-35.2-80-78.4V129.4c0-43.2 35.9-78.4 80-78.4H664c21.2 0 41.5 8.3 56.7 23.1l135.8 133.5c14.9 14.5 23.4 34.5 23.3 55.3v621.7c0 43.2-35.9 78.4-80 78.4h-576z\",\n  fill: \"#f5f5f5\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M664.4 66.9c16.9.1 33.2 6.8 45.2 18.7L845.4 219c11.9 11.5 18.7 27.4 18.8 44v621.7c0 34.4-28.9 62.3-64.2 62.3H224c-35.3 0-64.1-28.4-64.1-62.8V129c0-34.4 29-62.2 64.3-62.2h440.2m-.2-31.7H224c-53 0-95.8 42.2-95.8 94.3v755.2c0 52.1 42.5 94.4 95.5 94.4h576c53 0 96.1-42.1 96.1-94.2V263.1c0-25.1-10-49.2-28-66.8L732.1 62.7C714 45 689.6 35 664.2 35.1z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#4b4b4b\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M711.8 315c0-.3-.2-.6-.2-1.1 0-.7-.2-1.4-.5-2.1-.2-.7-.5-1.4-.8-2.1-.2-.7-.5-1.4-1-1.9-.5-.6-1-1.1-1.4-1.8-.4-.6-.9-1-1.4-1.4-1.2-1-2.4-1.8-3.8-2.4-.5-.3-1-.5-1.6-.6l-182.7-76.1-.6-.3c-3.9-1.7-8.3-1.5-12.1.3l-182.4 76.1c-.6.1-1.1.4-1.6.6-1.4.6-2.7 1.4-3.8 2.4-1.1 1-2 2-2.9 3.2-1.2 1.8-2.1 3.8-2.6 5.9-.3.7-.4 1.4-.3 2.1v200.4c.1 6.2 3.9 11.8 9.6 14.1l183.9 76.2c2 1 4.2 1.5 6.4 1.4 2 0 3.9-.4 5.7-1.1l.6-.3 184.1-76.2c5.7-2.3 9.5-7.8 9.6-14V316c0-.3 0-.7-.2-1zM512 376.3l-143.8-59.7 143-59.3L654.8 317 512 376.3zm168 128.2l-159.2 65.9V407L680 340.8v163.7z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M312.3 313.8c.5-2.1 1.4-4.1 2.6-5.9-1.4 1.7-2.3 3.7-2.6 5.9zm6.8-10.3c-.5.3-.9.7-1.3 1.1 1.2-1 2.4-1.8 3.8-2.4-.9.3-1.8.7-2.5 1.3z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M705.3 303.5c-.7-.6-1.6-1.1-2.6-1.3 1.4.6 2.7 1.4 3.8 2.4-.3-.4-.7-.8-1.2-1.1z\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M380.4 786.2c-1.2-.2-1.5-.6-1.5-1.9v-16.6c0-1 .4-1.5 1.2-1.5h41c1.2 0 1.5.4 1.5 1.5V837c.2 1-.2 1.5-1.2 1.9-12.3 4.6-23.7 5.8-34.1 5.8-42.8 0-62.8-31.6-62.8-70.3 0-44.9 27.2-72.2 67.2-72.2 11 0 20.6 1.2 26.8 4.2 1 .4 1.2 1.2 1.2 2.3V727c0 1-.6 1.5-1.7 1-7.3-3.7-16-5.2-26.4-5.2-28.9-.2-43.7 18.9-43.7 51 0 30.4 14.1 50.8 40.4 50.8 5 0 8.3-.4 11.6-1.7v-36l-19.5-.7z\",\n  fill: \"#2c2c2c\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M453.2 842.7c-1.5 0-1.9-.6-1.9-1.9V705.7c0-1 .4-1.7 1.5-1.7h20c1 0 1.2.4 1.2 1.5v116.7h52c1 0 1.5.4 1.2 1.5l-3.1 17.7c-.2 1-.8 1.5-1.9 1.5h-69z\",\n  fill: \"#2c2c2c\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M551 724.6h-34.9c-1 0-1.5-.4-1.2-1.7l2.5-17.5c.2-1 .6-1.5 1.7-1.5h87.4c1.2 0 1.7.4 1.9 1.7l1.7 17.3c.2 1.2-.4 1.7-1.5 1.7h-34.7v116.5c0 1-.4 1.7-1.7 1.7h-19.3c-1.2 0-1.7-.4-1.7-1.7V724.6z\",\n  fill: \"#2c2c2c\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M651.3 841.1c0 1.2-.4 1.7-1.5 1.7H630c-1 0-1.5-.4-1.5-1.7V705.5c0-1 .4-1.5 1.5-1.5h69.3c1.2 0 1.5.4 1.7 1.5l2.1 17.5c.2 1.2-.4 1.7-1.7 1.7h-50.1v39.5h44.9c1 0 1.5.2 1.5 1.5V783c0 1.2-.4 1.5-1.5 1.5h-44.9v56.6z\",\n  fill: \"#2c2c2c\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"ICONS\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"800\",\n  height: \"800\",\n  viewBox: \"0 0 20 20\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.353 15.5H3.25C2.01 15.5 1 14.49 1 13.25v-.5c0-1.24 1.01-2.25 2.25-2.25h3.153a.75.75 0 0 1 0 1.5H3.25a.751.751 0 0 0-.75.75v.5c0 .413.336.75.75.75h3.103a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M13.75 15.5h-1.726a.75.75 0 0 1 0-1.5h1.726c.414 0 .75-.337.75-.75v-.5a.751.751 0 0 0-.75-.75h-1.7a.75.75 0 0 1 0-1.5h1.7c1.24 0 2.25 1.01 2.25 2.25v.5c0 1.24-1.01 2.25-2.25 2.25z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M6.454 9H6.25C5.01 9 4 7.99 4 6.75v-.5C4 5.01 5.01 4 6.25 4h.332a.75.75 0 0 1 0 1.5H6.25a.751.751 0 0 0-.75.75v.5c0 .413.336.75.75.75h.204a.75.75 0 0 1 0 1.5z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M16.75 9h-4.293a.75.75 0 0 1 0-1.5h4.293c.414 0 .75-.337.75-.75v-.5a.751.751 0 0 0-.75-.75h-4.395a.75.75 0 0 1 0-1.5h4.395C17.99 4 19 5.01 19 6.25v.5C19 7.99 17.99 9 16.75 9z\",\n  fill: \"var(--iconPrimary, #222)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M9.25 18.001a.763.763 0 0 1-.763-.763V2.764a.763.763 0 0 1 1.526 0v14.474c0 .421-.342.763-.763.763z\",\n  fill: \"var(--iconPrimary, #222)\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#252525\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#6e6e6e\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#e3e3e3\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M63.976 71a1.975 1.975 0 0 1-1.938-2.031v-33a1.98 1.98 0 0 1 3.958-.065v33A2.102 2.102 0 0 1 63.976 71z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M55 64a2.203 2.203 0 0 1-1.969-2.25l.027-18.87a1.91 1.91 0 0 1 2.067-1.818 1.855 1.855 0 0 1 1.87 1.955l-.026 18.87A2.073 2.073 0 0 1 55 64z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M72.996 75.958a2.106 2.106 0 0 1-1.86-2.24l.066-43.958a1.693 1.693 0 0 1 1.86-1.76 1.89 1.89 0 0 1 1.921 1.948l-.066 43.958a1.98 1.98 0 0 1-1.921 2.052z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M45.936 73.783A1.754 1.754 0 0 1 44.02 72V33.6a2.127 2.127 0 0 1 1.915-2.217 1.974 1.974 0 0 1 2.002 1.967v38.4a2.03 2.03 0 0 1-2.002 2.033z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M81.992 61.82a1.975 1.975 0 0 1-1.93-2.039v-14.4a1.907 1.907 0 0 1 1.93-1.96 1.969 1.969 0 0 1 1.945 2.017v14.4a1.94 1.94 0 0 1-1.945 1.983z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M36.938 64A2.03 2.03 0 0 1 35 61.906V42.97a1.87 1.87 0 0 1 1.938-1.907 1.982 1.982 0 0 1 2.034 1.944v18.938A2.078 2.078 0 0 1 36.937 64z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M90.919 68.938A1.97 1.97 0 0 1 89 66.894v-28.8a1.82 1.82 0 0 1 1.873-1.91 2.016 2.016 0 0 1 2.002 2.016V67a1.91 1.91 0 0 1-1.956 1.938z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#4b4b4b\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M63.976 71a1.975 1.975 0 0 1-1.938-2.031v-33a1.98 1.98 0 0 1 3.958-.065v33A2.102 2.102 0 0 1 63.976 71z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M55 64a2.203 2.203 0 0 1-1.969-2.25l.027-18.87a1.91 1.91 0 0 1 2.067-1.818 1.855 1.855 0 0 1 1.87 1.955l-.026 18.87A2.073 2.073 0 0 1 55 64z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M72.996 75.958a2.106 2.106 0 0 1-1.86-2.24l.066-43.958a1.693 1.693 0 0 1 1.86-1.76 1.89 1.89 0 0 1 1.921 1.948l-.066 43.958a1.98 1.98 0 0 1-1.921 2.052z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M45.936 73.783A1.754 1.754 0 0 1 44.02 72V33.6a2.127 2.127 0 0 1 1.915-2.217 1.974 1.974 0 0 1 2.002 1.967v38.4a2.03 2.03 0 0 1-2.002 2.033z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M81.992 61.82a1.975 1.975 0 0 1-1.93-2.039v-14.4a1.907 1.907 0 0 1 1.93-1.96 1.969 1.969 0 0 1 1.945 2.017v14.4a1.94 1.94 0 0 1-1.945 1.983z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M36.938 64A2.03 2.03 0 0 1 35 61.906V42.97a1.87 1.87 0 0 1 1.938-1.907 1.982 1.982 0 0 1 2.034 1.944v18.938A2.078 2.078 0 0 1 36.937 64z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M90.919 68.938A1.97 1.97 0 0 1 89 66.894v-28.8a1.82 1.82 0 0 1 1.873-1.91 2.016 2.016 0 0 1 2.002 2.016V67a1.91 1.91 0 0 1-1.956 1.938z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#252525\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#6e6e6e\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M86.692 45.031H71.97l-.015-14.987a2.202 2.202 0 0 0-1.482-1.786 1.964 1.964 0 0 0-2.112.461L37.64 61.36a2.844 2.844 0 0 0-.365 2.572 1.833 1.833 0 0 0 1.766 1.026h13.917A11.978 11.978 0 0 0 64.962 76a12.809 12.809 0 0 0 11.52-8h10.092A3.402 3.402 0 0 0 90 64.296V49.244c0-2.111-1.195-4.213-3.308-4.213zM43.476 61L68 34.854V45a4.087 4.087 0 0 0-3.998 3.952v2.006c-5.453.423-9.946 4.857-11.175 10.042zm21.486 11.285c-4.436 0-7.548-3.36-8.028-7.68a7.513 7.513 0 0 1-.059-.96 8.4 8.4 0 0 1 .499-2.88c1.095-3.072 3.306-5.338 6.628-5.702a7.75 7.75 0 0 1 .96-.058 5.545 5.545 0 0 1 2.32.52 8.621 8.621 0 0 1 3.84 2.727 8.61 8.61 0 0 1 .46 10.215 7.667 7.667 0 0 1-6.62 3.818z\",\n  fill: \"#e3e3e3\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M86.692 45.031H71.97l-.015-14.987a2.202 2.202 0 0 0-1.482-1.786 1.964 1.964 0 0 0-2.112.461L37.64 61.36a2.844 2.844 0 0 0-.365 2.572 1.833 1.833 0 0 0 1.766 1.026h13.917A11.978 11.978 0 0 0 64.962 76a12.809 12.809 0 0 0 11.52-8h10.092A3.402 3.402 0 0 0 90 64.296V49.244c0-2.111-1.195-4.213-3.308-4.213zM43.476 61L68 34.854V45a4.087 4.087 0 0 0-3.998 3.952v2.006c-5.453.423-9.946 4.857-11.175 10.042zm21.486 11.285c-4.436 0-7.548-3.36-8.028-7.68a7.513 7.513 0 0 1-.059-.96 8.4 8.4 0 0 1 .499-2.88c1.095-3.072 3.306-5.338 6.628-5.702a7.75 7.75 0 0 1 .96-.058 5.545 5.545 0 0 1 2.32.52 8.621 8.621 0 0 1 3.84 2.727 8.61 8.61 0 0 1 .46 10.215 7.667 7.667 0 0 1-6.62 3.818z\",\n  fill: \"#4b4b4b\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.03 10.03 0 0 1-10-10V12A10.03 10.03 0 0 1 24 2h61.5a7.865 7.865 0 0 1 5.6 2.3l20.5 20.4a8.196 8.196 0 0 1 2.4 5.7V116a10.03 10.03 0 0 1-10 10z\",\n  fill: \"#080808\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.5 4a5.598 5.598 0 0 1 4.2 1.8l20.5 20.4a6.174 6.174 0 0 1 1.8 4.2V116a8.024 8.024 0 0 1-8 8H24a8.024 8.024 0 0 1-8-8V12a8.024 8.024 0 0 1 8-8h61.5m0-4H24a12.035 12.035 0 0 0-12 12v104a12.035 12.035 0 0 0 12 12h80a12.035 12.035 0 0 0 12-12V30.4a10.515 10.515 0 0 0-2.9-7.1L92.6 2.9A9.898 9.898 0 0 0 85.5 0z\",\n  fill: \"#fa0f00\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M43.62 91.734a.249.249 0 0 1 .031-.14.152.152 0 0 1 .137-.056 62.595 62.595 0 0 1 1.961-.063c.745-.014 1.563-.021 2.402-.021a7.151 7.151 0 0 1 5.133 1.699 5.617 5.617 0 0 1 1.609 4.175 5.682 5.682 0 0 1-2.032 4.693 7.81 7.81 0 0 1-4.905 1.462c-.322 0-.539-.007-.731-.014s-.36-.014-.584-.014v6.517a.207.207 0 0 1-.045.151.2.2 0 0 1-.15.045h-2.631a.204.204 0 0 1-.15-.045.208.208 0 0 1-.045-.151V91.734zm3.02 9.007c.196.014.371.021.581.025s.455.004.79.004a4.558 4.558 0 0 0 2.661-.685 3.655 3.655 0 0 0 .231-5.13 3.885 3.885 0 0 0-2.64-.815c-.336 0-.665.007-.948.018s-.521.024-.675.038v6.545zm11.274-8.979a.24.24 0 0 1 .035-.154.247.247 0 0 1 .161-.07 118.376 118.376 0 0 1 4.391-.084 8.166 8.166 0 0 1 6.381 2.504 9.604 9.604 0 0 1 2.122 6.532c0 3.734-1.224 6.168-2.919 7.668a8.692 8.692 0 0 1-5.751 2.066c-.713 0-1.588-.007-2.378-.017s-1.497-.024-1.874-.038a.148.148 0 0 1-.126-.059.276.276 0 0 1-.042-.164V91.762zm3.049 15.72c.238.014.462.028.692.038s.468.017.734.017a4.94 4.94 0 0 0 3.906-1.699 8.022 8.022 0 0 0 1.576-5.266 6.907 6.907 0 0 0-1.552-4.957 5.082 5.082 0 0 0-3.818-1.475c-.294 0-.559.007-.811.018s-.489.024-.727.038v13.286zm16.446 2.462a.26.26 0 0 1-.045.175.189.189 0 0 1-.15.049h-2.658a.193.193 0 0 1-.151-.049.253.253 0 0 1-.046-.175V91.706a.168.168 0 0 1 .197-.196h9.314a.216.216 0 0 1 .164.046.292.292 0 0 1 .059.15l.14 1.175.14 1.175a.182.182 0 0 1-.038.175.274.274 0 0 1-.186.049h-6.74v5.316h6.042a.224.224 0 0 1 .151.035.203.203 0 0 1 .045.16v2.35a.208.208 0 0 1-.045.161.224.224 0 0 1-.151.035h-6.042v7.607z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M50.253 66.389a39.275 39.275 0 0 1-2.412 3.21c-.389.46-.77.882-1.137 1.261-1.476 1.519-2.775 2.365-3.733 2.365a1.2 1.2 0 0 1-.855-.306 1.72 1.72 0 0 1-.245-.275 1.173 1.173 0 0 1-.217-.608 1.353 1.353 0 0 1 .024-.341 2.061 2.061 0 0 1 .108-.37 5.069 5.069 0 0 1 1.19-1.648q.222-.22.477-.446a33.108 33.108 0 0 1 8.044-4.76q-.623 1.008-1.244 1.918zm28.023-8.453a19.068 19.068 0 0 1 3.563.275 2.375 2.375 0 0 1 1.95 1.37 1.694 1.694 0 0 1 .075.457 2.269 2.269 0 0 1-.045.538c-.185.955-1.173 1.573-2.524 1.573a5.09 5.09 0 0 1-.532-.066 4.547 4.547 0 0 1-.608-.077 18.55 18.55 0 0 1-7.228-3.659c.556-.084 1.09-.151 1.598-.206a35.467 35.467 0 0 1 3.75-.205zM67.51 56.8a88.88 88.88 0 0 0-7.67 1.975 63.49 63.49 0 0 0 1.578-3.485 111.57 111.57 0 0 0 1.716-4.404c.465.729.945 1.437 1.435 2.118q.73 1.01 1.487 1.945.757.935 1.538 1.786l-.126.029zm-7.397-25.526a1.587 1.587 0 0 1 .115-.157 1.323 1.323 0 0 1 1.037-.589 1.201 1.201 0 0 1 .772.257 3.374 3.374 0 0 1 .764 2.537 18.087 18.087 0 0 1-.241 2.742 44.629 44.629 0 0 1-1.038 4.768q-.175.651-.374 1.323a27.942 27.942 0 0 1-1.165-3.877 19.421 19.421 0 0 1-.441-3.162 11.412 11.412 0 0 1 .104-2.363 4.384 4.384 0 0 1 .467-1.48zM88.426 60.39a4.26 4.26 0 0 0-.255-1.083 3.856 3.856 0 0 0-.762-1.261 5.83 5.83 0 0 0-1.453-1.114c-1.72-.958-4.239-1.44-7.523-1.44a39.77 39.77 0 0 0-3.434.156q-1.815.156-3.814.471a35.961 35.961 0 0 1-4.177-4.873 44.41 44.41 0 0 1-2.613-4.06q.58-1.82 1.014-3.466c.17-.646.32-1.266.458-1.871q.29-1.287.484-2.448c.089-.535.165-1.053.22-1.546a20.918 20.918 0 0 0 .147-2.38c0-2.557-.727-5.23-2.589-6.56a4.325 4.325 0 0 0-.838-.48 5.029 5.029 0 0 0-1.979-.377 3.781 3.781 0 0 0-1.902.543 4.028 4.028 0 0 0-1.434 1.426 8.793 8.793 0 0 0-.927 4.43 18.828 18.828 0 0 0 .164 2.175 30.687 30.687 0 0 0 2.458 8.436 127.641 127.641 0 0 1-3.237 8.575 76.786 76.786 0 0 1-3.66 7.598c-3.302 1.328-9.627 4.199-12.324 7.582a5.6 5.6 0 0 0-1.206 2.412 3.997 3.997 0 0 0-.06.969 3.636 3.636 0 0 0 .598 1.768 4.125 4.125 0 0 0 .644.757 4.292 4.292 0 0 0 .98.667c.089.045.18.087.28.13a5.157 5.157 0 0 0 .902.305 5.842 5.842 0 0 0 1.36.156 6.857 6.857 0 0 0 2.915-.707 11.44 11.44 0 0 0 1.91-1.155 22.012 22.012 0 0 0 3.646-3.518 44.333 44.333 0 0 0 3.286-4.49 67.712 67.712 0 0 0 2.133-3.54q1.49-.508 3.003-.965a85.947 85.947 0 0 1 3.026-.857c.218-.058.426-.101.642-.157 1.98-.51 3.907-.946 5.726-1.269q.516.451 1.026.854 1.017.81 1.997 1.443.49.318.968.598a17.682 17.682 0 0 0 8.875 2.643 6.532 6.532 0 0 0 3.64-.885 3.932 3.932 0 0 0 .53-.416 3.603 3.603 0 0 0 .925-1.391 3.86 3.86 0 0 0 .246-1.2 4.203 4.203 0 0 0-.016-.585z\",\n  fill: \"#fa0f00\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.03 10.03 0 0 1-10-10V12A10.03 10.03 0 0 1 24 2h61.5a7.865 7.865 0 0 1 5.6 2.3l20.5 20.4a8.196 8.196 0 0 1 2.4 5.7V116a10.03 10.03 0 0 1-10 10z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.5 4a5.598 5.598 0 0 1 4.2 1.8l20.5 20.4a6.174 6.174 0 0 1 1.8 4.2V116a8.024 8.024 0 0 1-8 8H24a8.024 8.024 0 0 1-8-8V12a8.024 8.024 0 0 1 8-8h61.5m0-4H24a12.035 12.035 0 0 0-12 12v104a12.035 12.035 0 0 0 12 12h80a12.035 12.035 0 0 0 12-12V30.4a10.515 10.515 0 0 0-2.9-7.1L92.6 2.9A9.898 9.898 0 0 0 85.5 0z\",\n  fill: \"#fa0f00\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M43.62 91.734a.249.249 0 0 1 .031-.14.152.152 0 0 1 .137-.056 62.595 62.595 0 0 1 1.961-.063c.745-.014 1.563-.021 2.402-.021a7.151 7.151 0 0 1 5.133 1.699 5.617 5.617 0 0 1 1.609 4.175 5.682 5.682 0 0 1-2.032 4.693 7.81 7.81 0 0 1-4.905 1.462c-.322 0-.539-.007-.731-.014s-.36-.014-.584-.014v6.517a.207.207 0 0 1-.045.151.2.2 0 0 1-.15.045h-2.631a.204.204 0 0 1-.15-.045.208.208 0 0 1-.045-.151V91.734zm3.02 9.007c.196.014.371.021.581.025s.455.004.79.004a4.558 4.558 0 0 0 2.661-.685 3.655 3.655 0 0 0 .231-5.13 3.885 3.885 0 0 0-2.64-.815c-.336 0-.665.007-.948.018s-.521.024-.675.038v6.545zm11.274-8.979a.24.24 0 0 1 .035-.154.247.247 0 0 1 .161-.07 118.376 118.376 0 0 1 4.391-.084 8.166 8.166 0 0 1 6.381 2.504 9.604 9.604 0 0 1 2.122 6.532c0 3.734-1.224 6.168-2.919 7.668a8.692 8.692 0 0 1-5.751 2.066c-.713 0-1.588-.007-2.378-.017s-1.497-.024-1.874-.038a.148.148 0 0 1-.126-.059.276.276 0 0 1-.042-.164V91.762zm3.049 15.72c.238.014.462.028.692.038s.468.017.734.017a4.94 4.94 0 0 0 3.906-1.699 8.022 8.022 0 0 0 1.576-5.266 6.907 6.907 0 0 0-1.552-4.957 5.082 5.082 0 0 0-3.818-1.475c-.294 0-.559.007-.811.018s-.489.024-.727.038v13.286zm16.446 2.462a.26.26 0 0 1-.045.175.189.189 0 0 1-.15.049h-2.658a.193.193 0 0 1-.151-.049.253.253 0 0 1-.046-.175V91.706a.168.168 0 0 1 .197-.196h9.314a.216.216 0 0 1 .164.046.292.292 0 0 1 .059.15l.14 1.175.14 1.175a.182.182 0 0 1-.038.175.274.274 0 0 1-.186.049h-6.74v5.316h6.042a.224.224 0 0 1 .151.035.203.203 0 0 1 .045.16v2.35a.208.208 0 0 1-.045.161.224.224 0 0 1-.151.035h-6.042v7.607z\",\n  fill: \"#2c2c2c\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M50.253 66.389a39.275 39.275 0 0 1-2.412 3.21c-.389.46-.77.882-1.137 1.261-1.476 1.519-2.775 2.365-3.733 2.365a1.2 1.2 0 0 1-.855-.306 1.72 1.72 0 0 1-.245-.275 1.173 1.173 0 0 1-.217-.608 1.353 1.353 0 0 1 .024-.341 2.061 2.061 0 0 1 .108-.37 5.069 5.069 0 0 1 1.19-1.648q.222-.22.477-.446a33.108 33.108 0 0 1 8.044-4.76q-.623 1.008-1.244 1.918zm28.023-8.453a19.068 19.068 0 0 1 3.563.275 2.375 2.375 0 0 1 1.95 1.37 1.694 1.694 0 0 1 .075.457 2.269 2.269 0 0 1-.045.538c-.185.955-1.173 1.573-2.524 1.573a5.09 5.09 0 0 1-.532-.066 4.547 4.547 0 0 1-.608-.077 18.55 18.55 0 0 1-7.228-3.659c.556-.084 1.09-.151 1.598-.206a35.467 35.467 0 0 1 3.75-.205zM67.51 56.8a88.88 88.88 0 0 0-7.67 1.975 63.49 63.49 0 0 0 1.578-3.485 111.57 111.57 0 0 0 1.716-4.404c.465.729.945 1.437 1.435 2.118q.73 1.01 1.487 1.945.757.935 1.538 1.786l-.126.029zm-7.397-25.526a1.587 1.587 0 0 1 .115-.157 1.323 1.323 0 0 1 1.037-.589 1.201 1.201 0 0 1 .772.257 3.374 3.374 0 0 1 .764 2.537 18.087 18.087 0 0 1-.241 2.742 44.629 44.629 0 0 1-1.038 4.768q-.175.651-.374 1.323a27.942 27.942 0 0 1-1.165-3.877 19.421 19.421 0 0 1-.441-3.162 11.412 11.412 0 0 1 .104-2.363 4.384 4.384 0 0 1 .467-1.48zM88.426 60.39a4.26 4.26 0 0 0-.255-1.083 3.856 3.856 0 0 0-.762-1.261 5.83 5.83 0 0 0-1.453-1.114c-1.72-.958-4.239-1.44-7.523-1.44a39.77 39.77 0 0 0-3.434.156q-1.815.156-3.814.471a35.961 35.961 0 0 1-4.177-4.873 44.41 44.41 0 0 1-2.613-4.06q.58-1.82 1.014-3.466c.17-.646.32-1.266.458-1.871q.29-1.287.484-2.448c.089-.535.165-1.053.22-1.546a20.918 20.918 0 0 0 .147-2.38c0-2.557-.727-5.23-2.589-6.56a4.325 4.325 0 0 0-.838-.48 5.029 5.029 0 0 0-1.979-.377 3.781 3.781 0 0 0-1.902.543 4.028 4.028 0 0 0-1.434 1.426 8.793 8.793 0 0 0-.927 4.43 18.828 18.828 0 0 0 .164 2.175 30.687 30.687 0 0 0 2.458 8.436 127.641 127.641 0 0 1-3.237 8.575 76.786 76.786 0 0 1-3.66 7.598c-3.302 1.328-9.627 4.199-12.324 7.582a5.6 5.6 0 0 0-1.206 2.412 3.997 3.997 0 0 0-.06.969 3.636 3.636 0 0 0 .598 1.768 4.125 4.125 0 0 0 .644.757 4.292 4.292 0 0 0 .98.667c.089.045.18.087.28.13a5.157 5.157 0 0 0 .902.305 5.842 5.842 0 0 0 1.36.156 6.857 6.857 0 0 0 2.915-.707 11.44 11.44 0 0 0 1.91-1.155 22.012 22.012 0 0 0 3.646-3.518 44.333 44.333 0 0 0 3.286-4.49 67.712 67.712 0 0 0 2.133-3.54q1.49-.508 3.003-.965a85.947 85.947 0 0 1 3.026-.857c.218-.058.426-.101.642-.157 1.98-.51 3.907-.946 5.726-1.269q.516.451 1.026.854 1.017.81 1.997 1.443.49.318.968.598a17.682 17.682 0 0 0 8.875 2.643 6.532 6.532 0 0 0 3.64-.885 3.932 3.932 0 0 0 .53-.416 3.603 3.603 0 0 0 .925-1.391 3.86 3.86 0 0 0 .246-1.2 4.203 4.203 0 0 0-.016-.585z\",\n  fill: \"#fa0f00\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#252525\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#6e6e6e\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#e3e3e3\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M92.2 26.1H44.5a4.268 4.268 0 0 0-4.3 4.3v4.3h-4.3a4.268 4.268 0 0 0-4.3 4.3v34.7a4.268 4.268 0 0 0 4.3 4.3h47.8a4.268 4.268 0 0 0 4.3-4.3v-4.4h4.3a4.268 4.268 0 0 0 4.3-4.3V30.4a4.354 4.354 0 0 0-4.4-4.3zm-8.7 47.7H35.8V39h47.8v26.1l-.1 8.7zm4.4-8.7v-26a4.268 4.268 0 0 0-4.3-4.3H44.4v-4.4h47.8v34.8l-4.3-.1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M68.2 57.4L52.8 65c-.7.3-1.8-.2-1.8-1V48.9c0-.8 1.1-1.3 1.8-1l15.5 7.5a1.104 1.104 0 0 1-.1 2z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#4b4b4b\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M92.2 26.1H44.5a4.268 4.268 0 0 0-4.3 4.3v4.3h-4.3a4.268 4.268 0 0 0-4.3 4.3v34.7a4.268 4.268 0 0 0 4.3 4.3h47.8a4.268 4.268 0 0 0 4.3-4.3v-4.4h4.3a4.268 4.268 0 0 0 4.3-4.3V30.4a4.354 4.354 0 0 0-4.4-4.3zm-8.7 47.7H35.8V39h47.8v26.1l-.1 8.7zm4.4-8.7v-26a4.268 4.268 0 0 0-4.3-4.3H44.4v-4.4h47.8v34.8l-4.3-.1z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M68.2 57.4L52.8 65c-.7.3-1.8-.2-1.8-1V48.9c0-.8 1.1-1.3 1.8-1l15.5 7.5a1.104 1.104 0 0 1-.1 2z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#252525\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#6e6e6e\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M94.39 27.15H33.61a4.342 4.342 0 0 0-4.342 4.342v34.646a6.402 6.402 0 0 0 6.071 6.485h57.205a6.501 6.501 0 0 0 6.188-6.485V31.492a4.342 4.342 0 0 0-4.341-4.342zm-30.435 9.724H94.47l.011 7.688H63.938zm.029 11.939l30.497-.046-.09 7.689-30.527.09zm-19.52 19.672h-8.865a2.32 2.32 0 0 1-2.03-2.351v-5.439l10.941.004zm.044-11.984l-10.944-.013.002-7.688 10.945.013zm-.045-11.985H33.52l.004-7.688h10.944zm15.27 23.856H48.805l-.008-7.674 10.93.03zm0-11.916H48.76l.045-7.643h10.882zm0-11.94H48.805l-.002-7.688H59.73zM94.47 66.145a2.233 2.233 0 0 1-2.07 2.227l-28.507.113.103-7.798 30.474.02z\",\n  fill: \"#e3e3e3\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M94.39 27.15H33.61a4.342 4.342 0 0 0-4.342 4.342v34.646a6.402 6.402 0 0 0 6.071 6.485h57.205a6.501 6.501 0 0 0 6.188-6.485V31.492a4.342 4.342 0 0 0-4.341-4.342zm-30.435 9.724H94.47l.011 7.688H63.938zm.029 11.939l30.497-.046-.09 7.689-30.527.09zm-19.52 19.672h-8.865a2.32 2.32 0 0 1-2.03-2.351v-5.439l10.941.004zm.044-11.984l-10.944-.013.002-7.688 10.945.013zm-.045-11.985H33.52l.004-7.688h10.944zm15.27 23.856H48.805l-.008-7.674 10.93.03zm0-11.916H48.76l.045-7.643h10.882zm0-11.94H48.805l-.002-7.688H59.73zM94.47 66.145a2.233 2.233 0 0 1-2.07 2.227l-28.507.113.103-7.798 30.474.02z\",\n  fill: \"#4b4b4b\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#252525\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#6e6e6e\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#e3e3e3\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M30.561 28.238a1.264 1.264 0 0 0-1.293 1.207v7.263a1.229 1.229 0 0 0 1.233 1.228l2.937-.011a1.233 1.233 0 0 0 1.233-1.233l-.044-4.228 9.887.034-.017 26.117-4.117.005a1.339 1.339 0 0 0-1.31 1.277l.003 1.804a1.284 1.284 0 0 0 1.333 1.188h12.496a1.3 1.3 0 0 0 1.284-1.26v-1.827a1.258 1.258 0 0 0-1.309-1.182l-4.09.003V32.481l9.82-.017-.01 4.24a1.082 1.082 0 0 0 1.061 1.215l3.07.006a1.186 1.186 0 0 0 1.198-1.211l.006-7.29a1.16 1.16 0 0 0-1.192-1.186z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M96.214 62.889H65.152a2.136 2.136 0 0 1-2.14-2.018c0-1.622.97-2.256 2.458-2.256h31.08a2.094 2.094 0 0 1 2.17 2.112 2.327 2.327 0 0 1-2.506 2.162z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M96.282 74.828H41.204a2.147 2.147 0 0 1-2.168-2.06 2.251 2.251 0 0 1 2.52-2.197h55.056a2.05 2.05 0 0 1 2.097 1.876c.147 1.528-.98 2.38-2.427 2.38z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M96.562 50.95H65.164a2.147 2.147 0 0 1-2.148-2.155v-.013a2.17 2.17 0 0 1 2.417-2.113l30.908-.022a2.155 2.155 0 0 1 2.391 2.125 2.17 2.17 0 0 1-2.17 2.178z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#4b4b4b\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M30.561 28.238a1.264 1.264 0 0 0-1.293 1.207v7.263a1.229 1.229 0 0 0 1.233 1.228l2.937-.011a1.233 1.233 0 0 0 1.233-1.233l-.044-4.228 9.887.034-.017 26.117-4.117.005a1.339 1.339 0 0 0-1.31 1.277l.003 1.804a1.284 1.284 0 0 0 1.333 1.188h12.496a1.3 1.3 0 0 0 1.284-1.26v-1.827a1.258 1.258 0 0 0-1.309-1.182l-4.09.003V32.481l9.82-.017-.01 4.24a1.082 1.082 0 0 0 1.061 1.215l3.07.006a1.186 1.186 0 0 0 1.198-1.211l.006-7.29a1.16 1.16 0 0 0-1.192-1.186z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M96.214 62.889H65.152a2.136 2.136 0 0 1-2.14-2.018c0-1.622.97-2.256 2.458-2.256h31.08a2.094 2.094 0 0 1 2.17 2.112 2.327 2.327 0 0 1-2.506 2.162z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M96.282 74.828H41.204a2.147 2.147 0 0 1-2.168-2.06 2.251 2.251 0 0 1 2.52-2.197h55.056a2.05 2.05 0 0 1 2.097 1.876c.147 1.528-.98 2.38-2.427 2.38z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M96.562 50.95H65.164a2.147 2.147 0 0 1-2.148-2.155v-.013a2.17 2.17 0 0 1 2.417-2.113l30.908-.022a2.155 2.155 0 0 1 2.391 2.125 2.17 2.17 0 0 1-2.17 2.178z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#252525\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outine\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#6e6e6e\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M63.98 28a23.98 23.98 0 1 0 24 23.875A23.923 23.923 0 0 0 63.98 28zm11.378 24.439a1.773 1.773 0 0 1-.42.44L60.343 61.23a1.293 1.293 0 0 1-.62.16h-1.2c-.66 0-1.605-.713-1.605-1.373V43.476c0-.66.96-1.117 1.62-1.117h1.2a1.118 1.118 0 0 1 .602.23l14.596 8.21a1.205 1.205 0 0 1 .421 1.64z\",\n  fill: \"#e3e3e3\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outine\",\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M63.98 28a23.98 23.98 0 1 0 24 23.875A23.923 23.923 0 0 0 63.98 28zm11.378 24.439a1.773 1.773 0 0 1-.42.44L60.343 61.23a1.293 1.293 0 0 1-.62.16h-1.2c-.66 0-1.605-.713-1.605-1.373V43.476c0-.66.96-1.117 1.62-1.117h1.2a1.118 1.118 0 0 1 .602.23l14.596 8.21a1.205 1.205 0 0 1 .421 1.64z\",\n  fill: \"#4b4b4b\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.054 8.054 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z\",\n  fill: \"#300\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z\",\n  fill: \"#ff9a00\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"512\",\n  fill: \"#ff9a00\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M63.15 59.499H48.107l-3.061 9.508a.766.766 0 0 1-.781.586h-7.62q-.652 0-.456-.716l13.025-37.511q.195-.586.39-1.335a13.93 13.93 0 0 0 .261-2.638.403.403 0 0 1 .456-.455h10.354q.455 0 .521.325L75.98 68.942q.196.651-.39.65h-8.466a.602.602 0 0 1-.652-.455zm-12.699-8.206h10.29q-.391-1.301-.912-2.93-.522-1.627-1.107-3.484l-1.172-3.712q-.587-1.856-1.075-3.582-.488-1.725-.88-3.158h-.064a52.517 52.517 0 0 1-1.368 5.21q-.913 2.93-1.856 5.99-.945 3.063-1.856 5.666z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M83.467 33.84a4.724 4.724 0 0 1-3.581-1.432 5.152 5.152 0 0 1-1.368-3.712 4.779 4.779 0 0 1 1.465-3.614 5.033 5.033 0 0 1 3.615-1.4 4.843 4.843 0 0 1 3.68 1.4 5.027 5.027 0 0 1 1.334 3.614 5.085 5.085 0 0 1-1.4 3.712 4.997 4.997 0 0 1-3.745 1.433zm-4.493 35.102V37.813q0-.586.521-.586h8.01q.52 0 .521.586v31.129q0 .651-.52.65H79.56q-.586 0-.586-.65z\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M51.521 100.46l-1.248 4.707c-.026.13-.078.182-.234.182h-2.314c-.156 0-.182-.052-.156-.234l4.472-15.652a4.805 4.805 0 0 0 .156-1.3c0-.104.052-.157.13-.157h3.302c.104 0 .156.026.182.156l5.018 16.979c.026.13 0 .208-.13.208h-2.6a.209.209 0 0 1-.234-.156l-1.3-4.732zm4.394-2.573c-.442-1.742-1.482-5.538-1.872-7.385h-.026c-.338 1.847-1.17 4.94-1.82 7.385z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M66.055 105.14c0 .157-.026.209-.208.209h-2.418c-.157 0-.208-.078-.208-.208V88.215c0-.156.078-.21.208-.21h2.444c.13 0 .182.054.182.183z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M79.887 104.906a.264.264 0 0 1-.182.287 8.25 8.25 0 0 1-2.887.39c-4.055 0-7.643-2.652-7.643-8.893 0-5.356 3.172-8.944 8.008-8.944a7.138 7.138 0 0 1 2.704.364c.13.052.156.13.156.286v2.237c0 .207-.104.207-.182.181a6.177 6.177 0 0 0-2.652-.494c-3.042 0-5.07 2.315-5.07 6.292 0 4.915 2.782 6.37 5.07 6.37a7.167 7.167 0 0 0 2.496-.337c.104-.052.182-.052.182.13z\",\n  fill: \"#fff\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z\",\n  fill: \"#300\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z\",\n  fill: \"#ff9a00\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M57.434 104.912l-.672 2.534-.672 2.534a.25.25 0 0 1-.073.151.271.271 0 0 1-.179.045h-2.492c-.084 0-.133-.014-.157-.052a.324.324 0 0 1-.011-.2l2.408-8.428 2.408-8.428a3.555 3.555 0 0 0 .105-.5c.028-.206.049-.479.063-.899a.184.184 0 0 1 .039-.126.131.131 0 0 1 .102-.042h3.556a.198.198 0 0 1 .129.032.222.222 0 0 1 .066.136l2.702 9.142 2.702 9.142a.25.25 0 0 1-.007.164.137.137 0 0 1-.133.059h-2.8a.299.299 0 0 1-.168-.042.204.204 0 0 1-.084-.126l-.7-2.548-.7-2.548h-5.432zm4.732-2.772c-.238-.938-.637-2.429-1.029-3.934s-.777-3.024-.987-4.018h-.028c-.182.994-.497 2.324-.854 3.735s-.756 2.901-1.106 4.217h4.004z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M73.086 109.952a.257.257 0 0 1-.039.175c-.032.035-.088.049-.186.049h-2.603a.226.226 0 0 1-.175-.059.235.235 0 0 1-.049-.164V91.725a.226.226 0 0 1 .059-.175.235.235 0 0 1 .164-.049h2.632a.208.208 0 0 1 .151.045.203.203 0 0 1 .046.151v18.255z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"512\",\n  fill: \"#ff9a00\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M63.15 59.499H48.107l-3.061 9.508a.766.766 0 0 1-.781.586h-7.62q-.652 0-.456-.716l13.025-37.511q.195-.586.39-1.335a13.93 13.93 0 0 0 .261-2.638.403.403 0 0 1 .456-.455h10.354q.455 0 .521.325L75.98 68.942q.196.651-.39.65h-8.466a.602.602 0 0 1-.652-.455zm-12.699-8.206h10.29q-.391-1.301-.912-2.93-.522-1.627-1.107-3.484l-1.172-3.712q-.587-1.856-1.075-3.582-.488-1.725-.88-3.158h-.064a52.515 52.515 0 0 1-1.368 5.21q-.913 2.93-1.856 5.99-.945 3.063-1.856 5.666z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M83.467 33.84a4.724 4.724 0 0 1-3.581-1.432 5.152 5.152 0 0 1-1.368-3.712 4.779 4.779 0 0 1 1.465-3.614 5.033 5.033 0 0 1 3.615-1.4 4.843 4.843 0 0 1 3.68 1.4 5.027 5.027 0 0 1 1.334 3.614 5.085 5.085 0 0 1-1.4 3.712 4.997 4.997 0 0 1-3.745 1.433zm-4.493 35.102V37.813q0-.586.521-.586h8.01q.52 0 .521.586v31.129q0 .651-.52.65H79.56q-.586 0-.586-.65z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z\",\n  fill: \"#00005b\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z\",\n  fill: \"#99f\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M48.334 109.952a.253.253 0 0 1-.046.175.193.193 0 0 1-.151.049h-2.66a.193.193 0 0 1-.151-.049.253.253 0 0 1-.046-.175V91.696a.167.167 0 0 1 .197-.196h9.324a.22.22 0 0 1 .164.045.292.292 0 0 1 .06.151l.14 1.176.14 1.176a.182.182 0 0 1-.038.175.274.274 0 0 1-.186.049h-6.748v5.32h6.048a.22.22 0 0 1 .15.035.208.208 0 0 1 .045.161v2.352a.208.208 0 0 1-.045.161.22.22 0 0 1-.15.035h-6.048v7.616z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M58.358 110.176a.255.255 0 0 1-.199-.063.274.274 0 0 1-.053-.189v-18.2a.25.25 0 0 1 .046-.164.186.186 0 0 1 .151-.059h2.688a.16.16 0 0 1 .136.045.251.251 0 0 1 .032.151v15.708h7a.188.188 0 0 1 .147.046.17.17 0 0 1 .021.151l-.21 1.19-.21 1.19a.238.238 0 0 1-.084.151.27.27 0 0 1-.168.045h-9.297z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M74.401 104.912l-.672 2.534-.672 2.534a.246.246 0 0 1-.074.151.27.27 0 0 1-.178.045h-2.491c-.084 0-.133-.014-.158-.052a.305.305 0 0 1-.01-.2l2.408-8.428 2.408-8.428a3.555 3.555 0 0 0 .105-.5c.028-.206.049-.479.063-.899a.19.19 0 0 1 .038-.126.13.13 0 0 1 .102-.043h3.556a.203.203 0 0 1 .13.032.222.222 0 0 1 .067.136l2.702 9.142 2.702 9.142a.25.25 0 0 1-.007.164.137.137 0 0 1-.133.059h-2.8a.299.299 0 0 1-.168-.042.204.204 0 0 1-.084-.126l-.7-2.548-.7-2.548h-5.434zm4.733-2.772c-.238-.938-.637-2.429-1.03-3.934s-.777-3.024-.987-4.018h-.027c-.182.994-.497 2.324-.854 3.735s-.756 2.901-1.106 4.217h4.004z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"512\",\n  fill: \"#99f\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M53.363 59.344H38.319l-2.963 9.742a.766.766 0 0 1-.781.586h-7.62q-.651 0-.456-.716l12.979-37.59q.195-.586.39-1.335a15.113 15.113 0 0 0 .26-2.724.403.403 0 0 1 .457-.456h10.354q.455 0 .521.325l14.83 41.845q.195.652-.391.651h-8.466a.602.602 0 0 1-.651-.456zm-12.648-8.05h10.29q-.391-1.302-.912-2.931-.522-1.627-1.107-3.484l-1.173-3.712q-.586-1.856-1.074-3.582-.489-1.725-.88-3.158h-.064a52.629 52.629 0 0 1-1.368 5.21q-.913 2.93-1.856 5.99-.945 3.063-1.856 5.666z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M69.173 69.103V44.781q0-1.106-.032-2.474-.034-1.368-.098-2.605a64.507 64.507 0 0 0-.13-2.036.387.387 0 0 1 .065-.39.532.532 0 0 1 .39-.131h6.773a1.456 1.456 0 0 1 .652.13.613.613 0 0 1 .325.456c.087.26.184.636.293.961a5.48 5.48 0 0 1 .228 1.205 13.08 13.08 0 0 1 4.298-2.507 14.793 14.793 0 0 1 4.884-.814 11.557 11.557 0 0 1 3.674.618 9.624 9.624 0 0 1 6.154 5.992 18.105 18.105 0 0 1 .976 6.48V69.12q0 .586-.52.586H89.36a.575.575 0 0 1-.651-.651V50.447a8.136 8.136 0 0 0-.586-3.321 4.656 4.656 0 0 0-1.66-2.02 4.901 4.901 0 0 0-2.768-.715 8.104 8.104 0 0 0-3.061.553 8.382 8.382 0 0 0-2.546 1.53v22.63q0 .585-.521.585h-7.809a.518.518 0 0 1-.586-.586z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.054 8.054 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z\",\n  fill: \"#013301\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z\",\n  fill: \"#3f6\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M40.522 109.775c0 .141-.056.197-.197.197h-2.597c-.17 0-.225-.056-.225-.226V91.431c0-.14.056-.254.17-.254 1.382-.056 2.68-.084 4.768-.084 4.036 0 6.463 1.92 6.463 5.418a5.297 5.297 0 0 1-3.528 5.08c.819 1.411 3.585 6.434 4.488 8.128.084.14.084.253-.114.253h-2.935c-.197 0-.282-.056-.338-.14-.65-1.13-2.681-5.024-3.98-7.395h-1.975zm1.722-10.047c2.06 0 3.556-.818 3.556-2.934 0-2.06-1.355-2.992-3.443-2.992-.734 0-1.44.028-1.835.056v5.87z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M62.703 109.746c-.028.17-.085.226-.254.226h-9.651c-.17 0-.226-.056-.226-.226v-18.37c0-.17.056-.227.226-.227h9.312c.17 0 .226.028.255.198l.253 2.37c.028.141-.028.226-.169.226h-6.801v5.024h6.124c.141 0 .197.056.197.197v2.399c0 .14-.085.198-.226.198h-6.095v5.418H62.9c.169 0 .197.055.169.197z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M69.306 104.667l-1.355 5.108c-.028.141-.084.197-.254.197h-2.512c-.17 0-.197-.056-.17-.253L69.87 92.73a5.23 5.23 0 0 0 .17-1.412c0-.112.056-.17.14-.17h3.584c.113 0 .17.03.197.17l5.447 18.428c.029.142 0 .226-.14.226h-2.822q-.213 0-.255-.168l-1.411-5.137zm4.769-2.794c-.48-1.89-1.608-6.01-2.032-8.015h-.028c-.368 2.004-1.27 5.362-1.975 8.015z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M82.258 109.972c-.198 0-.254-.084-.254-.253V91.376c0-.142.056-.227.197-.227h2.71c.141 0 .169.057.169.198v15.832h7.055c.142 0 .198.055.17.197l-.423 2.4a.225.225 0 0 1-.255.196z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M59.8 59.228H44.756l-3.061 9.507a.766.766 0 0 1-.781.586h-7.62q-.652 0-.456-.715l13.024-37.511q.196-.587.392-1.335a13.985 13.985 0 0 0 .26-2.638.403.403 0 0 1 .456-.456h10.355c.303 0 .477.11.52.326L72.629 68.67q.196.652-.391.65h-8.466a.601.601 0 0 1-.65-.455zm-12.7-8.206h10.29q-.39-1.301-.911-2.93-.522-1.627-1.108-3.484l-1.172-3.712q-.585-1.857-1.074-3.582-.49-1.724-.88-3.158h-.064a52.581 52.581 0 0 1-1.368 5.21q-.914 2.93-1.856 5.99-.946 3.062-1.857 5.666z\",\n  fill: \"#3f6\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M75.624 36.956h7.099a.886.886 0 0 1 .847.651 3.162 3.162 0 0 1 .325.912 10.423 10.423 0 0 1 .195 1.27q.065.683.066 1.465a15.213 15.213 0 0 1 4.33-3.484 12.196 12.196 0 0 1 6.024-1.466.518.518 0 0 1 .586.587v7.88c0 .304-.218.455-.651.455a16.437 16.437 0 0 0-7.652 1.368 6.869 6.869 0 0 0-2.181 1.498v20.643q0 .587-.522.586h-7.88a.575.575 0 0 1-.65-.65V46.268q0-1.431-.033-3.028-.034-1.595-.098-3.158a20.749 20.749 0 0 0-.26-2.67.374.374 0 0 1 .455-.456z\",\n  fill: \"#3f6\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z\",\n  fill: \"#013301\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z\",\n  fill: \"#3f6\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M49.251 91.129c0-.14.028-.197.198-.226.649-.028 2.51-.085 4.429-.085 5.727 0 8.577 3.697 8.577 9.114 0 7.533-4.937 9.818-8.746 9.818-1.439 0-3.527-.028-4.289-.057-.112 0-.169-.085-.169-.225zm3.076 15.855c.48.029.903.057 1.438.057 3.16 0 5.502-2.228 5.53-7.024.028-4.684-2.398-6.49-5.417-6.49-.592 0-1.072.029-1.551.056z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M66.07 109.693c-.17 0-.226-.056-.226-.225V91.072a.178.178 0 0 1 .197-.197h3.499c.169 0 .226.028.282.169 1.664 3.527 5.389 12.273 6.122 14.136h.029a66.576 66.576 0 0 1-.142-4.572v-9.536c0-.112.057-.197.227-.197h2.454c.169 0 .225.057.225.226v18.338c0 .198-.084.254-.282.254h-3.132c-.197 0-.281-.056-.338-.197-1.298-3.047-5.473-12.329-6.377-15.01h-.027c.084 1.27.14 2.935.14 5.22v9.762c0 .14-.056.225-.197.225z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"512\",\n  fill: \"#3f6\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M29.449 68.942V27.524a.475.475 0 0 1 .456-.521q.977-.064 2.865-.098 1.888-.032 4.429-.065 2.54-.032 5.405-.033 7.815 0 12.96 2.67a18.036 18.036 0 0 1 7.716 7.327 21.792 21.792 0 0 1 2.573 10.712 23.898 23.898 0 0 1-1.335 8.303 19.373 19.373 0 0 1-3.647 6.22 21.687 21.687 0 0 1-5.243 4.33 23.062 23.062 0 0 1-6.251 2.54 27.522 27.522 0 0 1-6.578.814h-4.851q-2.574 0-4.787-.032-2.215-.034-3.321-.098-.39 0-.391-.651zm8.987-34.125v26.961q.716 0 1.302.033.587.033 1.205.065.618.034 1.4.032a17.442 17.442 0 0 0 5.796-.911 11.854 11.854 0 0 0 4.461-2.735 12.286 12.286 0 0 0 2.865-4.494 17.039 17.039 0 0 0 1.01-6.056 15.28 15.28 0 0 0-.977-5.698 10.79 10.79 0 0 0-2.833-4.103 11.598 11.598 0 0 0-4.428-2.442 19.314 19.314 0 0 0-5.633-.782q-1.304 0-2.182.033-.879.033-1.986.097z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M70.736 69.007V44.78q0-1.106-.033-2.474t-.097-2.605q-.066-1.237-.13-1.954a.387.387 0 0 1 .064-.39.531.531 0 0 1 .391-.131h6.773a1.455 1.455 0 0 1 .651.13.613.613 0 0 1 .326.456l.293.88a5.474 5.474 0 0 1 .228 1.204A13.082 13.082 0 0 1 83.5 37.39a14.793 14.793 0 0 1 4.884-.814 12.386 12.386 0 0 1 3.81.618 9.624 9.624 0 0 1 6.154 5.992 18.105 18.105 0 0 1 .977 6.48v19.34q0 .587-.521.587h-7.88a.575.575 0 0 1-.651-.651V50.447a8.134 8.134 0 0 0-.586-3.321 4.655 4.655 0 0 0-1.661-2.02 4.902 4.902 0 0 0-2.768-.715 8.104 8.104 0 0 0-3.06.553 7.724 7.724 0 0 0-2.41 1.53v22.533q0 .586-.521.586h-7.945a.518.518 0 0 1-.586-.586z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126.01a10.011 10.011 0 0 1-10-10v-104a10.011 10.011 0 0 1 10-10h61.52a7.946 7.946 0 0 1 5.647 2.334l20.48 20.407A7.948 7.948 0 0 1 114 30.418v85.593a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#252525\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M113.06 23.33L92.58 2.93A9.958 9.958 0 0 0 85.52.01H24a12.01 12.01 0 0 0-12 12v104a12.01 12.01 0 0 0 12 12h80a12.01 12.01 0 0 0 12-12V30.42a10.09 10.09 0 0 0-2.94-7.09zM90 6l20.06 19.99H92a2 2 0 0 1-2-2zm22 110.01a7.998 7.998 0 0 1-8 8H24a7.998 7.998 0 0 1-8-8v-104a7.998 7.998 0 0 1 8-8h61.52c.16 0 .32.01.48.02v19.96a6.005 6.005 0 0 0 6 6h19.98c.01.14.02.29.02.43z\",\n  fill: \"#6e6e6e\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"White Bg\",\n  d: \"M24 126.01a10.011 10.011 0 0 1-10-10v-104a10.011 10.011 0 0 1 10-10h61.52a7.946 7.946 0 0 1 5.647 2.334l20.48 20.407A7.948 7.948 0 0 1 114 30.418v85.593a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"Gray Outline\",\n  d: \"M113.06 23.33L92.58 2.93A9.958 9.958 0 0 0 85.52.01H24a12.01 12.01 0 0 0-12 12v104a12.01 12.01 0 0 0 12 12h80a12.01 12.01 0 0 0 12-12V30.42a10.09 10.09 0 0 0-2.94-7.09zM90 6l20.06 19.99H92a2 2 0 0 1-2-2zm22 110.01a7.998 7.998 0 0 1-8 8H24a7.998 7.998 0 0 1-8-8v-104a7.998 7.998 0 0 1 8-8h61.52c.16 0 .32.01.48.02v19.96a6.005 6.005 0 0 0 6 6h19.98c.01.14.02.29.02.43z\",\n  fill: \"#b3b3b3\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z\",\n  fill: \"#252525\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z\",\n  fill: \"#6e6e6e\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M47.13 110.176a.24.24 0 0 1-.165-.049.222.222 0 0 1-.06-.175v-1.596a.578.578 0 0 1 .021-.168c.014-.049.035-.098.063-.168l4.13-6.874 4.13-6.874h-7.924a.178.178 0 0 1-.147-.049.22.22 0 0 1-.021-.175l.182-1.176.182-1.176a.267.267 0 0 1 .07-.151.217.217 0 0 1 .154-.045h11.06a.148.148 0 0 1 .168.168v1.736a.546.546 0 0 1-.039.199 2.49 2.49 0 0 1-.102.221l-4.046 6.79-4.046 6.79h8.344a.16.16 0 0 1 .144.06.177.177 0 0 1-.004.165l-.196 1.176-.196 1.176a.238.238 0 0 1-.084.151.27.27 0 0 1-.168.045H47.13z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M65.05 109.952a.257.257 0 0 1-.039.175c-.032.035-.088.049-.185.049h-2.604a.226.226 0 0 1-.175-.059.235.235 0 0 1-.049-.164V91.725a.222.222 0 0 1 .06-.175.24.24 0 0 1 .165-.049h2.632a.208.208 0 0 1 .151.045.203.203 0 0 1 .046.151v18.255z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M69.361 91.724a.237.237 0 0 1 .032-.139.153.153 0 0 1 .136-.056c.546-.028 1.218-.049 1.964-.063s1.565-.021 2.405-.021a7.159 7.159 0 0 1 5.138 1.701 5.623 5.623 0 0 1 1.61 4.179 5.682 5.682 0 0 1-2.034 4.696 7.827 7.827 0 0 1-4.911 1.463c-.322 0-.539-.007-.731-.014s-.36-.014-.584-.014v6.524a.167.167 0 0 1-.197.196h-2.632a.208.208 0 0 1-.151-.045.202.202 0 0 1-.045-.151V91.724zm3.025 9.016c.196.014.371.021.581.024s.455.003.792.003a4.555 4.555 0 0 0 2.663-.686 3.658 3.658 0 0 0 .231-5.135 3.887 3.887 0 0 0-2.642-.815c-.336 0-.666.007-.949.018s-.521.024-.675.038v6.553z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  \"data-name\": \"64\",\n  d: \"M76 29.069v-2a1 1 0 0 0-1-1H53a1.007 1.007 0 0 0-1 1.008v5.992a1 1 0 0 0 1 1h9v4h-9a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9v4h-9a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9v8h-3a1.019 1.019 0 0 0-1 1.021v13.979a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-14a1 1 0 0 0-1-1h-3v-8h9a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1h-9v-4h9a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-9v-4h9a1 1 0 0 0 1-1zm-10 41h-4v-6h4z\",\n  fill: \"#e3e3e3\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126c-5.514 0-10-4.486-10-10V12c0-5.514 4.486-10 10-10h61.521c2.132 0 4.137.829 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116c0 5.514-4.486 10-10 10H24z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.52 4c1.588 0 3.111.629 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24c-6.617 0-12 5.383-12 12v104c0 6.617 5.383 12 12 12h80c6.617 0 12-5.383 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z\",\n  fill: \"#b3b3b3\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#2c2c2c\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M47.13 110.176c-.07 0-.126-.014-.165-.049s-.06-.091-.06-.175v-1.596c0-.07.007-.119.021-.168s.035-.098.063-.168l4.13-6.874 4.13-6.874h-7.924c-.07 0-.119-.014-.147-.049s-.035-.091-.021-.175l.182-1.176.182-1.176c.014-.07.035-.119.07-.151s.084-.045.154-.045h11.06c.056 0 .098.014.126.042s.042.07.042.126v1.736c0 .07-.014.133-.039.199s-.06.137-.102.221l-4.046 6.79-4.046 6.79h8.344c.07 0 .119.021.144.06s.025.095-.004.165l-.196 1.176-.196 1.176c-.014.07-.042.119-.084.151s-.098.045-.168.045H47.13z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M65.05 109.952c0 .084-.007.14-.039.175s-.088.049-.185.049h-2.604c-.084 0-.14-.021-.175-.059s-.049-.094-.049-.164V91.725c0-.084.021-.14.06-.175s.095-.049.165-.049h2.632c.07 0 .119.014.151.045s.046.081.046.151V109.952z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M69.361 91.724c0-.056.007-.104.032-.139s.067-.056.136-.056c.546-.028 1.218-.049 1.964-.063s1.565-.021 2.405-.021c2.352 0 4.039.644 5.138 1.701s1.61 2.527 1.61 4.179c0 2.156-.777 3.696-2.034 4.696s-2.993 1.463-4.911 1.463c-.322 0-.539-.007-.731-.014s-.36-.014-.584-.014v6.524c0 .07-.014.119-.046.151s-.081.045-.151.045h-2.632c-.07 0-.119-.014-.151-.045s-.045-.081-.045-.151V91.724zm3.025 9.016c.196.014.371.021.581.024s.455.003.792.003c.994 0 1.953-.175 2.663-.686s1.173-1.358 1.173-2.702c0-1.078-.329-1.89-.942-2.433s-1.509-.815-2.642-.815c-.336 0-.666.007-.949.018s-.521.024-.675.038v6.553z\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M76 29.069v-2a1 1 0 0 0-1-1H53c-.552 0-1 .456-1 1.008v5.992a1 1 0 0 0 1 1h9v4h-9a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9v4h-9a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9v8h-3c-.552 0-1 .469-1 1.021v13.979a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-14a1 1 0 0 0-1-1h-3v-8h9a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1h-9v-4h9a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-9v-4h9a1 1 0 0 0 1-1zm-10 41h-4v-6h4v6z\",\n  fill: \"#4b4b4b\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z\",\n  fill: \"#49021f\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z\",\n  fill: \"#f36\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M40.509 109.952a.257.257 0 0 1-.039.175c-.032.035-.088.049-.185.049h-2.604a.226.226 0 0 1-.175-.059.235.235 0 0 1-.049-.164V91.725a.222.222 0 0 1 .06-.175.24.24 0 0 1 .165-.049h2.632a.208.208 0 0 1 .151.045.203.203 0 0 1 .046.151v18.255z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M45.044 110.176a.185.185 0 0 1-.224-.224V91.696a.194.194 0 0 1 .056-.151.202.202 0 0 1 .14-.045h3.472a.355.355 0 0 1 .182.032.256.256 0 0 1 .098.136c.826 1.75 2.163 4.795 3.384 7.633s2.327 5.47 2.691 6.394h.028c-.028-.434-.063-1.008-.091-1.753s-.049-1.662-.049-2.782v-9.464a.19.19 0 0 1 .049-.14.238.238 0 0 1 .175-.056h2.436a.185.185 0 0 1 .224.224v18.2a.248.248 0 0 1-.066.2.32.32 0 0 1-.213.052h-3.108a.432.432 0 0 1-.221-.045.283.283 0 0 1-.115-.151c-.644-1.512-2.002-4.571-3.311-7.584s-2.569-5.981-3.017-7.312h-.028c.042.63.077 1.358.102 2.212s.039 1.834.039 2.968v9.688a.25.25 0 0 1-.046.164.183.183 0 0 1-.15.059h-2.437z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M61.9 91.752a.24.24 0 0 1 .035-.154.247.247 0 0 1 .161-.07 118.677 118.677 0 0 1 4.396-.084 8.174 8.174 0 0 1 6.387 2.506 9.615 9.615 0 0 1 2.125 6.538c0 3.738-1.225 6.174-2.923 7.675a8.706 8.706 0 0 1-5.757 2.068c-.714 0-1.589-.007-2.38-.017s-1.498-.024-1.876-.038a.148.148 0 0 1-.126-.059.276.276 0 0 1-.042-.164V91.752zm3.052 15.736c.238.014.462.028.693.038s.469.018.735.018a4.94 4.94 0 0 0 3.909-1.701 8.041 8.041 0 0 0 1.579-5.271 6.918 6.918 0 0 0-1.554-4.963 5.084 5.084 0 0 0-3.822-1.477c-.294 0-.56.007-.812.018s-.49.024-.728.038v13.3z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M78.363 91.752a.24.24 0 0 1 .035-.154.247.247 0 0 1 .161-.07 118.656 118.656 0 0 1 4.395-.084 8.178 8.178 0 0 1 6.388 2.506 9.61 9.61 0 0 1 2.124 6.538c0 3.738-1.225 6.174-2.922 7.675a8.704 8.704 0 0 1-5.757 2.068c-.714 0-1.589-.007-2.38-.017s-1.498-.024-1.876-.038a.148.148 0 0 1-.126-.059.276.276 0 0 1-.042-.164V91.752zm3.052 15.736c.238.014.462.028.693.038s.469.018.735.018a4.94 4.94 0 0 0 3.909-1.701 8.041 8.041 0 0 0 1.578-5.271 6.918 6.918 0 0 0-1.554-4.963 5.084 5.084 0 0 0-3.822-1.477c-.294 0-.56.007-.812.018s-.49.024-.728.038v13.3z\",\n  fill: \"#fafafa\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"512\",\n  fill: \"#f36\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M51.362 27.459v41.483q0 .651-.586.65h-7.88q-.521 0-.52-.65V27.459q0-.52.586-.521h7.88a.46.46 0 0 1 .52.52z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M73.374 70.244a20.177 20.177 0 0 1-8.694-1.823 13.823 13.823 0 0 1-6.089-5.503 17.602 17.602 0 0 1-2.214-9.215 17.006 17.006 0 0 1 2.214-8.531 16.256 16.256 0 0 1 6.447-6.252 20.81 20.81 0 0 1 10.224-2.344q.326 0 .847.032.52.034 1.237.098v-12.83c0-.302.13-.455.391-.455h8.206a.345.345 0 0 1 .39.39V62.3q0 1.108.098 2.41.098 1.303.163 2.344a.673.673 0 0 1-.39.651 32.305 32.305 0 0 1-6.578 1.954 35.313 35.313 0 0 1-6.252.586zm3.972-8.075V44.39a6.465 6.465 0 0 0-1.074-.196 12.996 12.996 0 0 0-1.335-.065 10.055 10.055 0 0 0-4.559 1.042 8.38 8.38 0 0 0-4.753 8.14 11.486 11.486 0 0 0 .683 4.168 7.926 7.926 0 0 0 1.824 2.866 6.944 6.944 0 0 0 2.735 1.628 10.714 10.714 0 0 0 3.354.52q.91 0 1.693-.064a6.968 6.968 0 0 0 1.432-.261z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z\",\n  fill: \"#001e36\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z\",\n  fill: \"#31a8ff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M36.919 91.1c0-.112.028-.197.17-.197 1.1-.056 2.708-.085 4.4-.085 4.74 0 6.8 2.596 6.8 5.925 0 4.345-3.132 6.207-6.997 6.207-.648 0-.874-.028-1.326-.028v6.574c0 .14-.056.197-.197.197h-2.652c-.141 0-.198-.056-.198-.197zm3.047 9.086c.395.028.705.028 1.383.028 2.003 0 3.865-.706 3.865-3.414 0-2.173-1.326-3.273-3.611-3.273-.678 0-1.327.029-1.637.056z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M51.227 109.045a.42.42 0 0 1-.17-.367v-2.71a.134.134 0 0 1 .226-.083 7.4 7.4 0 0 0 4.176 1.27c2.06 0 2.905-1.073 2.905-2.286 0-1.072-.536-1.947-2.51-3.103l-1.016-.537c-2.906-1.636-3.753-3.3-3.753-5.417 0-2.877 2.003-5.191 5.784-5.191a7.762 7.762 0 0 1 3.583.648c.141.057.17.142.17.311v2.54a.136.136 0 0 1-.227.112 6.586 6.586 0 0 0-3.47-.846c-2.172 0-2.877 1.24-2.877 2.23 0 1.07.535 1.86 2.482 2.933l.903.48c3.216 1.777 4.035 3.498 4.035 5.614 0 3.131-2.285 5.304-6.01 5.304a8.884 8.884 0 0 1-4.231-.902z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M64.688 91.129c0-.14.028-.197.197-.226.648-.028 2.51-.085 4.43-.085 5.727 0 8.576 3.697 8.576 9.114 0 7.533-4.937 9.818-8.746 9.818-1.439 0-3.527-.028-4.289-.057-.113 0-.168-.085-.168-.225zm3.075 15.855c.48.029.902.057 1.438.057 3.16 0 5.502-2.228 5.53-7.024.029-4.684-2.398-6.49-5.417-6.49-.592 0-1.072.029-1.551.056z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M92.198 109.214a.284.284 0 0 1-.197.31 8.947 8.947 0 0 1-3.132.423c-4.401 0-8.295-2.878-8.295-9.65 0-5.81 3.443-9.704 8.69-9.704a7.752 7.752 0 0 1 2.934.395c.142.056.17.14.17.31v2.427c0 .225-.113.225-.198.197a6.697 6.697 0 0 0-2.877-.536c-3.302 0-5.502 2.51-5.502 6.828 0 5.332 3.019 6.912 5.502 6.912a7.767 7.767 0 0 0 2.708-.367c.113-.056.197-.056.197.141z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"512\",\n  fill: \"#31a8ff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M36.395 69.072V27.459c0-.304.13-.456.391-.456q1.041 0 2.475-.033 1.431-.032 3.093-.065 1.66-.032 3.517-.065 1.856-.032 3.68-.033a24.476 24.476 0 0 1 8.335 1.238 14.462 14.462 0 0 1 5.438 3.321 12.736 12.736 0 0 1 2.963 4.591 15.23 15.23 0 0 1 .911 5.243 14.472 14.472 0 0 1-2.41 8.596 13.614 13.614 0 0 1-6.511 4.916 25.91 25.91 0 0 1-9.118 1.53q-1.433 0-2.018-.032-.586-.032-1.759-.032v12.829a.518.518 0 0 1-.586.586h-7.945c-.304 0-.456-.173-.456-.521zm8.987-34.254v13.48q.846.065 1.563.065h2.15a15.364 15.364 0 0 0 4.656-.651 7.02 7.02 0 0 0 3.32-2.15 6.248 6.248 0 0 0 1.27-4.167 6.586 6.586 0 0 0-.943-3.582 6.074 6.074 0 0 0-2.833-2.312 12.07 12.07 0 0 0-4.754-.814q-1.563 0-2.768.033-1.206.033-1.66.097z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M91.097 45.693a15.23 15.23 0 0 0-3.874-1.368 20.581 20.581 0 0 0-4.526-.52 8.421 8.421 0 0 0-2.442.292 2.194 2.194 0 0 0-1.27.814 2.05 2.05 0 0 0-.326 1.108 1.73 1.73 0 0 0 .39 1.041 4.432 4.432 0 0 0 1.368 1.075 27.304 27.304 0 0 0 2.866 1.335 28.396 28.396 0 0 1 6.219 2.963 9.458 9.458 0 0 1 3.19 3.354 8.942 8.942 0 0 1 .945 4.168 9.36 9.36 0 0 1-1.563 5.372 10.28 10.28 0 0 1-4.526 3.615 18.221 18.221 0 0 1-7.326 1.302 26.498 26.498 0 0 1-5.503-.52 15.734 15.734 0 0 1-3.94-1.303.843.843 0 0 1-.456-.782v-7.033a.383.383 0 0 1 .163-.358.316.316 0 0 1 .358.032 16.232 16.232 0 0 0 4.82 1.987 20.683 20.683 0 0 0 4.753.618 7.303 7.303 0 0 0 3.354-.586 1.841 1.841 0 0 0 1.075-1.693 2.153 2.153 0 0 0-.977-1.628 16.166 16.166 0 0 0-3.973-1.889 23.94 23.94 0 0 1-5.763-2.93 9.939 9.939 0 0 1-3.06-3.42 8.98 8.98 0 0 1-.945-4.134 9.335 9.335 0 0 1 1.367-4.885 9.938 9.938 0 0 1 4.233-3.712 15.956 15.956 0 0 1 7.164-1.432 31.712 31.712 0 0 1 5.014.358 12.234 12.234 0 0 1 3.387.944.594.594 0 0 1 .39.358 1.802 1.802 0 0 1 .066.489v6.577a.437.437 0 0 1-.196.39.427.427 0 0 1-.456 0z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.03 10.03 0 0 1-10-10V12A10.03 10.03 0 0 1 24 2h61.5a7.865 7.865 0 0 1 5.6 2.3l20.5 20.4a8.196 8.196 0 0 1 2.4 5.7V116a10.03 10.03 0 0 1-10 10z\",\n  fill: \"#001e36\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.5 4a5.598 5.598 0 0 1 4.2 1.8l20.5 20.4a6.174 6.174 0 0 1 1.8 4.2V116a8.024 8.024 0 0 1-8 8H24a8.024 8.024 0 0 1-8-8V12a8.024 8.024 0 0 1 8-8h61.5m0-4H24a12.035 12.035 0 0 0-12 12v104a12.035 12.035 0 0 0 12 12h80a12.035 12.035 0 0 0 12-12V30.4a10.515 10.515 0 0 0-2.9-7.1L92.6 2.9A9.898 9.898 0 0 0 85.5 0z\",\n  fill: \"#31a8ff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M43.974 91.1c0-.112.028-.197.17-.197 1.1-.056 2.708-.085 4.4-.085 4.74 0 6.8 2.596 6.8 5.925 0 4.345-3.132 6.207-6.997 6.207-.649 0-.875-.028-1.326-.028v6.574c0 .14-.057.197-.198.197h-2.652c-.14 0-.197-.056-.197-.197zm3.047 9.086c.395.028.705.028 1.382.028 2.003 0 3.866-.706 3.866-3.414 0-2.173-1.327-3.273-3.612-3.273-.677 0-1.326.029-1.636.056z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M58.281 109.045a.42.42 0 0 1-.17-.367v-2.71a.134.134 0 0 1 .226-.083 7.4 7.4 0 0 0 4.176 1.27c2.06 0 2.906-1.073 2.906-2.286 0-1.072-.536-1.947-2.51-3.103l-1.016-.537c-2.907-1.636-3.753-3.3-3.753-5.417 0-2.877 2.003-5.191 5.784-5.191a7.762 7.762 0 0 1 3.583.648c.14.057.169.142.169.311v2.54a.136.136 0 0 1-.226.112 6.584 6.584 0 0 0-3.47-.846c-2.172 0-2.877 1.241-2.877 2.23 0 1.07.535 1.86 2.482 2.933l.903.48c3.216 1.777 4.034 3.498 4.034 5.615 0 3.13-2.285 5.303-6.009 5.303a8.884 8.884 0 0 1-4.232-.902z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M71.742 91.129c0-.14.029-.197.197-.226.649-.028 2.511-.085 4.43-.085 5.728 0 8.576 3.697 8.576 9.114 0 7.533-4.936 9.818-8.746 9.818-1.438 0-3.526-.028-4.288-.057-.113 0-.169-.085-.169-.225zm3.075 15.855c.48.029.903.057 1.439.057 3.16 0 5.502-2.228 5.53-7.024.028-4.684-2.398-6.49-5.417-6.49-.593 0-1.072.029-1.552.056z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"512\",\n  fill: \"#31a8ff\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M36.395 69.072V27.459c0-.304.13-.456.391-.456q1.041 0 2.475-.033 1.431-.032 3.093-.065 1.66-.032 3.517-.065 1.856-.032 3.68-.033a24.476 24.476 0 0 1 8.335 1.238 14.462 14.462 0 0 1 5.438 3.321 12.736 12.736 0 0 1 2.963 4.591 15.23 15.23 0 0 1 .911 5.243 14.472 14.472 0 0 1-2.41 8.596 13.614 13.614 0 0 1-6.511 4.916 25.91 25.91 0 0 1-9.118 1.53q-1.433 0-2.018-.032-.586-.032-1.759-.032v12.829a.518.518 0 0 1-.586.586h-7.945c-.304 0-.456-.173-.456-.521zm8.987-34.254v13.48q.846.065 1.563.065h2.15a15.364 15.364 0 0 0 4.656-.651 7.02 7.02 0 0 0 3.32-2.15 6.248 6.248 0 0 0 1.27-4.167 6.586 6.586 0 0 0-.943-3.582 6.074 6.074 0 0 0-2.833-2.312 12.07 12.07 0 0 0-4.754-.814q-1.563 0-2.768.033-1.206.033-1.66.097z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M91.097 45.693a15.23 15.23 0 0 0-3.874-1.368 20.581 20.581 0 0 0-4.526-.52 8.421 8.421 0 0 0-2.442.292 2.194 2.194 0 0 0-1.27.814 2.05 2.05 0 0 0-.326 1.108 1.73 1.73 0 0 0 .39 1.041 4.432 4.432 0 0 0 1.368 1.075 27.304 27.304 0 0 0 2.866 1.335 28.396 28.396 0 0 1 6.219 2.963 9.458 9.458 0 0 1 3.19 3.354 8.942 8.942 0 0 1 .945 4.168 9.36 9.36 0 0 1-1.563 5.372 10.28 10.28 0 0 1-4.526 3.615 18.221 18.221 0 0 1-7.326 1.302 26.498 26.498 0 0 1-5.503-.52 15.734 15.734 0 0 1-3.94-1.303.843.843 0 0 1-.456-.782v-7.033a.383.383 0 0 1 .163-.358.316.316 0 0 1 .358.032 16.232 16.232 0 0 0 4.82 1.987 20.683 20.683 0 0 0 4.753.618 7.303 7.303 0 0 0 3.354-.586 1.841 1.841 0 0 0 1.075-1.693 2.153 2.153 0 0 0-.977-1.628 16.166 16.166 0 0 0-3.973-1.889 23.94 23.94 0 0 1-5.763-2.93 9.939 9.939 0 0 1-3.06-3.42 8.98 8.98 0 0 1-.945-4.134 9.335 9.335 0 0 1 1.367-4.885 9.938 9.938 0 0 1 4.233-3.712 15.956 15.956 0 0 1 7.164-1.432 31.712 31.712 0 0 1 5.014.358 12.234 12.234 0 0 1 3.387.944.594.594 0 0 1 .39.358 1.802 1.802 0 0 1 .066.489v6.577a.437.437 0 0 1-.196.39.427.427 0 0 1-.456 0z\"\n}))));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  \"data-name\": \"Layer 1\",\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126a10.03 10.03 0 0 1-10-10V12A10.03 10.03 0 0 1 24 2h61.5a7.698 7.698 0 0 1 5.6 2.3l20.5 20.4a8.455 8.455 0 0 1 2.4 5.7V116a10.03 10.03 0 0 1-10 10z\",\n  fill: \"#470137\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.5 4a5.598 5.598 0 0 1 4.2 1.8l20.5 20.4a6.174 6.174 0 0 1 1.8 4.2V116a8.024 8.024 0 0 1-8 8H24a8.024 8.024 0 0 1-8-8V12a8.024 8.024 0 0 1 8-8h61.5m0-4H24a12.035 12.035 0 0 0-12 12v104a12.035 12.035 0 0 0 12 12h80a12.035 12.035 0 0 0 12-12V30.4a10.327 10.327 0 0 0-2.9-7.1L92.6 2.9A9.898 9.898 0 0 0 85.5 0z\",\n  fill: \"#ff61f6\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  \"data-name\": \"512-2\",\n  fill: \"#ff61f6\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M65.2 27.7l-12.1 20 13 21.2a.75.75 0 0 1 .1.5c0 .2-.2.3-.5.3h-9.2a1.42 1.42 0 0 1-1.4-.7c-.9-1.7-1.7-3.4-2.6-5-.9-1.7-1.8-3.4-2.8-5.1s-1.9-3.5-2.9-5.3h-.1c-.9 1.7-1.8 3.5-2.7 5.2s-1.9 3.5-2.8 5.2-1.8 3.4-2.8 5.1a.875.875 0 0 1-.9.6h-8.9c-.1 0-.3-.1-.3-.2a.901.901 0 0 1 .1-.5L41 48.3 28.8 27.7c-.1-.2-.2-.3-.1-.4a.52.52 0 0 1 .4-.2h9.2a1.268 1.268 0 0 1 .6.1.78.78 0 0 1 .4.4c.8 1.7 1.6 3.4 2.6 5.1s1.9 3.5 2.9 5.1q1.5 2.55 2.7 5.1h.1c.9-1.8 1.7-3.5 2.6-5.2l2.7-5.1 2.7-5.1q0-.15.3-.3a.902.902 0 0 1 .5-.1h8.5a.52.52 0 0 1 .4.2c.1.2.1.2-.1.4z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M82.6 70.3a21.52 21.52 0 0 1-8.7-1.8 14.12 14.12 0 0 1-6.1-5.5 17.406 17.406 0 0 1-2.2-9.2 16.844 16.844 0 0 1 2.2-8.5 17.574 17.574 0 0 1 6.4-6.3 21.457 21.457 0 0 1 10.2-2.3h.8a7.384 7.384 0 0 1 1.2.2V24.1c0-.3.1-.5.4-.5h8.1c.2 0 .4.1.4.3v38.5a20.932 20.932 0 0 0 .1 2.4c.1.9.1 1.7.2 2.3a.755.755 0 0 1-.4.7 36.486 36.486 0 0 1-6.4 2 42.054 42.054 0 0 1-6.2.5zm3.9-8.1V44.5a3.553 3.553 0 0 0-1-.2c-.4 0-.9-.1-1.3-.1a10.605 10.605 0 0 0-4.6 1 8.475 8.475 0 0 0-4.8 8.1 12.495 12.495 0 0 0 .8 4.2 7.89 7.89 0 0 0 1.8 2.9 7.444 7.444 0 0 0 2.7 1.6 9.67 9.67 0 0 0 3.4.5 8.084 8.084 0 0 0 1.6-.1 2.2 2.2 0 0 0 1.4-.2z\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M51.508 96.404l4.524 8.685c.078.13.026.26-.104.26H53.12a.315.315 0 0 1-.338-.208c-1.04-2.132-2.08-4.264-3.172-6.552h-.026a215.399 215.399 0 0 1-3.068 6.578.303.303 0 0 1-.286.182h-2.678c-.156 0-.182-.13-.104-.234l4.42-8.425-4.264-8.45a.136.136 0 0 1 .104-.234h2.782c.156 0 .234.026.286.182 1.014 2.132 2.054 4.238 3.016 6.396h.026c.936-2.132 1.976-4.264 2.964-6.37.078-.13.13-.208.286-.208h2.6c.13 0 .182.104.104.234z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M58.268 88.24c0-.13.025-.181.182-.208.598-.026 2.314-.078 4.082-.078 5.279 0 7.904 3.406 7.904 8.399 0 6.942-4.55 9.047-8.06 9.047-1.326 0-3.25-.025-3.952-.051-.105 0-.156-.078-.156-.208zm2.834 14.613c.442.026.832.051 1.326.051 2.912 0 5.07-2.053 5.095-6.473.027-4.317-2.209-5.98-4.991-5.98-.546 0-.988.026-1.43.051z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M83.617 104.906a.264.264 0 0 1-.181.287 8.25 8.25 0 0 1-2.887.39c-4.056 0-7.644-2.652-7.644-8.893 0-5.356 3.172-8.944 8.008-8.944a7.138 7.138 0 0 1 2.704.364c.131.052.156.13.156.286v2.237c0 .207-.103.207-.181.181a6.177 6.177 0 0 0-2.653-.494c-3.042 0-5.07 2.315-5.07 6.292 0 4.915 2.782 6.37 5.07 6.37a7.167 7.167 0 0 0 2.497-.337c.103-.052.181-.052.181.13z\",\n  fill: \"#fff\"\n})));","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport default (({\n  styles = {},\n  ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 128 128\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M24 126c-5.5 0-10-4.5-10-10V12c0-5.5 4.5-10 10-10h61.5c2.1 0 4.2.8 5.6 2.3l20.5 20.4c1.5 1.5 2.3 3.5 2.4 5.7V116c0 5.5-4.5 10-10 10H24z\",\n  fill: \"#470137\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.5 4c1.6 0 3.1.6 4.2 1.8l20.5 20.4c1.1 1.1 1.8 2.7 1.8 4.2V116c0 4.4-3.6 8-8 8H24c-4.4 0-8-3.6-8-8V12c0-4.4 3.6-8 8-8h61.5m0-4H24c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h80c6.6 0 12-5.4 12-12V30.4c0-2.7-1.1-5.2-2.9-7.1L92.6 2.9C90.7 1 88.2 0 85.5 0z\",\n  fill: \"#ff61f6\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M57.5 100l4.9 9.4c.1.1 0 .3-.1.3h-3c-.2 0-.3-.1-.4-.2-1.1-2.3-2.3-4.6-3.4-7.1-1 2.3-2.2 4.8-3.3 7.1-.1.1-.2.2-.3.2H49c-.2 0-.2-.1-.1-.3l4.8-9.1-4.6-9.2c-.1-.1 0-.3.1-.3h3c.2 0 .3 0 .3.2l3.3 6.9c1-2.3 2.1-4.6 3.2-6.9.1-.1.1-.2.3-.2H62c.1 0 .2.1.1.3l-4.6 8.9z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M64.8 91.1c0-.1 0-.2.2-.2.6 0 2.5-.1 4.4-.1 5.7 0 8.6 3.7 8.6 9.1 0 7.5-4.9 9.8-8.7 9.8-1.4 0-3.5 0-4.3-.1-.1 0-.2-.1-.2-.2V91.1zm3.1 15.9c.5 0 .9.1 1.4.1 3.2 0 5.5-2.2 5.5-7 0-4.7-2.4-6.5-5.4-6.5-.6 0-1.1 0-1.6.1V107z\",\n  fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n  fill: \"#ff61f6\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M65.2 27.7l-12.1 20 13 21.2c.1.1.1.3.1.5s-.2.3-.5.3h-9.2c-.5.1-1.1-.2-1.4-.7-.9-1.7-1.7-3.4-2.6-5-.9-1.7-1.8-3.4-2.8-5.1-1-1.7-1.9-3.5-2.9-5.3h-.1c-.9 1.7-1.8 3.5-2.7 5.2-.9 1.7-1.9 3.5-2.8 5.2-.9 1.7-1.8 3.4-2.8 5.1-.1.4-.5.6-.9.6h-8.9c-.1 0-.3-.1-.3-.2 0-.2 0-.3.1-.5L41 48.3 28.8 27.7c-.1-.2-.2-.3-.1-.4.1-.1.2-.2.4-.2h9.2c.2 0 .4 0 .6.1.2.1.3.2.4.4.8 1.7 1.6 3.4 2.6 5.1 1 1.7 1.9 3.5 2.9 5.1 1 1.7 1.9 3.4 2.7 5.1h.1c.9-1.8 1.7-3.5 2.6-5.2l2.7-5.1 2.7-5.1c0-.1.1-.2.3-.3.2-.1.3-.1.5-.1h8.5c.2 0 .3.1.4.2.1.2.1.2-.1.4z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M82.6 70.3c-3 0-6-.6-8.7-1.8-2.5-1.2-4.7-3.1-6.1-5.5-1.6-2.8-2.3-6-2.2-9.2 0-3 .7-5.9 2.2-8.5 1.5-2.6 3.8-4.8 6.4-6.3 3.2-1.6 6.7-2.4 10.2-2.3h.8c.3 0 .7.1 1.2.2V24.1c0-.3.1-.5.4-.5h8.1c.2 0 .4.1.4.3v38.5c0 .7 0 1.5.1 2.4.1.9.1 1.7.2 2.3 0 .3-.1.5-.4.7-2.1.9-4.2 1.5-6.4 2-2 .3-4.1.5-6.2.5zm3.9-8.1V44.5c-.3-.1-.7-.2-1-.2-.4 0-.9-.1-1.3-.1-1.6 0-3.1.3-4.6 1-3.1 1.5-5 4.7-4.8 8.1 0 1.4.3 2.8.8 4.2.4 1.1 1 2.1 1.8 2.9.8.7 1.7 1.3 2.7 1.6 1.1.4 2.2.5 3.4.5.6 0 1.1 0 1.6-.1.5.1 1 0 1.4-.2z\"\n}))));","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport iconAdobeFirefly from '@a4u/a4u-adobe-app-icons-web/assets/svg/B_app_AdobeFirefly.svg';\nimport type React from 'react';\n\nimport iconAeAEP from '../assets/document-icons/Ae_AEP_128.svg';\nimport iconGLB from '../assets/document-icons/GLB_1024.svg';\nimport iconGLTF from '../assets/document-icons/GLTF_1024.svg';\nimport iconSquirrel from '../assets/document-icons/SqIcon.svg';\nimport iconGenericAudioDark from '../assets/document-icons/acrobat_Audio_Generic_darkUI_128.svg';\nimport iconGenericAudioLight from '../assets/document-icons/acrobat_Audio_Generic_lightUI_128.svg';\nimport iconGenericImageDark from '../assets/document-icons/acrobat_Image_Generic_darkUI_128.svg';\nimport iconGenericImageLight from '../assets/document-icons/acrobat_Image_Generic_lightUI_128.svg';\nimport iconPDFDark from '../assets/document-icons/acrobat_PDF_darkUI_128.svg';\nimport iconPDFLight from '../assets/document-icons/acrobat_PDF_lightUI_128.svg';\nimport iconPresentationDark from '../assets/document-icons/acrobat_Presentation_Generic_darkUI_128.svg';\nimport iconPresentationLight from '../assets/document-icons/acrobat_Presentation_Generic_lightUI_128.svg';\nimport iconSpreadsheetDark from '../assets/document-icons/acrobat_Spreadsheet_Generic_darkUI_128.svg';\nimport iconSpreadsheetLight from '../assets/document-icons/acrobat_Spreadsheet_Generic_lightUI_128.svg';\nimport iconGenericTextDark from '../assets/document-icons/acrobat_Text_Generic_darkUI_128.svg';\nimport iconGenericTextLight from '../assets/document-icons/acrobat_Text_Generic_lightUI_128.svg';\nimport iconGenericVideoDark from '../assets/document-icons/acrobat_Video_Generic_darkUI_128.svg';\nimport iconGenericVideoLight from '../assets/document-icons/acrobat_Video_Generic_lightUI_128.svg';\nimport iconAiAIC from '../assets/document-icons/ai_AIC_128.svg';\nimport iconAiAI from '../assets/document-icons/ai_AI_128.svg';\nimport iconAnFLA from '../assets/document-icons/an_FLA_128.svg';\nimport iconArREAL from '../assets/document-icons/ar_REAL_128.svg';\nimport iconDnDN from '../assets/document-icons/dn_DN_128.svg';\nimport iconDefaultDark from '../assets/document-icons/filetype_generic_darkUI_128.svg';\nimport iconDefaultLight from '../assets/document-icons/filetype_generic_lightUI_128.svg';\nimport iconZipDark from '../assets/document-icons/filetype_zip_darkUI_128.svg';\nimport iconZipLight from '../assets/document-icons/filetype_zip_lightUI_128.svg';\nimport iconIdINDD from '../assets/document-icons/id_INDD_128.svg';\nimport iconPsPSDC from '../assets/document-icons/ps_PSDC_128.svg';\nimport iconPsPSD from '../assets/document-icons/ps_PSD_128.svg';\nimport iconXdXDC from '../assets/document-icons/xd_XDC_128.svg';\nimport iconXdXD from '../assets/document-icons/xd_XD_128.svg';\nimport Themes from '../enums/Themes';\n\nexport type ThemedIcon = Record<Themes, React.FunctionComponent>;\n\nconst getThemedIcon = (\n    iconLight: React.FunctionComponent,\n    iconDark?: React.FunctionComponent,\n): ThemedIcon => ({\n    [Themes.lightest]: iconLight,\n    [Themes.light]: iconLight,\n    [Themes.dark]: iconDark || iconLight,\n    [Themes.darkest]: iconDark || iconLight,\n});\n\nconst assetIcons: Record<string, ThemedIcon> = {\n    default: getThemedIcon(iconDefaultLight, iconDefaultDark),\n\n    'application/vnd.adobe.aftereffects.project': getThemedIcon(iconAeAEP),\n\n    'application/illustrator': getThemedIcon(iconAiAI),\n    'application/postscript': getThemedIcon(iconAiAI),\n    'application/vnd.adobe.illustrator': getThemedIcon(iconAiAI),\n    'document/vnd.adobe.illustrator+dcx': getThemedIcon(iconAiAIC),\n\n    'application/vnd.adobe.animate-xfl+zip': getThemedIcon(iconAnFLA),\n\n    'application/vnd.adobe.real': getThemedIcon(iconArREAL),\n    'application/vnd.adobe.real+dcx': getThemedIcon(iconArREAL),\n\n    '3d/vnd.adobe.dn+dcx': getThemedIcon(iconDnDN),\n    '3d/vnd.adobe.asd+dcx': getThemedIcon(iconDnDN),\n    'model/vnd.adobe.dn+dcx': getThemedIcon(iconDnDN),\n\n    'application/indesign': getThemedIcon(iconIdINDD),\n    'application/vnd.adobe.file+json': getThemedIcon(iconIdINDD),\n    'application/x-indesign': getThemedIcon(iconIdINDD),\n\n    'application/psd': getThemedIcon(iconPsPSD),\n    'application/x-photoshop': getThemedIcon(iconPsPSD),\n    'image/photoshop': getThemedIcon(iconPsPSD),\n    'document/vnd.adobe.cpsd+dcx': getThemedIcon(iconPsPSDC),\n\n    'application/vnd.adobe.element.agc+json': getThemedIcon(iconXdXD),\n    'application/vnd.adobe.sparkler.project+dcx': getThemedIcon(iconXdXD),\n    'application/vnd.adobe.sparkler.project+dcxucf': getThemedIcon(iconXdXD),\n    'application/vnd.adobe.xd.cloudproject+dcx': getThemedIcon(iconXdXDC),\n\n    'application/pdf': getThemedIcon(iconPDFLight, iconPDFDark),\n\n    'application/vnd.adobe.element.audio+dcx': getThemedIcon(\n        iconGenericAudioLight,\n        iconGenericAudioDark,\n    ),\n    'application/vnd.adobe.element.image+dcx': getThemedIcon(\n        iconGenericImageLight,\n        iconGenericImageDark,\n    ),\n    'application/vnd.adobe.element.text+dcx': getThemedIcon(\n        iconGenericTextLight,\n        iconGenericTextDark,\n    ),\n    'application/vnd.adobe.element.video+dcx': getThemedIcon(\n        iconGenericVideoLight,\n        iconGenericVideoDark,\n    ),\n\n    'application/vnd.apple.keynote.13': getThemedIcon(iconPresentationLight, iconPresentationDark),\n    'application/vnd.openxmlformats-officedocument.presentationml.presentation': getThemedIcon(\n        iconPresentationLight,\n        iconPresentationDark,\n    ),\n    'application/vnd.ms-powerpoint': getThemedIcon(iconPresentationLight, iconPresentationDark),\n    'application/vnd.openxmlformats-officedocument.presentationml.slideshow': getThemedIcon(\n        iconPresentationLight,\n        iconPresentationDark,\n    ),\n\n    'application/msexcel': getThemedIcon(iconSpreadsheetLight, iconSpreadsheetDark),\n    'application/vnd.ms-excel': getThemedIcon(iconSpreadsheetLight, iconSpreadsheetDark),\n    'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': getThemedIcon(\n        iconSpreadsheetLight,\n        iconSpreadsheetDark,\n    ),\n\n    'application/zip': getThemedIcon(iconZipLight, iconZipDark),\n\n    'application/vnd.adobe.hz.aura+dcx': getThemedIcon(iconAdobeFirefly),\n\n    'model/gltf-binary': getThemedIcon(iconGLB),\n    'model/gltf+json': getThemedIcon(iconGLTF),\n    'application/vnd.adobe.hz.squirrel+dcx': getThemedIcon(iconSquirrel),\n};\nexport const assetIconGenerics: Record<string, ThemedIcon> = {\n    'audio/': getThemedIcon(iconGenericAudioLight, iconGenericAudioDark),\n    'image/': getThemedIcon(iconGenericImageLight, iconGenericImageDark),\n    'text/': getThemedIcon(iconGenericTextLight, iconGenericTextDark),\n    'video/': getThemedIcon(iconGenericVideoLight, iconGenericVideoDark),\n};\n\nexport default assetIcons;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { ccxController as IngestController } from '@ccx-public/ccx-ingest';\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport { SAM } from '@ccx-public/component-types';\nimport { isBrand, isSAMError } from '@csc/sam-utils';\n\nimport type { OrganizerConfig } from '../organizerConfig';\n\nexport interface IngestConfig {\n    allowNoToken: boolean;\n    apiKey: string;\n    env: string;\n    data?: { [key: string]: unknown };\n    product: string;\n    project: string;\n    onLog?: (msg: string) => void;\n}\n\nexport interface AnalyticsEventSpec {\n    subcategory: string;\n    subtype: string;\n    type: string;\n    workflow: string;\n    pagename: string;\n\n    // These properties only occur on select events\n    count?: number;\n    total?: number;\n    url?: string;\n}\n\nexport interface IngestMetadata {\n    content?: { author?: string; id?: string; type?: string };\n    custom?: { [key: string]: unknown };\n    event: Partial<AnalyticsEventSpec>;\n    ui?: {\n        filter?: string;\n        sort_order?: string;\n        sort_sequence?: string;\n        view?: string;\n        sequence?: string;\n    };\n}\n\ninterface ISharesheetEventDetails {\n    collab: { [key: string]: unknown };\n    content: {\n        id: string;\n        [key: string]: unknown;\n    };\n    custom: { [key: string]: unknown };\n    env: { [key: string]: unknown };\n    event: { [key: string]: unknown };\n    source: { [key: string]: unknown };\n    user: { [key: string]: unknown };\n}\n\nexport interface ITrackProjectAction {\n    element?: SAM.AdobeAsset;\n    subcategory: ProjectViewLocations;\n    type: string;\n    subtype: string;\n    error?: Error;\n    sequence?: string;\n    pagename?: string;\n    userId?: string;\n}\n\nexport interface ITrackProjectFilter {\n    subcategory: string;\n    type: string;\n    subtype: string;\n    pagename?: string;\n}\n\nexport interface ITrackProjectSort {\n    subcategory: string;\n    type: string;\n    subtype: string;\n    pagename?: string;\n}\n\nexport interface ITrackProjectOrganizerClick {\n    element: SAM.AdobeAsset;\n    ui: OrganizerConfig;\n    userId: string;\n}\n\nexport interface ITrackProjectOrganizerSearchResultItemClick extends ITrackProjectOrganizerClick {\n    rank: number;\n}\n\nexport interface ITrackLinkedBrandClick {\n    brand: SAM.AdobeAsset;\n    projectId: string;\n    subtype: string;\n    userId: string;\n}\n\nfunction analyticsEvent(spec: AnalyticsEventSpec): AnalyticsEventSpec {\n    return {\n        ...spec,\n        // pagename is almost always the same as subtype except in pseudo-error\n        // cases like project name-conflict and for dialog cta clicks\n        pagename: spec.pagename ?? spec.subtype,\n    };\n}\n\nexport enum ProjectViewLocations {\n    Projects = 'Projects',\n    ProjectContents = '1up',\n    ProjectCreationWizard = 'create-project-dialog',\n    ProjectCreate = 'create-project-component',\n}\n\nconst getErrorData = (error: Error) => {\n    const UNKNOWN = 'unknown';\n    if (isSAMError(error)) {\n        const errorData: {\n            error_code?: number | typeof UNKNOWN; // HTTP status code\n            error_desc?: string; // SAMError message\n            error_type?: string; // e.g. NOT_FOUND or CONFLICT\n        } = {};\n        // @ts-expect-error - _additionalInfo is meant to only be used for debugging purposes\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- See above\n        errorData.error_code = error._additionalInfo.response?.status ?? UNKNOWN;\n        errorData.error_desc = error.message ?? UNKNOWN;\n        errorData.error_type = error.code\n            ? Object.keys(SAM.SAMErrorCode)[Object.values(SAM.SAMErrorCode).indexOf(error.code)]\n            : UNKNOWN;\n        return errorData;\n    }\n    return {\n        error_code: UNKNOWN,\n        error_desc: error.message ?? UNKNOWN,\n        error_type: error.name ?? UNKNOWN,\n    };\n};\n\nexport const projectActionEvent = ({\n    element,\n    subcategory,\n    type,\n    subtype,\n    error,\n    sequence,\n    pagename,\n    userId,\n}: ITrackProjectAction) => {\n    const collabData = element && userId && Ingest.getCollabData(element, userId);\n\n    return {\n        event: {\n            ...analyticsEvent({\n                subcategory,\n                subtype,\n                type,\n                workflow: 'Project-Operation',\n                pagename: pagename ?? subtype,\n                url: location.href,\n                count: 1, // All Project actions are single select\n            }),\n            ...(error && getErrorData(error)),\n        },\n        ...(element && { content: Ingest.getAssetData(element) }), // Only include content if it's an existing project\n        ...(sequence && { ui: { sequence } }),\n        custom: {\n            ...(collabData && {\n                collab: { access_level: collabData.accessLevel, user_type: collabData.role },\n            }),\n        },\n    };\n};\n\nexport const projectOrganizerClickEvent = ({\n    element,\n    ui,\n    userId,\n}: ITrackProjectOrganizerClick) => {\n    const collabData = Ingest.getCollabData(element, userId);\n    return {\n        content: Ingest.getAssetData(element),\n        custom: {\n            collab: { access_level: collabData.accessLevel, user_type: collabData.role },\n        },\n        event: analyticsEvent({\n            subcategory: ui.projectView,\n            subtype: 'open',\n            type: 'click',\n            workflow: 'Project-Operation',\n            pagename: 'page',\n            url: location.href,\n        }),\n        ui: {\n            sort_order: ui.sortDirection,\n            sort_sequence: ui.sortBy,\n            view: ui.view,\n        },\n    };\n};\n\nexport const projectListRenderEvent = (\n    count: number,\n    total: number,\n    ui: Pick<OrganizerConfig, 'sortBy' | 'sortDirection' | 'view'>,\n) => {\n    return {\n        event: analyticsEvent({\n            subcategory: 'Projects',\n            subtype: 'page',\n            type: 'render',\n            workflow: 'Projects',\n            pagename: 'page',\n            count,\n            total,\n            url: location.href,\n        }),\n        ui: {\n            sort_order: ui.sortDirection,\n            sort_sequence: ui.sortBy,\n            view: ui.view,\n        },\n    };\n};\n\n// We don't have search requirements in Dunamis SDM, so here used info from the\n// Express analytics board.\n// [Express only] Triggered when the user types in the search bar and presses enter\nexport const projectOrganizerSearchTriggerEvent = (search_keyword: string) => {\n    return {\n        ui: {\n            search_keyword,\n        },\n        event: analyticsEvent({\n            workflow: 'search',\n            subcategory: 'result',\n            type: 'click',\n            subtype: 'search-personal',\n            pagename: 'page',\n        }),\n    };\n};\n\n// [Express only] Triggered when the local project list search result is rendered.\nexport const projectOrganizerSearchResultRenderEvent = (\n    search_keyword: string,\n    result_count: number,\n) => {\n    return {\n        ui: {\n            search_keyword,\n        },\n        event: analyticsEvent({\n            workflow: 'search',\n            subcategory: 'result',\n            type: 'render',\n            subtype: 'view-search-result',\n            pagename: 'page',\n        }),\n        custom: {\n            search: {\n                result_count,\n            },\n        },\n    };\n};\n\n// [Express only] Triggered when user clicks on a project from the search result.\n// The Express also wants to include projectOrganizerClickEvent data.\nexport const projectOrganizerSearchResultItemClickEvent = ({\n    element,\n    ui,\n    userId,\n    rank,\n}: ITrackProjectOrganizerSearchResultItemClick) => {\n    const collabData = Ingest.getCollabData(element, userId);\n\n    return {\n        content: Ingest.getAssetData(element),\n        custom: {\n            collab: { access_level: collabData.accessLevel, user_type: collabData.role },\n            search: {\n                rank,\n            },\n            project: {\n                id: element.id,\n            },\n        },\n        event: analyticsEvent({\n            subcategory: 'result',\n            subtype: 'open-project',\n            type: 'click',\n            workflow: 'search',\n            pagename: 'page',\n            url: location.href,\n        }),\n        ui: {\n            search_keyword: ui.searchQuery,\n            sort_order: ui.sortDirection,\n            sort_sequence: ui.sortBy,\n            view: ui.view,\n        },\n    };\n};\n\n// Intercept sharesheet analytics data and send Projects own data with value overrides\nexport const projectSharingEvent = (\n    sharesheetEvent: CustomEvent,\n    viewLocation: ProjectViewLocations,\n) => {\n    const projectSharingEvent = { ...(sharesheetEvent.detail as ISharesheetEventDetails) };\n    const projectId = projectSharingEvent.content.id ?? '';\n\n    return {\n        ...projectSharingEvent,\n        content: {\n            ...projectSharingEvent.content,\n            type: 'project',\n        },\n        custom: {\n            ui: {\n                location: viewLocation,\n            },\n            project: {\n                id: projectId,\n            },\n        },\n        event: {\n            ...projectSharingEvent.event,\n            workflow: 'Project-Operation',\n        },\n    };\n};\n\nexport const projectSortEvent = (\n    { pagename, subcategory, subtype, type }: ITrackProjectSort,\n    sortBy?: string,\n) => {\n    return {\n        custom: {\n            ui: {\n                sort_sequence: sortBy,\n            },\n        },\n        event: analyticsEvent({\n            subcategory,\n            subtype,\n            type,\n            workflow: 'Project-Operation',\n            pagename: pagename ?? subtype,\n            count: 1, // All Project actions are single select\n            url: location.href,\n        }),\n    };\n};\n\nexport const projectFilterEvent = (\n    { pagename, subcategory, subtype, type }: ITrackProjectFilter,\n    filterType: AssetBrowser.ProjectsOrganizerViewFilter,\n) => {\n    return {\n        custom: {\n            ui: {\n                filter: filterType,\n            },\n        },\n        event: analyticsEvent({\n            count: 1, // All Project actions are single select\n            subcategory,\n            subtype,\n            type,\n            workflow: 'Project-Operation',\n            pagename: pagename ?? subtype,\n            url: location.href,\n        }),\n    };\n};\n\nexport const projectContentsRenderEvent = (projectId: string) => {\n    return {\n        event: analyticsEvent({\n            subcategory: 'Projects',\n            subtype: '1Up',\n            type: 'render',\n            workflow: 'Projects',\n            pagename: '1Up',\n            url: location.href,\n        }),\n        custom: {\n            project: {\n                id: projectId,\n            },\n        },\n        ui: {\n            sequence: '1Up',\n        },\n    };\n};\n\nexport const linkedBrandClickEvent = ({\n    brand,\n    projectId,\n    subtype,\n    userId,\n}: ITrackLinkedBrandClick) => {\n    const collabData = brand && userId && Ingest.getCollabData(brand, userId);\n\n    return {\n        event: {\n            ...analyticsEvent({\n                subcategory: '1up',\n                subtype,\n                type: 'click',\n                workflow: 'Brand-Operation',\n                pagename: subtype,\n                url: location.href,\n            }),\n        },\n        content: Ingest.getAssetData(brand),\n        ui: {\n            sequence: 'item',\n        },\n        custom: {\n            brand: {\n                source: 'referenced',\n                access_level: 'accessible',\n            },\n            project: {\n                id: projectId,\n            },\n            ...(collabData && {\n                collab: {\n                    access_level: collabData.accessLevel,\n                    user_type: collabData.role,\n                },\n            }),\n        },\n    };\n};\n\nclass ProjectsMetrics {\n    disabled = true;\n    private _ingestController: IngestController | undefined;\n    private _initialized = false;\n\n    get controller() {\n        return this._ingestController;\n    }\n\n    get initialized() {\n        return this._initialized;\n    }\n\n    get isActive() {\n        return this._initialized && !this.disabled;\n    }\n\n    init(config: IngestConfig) {\n        if (!this._initialized) {\n            this._ingestController = new IngestController(config);\n            this._initialized = true;\n        }\n    }\n\n    getAssetData(element: SAM.AdobeAsset) {\n        let type: 'file' | 'project' | 'folder' | 'library' | 'brand';\n        // SDM spec calls for regions stripped from the URN\n        const id = element.id.split(':').pop();\n\n        if (element.isProject) {\n            type = 'project';\n        } else if (element.isFolder) {\n            type = 'folder';\n        } else if (element.isFile) {\n            type = 'file';\n        } else if (isBrand(element)) {\n            type = 'brand';\n        } else if (element.isLibrary) {\n            type = 'library';\n        }\n\n        return {\n            author: element.createdBy,\n            extension: element.extension,\n            id,\n            mimeType: element.mediaType,\n            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Handle undefined/null\n            type: type!,\n        };\n    }\n\n    getCollabData(element: SAM.AdobeAsset, userId: string) {\n        const role = element.collaboratorArray.find((c) => c.id === userId)?.role;\n        // Levels in increasing order of access\n        let accessLevel = 'none';\n        if (element.hasPermission(SAM.Permission.Read)) {\n            accessLevel = 'comment';\n        }\n        if (element.hasPermission(SAM.Permission.Rename)) {\n            accessLevel = 'edit';\n        }\n\n        return {\n            accessLevel,\n            role,\n        };\n    }\n\n    fireEvent(evt: IngestMetadata) {\n        if (this.isActive) {\n            void this.controller?.fireEvent(evt);\n        }\n    }\n}\n\nconst Ingest = new ProjectsMetrics();\n\nexport default Ingest;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport {\n    importMessages as importAAVMessages,\n    isSupportedLocale as isSupportedAAVLocale,\n} from '@csc/adobe-assets-view/dist/src/i18n';\nimport type {\n    ExpressSupportedLocale,\n    AdminConsoleSupportedLocale,\n    MessageLoader,\n} from '@csc/common';\nimport { localePolyfill } from '@csc/common';\n\nimport type Messages from '../../../../locale/en.json';\n\n// enables static type checking of message ids against keys in en.json\ndeclare global {\n    // https://formatjs.io/docs/react-intl/#typing-message-ids-and-locale\n    // eslint-disable-next-line @typescript-eslint/no-namespace -- Need to inform formatjs of our message ids\n    namespace FormatjsIntl {\n        interface Message {\n            ids: keyof typeof Messages;\n        }\n    }\n}\nexport const DEFAULT_LOCALE = 'en';\nexport type LocaleMessages = typeof Messages;\nexport type LocaleKey = keyof LocaleMessages;\n\n// Projects supports both Express and AdminConsole locales\nexport type SupportedLocale = ExpressSupportedLocale | AdminConsoleSupportedLocale;\n\nconst MESSAGE_LOADERS: Record<SupportedLocale, MessageLoader> = {\n    bg: () => import('../../../../locale/bg.json'),\n    bn: () => import('../../../../locale/bn.json'),\n    cs: () => import('../../../../locale/cs.json'),\n    cy: () => import('../../../../locale/cy.json'),\n    da: () => import('../../../../locale/da.json'),\n    de: () => import('../../../../locale/de.json'),\n    el: () => import('../../../../locale/el.json'),\n    en: () => import('../../../../locale/en.json'),\n    es: () => import('../../../../locale/es.json'),\n    et: () => import('../../../../locale/et.json'),\n    fi: () => import('../../../../locale/fi.json'),\n    fil: () => import('../../../../locale/fil.json'),\n    fr: () => import('../../../../locale/fr.json'),\n    hi: () => import('../../../../locale/hi.json'),\n    hu: () => import('../../../../locale/hu.json'),\n    id: () => import('../../../../locale/id.json'),\n    it: () => import('../../../../locale/it.json'),\n    ja: () => import('../../../../locale/ja.json'),\n    ko: () => import('../../../../locale/ko.json'),\n    lt: () => import('../../../../locale/lt.json'),\n    lv: () => import('../../../../locale/lv.json'),\n    ms: () => import('../../../../locale/ms.json'),\n    nb: () => import('../../../../locale/nb.json'),\n    ne: () => import('../../../../locale/ne.json'),\n    nl: () => import('../../../../locale/nl.json'),\n    pl: () => import('../../../../locale/pl.json'),\n    pt: () => import('../../../../locale/pt.json'),\n    ro: () => import('../../../../locale/ro.json'),\n    ru: () => import('../../../../locale/ru.json'),\n    sk: () => import('../../../../locale/sk.json'),\n    sl: () => import('../../../../locale/sl.json'),\n    sv: () => import('../../../../locale/sv.json'),\n    ta: () => import('../../../../locale/ta.json'),\n    th: () => import('../../../../locale/th.json'),\n    tr: () => import('../../../../locale/tr.json'),\n    uk: () => import('../../../../locale/uk.json'),\n    vi: () => import('../../../../locale/vi.json'),\n    'zh-Hans': () => import('../../../../locale/zh-Hans.json'),\n    'zh-Hant': () => import('../../../../locale/zh-Hant.json'),\n    zu: () => import('../../../../locale/zu.json'),\n    zz: () => import('../../../../locale/zz.json'),\n};\n\nexport function isSupportedLocale(locale: string): locale is SupportedLocale {\n    return SUPPORTED_LOCALES.includes(locale);\n}\n\nexport const SUPPORTED_LOCALES = Object.keys(MESSAGE_LOADERS);\n\nexport const importMessages = async (locale: SupportedLocale): Promise<Record<string, string>> => {\n    let localeToImport = locale;\n    if (!isSupportedLocale(locale)) {\n        console.warn('Unsupported locale', locale, \"falling back to 'en'\");\n        localeToImport = DEFAULT_LOCALE;\n    }\n\n    const aavMessageLoader = isSupportedAAVLocale(localeToImport)\n        ? importAAVMessages(localeToImport)\n        : Promise.resolve({});\n\n    const [, messages, aavMessages] = await Promise.all([\n        localePolyfill(localeToImport),\n        MESSAGE_LOADERS[localeToImport](),\n        aavMessageLoader,\n    ]);\n\n    return { ...aavMessages, ...messages.default };\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport {\n    usePerformance as usePerformanceCommon,\n    useLoadPerformance as useLoadPerformanceCommon,\n} from '@csc/common';\n\nconst PERFORMANCE_MARKER_PREFIX = 'ace-projects';\n\nexport function usePerformance() {\n    return usePerformanceCommon({ prefix: PERFORMANCE_MARKER_PREFIX });\n}\n\nexport function useLoadPerformance(measureName: string, view?: string) {\n    return useLoadPerformanceCommon({ measureName, prefix: PERFORMANCE_MARKER_PREFIX, view });\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type React from 'react';\nimport { useEffect, useState } from 'react';\nimport { IntlProvider } from 'react-intl';\n\nimport type { SupportedLocale } from './i18n';\nimport { importMessages, isSupportedLocale, DEFAULT_LOCALE } from './i18n';\nimport { useLoadPerformance } from '../../../hooks/usePerformance';\n\nexport { IntlProvider };\n\ntype ProviderProps = React.ComponentProps<typeof IntlProvider>;\nexport type IntlLoaderOptions = { locale: string };\n/**\n * Function to get the primary (short) locale from a given locale.\n * Includes special handling for Chinese locales.\n *\n * @param locale a string representing a locale\n * @returns primary locale (i.e en-US -> en) or undefined if locale is not supported\n */\nexport function getPrimaryLocale(locale?: string): SupportedLocale | undefined {\n    // if no locale is provided return undefined\n    if (!locale || locale.length === 0) {\n        return undefined;\n    }\n    /**\n     * Because there is multiple way of describing Simplified and Trad Chinese.\n     * This maps all the traditional chinese locale to zh-Hant and leave anything else\n     * that starts with zh as Simplified Chinese (zh-Hans)\n     */\n    const languageCode = locale.toLowerCase().replace(/_/g, '-');\n    if (languageCode.startsWith('zh')) {\n        if (languageCode.startsWith('zh-hant') || ['zh-tw', 'zh-hk'].includes(languageCode)) {\n            return 'zh-Hant';\n        } else {\n            return 'zh-Hans';\n        }\n    }\n    const normalizedLocale = languageCode.split(/[_-]+/)[0];\n    return isSupportedLocale(normalizedLocale) ? normalizedLocale : undefined;\n}\n\nexport async function loadIntl({ locale }: IntlLoaderOptions): Promise<ProviderProps> {\n    // get the primary locale from the given locale\n    const primaryLocale = getPrimaryLocale(locale);\n\n    // if root locale is supported, load the messages\n    if (primaryLocale) {\n        // replace any underscores with dash (en_US -> en-US)\n        const formattedLocale = locale.replace('_', '-');\n        const messages = await importMessages(primaryLocale);\n        return { locale: formattedLocale, messages };\n    } else {\n        // if root locale cannot be determined, default to english\n        console.warn('Unsupported locale', locale, \"falling back to 'en'\");\n        const messages = await importMessages(DEFAULT_LOCALE);\n        return { locale: DEFAULT_LOCALE, messages };\n    }\n}\n\n/**\n * Hook to asynchronously load intl props based on a locale string\n */\nexport function useIntlLoader({ locale }: IntlLoaderOptions): ProviderProps | null {\n    const [providerProps, setProviderProps] = useState<ProviderProps | null>(null);\n\n    const loaded = useLoadPerformance('useIntlLoader');\n\n    useEffect(() => {\n        let cancelled = false;\n        loadIntl({ locale })\n            .then((intlProps) => {\n                loaded();\n                if (!cancelled) {\n                    setProviderProps({ ...intlProps });\n                }\n                return undefined;\n            })\n            .catch(console.error);\n\n        return () => {\n            cancelled = true;\n        };\n    }, [loaded, locale]);\n\n    return providerProps;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\nexport class NavigationEvent extends CustomEvent<AssetBrowser.ProjectNavigationEventDetail> {\n    static readonly EVENT_NAME = 'navigate';\n\n    constructor(detail: AssetBrowser.ProjectNavigationEventDetail) {\n        super(NavigationEvent.EVENT_NAME, { bubbles: true, composed: true, detail });\n    }\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\n\nexport interface OrganizerConfig {\n    projectView: AssetBrowser.ProjectsOrganizerViewFilter;\n    sortBy: AssetBrowser.ProjectsOrganizerSortBy | AssetBrowser.ProjectContentsSortBy;\n    sortDirection: AssetBrowser.SortDir;\n    view: AssetBrowser.ViewMode;\n    searchQuery?: string;\n    enableSearch: boolean;\n    hideProjectActions: boolean;\n    disableViewOnlyProjects: boolean;\n}\n\nexport const DEFAULT_ORGANIZER_CONFIG: OrganizerConfig = {\n    projectView: 'all',\n    sortBy: 'createDate',\n    sortDirection: 'desc',\n    view: 'grid',\n    enableSearch: false,\n    hideProjectActions: false,\n    disableViewOnlyProjects: false,\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AssetBrowser } from '@ccx-public/component-types';\nimport React, { createContext, useMemo } from 'react';\n\nimport type { OrganizerConfig } from '../organizerConfig';\nimport { DEFAULT_ORGANIZER_CONFIG } from '../organizerConfig';\n\nexport const OrganizerConfigContext = createContext<OrganizerConfig>(DEFAULT_ORGANIZER_CONFIG);\n\nfunction decodeProjectView(projectView?: string): AssetBrowser.ProjectsOrganizerViewFilter {\n    switch (projectView) {\n        case 'all':\n            return 'all';\n        case 'yours':\n            return 'yours';\n        case 'shared':\n            return 'shared';\n        case 'recent':\n            return 'recent';\n        default:\n            return DEFAULT_ORGANIZER_CONFIG.projectView;\n    }\n}\n\nfunction decodeSortBy(\n    sortBy?: string,\n): AssetBrowser.ProjectsOrganizerSortBy | AssetBrowser.ProjectContentsSortBy {\n    switch (sortBy) {\n        case 'created':\n            return 'createDate';\n        case 'title':\n            return 'title';\n        default:\n            return DEFAULT_ORGANIZER_CONFIG.sortBy;\n    }\n}\n\nfunction decodeSortDirection(sortDir?: string): AssetBrowser.SortDir {\n    switch (sortDir) {\n        case 'asc':\n            return 'asc';\n        case 'desc':\n            return 'desc';\n        default:\n            return DEFAULT_ORGANIZER_CONFIG.sortDirection;\n    }\n}\n\nfunction decodeView(view?: string): AssetBrowser.ViewMode {\n    switch (view) {\n        case 'grid':\n            return 'grid';\n        case 'list':\n            return 'list';\n        default:\n            return DEFAULT_ORGANIZER_CONFIG.view;\n    }\n}\n\nexport function OrganizerConfigProvider(props: Partial<React.PropsWithChildren<OrganizerConfig>>) {\n    const config = useMemo(\n        () => ({\n            projectView: decodeProjectView(props.projectView),\n            sortBy: decodeSortBy(props.sortBy),\n            sortDirection: decodeSortDirection(props.sortDirection),\n            view: decodeView(props.view),\n            searchQuery: props.searchQuery,\n            enableSearch: props.enableSearch ?? false,\n            hideProjectActions: props.hideProjectActions ?? false,\n            disableViewOnlyProjects: props.disableViewOnlyProjects ?? false,\n        }),\n        [\n            props.disableViewOnlyProjects,\n            props.enableSearch,\n            props.hideProjectActions,\n            props.projectView,\n            props.searchQuery,\n            props.sortBy,\n            props.sortDirection,\n            props.view,\n        ],\n    );\n\n    return <OrganizerConfigContext.Provider {...props} value={config} />;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useContext } from 'react';\n\nimport { OrganizerConfigContext } from '../contexts/OrganizerConfigContext';\nimport type { OrganizerConfig } from '../organizerConfig';\n\nexport default function useOrganizerConfig(): OrganizerConfig {\n    return useContext(OrganizerConfigContext);\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport React from 'react';\n\nimport { OrganizerConfigProvider } from '../contexts/OrganizerConfigContext';\nimport type { OrganizerConfig } from '../organizerConfig';\n\nexport default function withOrganizerConfig<T extends object>(\n    WrappedComponent: React.ComponentType<T>,\n): React.ComponentType<T & Partial<OrganizerConfig>> {\n    return function WithProviders(props: T & Partial<OrganizerConfig>) {\n        const {\n            projectView,\n            sortBy,\n            sortDirection,\n            view,\n            searchQuery,\n            enableSearch,\n            hideProjectActions,\n            disableViewOnlyProjects,\n            ...rest\n        } = props;\n\n        return (\n            <OrganizerConfigProvider\n                projectView={projectView}\n                sortBy={sortBy}\n                sortDirection={sortDirection}\n                view={view}\n                searchQuery={searchQuery}\n                enableSearch={enableSearch}\n                hideProjectActions={hideProjectActions}\n                disableViewOnlyProjects={disableViewOnlyProjects}\n            >\n                <WrappedComponent {...(rest as T)} />\n            </OrganizerConfigProvider>\n        );\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\n\nlet generationHistoryUtils: SAM.GenerationHistoryContext['generationHistoryUtils'] | null = null;\n\nexport function setGenerationHistoryUtils(\n    utils: SAM.GenerationHistoryContext['generationHistoryUtils'],\n): void {\n    generationHistoryUtils = utils;\n}\n\nexport { generationHistoryUtils };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { IAUPSDK, SAM } from '@ccx-public/component-types';\n\nimport { setGenerationHistoryUtils } from './generation-history-utils';\n\nexport type UABSAMCore = Pick<\n    SAM.ISAMCore,\n    | 'getAssetContext'\n    | 'getBoardContext'\n    | 'getGenerationHistoryContext'\n    | 'getLibraryContext'\n    | 'getWorkfrontContext'\n    | 'getClassroomContext'\n    | 'getCollaborationContext'\n> & {\n    hostAssetContext: SAM.AssetContext;\n    projectContext: SAM.ProjectContext;\n};\n\nexport async function createUABSAMCore(sdkOrSAMCore: IAUPSDK | SAM.ISAMCore): Promise<UABSAMCore> {\n    return {\n        getClassroomContext: () => sdkOrSAMCore.getClassroomContext(),\n        getAssetContext: () => sdkOrSAMCore.getAssetContext(),\n        getBoardContext: () => sdkOrSAMCore.getBoardContext(),\n        getLibraryContext: () => sdkOrSAMCore.getLibraryContext(),\n        getGenerationHistoryContext: async (): Promise<SAM.GenerationHistoryContext> => {\n            const context = await sdkOrSAMCore.getGenerationHistoryContext();\n\n            setGenerationHistoryUtils(context.generationHistoryUtils);\n\n            return context;\n        },\n        getCollaborationContext: () => sdkOrSAMCore.getCollaborationContext(),\n        getWorkfrontContext: () => sdkOrSAMCore.getWorkfrontContext(),\n        hostAssetContext: await sdkOrSAMCore.getAssetContext(),\n        projectContext: await sdkOrSAMCore.getProjectContext(),\n    };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { AppID, Env as IEnv } from '@ccx-public/component-types';\nimport { SAM } from '@ccx-public/component-types';\nimport type { ProductLocation } from '@csc/common';\nimport SharedConfig from '@csc/common/dist/src/config/SharedConfig';\nimport { createAtom, configure } from 'mobx';\nimport { createContext, useEffect, useState } from 'react';\n\nimport type { UABSAMCore } from './uab-sam-core';\nimport { createUABSAMCore } from './uab-sam-core';\n\nconfigure({ isolateGlobalState: true });\n\nexport interface SAMParams {\n    accessToken?: string;\n    adminModeOrgId?: string;\n    clientId: string;\n    environment: IEnv;\n    loaded?: () => void;\n    locale?: string;\n    onError?: (error: unknown) => unknown;\n    productId: string;\n    productLocation: ProductLocation;\n    refreshToken: SAM.Hooks['refreshAccessToken'];\n    userId: string;\n}\n\ndeclare global {\n    interface Window {\n        acplModel?: unknown;\n    }\n}\n\nconst isSamCppAvailable = Boolean(window.acplModel);\n\n// TODO: Remove this when we're confident about enabling GraphQL by default on Desktop.\nconst SUPPORTED_DESKTOP_GRAPHQL_HOSTS: AppID[] = ['photoshop', 'illustrator', 'in_design'];\n// PS Web, Adobe Home\nconst SUPPORTED_WEB_GRAPHQL_HOST_CLIENT_IDS: string[] = ['PSWebApp1', 'CCHomeWeb1'];\n\nconst isSupportedStageWebApp = (params: SAMParams, featureFlag: string): boolean => {\n    if (params.environment === 'stage') {\n        if (SUPPORTED_WEB_GRAPHQL_HOST_CLIENT_IDS.includes(params.clientId)) {\n            console.debug(`SAM.js ${featureFlag} enabled for ${params.clientId} stage environment`);\n            return true;\n        }\n    }\n    return false;\n};\nexport async function initializeSAM(params: SAMParams): Promise<UABSAMCore> {\n    const sdk = SharedConfig.cSdk;\n    if (sdk) {\n        const { appId } = sdk.getConfig();\n        if (appId && SUPPORTED_DESKTOP_GRAPHQL_HOSTS.includes(appId)) {\n            console.info(`Forcing GraphQL enabled for this host (${appId}).`);\n            const { graphQL, plsSwy, plsRecents, graphQLCache } = sdk.getConfig()\n                .featureFlags as Record<string, boolean | undefined>;\n            // Check before updating, so we don't update the config repeatedly\n            if (!(graphQL && plsSwy && plsRecents && graphQLCache)) {\n                sdk.updateConfig({\n                    featureFlags: {\n                        graphQL: true,\n                        // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- not yet publicly documented\n                        // @ts-ignore\n                        plsSwy: true,\n                        // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- not yet publicly documented\n                        // @ts-ignore\n                        plsRecents: true,\n                        // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- not yet publicly documented\n                        // @ts-ignore\n                        graphQLCache: true,\n                    },\n                });\n            }\n        }\n        await sdk.registerMobxCreateAtom(createAtom);\n        return createUABSAMCore(sdk);\n    }\n\n    const getGraphQlFeatureFlag = () => {\n        const searchParams = new URLSearchParams(window.location.search);\n        const isQueryParam = searchParams.has('enable-samjs-graphql');\n        if (isQueryParam) {\n            console.debug('SAM.js GraphQL enabled via URL query parameter');\n            return true;\n        }\n\n        const isLocalStorageKey = !!localStorage.getItem('enable-samjs-graphql');\n        if (isLocalStorageKey) {\n            console.debug('SAM.js GraphQL enabled via localStorage key');\n            return true;\n        }\n\n        return isSupportedStageWebApp(params, 'GraphQL');\n    };\n\n    const getPlsRecentsFeatureFlag = () => {\n        const searchParams = new URLSearchParams(window.location.search);\n        const isQueryParam = searchParams.has('enable-samjs-pls-recents');\n        if (isQueryParam) {\n            console.debug('SAM.js PLS Recents enabled via URL query parameter');\n            return true;\n        }\n\n        const isLocalStorageKey = !!localStorage.getItem('enable-samjs-pls-recents');\n        if (isLocalStorageKey) {\n            console.debug('SAM.js PLS Recents enabled via localStorage key');\n            return true;\n        }\n\n        return isSupportedStageWebApp(params, 'PLS Recents');\n    };\n\n    const getPlsSwyFeatureFlag = () => {\n        const searchParams = new URLSearchParams(window.location.search);\n        const isQueryParam = searchParams.has('enable-samjs-pls-swy');\n        if (isQueryParam) {\n            console.debug('SAM.js PLS Shared With You (SWY) enabled via URL query parameter');\n            return true;\n        }\n\n        const isLocalStorageKey = !!localStorage.getItem('enable-samjs-pls-swy');\n        if (isLocalStorageKey) {\n            console.debug('SAM.js PLS Shared With You (SWY) enabled via localStorage key');\n            return true;\n        }\n\n        return isSupportedStageWebApp(params, 'PLS Shared With You (SWY)');\n    };\n\n    const { initializeSharedAssetModel } = await import('@ccx-public/shared-asset-model-js');\n    const sam = await initializeSharedAssetModel(\n        {\n            FEATURE_FLAGS: {\n                // Temporary for Adobe Home testing -- CCXCD-14510\n                'use-graphql': getGraphQlFeatureFlag(),\n                'use-pls-recents': getPlsRecentsFeatureFlag(),\n                'use-pls-swy': getPlsSwyFeatureFlag(),\n                'enable-x-bucket-move': true,\n                'enable-response-cache': isSamCppAvailable,\n                'enable-acpl-next-polyfills': isSamCppAvailable,\n                'disable-sam-cpp-models': isSamCppAvailable,\n            },\n            CLIENT_ID: params.clientId,\n            ENVIRONMENT: params.environment === 'prod' ? SAM.Env.Production : SAM.Env.Stage,\n            USER_ID: params.userId,\n            HIGH_PRIORITY_RAPI_REQUESTS: true,\n            ACCESS_TOKEN: params.accessToken,\n            LOCALE: params.locale,\n            HOST_PRODUCT_DATA: {\n                PRODUCT_ID: params.productId,\n                PRODUCT_LOCATION: params.productLocation,\n            },\n            ADMIN_MODE_ORG_ID: params.adminModeOrgId,\n        },\n        { refreshAccessToken: params.refreshToken },\n    );\n\n    sam.makeObservable(createAtom);\n    return createUABSAMCore(sam as unknown as SAM.ISAMCore);\n}\n\nexport const SAMContext = createContext<UABSAMCore | null>(null);\nexport const SAMProvider = SAMContext.Provider;\n\nexport function useSAMInitializer(props: SAMParams): UABSAMCore | null {\n    const {\n        accessToken,\n        adminModeOrgId,\n        clientId,\n        environment,\n        loaded,\n        locale,\n        productId,\n        productLocation,\n        refreshToken,\n        userId,\n    } = props;\n    const onError = props.onError || console.error;\n    const [providerProps, setProviderProps] = useState<UABSAMCore | null>(null);\n\n    useEffect(() => {\n        let cancelled = false;\n\n        initializeSAM({\n            accessToken,\n            adminModeOrgId,\n            clientId,\n            environment,\n            locale,\n            productId,\n            productLocation,\n            refreshToken,\n            userId,\n        })\n            .then((sam) => {\n                loaded?.();\n                if (!cancelled) {\n                    setProviderProps(sam);\n                }\n                return undefined;\n            })\n            .catch(onError);\n\n        return () => {\n            cancelled = true;\n        };\n    }, [\n        accessToken,\n        adminModeOrgId,\n        clientId,\n        environment,\n        loaded,\n        locale,\n        onError,\n        productId,\n        productLocation,\n        refreshToken,\n        userId,\n    ]);\n\n    return providerProps;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useContext } from 'react';\n\nimport { SAMContext } from '../utils/initializeSAM';\nimport type { UABSAMCore } from '../utils/uab-sam-core';\n\nexport function useSAM(): UABSAMCore {\n    const sam = useContext(SAMContext);\n\n    if (!sam) {\n        throw new Error('SAM.js is not initialized');\n    }\n\n    return sam;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { useEffect, useState } from 'react';\n\nimport { useSAM } from './useSAM';\n\nexport function useAsset(assetId?: string | null): SAM.AdobeAsset | undefined {\n    const sam = useSAM();\n    const [asset, setAsset] = useState<SAM.AdobeAsset | undefined>(undefined);\n\n    useEffect(() => {\n        if (assetId) {\n            void sam.hostAssetContext.getAssetWithCloudID(assetId).then((result) => {\n                setAsset(result);\n                return undefined;\n            });\n        } else {\n            setAsset(undefined);\n        }\n    }, [assetId, sam.hostAssetContext]);\n\n    return asset;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { AssetBrowser } from '@ccx-public/component-types';\nimport { useMemo } from 'react';\n\nimport { useSAM } from './useSAM';\n\nexport type SAMFilter = SAM.AdobeAssetFilter;\nenum IsSharedViewSelection {\n    ALL = 0,\n    YOURS = 1,\n    SHARED_WITH_YOU = 2,\n}\n\nexport const DEFAULT_PAGE_SIZE = 50;\n\nconst DEFAULT_SAM_FILTER_PARAMS: SAMFilterParams = {\n    filterType: 'AdobeAssetFilter',\n    params: { mediaTypes: [] },\n};\n\ninterface MediaTypesParams {\n    excludeMediaTypes?: string[];\n    mediaTypes?: string[];\n}\n\ninterface AdobeAssetFilterParams {\n    filterType: 'AdobeAssetFilter';\n    params?: MediaTypesParams;\n}\n\ninterface IsSharedFilterParams {\n    filterType: 'IsSharedFilter';\n    params?: {\n        SWYFilterView?: string;\n    };\n}\n\nexport type SAMFilterParams = AdobeAssetFilterParams | IsSharedFilterParams;\n\ninterface HookOptions {\n    limit?: number;\n    loadAll?: boolean;\n    samFilter?: SAMFilter;\n    sortBy?: SAM.AdobeAssetOrderField;\n    sortDirection?: SAM.IOrderDirection;\n    source?: SAM.GenericAssetSource;\n}\n\ninterface ContextOptions {\n    context: SAM.AssetContext | undefined;\n}\n\ntype GetterOptions = HookOptions & ContextOptions;\n\nexport function getAdobeAssetFilter({\n    context,\n    params = { mediaTypes: [] },\n}: AdobeAssetFilterParams & ContextOptions): SAMFilter | undefined {\n    if (!context) {\n        return;\n    }\n\n    return context.getAdobeAssetFilter(params);\n}\n\nexport function getSAMFilter(\n    context?: SAM.AssetContext,\n    params: SAMFilterParams = DEFAULT_SAM_FILTER_PARAMS,\n): SAMFilter | undefined {\n    if (!context) {\n        return;\n    }\n\n    switch (params.filterType) {\n        case 'AdobeAssetFilter': {\n            return getAdobeAssetFilter({ context, ...params });\n        }\n        case 'IsSharedFilter': {\n            return getSharedViewFilter({ context, ...params });\n        }\n        default:\n            return undefined;\n    }\n}\n\nexport function useAdobeAssetFilter(\n    params: AdobeAssetFilterParams = { filterType: 'AdobeAssetFilter', params: { mediaTypes: [] } },\n): SAMFilter | undefined {\n    const { hostAssetContext: context } = useSAM();\n\n    return useMemo(\n        () => getAdobeAssetFilter({ context, ...params }),\n        // eslint-disable-next-line react-hooks/exhaustive-deps -- Specifying sub properties of params\n        [context, params.params?.mediaTypes, params.params?.excludeMediaTypes],\n    );\n}\n\nfunction getSharedViewSelection(SWYFilterView?: string): IsSharedViewSelection | undefined {\n    switch (SWYFilterView) {\n        case AssetBrowser.SharedViewTypeValues.Yours:\n            return IsSharedViewSelection.YOURS;\n        case AssetBrowser.SharedViewTypeValues.SharedWithYou:\n            return IsSharedViewSelection.SHARED_WITH_YOU;\n        case AssetBrowser.SharedViewTypeValues.All:\n        default:\n            return undefined;\n    }\n}\n\nexport function getSharedViewFilter({\n    context,\n    params,\n}: IsSharedFilterParams & ContextOptions): SAMFilter | undefined {\n    if (!context) {\n        return;\n    }\n\n    return context.getIsSharedFilter(getSharedViewSelection(params?.SWYFilterView)) as SAMFilter;\n}\n\nexport function getAssetList({\n    context,\n    limit = DEFAULT_PAGE_SIZE,\n    loadAll = true,\n    sortBy = 'modified',\n    sortDirection = 'descending',\n    source,\n    samFilter = getSAMFilter(context),\n}: GetterOptions): SAM.GenericAssetList | undefined {\n    if (!context || !source) {\n        return;\n    }\n\n    const list = source.getList(context.getAdobeAssetOrder(sortDirection, sortBy), samFilter, {\n        limit,\n        loadAllPages: loadAll,\n    });\n\n    return list;\n}\n\nexport function useAssetList({\n    limit = DEFAULT_PAGE_SIZE,\n    loadAll = true,\n    samFilter,\n    sortBy = 'modified',\n    sortDirection = 'descending',\n    source,\n}: HookOptions): SAM.GenericAssetList | undefined {\n    const { hostAssetContext } = useSAM();\n\n    return useMemo(\n        () =>\n            getAssetList({\n                context: hostAssetContext,\n                limit,\n                loadAll,\n                samFilter,\n                sortBy,\n                sortDirection,\n                source,\n            }),\n        [hostAssetContext, limit, loadAll, samFilter, sortBy, sortDirection, source],\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { useMemo } from 'react';\n\nimport { DEFAULT_PAGE_SIZE } from './useAssetList';\n\ninterface IHookOptions {\n    context: SAM.GenerationHistoryContext | undefined;\n    excludeMediaTypes?: string[];\n    generationGroupId?: string;\n    historyAssetType?: SAM.GenerationHistoryAssetType;\n    limit?: number;\n    loadAll?: boolean;\n    sortBy?: 'created';\n    sortDirection?: SAM.IOrderDirection;\n    source?: SAM.GenerationHistoryAssetSource;\n}\n\nexport function getGenerationHistoryList({\n    context,\n    generationGroupId,\n    historyAssetType,\n    limit = DEFAULT_PAGE_SIZE,\n    loadAll = false,\n    sortBy = 'created',\n    sortDirection = 'descending',\n    source,\n}: IHookOptions) {\n    if (!context || !source) {\n        return;\n    }\n\n    const order = context.getGenerationHistoryAssetOrder(sortDirection, sortBy);\n    const filter = context.getGenerationHistoryAssetFilter({ generationGroupId, historyAssetType });\n    const list = source.getList(order, filter, {\n        loadAllPages: loadAll,\n        limit,\n    });\n\n    return list;\n}\n\nexport function useGenerationHistoryList({\n    context,\n    generationGroupId,\n    historyAssetType,\n    limit = DEFAULT_PAGE_SIZE,\n    loadAll = false,\n    sortBy = 'created',\n    sortDirection = 'descending',\n    source,\n}: IHookOptions) {\n    return useMemo(\n        () =>\n            getGenerationHistoryList({\n                context,\n                generationGroupId,\n                historyAssetType,\n                limit,\n                loadAll,\n                sortBy,\n                sortDirection,\n                source,\n            }),\n        [\n            context,\n            generationGroupId,\n            historyAssetType,\n            limit,\n            loadAll,\n            sortBy,\n            sortDirection,\n            source,\n        ],\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { debounce } from 'lodash-es';\nimport { useCallback, useEffect, useState, useMemo } from 'react';\n\nimport { useSAM } from './useSAM';\n\ntype DynamicMessage = (values: Record<string, string | undefined>) => string;\nexport type MessageEntry = DynamicMessage | string;\nexport type Messages = { [key in ErrorType]: MessageEntry };\n\nexport type ErrorType =\n    | 'lengthExceeded'\n    | 'characters'\n    | 'endWithDot'\n    | 'startWithDot'\n    | 'duplicate'\n    | 'reservedName';\nconst RESTRICTED_CHARACTERS = /[\\\\:*?\"/|<>\\x00-\\x1F]+|[ .]$/; // eslint-disable-line no-control-regex -- Need to allow control characters\nconst RESERVED_NAME_REGEX = /^(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])$/i;\nexport type NameErrorType = ErrorType | undefined;\n\ntype AssetTypes = 'file' | 'project' | 'team';\ntype ElementTypes = SAM.AdobeAsset | SAM.Project;\ntype ValidationSpec = AssetTypes | ElementTypes | undefined;\n\ntype Options = {\n    interval?: number;\n    maxLength?: number;\n    messages?: Messages;\n};\n\ntype NameValidationData = {\n    addDuplicate: (name: string) => void;\n    error?: NameErrorType;\n    onNameChange: (name: string) => unknown;\n    helpText?: string;\n};\n\nconst getValidationSpec = (spec: ValidationSpec) => {\n    if (typeof spec === 'string') {\n        return { workflow: 'create', assetType: spec, element: undefined };\n    }\n\n    let assetType: string;\n    if (spec && spec.isProject) {\n        assetType = 'project';\n    } else {\n        assetType = 'file';\n    }\n\n    return { assetType, element: spec, workflow: 'rename' };\n};\n\nexport const useNameValidation = (spec: ValidationSpec, options?: Options): NameValidationData => {\n    const { projectContext } = useSAM();\n    const { interval = 500, maxLength = 200, messages } = options || {};\n    const [name, setName] = useState<string>('');\n    const [duplicates, setDuplicates] = useState<string[]>([]);\n    const [validationError, setValidationError] = useState<NameErrorType>();\n    const { assetType, element, workflow } = getValidationSpec(spec);\n\n    const onNameChange = useMemo(() => {\n        return debounce((newName: string) => {\n            setName(newName);\n        }, interval);\n    }, [setName, interval]);\n\n    const validateProjectName = useCallback(\n        async (newName: string) => {\n            let isAvailable: boolean = true;\n            const project = element as SAM.Project;\n            if (workflow === 'create') {\n                isAvailable = await projectContext.validateProjectNameForCreate(newName, project);\n            } else if (workflow === 'rename') {\n                isAvailable = await project.validateProjectNameForRename(newName);\n            }\n\n            if (isAvailable === false) {\n                return 'duplicate';\n            }\n        },\n        [element, projectContext, workflow],\n    );\n\n    const validateAssetName = useCallback(\n        (newName: string) => {\n            if (newName.startsWith('.')) {\n                return 'startWithDot';\n            } else if (newName.endsWith('.')) {\n                return 'endWithDot';\n            } else if (RESTRICTED_CHARACTERS.test(newName)) {\n                return 'characters';\n            } else if (RESERVED_NAME_REGEX.test(newName)) {\n                return 'reservedName';\n            } else if (newName.length > maxLength) {\n                return 'lengthExceeded';\n            } else if (duplicates.includes(newName)) {\n                return 'duplicate';\n            }\n        },\n        [duplicates, maxLength],\n    );\n\n    const validate = useCallback(\n        async (newName: string) => {\n            let error: NameErrorType;\n            const assetNameError: NameErrorType = validateAssetName(newName);\n            if (assetNameError) {\n                error = assetNameError;\n            } else if (assetType === 'project' && newName.length) {\n                error = await validateProjectName(newName);\n            }\n\n            setValidationError(error);\n        },\n        [assetType, validateAssetName, validateProjectName],\n    );\n\n    useEffect(() => {\n        void validate(name);\n    }, [name, validate, duplicates.length]);\n\n    const addDuplicate = useCallback(\n        (name: string) => {\n            if (!duplicates.includes(name)) {\n                setDuplicates([...duplicates, name]);\n            }\n        },\n        [duplicates],\n    );\n\n    const helpText = useMemo(() => {\n        if (validationError && messages && messages[validationError]) {\n            const entry = messages[validationError];\n            return typeof entry === 'function' ? entry({ assetType }) : entry;\n        }\n    }, [assetType, messages, validationError]);\n\n    return {\n        addDuplicate,\n        error: validationError,\n        helpText,\n        onNameChange,\n    };\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { useLoading } from '@csc/common';\nimport { useMemo } from 'react';\n\nimport { useSAM } from './useSAM';\n\nexport type UseProjectOptions = {\n    updateLastAccessed?: boolean;\n};\n\nexport function useProject(\n    id: string,\n    { updateLastAccessed }: UseProjectOptions = {},\n): {\n    error?: Error;\n    loading: boolean;\n    project?: SAM.Project;\n} {\n    const { projectContext } = useSAM();\n\n    const load = useMemo(async () => {\n        if (!id) {\n            return Promise.resolve(undefined);\n        }\n        return await projectContext.getProjectbyID(id);\n    }, [id, projectContext]);\n\n    const { value: project, error, loading } = useLoading<SAM.Project | undefined>(undefined, load);\n\n    useMemo(() => {\n        if (project && updateLastAccessed) {\n            void project.updateLastAccessed().catch(() => {\n                console.error('Failed to update last accessed time for project', {\n                    projectId: project.id,\n                });\n            });\n        }\n    }, [project, updateLastAccessed]);\n\n    return { error, loading, project };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\n// Library roles\nexport const BRAND_ROLE = 'brand';\nexport const CM_TRAINING_SET_ROLE = 'cm_training_set';\n\nexport function isProject(asset: SAM.AdobeAsset): asset is SAM.Project {\n    return asset.isProject;\n}\n\nexport function isLibrary(asset: SAM.AdobeAsset): asset is SAM.Library {\n    return asset.isLibrary;\n}\n// Adding type guard for roles in libraries\nexport function isBrandRole(\n    role: SAM.LibraryRole,\n): role is SAM.LibraryRole & { type: typeof BRAND_ROLE } {\n    return role.type === BRAND_ROLE;\n}\n\nexport function isBrand(asset: SAM.AdobeAsset) {\n    return Boolean((asset as SAM.Library).roles?.find(isBrandRole));\n}\n\nexport function isCmTrainingSetRole(\n    role: SAM.LibraryRole,\n): role is SAM.LibraryRole & { type: typeof CM_TRAINING_SET_ROLE } {\n    return role.type === CM_TRAINING_SET_ROLE;\n}\n\nexport function isCmTrainingSet(asset: SAM.AdobeAsset) {\n    return Boolean((asset as SAM.Library).roles?.find(isCmTrainingSetRole));\n}\n\nexport const TypeOfAsset = {\n    isProject,\n    isLibrary,\n};\n\nexport enum LibraryPrimaryType {\n    BRAND = 'brand',\n    LIBRARY = 'library',\n    TRAINING_SET = 'training-set',\n}\n\n// Library type variations are only distinguished by the roles array, which can contain 0, 1 or many values.\n// This function is meant to make that primary type more explicit.\nexport function getLibraryType(library: SAM.Library): LibraryPrimaryType | undefined {\n    if (library.roles) {\n        if (isCmTrainingSet(library)) {\n            return LibraryPrimaryType.TRAINING_SET;\n        } else if (isBrand(library)) {\n            return LibraryPrimaryType.BRAND;\n        } else {\n            return LibraryPrimaryType.LIBRARY;\n        }\n    }\n}\n\nexport const getAssetName = (asset: SAM.AdobeAsset): string => {\n    const { name, displayName, isLibrary, isFolder, isProject } = asset;\n\n    // @ts-expect-error - isNameDCTitle is deprecated and not in component-types\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- isNameDCTitle is deprecated and not in component-types, but is in SAM\n    const isNameDCTitle: boolean = asset.isNameDCTitle;\n\n    /**\n     * Library listing from SAM does not populate name field and is always ''.\n     */\n    if (isLibrary) {\n        return displayName || '';\n    }\n\n    if (isNameDCTitle || isFolder || isProject || !name.includes('.')) {\n        return name || displayName || '';\n    }\n\n    return name.split('.').slice(0, -1).join('.');\n};\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\nimport type { ICollectionItem } from '@csc/collection-view';\n\n/**\n * Helper function used to accurately determine if an error\n * is a SAMError and not a plain Error.\n *\n * In UAB it isn't safe to use `error instanceof SAMError` because we could be importing a different\n * version of SAM than the actual instance of SAM we're using since we could be re-using the host's\n * instance of SAM.\n *\n * This function is taken from the SAM source code because this function doesn't seem to be exported\n * from the SAM package.\n */\nexport function isSAMError(error: unknown): error is SAM.SAMError {\n    return Boolean(error instanceof Error && error.name === 'SAMError');\n}\n\ninterface FailedElement<T = ICollectionItem> {\n    element: T;\n    error: Error;\n}\n\n/**\n * Checks if the first element of elements[] contain a quota exceeded error from SAM.\n */\nexport function isQuotaError(failedElements: FailedElement[]): boolean {\n    if (failedElements.length === 0) {\n        return false;\n    }\n    const element = failedElements[0];\n    return isSAMError(element.error) && element.error.code === SAM.SAMErrorCode.FULL_CLOUD_STORAGE;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { SAM } from '@ccx-public/component-types';\nimport { when, configure } from 'mobx';\n\nconfigure({ isolateGlobalState: true });\n\n/**\n * Wait for a list to load using a Promise with Mobx\n * @param list\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Generic type is not exported from @ccx-public/component-types\nconst waitForListLoad = async (list: SAM.IItemList<any>): Promise<void> => {\n    await when(() => list.status !== SAM.AssetListStatus.Loading);\n    if (list.status === SAM.AssetListStatus.HadLoaderErrors) {\n        // eslint-disable-next-line @typescript-eslint/only-throw-error -- SAM errors can be any type\n        throw list.errors;\n    }\n};\n\n/**\n * Refreshes an existing list. Load options are now expected to be passed in via the getList() method.\n * https://git.corp.adobe.com/torq/acpl-model/blob/main/modules/sam-js/RELEASE_NOTES.md\n *\n * @param list\n * @param forceRefresh\n * @returns\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Generic type is not exported from @ccx-public/component-types\nexport const refreshList = async (list?: SAM.IItemList<any>, forceRefresh?: boolean) => {\n    if (!list) {\n        return;\n    }\n    // force a refresh of the list and bypass any timeout set on the list options\n    if (forceRefresh) {\n        list.setNeedsRefresh?.();\n    }\n\n    list.refresh();\n    await waitForListLoad(list);\n};\n\nexport type GenericAssetList =\n    | SAM.GenericAssetList\n    | SAM.IItemList<SAM.GenerationHistoryAssetConfig>;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { useMemo } from 'react';\n\nimport { useSAM } from './useSAM';\n\nconst DEFAULT_PAGE_SIZE = 50;\n\ninterface HookOptions {\n    sortBy?: SAM.ProjectOrderField;\n    sortDirection?: SAM.ProjectOrder['direction'];\n    loadAll?: boolean;\n    limit?: number;\n    filter?: SAM.ProjectFilter;\n}\n\nexport function useProjectList({\n    sortBy = 'name',\n    sortDirection = 'ascending',\n    loadAll = true,\n    limit = DEFAULT_PAGE_SIZE,\n    filter,\n}: HookOptions = {}): SAM.IItemList<SAM.ProjectConfig> | undefined {\n    const { projectContext } = useSAM();\n    const list = useMemo(() => {\n        const list = projectContext\n            .projects()\n            .getList(\n                projectContext.getProjectOrder(sortDirection, sortBy),\n                filter || projectContext.getProjectFilter(),\n                {\n                    loadAllPages: loadAll,\n                    limit,\n                },\n            );\n\n        return list;\n    }, [projectContext, sortDirection, sortBy, filter, loadAll, limit]);\n\n    return list;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { useMemo } from 'react';\n\nimport { useLibraryContext } from './useLibraryContext';\n\nconst DEFAULT_PAGE_SIZE = 50;\n\ninterface HookOptions {\n    sortBy?: SAM.LibraryOrderField;\n    sortDirection?: SAM.LibraryOrder['direction'];\n    loadAll?: boolean;\n    limit?: number;\n    filterParams?: Parameters<SAM.LibraryContext['getLibraryFilter']>[0];\n}\n\nexport function useLibraryList({\n    sortBy = 'name',\n    sortDirection = 'ascending',\n    loadAll = false,\n    limit = DEFAULT_PAGE_SIZE,\n    filterParams = {},\n}: HookOptions = {}): SAM.IItemList<SAM.LibraryConfig> | undefined {\n    const { libraryContext } = useLibraryContext();\n    const list = useMemo(() => {\n        if (!libraryContext) {\n            return undefined;\n        }\n        const list = libraryContext.librariesSource.getList(\n            libraryContext.getLibraryOrder(sortDirection, sortBy),\n            libraryContext.getLibraryFilter(filterParams),\n            {\n                loadAllPages: loadAll,\n                limit,\n            },\n        );\n\n        return list;\n    }, [libraryContext, sortDirection, sortBy, filterParams, loadAll, limit]);\n\n    return list;\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { useLoading } from '@csc/common';\nimport { useMemo } from 'react';\n\nimport { useSAM } from './useSAM';\n\nexport function useLibraryContext(): {\n    error?: Error;\n    loading: boolean;\n    libraryContext?: SAM.LibraryContext;\n} {\n    const sam = useSAM();\n    const load = useMemo(() => {\n        return sam.getLibraryContext();\n    }, [sam]);\n    const {\n        value: libraryContext,\n        error,\n        loading,\n    } = useLoading<SAM.LibraryContext>(undefined, load);\n    return { error, loading, libraryContext };\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport type { SAM } from '@ccx-public/component-types';\nimport { useMemo } from 'react';\n\nfunction getDisplayName(user: SAM.Collaborator): string | undefined {\n    return user.name || user.email;\n}\n\n/**\n * Exclude collaborators who are inherited (i.e., not directly added).\n * Normally, the owner should also be included as a direct\n * collaborator in ESM. However, USM (CCI) doesn't support having the owner\n * be a collaborator, so we also include collaborators with role=\"owner\" who\n * aren't admins (deep_override), so that folks invited to an asset\n * will see the owner included in the display.\n */\nfunction shouldShowCollaborator(c: SAM.Collaborator): boolean {\n    const isIndividualOwner =\n        c.role === 'owner' &&\n        (c.type === 'imsUser' || c.type === 'addressBookContact') &&\n        !c.inheritances?.includes('deep_override');\n    return (\n        c.type !== 'predefinedPrincipal' && !c.isCurrentUser && (c.isDirect || isIndividualOwner)\n    );\n}\n\n/**\n * Sort collaborators by name/email.\n */\nfunction sortCollaborators(a: SAM.Collaborator, b: SAM.Collaborator): number {\n    return (getDisplayName(a)?.toLocaleLowerCase() ?? '').localeCompare(\n        getDisplayName(b)?.toLocaleLowerCase() ?? '',\n    );\n}\n\n/**\n * Return collaborators that are direct collaborators (i.e. not inherited from a group)\n * sorted by name/email. Includes the owner if an individual. Includes the current user if a direct collaborator.\n */\nexport function useDirectCollaborators(asset: SAM.AdobeAsset | undefined): SAM.Collaborator[] {\n    const { collaboratorArray } = asset || {};\n    return useMemo(() => {\n        if (!collaboratorArray) {\n            return [];\n        }\n        return collaboratorArray.filter(shouldShowCollaborator).sort(sortCollaborators);\n    }, [collaboratorArray]);\n}\n","// Generated by genversion.\nmodule.exports = '5.45.0-2'\n","function _extends() {\n  module.exports = _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  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n  return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    \"default\": obj\n  };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2022 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\nexport var ShowModalResultType;\n(function (ShowModalResultType) {\n    // The dialog was not shown because the host has not provided support for it.\n    ShowModalResultType[\"NotImplemented\"] = \"not_implemented\";\n    // The user followed the dialog flow to completion.\n    ShowModalResultType[\"Success\"] = \"success\";\n    // The user canceled the dialog.\n    ShowModalResultType[\"Cancel\"] = \"cancel\";\n    // The user interacted with the host in a way that closed the dialog (e.g. pressing escape,\n    // clicking outside the dialog, or clicking the close button at the top right).\n    ShowModalResultType[\"Close\"] = \"close\";\n    // The dialog was closed as part of an error flow, typically accompanied by a toast.\n    ShowModalResultType[\"Error\"] = \"error\";\n})(ShowModalResultType || (ShowModalResultType = {}));\n// TODO: https://jira.corp.adobe.com/browse/CCXCD-14030\n// Import these types and enums below from component-types into CDO/UAB\n/* eslint-disable @typescript-eslint/no-namespace */\nexport var CDO;\n(function (CDO) {\n    let ActionType;\n    (function (ActionType) {\n        /** Default action type. This action is shown for each asset in the Action menu, Context Menu and Action Bar */\n        ActionType[\"Asset\"] = \"asset\";\n        /** This action applies to the currently navigated route in CDO. It will be rendered in the Header of the provided route/tab\n         * Example: New Folder, Upload, etc.\n         */\n        ActionType[\"Route\"] = \"route\";\n    })(ActionType = CDO.ActionType || (CDO.ActionType = {}));\n    let ClickSelectType;\n    (function (ClickSelectType) {\n        ClickSelectType[\"Single\"] = \"single\";\n        ClickSelectType[\"Double\"] = \"double\";\n        ClickSelectType[\"None\"] = \"none\";\n    })(ClickSelectType = CDO.ClickSelectType || (CDO.ClickSelectType = {}));\n})(CDO || (CDO = {}));\nexport var ContentViewType;\n(function (ContentViewType) {\n    ContentViewType[\"CloudDocuments\"] = \"cloud-documents\";\n    ContentViewType[\"Deleted\"] = \"deleted\";\n    ContentViewType[\"SharedWithYou\"] = \"shared-with-you\";\n    ContentViewType[\"Recents\"] = \"recents\";\n    ContentViewType[\"ReviewLinks\"] = \"review-links\";\n    ContentViewType[\"ConvertToSketch\"] = \"sketch\";\n    ContentViewType[\"Libraries\"] = \"libraries\";\n    ContentViewType[\"Local\"] = \"local\";\n    ContentViewType[\"Projects\"] = \"projects\";\n    ContentViewType[\"Project\"] = \"project\";\n    ContentViewType[\"GenerationHistory\"] = \"generation-history\";\n    ContentViewType[\"FFBoards\"] = \"ffboards\";\n    ContentViewType[\"Favorites\"] = \"favorites\";\n    ContentViewType[\"AssetPreview\"] = \"asset-preview\";\n})(ContentViewType || (ContentViewType = {}));\nexport var OtherFileTypeValues;\n(function (OtherFileTypeValues) {\n    OtherFileTypeValues[\"AllFiles\"] = \"ALL_FILES\";\n    OtherFileTypeValues[\"Folder\"] = \"FOLDER\";\n    OtherFileTypeValues[\"Project\"] = \"PROJECT\";\n    OtherFileTypeValues[\"ReviewLink\"] = \"REVIEW_LINK\";\n    OtherFileTypeValues[\"AllCompatible\"] = \"ALL_COMPATIBLE\";\n})(OtherFileTypeValues || (OtherFileTypeValues = {}));\nexport var GenericFileTypeValues;\n(function (GenericFileTypeValues) {\n    GenericFileTypeValues[\"Assets3d\"] = \"ASSETS_3D\";\n    GenericFileTypeValues[\"Images\"] = \"IMAGES\";\n    GenericFileTypeValues[\"Videos\"] = \"VIDEOS\";\n    GenericFileTypeValues[\"Audio\"] = \"AUDIO\";\n})(GenericFileTypeValues || (GenericFileTypeValues = {}));\nexport var AdobeFileTypeValues;\n(function (AdobeFileTypeValues) {\n    AdobeFileTypeValues[\"Photoshop\"] = \"PHOTOSHOP\";\n    AdobeFileTypeValues[\"Illustrator\"] = \"ILLUSTRATOR\";\n    AdobeFileTypeValues[\"Express\"] = \"EXPRESS\";\n    AdobeFileTypeValues[\"Acrobat\"] = \"PDF\";\n    AdobeFileTypeValues[\"InDesign\"] = \"INDESIGN\";\n    AdobeFileTypeValues[\"Aero\"] = \"AERO\";\n    AdobeFileTypeValues[\"XD\"] = \"XD\";\n    AdobeFileTypeValues[\"Concept\"] = \"CONCEPT\";\n    AdobeFileTypeValues[\"Squirrel\"] = \"SQUIRREL\";\n})(AdobeFileTypeValues || (AdobeFileTypeValues = {}));\nexport var LibrariesAndBrandsTypeValues;\n(function (LibrariesAndBrandsTypeValues) {\n    LibrariesAndBrandsTypeValues[\"Libraries\"] = \"LIBRARIES\";\n    LibrariesAndBrandsTypeValues[\"Brands\"] = \"BRANDS\";\n})(LibrariesAndBrandsTypeValues || (LibrariesAndBrandsTypeValues = {}));\nexport var GenStudioBrandTypeValues;\n(function (GenStudioBrandTypeValues) {\n    GenStudioBrandTypeValues[\"AllBrands\"] = \"ALL_BRANDS\";\n    GenStudioBrandTypeValues[\"CreatedByYou\"] = \"CREATED_BY_YOU\";\n    GenStudioBrandTypeValues[\"Drafts\"] = \"DRAFTS\";\n    GenStudioBrandTypeValues[\"Published\"] = \"PUBLISHED\";\n    GenStudioBrandTypeValues[\"MyBrands\"] = \"MY_BRANDS\";\n    GenStudioBrandTypeValues[\"Public\"] = \"PUBLIC\";\n})(GenStudioBrandTypeValues || (GenStudioBrandTypeValues = {}));\nexport var FireflyGenerationTypeValues;\n(function (FireflyGenerationTypeValues) {\n    FireflyGenerationTypeValues[\"GenerationAll\"] = \"FIREFLY_GENERATION_ALL\";\n    FireflyGenerationTypeValues[\"GenerationImage\"] = \"FIREFLY_GENERATION_IMAGE\";\n    FireflyGenerationTypeValues[\"GenerationVideo\"] = \"FIREFLY_GENERATION_VIDEO\";\n    FireflyGenerationTypeValues[\"GenerationVector\"] = \"FIREFLY_GENERATION_VECTOR\";\n    FireflyGenerationTypeValues[\"GenerationAudio\"] = \"FIREFLY_GENERATION_AUDIO\";\n})(FireflyGenerationTypeValues || (FireflyGenerationTypeValues = {}));\nexport var SharedViewTypeValues;\n(function (SharedViewTypeValues) {\n    SharedViewTypeValues[\"All\"] = \"SHARED_VIEW_ALL\";\n    SharedViewTypeValues[\"Yours\"] = \"SHARED_VIEW_YOURS\";\n    SharedViewTypeValues[\"SharedWithYou\"] = \"SHARED_VIEW_SHARED_WITH_YOU\";\n})(SharedViewTypeValues || (SharedViewTypeValues = {}));\nexport const FileFilterTypeValues = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, GenericFileTypeValues), AdobeFileTypeValues), OtherFileTypeValues), LibrariesAndBrandsTypeValues), FireflyGenerationTypeValues), SharedViewTypeValues), GenStudioBrandTypeValues);\nexport var SAMLogLevel;\n(function (SAMLogLevel) {\n    SAMLogLevel[SAMLogLevel[\"Off\"] = 0] = \"Off\";\n    SAMLogLevel[SAMLogLevel[\"Medium\"] = 1] = \"Medium\";\n    SAMLogLevel[SAMLogLevel[\"High\"] = 2] = \"High\";\n})(SAMLogLevel || (SAMLogLevel = {}));\nexport var CDOLogLevel;\n(function (CDOLogLevel) {\n    CDOLogLevel[CDOLogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\n    CDOLogLevel[CDOLogLevel[\"INFO\"] = 1] = \"INFO\";\n    CDOLogLevel[CDOLogLevel[\"WARN\"] = 2] = \"WARN\";\n    CDOLogLevel[CDOLogLevel[\"ERROR\"] = 3] = \"ERROR\";\n    CDOLogLevel[CDOLogLevel[\"DISABLED\"] = 4] = \"DISABLED\";\n})(CDOLogLevel || (CDOLogLevel = {}));\nexport var AccountType;\n(function (AccountType) {\n    AccountType[\"Personal\"] = \"type1\";\n    AccountType[\"Enterprise\"] = \"type2\";\n    AccountType[\"Business\"] = \"type3\";\n    AccountType[\"Federated\"] = \"type2e\";\n})(AccountType || (AccountType = {}));\n/**\n * PickerMode is an enum for quickly configuring parts of CDP UI to show/hide various\n * features including tabs, buttons, and behvaioral changes. Modes can be sent through several APIs including through\n * Panel.tsx, Commands.tsx, and WebCommands.tsx, returned from host.getPickerInfo() calls and\n * through a PICKERSTATECHANGED event sent from UXP which provides the new mode.\n * The mode is also sent through executeValidPickerAction call into the host.\n */\nexport var PickerMode;\n(function (PickerMode) {\n    /**\n     * Place mode that is for the 2021 Place workflow. This mode will be just like Open but will have different\n     * analytics and a different callback.\n     */\n    PickerMode[\"placeLinkOrEmbed\"] = \"placeLinkOrEmbed\";\n    /**\n     * Link Assets mode that is primarily used with XD. This mode is not considered a \"Save As\" mode meaning\n     * it's primarily used for \"Opening Documents\" scenarios.\n     * Visible Tabs - Cloud Documents, Shared With You, Convert To Sketch Libraries.\n     */\n    PickerMode[\"linkAssets\"] = \"linkAssets\";\n    /**\n     * The primary mode for users when selecting documents to open. When a document is clicked, it's\n     * selected and then highlights the \"Open\" button so the user can opened the selected document.\n     * This mode is not considered a \"Save As\" view mode.\n     * Visible Tabs - Recent Tab, Cloud Documents Tab, Shared With you tab.\n     */\n    PickerMode[\"open\"] = \"open\";\n    /**\n     * The primary mode for CDP when Saving Documents to the host application. Shows the \"Save As\" header\n     * with an input for the user to type. This mode is unlike \"Opening\" modes in that the users is supposed\n     * to provide a name for the file to be saved. It  shows a \"Save\" Button and no \"On Your Computer\"\n     * buttons. When an item is clicked, we set the Save As Input field to the name of the item that was clicked.\n     */\n    PickerMode[\"saveAs\"] = \"saveAs\";\n    /**\n     * This is another \"Save As\" mode that shoud be identical to PickerMode.saveAs. The main difference\n     * here is for the host app to know when a user invoked Save As Copy instead of just a plain\n     * Save As. When an item is clicked, we set the Save As Input field to the name of the item that was clicked.\n     */\n    PickerMode[\"saveAsCopy\"] = \"saveAsCopy\";\n    PickerMode[\"saveToFolder\"] = \"saveToFolder\";\n    /**\n     * This is another \"Save As\" mode that shoud be similar (not identical) to PickerMode.saveAs. Header and\n     * primaryButton labels will display 'export' specific labelling. Like \"Save As\", user can update the name of\n     * exported asset and choose the export format.\n     */\n    PickerMode[\"export\"] = \"export\";\n    /**\n     * Copy items to Projects or Cloud Documents.\n     */\n    PickerMode[\"copy\"] = \"copy\";\n    /**\n     * Generic move for moving items to new location.\n     */\n    PickerMode[\"move\"] = \"move\";\n    /**\n     * Move item(s) to a target location. (e.g. assets from Files to Projects)\n     */\n    PickerMode[\"moveFrom\"] = \"moveFrom\";\n    /**\n     * Generic mode for selecting an asset and returning it to the caller\n     */\n    PickerMode[\"add\"] = \"add\";\n})(PickerMode || (PickerMode = {}));\nexport var GetBlockedAssetsResponse;\n(function (GetBlockedAssetsResponse) {\n    /**\n     * Proceed with the operation\n     */\n    GetBlockedAssetsResponse[\"Ok\"] = \"ok\";\n    /**\n     * Skip the operation for this asset, perhaps because the host application\n     * performs the operation instead, or the operation is not supported or\n     * some other reason\n     */\n    GetBlockedAssetsResponse[\"Cancel\"] = \"cancel\";\n    /**\n     * Skip the operation for this asset, and notify the user that it could not\n     * be performed because the asset is open in the host application\n     */\n    GetBlockedAssetsResponse[\"CancelBecauseOpen\"] = \"cancel-open\";\n})(GetBlockedAssetsResponse || (GetBlockedAssetsResponse = {}));\nexport var Capability;\n(function (Capability) {\n    Capability[\"ShareSheetInvite\"] = \"invite\";\n    Capability[\"ShareSheetLink\"] = \"getLink\";\n    Capability[\"ShareSheetAction\"] = \"share\";\n})(Capability || (Capability = {}));\n","export var AssetSyncStatus;\n(function (AssetSyncStatus) {\n    AssetSyncStatus[AssetSyncStatus[\"InSync\"] = 0] = \"InSync\";\n    AssetSyncStatus[AssetSyncStatus[\"OutOfSync\"] = 1] = \"OutOfSync\";\n    AssetSyncStatus[AssetSyncStatus[\"SyncConflict\"] = 2] = \"SyncConflict\";\n    AssetSyncStatus[AssetSyncStatus[\"SyncError\"] = 3] = \"SyncError\";\n    AssetSyncStatus[AssetSyncStatus[\"Syncing\"] = 4] = \"Syncing\";\n})(AssetSyncStatus || (AssetSyncStatus = {}));\nexport var AssetSyncSuspensionReason;\n(function (AssetSyncSuspensionReason) {\n    AssetSyncSuspensionReason[AssetSyncSuspensionReason[\"None\"] = 0] = \"None\";\n    AssetSyncSuspensionReason[AssetSyncSuspensionReason[\"CloudContentCorrupted\"] = 1] = \"CloudContentCorrupted\";\n    AssetSyncSuspensionReason[AssetSyncSuspensionReason[\"LocalContentCorrupted\"] = 2] = \"LocalContentCorrupted\";\n    AssetSyncSuspensionReason[AssetSyncSuspensionReason[\"HasTooManyComponents\"] = 3] = \"HasTooManyComponents\";\n    AssetSyncSuspensionReason[AssetSyncSuspensionReason[\"HasTooManyChildren\"] = 4] = \"HasTooManyChildren\";\n    AssetSyncSuspensionReason[AssetSyncSuspensionReason[\"MaximumSizeExceeded\"] = 5] = \"MaximumSizeExceeded\";\n    AssetSyncSuspensionReason[AssetSyncSuspensionReason[\"Unknown\"] = 6] = \"Unknown\";\n})(AssetSyncSuspensionReason || (AssetSyncSuspensionReason = {}));\n/**\n * Response from the server for the commit request.\n **/\nexport var CommitStatus;\n(function (CommitStatus) {\n    CommitStatus[CommitStatus[\"NoErr\"] = 0] = \"NoErr\";\n    CommitStatus[CommitStatus[\"Conflict\"] = 1] = \"Conflict\";\n    CommitStatus[CommitStatus[\"DeleteConflict\"] = 2] = \"DeleteConflict\";\n    CommitStatus[CommitStatus[\"ParentDeletedConflict\"] = 3] = \"ParentDeletedConflict\";\n})(CommitStatus || (CommitStatus = {}));\n","export var CloudSyncStatus;\n(function (CloudSyncStatus) {\n    CloudSyncStatus[CloudSyncStatus[\"Initializing\"] = 0] = \"Initializing\";\n    CloudSyncStatus[CloudSyncStatus[\"Offline\"] = 1] = \"Offline\";\n    CloudSyncStatus[CloudSyncStatus[\"NotStarted\"] = 2] = \"NotStarted\";\n    CloudSyncStatus[CloudSyncStatus[\"Disabled\"] = 3] = \"Disabled\";\n    CloudSyncStatus[CloudSyncStatus[\"Synchronized\"] = 4] = \"Synchronized\";\n    CloudSyncStatus[CloudSyncStatus[\"InProgress\"] = 5] = \"InProgress\";\n    CloudSyncStatus[CloudSyncStatus[\"ErrorQuotaExceeded\"] = 6] = \"ErrorQuotaExceeded\";\n    CloudSyncStatus[CloudSyncStatus[\"ErrorSyncDown\"] = 7] = \"ErrorSyncDown\";\n    CloudSyncStatus[CloudSyncStatus[\"ErrorOther\"] = 8] = \"ErrorOther\";\n})(CloudSyncStatus || (CloudSyncStatus = {}));\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2024 Adobe Systems Incorporated\n *  All Rights Reserved.\n *\n * NOTICE:  All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any.  The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\n/**\n * Enum for network status currently only used with the Native Bindings\n * so this has been migrated from AssetContext to help avoid importing\n * AssetContext directly instead of by type.\n *\n * @note Must be kept in sync with NetworkStatus in AssetContext.h\n */\nexport var NetworkStatus;\n(function (NetworkStatus) {\n    NetworkStatus[NetworkStatus[\"Offline\"] = 0] = \"Offline\";\n    NetworkStatus[NetworkStatus[\"Wan\"] = 1] = \"Wan\";\n    NetworkStatus[NetworkStatus[\"Cellular\"] = 2] = \"Cellular\";\n    NetworkStatus[NetworkStatus[\"OnlineUnknown\"] = 3] = \"OnlineUnknown\";\n})(NetworkStatus || (NetworkStatus = {}));\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2025 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\nexport var PostType;\n(function (PostType) {\n    PostType[\"Text\"] = \"text\";\n    PostType[\"AssetLink\"] = \"assetLink\";\n})(PostType || (PostType = {}));\nexport var BoardMemberRole;\n(function (BoardMemberRole) {\n    BoardMemberRole[\"OWNER\"] = \"OWNER\";\n    BoardMemberRole[\"POSTER\"] = \"POSTER\";\n    BoardMemberRole[\"VIEWER\"] = \"VIEWER\";\n    BoardMemberRole[\"UNKNOWN\"] = \"UNKNOWN\";\n})(BoardMemberRole || (BoardMemberRole = {}));\nexport var BoardType;\n(function (BoardType) {\n    BoardType[\"CLASSROOM\"] = \"classroom\";\n})(BoardType || (BoardType = {}));\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe Systems Incorporated\n *  All Rights Reserved.\n *\n * NOTICE:  All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any.  The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\nexport var AvatarSizes;\n(function (AvatarSizes) {\n    AvatarSizes[\"Size50\"] = \"50\";\n    AvatarSizes[\"Size100\"] = \"100\";\n    AvatarSizes[\"Size115\"] = \"115\";\n    AvatarSizes[\"Size230\"] = \"230\";\n    AvatarSizes[\"Size138\"] = \"138\";\n    AvatarSizes[\"Size276\"] = \"276\";\n})(AvatarSizes || (AvatarSizes = {}));\n","export var Env;\n(function (Env) {\n    Env[Env[\"Stage\"] = 0] = \"Stage\";\n    Env[Env[\"Production\"] = 1] = \"Production\";\n})(Env || (Env = {}));\n","export var AssetListStatus;\n(function (AssetListStatus) {\n    AssetListStatus[AssetListStatus[\"NotStarted\"] = 1] = \"NotStarted\";\n    AssetListStatus[AssetListStatus[\"HadLoaderErrors\"] = 2] = \"HadLoaderErrors\";\n    AssetListStatus[AssetListStatus[\"Loading\"] = 3] = \"Loading\";\n    AssetListStatus[AssetListStatus[\"ReadyHasMorePages\"] = 4] = \"ReadyHasMorePages\";\n    AssetListStatus[AssetListStatus[\"ReadyFullyLoaded\"] = 5] = \"ReadyFullyLoaded\";\n})(AssetListStatus || (AssetListStatus = {}));\n","export var OrderDirection;\n(function (OrderDirection) {\n    OrderDirection[OrderDirection[\"Ascending\"] = 0] = \"Ascending\";\n    OrderDirection[OrderDirection[\"Descending\"] = 1] = \"Descending\";\n})(OrderDirection || (OrderDirection = {}));\nexport var OrderField;\n(function (OrderField) {\n    OrderField[OrderField[\"Name\"] = 0] = \"Name\";\n    OrderField[OrderField[\"Modified\"] = 1] = \"Modified\";\n    OrderField[OrderField[\"Created\"] = 2] = \"Created\";\n    OrderField[OrderField[\"Shared\"] = 3] = \"Shared\";\n})(OrderField || (OrderField = {}));\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2021 Adobe Systems Incorporated\n *  All Rights Reserved.\n *\n * NOTICE:  All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any.  The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\nexport var LogLevel;\n(function (LogLevel) {\n    LogLevel[LogLevel[\"Off\"] = 0] = \"Off\";\n    LogLevel[LogLevel[\"Err\"] = 1] = \"Err\";\n    LogLevel[LogLevel[\"Warn\"] = 2] = \"Warn\";\n    LogLevel[LogLevel[\"Info\"] = 3] = \"Info\";\n    LogLevel[LogLevel[\"Debug\"] = 4] = \"Debug\";\n})(LogLevel || (LogLevel = {}));\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2021 Adobe Systems Incorporated\n *  All Rights Reserved.\n *\n * NOTICE:  All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any.  The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\nexport var SAMErrorCode;\n(function (SAMErrorCode) {\n    SAMErrorCode[SAMErrorCode[\"UNKNOWN\"] = 1] = \"UNKNOWN\";\n    SAMErrorCode[SAMErrorCode[\"FULL_LOCAL_DISK_SPACE\"] = 2] = \"FULL_LOCAL_DISK_SPACE\";\n    SAMErrorCode[SAMErrorCode[\"FULL_CLOUD_STORAGE\"] = 3] = \"FULL_CLOUD_STORAGE\";\n    SAMErrorCode[SAMErrorCode[\"DEVICE_OFFLINE\"] = 4] = \"DEVICE_OFFLINE\";\n    SAMErrorCode[SAMErrorCode[\"NETWORK_ERROR\"] = 5] = \"NETWORK_ERROR\";\n    SAMErrorCode[SAMErrorCode[\"REQUEST_TIMED_OUT\"] = 6] = \"REQUEST_TIMED_OUT\";\n    SAMErrorCode[SAMErrorCode[\"USER_CANCELLED\"] = 7] = \"USER_CANCELLED\";\n    SAMErrorCode[SAMErrorCode[\"CORESYNC_FAILURE\"] = 8] = \"CORESYNC_FAILURE\";\n    /**\n     * CoreSync is in a paused state.\n     */\n    SAMErrorCode[SAMErrorCode[\"SYNC_PAUSED\"] = 9] = \"SYNC_PAUSED\";\n    SAMErrorCode[SAMErrorCode[\"USER_ALREADY_REGISTERED\"] = 10] = \"USER_ALREADY_REGISTERED\";\n    SAMErrorCode[SAMErrorCode[\"PENDING_UNCOMMITTED_CHANGES_FROM_THIS_APP\"] = 11] = \"PENDING_UNCOMMITTED_CHANGES_FROM_THIS_APP\";\n    SAMErrorCode[SAMErrorCode[\"PENDING_UNCOMMITTED_CHANGES_FROM_ANOTHER_APP\"] = 12] = \"PENDING_UNCOMMITTED_CHANGES_FROM_ANOTHER_APP\";\n    SAMErrorCode[SAMErrorCode[\"INTERNAL_ERROR\"] = 13] = \"INTERNAL_ERROR\";\n    SAMErrorCode[SAMErrorCode[\"OPERATION_IGNORED\"] = 14] = \"OPERATION_IGNORED\";\n    /**\n     * Indicates that the request could not be processed because of conflict\n     * in the current state of the resource.\n     * <br>Client Action: Resolve conflict and try again.\n     */\n    SAMErrorCode[SAMErrorCode[\"CONFLICT\"] = 15] = \"CONFLICT\";\n    /**\n     * Happens when interacting with an asset the user no longer has access to.\n     */\n    SAMErrorCode[SAMErrorCode[\"ACCESS_DENIED\"] = 16] = \"ACCESS_DENIED\";\n    SAMErrorCode[SAMErrorCode[\"UNSUPPORTED\"] = 17] = \"UNSUPPORTED\";\n    SAMErrorCode[SAMErrorCode[\"ASSET_NOT_IN_SYNC\"] = 18] = \"ASSET_NOT_IN_SYNC\";\n    SAMErrorCode[SAMErrorCode[\"BAD_REQUEST\"] = 19] = \"BAD_REQUEST\";\n    /**\n     * Happens if asset failed to sync.\n     * There are associated sub-codes relating to this error which may have\n     * more information\n     */\n    SAMErrorCode[SAMErrorCode[\"SYNC_ERROR\"] = 20] = \"SYNC_ERROR\";\n    /**\n     * Happens if requests is made for an asset that cannot be found.\n     */\n    SAMErrorCode[SAMErrorCode[\"NOT_FOUND\"] = 21] = \"NOT_FOUND\";\n    /**\n     * Happens when there is authorization error while performing the request\n     * for e.g. if requests are made which require user to be registered with\n     * ACPL, but user is not registered.\n     */\n    SAMErrorCode[SAMErrorCode[\"AUTHORIZATION_ERROR\"] = 22] = \"AUTHORIZATION_ERROR\";\n    /**\n     * Happens while performing an invalid operation for e.g. when attempting\n     * to migrate an asset to RepoNaming that has already been migrated\n     */\n    SAMErrorCode[SAMErrorCode[\"INVALID_OPERATION\"] = 23] = \"INVALID_OPERATION\";\n    /**\n     * Happens when a method is called on a asset that require that the\n     * asset have a context, but none is present or the asset does not\n     * belong to specified context.\n     */\n    SAMErrorCode[SAMErrorCode[\"INVALID_CONTEXT\"] = 24] = \"INVALID_CONTEXT\";\n    /**\n     * An error occured during committing changes.\n     * Error sub-code may have more information around this\n     */\n    SAMErrorCode[SAMErrorCode[\"COMMIT_ERROR\"] = 25] = \"COMMIT_ERROR\";\n    /**\n     *  Parent not found for the asset\n     */\n    SAMErrorCode[SAMErrorCode[\"PARENT_NOT_FOUND\"] = 26] = \"PARENT_NOT_FOUND\";\n    /**\n     * Parent folder is discarded\n     */\n    SAMErrorCode[SAMErrorCode[\"PARENT_DISCARDED\"] = 27] = \"PARENT_DISCARDED\";\n    /**\n     * Project limit exceeded\n     */\n    SAMErrorCode[SAMErrorCode[\"PROJECT_LIMIT_EXCEEDED\"] = 28] = \"PROJECT_LIMIT_EXCEEDED\";\n    /**\n     * The user or organization is not provisioned\n     * for the requested service access.\n     */\n    SAMErrorCode[SAMErrorCode[\"SERVICE_NOT_PROVISIONED\"] = 29] = \"SERVICE_NOT_PROVISIONED\";\n    /**\n     * Transfer of ownership of assets is disabled.\n     */\n    SAMErrorCode[SAMErrorCode[\"TRANSFER_OF_OWNERSHIP_DISABLED\"] = 30] = \"TRANSFER_OF_OWNERSHIP_DISABLED\";\n    /**\n     * Moves of assets by external users out of the organization are disallowed.\n     */\n    SAMErrorCode[SAMErrorCode[\"MOVES_FROM_ORG_DISALLOWED\"] = 31] = \"MOVES_FROM_ORG_DISALLOWED\";\n})(SAMErrorCode || (SAMErrorCode = {}));\nexport var SAMErrorSubCode;\n(function (SAMErrorSubCode) {\n    SAMErrorSubCode[SAMErrorSubCode[\"NONE\"] = 0] = \"NONE\";\n    SAMErrorSubCode[SAMErrorSubCode[\"CORESYNC_NOT_REACHABLE\"] = 1] = \"CORESYNC_NOT_REACHABLE\";\n    SAMErrorSubCode[SAMErrorSubCode[\"CORESYNC_NOT_COMPATIBLE\"] = 2] = \"CORESYNC_NOT_COMPATIBLE\";\n    /**\n     * Happens if CoreSync binary is not present.  Ask end user install coresync\n     */\n    SAMErrorSubCode[SAMErrorSubCode[\"CORESYNC_BINARY_NOT_FOUND\"] = 3] = \"CORESYNC_BINARY_NOT_FOUND\";\n    /**\n     * Happens if CoreSync is not installed. Ask end user to install/upgrade coresync.\n     */\n    SAMErrorSubCode[SAMErrorSubCode[\"CORESYNC_NOT_INSTALLED\"] = 4] = \"CORESYNC_NOT_INSTALLED\";\n    /**\n     * Happens if asset failed to sync. Sync will be retried by ACPL.\n     * Cient may wait for subsequent sync notification for the asset or retry\n     * the operation.\n     */\n    SAMErrorSubCode[SAMErrorSubCode[\"SYNC_FAILED\"] = 5] = \"SYNC_FAILED\";\n    /**\n     * Syncing the asset failed due to an EditEdit conflict, but the conflict\n     * was resolved\n     */\n    SAMErrorSubCode[SAMErrorSubCode[\"SYNC_FAILED_EDIT_EDIT_RESOLVED\"] = 6] = \"SYNC_FAILED_EDIT_EDIT_RESOLVED\";\n    /**\n     * Syncing the asset failed due to an EditDelete conflict, but the conflict\n     * was resolved\n     */\n    SAMErrorSubCode[SAMErrorSubCode[\"SYNC_FAILED_EDIT_DELETE_RESOLVED\"] = 7] = \"SYNC_FAILED_EDIT_DELETE_RESOLVED\";\n    /**\n     * An error occured while moving an orphan to the root folder.\n     */\n    SAMErrorSubCode[SAMErrorSubCode[\"COMMIT_ON_ORPHAN_ERROR\"] = 8] = \"COMMIT_ON_ORPHAN_ERROR\";\n    /**\n     * Admin disabled creation of Projects\n     * https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=assetscollab&title=Proposal%3A+Project+API+V3+-+Capability\n     */\n    SAMErrorSubCode[SAMErrorSubCode[\"PROJECTS_ADMIN_ONLY\"] = 9] = \"PROJECTS_ADMIN_ONLY\";\n    /**\n     * 404 specific projects errors.\n     * https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=assetscollab&title=Proposal%3A+Project+API+V3+-+Capability\n     */\n    SAMErrorSubCode[SAMErrorSubCode[\"PROJECTS_INVALID_REPOSITORY\"] = 10] = \"PROJECTS_INVALID_REPOSITORY\";\n    SAMErrorSubCode[SAMErrorSubCode[\"PROJECTS_NO_HOME_REPOSITORY\"] = 11] = \"PROJECTS_NO_HOME_REPOSITORY\";\n})(SAMErrorSubCode || (SAMErrorSubCode = {}));\nexport var ProblemType;\n(function (ProblemType) {\n    ProblemType[\"LIMIT_CHANGELOGRETENTION\"] = \"http://ns.adobe.com/adobecloud/problem/limit/changelogretention\";\n    ProblemType[\"OPERATION_FAILED\"] = \"adobecloud/problem/operation_failed\";\n    ProblemType[\"SUBSCRIPTION_COUNT\"] = \"http://ns.adobe.com/adobecloud/problem/limit/subscriptioncount\";\n    ProblemType[\"QUOTA_EXCEEDED\"] = \"http://ns.adobe.com/adobecloud/problem/quotaexceeded\";\n    ProblemType[\"CHILDREN_LIMIT_EXCEEDED\"] = \"http://ns.adobe.com/adobecloud/problem/limit/childrencount\";\n    ProblemType[\"NO_HOME_REPOSITORY\"] = \"http://ns.adobe.com/projects/problem/no-home-repository\";\n    ProblemType[\"INVALID_HOME_REPOSITORY\"] = \"http://ns.adobe.com/projects/problem/invalid-repository\";\n    ProblemType[\"ADMIN_ONLY\"] = \"http://ns.adobe.com/projects/problem/admin-only\";\n    ProblemType[\"ACCESS_DENIED\"] = \"http://ns.adobe.com/adobecloud/problem/accessdenied\";\n})(ProblemType || (ProblemType = {}));\nexport const SAMErrorName = 'SAMError';\n","export var IFrameioAuthenticationStatus;\n(function (IFrameioAuthenticationStatus) {\n    IFrameioAuthenticationStatus[IFrameioAuthenticationStatus[\"authLoggedOut\"] = 0] = \"authLoggedOut\";\n    IFrameioAuthenticationStatus[IFrameioAuthenticationStatus[\"authLoggedIn\"] = 1] = \"authLoggedIn\";\n    IFrameioAuthenticationStatus[IFrameioAuthenticationStatus[\"authExpired\"] = 2] = \"authExpired\";\n})(IFrameioAuthenticationStatus || (IFrameioAuthenticationStatus = {}));\n","export var CustomModelPublishedState;\n(function (CustomModelPublishedState) {\n    CustomModelPublishedState[\"DRAFT\"] = \"draft\";\n    CustomModelPublishedState[\"READY\"] = \"ready\";\n    CustomModelPublishedState[\"PUBLISHED\"] = \"published\";\n    CustomModelPublishedState[\"UNPUBLISHED\"] = \"unpublished\";\n    CustomModelPublishedState[\"QUEUED\"] = \"queued\";\n    CustomModelPublishedState[\"TRAINING\"] = \"training\";\n    CustomModelPublishedState[\"FAILED\"] = \"failed\";\n    CustomModelPublishedState[\"CANCELLED\"] = \"cancelled\";\n    CustomModelPublishedState[\"ALL\"] = \"all\";\n})(CustomModelPublishedState || (CustomModelPublishedState = {}));\nexport var CustomModelOrderBy;\n(function (CustomModelOrderBy) {\n    CustomModelOrderBy[\"MODIFY_DATE\"] = \"modifyDate\";\n    CustomModelOrderBy[\"CREATE_DATE\"] = \"createDate\";\n    CustomModelOrderBy[\"NAME\"] = \"name\";\n})(CustomModelOrderBy || (CustomModelOrderBy = {}));\n","export var CustomModelPublishedState;\n(function (CustomModelPublishedState) {\n    CustomModelPublishedState[\"NEVER\"] = \"never\";\n    CustomModelPublishedState[\"PUBLISHED\"] = \"published\";\n    CustomModelPublishedState[\"UNPUBLISHED\"] = \"unpublished\";\n    /**\n     * @deprecated use {@link PUBLISHED} | {@link UNPUBLISHED} | {@link NEVER}\n     */\n    CustomModelPublishedState[\"DRAFT\"] = \"draft\";\n    /**\n     * @deprecated use {@link PUBLISHED} | {@link UNPUBLISHED} | {@link NEVER}\n     */\n    CustomModelPublishedState[\"READY\"] = \"ready\";\n    /**\n     * @deprecated use {@link PUBLISHED} | {@link UNPUBLISHED} | {@link NEVER}\n     */\n    CustomModelPublishedState[\"QUEUED\"] = \"queued\";\n    /**\n     * @deprecated use {@link PUBLISHED} | {@link UNPUBLISHED} | {@link NEVER}\n     */\n    CustomModelPublishedState[\"TRAINING\"] = \"training\";\n    /**\n     * @deprecated use {@link PUBLISHED} | {@link UNPUBLISHED} | {@link NEVER}\n     */\n    CustomModelPublishedState[\"FAILED\"] = \"failed\";\n    /**\n     * @deprecated use {@link PUBLISHED} | {@link UNPUBLISHED} | {@link NEVER}\n     */\n    CustomModelPublishedState[\"CANCELLED\"] = \"cancelled\";\n    /**\n     * @deprecated use {@link PUBLISHED} | {@link UNPUBLISHED} | {@link NEVER}\n     */\n    CustomModelPublishedState[\"ALL\"] = \"all\";\n})(CustomModelPublishedState || (CustomModelPublishedState = {}));\nexport var CustomModelOrderBy;\n(function (CustomModelOrderBy) {\n    CustomModelOrderBy[\"MODIFY_DATE\"] = \"modified_date\";\n    CustomModelOrderBy[\"CREATE_DATE\"] = \"created_date\";\n    CustomModelOrderBy[\"NAME\"] = \"name\";\n})(CustomModelOrderBy || (CustomModelOrderBy = {}));\n","export var RelType;\n(function (RelType) {\n    RelType[\"PRIMARY\"] = \"http://ns.adobe.com/adobecloud/rel/primary\";\n    RelType[\"ID\"] = \"http://ns.adobe.com/adobecloud/rel/id\";\n    RelType[\"PATH\"] = \"http://ns.adobe.com/adobecloud/rel/path\";\n    RelType[\"RENDITION\"] = \"http://ns.adobe.com/adobecloud/rel/rendition\";\n    RelType[\"COMPONENT_RENDITION\"] = \"http://ns.adobe.com/adobecloud/rel/componentRendition\";\n    RelType[\"MANIFEST\"] = \"http://ns.adobe.com/adobecloud/rel/manifest\";\n    RelType[\"QUOTA\"] = \"http://ns.adobe.com/adobecloud/rel/quota\";\n    RelType[\"COMPONENT\"] = \"http://ns.adobe.com/adobecloud/rel/component\";\n    RelType[\"PAGE\"] = \"http://ns.adobe.com/adobecloud/rel/page\";\n    RelType[\"DISCARD\"] = \"http://ns.adobe.com/adobecloud/rel/discard\";\n    RelType[\"RESTORE\"] = \"http://ns.adobe.com/adobecloud/rel/restore\";\n    RelType[\"DIRECTORY\"] = \"http://ns.adobe.com/adobecloud/rel/directory\";\n    RelType[\"DIRECTORY_BASE\"] = \"http://ns.adobe.com/adobecloud/rel/directory/base\";\n    RelType[\"AC_EFFECTIVE\"] = \"http://ns.adobe.com/adobecloud/rel/ac/effective\";\n    RelType[\"AC_POLICY\"] = \"http://ns.adobe.com/adobecloud/rel/ac/policy\";\n    RelType[\"AC_CHECK\"] = \"http://ns.adobe.com/adobecloud/rel/ac/check\";\n    RelType[\"CREATE\"] = \"http://ns.adobe.com/adobecloud/rel/create\";\n    RelType[\"REPOSITORY\"] = \"http://ns.adobe.com/adobecloud/rel/repository\";\n    RelType[\"RESOLVE_ID\"] = \"http://ns.adobe.com/adobecloud/rel/resolve/id\";\n    RelType[\"RESOLVE_PATH\"] = \"http://ns.adobe.com/adobecloud/rel/resolve/path\";\n    RelType[\"OPS\"] = \"http://ns.adobe.com/adobecloud/rel/ops\";\n    RelType[\"BLOCK_INITIALIZE\"] = \"http://ns.adobe.com/adobecloud/rel/block/init\";\n    RelType[\"BLOCK_TRANSFER\"] = \"http://ns.adobe.com/adobecloud/rel/block/transfer\";\n    RelType[\"BLOCK_FINALIZE\"] = \"http://ns.adobe.com/adobecloud/rel/block/finalize\";\n    RelType[\"REPO_METADATA\"] = \"http://ns.adobe.com/adobecloud/rel/metadata/repository\";\n    RelType[\"APP_METADATA\"] = \"http://ns.adobe.com/adobecloud/rel/metadata/application\";\n    RelType[\"EMBEDDED_METADATA\"] = \"http://ns.adobe.com/adobecloud/rel/metadata/embedded\";\n    RelType[\"PERUSER_METADATA\"] = \"http://ns.adobe.com/adobecloud/rel/metadata/peruser\";\n    RelType[\"ANNOTATIONS\"] = \"http://ns.adobe.com/adobecloud/rel/annotations\";\n    RelType[\"DOWNLOAD\"] = \"http://ns.adobe.com/adobecloud/rel/download\";\n    RelType[\"DESCRIBED_BY\"] = \"describedBy\";\n    RelType[\"VERSION\"] = \"version-history\";\n    RelType[\"SUBSCRIPTION_CREATE\"] = \"subscription/create\";\n    RelType[\"NOTIFICATIONS_LONGPOLL\"] = \"notifications/longpoll\";\n    RelType[\"ONS_CHANGELOG\"] = \"ons/changelog\";\n    RelType[\"REPOSITORIES_PAGE\"] = \"http://ns.adobe.com/repositories/rel/page\";\n    RelType[\"TEAMS_CREATE\"] = \"http://ns.adobe.com/teams/rel/create\";\n    RelType[\"TEAMS_DISCARD\"] = \"http://ns.adobe.com/teams/rel/discard\";\n    RelType[\"TEAMS_RESTORE\"] = \"http://ns.adobe.com/teams/rel/restore\";\n    RelType[\"TEAMS_RENAME\"] = \"http://ns.adobe.com/teams/rel/rename\";\n    RelType[\"TEAMS_PROPERTIES\"] = \"http://ns.adobe.com/teams/rel/properties\";\n    RelType[\"TEAMS_PAGE\"] = \"http://ns.adobe.com/teams/rel/page\";\n    RelType[\"TEAMS_PRIMARY\"] = \"http://ns.adobe.com/teams/rel/primary\";\n    RelType[\"TEAM_PROVISION\"] = \"http://ns.adobe.com/teams/rel/provision\";\n    RelType[\"WORKSPACES_CONTEXT\"] = \"http://ns.adobe.com/ccprojects/rel/context\";\n    RelType[\"WORKSPACES_BOOKMARKS_BATCH\"] = \"http://ns.adobe.com/ccprojects/rel/bookmarks/batch\";\n    RelType[\"WORKSPACES_PRIMARY\"] = \"http://ns.adobe.com/ccprojects/rel/primary\";\n    RelType[\"WORKSPACES_CREATE\"] = \"http://ns.adobe.com/ccprojects/rel/create\";\n    RelType[\"WORKSPACES_PAGE\"] = \"http://ns.adobe.com/ccprojects/rel/page\";\n    RelType[\"PROJECTS_LIBRARIES_PAGE\"] = \"http://ns.adobe.com/ccprojects/rel/libraries/page\";\n    RelType[\"PROJECTS_LIBRARIES_CREATE\"] = \"http://ns.adobe.com/ccprojects/rel/libraries/create\";\n    RelType[\"PROJECTS_LIBRARIES_BATCH\"] = \"http://ns.adobe.com/ccprojects/rel/libraries/batch\";\n    RelType[\"GENERIC_PAGE\"] = \"page\";\n    RelType[\"GENERIC_NEXT\"] = \"next\";\n    RelType[\"ATS_MOVE\"] = \"http://ns.adobe.com/ats/rel/move\";\n    RelType[\"REVIEW_SERVICE_PROVISION\"] = \"http://ns.adobe.com/ccassetreview/rel/provision\";\n    RelType[\"REVIEW_SERVICE_DISCARD\"] = \"http://ns.adobe.com/ccassetreview/rel/discard\";\n    RelType[\"REVIEW_SERVICE_OUTPUTS\"] = \"http://ns.adobe.com/ccassetreview/rel/outputs\";\n    RelType[\"REVIEW_SERIVCE_HAS_OUTPUTS\"] = \"http://ns.adobe.com/ccassetreview/rel/hasoutputs\";\n    RelType[\"PROJECTS_CONTEXT\"] = \"http://ns.adobe.com/projects/rel/context\";\n    RelType[\"PROJECTS_PRIMARY\"] = \"http://ns.adobe.com/projects/rel/primary\";\n    RelType[\"PROJECTS_COLLECTION\"] = \"http://ns.adobe.com/projects/rel/collection\";\n    RelType[\"PROJECTS_CREATE\"] = \"http://ns.adobe.com/projects/rel/create\";\n    RelType[\"PROJECTS_RENAME\"] = \"http://ns.adobe.com/projects/rel/rename\";\n    RelType[\"PROJECTS_CREATOR\"] = \"http://ns.adobe.com/projects/rel/creator\";\n    RelType[\"PROJECTS_GRADIENTS_COLLECTION\"] = \"http://ns.adobe.com/gradients/rel/collection\";\n    RelType[\"PROJECTS_CAPABILITY\"] = \"http://ns.adobe.com/projects/rel/capability\";\n    RelType[\"ORGANIZATIONS_COLLECTION\"] = \"http://ns.adobe.com/organizations/rel/collection\";\n    RelType[\"PROJECTS_RECENT\"] = \"http://ns.adobe.com/projects/rel/recent\";\n    RelType[\"PROJECTS_REFERENCE_CREATE\"] = \"http://ns.adobe.com/projects/rel/references/create\";\n    RelType[\"PROJECTS_REFERENCE_PRIMARY\"] = \"http://ns.adobe.com/projects/rel/references/primary\";\n    RelType[\"ASSIGNMENTS_ASSIGN\"] = \"http://ns.adobe.com/assignments/rel/assign\";\n    RelType[\"ASSIGNMENTS_CODE\"] = \"http://ns.adobe.com/assignments/rel/code\";\n    RelType[\"ASSIGNMENTS_COLLECTION\"] = \"http://ns.adobe.com/assignments/rel/collection\";\n    RelType[\"ASSIGNMENTS_CREATE\"] = \"http://ns.adobe.com/assignments/rel/create\";\n    RelType[\"ASSIGNMENTS_PRIMARY\"] = \"http://ns.adobe.com/assignments/rel/primary\";\n    RelType[\"ASSIGNMENTS_RETURN\"] = \"http://ns.adobe.com/assignments/rel/return\";\n    RelType[\"ASSIGNMENTS_START\"] = \"http://ns.adobe.com/assignments/rel/start\";\n    RelType[\"ASSIGNMENTS_SUBMIT\"] = \"http://ns.adobe.com/assignments/rel/submit\";\n    RelType[\"STUDENT_ASSIGNMENTS_COLLECTION\"] = \"http://ns.adobe.com/studentAssignments/rel/collection\";\n    RelType[\"STUDENT_ASSIGNMENTS_PRIMARY\"] = \"http://ns.adobe.com/studentAssignments/rel/primary\";\n})(RelType || (RelType = {}));\n","import { RelType } from './LinkUtils.js';\nexport var IProjectPatchKeys;\n(function (IProjectPatchKeys) {\n    IProjectPatchKeys[\"GRADIENT_ID\"] = \"/project:rendition/gradientId\";\n})(IProjectPatchKeys || (IProjectPatchKeys = {}));\nexport var ProjectViews;\n(function (ProjectViews) {\n    /**\n     * Combination of Projects returned from yours and sharedWithYou.\n     */\n    ProjectViews[ProjectViews[\"All\"] = 0] = \"All\";\n    /**\n     *  Only the Projects that are considered yours:\n     *  For CCI profile, only the projects within /projects directory are returned.\n     *  For CCT/CCE profile, a combination of projects within the assigned user storage for the profile,\n     *  and the shared storage of Org are returned. If the profile only has access to the\n     *  Project via inheritance or through orgEverybody group, then it will not be included.\n     */\n    ProjectViews[ProjectViews[\"Yours\"] = 1] = \"Yours\";\n    /**\n     * Only the Projects that are shared with the requestor. For both CCI and CCT/CCE profiles,\n     * the collection would be the negation of yours with the exception that the Projects shared\n     * via orgEverybody group are still not included.\n     */\n    ProjectViews[ProjectViews[\"SWY\"] = 2] = \"SWY\";\n    /**\n     * The full list of Projects regardless of how it is accessed. This includes Projects accessible\n     * via inheritance and shared via orgEverybody group.\n     */\n    ProjectViews[ProjectViews[\"Admin\"] = 3] = \"Admin\";\n    /**\n     * All projects that match a particluar organization specified in ProjectFilter.organizationID\n     */\n    ProjectViews[ProjectViews[\"Organization\"] = 4] = \"Organization\";\n    /**\n     * The list of recent projects. This is determined by the lastAccessedDate of the project.\n     */\n    ProjectViews[ProjectViews[\"Recent\"] = 5] = \"Recent\";\n})(ProjectViews || (ProjectViews = {}));\nexport var ProjectCapabilities;\n(function (ProjectCapabilities) {\n    ProjectCapabilities[\"CREATE\"] = \"create\";\n})(ProjectCapabilities || (ProjectCapabilities = {}));\nexport var ProjectLeaveReason;\n(function (ProjectLeaveReason) {\n    ProjectLeaveReason[ProjectLeaveReason[\"PENDING\"] = 0] = \"PENDING\";\n    ProjectLeaveReason[ProjectLeaveReason[\"CAN_LEAVE\"] = 1] = \"CAN_LEAVE\";\n    /**\n     * All false reasons.\n     */\n    ProjectLeaveReason[ProjectLeaveReason[\"CANNOT_LEAVE_NO_COLLABORATORS\"] = 2] = \"CANNOT_LEAVE_NO_COLLABORATORS\";\n    ProjectLeaveReason[ProjectLeaveReason[\"CANNOT_LEAVE_ADDRESS_BOOK_GROUP_MEMBER\"] = 3] = \"CANNOT_LEAVE_ADDRESS_BOOK_GROUP_MEMBER\";\n    ProjectLeaveReason[ProjectLeaveReason[\"CANNOT_LEAVE_LAST_COLLABORATOR\"] = 4] = \"CANNOT_LEAVE_LAST_COLLABORATOR\";\n    /**\n     * @deprecated -- will be and removed on or after 2024-10-01.\n     */\n    ProjectLeaveReason[ProjectLeaveReason[\"CANNOT_LEAVE_LAST_DIRECT_COLLABORATOR\"] = 5] = \"CANNOT_LEAVE_LAST_DIRECT_COLLABORATOR\";\n    ProjectLeaveReason[ProjectLeaveReason[\"CANNOT_LEAVE_IS_ADMIN_OF_PROJECT\"] = 6] = \"CANNOT_LEAVE_IS_ADMIN_OF_PROJECT\";\n    ProjectLeaveReason[ProjectLeaveReason[\"CANNOT_LEAVE_LAST_DIRECT_COLLAB_WITH_SHARE_PERMISSION\"] = 7] = \"CANNOT_LEAVE_LAST_DIRECT_COLLAB_WITH_SHARE_PERMISSION\";\n    ProjectLeaveReason[ProjectLeaveReason[\"CANNOT_LEAVE_IS_OWNER\"] = 8] = \"CANNOT_LEAVE_IS_OWNER\";\n})(ProjectLeaveReason || (ProjectLeaveReason = {}));\n/**\n * Reasons for why the user can or cannot create a project.\n */\nexport var CanCreateProjectReason;\n(function (CanCreateProjectReason) {\n    CanCreateProjectReason[CanCreateProjectReason[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n    CanCreateProjectReason[CanCreateProjectReason[\"ALLOWED\"] = 1] = \"ALLOWED\";\n    CanCreateProjectReason[CanCreateProjectReason[\"ADMIN_DISABLED\"] = 2] = \"ADMIN_DISABLED\";\n    CanCreateProjectReason[CanCreateProjectReason[\"INVALID_REPOSITORY\"] = 3] = \"INVALID_REPOSITORY\";\n    CanCreateProjectReason[CanCreateProjectReason[\"NO_HOME_REPOSITORY\"] = 4] = \"NO_HOME_REPOSITORY\";\n})(CanCreateProjectReason || (CanCreateProjectReason = {}));\n/**\n * The enumerated values for the `project:directorySubType` metadata field.\n */\nexport var ProjectDirectorySubtype;\n(function (ProjectDirectorySubtype) {\n    ProjectDirectorySubtype[\"WF_PORTFOLIO\"] = \"wfPortfolio\";\n    ProjectDirectorySubtype[\"WF_PROGRAM\"] = \"wfProgram\";\n    ProjectDirectorySubtype[\"WF_PROJECT\"] = \"wfProject\";\n    ProjectDirectorySubtype[\"WF_TEMPLATE\"] = \"wfProjectTemplate\";\n    ProjectDirectorySubtype[\"CC_PROJECTS\"] = \"ccProject\";\n})(ProjectDirectorySubtype || (ProjectDirectorySubtype = {}));\n","var Permission;\n(function (Permission) {\n    Permission[Permission[\"None\"] = 0] = \"None\";\n    Permission[Permission[\"Ack\"] = 1] = \"Ack\";\n    Permission[Permission[\"Read\"] = 2] = \"Read\";\n    Permission[Permission[\"Write\"] = 4] = \"Write\";\n    Permission[Permission[\"Delete\"] = 8] = \"Delete\";\n    Permission[Permission[\"Share\"] = 16] = \"Share\";\n    Permission[Permission[\"Rename\"] = 32] = \"Rename\";\n    Permission[Permission[\"Move\"] = 64] = \"Move\";\n    Permission[Permission[\"Discard\"] = 128] = \"Discard\";\n    Permission[Permission[\"Restore\"] = 256] = \"Restore\";\n    Permission[Permission[\"Duplicate\"] = 512] = \"Duplicate\";\n    Permission[Permission[\"ReadAppMetadata\"] = 1024] = \"ReadAppMetadata\";\n    Permission[Permission[\"WriteComment\"] = 2048] = \"WriteComment\";\n})(Permission || (Permission = {}));\nexport { Permission };\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2024 Adobe Systems Incorporated\n *  All Rights Reserved.\n *\n * NOTICE:  All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any.  The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\nimport { RelType } from './LinkUtils.js';\nexport var AssignmentStatus;\n(function (AssignmentStatus) {\n    AssignmentStatus[\"DRAFT\"] = \"DRAFT\";\n    AssignmentStatus[\"ASSIGNED\"] = \"ASSIGNED\";\n})(AssignmentStatus || (AssignmentStatus = {}));\nexport var AssignmentSubmissionOwnershipEnums;\n(function (AssignmentSubmissionOwnershipEnums) {\n    AssignmentSubmissionOwnershipEnums[\"ANY\"] = \"ANY\";\n    AssignmentSubmissionOwnershipEnums[\"NONE\"] = \"NONE\";\n    AssignmentSubmissionOwnershipEnums[\"SELF\"] = \"SELF\";\n})(AssignmentSubmissionOwnershipEnums || (AssignmentSubmissionOwnershipEnums = {}));\nexport var AssignmentTaskIDEnums;\n(function (AssignmentTaskIDEnums) {\n    AssignmentTaskIDEnums[\"albumCover\"] = \"album-cover\";\n    AssignmentTaskIDEnums[\"animatedCharacter\"] = \"animated-character\";\n    AssignmentTaskIDEnums[\"bannerPrint\"] = \"banner-print\";\n    AssignmentTaskIDEnums[\"bannerWeb\"] = \"banner-web\";\n    AssignmentTaskIDEnums[\"blogGraphic\"] = \"blog-graphic\";\n    AssignmentTaskIDEnums[\"blogHeader\"] = \"blog-header\";\n    AssignmentTaskIDEnums[\"bookCover\"] = \"book-cover\";\n    AssignmentTaskIDEnums[\"bookmark\"] = \"bookmark\";\n    AssignmentTaskIDEnums[\"brochure\"] = \"brochure\";\n    AssignmentTaskIDEnums[\"businessCard\"] = \"business-card\";\n    AssignmentTaskIDEnums[\"calendar\"] = \"calendar\";\n    AssignmentTaskIDEnums[\"cardGreeting\"] = \"card-greeting\";\n    AssignmentTaskIDEnums[\"certificate\"] = \"certificate\";\n    AssignmentTaskIDEnums[\"checklist\"] = \"checklist\";\n    AssignmentTaskIDEnums[\"classSchedule\"] = \"class-schedule\";\n    AssignmentTaskIDEnums[\"comicStrip\"] = \"comic-strip\";\n    AssignmentTaskIDEnums[\"conceptMap\"] = \"concept-map\";\n    AssignmentTaskIDEnums[\"couponSheet\"] = \"coupon-sheet\";\n    AssignmentTaskIDEnums[\"coverPage\"] = \"cover-page\";\n    AssignmentTaskIDEnums[\"deviceCameraRecording\"] = \"device-camera-recording\";\n    AssignmentTaskIDEnums[\"displayAd\"] = \"display-ad\";\n    AssignmentTaskIDEnums[\"dividerPage\"] = \"divider-page\";\n    AssignmentTaskIDEnums[\"drawing\"] = \"drawing\";\n    AssignmentTaskIDEnums[\"drawingWorksheet\"] = \"drawing-worksheet\";\n    AssignmentTaskIDEnums[\"ebookCover\"] = \"ebook-cover\";\n    AssignmentTaskIDEnums[\"emailHeader\"] = \"email-header\";\n    AssignmentTaskIDEnums[\"etsyShopBanner\"] = \"etsy-shop-banner\";\n    AssignmentTaskIDEnums[\"etsyShopCover\"] = \"etsy-shop-cover\";\n    AssignmentTaskIDEnums[\"eventbriteHeader\"] = \"eventbrite-header\";\n    AssignmentTaskIDEnums[\"facebookAd\"] = \"facebook-ad\";\n    AssignmentTaskIDEnums[\"facebookEventCover\"] = \"facebook-event-cover\";\n    AssignmentTaskIDEnums[\"facebookGroupCover\"] = \"facebook-group-cover\";\n    AssignmentTaskIDEnums[\"facebookPageCover\"] = \"facebook-page-cover\";\n    AssignmentTaskIDEnums[\"facebookPost\"] = \"facebook-post\";\n    AssignmentTaskIDEnums[\"facebookProfileCover\"] = \"facebook-profile-cover\";\n    AssignmentTaskIDEnums[\"facebookShopCover\"] = \"facebook-shop-cover\";\n    AssignmentTaskIDEnums[\"facebookStory\"] = \"facebook-story\";\n    AssignmentTaskIDEnums[\"flashCard\"] = \"flash-card\";\n    AssignmentTaskIDEnums[\"flashCardSheet\"] = \"flash-card-sheet\";\n    AssignmentTaskIDEnums[\"flyer\"] = \"flyer\";\n    AssignmentTaskIDEnums[\"generatedImage\"] = \"generated-image\";\n    AssignmentTaskIDEnums[\"giftCertificate\"] = \"gift-certificate\";\n    AssignmentTaskIDEnums[\"giftTag\"] = \"gift-tag\";\n    AssignmentTaskIDEnums[\"googleClassroomBanner\"] = \"google-classroom-banner\";\n    AssignmentTaskIDEnums[\"graph\"] = \"graph\";\n    AssignmentTaskIDEnums[\"graphicOrganizer\"] = \"graphic-organizer\";\n    AssignmentTaskIDEnums[\"idCard\"] = \"id-card\";\n    AssignmentTaskIDEnums[\"infographic\"] = \"infographic\";\n    AssignmentTaskIDEnums[\"instagramAd\"] = \"instagram-ad\";\n    AssignmentTaskIDEnums[\"instagramCarousel\"] = \"instagram-carousel\";\n    AssignmentTaskIDEnums[\"instagramLandscapePost\"] = \"instagram-landscape-post\";\n    AssignmentTaskIDEnums[\"instagramPortraitPost\"] = \"instagram-portrait-post\";\n    AssignmentTaskIDEnums[\"instagramReel\"] = \"instagram-reel\";\n    AssignmentTaskIDEnums[\"instagramSquarePost\"] = \"instagram-square-post\";\n    AssignmentTaskIDEnums[\"instagramStory\"] = \"instagram-story\";\n    AssignmentTaskIDEnums[\"instagramStoryAd\"] = \"instagram-story-ad\";\n    AssignmentTaskIDEnums[\"invitation\"] = \"invitation\";\n    AssignmentTaskIDEnums[\"invoice\"] = \"invoice\";\n    AssignmentTaskIDEnums[\"journal\"] = \"journal\";\n    AssignmentTaskIDEnums[\"label\"] = \"label\";\n    AssignmentTaskIDEnums[\"labelSheet\"] = \"label-sheet\";\n    AssignmentTaskIDEnums[\"leafletTrifold\"] = \"leaflet-trifold\";\n    AssignmentTaskIDEnums[\"lessonPlan\"] = \"lesson-plan\";\n    AssignmentTaskIDEnums[\"letter\"] = \"letter\";\n    AssignmentTaskIDEnums[\"letterhead\"] = \"letterhead\";\n    AssignmentTaskIDEnums[\"lineAdSmall\"] = \"line-ad-small\";\n    AssignmentTaskIDEnums[\"lineAdSquare\"] = \"line-ad-square\";\n    AssignmentTaskIDEnums[\"lineAdSquareVideo\"] = \"line-ad-square-video\";\n    AssignmentTaskIDEnums[\"lineAdVertical\"] = \"line-ad-vertical\";\n    AssignmentTaskIDEnums[\"lineRichMenuLarge\"] = \"line-rich-menu-large\";\n    AssignmentTaskIDEnums[\"lineRichMenuSmall\"] = \"line-rich-menu-small\";\n    AssignmentTaskIDEnums[\"lineRichMessage\"] = \"line-rich-message\";\n    AssignmentTaskIDEnums[\"linkedinBlogPost\"] = \"linkedin-blog-post\";\n    AssignmentTaskIDEnums[\"linkedinPost\"] = \"linkedin-post\";\n    AssignmentTaskIDEnums[\"linkedinProfileCover\"] = \"linkedin-profile-cover\";\n    AssignmentTaskIDEnums[\"logo\"] = \"logo\";\n    AssignmentTaskIDEnums[\"magazine\"] = \"magazine\";\n    AssignmentTaskIDEnums[\"mediaKit\"] = \"media-kit\";\n    AssignmentTaskIDEnums[\"meme\"] = \"meme\";\n    AssignmentTaskIDEnums[\"memo\"] = \"memo\";\n    AssignmentTaskIDEnums[\"menu\"] = \"menu\";\n    AssignmentTaskIDEnums[\"mindmap\"] = \"mindmap\";\n    AssignmentTaskIDEnums[\"mobileVideo\"] = \"mobile-video\";\n    AssignmentTaskIDEnums[\"mug\"] = \"mug\";\n    AssignmentTaskIDEnums[\"nameTag\"] = \"name-tag\";\n    AssignmentTaskIDEnums[\"newsletter\"] = \"newsletter\";\n    AssignmentTaskIDEnums[\"noteHeaderImage\"] = \"note-header-image\";\n    AssignmentTaskIDEnums[\"onlineNewsletter\"] = \"online-newsletter\";\n    AssignmentTaskIDEnums[\"onlineReport\"] = \"online-report\";\n    AssignmentTaskIDEnums[\"pamphlet\"] = \"pamphlet\";\n    AssignmentTaskIDEnums[\"photoBook\"] = \"photo-book\";\n    AssignmentTaskIDEnums[\"pinterestIdeaPin\"] = \"pinterest-idea-pin\";\n    AssignmentTaskIDEnums[\"pinterestPost\"] = \"pinterest-post\";\n    AssignmentTaskIDEnums[\"pinterestSquare\"] = \"pinterest-square\";\n    AssignmentTaskIDEnums[\"pinterestVertical\"] = \"pinterest-vertical\";\n    AssignmentTaskIDEnums[\"placeCard\"] = \"place-card\";\n    AssignmentTaskIDEnums[\"planner\"] = \"planner\";\n    AssignmentTaskIDEnums[\"playlistCover\"] = \"playlist-cover\";\n    AssignmentTaskIDEnums[\"podcastCover\"] = \"podcast-cover\";\n    AssignmentTaskIDEnums[\"postcard\"] = \"postcard\";\n    AssignmentTaskIDEnums[\"poster\"] = \"poster\";\n    AssignmentTaskIDEnums[\"presentation\"] = \"presentation\";\n    AssignmentTaskIDEnums[\"printAd\"] = \"print-ad\";\n    AssignmentTaskIDEnums[\"program\"] = \"program\";\n    AssignmentTaskIDEnums[\"proposal\"] = \"proposal\";\n    AssignmentTaskIDEnums[\"recipeCard\"] = \"recipe-card\";\n    AssignmentTaskIDEnums[\"redditCover\"] = \"reddit-cover\";\n    AssignmentTaskIDEnums[\"report\"] = \"report\";\n    AssignmentTaskIDEnums[\"reportCard\"] = \"report-card\";\n    AssignmentTaskIDEnums[\"resume\"] = \"resume\";\n    AssignmentTaskIDEnums[\"rubric\"] = \"rubric\";\n    AssignmentTaskIDEnums[\"snapchatAd\"] = \"snapchat-ad\";\n    AssignmentTaskIDEnums[\"snapchatFilter\"] = \"snapchat-filter\";\n    AssignmentTaskIDEnums[\"soundcloudBanner\"] = \"soundcloud-banner\";\n    AssignmentTaskIDEnums[\"tableOfContents\"] = \"table-of-contents\";\n    AssignmentTaskIDEnums[\"ticket\"] = \"ticket\";\n    AssignmentTaskIDEnums[\"tiktokAd\"] = \"tiktok-ad\";\n    AssignmentTaskIDEnums[\"tiktokVideo\"] = \"tiktok-video\";\n    AssignmentTaskIDEnums[\"tshirt\"] = \"tshirt\";\n    AssignmentTaskIDEnums[\"tumblrBanner\"] = \"tumblr-banner\";\n    AssignmentTaskIDEnums[\"twitchBanner\"] = \"twitch-banner\";\n    AssignmentTaskIDEnums[\"twitchOverlay\"] = \"twitch-overlay\";\n    AssignmentTaskIDEnums[\"twitterHeader\"] = \"twitter-header\";\n    AssignmentTaskIDEnums[\"twitterPost\"] = \"twitter-post\";\n    AssignmentTaskIDEnums[\"twitterVideo\"] = \"twitter-video\";\n    AssignmentTaskIDEnums[\"video\"] = \"video\";\n    AssignmentTaskIDEnums[\"wallpaperDesktop\"] = \"wallpaper-desktop\";\n    AssignmentTaskIDEnums[\"wallpaperMobile\"] = \"wallpaper-mobile\";\n    AssignmentTaskIDEnums[\"webpage\"] = \"webpage\";\n    AssignmentTaskIDEnums[\"webpageJournal\"] = \"webpage-journal\";\n    AssignmentTaskIDEnums[\"worksheet\"] = \"worksheet\";\n    AssignmentTaskIDEnums[\"youtubeBanner\"] = \"youtube-banner\";\n    AssignmentTaskIDEnums[\"youtubeDisplayAds\"] = \"youtube-display-ads\";\n    AssignmentTaskIDEnums[\"youtubeProfilePhoto\"] = \"youtube-profile-photo\";\n    AssignmentTaskIDEnums[\"youtubeShorts\"] = \"youtube-shorts\";\n    AssignmentTaskIDEnums[\"youtubeThumbnail\"] = \"youtube-thumbnail\";\n    AssignmentTaskIDEnums[\"youtubeVideo\"] = \"youtube-video\";\n    AssignmentTaskIDEnums[\"youtubeVideoAd\"] = \"youtube-video-ad\";\n    AssignmentTaskIDEnums[\"zoomBackground\"] = \"zoom-background\";\n})(AssignmentTaskIDEnums || (AssignmentTaskIDEnums = {}));\n","export var ClassroomMemberRole;\n(function (ClassroomMemberRole) {\n    ClassroomMemberRole[\"STUDENT\"] = \"student\";\n    ClassroomMemberRole[\"TEACHER\"] = \"teacher\";\n    ClassroomMemberRole[\"NONE\"] = \"none\";\n})(ClassroomMemberRole || (ClassroomMemberRole = {}));\nexport var ClassroomMemberStatus;\n(function (ClassroomMemberStatus) {\n    ClassroomMemberStatus[\"ACTIVE\"] = \"ACTIVE\";\n    ClassroomMemberStatus[\"DECLINED\"] = \"DECLINED\";\n    ClassroomMemberStatus[\"INACTIVE\"] = \"INACTIVE\";\n    ClassroomMemberStatus[\"INVITED\"] = \"INVITED\";\n    ClassroomMemberStatus[\"IN_REVIEW\"] = \"IN_REVIEW\";\n    ClassroomMemberStatus[\"NOT_A_MEMBER\"] = \"NOT_A_MEMBER\";\n    ClassroomMemberStatus[\"OWNER\"] = \"OWNER\";\n})(ClassroomMemberStatus || (ClassroomMemberStatus = {}));\nexport var ClassroomMemberInviteSource;\n(function (ClassroomMemberInviteSource) {\n    ClassroomMemberInviteSource[\"CLASSLINK\"] = \"CLASSLINK\";\n    ClassroomMemberInviteSource[\"CLEVER\"] = \"CLEVER\";\n    ClassroomMemberInviteSource[\"EMAIL\"] = \"EMAIL\";\n    ClassroomMemberInviteSource[\"GOOGLE_CLASSROOM\"] = \"GOOGLE_CLASSROOM\";\n    ClassroomMemberInviteSource[\"NONE\"] = \"NONE\";\n})(ClassroomMemberInviteSource || (ClassroomMemberInviteSource = {}));\n","export var LearningManagementSystems;\n(function (LearningManagementSystems) {\n    LearningManagementSystems[\"GC\"] = \"GC\";\n})(LearningManagementSystems || (LearningManagementSystems = {}));\nexport var LearningManagementSystemRoles;\n(function (LearningManagementSystemRoles) {\n    LearningManagementSystemRoles[\"STUDENT\"] = \"STUDENT\";\n    LearningManagementSystemRoles[\"TEACHER\"] = \"TEACHER\";\n})(LearningManagementSystemRoles || (LearningManagementSystemRoles = {}));\nexport var RosterImportState;\n(function (RosterImportState) {\n    RosterImportState[\"BLOCKED\"] = \"BLOCKED\";\n    RosterImportState[\"INVITED\"] = \"INVITED\";\n    RosterImportState[\"JOINED\"] = \"JOINED\";\n    RosterImportState[\"NOT_ENROLLED\"] = \"NOT_ENROLLED\";\n    RosterImportState[\"REMOVED\"] = \"REMOVED\";\n})(RosterImportState || (RosterImportState = {}));\nexport var ImportSourceType;\n(function (ImportSourceType) {\n    ImportSourceType[\"CLEVER\"] = \"clever\";\n    ImportSourceType[\"CLASS_LINK\"] = \"classlink\";\n})(ImportSourceType || (ImportSourceType = {}));\nexport var ClassroomStatus;\n(function (ClassroomStatus) {\n    ClassroomStatus[\"ACTIVE\"] = \"ACTIVE\";\n    ClassroomStatus[\"ARCHIVED\"] = \"ARCHIVED\";\n})(ClassroomStatus || (ClassroomStatus = {}));\nexport var ClassroomType;\n(function (ClassroomType) {\n    /** Allowed classrooms for Top Down organization users */\n    ClassroomType[\"TRUE\"] = \"TRUE\";\n    /** Allowed classrooms for Bottom up organization users */\n    ClassroomType[\"RESTRICTED\"] = \"RESTRICTED\";\n    /** Allowed classrooms for users on their personal account */\n    ClassroomType[\"UNRESTRICTED\"] = \"UNRESTRICTED\";\n    /** Not allowed classrooms */\n    ClassroomType[\"NONE\"] = \"NONE\";\n})(ClassroomType || (ClassroomType = {}));\nexport var SubjectTypes;\n(function (SubjectTypes) {\n    SubjectTypes[\"noSubject\"] = \"\";\n    SubjectTypes[\"allsubjects\"] = \"allsubjects\";\n    SubjectTypes[\"careersTechnicalEducation\"] = \"careersTechnicalEducation\";\n    SubjectTypes[\"computerScience\"] = \"computerScience\";\n    SubjectTypes[\"english\"] = \"english\";\n    SubjectTypes[\"math\"] = \"math\";\n    SubjectTypes[\"otherLanguages\"] = \"otherLanguages\";\n    SubjectTypes[\"others\"] = \"others\";\n    SubjectTypes[\"science\"] = \"science\";\n    SubjectTypes[\"socialStudies\"] = \"socialStudies\";\n    SubjectTypes[\"visualPerformingArts\"] = \"visualPerformingArts\";\n})(SubjectTypes || (SubjectTypes = {}));\nexport var ClassroomRole;\n(function (ClassroomRole) {\n    ClassroomRole[\"STUDENT\"] = \"STUDENT\";\n    ClassroomRole[\"TEACHER\"] = \"TEACHER\";\n})(ClassroomRole || (ClassroomRole = {}));\nexport var BlockApiSuccessResponses;\n(function (BlockApiSuccessResponses) {\n    BlockApiSuccessResponses[\"REMOVE_STUDENT_SUCCESS\"] = \"REMOVE_STUDENT_SUCCESS\";\n    BlockApiSuccessResponses[\"BLOCK_STUDENT_SUCCESS\"] = \"BLOCK_STUDENT_SUCCESS\";\n    BlockApiSuccessResponses[\"UNBLOCK_STUDENT_SUCCESS\"] = \"UNBLOCK_STUDENT_SUCCESS\";\n    BlockApiSuccessResponses[\"DELETE_DOMAIN_MAPPING_ACCEPTED\"] = \"DELETE_DOMAIN_MAPPING_ACCEPTED\";\n    BlockApiSuccessResponses[\"REMOVE_TEACHER_SUCCESS\"] = \"REMOVE_TEACHER_SUCCESS\";\n})(BlockApiSuccessResponses || (BlockApiSuccessResponses = {}));\nexport var MembershipStatus;\n(function (MembershipStatus) {\n    MembershipStatus[\"OWNER\"] = \"OWNER\";\n    MembershipStatus[\"ACTIVE\"] = \"ACTIVE\";\n    MembershipStatus[\"INACTIVE\"] = \"INACTIVE\";\n    MembershipStatus[\"INVITED\"] = \"INVITED\";\n    MembershipStatus[\"IN_REVIEW\"] = \"IN_REVIEW\";\n    MembershipStatus[\"DECLINED\"] = \"DECLINED\";\n    MembershipStatus[\"NOT_A_MEMBER\"] = \"NOT_A_MEMBER\";\n})(MembershipStatus || (MembershipStatus = {}));\nexport var CoTeacherEligibilityStatus;\n(function (CoTeacherEligibilityStatus) {\n    CoTeacherEligibilityStatus[\"ALLOWED\"] = \"ALLOWED\";\n    CoTeacherEligibilityStatus[\"NOT_ALLOWED\"] = \"NOT_ALLOWED\";\n})(CoTeacherEligibilityStatus || (CoTeacherEligibilityStatus = {}));\nexport var CoTeacherIneligibilityReason;\n(function (CoTeacherIneligibilityReason) {\n    CoTeacherIneligibilityReason[\"ACCOUNT_NOT_FOUND\"] = \"ACCOUNT_NOT_FOUND\";\n    CoTeacherIneligibilityReason[\"STUDENT_IN_CLASSROOM\"] = \"STUDENT_IN_CLASSROOM\";\n    CoTeacherIneligibilityReason[\"TEACHER_IN_CLASSROOM\"] = \"TEACHER_IN_CLASSROOM\";\n})(CoTeacherIneligibilityReason || (CoTeacherIneligibilityReason = {}));\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2025 Adobe Systems Incorporated\n *  All Rights Reserved.\n *\n * NOTICE:  All information contained herein is, and remains\n * the property of Adobe Systems Incorporated and its suppliers,\n * if any.  The intellectual and technical concepts contained\n * herein are proprietary to Adobe Systems Incorporated and its\n * suppliers and are protected by trade secret or copyright law.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe Systems Incorporated.\n **************************************************************************/\nexport var GenerationHistoryAssetType;\n(function (GenerationHistoryAssetType) {\n    GenerationHistoryAssetType[\"IMAGE\"] = \"image\";\n    GenerationHistoryAssetType[\"VIDEO\"] = \"video\";\n    GenerationHistoryAssetType[\"VECTOR\"] = \"vector\";\n    GenerationHistoryAssetType[\"AUDIO\"] = \"audio\";\n})(GenerationHistoryAssetType || (GenerationHistoryAssetType = {}));\nexport var GenerationHistoryAssetOrderBy;\n(function (GenerationHistoryAssetOrderBy) {\n    GenerationHistoryAssetOrderBy[\"CREATE_DATE\"] = \"created_date\";\n})(GenerationHistoryAssetOrderBy || (GenerationHistoryAssetOrderBy = {}));\nexport var GenerationHistoryAssetState;\n(function (GenerationHistoryAssetState) {\n    GenerationHistoryAssetState[\"QUEUED\"] = \"queued\";\n    GenerationHistoryAssetState[\"IN_PROGRESS\"] = \"inProgress\";\n    GenerationHistoryAssetState[\"SUCCESS\"] = \"success\";\n    GenerationHistoryAssetState[\"FAILED\"] = \"failed\";\n    GenerationHistoryAssetState[\"CANCELLED\"] = \"cancelled\";\n})(GenerationHistoryAssetState || (GenerationHistoryAssetState = {}));\n","export var LibraryOrderBy;\n(function (LibraryOrderBy) {\n    LibraryOrderBy[\"MODIFIED_DATE\"] = \"modified_date\";\n    LibraryOrderBy[\"CREATED_DATE\"] = \"created_date\";\n    LibraryOrderBy[\"NAME\"] = \"name\";\n})(LibraryOrderBy || (LibraryOrderBy = {}));\n/**\n * Enum for library owner filter\n * (If you update this list, also update LibraryFilter.matches/getRelationToFilter.)\n * @enum {string}\n */\nexport var LibraryOwnerFilter;\n(function (LibraryOwnerFilter) {\n    /**\n     * Personal libraries created in User Storage that are specifically stored inside the sync group: `/assets/adobe-libraries`\n     * Excludes CCI Project Libraries.\n     */\n    LibraryOwnerFilter[\"Personal\"] = \"private\";\n    /**\n     * Bookmarked public libraries.\n     * Currently will be ignored if combined with other ownership types.\n     */\n    LibraryOwnerFilter[\"Public\"] = \"public\";\n    /**\n     * Bookmarked incoming libraries. This includes:\n     * - Libraries shared directly with the user that the user has accepted the invite to\n     * - CCI Project Libraries which live in User Storage (`/users/{userId}` in ESM, `/` in USM and for unified users)\n     * - Project Libraries the user has followed (After SMU, these will all live in `/projects/{projectName}`)\n     */\n    LibraryOwnerFilter[\"Incoming\"] = \"incoming\";\n    /**\n     * Everything the user has acccess to that is not in User Storage, except public libraries.\n     * Includes: Project libraries, Incoming libraries (except CCI Project Libraries since they are in User Storage)\n     * Excludes: Public libraries, CCI Project Libraries, Private Libraries\n     */\n    LibraryOwnerFilter[\"Discovery\"] = \"discovery\";\n    /**\n     * A subset of 'discovery' that excludes already bookmarked libraries.\n     */\n    /**\n     * All of the above except public libraries currently (until supported by USS).\n     * If combined with other owner types, the others will be ignored.\n     */\n    LibraryOwnerFilter[\"All\"] = \"all\";\n})(LibraryOwnerFilter || (LibraryOwnerFilter = {}));\nexport var LibraryProjectFilterEnum;\n(function (LibraryProjectFilterEnum) {\n    /**\n     * Include all project libraries.\n     */\n    LibraryProjectFilterEnum[\"All\"] = \"all\";\n    /**\n     * Do not include any project libraries.\n     */\n    LibraryProjectFilterEnum[\"None\"] = \"none\";\n})(LibraryProjectFilterEnum || (LibraryProjectFilterEnum = {}));\n/**\n * @experimental API May change.\n *\n * Enum for library reference filter\n * This filter must be used in conjunction with a projectID via the LibraryProjectFilter.\n * @enum {string}\n */\nexport var LibraryReferenceFilter;\n(function (LibraryReferenceFilter) {\n    /**\n     * Return all libraries beneath the project or referenced by the project\n     */\n    LibraryReferenceFilter[\"All\"] = \"all\";\n    /**\n     * Include only libraries referenced by the project\n     */\n    LibraryReferenceFilter[\"Only\"] = \"only\";\n})(LibraryReferenceFilter || (LibraryReferenceFilter = {}));\nexport var LibraryRolesFilter;\n(function (LibraryRolesFilter) {\n    /**\n     * Include libraries that have no roles\n     */\n    LibraryRolesFilter[\"None\"] = \"none\";\n    /**\n     * Include libraries that have at least one role where role.type === 'brand'\n     */\n    LibraryRolesFilter[\"Brand\"] = \"brand\";\n    /**\n     * Include training set libraries. Currently the default, as it is the only option.\n     */\n    LibraryRolesFilter[\"TrainingSet\"] = \"cm_training_set\";\n})(LibraryRolesFilter || (LibraryRolesFilter = {}));\n/**\n * This enum is used for filtering the library list view for brands specifically based on it's publishing related app metadata.\n * This filter is only usable if the brand role is true.\n *\n * There are three types of brands that exist in the data:\n * 1. Published brands -- These are the brands that have brand:publishedFrom in their app metadata.\n * Nobody is able to update these brands directly, they can only be updated by publishing changes from their draft brand counterpart (which is what brand:publishedFrom points to).\n *\n * 2. Draft brands with a published counterpart -- These are the brands that have brand:publishedTo in their app metadata.\n * These brands do NOT show up in the list of brands, but still can be accessed when a user goes to edit a published brand.\n * This is so we can maintain a \"Draft\" state for a published brand so brand creators can make revisions without updating the published copy that is currently in use.\n *\n * 3. Draft brands that are unpublished -- These are brands that are not part of a published brand in any way, and thus have neither brand:publishedFrom nor brand:publishedTo.\n * These brands are editable, and do show up in the brands listing view.\n */\nexport var BrandPublishMetadataFilter;\n(function (BrandPublishMetadataFilter) {\n    /**\n     * Includes: Published brands\n     *\n     * Excludes: Unpublished draft brands, Draft brands with a published counterpart\n     */\n    BrandPublishMetadataFilter[\"PublishedBrands\"] = \"publishedBrands\";\n    /**\n     * Includes: Published brands, Unpublished draft brands\n     *\n     * Excludes: Draft brands with a published counterpart\n     */\n    BrandPublishMetadataFilter[\"AllBrands\"] = \"allBrands\";\n    /**\n     * Includes: Unpublished draft brands, Draft brands with a published counterpart\n     *\n     * Excludes: Published brands\n     */\n    BrandPublishMetadataFilter[\"AllEditableBrands\"] = \"allEditableBrands\";\n})(BrandPublishMetadataFilter || (BrandPublishMetadataFilter = {}));\n","export var MoveWarning;\n(function (MoveWarning) {\n    MoveWarning[MoveWarning[\"None\"] = 0] = \"None\";\n    MoveWarning[MoveWarning[\"CollaboratorMaybeEditing\"] = 1] = \"CollaboratorMaybeEditing\";\n    MoveWarning[MoveWarning[\"OwnerChange\"] = 2] = \"OwnerChange\";\n})(MoveWarning || (MoveWarning = {}));\nexport var CannotMoveReason;\n(function (CannotMoveReason) {\n    CannotMoveReason[CannotMoveReason[\"DifferentOwner\"] = 1] = \"DifferentOwner\";\n    CannotMoveReason[CannotMoveReason[\"PermissionDeniedDestination\"] = 2] = \"PermissionDeniedDestination\";\n    CannotMoveReason[CannotMoveReason[\"PermissionDeniedSource\"] = 3] = \"PermissionDeniedSource\";\n    CannotMoveReason[CannotMoveReason[\"NotAFolder\"] = 4] = \"NotAFolder\";\n    CannotMoveReason[CannotMoveReason[\"CrossBucketMoveDisabled\"] = 5] = \"CrossBucketMoveDisabled\";\n})(CannotMoveReason || (CannotMoveReason = {}));\n","import { RelType } from './LinkUtils.js';\nexport var StudentAssignmentStatus;\n(function (StudentAssignmentStatus) {\n    StudentAssignmentStatus[\"NOT_STARTED\"] = \"NOT_STARTED\";\n    StudentAssignmentStatus[\"IN_PROGRESS\"] = \"IN_PROGRESS\";\n    StudentAssignmentStatus[\"RETURNED\"] = \"RETURNED\";\n    StudentAssignmentStatus[\"SUBMITTED\"] = \"SUBMITTED\";\n})(StudentAssignmentStatus || (StudentAssignmentStatus = {}));\nexport var StudentAssignmentOwner;\n(function (StudentAssignmentOwner) {\n    StudentAssignmentOwner[\"Any\"] = \"ANY\";\n    StudentAssignmentOwner[\"Self\"] = \"SELF\";\n})(StudentAssignmentOwner || (StudentAssignmentOwner = {}));\n","export var RenditionStatus;\n(function (RenditionStatus) {\n    /**\n     * Initial status\n     */\n    RenditionStatus[RenditionStatus[\"NotStarted\"] = 0] = \"NotStarted\";\n    RenditionStatus[RenditionStatus[\"Fetching\"] = 1] = \"Fetching\";\n    RenditionStatus[RenditionStatus[\"Done\"] = 2] = \"Done\";\n    /**\n     * Occurs when there are any errors around fetching the\n     * rendition from the service, AdobeAsset.clearRenditionError can\n     * be used to clear the error and fetch again.\n     */\n    RenditionStatus[RenditionStatus[\"Error\"] = 3] = \"Error\";\n})(RenditionStatus || (RenditionStatus = {}));\nexport var RenditionSize;\n(function (RenditionSize) {\n    RenditionSize[RenditionSize[\"Size64\"] = 64] = \"Size64\";\n    RenditionSize[RenditionSize[\"Size128\"] = 128] = \"Size128\";\n    RenditionSize[RenditionSize[\"Size256\"] = 256] = \"Size256\";\n    RenditionSize[RenditionSize[\"Size512\"] = 512] = \"Size512\";\n    RenditionSize[RenditionSize[\"Size1024\"] = 1024] = \"Size1024\";\n})(RenditionSize || (RenditionSize = {}));\nexport var RenditionType;\n(function (RenditionType) {\n    RenditionType[\"PNG\"] = \"image/png\";\n    RenditionType[\"JPEG\"] = \"image/jpeg\";\n})(RenditionType || (RenditionType = {}));\n","export var Mode;\n(function (Mode) {\n    Mode[\"MOBILE\"] = \"mobile\";\n    Mode[\"DESKTOP\"] = \"desktop\";\n})(Mode || (Mode = {}));\nexport var View;\n(function (View) {\n    View[\"WEB\"] = \"web\";\n    View[\"MOBILE\"] = \"mobile\";\n})(View || (View = {}));\nexport var MessageType;\n(function (MessageType) {\n    MessageType[\"OpenDocumentVersion\"] = \"onOpenDocumentVersion\";\n    MessageType[\"OpenDeepLinkVersion\"] = \"onOpenDeepLinkVersion\";\n    MessageType[\"VersionSelection\"] = \"onVersionSelection\";\n    MessageType[\"RestoreVersion\"] = \"onRestoreVersion\";\n    MessageType[\"Upgrade\"] = \"onUpgrade\";\n    MessageType[\"CreateCopy\"] = \"onCreateCopy\";\n    MessageType[\"Refresh\"] = \"onRefresh\";\n    MessageType[\"ModeChange\"] = \"onModeChange\";\n    MessageType[\"ThemeChange\"] = \"onThemeChange\";\n    MessageType[\"ClosePanel\"] = \"onClosePanel\";\n    MessageType[\"Error\"] = \"onError\";\n    MessageType[\"VersionBookmark\"] = \"onVersionBookmark\";\n    MessageType[\"VersionUnBookmark\"] = \"onVersionUnBookmark\";\n    MessageType[\"VersionBookmarkStart\"] = \"onVersionBookmarkStart\";\n    MessageType[\"VersionUnBookmarkStart\"] = \"onVersionUnBookmarkStart\";\n    MessageType[\"PermanentlyDeleteScreen\"] = \"onPermanentlyDeleteScreen\";\n    MessageType[\"PermanentlyDeleteVersion\"] = \"onPermanentlyDeleteVersion\";\n    MessageType[\"VersioningPanelLoadComplete\"] = \"onVersioningPanelLoadComplete\";\n    MessageType[\"PreviewThumbnailReceived\"] = \"onPreviewThumbnailReceived\";\n})(MessageType || (MessageType = {}));\n/* eslint-enable @typescript-eslint/no-namespace */\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2022 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n/**\n * TODO - pull in LinkStatus from SAM.js (wait until SAM.js converts to enums)\n */\nexport var LinkStatus;\n(function (LinkStatus) {\n    LinkStatus[\"UpToDate\"] = \"UpToDate\";\n    LinkStatus[\"OutOfDate\"] = \"OutOfDate\";\n    LinkStatus[\"MetadataOutOfDate\"] = \"MetadataOutOfDate\";\n    LinkStatus[\"Restricted\"] = \"Restricted\";\n    LinkStatus[\"Discarded\"] = \"Discarded\";\n    LinkStatus[\"Broken\"] = \"Broken\";\n})(LinkStatus || (LinkStatus = {}));\nexport var Role;\n(function (Role) {\n    Role[\"Edit\"] = \"Edit\";\n    Role[\"View\"] = \"View\";\n    Role[\"None\"] = \"None\";\n})(Role || (Role = {}));\n/**\n * Message types used in CCLibrariesInterface\n */\nexport var MessageType;\n(function (MessageType) {\n    MessageType[\"assets\"] = \"ccac.dap.in.notify.assets\";\n    MessageType[\"update\"] = \"ccac.dap.out.notify.update\";\n    MessageType[\"config\"] = \"ccac.dap.in.notify.config\";\n    MessageType[\"showShare\"] = \"ccac.dap.out.notify.showShare\";\n    MessageType[\"requestAction\"] = \"ccac.libraries.out.request.action\";\n    MessageType[\"requestUpdate\"] = \"ccac.libraries.in.request.update\";\n    MessageType[\"applyElements\"] = \"ccac.libraries.out.request.apply\";\n})(MessageType || (MessageType = {}));\n/**\n * Action types for 'ccac.libraries.out.request.action' message type\n */\nexport var RequestActionTypes;\n(function (RequestActionTypes) {\n    RequestActionTypes[\"openPicker\"] = \"openPicker\";\n    RequestActionTypes[\"openShareSheet\"] = \"openShareSheet\";\n    RequestActionTypes[\"openPreview\"] = \"openPreview\";\n})(RequestActionTypes || (RequestActionTypes = {}));\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2021 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n// Types related to the libraries and document assets data models\n/**\n * TODO: Should pull these in from the Libraries API type definitions\n */\nexport var ElementType;\n(function (ElementType) {\n    ElementType[\"animation\"] = \"application/vnd.adobe.element.animation+dcx\";\n    ElementType[\"audio\"] = \"application/vnd.adobe.element.audio+dcx\";\n    ElementType[\"brush\"] = \"application/vnd.adobe.element.brush+dcx\";\n    ElementType[\"characterstyle\"] = \"application/vnd.adobe.element.characterstyle+dcx\";\n    ElementType[\"color\"] = \"application/vnd.adobe.element.color+dcx\";\n    ElementType[\"colortheme\"] = \"application/vnd.adobe.element.colortheme+dcx\";\n    ElementType[\"component\"] = \"application/vnd.adobe.element.component+dcx\";\n    ElementType[\"font\"] = \"application/vnd.adobe.element.font+dcx\";\n    ElementType[\"gradient\"] = \"application/vnd.adobe.element.gradient+dcx\";\n    ElementType[\"graphic\"] = \"application/vnd.adobe.element.image+dcx\";\n    ElementType[\"layerstyle\"] = \"application/vnd.adobe.element.layerstyle+dcx\";\n    ElementType[\"light\"] = \"application/vnd.adobe.element.light+dcx\";\n    ElementType[\"look\"] = \"application/vnd.adobe.element.look+dcx\";\n    ElementType[\"material\"] = \"application/vnd.adobe.element.material+dcx\";\n    ElementType[\"model\"] = \"application/vnd.adobe.element.3d+dcx\";\n    ElementType[\"mogrt\"] = \"application/vnd.adobe.element.graphic+dcx\";\n    ElementType[\"multicolorswatch\"] = \"application/vnd.adobe.element.multicolorswatch+dcx\";\n    ElementType[\"paragraphstyle\"] = \"application/vnd.adobe.element.paragraphstyle+dcx\";\n    ElementType[\"pattern\"] = \"application/vnd.adobe.element.pattern+dcx\";\n    ElementType[\"template\"] = \"application/vnd.adobe.element.template+dcx\";\n    ElementType[\"text\"] = \"application/vnd.adobe.element.text+dcx\";\n    ElementType[\"video\"] = \"application/vnd.adobe.element.video+dcx\";\n    ElementType[\"artifact\"] = \"application/vnd.adobe.element.artifact+dcx\";\n})(ElementType || (ElementType = {}));\n/**\n * TODO: Should pull these in from the Libraries API type definitions\n */\nexport var Relationship;\n(function (Relationship) {\n    Relationship[\"primary\"] = \"primary\";\n    Relationship[\"rendition\"] = \"rendition\";\n})(Relationship || (Relationship = {}));\n","import type { Client } from '../client';\nimport { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes';\nimport { Scope } from '../scope';\nimport { isThenable } from '../utils/is';\nimport { getMainCarrier, getSentryCarrier } from './../carrier';\nimport type { AsyncContextStrategy } from './types';\n\ninterface Layer {\n  client?: Client;\n  scope: Scope;\n}\n\n/**\n * This is an object that holds a stack of scopes.\n */\nexport class AsyncContextStack {\n  private readonly _stack: [Layer, ...Layer[]];\n  private _isolationScope: Scope;\n\n  public constructor(scope?: Scope, isolationScope?: Scope) {\n    let assignedScope;\n    if (!scope) {\n      assignedScope = new Scope();\n    } else {\n      assignedScope = scope;\n    }\n\n    let assignedIsolationScope;\n    if (!isolationScope) {\n      assignedIsolationScope = new Scope();\n    } else {\n      assignedIsolationScope = isolationScope;\n    }\n\n    // scope stack for domains or the process\n    this._stack = [{ scope: assignedScope }];\n    this._isolationScope = assignedIsolationScope;\n  }\n\n  /**\n   * Fork a scope for the stack.\n   */\n  public withScope<T>(callback: (scope: Scope) => T): T {\n    const scope = this._pushScope();\n\n    let maybePromiseResult: T;\n    try {\n      maybePromiseResult = callback(scope);\n    } catch (e) {\n      this._popScope();\n      throw e;\n    }\n\n    if (isThenable(maybePromiseResult)) {\n      // @ts-expect-error - isThenable returns the wrong type\n      return maybePromiseResult.then(\n        res => {\n          this._popScope();\n          return res;\n        },\n        e => {\n          this._popScope();\n          throw e;\n        },\n      );\n    }\n\n    this._popScope();\n    return maybePromiseResult;\n  }\n\n  /**\n   * Get the client of the stack.\n   */\n  public getClient<C extends Client>(): C | undefined {\n    return this.getStackTop().client as C;\n  }\n\n  /**\n   * Returns the scope of the top stack.\n   */\n  public getScope(): Scope {\n    return this.getStackTop().scope;\n  }\n\n  /**\n   * Get the isolation scope for the stack.\n   */\n  public getIsolationScope(): Scope {\n    return this._isolationScope;\n  }\n\n  /**\n   * Returns the topmost scope layer in the order domain > local > process.\n   */\n  public getStackTop(): Layer {\n    return this._stack[this._stack.length - 1] as Layer;\n  }\n\n  /**\n   * Push a scope to the stack.\n   */\n  private _pushScope(): Scope {\n    // We want to clone the content of prev scope\n    const scope = this.getScope().clone();\n    this._stack.push({\n      client: this.getClient(),\n      scope,\n    });\n    return scope;\n  }\n\n  /**\n   * Pop a scope from the stack.\n   */\n  private _popScope(): boolean {\n    if (this._stack.length <= 1) return false;\n    return !!this._stack.pop();\n  }\n}\n\n/**\n * Get the global async context stack.\n * This will be removed during the v8 cycle and is only here to make migration easier.\n */\nfunction getAsyncContextStack(): AsyncContextStack {\n  const registry = getMainCarrier();\n  const sentry = getSentryCarrier(registry);\n\n  return (sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope()));\n}\n\nfunction withScope<T>(callback: (scope: Scope) => T): T {\n  return getAsyncContextStack().withScope(callback);\n}\n\nfunction withSetScope<T>(scope: Scope, callback: (scope: Scope) => T): T {\n  const stack = getAsyncContextStack() as AsyncContextStack;\n  return stack.withScope(() => {\n    stack.getStackTop().scope = scope;\n    return callback(scope);\n  });\n}\n\nfunction withIsolationScope<T>(callback: (isolationScope: Scope) => T): T {\n  return getAsyncContextStack().withScope(() => {\n    return callback(getAsyncContextStack().getIsolationScope());\n  });\n}\n\n/**\n * Get the stack-based async context strategy.\n */\nexport function getStackAsyncContextStrategy(): AsyncContextStrategy {\n  return {\n    withIsolationScope,\n    withScope,\n    withSetScope,\n    withSetIsolationScope: <T>(_isolationScope: Scope, callback: (isolationScope: Scope) => T) => {\n      return withIsolationScope(callback);\n    },\n    getCurrentScope: () => getAsyncContextStack().getScope(),\n    getIsolationScope: () => getAsyncContextStack().getIsolationScope(),\n  };\n}\n","import { getGlobalSingleton } from './carrier';\nimport { Scope } from './scope';\n\n/** Get the default current scope. */\nexport function getDefaultCurrentScope(): Scope {\n  return getGlobalSingleton('defaultCurrentScope', () => new Scope());\n}\n\n/** Get the default isolation scope. */\nexport function getDefaultIsolationScope(): Scope {\n  return getGlobalSingleton('defaultIsolationScope', () => new Scope());\n}\n","import type { Carrier } from './../carrier';\nimport { getMainCarrier, getSentryCarrier } from './../carrier';\nimport { getStackAsyncContextStrategy } from './stackStrategy';\nimport type { AsyncContextStrategy } from './types';\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nexport function setAsyncContextStrategy(strategy: AsyncContextStrategy | undefined): void {\n  // Get main carrier (global for every environment)\n  const registry = getMainCarrier();\n  const sentry = getSentryCarrier(registry);\n  sentry.acs = strategy;\n}\n\n/**\n * Get the current async context strategy.\n * If none has been setup, the default will be used.\n */\nexport function getAsyncContextStrategy(carrier: Carrier): AsyncContextStrategy {\n  const sentry = getSentryCarrier(carrier);\n\n  if (sentry.acs) {\n    return sentry.acs;\n  }\n\n  // Otherwise, use the default one (stack)\n  return getStackAsyncContextStrategy();\n}\n","import type { AsyncContextStack } from './asyncContext/stackStrategy';\nimport type { AsyncContextStrategy } from './asyncContext/types';\nimport type { Client } from './client';\nimport type { Scope } from './scope';\nimport type { SerializedLog } from './types-hoist/log';\nimport { SDK_VERSION } from './utils/version';\nimport { GLOBAL_OBJ } from './utils/worldwide';\n\n/**\n * An object that contains globally accessible properties and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n  __SENTRY__?: VersionedCarrier;\n}\n\ntype VersionedCarrier = {\n  version?: string;\n} & Record<Exclude<string, 'version'>, SentryCarrier>;\n\nexport interface SentryCarrier {\n  acs?: AsyncContextStrategy;\n  stack?: AsyncContextStack;\n\n  globalScope?: Scope;\n  defaultIsolationScope?: Scope;\n  defaultCurrentScope?: Scope;\n  loggerSettings?: { enabled: boolean };\n  /**\n   * A map of Sentry clients to their log buffers.\n   * This is used to store logs that are sent to Sentry.\n   */\n  clientToLogBufferMap?: WeakMap<Client, Array<SerializedLog>>;\n\n  /** Overwrites TextEncoder used in `@sentry/core`, need for `react-native@0.73` and older */\n  encodePolyfill?: (input: string) => Uint8Array;\n  /** Overwrites TextDecoder used in `@sentry/core`, need for `react-native@0.73` and older */\n  decodePolyfill?: (input: Uint8Array) => string;\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n  // This ensures a Sentry carrier exists\n  getSentryCarrier(GLOBAL_OBJ);\n  return GLOBAL_OBJ;\n}\n\n/** Will either get the existing sentry carrier, or create a new one. */\nexport function getSentryCarrier(carrier: Carrier): SentryCarrier {\n  const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n\n  // For now: First SDK that sets the .version property wins\n  __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n\n  // Intentionally populating and returning the version of \"this\" SDK instance\n  // rather than what's set in .version so that \"this\" SDK always gets its carrier\n  return (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__[]` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton<Prop extends keyof SentryCarrier>(\n  name: Prop,\n  creator: () => NonNullable<SentryCarrier[Prop]>,\n  obj = GLOBAL_OBJ,\n): NonNullable<SentryCarrier[Prop]> {\n  const __SENTRY__ = (obj.__SENTRY__ = obj.__SENTRY__ || {});\n  const carrier = (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n  // Note: We do not want to set `carrier.version` here, as this may be called before any `init` is called, e.g. for the default scopes\n  return carrier[name] || (carrier[name] = creator());\n}\n","export const DEFAULT_ENVIRONMENT = 'production';\n","import { getAsyncContextStrategy } from './asyncContext';\nimport { getGlobalSingleton, getMainCarrier } from './carrier';\nimport type { Client } from './client';\nimport { Scope } from './scope';\nimport type { TraceContext } from './types-hoist/context';\nimport { generateSpanId } from './utils/propagationContext';\n\n/**\n * Get the currently active scope.\n */\nexport function getCurrentScope(): Scope {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current execution context.\n */\nexport function getIsolationScope(): Scope {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nexport function getGlobalScope(): Scope {\n  return getGlobalSingleton('globalScope', () => new Scope());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\nexport function withScope<T>(callback: (scope: Scope) => T): T;\n/**\n * Set the given scope as the active scope in the callback.\n */\nexport function withScope<T>(scope: Scope | undefined, callback: (scope: Scope) => T): T;\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nexport function withScope<T>(\n  ...rest: [callback: (scope: Scope) => T] | [scope: Scope | undefined, callback: (scope: Scope) => T]\n): T {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n\n  // If a scope is defined, we want to make this the active scope instead of the default one\n  if (rest.length === 2) {\n    const [scope, callback] = rest;\n\n    if (!scope) {\n      return acs.withScope(callback);\n    }\n\n    return acs.withSetScope(scope, callback);\n  }\n\n  return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\nexport function withIsolationScope<T>(callback: (isolationScope: Scope) => T): T;\n/**\n * Set the provided isolation scope as active in the given callback. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n *\n * If you pass in `undefined` as a scope, it will fork a new isolation scope, the same as if no scope is passed.\n */\nexport function withIsolationScope<T>(isolationScope: Scope | undefined, callback: (isolationScope: Scope) => T): T;\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nexport function withIsolationScope<T>(\n  ...rest:\n    | [callback: (isolationScope: Scope) => T]\n    | [isolationScope: Scope | undefined, callback: (isolationScope: Scope) => T]\n): T {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n\n  // If a scope is defined, we want to make this the active scope instead of the default one\n  if (rest.length === 2) {\n    const [isolationScope, callback] = rest;\n\n    if (!isolationScope) {\n      return acs.withIsolationScope(callback);\n    }\n\n    return acs.withSetIsolationScope(isolationScope, callback);\n  }\n\n  return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nexport function getClient<C extends Client>(): C | undefined {\n  return getCurrentScope().getClient<C>();\n}\n\n/**\n * Get a trace context for the given scope.\n */\nexport function getTraceContextFromScope(scope: Scope): TraceContext {\n  const propagationContext = scope.getPropagationContext();\n\n  const { traceId, parentSpanId, propagationSpanId } = propagationContext;\n\n  const traceContext: TraceContext = {\n    trace_id: traceId,\n    span_id: propagationSpanId || generateSpanId(),\n  };\n\n  if (parentSpanId) {\n    traceContext.parent_span_id = parentSpanId;\n  }\n\n  return traceContext;\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import { getClient, getCurrentScope, getIsolationScope, withIsolationScope } from './currentScopes';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { CaptureContext } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\nimport type { CheckIn, FinishedCheckIn, MonitorConfig } from './types-hoist/checkin';\nimport type { Event, EventHint } from './types-hoist/event';\nimport type { EventProcessor } from './types-hoist/eventprocessor';\nimport type { Extra, Extras } from './types-hoist/extra';\nimport type { Primitive } from './types-hoist/misc';\nimport type { Session, SessionContext } from './types-hoist/session';\nimport type { SeverityLevel } from './types-hoist/severity';\nimport type { User } from './types-hoist/user';\nimport { debug } from './utils/debug-logger';\nimport { isThenable } from './utils/is';\nimport { uuid4 } from './utils/misc';\nimport type { ExclusiveEventHintOrCaptureContext } from './utils/prepareEvent';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent';\nimport { timestampInSeconds } from './utils/time';\nimport { GLOBAL_OBJ } from './utils/worldwide';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nexport function captureException(exception: unknown, hint?: ExclusiveEventHintOrCaptureContext): string {\n  return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nexport function captureMessage(message: string, captureContext?: CaptureContext | SeverityLevel): string {\n  // This is necessary to provide explicit scopes upgrade, without changing the original\n  // arity of the `captureMessage(message, level)` method.\n  const level = typeof captureContext === 'string' ? captureContext : undefined;\n  const context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n  return getCurrentScope().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nexport function captureEvent(event: Event, hint?: EventHint): string {\n  return getCurrentScope().captureEvent(event, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nexport function setContext(name: string, context: { [key: string]: unknown } | null): void {\n  getIsolationScope().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras: Extras): void {\n  getIsolationScope().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key: string, extra: Extra): void {\n  getIsolationScope().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags: { [key: string]: Primitive }): void {\n  getIsolationScope().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key: string, value: Primitive): void {\n  getIsolationScope().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user: User | null): void {\n  getIsolationScope().setUser(user);\n}\n\n/**\n * The last error event id of the isolation scope.\n *\n * Warning: This function really returns the last recorded error event id on the current\n * isolation scope. If you call this function after handling a certain error and another error\n * is captured in between, the last one is returned instead of the one you might expect.\n * Also, ids of events that were never sent to Sentry (for example because\n * they were dropped in `beforeSend`) could be returned.\n *\n * @returns The last event id of the isolation scope.\n */\nexport function lastEventId(): string | undefined {\n  return getIsolationScope().lastEventId();\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function captureCheckIn(checkIn: CheckIn, upsertMonitorConfig?: MonitorConfig): string {\n  const scope = getCurrentScope();\n  const client = getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn('Cannot capture check-in. No client defined.');\n  } else if (!client.captureCheckIn) {\n    DEBUG_BUILD && debug.warn('Cannot capture check-in. Client does not support sending check-ins.');\n  } else {\n    return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n  }\n\n  return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param callback Callback to be monitored\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function withMonitor<T>(\n  monitorSlug: CheckIn['monitorSlug'],\n  callback: () => T,\n  upsertMonitorConfig?: MonitorConfig,\n): T {\n  const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n  const now = timestampInSeconds();\n\n  function finishCheckIn(status: FinishedCheckIn['status']): void {\n    captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n  }\n\n  return withIsolationScope(() => {\n    let maybePromiseResult: T;\n    try {\n      maybePromiseResult = callback();\n    } catch (e) {\n      finishCheckIn('error');\n      throw e;\n    }\n\n    if (isThenable(maybePromiseResult)) {\n      return maybePromiseResult.then(\n        r => {\n          finishCheckIn('ok');\n          return r;\n        },\n        e => {\n          finishCheckIn('error');\n          throw e;\n        },\n      ) as T;\n    }\n    finishCheckIn('ok');\n\n    return maybePromiseResult;\n  });\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function flush(timeout?: number): Promise<boolean> {\n  const client = getClient();\n  if (client) {\n    return client.flush(timeout);\n  }\n  DEBUG_BUILD && debug.warn('Cannot flush events. No client defined.');\n  return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function close(timeout?: number): Promise<boolean> {\n  const client = getClient();\n  if (client) {\n    return client.close(timeout);\n  }\n  DEBUG_BUILD && debug.warn('Cannot flush events and disable SDK. No client defined.');\n  return Promise.resolve(false);\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nexport function isInitialized(): boolean {\n  return !!getClient();\n}\n\n/** If the SDK is initialized & enabled. */\nexport function isEnabled(): boolean {\n  const client = getClient();\n  return client?.getOptions().enabled !== false && !!client?.getTransport();\n}\n\n/**\n * Add an event processor.\n * This will be added to the current isolation scope, ensuring any event that is processed in the current execution\n * context will have the processor applied.\n */\nexport function addEventProcessor(callback: EventProcessor): void {\n  getIsolationScope().addEventProcessor(callback);\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nexport function startSession(context?: SessionContext): Session {\n  const isolationScope = getIsolationScope();\n  const currentScope = getCurrentScope();\n\n  // Will fetch userAgent if called from browser sdk\n  const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n  const session = makeSession({\n    user: currentScope.getUser() || isolationScope.getUser(),\n    ...(userAgent && { userAgent }),\n    ...context,\n  });\n\n  // End existing session if there's one\n  const currentSession = isolationScope.getSession();\n  if (currentSession?.status === 'ok') {\n    updateSession(currentSession, { status: 'exited' });\n  }\n\n  endSession();\n\n  // Afterwards we set the new session on the scope\n  isolationScope.setSession(session);\n\n  return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nexport function endSession(): void {\n  const isolationScope = getIsolationScope();\n  const currentScope = getCurrentScope();\n\n  const session = currentScope.getSession() || isolationScope.getSession();\n  if (session) {\n    closeSession(session);\n  }\n  _sendSessionUpdate();\n\n  // the session is over; take it off of the scope\n  isolationScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate(): void {\n  const isolationScope = getIsolationScope();\n  const client = getClient();\n  const session = isolationScope.getSession();\n  if (session && client) {\n    client.captureSession(session);\n  }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n *            Defaults to `false`.\n */\nexport function captureSession(end: boolean = false): void {\n  // both send the update and pull the session from the scope\n  if (end) {\n    endSession();\n    return;\n  }\n\n  // only send the update\n  _sendSessionUpdate();\n}\n","/* eslint-disable max-lines */\nimport type { Client } from './client';\nimport { DEBUG_BUILD } from './debug-build';\nimport { updateSession } from './session';\nimport type { Attachment } from './types-hoist/attachment';\nimport type { Breadcrumb } from './types-hoist/breadcrumb';\nimport type { Context, Contexts } from './types-hoist/context';\nimport type { DynamicSamplingContext } from './types-hoist/envelope';\nimport type { Event, EventHint } from './types-hoist/event';\nimport type { EventProcessor } from './types-hoist/eventprocessor';\nimport type { Extra, Extras } from './types-hoist/extra';\nimport type { Primitive } from './types-hoist/misc';\nimport type { RequestEventData } from './types-hoist/request';\nimport type { Session } from './types-hoist/session';\nimport type { SeverityLevel } from './types-hoist/severity';\nimport type { Span } from './types-hoist/span';\nimport type { PropagationContext } from './types-hoist/tracing';\nimport type { User } from './types-hoist/user';\nimport { debug } from './utils/debug-logger';\nimport { isPlainObject } from './utils/is';\nimport { merge } from './utils/merge';\nimport { uuid4 } from './utils/misc';\nimport { generateTraceId } from './utils/propagationContext';\nimport { _getSpanForScope, _setSpanForScope } from './utils/spanOnScope';\nimport { truncate } from './utils/string';\nimport { dateTimestampInSeconds } from './utils/time';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * A context to be used for capturing an event.\n * This can either be a Scope, or a partial ScopeContext,\n * or a callback that receives the current scope and returns a new scope to use.\n */\nexport type CaptureContext = Scope | Partial<ScopeContext> | ((scope: Scope) => Scope);\n\n/**\n * Data that can be converted to a Scope.\n */\nexport interface ScopeContext {\n  user: User;\n  level: SeverityLevel;\n  extra: Extras;\n  contexts: Contexts;\n  tags: { [key: string]: Primitive };\n  fingerprint: string[];\n  propagationContext: PropagationContext;\n}\n\nexport interface SdkProcessingMetadata {\n  [key: string]: unknown;\n  requestSession?: {\n    status: 'ok' | 'errored' | 'crashed';\n  };\n  normalizedRequest?: RequestEventData;\n  dynamicSamplingContext?: Partial<DynamicSamplingContext>;\n  capturedSpanScope?: Scope;\n  capturedSpanIsolationScope?: Scope;\n  spanCountBeforeProcessing?: number;\n  ipAddress?: string;\n}\n\n/**\n * Normalized data of the Scope, ready to be used.\n */\nexport interface ScopeData {\n  eventProcessors: EventProcessor[];\n  breadcrumbs: Breadcrumb[];\n  user: User;\n  tags: { [key: string]: Primitive };\n  extra: Extras;\n  contexts: Contexts;\n  attachments: Attachment[];\n  propagationContext: PropagationContext;\n  sdkProcessingMetadata: SdkProcessingMetadata;\n  fingerprint: string[];\n  level?: SeverityLevel;\n  transactionName?: string;\n  span?: Span;\n}\n\n/**\n * Holds additional event information.\n */\nexport class Scope {\n  /** Flag if notifying is happening. */\n  protected _notifyingListeners: boolean;\n\n  /** Callback for client to receive scope changes. */\n  protected _scopeListeners: Array<(scope: Scope) => void>;\n\n  /** Callback list that will be called during event processing. */\n  protected _eventProcessors: EventProcessor[];\n\n  /** Array of breadcrumbs. */\n  protected _breadcrumbs: Breadcrumb[];\n\n  /** User */\n  protected _user: User;\n\n  /** Tags */\n  protected _tags: { [key: string]: Primitive };\n\n  /** Extra */\n  protected _extra: Extras;\n\n  /** Contexts */\n  protected _contexts: Contexts;\n\n  /** Attachments */\n  protected _attachments: Attachment[];\n\n  /** Propagation Context for distributed tracing */\n  protected _propagationContext: PropagationContext;\n\n  /**\n   * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n   * sent to Sentry\n   */\n  protected _sdkProcessingMetadata: SdkProcessingMetadata;\n\n  /** Fingerprint */\n  protected _fingerprint?: string[];\n\n  /** Severity */\n  protected _level?: SeverityLevel;\n\n  /**\n   * Transaction Name\n   *\n   * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n   * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n   */\n  protected _transactionName?: string;\n\n  /** Session */\n  protected _session?: Session;\n\n  /** The client on this scope */\n  protected _client?: Client;\n\n  /** Contains the last event id of a captured event.  */\n  protected _lastEventId?: string;\n\n  // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n  public constructor() {\n    this._notifyingListeners = false;\n    this._scopeListeners = [];\n    this._eventProcessors = [];\n    this._breadcrumbs = [];\n    this._attachments = [];\n    this._user = {};\n    this._tags = {};\n    this._extra = {};\n    this._contexts = {};\n    this._sdkProcessingMetadata = {};\n    this._propagationContext = {\n      traceId: generateTraceId(),\n      sampleRand: Math.random(),\n    };\n  }\n\n  /**\n   * Clone all data from this scope into a new scope.\n   */\n  public clone(): Scope {\n    const newScope = new Scope();\n    newScope._breadcrumbs = [...this._breadcrumbs];\n    newScope._tags = { ...this._tags };\n    newScope._extra = { ...this._extra };\n    newScope._contexts = { ...this._contexts };\n    if (this._contexts.flags) {\n      // We need to copy the `values` array so insertions on a cloned scope\n      // won't affect the original array.\n      newScope._contexts.flags = {\n        values: [...this._contexts.flags.values],\n      };\n    }\n\n    newScope._user = this._user;\n    newScope._level = this._level;\n    newScope._session = this._session;\n    newScope._transactionName = this._transactionName;\n    newScope._fingerprint = this._fingerprint;\n    newScope._eventProcessors = [...this._eventProcessors];\n    newScope._attachments = [...this._attachments];\n    newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n    newScope._propagationContext = { ...this._propagationContext };\n    newScope._client = this._client;\n    newScope._lastEventId = this._lastEventId;\n\n    _setSpanForScope(newScope, _getSpanForScope(this));\n\n    return newScope;\n  }\n\n  /**\n   * Update the client assigned to this scope.\n   * Note that not every scope will have a client assigned - isolation scopes & the global scope will generally not have a client,\n   * as well as manually created scopes.\n   */\n  public setClient(client: Client | undefined): void {\n    this._client = client;\n  }\n\n  /**\n   * Set the ID of the last captured error event.\n   * This is generally only captured on the isolation scope.\n   */\n  public setLastEventId(lastEventId: string | undefined): void {\n    this._lastEventId = lastEventId;\n  }\n\n  /**\n   * Get the client assigned to this scope.\n   */\n  public getClient<C extends Client>(): C | undefined {\n    return this._client as C | undefined;\n  }\n\n  /**\n   * Get the ID of the last captured error event.\n   * This is generally only available on the isolation scope.\n   */\n  public lastEventId(): string | undefined {\n    return this._lastEventId;\n  }\n\n  /**\n   * @inheritDoc\n   */\n  public addScopeListener(callback: (scope: Scope) => void): void {\n    this._scopeListeners.push(callback);\n  }\n\n  /**\n   * Add an event processor that will be called before an event is sent.\n   */\n  public addEventProcessor(callback: EventProcessor): this {\n    this._eventProcessors.push(callback);\n    return this;\n  }\n\n  /**\n   * Set the user for this scope.\n   * Set to `null` to unset the user.\n   */\n  public setUser(user: User | null): this {\n    // If null is passed we want to unset everything, but still define keys,\n    // so that later down in the pipeline any existing values are cleared.\n    this._user = user || {\n      email: undefined,\n      id: undefined,\n      ip_address: undefined,\n      username: undefined,\n    };\n\n    if (this._session) {\n      updateSession(this._session, { user });\n    }\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Get the user from this scope.\n   */\n  public getUser(): User | undefined {\n    return this._user;\n  }\n\n  /**\n   * Set an object that will be merged into existing tags on the scope,\n   * and will be sent as tags data with the event.\n   */\n  public setTags(tags: { [key: string]: Primitive }): this {\n    this._tags = {\n      ...this._tags,\n      ...tags,\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set a single tag that will be sent as tags data with the event.\n   */\n  public setTag(key: string, value: Primitive): this {\n    this._tags = { ...this._tags, [key]: value };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set an object that will be merged into existing extra on the scope,\n   * and will be sent as extra data with the event.\n   */\n  public setExtras(extras: Extras): this {\n    this._extra = {\n      ...this._extra,\n      ...extras,\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set a single key:value extra entry that will be sent as extra data with the event.\n   */\n  public setExtra(key: string, extra: Extra): this {\n    this._extra = { ...this._extra, [key]: extra };\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets the fingerprint on the scope to send with the events.\n   * @param {string[]} fingerprint Fingerprint to group events in Sentry.\n   */\n  public setFingerprint(fingerprint: string[]): this {\n    this._fingerprint = fingerprint;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets the level on the scope for future events.\n   */\n  public setLevel(level: SeverityLevel): this {\n    this._level = level;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets the transaction name on the scope so that the name of e.g. taken server route or\n   * the page location is attached to future events.\n   *\n   * IMPORTANT: Calling this function does NOT change the name of the currently active\n   * root span. If you want to change the name of the active root span, use\n   * `Sentry.updateSpanName(rootSpan, 'new name')` instead.\n   *\n   * By default, the SDK updates the scope's transaction name automatically on sensible\n   * occasions, such as a page navigation or when handling a new request on the server.\n   */\n  public setTransactionName(name?: string): this {\n    this._transactionName = name;\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Sets context data with the given name.\n   * Data passed as context will be normalized. You can also pass `null` to unset the context.\n   * Note that context data will not be merged - calling `setContext` will overwrite an existing context with the same key.\n   */\n  public setContext(key: string, context: Context | null): this {\n    if (context === null) {\n      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n      delete this._contexts[key];\n    } else {\n      this._contexts[key] = context;\n    }\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Set the session for the scope.\n   */\n  public setSession(session?: Session): this {\n    if (!session) {\n      delete this._session;\n    } else {\n      this._session = session;\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Get the session from the scope.\n   */\n  public getSession(): Session | undefined {\n    return this._session;\n  }\n\n  /**\n   * Updates the scope with provided data. Can work in three variations:\n   * - plain object containing updatable attributes\n   * - Scope instance that'll extract the attributes from\n   * - callback function that'll receive the current scope as an argument and allow for modifications\n   */\n  public update(captureContext?: CaptureContext): this {\n    if (!captureContext) {\n      return this;\n    }\n\n    const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n    const scopeInstance =\n      scopeToMerge instanceof Scope\n        ? scopeToMerge.getScopeData()\n        : isPlainObject(scopeToMerge)\n          ? (captureContext as ScopeContext)\n          : undefined;\n\n    const { tags, extra, user, contexts, level, fingerprint = [], propagationContext } = scopeInstance || {};\n\n    this._tags = { ...this._tags, ...tags };\n    this._extra = { ...this._extra, ...extra };\n    this._contexts = { ...this._contexts, ...contexts };\n\n    if (user && Object.keys(user).length) {\n      this._user = user;\n    }\n\n    if (level) {\n      this._level = level;\n    }\n\n    if (fingerprint.length) {\n      this._fingerprint = fingerprint;\n    }\n\n    if (propagationContext) {\n      this._propagationContext = propagationContext;\n    }\n\n    return this;\n  }\n\n  /**\n   * Clears the current scope and resets its properties.\n   * Note: The client will not be cleared.\n   */\n  public clear(): this {\n    // client is not cleared here on purpose!\n    this._breadcrumbs = [];\n    this._tags = {};\n    this._extra = {};\n    this._user = {};\n    this._contexts = {};\n    this._level = undefined;\n    this._transactionName = undefined;\n    this._fingerprint = undefined;\n    this._session = undefined;\n    _setSpanForScope(this, undefined);\n    this._attachments = [];\n    this.setPropagationContext({ traceId: generateTraceId(), sampleRand: Math.random() });\n\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Adds a breadcrumb to the scope.\n   * By default, the last 100 breadcrumbs are kept.\n   */\n  public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n    const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n    // No data has been changed, so don't notify scope listeners\n    if (maxCrumbs <= 0) {\n      return this;\n    }\n\n    const mergedBreadcrumb: Breadcrumb = {\n      timestamp: dateTimestampInSeconds(),\n      ...breadcrumb,\n      // Breadcrumb messages can theoretically be infinitely large and they're held in memory so we truncate them not to leak (too much) memory\n      message: breadcrumb.message ? truncate(breadcrumb.message, 2048) : breadcrumb.message,\n    };\n\n    this._breadcrumbs.push(mergedBreadcrumb);\n    if (this._breadcrumbs.length > maxCrumbs) {\n      this._breadcrumbs = this._breadcrumbs.slice(-maxCrumbs);\n      this._client?.recordDroppedEvent('buffer_overflow', 'log_item');\n    }\n\n    this._notifyScopeListeners();\n\n    return this;\n  }\n\n  /**\n   * Get the last breadcrumb of the scope.\n   */\n  public getLastBreadcrumb(): Breadcrumb | undefined {\n    return this._breadcrumbs[this._breadcrumbs.length - 1];\n  }\n\n  /**\n   * Clear all breadcrumbs from the scope.\n   */\n  public clearBreadcrumbs(): this {\n    this._breadcrumbs = [];\n    this._notifyScopeListeners();\n    return this;\n  }\n\n  /**\n   * Add an attachment to the scope.\n   */\n  public addAttachment(attachment: Attachment): this {\n    this._attachments.push(attachment);\n    return this;\n  }\n\n  /**\n   * Clear all attachments from the scope.\n   */\n  public clearAttachments(): this {\n    this._attachments = [];\n    return this;\n  }\n\n  /**\n   * Get the data of this scope, which should be applied to an event during processing.\n   */\n  public getScopeData(): ScopeData {\n    return {\n      breadcrumbs: this._breadcrumbs,\n      attachments: this._attachments,\n      contexts: this._contexts,\n      tags: this._tags,\n      extra: this._extra,\n      user: this._user,\n      level: this._level,\n      fingerprint: this._fingerprint || [],\n      eventProcessors: this._eventProcessors,\n      propagationContext: this._propagationContext,\n      sdkProcessingMetadata: this._sdkProcessingMetadata,\n      transactionName: this._transactionName,\n      span: _getSpanForScope(this),\n    };\n  }\n\n  /**\n   * Add data which will be accessible during event processing but won't get sent to Sentry.\n   */\n  public setSDKProcessingMetadata(newData: SdkProcessingMetadata): this {\n    this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n    return this;\n  }\n\n  /**\n   * Add propagation context to the scope, used for distributed tracing\n   */\n  public setPropagationContext(context: PropagationContext): this {\n    this._propagationContext = context;\n    return this;\n  }\n\n  /**\n   * Get propagation context from the scope, used for distributed tracing\n   */\n  public getPropagationContext(): PropagationContext {\n    return this._propagationContext;\n  }\n\n  /**\n   * Capture an exception for this scope.\n   *\n   * @returns {string} The id of the captured Sentry event.\n   */\n  public captureException(exception: unknown, hint?: EventHint): string {\n    const eventId = hint?.event_id || uuid4();\n\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn('No client configured on scope - will not capture exception!');\n      return eventId;\n    }\n\n    const syntheticException = new Error('Sentry syntheticException');\n\n    this._client.captureException(\n      exception,\n      {\n        originalException: exception,\n        syntheticException,\n        ...hint,\n        event_id: eventId,\n      },\n      this,\n    );\n\n    return eventId;\n  }\n\n  /**\n   * Capture a message for this scope.\n   *\n   * @returns {string} The id of the captured message.\n   */\n  public captureMessage(message: string, level?: SeverityLevel, hint?: EventHint): string {\n    const eventId = hint?.event_id || uuid4();\n\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn('No client configured on scope - will not capture message!');\n      return eventId;\n    }\n\n    const syntheticException = new Error(message);\n\n    this._client.captureMessage(\n      message,\n      level,\n      {\n        originalException: message,\n        syntheticException,\n        ...hint,\n        event_id: eventId,\n      },\n      this,\n    );\n\n    return eventId;\n  }\n\n  /**\n   * Capture a Sentry event for this scope.\n   *\n   * @returns {string} The id of the captured event.\n   */\n  public captureEvent(event: Event, hint?: EventHint): string {\n    const eventId = hint?.event_id || uuid4();\n\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn('No client configured on scope - will not capture event!');\n      return eventId;\n    }\n\n    this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n    return eventId;\n  }\n\n  /**\n   * This will be called on every set call.\n   */\n  protected _notifyScopeListeners(): void {\n    // We need this check for this._notifyingListeners to be able to work on scope during updates\n    // If this check is not here we'll produce endless recursion when something is done with the scope\n    // during the callback.\n    if (!this._notifyingListeners) {\n      this._notifyingListeners = true;\n      this._scopeListeners.forEach(callback => {\n        callback(this);\n      });\n      this._notifyingListeners = false;\n    }\n  }\n}\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Attributes that holds the sample rate that was locally applied to a span.\n * If this attribute is not defined, it means that the span inherited a sampling decision.\n *\n * NOTE: Is only defined on root spans.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Attribute holding the sample rate of the previous trace.\n * This is used to sample consistently across subsequent traces in the browser SDK.\n *\n * Note: Only defined on root spans, if opted into consistent sampling\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE = 'sentry.previous_trace_sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * A custom span name set by users guaranteed to be taken over any automatically\n * inferred name. This attribute is removed before the span is sent.\n *\n * @internal only meant for internal SDK usage\n * @hidden\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME = 'sentry.custom_span_name';\n\n/**\n * The id of the profile that this span occurred in.\n */\nexport const SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nexport const SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nexport const SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nexport const SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nexport const SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nexport const SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nexport const SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\n/**\n * A span link attribute to mark the link as a special span link.\n *\n * Known values:\n * - `previous_trace`: The span links to the frontend root span of the previous trace.\n * - `next_trace`: The span links to the frontend root span of the next trace. (Not set by the SDK)\n *\n * Other values may be set as appropriate.\n * @see https://develop.sentry.dev/sdk/telemetry/traces/span-links/#link-types\n */\nexport const SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE = 'sentry.link.type';\n","import type { SerializedSession, Session, SessionContext, SessionStatus } from './types-hoist/session';\nimport { uuid4 } from './utils/misc';\nimport { timestampInSeconds } from './utils/time';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nexport function makeSession(context?: Omit<SessionContext, 'started' | 'status'>): Session {\n  // Both timestamp and started are in seconds since the UNIX epoch.\n  const startingTime = timestampInSeconds();\n\n  const session: Session = {\n    sid: uuid4(),\n    init: true,\n    timestamp: startingTime,\n    started: startingTime,\n    duration: 0,\n    status: 'ok',\n    errors: 0,\n    ignoreDuration: false,\n    toJSON: () => sessionToJSON(session),\n  };\n\n  if (context) {\n    updateSession(session, context);\n  }\n\n  return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see Client.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nexport function updateSession(session: Session, context: SessionContext = {}): void {\n  if (context.user) {\n    if (!session.ipAddress && context.user.ip_address) {\n      session.ipAddress = context.user.ip_address;\n    }\n\n    if (!session.did && !context.did) {\n      session.did = context.user.id || context.user.email || context.user.username;\n    }\n  }\n\n  session.timestamp = context.timestamp || timestampInSeconds();\n\n  if (context.abnormal_mechanism) {\n    session.abnormal_mechanism = context.abnormal_mechanism;\n  }\n\n  if (context.ignoreDuration) {\n    session.ignoreDuration = context.ignoreDuration;\n  }\n  if (context.sid) {\n    // Good enough uuid validation. — Kamil\n    session.sid = context.sid.length === 32 ? context.sid : uuid4();\n  }\n  if (context.init !== undefined) {\n    session.init = context.init;\n  }\n  if (!session.did && context.did) {\n    session.did = `${context.did}`;\n  }\n  if (typeof context.started === 'number') {\n    session.started = context.started;\n  }\n  if (session.ignoreDuration) {\n    session.duration = undefined;\n  } else if (typeof context.duration === 'number') {\n    session.duration = context.duration;\n  } else {\n    const duration = session.timestamp - session.started;\n    session.duration = duration >= 0 ? duration : 0;\n  }\n  if (context.release) {\n    session.release = context.release;\n  }\n  if (context.environment) {\n    session.environment = context.environment;\n  }\n  if (!session.ipAddress && context.ipAddress) {\n    session.ipAddress = context.ipAddress;\n  }\n  if (!session.userAgent && context.userAgent) {\n    session.userAgent = context.userAgent;\n  }\n  if (typeof context.errors === 'number') {\n    session.errors = context.errors;\n  }\n  if (context.status) {\n    session.status = context.status;\n  }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n *               this function will keep the previously set status, unless it was `'ok'` in which case\n *               it is changed to `'exited'`.\n */\nexport function closeSession(session: Session, status?: Exclude<SessionStatus, 'ok'>): void {\n  let context = {};\n  if (status) {\n    context = { status };\n  } else if (session.status === 'ok') {\n    context = { status: 'exited' };\n  }\n\n  updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session: Session): SerializedSession {\n  return {\n    sid: `${session.sid}`,\n    init: session.init,\n    // Make sure that sec is converted to ms for date constructor\n    started: new Date(session.started * 1000).toISOString(),\n    timestamp: new Date(session.timestamp * 1000).toISOString(),\n    status: session.status,\n    errors: session.errors,\n    did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n    duration: session.duration,\n    abnormal_mechanism: session.abnormal_mechanism,\n    attrs: {\n      release: session.release,\n      environment: session.environment,\n      ip_address: session.ipAddress,\n      user_agent: session.userAgent,\n    },\n  };\n}\n","import type { Client } from '../client';\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getClient } from '../currentScopes';\nimport type { Scope } from '../scope';\nimport {\n  SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE,\n  SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '../semanticAttributes';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport type { Span } from '../types-hoist/span';\nimport { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils/baggage';\nimport { extractOrgIdFromClient } from '../utils/dsn';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled';\nimport { addNonEnumerableProperty } from '../utils/object';\nimport { getRootSpan, spanIsSampled, spanToJSON } from '../utils/spanUtils';\nimport { getCapturedScopesOnSpan } from './utils';\n\n/**\n * If you change this value, also update the terser plugin config to\n * avoid minification of the object property!\n */\nconst FROZEN_DSC_FIELD = '_frozenDsc';\n\ntype SpanWithMaybeDsc = Span & {\n  [FROZEN_DSC_FIELD]?: Partial<DynamicSamplingContext> | undefined;\n};\n\n/**\n * Freeze the given DSC on the given span.\n */\nexport function freezeDscOnSpan(span: Span, dsc: Partial<DynamicSamplingContext>): void {\n  const spanWithMaybeDsc = span as SpanWithMaybeDsc;\n  addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nexport function getDynamicSamplingContextFromClient(trace_id: string, client: Client): DynamicSamplingContext {\n  const options = client.getOptions();\n\n  const { publicKey: public_key } = client.getDsn() || {};\n\n  // Instead of conditionally adding non-undefined values, we add them and then remove them if needed\n  // otherwise, the order of baggage entries changes, which \"breaks\" a bunch of tests etc.\n  const dsc: DynamicSamplingContext = {\n    environment: options.environment || DEFAULT_ENVIRONMENT,\n    release: options.release,\n    public_key,\n    trace_id,\n    org_id: extractOrgIdFromClient(client),\n  };\n\n  client.emit('createDsc', dsc);\n\n  return dsc;\n}\n\n/**\n * Get the dynamic sampling context for the currently active scopes.\n */\nexport function getDynamicSamplingContextFromScope(client: Client, scope: Scope): Partial<DynamicSamplingContext> {\n  const propagationContext = scope.getPropagationContext();\n  return propagationContext.dsc || getDynamicSamplingContextFromClient(propagationContext.traceId, client);\n}\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nexport function getDynamicSamplingContextFromSpan(span: Span): Readonly<Partial<DynamicSamplingContext>> {\n  const client = getClient();\n  if (!client) {\n    return {};\n  }\n\n  const rootSpan = getRootSpan(span);\n  const rootSpanJson = spanToJSON(rootSpan);\n  const rootSpanAttributes = rootSpanJson.data;\n  const traceState = rootSpan.spanContext().traceState;\n\n  // The span sample rate that was locally applied to the root span should also always be applied to the DSC, even if the DSC is frozen.\n  // This is so that the downstream traces/services can use parentSampleRate in their `tracesSampler` to make consistent sampling decisions across the entire trace.\n  const rootSpanSampleRate =\n    traceState?.get('sentry.sample_rate') ??\n    rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ??\n    rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE];\n\n  function applyLocalSampleRateToDsc(dsc: Partial<DynamicSamplingContext>): Partial<DynamicSamplingContext> {\n    if (typeof rootSpanSampleRate === 'number' || typeof rootSpanSampleRate === 'string') {\n      dsc.sample_rate = `${rootSpanSampleRate}`;\n    }\n    return dsc;\n  }\n\n  // For core implementation, we freeze the DSC onto the span as a non-enumerable property\n  const frozenDsc = (rootSpan as SpanWithMaybeDsc)[FROZEN_DSC_FIELD];\n  if (frozenDsc) {\n    return applyLocalSampleRateToDsc(frozenDsc);\n  }\n\n  // For OpenTelemetry, we freeze the DSC on the trace state\n  const traceStateDsc = traceState?.get('sentry.dsc');\n\n  // If the span has a DSC, we want it to take precedence\n  const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n\n  if (dscOnTraceState) {\n    return applyLocalSampleRateToDsc(dscOnTraceState);\n  }\n\n  // Else, we generate it from the span\n  const dsc = getDynamicSamplingContextFromClient(span.spanContext().traceId, client);\n\n  // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n  const source = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n  // after JSON conversion, txn.name becomes jsonSpan.description\n  const name = rootSpanJson.description;\n  if (source !== 'url' && name) {\n    dsc.transaction = name;\n  }\n\n  // How can we even land here with hasSpansEnabled() returning false?\n  // Otel creates a Non-recording span in Tracing Without Performance mode when handling incoming requests\n  // So we end up with an active span that is not sampled (neither positively nor negatively)\n  if (hasSpansEnabled()) {\n    dsc.sampled = String(spanIsSampled(rootSpan));\n    dsc.sample_rand =\n      // In OTEL we store the sample rand on the trace state because we cannot access scopes for NonRecordingSpans\n      // The Sentry OTEL SpanSampler takes care of writing the sample rand on the root span\n      traceState?.get('sentry.sample_rand') ??\n      // On all other platforms we can actually get the scopes from a root span (we use this as a fallback)\n      getCapturedScopesOnSpan(rootSpan).scope?.getPropagationContext().sampleRand.toString();\n  }\n\n  applyLocalSampleRateToDsc(dsc);\n\n  client.emit('createDsc', dsc, rootSpan);\n\n  return dsc;\n}\n\n/**\n * Convert a Span to a baggage header.\n */\nexport function spanToBaggageHeader(span: Span): string | undefined {\n  const dsc = getDynamicSamplingContextFromSpan(span);\n  return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n","import type { Span } from '../types-hoist/span';\nimport type { SpanStatus } from '../types-hoist/spanStatus';\n\nexport const SPAN_STATUS_UNSET = 0;\nexport const SPAN_STATUS_OK = 1;\nexport const SPAN_STATUS_ERROR = 2;\n\n/**\n * Converts a HTTP status code into a sentry status with a message.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\n// https://develop.sentry.dev/sdk/event-payloads/span/\nexport function getSpanStatusFromHttpCode(httpStatus: number): SpanStatus {\n  if (httpStatus < 400 && httpStatus >= 100) {\n    return { code: SPAN_STATUS_OK };\n  }\n\n  if (httpStatus >= 400 && httpStatus < 500) {\n    switch (httpStatus) {\n      case 401:\n        return { code: SPAN_STATUS_ERROR, message: 'unauthenticated' };\n      case 403:\n        return { code: SPAN_STATUS_ERROR, message: 'permission_denied' };\n      case 404:\n        return { code: SPAN_STATUS_ERROR, message: 'not_found' };\n      case 409:\n        return { code: SPAN_STATUS_ERROR, message: 'already_exists' };\n      case 413:\n        return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' };\n      case 429:\n        return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' };\n      case 499:\n        return { code: SPAN_STATUS_ERROR, message: 'cancelled' };\n      default:\n        return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' };\n    }\n  }\n\n  if (httpStatus >= 500 && httpStatus < 600) {\n    switch (httpStatus) {\n      case 501:\n        return { code: SPAN_STATUS_ERROR, message: 'unimplemented' };\n      case 503:\n        return { code: SPAN_STATUS_ERROR, message: 'unavailable' };\n      case 504:\n        return { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' };\n      default:\n        return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n    }\n  }\n\n  return { code: SPAN_STATUS_ERROR, message: 'unknown_error' };\n}\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nexport function setHttpStatus(span: Span, httpStatus: number): void {\n  span.setAttribute('http.response.status_code', httpStatus);\n\n  const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n  if (spanStatus.message !== 'unknown_error') {\n    span.setStatus(spanStatus);\n  }\n}\n","import type { Scope } from '../scope';\nimport type { Span } from '../types-hoist/span';\nimport { addNonEnumerableProperty } from '../utils/object';\n\nconst SCOPE_ON_START_SPAN_FIELD = '_sentryScope';\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = '_sentryIsolationScope';\n\ntype SpanWithScopes = Span & {\n  [SCOPE_ON_START_SPAN_FIELD]?: Scope;\n  [ISOLATION_SCOPE_ON_START_SPAN_FIELD]?: Scope;\n};\n\n/** Store the scope & isolation scope for a span, which can the be used when it is finished. */\nexport function setCapturedScopesOnSpan(span: Span | undefined, scope: Scope, isolationScope: Scope): void {\n  if (span) {\n    addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, isolationScope);\n    addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n  }\n}\n\n/**\n * Grabs the scope and isolation scope off a span that were active when the span was started.\n */\nexport function getCapturedScopesOnSpan(span: Span): { scope?: Scope; isolationScope?: Scope } {\n  return {\n    scope: (span as SpanWithScopes)[SCOPE_ON_START_SPAN_FIELD],\n    isolationScope: (span as SpanWithScopes)[ISOLATION_SCOPE_ON_START_SPAN_FIELD],\n  };\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport { debug } from './debug-logger';\nimport { isString } from './is';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nexport const MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nexport function baggageHeaderToDynamicSamplingContext(\n  // Very liberal definition of what any incoming header might look like\n  baggageHeader: string | string[] | number | null | undefined | boolean,\n): Partial<DynamicSamplingContext> | undefined {\n  const baggageObject = parseBaggageHeader(baggageHeader);\n\n  if (!baggageObject) {\n    return undefined;\n  }\n\n  // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n  const dynamicSamplingContext = Object.entries(baggageObject).reduce<Record<string, string>>((acc, [key, value]) => {\n    if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {\n      const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n      acc[nonPrefixedKey] = value;\n    }\n    return acc;\n  }, {});\n\n  // Only return a dynamic sampling context object if there are keys in it.\n  // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n  if (Object.keys(dynamicSamplingContext).length > 0) {\n    return dynamicSamplingContext as Partial<DynamicSamplingContext>;\n  } else {\n    return undefined;\n  }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nexport function dynamicSamplingContextToSentryBaggageHeader(\n  // this also takes undefined for convenience and bundle size in other places\n  dynamicSamplingContext?: Partial<DynamicSamplingContext>,\n): string | undefined {\n  if (!dynamicSamplingContext) {\n    return undefined;\n  }\n\n  // Prefix all DSC keys with \"sentry-\" and put them into a new object\n  const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce<Record<string, string>>(\n    (acc, [dscKey, dscValue]) => {\n      if (dscValue) {\n        acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n      }\n      return acc;\n    },\n    {},\n  );\n\n  return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Take a baggage header and parse it into an object.\n */\nexport function parseBaggageHeader(\n  baggageHeader: string | string[] | number | null | undefined | boolean,\n): Record<string, string> | undefined {\n  if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) {\n    return undefined;\n  }\n\n  if (Array.isArray(baggageHeader)) {\n    // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n    return baggageHeader.reduce<Record<string, string>>((acc, curr) => {\n      const currBaggageObject = baggageHeaderToObject(curr);\n      Object.entries(currBaggageObject).forEach(([key, value]) => {\n        acc[key] = value;\n      });\n      return acc;\n    }, {});\n  }\n\n  return baggageHeaderToObject(baggageHeader);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader: string): Record<string, string> {\n  return baggageHeader\n    .split(',')\n    .map(baggageEntry =>\n      baggageEntry.split('=').map(keyOrValue => {\n        try {\n          return decodeURIComponent(keyOrValue.trim());\n        } catch {\n          // We ignore errors here, e.g. if the value cannot be URL decoded.\n          // This will then be skipped in the next step\n          return;\n        }\n      }),\n    )\n    .reduce<Record<string, string>>((acc, [key, value]) => {\n      if (key && value) {\n        acc[key] = value;\n      }\n      return acc;\n    }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nexport function objectToBaggageHeader(object: Record<string, string>): string | undefined {\n  if (Object.keys(object).length === 0) {\n    // An empty baggage header is not spec compliant: We return undefined.\n    return undefined;\n  }\n\n  return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n    const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n    const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n    if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n      DEBUG_BUILD &&\n        debug.warn(\n          `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n        );\n      return baggageHeader;\n    } else {\n      return newBaggageHeader;\n    }\n  }, '');\n}\n","import { isString } from './is';\nimport { GLOBAL_OBJ } from './worldwide';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\ntype SimpleNode = {\n  parentNode: SimpleNode;\n} | null;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(\n  elem: unknown,\n  options: string[] | { keyAttrs?: string[]; maxStringLength?: number } = {},\n): string {\n  if (!elem) {\n    return '<unknown>';\n  }\n\n  // try/catch both:\n  // - accessing event.target (see getsentry/raven-js#838, #768)\n  // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n  // - can throw an exception in some circumstances.\n  try {\n    let currentElem = elem as SimpleNode;\n    const MAX_TRAVERSE_HEIGHT = 5;\n    const out = [];\n    let height = 0;\n    let len = 0;\n    const separator = ' > ';\n    const sepLength = separator.length;\n    let nextStr;\n    const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n    const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n    while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n      nextStr = _htmlElementAsString(currentElem, keyAttrs);\n      // bail out if\n      // - nextStr is the 'html' element\n      // - the length of the string that would be created exceeds maxStringLength\n      //   (ignore this limit if we are on the first iteration)\n      if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n        break;\n      }\n\n      out.push(nextStr);\n\n      len += nextStr.length;\n      currentElem = currentElem.parentNode;\n    }\n\n    return out.reverse().join(separator);\n  } catch {\n    return '<unknown>';\n  }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n  const elem = el as {\n    tagName?: string;\n    id?: string;\n    className?: string;\n    getAttribute(key: string): string;\n  };\n\n  const out = [];\n\n  if (!elem?.tagName) {\n    return '';\n  }\n\n  // @ts-expect-error WINDOW has HTMLElement\n  if (WINDOW.HTMLElement) {\n    // If using the component name annotation plugin, this value may be available on the DOM node\n    if (elem instanceof HTMLElement && elem.dataset) {\n      if (elem.dataset['sentryComponent']) {\n        return elem.dataset['sentryComponent'];\n      }\n      if (elem.dataset['sentryElement']) {\n        return elem.dataset['sentryElement'];\n      }\n    }\n  }\n\n  out.push(elem.tagName.toLowerCase());\n\n  // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n  const keyAttrPairs = keyAttrs?.length\n    ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n    : null;\n\n  if (keyAttrPairs?.length) {\n    keyAttrPairs.forEach(keyAttrPair => {\n      out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n    });\n  } else {\n    if (elem.id) {\n      out.push(`#${elem.id}`);\n    }\n\n    const className = elem.className;\n    if (className && isString(className)) {\n      const classes = className.split(/\\s+/);\n      for (const c of classes) {\n        out.push(`.${c}`);\n      }\n    }\n  }\n  const allowedAttrs = ['aria-label', 'type', 'name', 'title', 'alt'];\n  for (const k of allowedAttrs) {\n    const attr = elem.getAttribute(k);\n    if (attr) {\n      out.push(`[${k}=\"${attr}\"]`);\n    }\n  }\n\n  return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n  try {\n    return WINDOW.document.location.href;\n  } catch {\n    return '';\n  }\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` or `data-sentry-element` attribute with `data-sentry-component` taking\n * precedence. This attribute is added at build-time by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nexport function getComponentName(elem: unknown): string | null {\n  // @ts-expect-error WINDOW has HTMLElement\n  if (!WINDOW.HTMLElement) {\n    return null;\n  }\n\n  let currentElem = elem as SimpleNode;\n  const MAX_TRAVERSE_HEIGHT = 5;\n  for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n    if (!currentElem) {\n      return null;\n    }\n\n    if (currentElem instanceof HTMLElement) {\n      if (currentElem.dataset['sentryComponent']) {\n        return currentElem.dataset['sentryComponent'];\n      }\n      if (currentElem.dataset['sentryElement']) {\n        return currentElem.dataset['sentryElement'];\n      }\n    }\n\n    currentElem = currentElem.parentNode;\n  }\n\n  return null;\n}\n","import type { DebugImage } from '../types-hoist/debugMeta';\nimport type { StackParser } from '../types-hoist/stacktrace';\nimport { GLOBAL_OBJ } from './worldwide';\n\ntype StackString = string;\ntype CachedResult = [string, string];\n\nlet parsedStackResults: Record<StackString, CachedResult> | undefined;\nlet lastKeysCount: number | undefined;\nlet cachedFilenameDebugIds: Record<string, string> | undefined;\n\n/**\n * Returns a map of filenames to debug identifiers.\n */\nexport function getFilenameToDebugIdMap(stackParser: StackParser): Record<string, string> {\n  const debugIdMap = GLOBAL_OBJ._sentryDebugIds;\n  if (!debugIdMap) {\n    return {};\n  }\n\n  const debugIdKeys = Object.keys(debugIdMap);\n\n  // If the count of registered globals hasn't changed since the last call, we\n  // can just return the cached result.\n  if (cachedFilenameDebugIds && debugIdKeys.length === lastKeysCount) {\n    return cachedFilenameDebugIds;\n  }\n\n  lastKeysCount = debugIdKeys.length;\n\n  // Build a map of filename -> debug_id.\n  cachedFilenameDebugIds = debugIdKeys.reduce<Record<string, string>>((acc, stackKey) => {\n    if (!parsedStackResults) {\n      parsedStackResults = {};\n    }\n\n    const result = parsedStackResults[stackKey];\n\n    if (result) {\n      acc[result[0]] = result[1];\n    } else {\n      const parsedStack = stackParser(stackKey);\n\n      for (let i = parsedStack.length - 1; i >= 0; i--) {\n        const stackFrame = parsedStack[i];\n        const filename = stackFrame?.filename;\n        const debugId = debugIdMap[stackKey];\n\n        if (filename && debugId) {\n          acc[filename] = debugId;\n          parsedStackResults[stackKey] = [filename, debugId];\n          break;\n        }\n      }\n    }\n\n    return acc;\n  }, {});\n\n  return cachedFilenameDebugIds;\n}\n\n/**\n * Returns a list of debug images for the given resources.\n */\nexport function getDebugImagesForResources(\n  stackParser: StackParser,\n  resource_paths: ReadonlyArray<string>,\n): DebugImage[] {\n  const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n  if (!filenameDebugIdMap) {\n    return [];\n  }\n\n  const images: DebugImage[] = [];\n  for (const path of resource_paths) {\n    if (path && filenameDebugIdMap[path]) {\n      images.push({\n        type: 'sourcemap',\n        code_file: path,\n        debug_id: filenameDebugIdMap[path] as string,\n      });\n    }\n  }\n\n  return images;\n}\n","import { getGlobalSingleton } from '../carrier';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { ConsoleLevel } from '../types-hoist/instrument';\nimport { GLOBAL_OBJ } from './worldwide';\n\nexport interface SentryDebugLogger {\n  disable(): void;\n  enable(): void;\n  isEnabled(): boolean;\n  log(...args: Parameters<typeof console.log>): void;\n  warn(...args: Parameters<typeof console.warn>): void;\n  error(...args: Parameters<typeof console.error>): void;\n}\n\nexport const CONSOLE_LEVELS: readonly ConsoleLevel[] = [\n  'debug',\n  'info',\n  'warn',\n  'error',\n  'log',\n  'assert',\n  'trace',\n] as const;\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\n/** This may be mutated by the console instrumentation. */\nexport const originalConsoleMethods: Partial<{\n  log(...args: Parameters<typeof console.log>): void;\n  info(...args: Parameters<typeof console.info>): void;\n  warn(...args: Parameters<typeof console.warn>): void;\n  error(...args: Parameters<typeof console.error>): void;\n  debug(...args: Parameters<typeof console.debug>): void;\n  assert(...args: Parameters<typeof console.assert>): void;\n  trace(...args: Parameters<typeof console.trace>): void;\n}> = {};\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox<T>(callback: () => T): T {\n  if (!('console' in GLOBAL_OBJ)) {\n    return callback();\n  }\n\n  const console = GLOBAL_OBJ.console as Console;\n  const wrappedFuncs: Partial<Record<ConsoleLevel, (...args: unknown[]) => void>> = {};\n\n  const wrappedLevels = Object.keys(originalConsoleMethods) as ConsoleLevel[];\n\n  // Restore all wrapped console methods\n  wrappedLevels.forEach(level => {\n    const originalConsoleMethod = originalConsoleMethods[level];\n    wrappedFuncs[level] = console[level] as (...args: unknown[]) => void;\n    console[level] = originalConsoleMethod as (...args: unknown[]) => void;\n  });\n\n  try {\n    return callback();\n  } finally {\n    // Revert restoration to wrapped state\n    wrappedLevels.forEach(level => {\n      console[level] = wrappedFuncs[level] as (...args: unknown[]) => void;\n    });\n  }\n}\n\nfunction enable(): void {\n  _getLoggerSettings().enabled = true;\n}\n\nfunction disable(): void {\n  _getLoggerSettings().enabled = false;\n}\n\nfunction isEnabled(): boolean {\n  return _getLoggerSettings().enabled;\n}\n\nfunction log(...args: Parameters<typeof console.log>): void {\n  _maybeLog('log', ...args);\n}\n\nfunction info(...args: Parameters<typeof console.info>): void {\n  _maybeLog('info', ...args);\n}\n\nfunction warn(...args: Parameters<typeof console.warn>): void {\n  _maybeLog('warn', ...args);\n}\n\nfunction error(...args: Parameters<typeof console.error>): void {\n  _maybeLog('error', ...args);\n}\n\nfunction _maybeLog(level: ConsoleLevel, ...args: Parameters<(typeof console)[typeof level]>): void {\n  if (!DEBUG_BUILD) {\n    return;\n  }\n\n  if (isEnabled()) {\n    consoleSandbox(() => {\n      GLOBAL_OBJ.console[level](`${PREFIX}[${level}]:`, ...args);\n    });\n  }\n}\n\nfunction _getLoggerSettings(): { enabled: boolean } {\n  if (!DEBUG_BUILD) {\n    return { enabled: false };\n  }\n\n  return getGlobalSingleton('loggerSettings', () => ({ enabled: false }));\n}\n\n/**\n * This is a logger singleton which either logs things or no-ops if logging is not enabled.\n */\nexport const debug = {\n  /** Enable logging. */\n  enable,\n  /** Disable logging. */\n  disable,\n  /** Check if logging is enabled. */\n  isEnabled,\n  /** Log a message. */\n  log,\n  /** Log a warning. */\n  warn,\n  /** Log an error. */\n  error,\n} satisfies SentryDebugLogger;\n","import type { Client } from '../client';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { DsnComponents, DsnLike, DsnProtocol } from '../types-hoist/dsn';\nimport { consoleSandbox, debug } from './debug-logger';\n\n/** Regular expression used to extract org ID from a DSN host. */\nconst ORG_ID_REGEX = /^o(\\d+)\\./;\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n  return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n  const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n  return (\n    `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n    `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n  );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nexport function dsnFromString(str: string): DsnComponents | undefined {\n  const match = DSN_REGEX.exec(str);\n\n  if (!match) {\n    // This should be logged to the console\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.error(`Invalid Sentry Dsn: ${str}`);\n    });\n    return undefined;\n  }\n\n  const [protocol, publicKey, pass = '', host = '', port = '', lastPath = ''] = match.slice(1);\n  let path = '';\n  let projectId = lastPath;\n\n  const split = projectId.split('/');\n  if (split.length > 1) {\n    path = split.slice(0, -1).join('/');\n    projectId = split.pop() as string;\n  }\n\n  if (projectId) {\n    const projectMatch = projectId.match(/^\\d+/);\n    if (projectMatch) {\n      projectId = projectMatch[0];\n    }\n  }\n\n  return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n  return {\n    protocol: components.protocol,\n    publicKey: components.publicKey || '',\n    pass: components.pass || '',\n    host: components.host,\n    port: components.port || '',\n    path: components.path || '',\n    projectId: components.projectId,\n  };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean {\n  if (!DEBUG_BUILD) {\n    return true;\n  }\n\n  const { port, projectId, protocol } = dsn;\n\n  const requiredComponents: ReadonlyArray<keyof DsnComponents> = ['protocol', 'publicKey', 'host', 'projectId'];\n  const hasMissingRequiredComponent = requiredComponents.find(component => {\n    if (!dsn[component]) {\n      debug.error(`Invalid Sentry Dsn: ${component} missing`);\n      return true;\n    }\n    return false;\n  });\n\n  if (hasMissingRequiredComponent) {\n    return false;\n  }\n\n  if (!projectId.match(/^\\d+$/)) {\n    debug.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n    return false;\n  }\n\n  if (!isValidProtocol(protocol)) {\n    debug.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n    return false;\n  }\n\n  if (port && isNaN(parseInt(port, 10))) {\n    debug.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n    return false;\n  }\n\n  return true;\n}\n\n/**\n * Extract the org ID from a DSN host.\n *\n * @param host The host from a DSN\n * @returns The org ID if found, undefined otherwise\n */\nexport function extractOrgIdFromDsnHost(host: string): string | undefined {\n  const match = host.match(ORG_ID_REGEX);\n\n  return match?.[1];\n}\n\n/**\n *  Returns the organization ID of the client.\n *\n *  The organization ID is extracted from the DSN. If the client options include a `orgId`, this will always take precedence.\n */\nexport function extractOrgIdFromClient(client: Client): string | undefined {\n  const options = client.getOptions();\n\n  const { host } = client.getDsn() || {};\n\n  let org_id: string | undefined;\n\n  if (options.orgId) {\n    org_id = String(options.orgId);\n  } else if (host) {\n    org_id = extractOrgIdFromDsnHost(host);\n  }\n\n  return org_id;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nexport function makeDsn(from: DsnLike): DsnComponents | undefined {\n  const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n  if (!components || !validateDsn(components)) {\n    return undefined;\n  }\n  return components;\n}\n","import { getClient } from '../currentScopes';\nimport type { Options } from '../types-hoist/options';\n\n// Treeshakable guard to remove all code related to tracing\ndeclare const __SENTRY_TRACING__: boolean | undefined;\n\n/**\n * Determines if span recording is currently enabled.\n *\n * Spans are recorded when at least one of `tracesSampleRate` and `tracesSampler`\n * is defined in the SDK config. This function does not make any assumption about\n * sampling decisions, it only checks if the SDK is configured to record spans.\n *\n * Important: This function only determines if span recording is enabled. Trace\n * continuation and propagation is separately controlled and not covered by this function.\n * If this function returns `false`, traces can still be propagated (which is what\n * we refer to by \"Tracing without Performance\")\n * @see https://develop.sentry.dev/sdk/telemetry/traces/tracing-without-performance/\n *\n * @param maybeOptions An SDK options object to be passed to this function.\n * If this option is not provided, the function will use the current client's options.\n */\nexport function hasSpansEnabled(\n  maybeOptions?: Pick<Options, 'tracesSampleRate' | 'tracesSampler'> | undefined,\n): boolean {\n  if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n    return false;\n  }\n\n  const options = maybeOptions || getClient()?.getOptions();\n  return (\n    !!options &&\n    // Note: This check is `!= null`, meaning \"nullish\". `0` is not \"nullish\", `undefined` and `null` are. (This comment was brought to you by 15 minutes of questioning life)\n    (options.tracesSampleRate != null || !!options.tracesSampler)\n  );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Primitive } from '../types-hoist/misc';\nimport type { ParameterizedString } from '../types-hoist/parameterize';\nimport type { PolymorphicEvent } from '../types-hoist/polymorphics';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n  switch (objectToString.call(wat)) {\n    case '[object Error]':\n    case '[object Exception]':\n    case '[object DOMException]':\n    case '[object WebAssembly.Exception]':\n      return true;\n    default:\n      return isInstanceOf(wat, Error);\n  }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat: unknown, className: string): boolean {\n  return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n  return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n  return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n  return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n  return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isParameterizedString(wat: unknown): wat is ParameterizedString {\n  return (\n    typeof wat === 'object' &&\n    wat !== null &&\n    '__sentry_template_string__' in wat &&\n    '__sentry_template_values__' in wat\n  );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n  return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record<string, unknown> {\n  return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): wat is PolymorphicEvent {\n  return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n  return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n  return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike<any> {\n  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n  return Boolean(wat?.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n  return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat: any, base: any): boolean {\n  try {\n    return wat instanceof base;\n  } catch {\n    return false;\n  }\n}\n\ninterface VueViewModel {\n  // Vue3\n  __isVue?: boolean;\n  // Vue2\n  _isVue?: boolean;\n}\n/**\n * Checks whether given value's type is a Vue ViewModel.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isVueViewModel(wat: unknown): boolean {\n  // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n  return !!(typeof wat === 'object' && wat !== null && ((wat as VueViewModel).__isVue || (wat as VueViewModel)._isVue));\n}\n\n/**\n * Checks whether the given parameter is a Standard Web API Request instance.\n *\n * Returns false if Request is not available in the current runtime.\n */\nexport function isRequest(request: unknown): request is Request {\n  return typeof Request !== 'undefined' && isInstanceOf(request, Request);\n}\n","/**\n * Shallow merge two objects.\n * Does not mutate the passed in objects.\n * Undefined/empty values in the merge object will overwrite existing values.\n *\n * By default, this merges 2 levels deep.\n */\nexport function merge<T>(initialObj: T, mergeObj: T, levels = 2): T {\n  // If the merge value is not an object, or we have no merge levels left,\n  // we just set the value to the merge value\n  if (!mergeObj || typeof mergeObj !== 'object' || levels <= 0) {\n    return mergeObj;\n  }\n\n  // If the merge object is an empty object, and the initial object is not undefined, we return the initial object\n  if (initialObj && Object.keys(mergeObj).length === 0) {\n    return initialObj;\n  }\n\n  // Clone object\n  const output = { ...initialObj };\n\n  // Merge values into output, resursively\n  for (const key in mergeObj) {\n    if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {\n      output[key] = merge(output[key], mergeObj[key], levels - 1);\n    }\n  }\n\n  return output;\n}\n","import type { Event } from '../types-hoist/event';\nimport type { Exception } from '../types-hoist/exception';\nimport type { Mechanism } from '../types-hoist/mechanism';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\nimport { GLOBAL_OBJ } from './worldwide';\n\ninterface CryptoInternal {\n  getRandomValues(array: Uint8Array): Uint8Array;\n  randomUUID?(): string;\n}\n\n/** An interface for common properties on global */\ninterface CryptoGlobal {\n  msCrypto?: CryptoInternal;\n  crypto?: CryptoInternal;\n}\n\nfunction getCrypto(): CryptoInternal | undefined {\n  const gbl = GLOBAL_OBJ as typeof GLOBAL_OBJ & CryptoGlobal;\n  return gbl.crypto || gbl.msCrypto;\n}\n\n/**\n * UUID4 generator\n * @param crypto Object that provides the crypto API.\n * @returns string Generated UUID4.\n */\nexport function uuid4(crypto = getCrypto()): string {\n  let getRandomByte = (): number => Math.random() * 16;\n  try {\n    if (crypto?.randomUUID) {\n      return crypto.randomUUID().replace(/-/g, '');\n    }\n    if (crypto?.getRandomValues) {\n      getRandomByte = () => {\n        // crypto.getRandomValues might return undefined instead of the typed array\n        // in old Chromium versions (e.g. 23.0.1235.0 (151422))\n        // However, `typedArray` is still filled in-place.\n        // @see https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues#typedarray\n        const typedArray = new Uint8Array(1);\n        crypto.getRandomValues(typedArray);\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        return typedArray[0]!;\n      };\n    }\n  } catch {\n    // some runtimes can crash invoking crypto\n    // https://github.com/getsentry/sentry-javascript/issues/8935\n  }\n\n  // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n  // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n  return (([1e7] as unknown as string) + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c =>\n    // eslint-disable-next-line no-bitwise\n    ((c as unknown as number) ^ ((getRandomByte() & 15) >> ((c as unknown as number) / 4))).toString(16),\n  );\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n  return event.exception?.values?.[0];\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n  const { message, event_id: eventId } = event;\n  if (message) {\n    return message;\n  }\n\n  const firstException = getFirstException(event);\n  if (firstException) {\n    if (firstException.type && firstException.value) {\n      return `${firstException.type}: ${firstException.value}`;\n    }\n    return firstException.type || firstException.value || eventId || '<unknown>';\n  }\n  return eventId || '<unknown>';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n  const exception = (event.exception = event.exception || {});\n  const values = (exception.values = exception.values || []);\n  const firstException = (values[0] = values[0] || {});\n  if (!firstException.value) {\n    firstException.value = value || '';\n  }\n  if (!firstException.type) {\n    firstException.type = type || 'Error';\n  }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial<Mechanism>): void {\n  const firstException = getFirstException(event);\n  if (!firstException) {\n    return;\n  }\n\n  const defaultMechanism = { type: 'generic', handled: true };\n  const currentMechanism = firstException.mechanism;\n  firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n  if (newMechanism && 'data' in newMechanism) {\n    const mergedData = { ...currentMechanism?.data, ...newMechanism.data };\n    firstException.mechanism.data = mergedData;\n  }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n  /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n  major?: number;\n  minor?: number;\n  patch?: number;\n  prerelease?: string;\n  buildmetadata?: string;\n}\n\nfunction _parseInt(input: string | undefined): number {\n  return parseInt(input || '', 10);\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n  const match = input.match(SEMVER_REGEXP) || [];\n  const major = _parseInt(match[1]);\n  const minor = _parseInt(match[2]);\n  const patch = _parseInt(match[3]);\n  return {\n    buildmetadata: match[5],\n    major: isNaN(major) ? undefined : major,\n    minor: isNaN(minor) ? undefined : minor,\n    patch: isNaN(patch) ? undefined : patch,\n    prerelease: match[4],\n  };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n  // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n  if (frame.lineno === undefined) {\n    return;\n  }\n\n  const maxLines = lines.length;\n  const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n  frame.pre_context = lines\n    .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n    .map((line: string) => snipLine(line, 0));\n\n  // We guard here to ensure this is not larger than the existing number of lines\n  const lineIndex = Math.min(maxLines - 1, sourceLine);\n\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n  frame.context_line = snipLine(lines[lineIndex]!, frame.colno || 0);\n\n  frame.post_context = lines\n    .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n    .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n  if (isAlreadyCaptured(exception)) {\n    return true;\n  }\n\n  try {\n    // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n    // `ExtraErrorData` integration\n    addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n  } catch {\n    // `exception` is a primitive, so we can't mark it seen\n  }\n\n  return false;\n}\n\nfunction isAlreadyCaptured(exception: unknown): boolean | void {\n  try {\n    return (exception as { __sentry_captured__?: boolean }).__sentry_captured__;\n  } catch {} // eslint-disable-line no-empty\n}\n","import type { Primitive } from '../types-hoist/misc';\nimport { isSyntheticEvent, isVueViewModel } from './is';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n\ntype Prototype = { constructor?: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray<T> = { [key: string]: T };\n\ntype MemoFunc = [\n  // memoize\n  (obj: object) => boolean,\n  // unmemoize\n  (obj: object) => void,\n];\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normalized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function normalize(input: unknown, depth: number = 100, maxProperties: number = +Infinity): any {\n  try {\n    // since we're at the outermost level, we don't provide a key\n    return visit('', input, depth, maxProperties);\n  } catch (err) {\n    return { ERROR: `**non-serializable** (${err})` };\n  }\n}\n\n/** JSDoc */\nexport function normalizeToSize<T>(\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  object: { [key: string]: any },\n  // Default Node.js REPL depth\n  depth: number = 3,\n  // 100kB, as 200kB is max payload size, so half sounds reasonable\n  maxSize: number = 100 * 1024,\n): T {\n  const normalized = normalize(object, depth);\n\n  if (jsonSize(normalized) > maxSize) {\n    return normalizeToSize(object, depth - 1, maxSize);\n  }\n\n  return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n  key: string,\n  value: unknown,\n  depth: number = +Infinity,\n  maxProperties: number = +Infinity,\n  memo = memoBuilder(),\n): Primitive | ObjOrArray<unknown> {\n  const [memoize, unmemoize] = memo;\n\n  // Get the simple cases out of the way first\n  if (\n    value == null || // this matches null and undefined -> eqeq not eqeqeq\n    ['boolean', 'string'].includes(typeof value) ||\n    (typeof value === 'number' && Number.isFinite(value))\n  ) {\n    return value as Primitive;\n  }\n\n  const stringified = stringifyValue(key, value);\n\n  // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n  // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n  if (!stringified.startsWith('[object ')) {\n    return stringified;\n  }\n\n  // From here on, we can assert that `value` is either an object or an array.\n\n  // Do not normalize objects that we know have already been normalized. As a general rule, the\n  // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n  // have already been normalized.\n  if ((value as ObjOrArray<unknown>)['__sentry_skip_normalization__']) {\n    return value as ObjOrArray<unknown>;\n  }\n\n  // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n  // We keep a certain amount of depth.\n  // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n  const remainingDepth =\n    typeof (value as ObjOrArray<unknown>)['__sentry_override_normalization_depth__'] === 'number'\n      ? ((value as ObjOrArray<unknown>)['__sentry_override_normalization_depth__'] as number)\n      : depth;\n\n  // We're also done if we've reached the max depth\n  if (remainingDepth === 0) {\n    // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n    return stringified.replace('object ', '');\n  }\n\n  // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n  if (memoize(value)) {\n    return '[Circular ~]';\n  }\n\n  // If the value has a `toJSON` method, we call it to extract more information\n  const valueWithToJSON = value as unknown & { toJSON?: () => unknown };\n  if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n    try {\n      const jsonValue = valueWithToJSON.toJSON();\n      // We need to normalize the return value of `.toJSON()` in case it has circular references\n      return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n    } catch {\n      // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n    }\n  }\n\n  // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n  // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n  // property/entry, and keep track of the number of items we add to it.\n  const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray<unknown>;\n  let numAdded = 0;\n\n  // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n  // properties are non-enumerable and otherwise would get missed.\n  const visitable = convertToPlainObject(value as ObjOrArray<unknown>);\n\n  for (const visitKey in visitable) {\n    // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n    if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n      continue;\n    }\n\n    if (numAdded >= maxProperties) {\n      normalized[visitKey] = '[MaxProperties ~]';\n      break;\n    }\n\n    // Recursively visit all the child nodes\n    const visitValue = visitable[visitKey];\n    normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n    numAdded++;\n  }\n\n  // Once we've visited all the branches, remove the parent from memo storage\n  unmemoize(value);\n\n  // Return accumulated values\n  return normalized;\n}\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n  key: unknown,\n  // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n  // our internal use, it'll do\n  value: Exclude<unknown, string | number | boolean | null>,\n): string {\n  try {\n    if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n      return '[Domain]';\n    }\n\n    if (key === 'domainEmitter') {\n      return '[DomainEmitter]';\n    }\n\n    // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n    // which won't throw if they are not present.\n\n    if (typeof global !== 'undefined' && value === global) {\n      return '[Global]';\n    }\n\n    // eslint-disable-next-line no-restricted-globals\n    if (typeof window !== 'undefined' && value === window) {\n      return '[Window]';\n    }\n\n    // eslint-disable-next-line no-restricted-globals\n    if (typeof document !== 'undefined' && value === document) {\n      return '[Document]';\n    }\n\n    if (isVueViewModel(value)) {\n      return '[VueViewModel]';\n    }\n\n    // React's SyntheticEvent thingy\n    if (isSyntheticEvent(value)) {\n      return '[SyntheticEvent]';\n    }\n\n    if (typeof value === 'number' && !Number.isFinite(value)) {\n      return `[${value}]`;\n    }\n\n    if (typeof value === 'function') {\n      return `[Function: ${getFunctionName(value)}]`;\n    }\n\n    if (typeof value === 'symbol') {\n      return `[${String(value)}]`;\n    }\n\n    // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n    if (typeof value === 'bigint') {\n      return `[BigInt: ${String(value)}]`;\n    }\n\n    // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n    // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n    // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n    // we can make sure that only plain objects come out that way.\n    const objName = getConstructorName(value);\n\n    // Handle HTML Elements\n    if (/^HTML(\\w*)Element$/.test(objName)) {\n      return `[HTMLElement: ${objName}]`;\n    }\n\n    return `[object ${objName}]`;\n  } catch (err) {\n    return `**non-serializable** (${err})`;\n  }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value: unknown): string {\n  const prototype: Prototype | null = Object.getPrototypeOf(value);\n\n  return prototype?.constructor ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n  // eslint-disable-next-line no-bitwise\n  return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value: any): number {\n  return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nexport function normalizeUrlToBase(url: string, basePath: string): string {\n  const escapedBase = basePath\n    // Backslash to forward\n    .replace(/\\\\/g, '/')\n    // Escape RegExp special characters\n    .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n  let newUrl = url;\n  try {\n    newUrl = decodeURI(url);\n  } catch {\n    // Sometime this breaks\n  }\n  return (\n    newUrl\n      .replace(/\\\\/g, '/')\n      .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n      // eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor\n      .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n  );\n}\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder(): MemoFunc {\n  const inner = new WeakSet<object>();\n  function memoize(obj: object): boolean {\n    if (inner.has(obj)) {\n      return true;\n    }\n    inner.add(obj);\n    return false;\n  }\n\n  function unmemoize(obj: object): void {\n    inner.delete(obj);\n  }\n  return [memoize, unmemoize];\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { WrappedFunction } from '../types-hoist/wrappedfunction';\nimport { htmlTreeAsString } from './browser';\nimport { debug } from './debug-logger';\nimport { isElement, isError, isEvent, isInstanceOf, isPrimitive } from './is';\nimport { truncate } from './string';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * If the method on the passed object is not a function, the wrapper will not be applied.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other\n * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n  if (!(name in source)) {\n    return;\n  }\n\n  // explicitly casting to unknown because we don't know the type of the method initially at all\n  const original = source[name] as unknown;\n\n  if (typeof original !== 'function') {\n    return;\n  }\n\n  const wrapped = replacementFactory(original) as WrappedFunction;\n\n  // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n  // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n  if (typeof wrapped === 'function') {\n    markFunctionWrapped(wrapped, original);\n  }\n\n  try {\n    source[name] = wrapped;\n  } catch {\n    DEBUG_BUILD && debug.log(`Failed to replace method \"${name}\" in object`, source);\n  }\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: object, name: string, value: unknown): void {\n  try {\n    Object.defineProperty(obj, name, {\n      // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n      value: value,\n      writable: true,\n      configurable: true,\n    });\n  } catch {\n    DEBUG_BUILD && debug.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n  }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n  try {\n    const proto = original.prototype || {};\n    wrapped.prototype = original.prototype = proto;\n    addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n  } catch {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available.  See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function getOriginalFunction<T extends Function>(func: WrappedFunction<T>): T | undefined {\n  return func.__sentry_original__;\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argument itself, when value is neither an Event nor\n *  an Error.\n */\nexport function convertToPlainObject<V>(value: V):\n  | {\n      [ownProps: string]: unknown;\n      type: string;\n      target: string;\n      currentTarget: string;\n      detail?: unknown;\n    }\n  | {\n      [ownProps: string]: unknown;\n      message: string;\n      name: string;\n      stack?: string;\n    }\n  | V {\n  if (isError(value)) {\n    return {\n      message: value.message,\n      name: value.name,\n      stack: value.stack,\n      ...getOwnProperties(value),\n    };\n  } else if (isEvent(value)) {\n    const newObj: {\n      [ownProps: string]: unknown;\n      type: string;\n      target: string;\n      currentTarget: string;\n      detail?: unknown;\n    } = {\n      type: value.type,\n      target: serializeEventTarget(value.target),\n      currentTarget: serializeEventTarget(value.currentTarget),\n      ...getOwnProperties(value),\n    };\n\n    if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n      newObj.detail = value.detail;\n    }\n\n    return newObj;\n  } else {\n    return value;\n  }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n  try {\n    return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n  } catch {\n    return '<unknown>';\n  }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: unknown): { [key: string]: unknown } {\n  if (typeof obj === 'object' && obj !== null) {\n    const extractedProps: { [key: string]: unknown } = {};\n    for (const property in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, property)) {\n        extractedProps[property] = (obj as Record<string, unknown>)[property];\n      }\n    }\n    return extractedProps;\n  } else {\n    return {};\n  }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception: Record<string, unknown>, maxLength: number = 40): string {\n  const keys = Object.keys(convertToPlainObject(exception));\n  keys.sort();\n\n  const firstKey = keys[0];\n\n  if (!firstKey) {\n    return '[object has no keys]';\n  }\n\n  if (firstKey.length >= maxLength) {\n    return truncate(firstKey, maxLength);\n  }\n\n  for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n    const serialized = keys.slice(0, includedKeys).join(', ');\n    if (serialized.length > maxLength) {\n      continue;\n    }\n    if (includedKeys === keys.length) {\n      return serialized;\n    }\n    return truncate(serialized, maxLength);\n  }\n\n  return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n *\n * @deprecated This function is no longer used by the SDK and will be removed in a future major version.\n */\nexport function dropUndefinedKeys<T>(inputValue: T): T {\n  // This map keeps track of what already visited nodes map to.\n  // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n  // references as the input object.\n  const memoizationMap = new Map<unknown, unknown>();\n\n  // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n  return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys<T>(inputValue: T, memoizationMap: Map<unknown, unknown>): T {\n  // Early return for primitive values\n  if (inputValue === null || typeof inputValue !== 'object') {\n    return inputValue;\n  }\n\n  // Check memo map first for all object types\n  const memoVal = memoizationMap.get(inputValue);\n  if (memoVal !== undefined) {\n    return memoVal as T;\n  }\n\n  // handle arrays\n  if (Array.isArray(inputValue)) {\n    const returnValue: unknown[] = [];\n    // Store mapping to handle circular references\n    memoizationMap.set(inputValue, returnValue);\n\n    inputValue.forEach(value => {\n      returnValue.push(_dropUndefinedKeys(value, memoizationMap));\n    });\n\n    return returnValue as unknown as T;\n  }\n\n  if (isPojo(inputValue)) {\n    const returnValue: { [key: string]: unknown } = {};\n    // Store mapping to handle circular references\n    memoizationMap.set(inputValue, returnValue);\n\n    const keys = Object.keys(inputValue);\n\n    keys.forEach(key => {\n      const val = inputValue[key];\n      if (val !== undefined) {\n        returnValue[key] = _dropUndefinedKeys(val, memoizationMap);\n      }\n    });\n\n    return returnValue as T;\n  }\n\n  // For other object types, return as is\n  return inputValue;\n}\n\nfunction isPojo(input: unknown): input is Record<string, unknown> {\n  // Plain objects have Object as constructor or no constructor\n  const constructor = (input as object).constructor;\n  return constructor === Object || constructor === undefined;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n  let objectified;\n  switch (true) {\n    // this will catch both undefined and null\n    case wat == undefined:\n      objectified = new String(wat);\n      break;\n\n    // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n    // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n    // an object in order to wrap it.\n    case typeof wat === 'symbol' || typeof wat === 'bigint':\n      objectified = Object(wat);\n      break;\n\n    // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n    case isPrimitive(wat):\n      // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n      objectified = new (wat as any).constructor(wat);\n      break;\n\n    // by process of elimination, at this point we know that `wat` must already be an object\n    default:\n      objectified = wat;\n      break;\n  }\n  return objectified;\n}\n","/**\n * Parse a sample rate from a given value.\n * This will either return a boolean or number sample rate, if the sample rate is valid (between 0 and 1).\n * If a string is passed, we try to convert it to a number.\n *\n * Any invalid sample rate will return `undefined`.\n */\nexport function parseSampleRate(sampleRate: unknown): number | undefined {\n  if (typeof sampleRate === 'boolean') {\n    return Number(sampleRate);\n  }\n\n  const rate = typeof sampleRate === 'string' ? parseFloat(sampleRate) : sampleRate;\n  if (typeof rate !== 'number' || isNaN(rate) || rate < 0 || rate > 1) {\n    return undefined;\n  }\n\n  return rate;\n}\n","import { DEBUG_BUILD } from './debug-build';\nimport type { Event, EventHint } from './types-hoist/event';\nimport type { EventProcessor } from './types-hoist/eventprocessor';\nimport { debug } from './utils/debug-logger';\nimport { isThenable } from './utils/is';\nimport { SyncPromise } from './utils/syncpromise';\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nexport function notifyEventProcessors(\n  processors: EventProcessor[],\n  event: Event | null,\n  hint: EventHint,\n  index: number = 0,\n): PromiseLike<Event | null> {\n  return new SyncPromise<Event | null>((resolve, reject) => {\n    const processor = processors[index];\n    if (event === null || typeof processor !== 'function') {\n      resolve(event);\n    } else {\n      const result = processor({ ...event }, hint) as Event | null;\n\n      DEBUG_BUILD && processor.id && result === null && debug.log(`Event processor \"${processor.id}\" dropped event`);\n\n      if (isThenable(result)) {\n        void result\n          .then(final => notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n          .then(null, reject);\n      } else {\n        void notifyEventProcessors(processors, result, hint, index + 1)\n          .then(resolve)\n          .then(null, reject);\n      }\n    }\n  });\n}\n","import type { ScopeData } from '../scope';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext';\nimport type { Breadcrumb } from '../types-hoist/breadcrumb';\nimport type { Event } from '../types-hoist/event';\nimport type { Span } from '../types-hoist/span';\nimport { merge } from './merge';\nimport { getRootSpan, spanToJSON, spanToTraceContext } from './spanUtils';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nexport function applyScopeDataToEvent(event: Event, data: ScopeData): void {\n  const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n  // Apply general data\n  applyDataToEvent(event, data);\n\n  // We want to set the trace context for normal events only if there isn't already\n  // a trace context on the event. There is a product feature in place where we link\n  // errors with transaction and it relies on that.\n  if (span) {\n    applySpanToEvent(event, span);\n  }\n\n  applyFingerprintToEvent(event, fingerprint);\n  applyBreadcrumbsToEvent(event, breadcrumbs);\n  applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nexport function mergeScopeData(data: ScopeData, mergeData: ScopeData): void {\n  const {\n    extra,\n    tags,\n    user,\n    contexts,\n    level,\n    sdkProcessingMetadata,\n    breadcrumbs,\n    fingerprint,\n    eventProcessors,\n    attachments,\n    propagationContext,\n    transactionName,\n    span,\n  } = mergeData;\n\n  mergeAndOverwriteScopeData(data, 'extra', extra);\n  mergeAndOverwriteScopeData(data, 'tags', tags);\n  mergeAndOverwriteScopeData(data, 'user', user);\n  mergeAndOverwriteScopeData(data, 'contexts', contexts);\n\n  data.sdkProcessingMetadata = merge(data.sdkProcessingMetadata, sdkProcessingMetadata, 2);\n\n  if (level) {\n    data.level = level;\n  }\n\n  if (transactionName) {\n    data.transactionName = transactionName;\n  }\n\n  if (span) {\n    data.span = span;\n  }\n\n  if (breadcrumbs.length) {\n    data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n  }\n\n  if (fingerprint.length) {\n    data.fingerprint = [...data.fingerprint, ...fingerprint];\n  }\n\n  if (eventProcessors.length) {\n    data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n  }\n\n  if (attachments.length) {\n    data.attachments = [...data.attachments, ...attachments];\n  }\n\n  data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nexport function mergeAndOverwriteScopeData<\n  Prop extends 'extra' | 'tags' | 'user' | 'contexts' | 'sdkProcessingMetadata',\n  Data extends ScopeData,\n>(data: Data, prop: Prop, mergeVal: Data[Prop]): void {\n  data[prop] = merge(data[prop], mergeVal, 1);\n}\n\n/** Exported only for tests */\nexport function mergeArray<Prop extends 'breadcrumbs' | 'fingerprint'>(\n  event: Event,\n  prop: Prop,\n  mergeVal: ScopeData[Prop],\n): void {\n  const prevVal = event[prop];\n  // If we are not merging any new values,\n  // we only need to proceed if there was an empty array before (as we want to replace it with undefined)\n  if (!mergeVal.length && (!prevVal || prevVal.length)) {\n    return;\n  }\n\n  const merged = [...(prevVal || []), ...mergeVal] as ScopeData[Prop];\n  event[prop] = merged.length ? merged : undefined;\n}\n\nfunction applyDataToEvent(event: Event, data: ScopeData): void {\n  const { extra, tags, user, contexts, level, transactionName } = data;\n\n  if (Object.keys(extra).length) {\n    event.extra = { ...extra, ...event.extra };\n  }\n\n  if (Object.keys(tags).length) {\n    event.tags = { ...tags, ...event.tags };\n  }\n\n  if (Object.keys(user).length) {\n    event.user = { ...user, ...event.user };\n  }\n\n  if (Object.keys(contexts).length) {\n    event.contexts = { ...contexts, ...event.contexts };\n  }\n\n  if (level) {\n    event.level = level;\n  }\n\n  // transaction events get their `transaction` from the root span name\n  if (transactionName && event.type !== 'transaction') {\n    event.transaction = transactionName;\n  }\n}\n\nfunction applyBreadcrumbsToEvent(event: Event, breadcrumbs: Breadcrumb[]): void {\n  const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n  event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event: Event, sdkProcessingMetadata: ScopeData['sdkProcessingMetadata']): void {\n  event.sdkProcessingMetadata = {\n    ...event.sdkProcessingMetadata,\n    ...sdkProcessingMetadata,\n  };\n}\n\nfunction applySpanToEvent(event: Event, span: Span): void {\n  event.contexts = {\n    trace: spanToTraceContext(span),\n    ...event.contexts,\n  };\n\n  event.sdkProcessingMetadata = {\n    dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n    ...event.sdkProcessingMetadata,\n  };\n\n  const rootSpan = getRootSpan(span);\n  const transactionName = spanToJSON(rootSpan).description;\n  if (transactionName && !event.transaction && event.type === 'transaction') {\n    event.transaction = transactionName;\n  }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event: Event, fingerprint: ScopeData['fingerprint'] | undefined): void {\n  // Make sure it's an array first and we actually have something in place\n  event.fingerprint = event.fingerprint\n    ? Array.isArray(event.fingerprint)\n      ? event.fingerprint\n      : [event.fingerprint]\n    : [];\n\n  // If we have something on the scope, then merge it with event\n  if (fingerprint) {\n    event.fingerprint = event.fingerprint.concat(fingerprint);\n  }\n\n  // If we have no data at all, remove empty array default\n  if (!event.fingerprint.length) {\n    delete event.fingerprint;\n  }\n}\n","import type { Client } from '../client';\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getGlobalScope } from '../currentScopes';\nimport { notifyEventProcessors } from '../eventProcessors';\nimport type { CaptureContext, ScopeContext } from '../scope';\nimport { Scope } from '../scope';\nimport type { Event, EventHint } from '../types-hoist/event';\nimport type { ClientOptions } from '../types-hoist/options';\nimport type { StackParser } from '../types-hoist/stacktrace';\nimport { applyScopeDataToEvent, mergeScopeData } from './applyScopeDataToEvent';\nimport { getFilenameToDebugIdMap } from './debug-ids';\nimport { addExceptionMechanism, uuid4 } from './misc';\nimport { normalize } from './normalize';\nimport { truncate } from './string';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\nexport type ExclusiveEventHintOrCaptureContext =\n  | (CaptureContext & Partial<{ [key in keyof EventHint]: never }>)\n  | (EventHint & Partial<{ [key in keyof ScopeContext]: never }>);\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nexport function prepareEvent(\n  options: ClientOptions,\n  event: Event,\n  hint: EventHint,\n  scope?: Scope,\n  client?: Client,\n  isolationScope?: Scope,\n): PromiseLike<Event | null> {\n  const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = options;\n  const prepared: Event = {\n    ...event,\n    event_id: event.event_id || hint.event_id || uuid4(),\n    timestamp: event.timestamp || dateTimestampInSeconds(),\n  };\n  const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n  applyClientOptions(prepared, options);\n  applyIntegrationsMetadata(prepared, integrations);\n\n  if (client) {\n    client.emit('applyFrameMetadata', event);\n  }\n\n  // Only put debug IDs onto frames for error events.\n  if (event.type === undefined) {\n    applyDebugIds(prepared, options.stackParser);\n  }\n\n  // If we have scope given to us, use it as the base for further modifications.\n  // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n  const finalScope = getFinalScope(scope, hint.captureContext);\n\n  if (hint.mechanism) {\n    addExceptionMechanism(prepared, hint.mechanism);\n  }\n\n  const clientEventProcessors = client ? client.getEventProcessors() : [];\n\n  // This should be the last thing called, since we want that\n  // {@link Scope.addEventProcessor} gets the finished prepared event.\n  // Merge scope data together\n  const data = getGlobalScope().getScopeData();\n\n  if (isolationScope) {\n    const isolationData = isolationScope.getScopeData();\n    mergeScopeData(data, isolationData);\n  }\n\n  if (finalScope) {\n    const finalScopeData = finalScope.getScopeData();\n    mergeScopeData(data, finalScopeData);\n  }\n\n  const attachments = [...(hint.attachments || []), ...data.attachments];\n  if (attachments.length) {\n    hint.attachments = attachments;\n  }\n\n  applyScopeDataToEvent(prepared, data);\n\n  const eventProcessors = [\n    ...clientEventProcessors,\n    // Run scope event processors _after_ all other processors\n    ...data.eventProcessors,\n  ];\n\n  const result = notifyEventProcessors(eventProcessors, prepared, hint);\n\n  return result.then(evt => {\n    if (evt) {\n      // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n      // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n      // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n      // any new data\n      applyDebugMeta(evt);\n    }\n\n    if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n      return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n    }\n    return evt;\n  });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n *\n * Only exported for tests.\n *\n * @param event event instance to be enhanced\n */\nexport function applyClientOptions(event: Event, options: ClientOptions): void {\n  const { environment, release, dist, maxValueLength = 250 } = options;\n\n  // empty strings do not make sense for environment, release, and dist\n  // so we handle them the same as if they were not provided\n  event.environment = event.environment || environment || DEFAULT_ENVIRONMENT;\n\n  if (!event.release && release) {\n    event.release = release;\n  }\n\n  if (!event.dist && dist) {\n    event.dist = dist;\n  }\n\n  const request = event.request;\n  if (request?.url) {\n    request.url = truncate(request.url, maxValueLength);\n  }\n}\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nexport function applyDebugIds(event: Event, stackParser: StackParser): void {\n  // Build a map of filename -> debug_id\n  const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n  event.exception?.values?.forEach(exception => {\n    exception.stacktrace?.frames?.forEach(frame => {\n      if (frame.filename) {\n        frame.debug_id = filenameDebugIdMap[frame.filename];\n      }\n    });\n  });\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nexport function applyDebugMeta(event: Event): void {\n  // Extract debug IDs and filenames from the stack frames on the event.\n  const filenameDebugIdMap: Record<string, string> = {};\n  event.exception?.values?.forEach(exception => {\n    exception.stacktrace?.frames?.forEach(frame => {\n      if (frame.debug_id) {\n        if (frame.abs_path) {\n          filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n        } else if (frame.filename) {\n          filenameDebugIdMap[frame.filename] = frame.debug_id;\n        }\n        delete frame.debug_id;\n      }\n    });\n  });\n\n  if (Object.keys(filenameDebugIdMap).length === 0) {\n    return;\n  }\n\n  // Fill debug_meta information\n  event.debug_meta = event.debug_meta || {};\n  event.debug_meta.images = event.debug_meta.images || [];\n  const images = event.debug_meta.images;\n  Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n    images.push({\n      type: 'sourcemap',\n      code_file: filename,\n      debug_id,\n    });\n  });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event: Event, integrationNames: string[]): void {\n  if (integrationNames.length > 0) {\n    event.sdk = event.sdk || {};\n    event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n  }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n  if (!event) {\n    return null;\n  }\n\n  const normalized: Event = {\n    ...event,\n    ...(event.breadcrumbs && {\n      breadcrumbs: event.breadcrumbs.map(b => ({\n        ...b,\n        ...(b.data && {\n          data: normalize(b.data, depth, maxBreadth),\n        }),\n      })),\n    }),\n    ...(event.user && {\n      user: normalize(event.user, depth, maxBreadth),\n    }),\n    ...(event.contexts && {\n      contexts: normalize(event.contexts, depth, maxBreadth),\n    }),\n    ...(event.extra && {\n      extra: normalize(event.extra, depth, maxBreadth),\n    }),\n  };\n\n  // event.contexts.trace stores information about a Transaction. Similarly,\n  // event.spans[] stores information about child Spans. Given that a\n  // Transaction is conceptually a Span, normalization should apply to both\n  // Transactions and Spans consistently.\n  // For now the decision is to skip normalization of Transactions and Spans,\n  // so this block overwrites the normalized event to add back the original\n  // Transaction information prior to normalization.\n  if (event.contexts?.trace && normalized.contexts) {\n    normalized.contexts.trace = event.contexts.trace;\n\n    // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n    if (event.contexts.trace.data) {\n      normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n    }\n  }\n\n  // event.spans[].data may contain circular/dangerous data so we need to normalize it\n  if (event.spans) {\n    normalized.spans = event.spans.map(span => {\n      return {\n        ...span,\n        ...(span.data && {\n          data: normalize(span.data, depth, maxBreadth),\n        }),\n      };\n    });\n  }\n\n  // event.contexts.flags (FeatureFlagContext) stores context for our feature\n  // flag integrations. It has a greater nesting depth than our other typed\n  // Contexts, so we re-normalize with a fixed depth of 3 here. We do not want\n  // to skip this in case of conflicting, user-provided context.\n  if (event.contexts?.flags && normalized.contexts) {\n    normalized.contexts.flags = normalize(event.contexts.flags, 3, maxBreadth);\n  }\n\n  return normalized;\n}\n\nfunction getFinalScope(scope: Scope | undefined, captureContext: CaptureContext | undefined): Scope | undefined {\n  if (!captureContext) {\n    return scope;\n  }\n\n  const finalScope = scope ? scope.clone() : new Scope();\n  finalScope.update(captureContext);\n  return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nexport function parseEventHintOrCaptureContext(\n  hint: ExclusiveEventHintOrCaptureContext | undefined,\n): EventHint | undefined {\n  if (!hint) {\n    return undefined;\n  }\n\n  // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n  if (hintIsScopeOrFunction(hint)) {\n    return { captureContext: hint };\n  }\n\n  if (hintIsScopeContext(hint)) {\n    return {\n      captureContext: hint,\n    };\n  }\n\n  return hint;\n}\n\nfunction hintIsScopeOrFunction(hint: CaptureContext | EventHint): hint is Scope | ((scope: Scope) => Scope) {\n  return hint instanceof Scope || typeof hint === 'function';\n}\n\ntype ScopeContextProperty = keyof ScopeContext;\nconst captureContextKeys: readonly ScopeContextProperty[] = [\n  'user',\n  'level',\n  'extra',\n  'contexts',\n  'tags',\n  'fingerprint',\n  'propagationContext',\n] as const;\n\nfunction hintIsScopeContext(hint: Partial<ScopeContext> | EventHint): hint is Partial<ScopeContext> {\n  return Object.keys(hint).some(key => captureContextKeys.includes(key as ScopeContextProperty));\n}\n","import { uuid4 } from './misc';\n\n/**\n * Generate a random, valid trace ID.\n */\nexport function generateTraceId(): string {\n  return uuid4();\n}\n\n/**\n * Generate a random, valid span ID.\n */\nexport function generateSpanId(): string {\n  return uuid4().substring(16);\n}\n","import type { Scope } from '../scope';\nimport type { Span } from '../types-hoist/span';\nimport { addNonEnumerableProperty } from '../utils/object';\n\nconst SCOPE_SPAN_FIELD = '_sentrySpan';\n\ntype ScopeWithMaybeSpan = Scope & {\n  [SCOPE_SPAN_FIELD]?: Span;\n};\n\n/**\n * Set the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nexport function _setSpanForScope(scope: Scope, span: Span | undefined): void {\n  if (span) {\n    addNonEnumerableProperty(scope as ScopeWithMaybeSpan, SCOPE_SPAN_FIELD, span);\n  } else {\n    // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n    delete (scope as ScopeWithMaybeSpan)[SCOPE_SPAN_FIELD];\n  }\n}\n\n/**\n * Get the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nexport function _getSpanForScope(scope: ScopeWithMaybeSpan): Span | undefined {\n  return scope[SCOPE_SPAN_FIELD];\n}\n","import { getAsyncContextStrategy } from '../asyncContext';\nimport { getMainCarrier } from '../carrier';\nimport { getCurrentScope } from '../currentScopes';\nimport {\n  SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '../semanticAttributes';\nimport type { SentrySpan } from '../tracing/sentrySpan';\nimport { SPAN_STATUS_OK, SPAN_STATUS_UNSET } from '../tracing/spanstatus';\nimport { getCapturedScopesOnSpan } from '../tracing/utils';\nimport type { TraceContext } from '../types-hoist/context';\nimport type { SpanLink, SpanLinkJSON } from '../types-hoist/link';\nimport type { Span, SpanAttributes, SpanJSON, SpanOrigin, SpanTimeInput } from '../types-hoist/span';\nimport type { SpanStatus } from '../types-hoist/spanStatus';\nimport { addNonEnumerableProperty } from '../utils/object';\nimport { generateSpanId } from '../utils/propagationContext';\nimport { timestampInSeconds } from '../utils/time';\nimport { generateSentryTraceHeader } from '../utils/tracing';\nimport { consoleSandbox } from './debug-logger';\nimport { _getSpanForScope } from './spanOnScope';\n\n// These are aligned with OpenTelemetry trace flags\nexport const TRACE_FLAG_NONE = 0x0;\nexport const TRACE_FLAG_SAMPLED = 0x1;\n\nlet hasShownSpanDropWarning = false;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nexport function spanToTransactionTraceContext(span: Span): TraceContext {\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n  const { data, op, parent_span_id, status, origin, links } = spanToJSON(span);\n\n  return {\n    parent_span_id,\n    span_id,\n    trace_id,\n    data,\n    op,\n    status,\n    origin,\n    links,\n  };\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nexport function spanToTraceContext(span: Span): TraceContext {\n  const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n\n  // If the span is remote, we use a random/virtual span as span_id to the trace context,\n  // and the remote span as parent_span_id\n  const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n  const scope = getCapturedScopesOnSpan(span).scope;\n\n  const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n\n  return {\n    parent_span_id,\n    span_id,\n    trace_id,\n  };\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nexport function spanToTraceHeader(span: Span): string {\n  const { traceId, spanId } = span.spanContext();\n  const sampled = spanIsSampled(span);\n  return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n *  Converts the span links array to a flattened version to be sent within an envelope.\n *\n *  If the links array is empty, it returns `undefined` so the empty value can be dropped before it's sent.\n */\nexport function convertSpanLinksForEnvelope(links?: SpanLink[]): SpanLinkJSON[] | undefined {\n  if (links && links.length > 0) {\n    return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n      span_id: spanId,\n      trace_id: traceId,\n      sampled: traceFlags === TRACE_FLAG_SAMPLED,\n      attributes,\n      ...restContext,\n    }));\n  } else {\n    return undefined;\n  }\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nexport function spanTimeInputToSeconds(input: SpanTimeInput | undefined): number {\n  if (typeof input === 'number') {\n    return ensureTimestampInSeconds(input);\n  }\n\n  if (Array.isArray(input)) {\n    // See {@link HrTime} for the array-based time format\n    return input[0] + input[1] / 1e9;\n  }\n\n  if (input instanceof Date) {\n    return ensureTimestampInSeconds(input.getTime());\n  }\n\n  return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp: number): number {\n  const isMs = timestamp > 9999999999;\n  return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nexport function spanToJSON(span: Span): SpanJSON {\n  if (spanIsSentrySpan(span)) {\n    return span.getSpanJSON();\n  }\n\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n  // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n  if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n    const { attributes, startTime, name, endTime, status, links } = span;\n\n    // In preparation for the next major of OpenTelemetry, we want to support\n    // looking up the parent span id according to the new API\n    // In OTel v1, the parent span id is accessed as `parentSpanId`\n    // In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`\n    const parentSpanId =\n      'parentSpanId' in span\n        ? span.parentSpanId\n        : 'parentSpanContext' in span\n          ? (span.parentSpanContext as { spanId?: string } | undefined)?.spanId\n          : undefined;\n\n    return {\n      span_id,\n      trace_id,\n      data: attributes,\n      description: name,\n      parent_span_id: parentSpanId,\n      start_timestamp: spanTimeInputToSeconds(startTime),\n      // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n      timestamp: spanTimeInputToSeconds(endTime) || undefined,\n      status: getStatusMessage(status),\n      op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n      origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined,\n      links: convertSpanLinksForEnvelope(links),\n    };\n  }\n\n  // Finally, at least we have `spanContext()`....\n  // This should not actually happen in reality, but we need to handle it for type safety.\n  return {\n    span_id,\n    trace_id,\n    start_timestamp: 0,\n    data: {},\n  };\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span: Span): span is OpenTelemetrySdkTraceBaseSpan {\n  const castSpan = span as Partial<OpenTelemetrySdkTraceBaseSpan>;\n  return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\nexport interface OpenTelemetrySdkTraceBaseSpan extends Span {\n  attributes: SpanAttributes;\n  startTime: SpanTimeInput;\n  name: string;\n  status: SpanStatus;\n  endTime: SpanTimeInput;\n  parentSpanId?: string;\n  links?: SpanLink[];\n}\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span: Span): span is SentrySpan {\n  return typeof (span as SentrySpan).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nexport function spanIsSampled(span: Span): boolean {\n  // We align our trace flags with the ones OpenTelemetry use\n  // So we also check for sampled the same way they do.\n  const { traceFlags } = span.spanContext();\n  return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nexport function getStatusMessage(status: SpanStatus | undefined): string | undefined {\n  if (!status || status.code === SPAN_STATUS_UNSET) {\n    return undefined;\n  }\n\n  if (status.code === SPAN_STATUS_OK) {\n    return 'ok';\n  }\n\n  return status.message || 'unknown_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\ntype SpanWithPotentialChildren = Span & {\n  [CHILD_SPANS_FIELD]?: Set<Span>;\n  [ROOT_SPAN_FIELD]?: Span;\n};\n\n/**\n * Adds an opaque child span reference to a span.\n */\nexport function addChildSpanToSpan(span: SpanWithPotentialChildren, childSpan: Span): void {\n  // We store the root span reference on the child span\n  // We need this for `getRootSpan()` to work\n  const rootSpan = span[ROOT_SPAN_FIELD] || span;\n  addNonEnumerableProperty(childSpan as SpanWithPotentialChildren, ROOT_SPAN_FIELD, rootSpan);\n\n  // We store a list of child spans on the parent span\n  // We need this for `getSpanDescendants()` to work\n  if (span[CHILD_SPANS_FIELD]) {\n    span[CHILD_SPANS_FIELD].add(childSpan);\n  } else {\n    addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n  }\n}\n\n/** This is only used internally by Idle Spans. */\nexport function removeChildSpanFromSpan(span: SpanWithPotentialChildren, childSpan: Span): void {\n  if (span[CHILD_SPANS_FIELD]) {\n    span[CHILD_SPANS_FIELD].delete(childSpan);\n  }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nexport function getSpanDescendants(span: SpanWithPotentialChildren): Span[] {\n  const resultSet = new Set<Span>();\n\n  function addSpanChildren(span: SpanWithPotentialChildren): void {\n    // This exit condition is required to not infinitely loop in case of a circular dependency.\n    if (resultSet.has(span)) {\n      return;\n      // We want to ignore unsampled spans (e.g. non recording spans)\n    } else if (spanIsSampled(span)) {\n      resultSet.add(span);\n      const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n      for (const childSpan of childSpans) {\n        addSpanChildren(childSpan);\n      }\n    }\n  }\n\n  addSpanChildren(span);\n\n  return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nexport function getRootSpan(span: SpanWithPotentialChildren): Span {\n  return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nexport function getActiveSpan(): Span | undefined {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.getActiveSpan) {\n    return acs.getActiveSpan();\n  }\n\n  return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Logs a warning once if `beforeSendSpan` is used to drop spans.\n */\nexport function showSpanDropWarning(): void {\n  if (!hasShownSpanDropWarning) {\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.warn(\n        '[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly.',\n      );\n    });\n    hasShownSpanDropWarning = true;\n  }\n}\n\n/**\n * Updates the name of the given span and ensures that the span name is not\n * overwritten by the Sentry SDK.\n *\n * Use this function instead of `span.updateName()` if you want to make sure that\n * your name is kept. For some spans, for example root `http.server` spans the\n * Sentry SDK would otherwise overwrite the span name with a high-quality name\n * it infers when the span ends.\n *\n * Use this function in server code or when your span is started on the server\n * and on the client (browser). If you only update a span name on the client,\n * you can also use `span.updateName()` the SDK does not overwrite the name.\n *\n * @param span - The span to update the name of.\n * @param name - The name to set on the span.\n */\nexport function updateSpanName(span: Span, name: string): void {\n  span.updateName(name);\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n    [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name,\n  });\n}\n","import type { Event } from '../types-hoist/event';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport type { StackLineParser, StackParser } from '../types-hoist/stacktrace';\n\nconst STACKTRACE_FRAME_LIMIT = 50;\nexport const UNKNOWN_FUNCTION = '?';\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n  const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n  return (stack: string, skipFirstLines: number = 0, framesToPop: number = 0): StackFrame[] => {\n    const frames: StackFrame[] = [];\n    const lines = stack.split('\\n');\n\n    for (let i = skipFirstLines; i < lines.length; i++) {\n      let line = lines[i] as string;\n      // Truncate lines over 1kb because many of the regular expressions use\n      // backtracking which results in run time that increases exponentially\n      // with input size. Huge strings can result in hangs/Denial of Service:\n      // https://github.com/getsentry/sentry-javascript/issues/2286\n      if (line.length > 1024) {\n        line = line.slice(0, 1024);\n      }\n\n      // https://github.com/getsentry/sentry-javascript/issues/5459\n      // Remove webpack (error: *) wrappers\n      const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n      // https://github.com/getsentry/sentry-javascript/issues/7813\n      // Skip Error: lines\n      if (cleanedLine.match(/\\S*Error: /)) {\n        continue;\n      }\n\n      for (const parser of sortedParsers) {\n        const frame = parser(cleanedLine);\n\n        if (frame) {\n          frames.push(frame);\n          break;\n        }\n      }\n\n      if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n        break;\n      }\n    }\n\n    return stripSentryFramesAndReverse(frames.slice(framesToPop));\n  };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nexport function stackParserFromStackParserOptions(stackParser: StackParser | StackLineParser[]): StackParser {\n  if (Array.isArray(stackParser)) {\n    return createStackParser(...stackParser);\n  }\n  return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: ReadonlyArray<StackFrame>): StackFrame[] {\n  if (!stack.length) {\n    return [];\n  }\n\n  const localStack = Array.from(stack);\n\n  // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n  if (/sentryWrapped/.test(getLastStackFrame(localStack).function || '')) {\n    localStack.pop();\n  }\n\n  // Reversing in the middle of the procedure allows us to just pop the values off the stack\n  localStack.reverse();\n\n  // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n  if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n    localStack.pop();\n\n    // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n    // is produced within the scope itself, making it:\n    //\n    //   Sentry.captureException()\n    //   scope.captureException()\n    //\n    // instead of just the top `Sentry` call itself.\n    // This forces us to possibly strip an additional frame in the exact same was as above.\n    if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n      localStack.pop();\n    }\n  }\n\n  return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n    ...frame,\n    filename: frame.filename || getLastStackFrame(localStack).filename,\n    function: frame.function || UNKNOWN_FUNCTION,\n  }));\n}\n\nfunction getLastStackFrame(arr: StackFrame[]): StackFrame {\n  return arr[arr.length - 1] || {};\n}\n\nconst defaultFunctionName = '<anonymous>';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n  try {\n    if (!fn || typeof fn !== 'function') {\n      return defaultFunctionName;\n    }\n    return fn.name || defaultFunctionName;\n  } catch {\n    // Just accessing custom props in some Selenium environments\n    // can cause a \"Permission denied\" exception (see raven-js#495).\n    return defaultFunctionName;\n  }\n}\n\n/**\n * Get's stack frames from an event without needing to check for undefined properties.\n */\nexport function getFramesFromEvent(event: Event): StackFrame[] | undefined {\n  const exception = event.exception;\n\n  if (exception) {\n    const frames: StackFrame[] = [];\n    try {\n      // @ts-expect-error Object could be undefined\n      exception.values.forEach(value => {\n        // @ts-expect-error Value could be undefined\n        if (value.stacktrace.frames) {\n          // @ts-expect-error Value could be undefined\n          frames.push(...value.stacktrace.frames);\n        }\n      });\n      return frames;\n    } catch {\n      return undefined;\n    }\n  }\n  return undefined;\n}\n","import { isRegExp, isString, isVueViewModel } from './is';\n\nexport { escapeStringForRegex } from '../vendor/escapeStringForRegex';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n  if (typeof str !== 'string' || max === 0) {\n    return str;\n  }\n  return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n  let newLine = line;\n  const lineLength = newLine.length;\n  if (lineLength <= 150) {\n    return newLine;\n  }\n  if (colno > lineLength) {\n    // eslint-disable-next-line no-param-reassign\n    colno = lineLength;\n  }\n\n  let start = Math.max(colno - 60, 0);\n  if (start < 5) {\n    start = 0;\n  }\n\n  let end = Math.min(start + 140, lineLength);\n  if (end > lineLength - 5) {\n    end = lineLength;\n  }\n  if (end === lineLength) {\n    start = Math.max(end - 140, 0);\n  }\n\n  newLine = newLine.slice(start, end);\n  if (start > 0) {\n    newLine = `'{snip} ${newLine}`;\n  }\n  if (end < lineLength) {\n    newLine += ' {snip}';\n  }\n\n  return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nexport function safeJoin(input: unknown[], delimiter?: string): string {\n  if (!Array.isArray(input)) {\n    return '';\n  }\n\n  const output = [];\n  // eslint-disable-next-line @typescript-eslint/prefer-for-of\n  for (let i = 0; i < input.length; i++) {\n    const value = input[i];\n    try {\n      // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n      // console warnings. This happens when a Vue template is rendered with\n      // an undeclared variable, which we try to stringify, ultimately causing\n      // Vue to issue another warning which repeats indefinitely.\n      // see: https://github.com/getsentry/sentry-javascript/pull/8981\n      if (isVueViewModel(value)) {\n        output.push('[VueViewModel]');\n      } else {\n        output.push(String(value));\n      }\n    } catch {\n      output.push('[value cannot be serialized]');\n    }\n  }\n\n  return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nexport function isMatchingPattern(\n  value: string,\n  pattern: RegExp | string,\n  requireExactStringMatch: boolean = false,\n): boolean {\n  if (!isString(value)) {\n    return false;\n  }\n\n  if (isRegExp(pattern)) {\n    return pattern.test(value);\n  }\n  if (isString(pattern)) {\n    return requireExactStringMatch ? value === pattern : value.includes(pattern);\n  }\n\n  return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nexport function stringMatchesSomePattern(\n  testString: string,\n  patterns: Array<string | RegExp> = [],\n  requireExactStringMatch: boolean = false,\n): boolean {\n  return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst STATE_PENDING = 0;\nconst STATE_RESOLVED = 1;\nconst STATE_REJECTED = 2;\n\ntype State = typeof STATE_PENDING | typeof STATE_RESOLVED | typeof STATE_REJECTED;\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\nexport function resolvedSyncPromise(): PromiseLike<void>;\nexport function resolvedSyncPromise<T>(value: T | PromiseLike<T>): PromiseLike<T>;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise<T>(value?: T | PromiseLike<T>): PromiseLike<T> {\n  return new SyncPromise(resolve => {\n    resolve(value);\n  });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise<T = never>(reason?: any): PromiseLike<T> {\n  return new SyncPromise((_, reject) => {\n    reject(reason);\n  });\n}\n\ntype Executor<T> = (resolve: (value?: T | PromiseLike<T> | null) => void, reject: (reason?: any) => void) => void;\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nexport class SyncPromise<T> implements PromiseLike<T> {\n  private _state: State;\n  private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]>;\n  private _value: any;\n\n  public constructor(executor: Executor<T>) {\n    this._state = STATE_PENDING;\n    this._handlers = [];\n\n    this._runExecutor(executor);\n  }\n\n  /** @inheritdoc */\n  public then<TResult1 = T, TResult2 = never>(\n    onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,\n    onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null,\n  ): PromiseLike<TResult1 | TResult2> {\n    return new SyncPromise((resolve, reject) => {\n      this._handlers.push([\n        false,\n        result => {\n          if (!onfulfilled) {\n            // TODO: ¯\\_(ツ)_/¯\n            // TODO: FIXME\n            resolve(result as any);\n          } else {\n            try {\n              resolve(onfulfilled(result));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        },\n        reason => {\n          if (!onrejected) {\n            reject(reason);\n          } else {\n            try {\n              resolve(onrejected(reason));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        },\n      ]);\n      this._executeHandlers();\n    });\n  }\n\n  /** @inheritdoc */\n  public catch<TResult = never>(\n    onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null,\n  ): PromiseLike<T | TResult> {\n    return this.then(val => val, onrejected);\n  }\n\n  /** @inheritdoc */\n  public finally<TResult>(onfinally?: (() => void) | null): PromiseLike<TResult> {\n    return new SyncPromise<TResult>((resolve, reject) => {\n      let val: TResult | any;\n      let isRejected: boolean;\n\n      return this.then(\n        value => {\n          isRejected = false;\n          val = value;\n          if (onfinally) {\n            onfinally();\n          }\n        },\n        reason => {\n          isRejected = true;\n          val = reason;\n          if (onfinally) {\n            onfinally();\n          }\n        },\n      ).then(() => {\n        if (isRejected) {\n          reject(val);\n          return;\n        }\n\n        resolve(val as unknown as any);\n      });\n    });\n  }\n\n  /** Excute the resolve/reject handlers. */\n  private _executeHandlers(): void {\n    if (this._state === STATE_PENDING) {\n      return;\n    }\n\n    const cachedHandlers = this._handlers.slice();\n    this._handlers = [];\n\n    cachedHandlers.forEach(handler => {\n      if (handler[0]) {\n        return;\n      }\n\n      if (this._state === STATE_RESOLVED) {\n        handler[1](this._value as unknown as any);\n      }\n\n      if (this._state === STATE_REJECTED) {\n        handler[2](this._value);\n      }\n\n      handler[0] = true;\n    });\n  }\n\n  /** Run the executor for the SyncPromise. */\n  private _runExecutor(executor: Executor<T>): void {\n    const setResult = (state: State, value?: T | PromiseLike<T> | any): void => {\n      if (this._state !== STATE_PENDING) {\n        return;\n      }\n\n      if (isThenable(value)) {\n        void (value as PromiseLike<T>).then(resolve, reject);\n        return;\n      }\n\n      this._state = state;\n      this._value = value;\n\n      this._executeHandlers();\n    };\n\n    const resolve = (value: unknown): void => {\n      setResult(STATE_RESOLVED, value);\n    };\n\n    const reject = (reason: unknown): void => {\n      setResult(STATE_REJECTED, reason);\n    };\n\n    try {\n      executor(resolve, reject);\n    } catch (e) {\n      reject(e);\n    }\n  }\n}\n","import { GLOBAL_OBJ } from './worldwide';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n  /**\n   * The millisecond timestamp at which measurement began, measured in Unix time.\n   */\n  timeOrigin: number;\n  /**\n   * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n   */\n  now(): number;\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport function dateTimestampInSeconds(): number {\n  return Date.now() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc(): () => number {\n  const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & { performance?: Performance };\n  // Some browser and environments don't have a performance or timeOrigin, so we fallback to\n  // using Date.now() to compute the starting time.\n  if (!performance?.now || !performance.timeOrigin) {\n    return dateTimestampInSeconds;\n  }\n\n  const timeOrigin = performance.timeOrigin;\n\n  // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n  // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n  //\n  // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n  // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n  // correct for this.\n  // See: https://github.com/getsentry/sentry-javascript/issues/2590\n  // See: https://github.com/mdn/content/issues/4713\n  // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n  return () => {\n    return (timeOrigin + performance.now()) / ONE_SECOND_IN_MS;\n  };\n}\n\nlet _cachedTimestampInSeconds: (() => number) | undefined;\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport function timestampInSeconds(): number {\n  // We store this in a closure so that we don't have to create a new function every time this is called.\n  const func = _cachedTimestampInSeconds ?? (_cachedTimestampInSeconds = createUnixTimestampInSecondsFunc());\n  return func();\n}\n\n/**\n * Cached result of getBrowserTimeOrigin.\n */\nlet cachedTimeOrigin: [number | undefined, string] | undefined;\n\n/**\n * Gets the time origin and the mode used to determine it.\n */\nfunction getBrowserTimeOrigin(): [number | undefined, string] {\n  // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n  // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n  // data as reliable if they are within a reasonable threshold of the current time.\n\n  const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n  if (!performance?.now) {\n    return [undefined, 'none'];\n  }\n\n  const threshold = 3600 * 1000;\n  const performanceNow = performance.now();\n  const dateNow = Date.now();\n\n  // if timeOrigin isn't available set delta to threshold so it isn't used\n  const timeOriginDelta = performance.timeOrigin\n    ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n    : threshold;\n  const timeOriginIsReliable = timeOriginDelta < threshold;\n\n  // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n  // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n  // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n  // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n  // Date API.\n  // eslint-disable-next-line deprecation/deprecation\n  const navigationStart = performance.timing?.navigationStart;\n  const hasNavigationStart = typeof navigationStart === 'number';\n  // if navigationStart isn't available set delta to threshold so it isn't used\n  const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n  const navigationStartIsReliable = navigationStartDelta < threshold;\n\n  if (timeOriginIsReliable || navigationStartIsReliable) {\n    // Use the more reliable time origin\n    if (timeOriginDelta <= navigationStartDelta) {\n      return [performance.timeOrigin, 'timeOrigin'];\n    } else {\n      return [navigationStart, 'navigationStart'];\n    }\n  }\n\n  // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n  return [dateNow, 'dateNow'];\n}\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport function browserPerformanceTimeOrigin(): number | undefined {\n  if (!cachedTimeOrigin) {\n    cachedTimeOrigin = getBrowserTimeOrigin();\n  }\n\n  return cachedTimeOrigin[0];\n}\n","import type { Client } from '../client';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport type { PropagationContext } from '../types-hoist/tracing';\nimport type { TraceparentData } from '../types-hoist/transaction';\nimport { debug } from '../utils/debug-logger';\nimport { baggageHeaderToDynamicSamplingContext } from './baggage';\nimport { extractOrgIdFromClient } from './dsn';\nimport { parseSampleRate } from './parseSampleRate';\nimport { generateSpanId, generateTraceId } from './propagationContext';\n\n// eslint-disable-next-line @sentry-internal/sdk/no-regexp-constructor -- RegExp is used for readability here\nexport const TRACEPARENT_REGEXP = new RegExp(\n  '^[ \\\\t]*' + // whitespace\n    '([0-9a-f]{32})?' + // trace_id\n    '-?([0-9a-f]{16})?' + // span_id\n    '-?([01])?' + // sampled\n    '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent?: string): TraceparentData | undefined {\n  if (!traceparent) {\n    return undefined;\n  }\n\n  const matches = traceparent.match(TRACEPARENT_REGEXP);\n  if (!matches) {\n    return undefined;\n  }\n\n  let parentSampled: boolean | undefined;\n  if (matches[3] === '1') {\n    parentSampled = true;\n  } else if (matches[3] === '0') {\n    parentSampled = false;\n  }\n\n  return {\n    traceId: matches[1],\n    parentSampled,\n    parentSpanId: matches[2],\n  };\n}\n\n/**\n * Create a propagation context from incoming headers or\n * creates a minimal new one if the headers are undefined.\n */\nexport function propagationContextFromHeaders(\n  sentryTrace: string | undefined,\n  baggage: string | number | boolean | string[] | null | undefined,\n): PropagationContext {\n  const traceparentData = extractTraceparentData(sentryTrace);\n  const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n  if (!traceparentData?.traceId) {\n    return {\n      traceId: generateTraceId(),\n      sampleRand: Math.random(),\n    };\n  }\n\n  const sampleRand = getSampleRandFromTraceparentAndDsc(traceparentData, dynamicSamplingContext);\n\n  // The sample_rand on the DSC needs to be generated based on traceparent + baggage.\n  if (dynamicSamplingContext) {\n    dynamicSamplingContext.sample_rand = sampleRand.toString();\n  }\n\n  const { traceId, parentSpanId, parentSampled } = traceparentData;\n\n  return {\n    traceId,\n    parentSpanId,\n    sampled: parentSampled,\n    dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n    sampleRand,\n  };\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nexport function generateSentryTraceHeader(\n  traceId: string | undefined = generateTraceId(),\n  spanId: string | undefined = generateSpanId(),\n  sampled?: boolean,\n): string {\n  let sampledString = '';\n  if (sampled !== undefined) {\n    sampledString = sampled ? '-1' : '-0';\n  }\n  return `${traceId}-${spanId}${sampledString}`;\n}\n\n/**\n * Given any combination of an incoming trace, generate a sample rand based on its defined semantics.\n *\n * Read more: https://develop.sentry.dev/sdk/telemetry/traces/#propagated-random-value\n */\nfunction getSampleRandFromTraceparentAndDsc(\n  traceparentData: TraceparentData | undefined,\n  dsc: Partial<DynamicSamplingContext> | undefined,\n): number {\n  // When there is an incoming sample rand use it.\n  const parsedSampleRand = parseSampleRate(dsc?.sample_rand);\n  if (parsedSampleRand !== undefined) {\n    return parsedSampleRand;\n  }\n\n  // Otherwise, if there is an incoming sampling decision + sample rate, generate a sample rand that would lead to the same sampling decision.\n  const parsedSampleRate = parseSampleRate(dsc?.sample_rate);\n  if (parsedSampleRate && traceparentData?.parentSampled !== undefined) {\n    return traceparentData.parentSampled\n      ? // Returns a sample rand with positive sampling decision [0, sampleRate)\n        Math.random() * parsedSampleRate\n      : // Returns a sample rand with negative sampling decision [sampleRate, 1)\n        parsedSampleRate + Math.random() * (1 - parsedSampleRate);\n  } else {\n    // If nothing applies, return a random sample rand.\n    return Math.random();\n  }\n}\n\n/**\n * Determines whether a new trace should be continued based on the provided baggage org ID and the client's `strictTraceContinuation` option.\n * If the trace should not be continued, a new trace will be started.\n *\n * The result is dependent on the `strictTraceContinuation` option in the client.\n * See https://develop.sentry.dev/sdk/telemetry/traces/#stricttracecontinuation\n */\nexport function shouldContinueTrace(client: Client, baggageOrgId?: string): boolean {\n  const clientOrgId = extractOrgIdFromClient(client);\n\n  // Case: baggage orgID and Client orgID don't match - always start new trace\n  if (baggageOrgId && clientOrgId && baggageOrgId !== clientOrgId) {\n    debug.log(\n      `Won't continue trace because org IDs don't match (incoming baggage: ${baggageOrgId}, SDK options: ${clientOrgId})`,\n    );\n    return false;\n  }\n\n  const strictTraceContinuation = client.getOptions().strictTraceContinuation || false; // default for `strictTraceContinuation` is `false`\n\n  if (strictTraceContinuation) {\n    // With strict continuation enabled, don't continue trace if:\n    // - Baggage has orgID, but Client doesn't have one\n    // - Client has orgID, but baggage doesn't have one\n    if ((baggageOrgId && !clientOrgId) || (!baggageOrgId && clientOrgId)) {\n      debug.log(\n        `Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${baggageOrgId}, Sentry client: ${clientOrgId})`,\n      );\n      return false;\n    }\n  }\n\n  return true;\n}\n","// This is a magic string replaced by rollup\ndeclare const __SENTRY_SDK_VERSION__: string;\n\nexport const SDK_VERSION = typeof __SENTRY_SDK_VERSION__ === 'string' ? __SENTRY_SDK_VERSION__ : '0.0.0-unknown.0';\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the `debug` singleton, or b) put your function elsewhere.\n *\n * Note: This file was originally called `global.ts`, but was changed to unblock users which might be doing\n * string replaces with bundlers like Vite for `global` (would break imports that rely on importing from utils/src/global).\n *\n * Why worldwide?\n *\n * Why not?\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Carrier } from '../carrier';\nimport type { SdkSource } from './env';\n\n/** Internal global with common properties and Sentry extensions  */\nexport type InternalGlobal = {\n  navigator?: { userAgent?: string; maxTouchPoints?: number };\n  console: Console;\n  PerformanceObserver?: any;\n  Sentry?: any;\n  onerror?: {\n    (event: object | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\n    __SENTRY_INSTRUMENTED__?: true;\n  };\n  onunhandledrejection?: {\n    (event: unknown): boolean;\n    __SENTRY_INSTRUMENTED__?: true;\n  };\n  SENTRY_ENVIRONMENT?: string;\n  SENTRY_DSN?: string;\n  SENTRY_RELEASE?: {\n    id?: string;\n  };\n  SENTRY_SDK_SOURCE?: SdkSource;\n  /**\n   * Debug IDs are indirectly injected by Sentry CLI or bundler plugins to directly reference a particular source map\n   * for resolving of a source file. The injected code will place an entry into the record for each loaded bundle/JS\n   * file.\n   */\n  _sentryDebugIds?: Record<string, string>;\n  /**\n   * Raw module metadata that is injected by bundler plugins.\n   *\n   * Keys are `error.stack` strings, values are the metadata.\n   */\n  _sentryModuleMetadata?: Record<string, any>;\n  _sentryEsmLoaderHookRegistered?: boolean;\n} & Carrier;\n\n/** Get's the global object for the current JavaScript runtime */\nexport const GLOBAL_OBJ = globalThis as unknown as InternalGlobal;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nexport default baseUnary;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\nexport default isIterateeCall;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nexport default baseTrim;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nexport default debounce;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nexport default listCacheSet;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nexport default hashSet;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nexport default mapCacheSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nexport default stackSet;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n  if ((value !== undefined && !eq(object[key], value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nexport default assignMergeValue;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\nexport default createBaseFor;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n  buffer.copy(result);\n  return result;\n}\n\nexport default cloneBuffer;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\nexport default cloneArrayBuffer;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\nexport default baseCreate;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nexport default overArg;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nexport default isPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nexport default stubFalse;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n    return false;\n  }\n  var proto = getPrototype(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n    funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n  if (key === 'constructor' && typeof object[key] === 'function') {\n    return;\n  }\n\n  if (key == '__proto__') {\n    return;\n  }\n\n  return object[key];\n}\n\nexport default safeGet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nexport default assignValue;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nexport default baseTimes;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n  return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\nexport default copyObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n  var objValue = safeGet(object, key),\n      srcValue = safeGet(source, key),\n      stacked = stack.get(srcValue);\n\n  if (stacked) {\n    assignMergeValue(object, key, stacked);\n    return;\n  }\n  var newValue = customizer\n    ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n    : undefined;\n\n  var isCommon = newValue === undefined;\n\n  if (isCommon) {\n    var isArr = isArray(srcValue),\n        isBuff = !isArr && isBuffer(srcValue),\n        isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n    newValue = srcValue;\n    if (isArr || isBuff || isTyped) {\n      if (isArray(objValue)) {\n        newValue = objValue;\n      }\n      else if (isArrayLikeObject(objValue)) {\n        newValue = copyArray(objValue);\n      }\n      else if (isBuff) {\n        isCommon = false;\n        newValue = cloneBuffer(srcValue, true);\n      }\n      else if (isTyped) {\n        isCommon = false;\n        newValue = cloneTypedArray(srcValue, true);\n      }\n      else {\n        newValue = [];\n      }\n    }\n    else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n      newValue = objValue;\n      if (isArguments(objValue)) {\n        newValue = toPlainObject(objValue);\n      }\n      else if (!isObject(objValue) || isFunction(objValue)) {\n        newValue = initCloneObject(srcValue);\n      }\n    }\n    else {\n      isCommon = false;\n    }\n  }\n  if (isCommon) {\n    // Recursively merge objects and arrays (susceptible to call stack limits).\n    stack.set(srcValue, newValue);\n    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n    stack['delete'](srcValue);\n  }\n  assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\nexport default copyArray;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return (typeof object.constructor == 'function' && !isPrototype(object))\n    ? baseCreate(getPrototype(object))\n    : {};\n}\n\nexport default initCloneObject;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n  if (object === source) {\n    return;\n  }\n  baseFor(source, function(srcValue, key) {\n    stack || (stack = new Stack);\n    if (isObject(srcValue)) {\n      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n    }\n    else {\n      var newValue = customizer\n        ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n        : undefined;\n\n      if (newValue === undefined) {\n        newValue = srcValue;\n      }\n      assignMergeValue(object, key, newValue);\n    }\n  }, keysIn);\n}\n\nexport default baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nexport default identity;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\nexport default overRest;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\nexport default baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\nexport default constant;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n *   'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n *   'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n  baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\nexport default createAssigner;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nexport default throttle;\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"svg\":\"svg--GanEd\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { Themes } from '@csc/common';\nimport assetIcons, { assetIconGenerics } from '@csc/common/dist/src/utils/assetIcons';\nimport React from 'react';\n\nimport styles from './AssetIcon.module.css';\n\ntype Props = {\n    type: string;\n    theme?: Themes;\n};\n\nconst AssetIcon: React.FC<Props> = ({ type, theme }) => {\n    const internalTheme = theme ?? Themes.light;\n\n    let themedIcon = assetIcons[type];\n    if (!themedIcon) {\n        const generics = Object.entries(assetIconGenerics);\n        const [_prefix, genericIcon] = generics.find(([prefix]) => type.startsWith(prefix)) ?? [];\n        if (!genericIcon) {\n            throw new Error(`No icon found for type: ${type}`);\n        }\n\n        themedIcon = genericIcon;\n    }\n\n    const Icon: React.FC<{ className: string }> = themedIcon[internalTheme];\n    return <Icon data-testid={type} className={styles.svg} />;\n};\n\nexport default AssetIcon;\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n *  Copyright 2023 Adobe\n *  All Rights Reserved.\n *\n *  NOTICE:  All information contained herein is, and remains\n *  the property of Adobe and its suppliers, if any. The intellectual\n *  and technical concepts contained herein are proprietary to Adobe\n *  and its suppliers and are protected by all applicable intellectual\n *  property laws, including trade secret and copyright laws.\n *  Dissemination of this information or reproduction of this material\n *  is strictly forbidden unless prior written permission is obtained\n *  from Adobe.\n **************************************************************************/\n\n// RS2 :: https://react-spectrum.corp.adobe.com/storybook/?path=/story/fieldlabel--default\n// SWC :: https://opensource.adobe.com/spectrum-web-components/components/field-label/\n// Using Dialog Wrapper from dialog which implements similar properties as RS2.\nimport type {\n    Dialog as DialogType,\n    DialogBase as DialogBaseType,\n    DialogWrapper as DialogWrapperType,\n} from '@ccx-public/spectrum-web-component-fallbacks/dist/dialog';\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { filterBooleanProps, useComponent } from './utils';\nimport createWrapper from './utils/createWrapper';\nimport { SWCLoader } from './utils/SWCLoader';\nimport interopRequireDefault from './utils/interopRequireDefault';\nimport mergeRefs from './utils/mergeRefs';\n\n/* eslint-disable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\nconst RS2Dialog: React.ComponentType<unknown> = process.env.INCLUDE_RS2\n    ? interopRequireDefault(require('react-spectrum/Dialog')).default\n    : undefined;\n/* eslint-enable @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-var-requires,@typescript-eslint/no-unsafe-member-access */\n\nlet swcLoader;\nif (!process.env.EXCLUDE_SWC) {\n    swcLoader = new SWCLoader(\n        ['sp-dialog', 'sp-dialog-base', 'sp-dialog-wrapper'],\n        async () => {\n            const { Dialog, DialogBase, DialogWrapper } = await import(\n                /* webpackChunkName: \"SpDialog\" */\n                '@ccx-public/spectrum-web-component-fallbacks/dist/dialog'\n            );\n            return [Dialog, DialogBase, DialogWrapper];\n        }\n    );\n}\n\ntype RS2CompatProps = {\n    /**\n     * Can dismiss by clicking on the backdrop\n     */\n    backdropClickable?: boolean;\n\n    /**\n     * Label of the cancel button\n     */\n    cancelLabel?: string;\n\n    /**\n     * Label of the confirm button\n     */\n    confirmLabel?: string;\n\n    /**\n     * Whether it is a dismissible dialogs. Dismissible dialogs should not have buttons.\n     */\n    isDismissible?: boolean;\n\n    /**\n     * Callback when dialog closes via cancel button\n     */\n    onCancel?: () => void;\n\n    /**\n     * Callback when dialog closes\n     */\n    onClose?: () => void;\n\n    /**\n     * Callback when dialog closes via confirm button\n     */\n    onConfirm?: (type: string, evt: Event) => void;\n\n    /**\n     * For ARIA telling what type of dialog this is\n     */\n    role?: string;\n\n    /**\n     * Label for an additional button\n     */\n    secondaryLabel?: string;\n\n    /**\n     * Title of the dialog\n     */\n    title?: string;\n};\n\nexport default createWrapper<DialogWrapperType, RS2CompatProps>({\n    displayName: 'Dialog',\n    fallback: RS2Dialog,\n    swcLoader,\n    SWCWrapper: function SpDialogWrapper(props) {\n        const dialogWrapperRef = useRef<DialogWrapperType>(null);\n\n        const {\n            backdropClickable,\n            cancelLabel,\n            children,\n            className,\n            confirmLabel,\n            isDismissible,\n            onCancel,\n            onClose,\n            onConfirm,\n            open,\n            secondaryLabel,\n            title,\n            underlay,\n            ...rest\n        } = props;\n\n        useEffect(() => {\n            const current = dialogWrapperRef?.current;\n\n            if (current && onClose) {\n                current.addEventListener('close', onClose);\n            }\n\n            return () => {\n                if (current && onClose) {\n                    current.removeEventListener('close', onClose);\n                }\n            };\n        }, [onClose]);\n\n        useEffect(() => {\n            const current = dialogWrapperRef?.current;\n            const handleConfirm = (evt: Event) => {\n                onConfirm?.(evt.type, evt);\n                if (current) {\n                    current.open = false;\n                }\n            };\n\n            if (current && onConfirm) {\n                current.addEventListener('confirm', handleConfirm);\n                current.addEventListener('secondary', handleConfirm);\n            }\n\n            return () => {\n                if (current && onConfirm) {\n                    current.removeEventListener('confirm', handleConfirm);\n                    current.removeEventListener('secondary', handleConfirm);\n                }\n            };\n        }, [onConfirm]);\n\n        useEffect(() => {\n            const current = dialogWrapperRef?.current;\n            const handleCancel = () => {\n                onCancel?.();\n                if (current) {\n                    current.open = false;\n                }\n            };\n\n            if (current && onCancel) {\n                current.addEventListener('cancel', handleCancel);\n            }\n\n            return () => {\n                if (current && onCancel) {\n                    current.removeEventListener('cancel', handleCancel);\n                }\n            };\n        }, [onCancel]);\n\n        const childrenWrapperRef = useRef<HTMLDivElement>(null);\n        const [, forceUpdate] = useState(false);\n\n        useEffect(() => {\n            forceUpdate(true);\n        }, []);\n\n        // ReactSpectrum2               | SpectrumWebComponent\n        // ---------------------------------------------------\n        // isDismissible                | dismissable\n        // title                        | headline\n        // confirmLabel                 | confirm-label\n        // cancelLabel                  | cancel-label\n        // secondaryLabel               | secondary-label\n        // backdropClickable or open    | underlay\n\n        const DialogWrapper = useComponent('sp-dialog-wrapper');\n        return (\n            <>\n                <DialogWrapper\n                    {...rest}\n                    {...filterBooleanProps({\n                        dismissable: isDismissible,\n                        open,\n                        underlay:\n                            (underlay || backdropClickable || open) ?? true,\n                    })}\n                    ref={dialogWrapperRef}\n                    class={className}\n                    headline={title}\n                    confirm-label={confirmLabel}\n                    cancel-label={cancelLabel}\n                    secondary-label={secondaryLabel}\n                >\n                    <div ref={childrenWrapperRef} />\n                </DialogWrapper>\n                {childrenWrapperRef.current &&\n                    createPortal(children, childrenWrapperRef.current)}\n            </>\n        );\n    },\n    tagName: 'sp-dialog-wrapper',\n});\n\ntype DialogCompatProps = Pick<RS2CompatProps, 'onClose'>;\n/**\n * DialogContent wraps SWC's sp-dialog and does not have an exact RS2 equivalent.\n * This has been added to spectrum-wrapper because:\n *\n * 1. In UAB, hosts provide a `showModal` function where pass them the content\n *    that we want to show in a dialog. This should have the behavior and\n *    accessibility roles of a role=\"dialog\" element such as sp-dialog, but\n *    without the extra behavior that comes along with sp-dialog-wrapper or\n *    RS2's Dialog like showing/closing the dialog or rendering an underlay.\n * 2. UAB also does not currently have a requirement to run in UXP and so does\n *    not require an RS2 fallback.\n * 3. It is still useful to use spectrum-wrapper rather than SWC directly so\n *    that there is still the async loading of SWC components and automatic\n *    re-use of SWC components already loaded and registered in the host app.\n */\nexport const DialogContent = createWrapper<DialogType, DialogCompatProps>({\n    displayName: 'Dialog',\n    fallback: RS2Dialog,\n    swcLoader: swcLoader,\n    SWCWrapper: forwardRef(function SpDialog(\n        { dismissable, error, noDivider, onClose, ...rest },\n        forwardRef\n    ) {\n        const DialogContent = useComponent('sp-dialog');\n        const ref = useRef<DialogType>(null);\n\n        useEffect(() => {\n            const { current } = ref;\n\n            if (current && onClose) {\n                current.addEventListener('close', onClose);\n            }\n\n            return () => {\n                if (current && onClose) {\n                    current.removeEventListener('close', onClose);\n                }\n            };\n        }, [onClose]);\n\n        return (\n            <DialogContent\n                {...rest}\n                {...filterBooleanProps({ dismissable, error, noDivider })}\n                ref={mergeRefs([forwardRef, ref])}\n            />\n        );\n    }),\n    tagName: 'sp-dialog',\n});\n\ntype DialogBaseCompatProps = Pick<RS2CompatProps, 'onClose'>;\n\n/**\n * DialogBase wraps SWC's sp-dialog-base and does not have a direct equivalent\n * in RS2. It has been added to spectrum-wrapper only as a complement to\n * DialogContent above. At the time of writing it's not expected that this would\n * actually be used in production, but it is useful in local development\n * environments to show DialogContent in a modal dialog context.\n */\nexport const DialogBase = createWrapper<DialogBaseType, DialogBaseCompatProps>({\n    displayName: 'Dialog',\n    fallback: RS2Dialog,\n    swcLoader: swcLoader,\n    SWCWrapper: forwardRef(function SpDialog(\n        { dismissable, onClose, open, responsive, underlay, ...rest },\n        forwardRef\n    ) {\n        const DialogBase = useComponent('sp-dialog-base');\n        const ref = useRef<DialogBaseType>(null);\n\n        useEffect(() => {\n            const { current } = ref;\n\n            if (current && onClose) {\n                current.addEventListener('close', onClose);\n            }\n\n            return () => {\n                if (current && onClose) {\n                    current.removeEventListener('close', onClose);\n                }\n            };\n        }, [onClose]);\n\n        return (\n            <DialogBase\n                {...rest}\n                {...filterBooleanProps({\n                    dismissable,\n                    open,\n                    responsive,\n                    underlay,\n                })}\n                ref={mergeRefs([forwardRef, ref])}\n            />\n        );\n    }),\n    tagName: 'sp-dialog-base',\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"dialog\":\"dialog--C4X1t\",\"wrapperExpressMobile\":\"wrapperExpressMobile--JEgmZ\",\"headingExpress\":\"headingExpress--Psn0M\",\"headingExpressMobile\":\"headingExpressMobile--ZaplJ\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Button from '@ccx-public/spectrum-wrapper/dist/Button';\nimport { DialogContent as SpDialog } from '@ccx-public/spectrum-wrapper/dist/Dialog';\nimport classnames from 'classnames';\nimport type { SyntheticEvent } from 'react';\nimport React, { forwardRef, useCallback } from 'react';\n\nimport styles from './DialogContent.module.css';\n\ntype ButtonVariant = 'cta' | 'secondary' | 'warning' | 'primary';\n\ntype Props = React.PropsWithChildren<{\n    cancelLabel?: string;\n    className?: string;\n    confirmDisabled?: boolean;\n    confirmLabel?: string;\n    dismissable?: boolean;\n    onCancel?: () => unknown;\n    onConfirm?: (type: string, event: SyntheticEvent) => unknown;\n    expressTheme?: boolean;\n    mobile?: boolean;\n    noDivider?: boolean;\n    size?: React.ComponentProps<typeof SpDialog>['size'];\n    title: string;\n    hideTitle?: boolean;\n    variant?: 'confirmation' | 'destructive' | 'error';\n}>;\n\nconst getButtonVariant: (\n    variant: 'confirmation' | 'destructive' | 'error' | undefined,\n) => ButtonVariant = (variant) => {\n    switch (variant) {\n        case 'destructive':\n            return 'warning';\n        case 'error':\n            return 'secondary';\n        case 'confirmation':\n        default:\n            return 'cta';\n    }\n};\n\nexport default forwardRef<HTMLDivElement, Props>(function DialogContent(\n    {\n        cancelLabel,\n        children,\n        className = '',\n        confirmDisabled,\n        confirmLabel,\n        dismissable,\n        hideTitle,\n        onCancel,\n        onConfirm,\n        expressTheme,\n        mobile,\n        noDivider,\n        size,\n        title,\n        variant,\n        ...rest\n    },\n    ref,\n) {\n    const handleSubmit: React.FormEventHandler = useCallback(\n        (event) => {\n            if (!onConfirm || confirmDisabled) {\n                return;\n            }\n\n            event.preventDefault();\n            return onConfirm('primary', event);\n        },\n        [confirmDisabled, onConfirm],\n    );\n\n    return (\n        <SpDialog\n            {...rest}\n            ref={ref}\n            aria-label={title}\n            // @ts-expect-error - spectrum-wrapper doesn't handle className correctly for\n            // DialogContent component\n            class={classnames(className, styles.dialog, {\n                [styles.wrapperExpressMobile]: expressTheme && mobile,\n            })}\n            dismissable={dismissable}\n            no-divider={noDivider || undefined}\n            size={size}\n            variant={variant}\n        >\n            {!hideTitle && (\n                <h2\n                    slot=\"heading\"\n                    className={classnames({\n                        [styles.headingExpress]: expressTheme,\n                        [styles.headingExpressMobile]: expressTheme && mobile,\n                    })}\n                >\n                    {title}\n                </h2>\n            )}\n\n            {children}\n\n            {cancelLabel && (\n                <Button type=\"button\" variant=\"secondary\" onClick={onCancel} slot=\"button\">\n                    {cancelLabel}\n                </Button>\n            )}\n            {confirmLabel && (\n                <Button\n                    data-testid=\"dialog-submit\"\n                    disabled={confirmDisabled}\n                    onClick={handleSubmit}\n                    slot=\"button\"\n                    treatment={expressTheme && variant === 'destructive' ? 'fill' : undefined}\n                    variant={getButtonVariant(variant)}\n                >\n                    {confirmLabel}\n                </Button>\n            )}\n        </SpDialog>\n    );\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"helpText\":\"helpText--Q5fZO\",\"negative\":\"negative--MJizV\",\"text\":\"text--qHX1f\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport styles from './HelpText.module.css';\n\ntype Props = React.PropsWithChildren<{\n    className?: string;\n    variant?: 'negative' | 'neutral';\n}>;\n\n/**\n * A basic implementation of Spectrum's help text component. We should replace\n * this implementation with one from spectrum-wrapper if support for\n * sp-help-text gets added to spectrum-wrapper.\n */\nexport default function HelpText(props: Props) {\n    const { children, className, variant = 'neutral', ...rest } = props;\n\n    return (\n        <div\n            {...rest}\n            className={classnames(className, styles.helpText, {\n                [styles.negative]: variant === 'negative',\n            })}\n        >\n            <div className={styles.text}>{children}</div>\n        </div>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport React from 'react';\n\nexport default function IconAll(props: React.ComponentProps<typeof Icon>) {\n    return (\n        <Icon {...props}>\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n                <rect x=\"2.25\" y=\"2.25\" width=\"3.5\" height=\"3.5\" rx=\"1\" ry=\"1\" />\n                <rect x=\"8.25\" y=\"2.25\" width=\"3.5\" height=\"3.5\" rx=\"1\" ry=\"1\" />\n                <rect x=\"14.25\" y=\"2.25\" width=\"3.5\" height=\"3.5\" rx=\"1\" ry=\"1\" />\n                <rect x=\"2.25\" y=\"8.25\" width=\"3.5\" height=\"3.5\" rx=\"1\" ry=\"1\" />\n                <rect x=\"8.25\" y=\"8.25\" width=\"3.5\" height=\"3.5\" rx=\"1\" ry=\"1\" />\n                <rect x=\"14.25\" y=\"8.25\" width=\"3.5\" height=\"3.5\" rx=\"1\" ry=\"1\" />\n                <rect x=\"2.25\" y=\"14.25\" width=\"3.5\" height=\"3.5\" rx=\"1\" ry=\"1\" />\n                <rect x=\"8.25\" y=\"14.25\" width=\"3.5\" height=\"3.5\" rx=\"1\" ry=\"1\" />\n                <rect x=\"14.25\" y=\"14.25\" width=\"3.5\" height=\"3.5\" rx=\"1\" ry=\"1\" />\n            </svg>\n        </Icon>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport React from 'react';\n\nexport default function IconBrand(props: React.ComponentProps<typeof Icon>) {\n    return (\n        <Icon {...props}>\n            <svg\n                id=\"a\"\n                data-name=\"ICONS\"\n                xmlns=\"http://www.w3.org/2000/svg\"\n                width=\"20\"\n                height=\"20\"\n                viewBox=\"0 0 20 20\"\n            >\n                <path\n                    d=\"M10.00684,19c-.08398,0-.16797-.00195-.25293-.00391-4.42188-.25098-7.81836-3.90234-7.75293-8.31152V3.25c0-1.24023,1.00977-2.25,2.25-2.25h11.49902c1.24023,0,2.25,1.00977,2.25,2.25l-.00293,7.99023c-.06641,2.13965-.95898,4.12305-2.51562,5.58691-1.49609,1.40625-3.43164,2.17285-5.47461,2.17285ZM4.25098,2.5c-.41309,0-.75.33691-.75.75v7.44531c-.05371,3.61426,2.72168,6.59766,6.31934,6.80176,1.70703.05176,3.36816-.57324,4.63281-1.7627s1.99121-2.80078,2.04395-4.53711l.00293-.19727V3.25c0-.41309-.33691-.75-.75-.75H4.25098Z\"\n                    strokeWidth=\"0\"\n                />\n                <path\n                    d=\"M14.25,12h-5.5c-.26465,0-.50977-.13965-.64453-.36719-.13574-.22754-.14062-.50977-.01367-.74219l2.75098-5.03906c.13184-.24121.38379-.39062.6582-.39062h0c.27441,0,.52734.15039.6582.39062l2.74902,5.03906c.12695.23242.12207.51465-.01367.74219-.13477.22754-.37988.36719-.64453.36719ZM10.01367,10.5h2.97266l-1.48535-2.72363-1.4873,2.72363Z\"\n                    strokeWidth=\"0\"\n                />\n                <path\n                    d=\"M5.74902,12c-.12109,0-.24414-.0293-.3584-.0918-.36328-.19824-.49707-.6543-.29883-1.01758l1.98145-3.62891c.19727-.36328.65332-.49805,1.01758-.29883.36328.19824.49707.6543.29883,1.01758l-1.98145,3.62891c-.13574.24902-.39355.39062-.65918.39062Z\"\n                    strokeWidth=\"0\"\n                />\n            </svg>\n        </Icon>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport React from 'react';\n\nexport default function IconCCLibrary(props: React.ComponentProps<typeof Icon>) {\n    return (\n        <Icon {...props}>\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n                <path d=\"m2.75,15c-.41406,0-.75-.33594-.75-.75V4.25c0-1.24023,1.00928-2.25,2.25-2.25h10c.41406,0,.75.33594.75.75s-.33594.75-.75.75H4.25c-.41357,0-.75.33691-.75.75v10c0,.41406-.33594.75-.75.75Z\" />\n                <path d=\"m15.62988,5H7.37012c-1.30713,0-2.37012,1.06348-2.37012,2.37012v8.25977c0,1.30664,1.06299,2.37012,2.37012,2.37012h8.25977c1.30713,0,2.37012-1.06348,2.37012-2.37012V7.37012c0-1.30664-1.06299-2.37012-2.37012-2.37012Zm.87012,10.62988c0,.47949-.39014.87012-.87012.87012H7.37012c-.47998,0-.87012-.39062-.87012-.87012V7.37012c0-.47949.39014-.87012.87012-.87012h3.62988v4.13428c0,.35645.43085.53491.68286.28271l1.0343-1.03418c.15619-.15625.40948-.15625.56567,0l1.0343,1.03418c.25201.2522.68286.07373.68286-.28271v-4.13428h.62988c.47998,0,.87012.39062.87012.87012v8.25977Z\" />\n            </svg>\n        </Icon>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport React from 'react';\n\nexport default function IconProject(props: React.ComponentProps<typeof Icon>) {\n    return (\n        <Icon {...props}>\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n                <circle cx=\"16\" cy=\"8\" r=\".75\" />\n                <path\n                    d=\"M11.5,9.875c-.7583,0-1.375-.6167-1.375-1.375s.6167-1.375,1.375-1.375,1.375.6167,1.375,1.375-.6167,1.375-1.375,1.375ZM11.5,8.125c-.20654,0-.375.16846-.375.375s.16846.375.375.375.375-.16846.375-.375-.16846-.375-.375-.375Z\"\n                    strokeWidth=\"0\"\n                />\n                <path d=\"M15.75,11H4.99475l5.71863-6.63428c.78174-.90723.729-2.23926-.11865-2.96973l-.32227-.27734c-.42139-.36377-.9707-.52344-1.54102-.45068-.54248.06885-1.04443.34277-1.41309.771L1.43945,8.25977c-.78223.90723-.729,2.23877.11768,2.96875l.32275.27832c.18323.15802.39087.27588.61328.35468-.30396.38367-.49316.86206-.49316,1.38849v3c0,1.5166,1.2334,2.75,2.75,2.75h10.5c1.5166,0,2.75-1.2334,2.75-2.75v-3c0-1.24072-1.00928-2.25-2.25-2.25ZM2.5752,9.23926l5.87891-6.8208c.12695-.14697.29297-.24072.46729-.2627.02002-.00244.04492-.00488.07275-.00488.08643,0,.20166.02002.29932.104l.32227.27734c.2168.18701.19971.57812-.03809.854l-5.87939,6.8208c-.12695.14697-.29297.24072-.46729.2627-.08057.01025-.24268.01172-.37158-.09863l-.32275-.27832c-.2168-.18701-.19873-.57764.03857-.85352ZM16.5,16.25c0,.68945-.56055,1.25-1.25,1.25H4.75c-.68945,0-1.25-.56055-1.25-1.25v-3c0-.41357.33643-.75.75-.75h11.5c.41357,0,.75.33643.75.75v3Z\" />\n                <path\n                    d=\"M11.5,15.5h-3c-.41406,0-.75-.33594-.75-.75s.33594-.75.75-.75h3c.41406,0,.75.33594.75.75s-.33594.75-.75.75Z\"\n                    strokeWidth=\"0\"\n                />\n                <path d=\"M14.62744,5.94678c-.104,0-.20752-.02588-.30029-.07715-.14551-.07959-.25342-.21387-.2998-.37256l-.75635-2.59229c-.09668-.33154.09375-.67871.4248-.77539l2.5918-.75635c.3335-.09619.67871.09375.77539.4248l.75635,2.5918c.09668.33154-.09375.67871-.4248.77539l-2.5918.75684c-.05762.0166-.1167.0249-.17529.0249ZM14.646,3.1543l.40625,1.39209,1.39209-.40625-.40625-1.39209-1.39209.40625Z\" />\n            </svg>\n        </Icon>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport React from 'react';\n\nexport default function IconUser(props: React.ComponentProps<typeof Icon>) {\n    return (\n        <Icon {...props}>\n            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n                <path d=\"m10,11.25c-2.61914,0-4.75-2.24316-4.75-5S7.38086,1.25,10,1.25s4.75,2.24316,4.75,5-2.13086,5-4.75,5Zm0-8.5c-1.79199,0-3.25,1.57031-3.25,3.5s1.45801,3.5,3.25,3.5,3.25-1.57031,3.25-3.5-1.45801-3.5-3.25-3.5Z\" />\n                <path d=\"m17.24902,18.75c-.37793,0-.70312-.28516-.74463-.66895-.2627-2.42871-3.12012-4.33105-6.50439-4.33105-3.41357,0-6.27051,1.89844-6.50342,4.32227-.04004.41211-.40967.72754-.81836.67383-.41211-.03906-.71436-.40527-.6748-.81836.30615-3.18359,3.81885-5.67773,7.99658-5.67773,4.2085,0,7.646,2.4375,7.99561,5.66895.04443.41211-.25293.78223-.66504.82715-.02734.00293-.05469.00391-.08154.00391Z\" />\n            </svg>\n        </Icon>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Icon from '@ccx-public/spectrum-wrapper/dist/Icon';\nimport React from 'react';\n\nexport default function IconUserGroup(props: React.ComponentProps<typeof Icon>) {\n    return (\n        <Icon {...props}>\n            <svg\n                id=\"b\"\n                data-name=\"ICONS\"\n                xmlns=\"http://www.w3.org/2000/svg\"\n                width=\"20\"\n                height=\"20\"\n                viewBox=\"0 0 20 20\"\n            >\n                <path d=\"m12.25293,11.94922c-2.27637,0-4.12793-1.94629-4.12793-4.33887s1.85156-4.33887,4.12793-4.33887,4.12793,1.94629,4.12793,4.33887-1.85156,4.33887-4.12793,4.33887Zm0-7.17773c-1.44922,0-2.62793,1.27344-2.62793,2.83887s1.17871,2.83887,2.62793,2.83887,2.62793-1.27344,2.62793-2.83887-1.17871-2.83887-2.62793-2.83887Zm-5.37598,12.84082c.21484-1.99219,2.57617-3.55273,5.37598-3.55273,2.82324,0,5.18457,1.55664,5.37598,3.54492.04004.41309.41602.72656.81836.67383.41211-.03906.71387-.40527.67383-.81836-.26367-2.74805-3.28125-4.90039-6.86816-4.90039-3.61426,0-6.56641,2.10352-6.86816,4.89258-.04395.41113.25391.78125.66602.82617.02734.00293.05371.00391.08105.00391.37793,0,.70312-.28516.74512-.66992Zm.24023-7.89355c.16895-.37793.00098-.82227-.37695-.99219-.98535-.44238-1.62109-1.47168-1.62109-2.62207,0-1.56543,1.17871-2.83887,2.62793-2.83887.15234,0,.30078.01465.44629.04102.40234.08105.7998-.19238.87402-.60059.0752-.40723-.19336-.79883-.60059-.87402-.2334-.04395-.47363-.06641-.71973-.06641-2.27637,0-4.12793,1.94629-4.12793,4.33887,0,1.74023.9834,3.30664,2.50586,3.99121.09961.04395.2041.06543.30762.06543.28613,0,.55957-.16504.68457-.44238Zm-4.74609,6.38867c.20508-1.90234,2.36914-3.42676,5.03223-3.5459.41406-.01855.73438-.36816.71582-.78223-.01758-.40234-.34961-.7168-.74805-.7168-.01172,0-.02344,0-.03418.00098-3.45312.1543-6.16797,2.20703-6.45801,4.88184-.04395.41211.25391.78223.66504.82715.02832.00293.05469.00391.08203.00391.37793,0,.70312-.28516.74512-.66895Z\" />\n            </svg>\n        </Icon>\n    );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"LoadingState\":\"LoadingState--T5y91\"};","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport Wait from '@ccx-public/spectrum-wrapper/dist/Wait';\nimport { useTheme } from '@csc/common';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport styles from './LoadingState.module.css';\n\ntype LoadProps = {\n    size?: 'M' | 'L' | 'S';\n    className?: string;\n};\n\nexport default function LoadingState({ className, size }: LoadProps) {\n    const { themeIsExpress } = useTheme();\n    const defaultSize = themeIsExpress ? 'L' : 'M';\n    return (\n        <div className={classnames(styles.LoadingState, className)} data-testid=\"loading-state\">\n            <Wait size={size ? size : defaultSize} />\n        </div>\n    );\n}\n","/*************************************************************************\n *\n * ADOBE CONFIDENTIAL\n * ___________________\n *\n * Copyright 2023 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n **************************************************************************/\n\nimport { useCallback } from 'react';\n\n/**\n * Hook that provides an onKeyDown handler that can be used on a\n * spectrum-wrapper Textfield to enable the default browser behavior of\n * submitting a form when a user presses enter in a text input. This should only\n * be used on spectrum-wrapper Textfield components. When using native inputs,\n * wrap the input in a form and let the browser handle the enter keydown natively.\n */\nexport default function useEnterKeySubmit({\n    submitDisabled,\n    handleSubmit,\n}: {\n    submitDisabled: boolean;\n    handleSubmit: (event: React.KeyboardEvent) => unknown;\n}): { onKeyDown: (event: React.KeyboardEvent) => void } {\n    const onKeyDown = useCallback(\n        (event: React.KeyboardEvent) => {\n            if (event.target instanceof HTMLElement) {\n                if (!submitDisabled && event.code === 'Enter') {\n                    event.preventDefault();\n                    event.stopPropagation();\n                    void handleSubmit(event);\n                }\n            }\n        },\n        [submitDisabled, handleSubmit],\n    );\n    return { onKeyDown };\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t9380: 0,\n\t1989: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(1989 != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkUniversalAssetBrowser\"] = globalThis[\"webpackChunkUniversalAssetBrowser\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [1989], () => (__webpack_require__(44852)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [1989], () => (__webpack_require__(56259)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["root","factory","exports","module","define","amd","globalThis","deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","fallbackTagNameSuffix","replace","fallbackTagName","tagName","window","g","self","SENTRY_RELEASE","id","_typeof","obj","Symbol","iterator","constructor","prototype","_react","__esModule","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","hasOwnProperty","call","desc","set","_interopRequireWildcard","_propTypes","_interopRequireDefault","_IngestController","_context","WeakMap","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","configurable","writable","getController","props","canInstantiate","disabled","env","project","console","error","apiKey","token","allowNoToken","IngestProvider","forwardRef","ref","ingestContext","useContext","IngestContext","controller","ingest","useMemo","useEffect","_controller","useImperativeHandle","createElement","Provider","children","displayName","defaultProps","propTypes","bool","string","isRequired","data","debounce","number","node","ingestType","maQueuedEvents","onLog","func","product","productLocation","timestampPropertyName","userRegion","createContext","fireEvent","Promise","resolve","_lodash","_v","_ingest","_defineProperties","descriptor","SINGLETON_CONTROLLER_MAP","flush","IngestController","instance","Constructor","TypeError","_classCallCheck","this","configure","offlineQueue","bind","fireQueuedEvents","_sessionGuid","addEventListener","protoProps","apiInstance","_ingestApi","dependencies","getAccessToken","cb","log","message","options","ENVIRONMENT","ALLOW_NO_TOKEN","ANALYTICS_API_KEY","ANALYTICS_PROJECT","ANALYTICS_X_PRODUCT","ANALYTICS_X_PRODUCT_LOCATION","ANALYTICS_MAX_QUEUED_EVENTS","maxQueuedEvents","ANALYTICS_DEBOUNCE","ANALYTICS_USER_REGION","ANALYTICS_INGEST_TYPE","TIMESTAMP_PROPERTY_NAME","enable","updateData","fireEventCb","fireEventCallback","_baseData","nestedObj","flatObj","curPrefix","_this","newKey","concat","Date","_flattenObj","_this2","_ref","augmentedData","fireImmediately","mergeBaseData","_this3","undefined","reject","result","_sdmJsonData$event$se","_sdmJsonData$event$gu","_sdmJsonData$event$of","sdmJsonData","event","session_guid","guid","offline","navigator","onLine","toString","flattenedBody","err","postEvent","_this4","removeEventListener","IngestControllerSingleton","getInstance","_default","ccxController","byteToHex","substr","buf","offset","bth","join","getRandomValues","crypto","msCrypto","rnds8","Uint8Array","rnds","Array","r","Math","random","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","b","clockseq","seedBytes","msecs","getTime","nsecs","dt","Error","tl","tmh","n","inferEnvironment","version","hostname","environment","includes","pad","str","padding","extend","dest","from","getOwnPropertyNames","name","destination","notifyCallbacks","callbacks","numSentEvents","callback","setTimeout","ANALYTICS_HOST","prod","stage","dev","INGEST_PATH","DEFAULT_OPTIONS","REQUIRED_OPTIONS","Ingest","throwError","_log","_queuedEvents","_queuedCallbacks","_lastSendTime","_isEnabled","_dependencies","_options","option","fetch","doLog","_getAgent","url","getAgent","_getAccessToken","_clearAccessToken","clearAccessToken","_getEnvironment","_getAnalyticsHost","_formatTimestamp","date","YYYY","getFullYear","MM","getMonth","DD","getDate","HH","getHours","mm","getMinutes","ss","getSeconds","SSS","getMilliseconds","getTimezoneOffset","sign","hours","floor","abs","mins","_updateDebounce","headers","retryAfterHeader","retryAfter","retryTime","parseInt","ignore","max","retryDate","parse","now","valueOf","_queueEvent","shift","_requeueEvents","failedEvents","queue","maxLength","truncatedQueue","startIndex","slice","truncateEventQueue","_sendAnalytics","sendImmediately","retryAttemps","clearTimeout","_pendingSendAnalyticsTimeout","_sendingEvents","_fastFollow","currentTime","_sendingCallbacks","s4","requestId","substring","logPrefix","ingestData","events","onFinished","numNewEvents","JSON","stringify","sendingCallbacks","handleResponse","statusCode","urlBase","ANALYTICS_USER_AGENT","Authorization","proxyOptions","method","body","agent","then","response","status","isEnabled","payload","overrideOptions","dtsStart","collDts","dtsEnd","ingestProject","time","ingesttype","simulate","RS2Button","default","getButtonIcon","icon","type","render","slot","NormalButton","fallback","swcLoader","swcButtonLoader","swcProps","buttonIcon","autoFocus","className","holdAffordance","pending","quiet","variant","dropdownTrigger","label","staticColor","uxpUseNative","treatment","selected","rest","booleanProps","autofocus","variantProps","spButtonVariantProps","class","ActionButton","swcActionButtonLoader","spActionButtonVariantProps","RS2ButtonGroup","NormalButtonGroup","buttonGroupLoader","orientation","vertical","align","ActionButtonGroup","actionGroupLoader","SWCWrapper","actionGroupContainer","useRef","multiple","onChange","selects","selectedValues","flat","compatabilityProps","current","handleOnChange","ActionGroup","RS2DropdownButton","DEBOUNCE_TIMEOUT","matchMedia","matches","screen","width","map","child","forceFallback","actionMenuWrapperRef","onSelect","focused","invalid","open","readonly","alignRight","placement","ariaLabel","labelContents","menuPlacement","debouncedOnSelect","wait","timeoutId","args","handleSelect","SWCActionMenuProps","ActionMenu","RS2FieldLabel","necessity","position","labelFor","required","sideAligned","compatProps","for","Fieldlabel","RS2Icon","RS2Add","RS2AddCircle","RS2Alert","S1Icon","S2Icon","s2swcLoader","spectrumTheme","RS2ChevronDown","RS2ChevronLeft","RS2ChevronRight","RS2ClassicGridView","RS2Copy","RS2Delete","RS2Download","RS2DownloadFromCloud","RS2Duplicate","RS2Export","RS2Flag","RS2Folder","RS2FolderAdd","RS2Globe","RS2InfoOutline","RS2Move","RS2MoveTo","RS2OpenIn","RS2Remove","RS2SelectBoxAll","RS2Share","RS2SortOrderDown","RS2SortOrderUp","RS2StarFilled","RS2StarOutline","RS2Undo","RS2UploadToCloud","RS2User","RS2UserGroup","RS2ViewList","getSWCSize","size","getSWCProps","alt","RS2Link","RS2Menu","StandAloneMenu","privateRef","menuWrapperRef","Menu","style","onClose","title","minWidth","excludeDialog","MenuItem","description","valueContent","iconSlot","getIconSlot","valueSlot","getValueSlot","MenuDivider","SubMenu","MenuHeading","MenuGroup","menuGroupWrapperRef","header","handleChange","RS2OverlayTrigger","placementMap","left","right","top","bottom","DEFAULT_TRIGGERS","trigger","onHide","onShow","delayShow","boundariesElement","show","childrenArray","toArray","modalTriggerRef","triggers","slotNames","resultArray","curTrigger","firstChild","secondChild","TriggerComp","curSlot","TriggerTargetComp","delayed","OverlayTrigger","RS2Popover","contentStyle","enablePortaling","trapFocus","isDialog","role","childrenArr","hasTitle","childrenWrapperRef","forceUpdate","useState","popoverContents","Popover","Dialog","tip","createPortal","RS2Progress","isIndeterminate","labelPosition","indeterminate","progress","RS2Provider","TAG_NAME","async","loadScale","system","scale","loadColor","color","config","theme","typekitId","promises","all","locale","catch","lang","ProviderWrapper","RS2Radio","renderLabel","checked","emphasized","RS2RadioGroup","radioGroupWrapperRef","selectedValue","defaultSelectedValue","change","RadioGroup","horizontal","RS2Rule","SIZE_MAP","small","medium","large","RS2Select","selectWrapperRef","defaultValue","placeholder","flexible","menuClassName","onOpen","renderItem","handleClose","handleOpen","SWCSelectProps","selectChildren","index","Picker","RS2Switch","switchWrapperRef","defaultChecked","Switch","RS2Textarea","multiLine","convertTextfieldPropsToSWC","readOnly","spellCheck","disableOnOverlay","validationState","multiline","valid","maxlength","spellcheck","RS2Textfield","SpTextfield","textfieldRef","handleInput","Textfield","RS2Tooltip","RS2Wait","SIZE_CONVERSIONS","S","M","L","_loaders","_register","loader","preload","loaders","getProviderConfig","ThemeContext","createWrapper","loadSwc","providerConfig","Component","needsFallback","FallbackComponent","compatibilityProps","SpComponent","__disable_swc__","__SPECTRUM_WRAPPER_STORYBOOK_FORCE_RS2__","process","STORYBOOK","CAN_USE_SWC","isUxpEnv","require","e","isUXP","customElementRegistryCache","Map","getCustomElementClass","cached","registered","customElements","document","isRegisteredCustomElement","HTMLElement","SWC_COMPATIBLE_VERSION","doesSWCNeedLoaded","element","VERSION","loadSwcIfNeeded","load","useIsUsingImportedSWC","useComponent","useSWCLoader","shouldLoadSWC","fallbackLoaded","isLoaded","unmountedRef","forceReactSpectrum","registeredTagName","filterBooleanProps","configureTypekit","typeKitId","Typekit","kitId","scriptTimeout","t","tk","d","src","onload","s","getElementsByTagName","parentNode","insertBefore","interopRequireDefault","mergeRefs","refs","Yallist","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","doUse","hit","isStale","del","unshiftNode","maxAge","diff","trim","walker","tail","prev","delete","removeNode","Entry","forEachStep","fn","thisp","Infinity","lc","stale","dispose","noDisposeOnSet","updateAgeOnGet","reset","mL","allowStale","mA","lengthCalculator","lC","itemCount","rforEach","head","next","k","values","dump","v","h","dumpLru","len","item","unshift","peek","pop","arr","l","expiresAt","prune","ANY","Comparator","comp","parseOptions","loose","split","debug","semver","operator","re","COMPARATORLOOSE","COMPARATOR","m","match","SemVer","test","er","cmp","intersects","Range","includePrerelease","startsWith","safeRe","range","raw","format","parseRange","c","first","isNullSet","isAny","comps","memoKey","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","hr","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","rangeList","parseComparator","replaceGTE0","rangeMap","comparators","some","thisComparators","isSatisfiable","rangeComparators","every","thisComparator","rangeComparator","testSet","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","toLowerCase","replaceTilde","TILDELOOSE","TILDE","_","p","pr","ret","replaceCaret","CARETLOOSE","CARET","z","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","fb","to","tM","tm","tp","tpr","tb","prerelease","allowed","major","minor","patch","MAX_LENGTH","MAX_SAFE_INTEGER","compareIdentifiers","LOOSE","FULL","num","build","compare","other","compareMain","comparePre","a","compareBuild","inc","release","identifier","identifierBase","base","Number","isNaN","eq","neq","gt","gte","lt","lte","op","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","SEMVER_SPEC_VERSION","NODE_DEBUG","numeric","anum","bnum","rcompareIdentifiers","looseOption","freeze","emptyOpts","R","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","makeSafeRegex","RegExp","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","LONECARET","getMagnitude","x","LOG10E","repeat","times","setInternalSlot","pl","field","create","setMultiInternalSlots","_i","_a","getInternalSlot","getMultiInternalSlots","fields","slots","reduce","f","isLiteralPart","patternPart","invariant","condition","Err","memoize","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","monadic","arg","cacheKey","computedValue","variadic","assemble","context","serialize","ObjectWithoutPrototypeCache","strategies","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","el","literal","isArgumentElement","argument","isNumberElement","isDateElement","isTimeElement","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isTagElement","tag","isNumberSkeleton","isDateTimeSkeleton","dateTime","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","roundingPriority","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","minimumIntegerDigits","parseNotationOptions","opt","parseNumberSkeleton","tokens","tokens_1","currency","useGrouping","maximumFractionDigits","unit","compactDisplay","__assign","currencyDisplay","unitDisplay","parseFloat","g3","g4","g5","minimumFractionDigits","trailingZeroDisplay","signOpts","conciseScientificAndEngineeringOpts","timeData","getDefaultHourSymbolFromLocale","hourCycles","regionTag","languageTag","language","maximize","region","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","start","end","hasNativeStartsWith","String","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","isFinite","REGEX_SUPPORTS_U_AND_Y","RE","exec","matchIdentifierAtIndex","search","codePoints","code","elements","fromCharCode","entries","entries_1","charCodeAt","flag","IDENTIFIER_PREFIX_RE_1","lastIndex","_isWhiteSpace","_isPatternSyntax","Parser","line","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","val","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","location","startPosition","parseTagName","bumpSpace","bumpIf","childrenResult","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","startOffset","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","ch","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","argType","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","dateTimePattern","skeletonCopy","patternPos","patternChar","charAt","extraLength","hourLen","dayPeriodLen","hourChar","getBestPattern","pattern","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens_1","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","Set","selector","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","add","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","hasDigits","decimal","kind","prefix","currentOffset","indexOf","targetOffset","min","nextCode","pruneLocation","els","opts","SyntaxError","originalMessage","captureLocation","intl_localematcher_1","supported_locales_generated_1","Intl","DateTimeFormat","formatToParts","hasChromeLt71Bug","dateStyle","hasUnthrownDateTimeStyleBug","resolvedOptions","supportsDateStyle","locales","isArray","supportedLocalesOf","supportedLocales","BestAvailableLocale","availableLocales","candidate","pos","lastIndexOf","LookupSupportedLocales","requestedLocales","subset","requestedLocales_1","noExtensionLocale","availableLocale","UnicodeExtensionValue","extension","searchValue","done","ResolveLocale","relevantExtensionKeys","localeData","getDefaultLocale","localeMatcher","LookupMatcher","foundLocale","minimizedAvailableLocaleMap","availableLocaleMap","canonicalizedLocaleMap","minimizedAvailableLocales","minimizedLocale","Locale","minimize","canonicalizedLocale","getCanonicalLocales","maximizedRequestedLocale","minimizedRequestedLocale","BestFitMatcher","dataLocale","supportedExtension","relevantExtensionKeys_1","foundLocaleData","keyLocaleData","supportedExtensionAddition","requestedValue","optionsValue","privateIndex","preExtension","postExtension","UNICODE_EXTENSION_SEQUENCE_REGEX","defaultLocale","CanonicalizeLocaleList","algorithm","property","_match","findKey","fun","find","findValueByKeyIgnoreCase","langScript","camelizeScriptName","ls","toUpperCase","allLocales","app","appLocales","appLocale","mappedLocale","getAllLocales","stripUrl","extlang","script","regions","priuse","normalize","normalizedLocale","getUmbrellaRegions","isUmbrellaRegionApp","umbrellaRegionApp","getAppNameFromURL","withAppBaseURL","strippedUrl","productionURLs","production","stageURLs","appURL","strippedAppUrl","appBaseURL","createLocaleFromIMS","imsCountryCode","newLocale","imsCountryCodeU","countryLangs","getCountryLanguages","defaultLangs","langs","getRegionDefaultLocale","regionCode","getAppLocale","warn","en","adobeLocales","umbrellaRegion","regionLocaleX","regionLocale","withScript","onlyLang","onlyRegion","apps","langParamApp","umbrellaRegions","sea","ie","getAppLocaleFromIMS","getLocalizedURL","localizedUrl","thisLocale","paramName","cchome_learn","cchome_leftnav","en_us","en_br","en_cis","en_gb","en_ie","en_in","en_lu","en_mena","en_mt","en_nz","en_sea","en_za","cs_cz","da_dk","de_de","de_ch","de_lu","es_es","es_419","es_mx","fr_fr","fi_fi","fr_ca","fr_ch","fr_be","fr_mena","fr_lu","it_it","it_ch","ja_jp","ko_kr","nb_no","pt_pt","ru_ru","tr_tr","getAppLocales","GLOBAL_REGION_CODE","GLOBAL_REGION_NAME","getAppRegions","withName","nameLocale","appSettings","regionNames","getLocalizedURLFromIMS","parseLocaleParam","regex","React","viewBox","_extends","assign","_Icon2","_react2","WrappedIcon","Icon","_classnames2","SIZES","XXS","XS","XL","XXL","_ref$size","otherProps","_objectWithoutProperties","sizeKey","svg","cloneElement","focusable","pathClassName","_UxpOptions","Accordion","AccordionItem","_class","_class2","_temp","_classnames","_convertUnsafeMethod","_filterDOMProps","_FocusManager","super","selectedIndex","defaultSelectedIndex","currentSelectedIndex","state","normalizeSelectedIndex","UNSAFE_componentWillReceiveProps","nextProps","setState","onClickItem","multiselectable","splice","setSelectedKey","deliverableSelectedIndex","getItems","ariaLevel","Children","isValidElement","tabIndex","onItemClick","_this$props","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","itemSelector","manageTabIndex","oneOfType","arrayOf","_ChevronRightMedium","_createId","_focusRing","headerId","contentId","onClick","_AccordionItem","_ChevronDownMedium","UxpAccordionItem","handleKeyDown","onKeyDown","_temp2","_events","_icon","_CornerTriangle","VARIANTS","minimal","Button","preventDefault","onKeyDownSpace","buttonRef","click","setButtonRef","componentDidMount","requestAnimationFrame","focus","Element","logic","block","onMouseDown","onMouseUp","mappedVariant","variantName","shouldRenderHoldAffordance","baseButtonClass","href","ariaExpanded","filteredProps","FOCUS_RING_CLASSNAME","chain","focusAfterMouseEvent","cloneIcon","oneOf","_SpEventUtils","_autobindDecorator","_Button","_UxpButton","SpVariants","action","toggle","primary","secondary","cta","warning","overBackground","SpUxpButton","spButtonRef","createRef","handleEvent","eventName","propName","attachEventListeners","componentWillUnmount","removeEventListeners","componentDidUpdate","prevProps","updateAllEventListeners","updateEventListeners","spbuttonRef","dropdownButton","isSpVariantSupported","SpElement","renderNonNativeButton","shouldRenderSpComponent","removeEventProps","UxpButton","overrideOnKeyDown","onUxpKeyDown","onPointerDown","onPointerUp","isButton","uxpSelected","BUTTONGROUP_ITEM_SELECTOR","BUTTONGROUP_SELECTED_ITEM_SELECTOR","ALLOWED_BUTTON_VARIANTS","tool","ButtonGroup","addSelection","button","removeSelection","nextButtons","isSelected","getChildRole","getChildProps","allowedVariant","classes","renderButtons","selectedItemSelector","_CheckmarkSmall","_DashSmall","_SwitchBase","Checkbox","setIndeterminate","input","inputRef","getInput","markIcon","inputType","inputClassName","markClassName","labelClassName","_Checkbox","SpUxpCheckbox","spCheckboxRef","setChecked","_initialiseProps","labelStyle","display","flexDirection","alignItems","marginTop","marginBottom","height","spanStyle","marginLeft","inputStyle","UxpCheckbox","_DialogButtons","_DialogHeader","asyncGeneratorStep","gen","_next","_throw","info","dialogId","_onAction","shouldClose","onConfirm","onCancel","onFocus","confirmDisabled","keyboardConfirm","disableEscKey","isPropagationStopped","cancelLabel","confirmLabel","secondaryLabel","mode","isDismissible","ariaLabelledby","ariaDescribedby","ariaModal","fullscreen","derivedVariant","modalContent","backdropClickable","autoFocusButton","confirmVariant","BUTTON_VARIANTS","stopPropagation","confirmation","information","destructive","VARIANT_ICONS","_Heading","_CrossLarge","_AlertMedium","_SpUxpNativeDialog","_UxpNonNativeDialog","productNeedsOverlayFix","isNative","_Dialog","_UxpDialogButtons","_UxpNativeDialog","shouldUseSpDialog","spDialogHeight","spDialogWidth","SpUxpNativeDialog","spdialogElementRef","addEventListeners","onDialogCloseEvent","onDialogCancelEvent","onDialogLoadEvent","onLoad","closeDialog","defaultpreventedkeys","objectOf","_UxpDialogHeader","DefaultSize","DefaultOptions","resize","titleVisibility","maxSize","minSize","UxpNativeDialog","dialogElementRef","showModal","close","_ScrollManager","UxpNonNativeDialog","toggleScrollBarsVisibility","UxpNonNativeDialogRef","_Menu","_OverlayTrigger","_reactDom","Dropdown","dropdownId","restoreFocusOnClose","onMenuClose","overlayTrigger","hide","closeOnSelect","onKeyDownTrigger","isDefaultPrevented","defaultPrevented","triggerRef","findDOMNode","flip","onLongClick","triggerChild","triggerId","menu","dropdownMenu","menuId","delayHide","_Dropdown","_UxpProvider","SpectrumContext","Consumer","DropdownButton","_More","FieldLabel","_LabelBase","necessityIndicator","componentName","LabelBase","_Asterisk","_intl","intlMessages","formatMessage","messageFormatter","wrapperClassName","necessityMap","optional","childArray","labelId","fieldLabelClassName","fieldLabel","htmlFor","SpUxpFieldLabel","_UxpFieldLabel","getlabelStyle","necessityindicator","isrequired","labelProps","UxpFieldLabel","_UxpLabelBase","Heading","ELEMENTS","cx","cy","rx","ry","y","ariaHidden","Link","subtle","SPUXP_VARIANT","SpUxpLink","spLinkRef","_List","ListItem","LIST_ITEM_SELECTOR","NOT_DISABLED_SELECTOR","SELECTED_LIST_ITEM_SELECTOR","List","listId","selectable","typeToSelect","_CheckmarkMedium","handleMouseEnter","onMouseEnter","currentTarget","handleFocus","handleBlur","onBlur","onSelectFocused","interpretKeyboardEvent","onTab","hasNestedMenu","_ListItem","SpUxpListItem","UxpListItem","onUxpSelectFocused","onUxpSelect","_MenuItem","_MenuDivider","_MenuHeading","_Popover","getListRef","listRef","overflowY","opened","subMenuId","handleSubMenuKeyDown","hideAnimationFrame","cancelAnimationFrame","_onNestedSubmenuOpen","cloneItem","crossOffset","menuItem","onMouseLeave","UxpMenu","autoComplete","popoverRef","_SubMenu","UxpSubMenu","hideScrollBarOnParent","parentNodes","getScrollParents","setAttribute","nodes","getComputedStyle","overflow","hasAttribute","modalManager","Modal","_Modal","_closest","_ModalManager","_OpenTransition","_PortalContainer","MODAL_LIFECYCLE_METHODS","MANAGER_SINGLETON","handleContainerOverflow","MODAL_KEY","content","container","querySelector","_content$props","onExited","modalProps","modal","keyboard","remove","onEntering","baseModal","lastFocus","activeElement","backdropMode","backdrop","zIndex","manager","renderBackdrop","Underlay","transition","backdropTransition","_this$props2","SpectrumModalManager","overflowMap","superAdd","superRemove","isOverlay","hideBodyOverflow","currentBodyOverflow","resetBodyOverflow","addToModal","hideSiblingNodes","removeFromModal","_ownerDocument","_Portal","_Position","_RootCloseWrapper","VISIBLE_OVERLAYS","TOOLTIP_BUCKET_KEY","Overlay","exited","overlayBucketKey","targetNode","mounted","addOverlay","removeOverlay","visibleOverlays","overlay","onEntered","getOverlayContainer","immediateAvailableContainer","containerPadding","shouldUpdatePosition","rootClose","onExit","onExiting","onEnter","in","appear","onRootClose","_ModalContainer","_Overlay","triggerType","isOneOf","one","of","longPressTimeout","_lastFocus","windowMouseUp","contains","overlayId","_mountNode","_scrollParents","defaultShow","handleDelayedShow","handleDelayedHide","renderOverlay","isDisabled","shouldDisable","_overlay","unmountComponentAtNode","_hoverShowDelay","_hoverHideDelay","removeListenersFromScrollParents","handleToggle","delay","handleMouseOverOut","handler","related","relatedTarget","nativeEvent","toElement","rememberedFocus","listenToScrollParents","altKey","dropdownRef","restoreFocus","makeOverlay","overlayProps","topOverlayProps","unstable_renderSubtreeIntoContainer","overlayChild","triggerProps","onMouseOver","onMouseOut","_calculatePosition","_getContainer","Position","positionLeft","positionTop","arrowOffsetLeft","arrowOffsetTop","_needsFlush","_lastTarget","updatePosition","getTarget","maybeUpdatePosition","maxHeight","only","arrowStyle","targetElement","placementChanged","_UxpOverlay","UxpFlyoutOverlay","_UxpPosition","UxpOverlay","keydown","keyCode","stopPropagationEsc","_UxpFlyoutOverlay","UxpOverlayTrigger","popup","isFlyout","flyoutMenu","getFlyoutOverlayContainer","_immediateFlyoutContainer","appendChild","showFlyout","scrollParents","scrollLeft","scrollTop","scrollInfo","removeChild","clear","_setOverlayOnProvider","UxpPosition","updateOverlayBoundingRect","tooltipRef","tooltipNode","boundingRect","getBoundingClientRect","popoverNode","visibility","overlayHeight","scrollHeight","calculatePositionInternal","placementInput","overlayNode","isBodyContainer","childOffset","_offset","_position","_style","overlaySize","margins","marginRight","getMargins","getContainerDimensions","boundaryContainer","containerDimensions","_scrollLeft","_scrollTop","AXIS","center","FLIPPED_DIRECTION","CROSS_AXIS","AXIS_SIZE","PARSED_PLACEMENT_CACHE","containerNode","scroll","containerDOMNode","innerWidth","clientWidth","innerHeight","clientHeight","documentElement","getDelta","axis","containerScroll","containerHeight","startEdgeOffset","endEdgeOffset","shouldFlip","flipContainerDimensions","containerOffsetWithBoundary","parsePlacement","crossPlacement","crossAxis","crossSize","computePosition","placementInfo","positionForPositiveSideOverflow","boundaryDimensions","normalizedOffset","flippedPlacementInfo","flippedPosition","delta","arrowPosition","defaultId","_trapFocusTimeout","renderTip","_dna","UxpPopover","setOverlayVisible","setOverlayHidden","pathMetrics","getSizePathStyle","pathData","border","background","fill","popover","states","stroke","removeAll","_Provider","providerClass","Progress","showPercent","valueLabel","fillProps","ariaValueProps","sizeClassPart","percentage","round","_UxpProgress","SPUXP_SIZES","SPUXP_VARIANTS","positive","critical","SpUxpProgress","renderSpElement","spUxpVariant","useSpProgress","spElementProps","spLabelVariant","UxpProgress","initProperties","trackRef","fillRef","fillElement","trackWidth","fillWidth","newPosition","animId","timeElapsed","startTime","removeAnimation","transform","animate","rAFCallback","timestamp","_configureTypekit","_state","setLocale","browser","toastPlacement","setToastPlacement","getChildContext","childContextTypes","_hostStyleConfig","productId","disableNativeControls","UxpProvider","overlayRef","visible","setOverlay","useHostThemes","providerRef","otherStyles","Radio","_MaybeUxpSwitchBase","labelBelow","_Radio","SpUxpRadio","spRadioRef","showLabel","handleClickItem","setSelectedValue","firstSelectedValue","defaultSelected","labelsBelow","radioGroupOnClick","_RadioGroup","SpUxpRadioGroup","spRadioGroupRef","updateRadioGroupSelected","setSelected","radioGroupRef","Rule","SPUXP_SIZE","UxpRule","isNodeFullyVisible","getScrollParent","parentBoundingRect","_y","_x","_boundingRectOverlapping","ScrollManager","currentScrollViewNodesMap","overlayVisible","hideOverlappingScrollBar","overlayRect","coachmarkTourInProgress","scrollViewNodes","querySelectorAll","scrollView","hideScrollbar","handleScrollBarVisibility","toggleScrollBarsVisibilityForScrollView","ScrollView","overlayset","removeAttribute","SelectMenu","_Alert","_SelectList","POPOVER_MAX_WIDTH","Select","selectId","dummyPopover","maxWidth","updateSize","offsetWidth","valueId","selectedOption","o","domProps","buttonProps","dropdownProps","UxpSelectMenu","_Select","_SpUxpSelectList","_UxpSelect","SpUxpSelect","spSelectRef","UxpSelect","SelectList","renderListOfOptions","nextOptions","_SpUxpListItem","SpUxpSelectList","_SideNav","_SideNavItem","_SideNavHeading","SIDENAV_ITEM_SELECTOR","SELECTED_SIDENAV_ITEM_SELECTOR","isNestedSelected","SideNav","isDefaultSelected","isDefaultExpanded","defaultExpanded","hidden","isNested","isMultiLevel","ul","_nestedNavValue","_isSelected","NOOP","FOCUSABLE_SIDENAV_ITEMLINK_SELECTOR","SideNavItem","expanded","setSideNavItemRef","sideNavItemRef","hasNestedNav","prevState","handleClick","isKeyDown","isExpandableItem","links","getDescendantId","postfix","sideNavStyle","renderLink","ariaCurrent","isMultiLevelHeading","_string","SwitchBase","shouldRenderLabel","labels","getTextFromReact","UxpSwitchBase","onClickSpan","evt","_Table","_TBody","_MaybeUxpTR","_TD","TBody","TD","divider","isDivider","TH","THead","TR","Table","UxpTR","_Textfield","Textarea","handleHeightChange","_validationStateSvg","uxp","SpUxpTextfield","getFontStyle","inputContainer","fontFamily","getPropertyValue","fontSize","fontVariant","focusInput","inFocus","inputText","showFocus","overlayPresent","overlaysMap","inputActive","eventArray","hasPlaceholderText","updateSpanStyle","host","fontStyle","paddingBottom","addSptextfieldEvent","onInput","nodeName","ov","isAnyOverlayVisible","newValue","executeOverlayCallbacks","handleSpanKeyUp","onKeyUp","innerHTML","orgStr","showInput","updateOverlayMap","searchContainer","searchContainerBoundingRect","overlayPresentInMap","alwaysNative","hideValidationIcon","Tag","isInvalid","isValid","autocompleteInput","displayValidationIcon","validationIcon","invalidSvg","validSvg","bgStyle","textfield","bgColor","backgroundColor","rows","_asyncToGenerator","UxpTextfield","updateThemeFromHost","getTheme","hostTheme","isDrover","paddingLeft","handlePassword","characters","text","providerTheme","appearance","_MaybeUxpToast","Toast","DEFAULT_ROLE","ICONS","_CrossMedium","_InfoMedium","_SuccessMedium","success","closable","onAction","timeout","actionLabel","closeOnAction","Response","_timer","_Toast","Timeout","User","UxpToast","toastHandler","toastRef","toastTimerInfo","onRemoveToast","getElementById","handleKeyUp","handleOnClose","handleOnBlur","TOAST_PLACEMENT","TOAST_CONTAINERS","_Tooltip","SpUxpVariantMap","inspect","SpUxpTooltip","tooltipId","Tooltip","getPathData","variantMap","UxpTooltip","tooltip","_Wait","sigmoidFactory","exp","correction","getSvgArc","radius","startAngleDegrees","finishAngleDegrees","arcLengthDegrees","startAngle","PI","finishAngle","zeroAngle","cos","sin","sizeToDnaVariantMap","determinate","UxpWait","tick","getValue","centered","INDETERMINATE","DETERMINATE","strokeOpacity","alpha","finish","getArcAngles","genome","circleloader","spectrumTrackColor","spectrumFillColor","strokeWidth","dimensions","translateBy","variantClass","Wait","angle","ariaValue","fillSubmask1Style","fillSubmask2Style","Well","doc","NAVIGATION_KEYS","TEXT_INPUT_TYPES","keyboardFocus","getElementsByClassName","ctrlKey","metaKey","classList","boundClass","Reflect","boundMethod","definingProperty","boundFn","_len","_key","IntlMessageFormat","Compiler","formats","pluralFn","StringFormat","PluralFormat","useOrdinal","PluralOffsetString","numberFormat","SelectFormat","compile","ast","pluralStack","currentPlural","pluralNumberFormat","compileMessage","compileMessageText","compileArgument","NumberFormat","compileOptions","ordinal","optionsHash","getOption","MessageFormat","__parse","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","_format","variableId","__localeData__","pluralRuleFunction","parentLocale","part","defaults","mergedType","mergedFormats","localeParts","ord","v0","t0","n10","n100","realDefineProp","__defineGetter__","objCreate","proto","F","__addLocaleData","sources","hop","_propTypes2","_componentOrElement2","_reactDom2","_getContainer2","_ownerDocument2","_possibleConstructorReturn","ReferenceError","Portal","_React$Component","_mountOverlayTarget","_overlayTarget","_portalContainerNode","_unmountOverlayTarget","_renderOverlay","initialRender","_overlayInstance","onRendered","_unrenderOverlay","getMountNode","subClass","superClass","setPrototypeOf","__proto__","_inherits","_isMounted","_activeElement2","_contains2","_inDOM2","_deprecated2","_elementType2","_warning2","_ModalManager2","_Portal2","_RefHolder2","_addEventListener2","_addFocusListener2","omitProps","newProps","prop","_props","Transition","dialog","_dialog$props","unmountOnExit","handleHidden","setMountNode","onPortalRendered","setModalNodeRef","setDialogRef","UNSAFE_componentWillUpdate","checkForFocus","_props2","dialogElement","getDialogElement","currentActiveElement","restoreLastFocus","isTopModal","onEscapeKeyDown","onEscapeKeyUp","onBackdropClick","backdropStyle","backdropClassName","containerClassName","enforceFocus","_props3","handleBackdropClick","_onDocumentKeydownListener","handleDocumentKeyDown","_onDocumentKeyupListener","handleDocumentKeyUp","_onFocusinListener","mountNode","modalNode","_props4","Manager","_style2","_scrollbarSize2","_isOverflowing2","_manageAriaHidden","ModalManager","_ref2","_ref2$hideSiblingNode","_ref2$handleContainer","modalIdx","modals","containerIdx","containers","hideSiblings","overflowing","paddingRight","setContainerStyle","addClass","idx","findContainer","removeClass","removeContainerStyle","showSiblings","_LegacyPortal2","UNSAFE_componentWillMount","setContainer","RefHolder","RootCloseWrapper","currentEvent","documentMouseCaptureListener","handleMouseCapture","documentMouseListener","handleMouse","documentKeyupListener","preventMouseRootClose","shiftKey","isLeftClickEvent","capture","_on2","_off2","attachEvent","detachEvent","defaultContainer","_isWindow2","fullWidth","documentElementRect","bodyIsOverflowing","siblings","BLACKLIST","mount","nodeType","componentOrElement","tabbables","tabbable","last","TABBABLE_ELEMENT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","_scrollToDOMNode","WHITESPACE_REGEXP","FocusManager","keysSoFar","keyClearTimeout","includeSelf","array","items","getAttribute","sort","p1","p2","onFocusFirst","onFocusLast","onFocusPrevious","disableCyclicFocus","onFocusNext","onPageUp","ignorePageUpPageDown","listNode","nextPage","offsetTop","offsetHeight","reverse","onPageDown","findItemToFocus","charCode","character","removeDiacritics","searchIndex","clearKeysSoFarAfterDelay","findMatchInRange","endIndex","innerText","textContent","onKeyPress","selectedItems","targetSelected","selectedItem","focusTimer","focusableElements","_Transition","enter","exit","OPEN_STATES","entering","entered","component","_needsNative","isUxp","protocol","defaultOptions","enabled","enableSpectrumUXP","Autocomplete","Breadcrumbs","CoachMark","CoachMarkIndicator","CoachMarkPopover","FocusRingPolyfill","Form","Label","ModalTrigger","Search","Slider","Tab","TabList","Video","PortalContainer","getDefaultExport","moduleExports","Proxy","UxpComponentFn","WebComponentFn","SpComponentFn","isBoundingClientRectZero","br","br1","br2","onreadystatechange","readyState","WrappedComponent","_semverCompare","componentWillUpdate","componentWillMount","componentWillReceiveProps","incrementor","onAltArrowUp","nextFocusOffset","onAltArrowDown","onEscape","mouseDownPrevented","filterProps","DOMProps","propRe","elementWithFocusRing","createTextNode","addIllustratorStyles","platform","addIllustratorMacOverride","addPhotoshopStyles","currentLocale","getLocale","strings","variables","msg","_intlMessageformat","userLanguage","alignToStart","offsetLeft","parentPosition","parentOffsetTop","parentOffsetLeft","offsetBottom","offsetRight","overlayVisibility","overlayCallback","hideScollbars","provider","normalizationForm","isUrl","reactChild","addChildTextToResult","remaining","resume","pause","timerId","_hasClass","baseVal","_addClass","_removeClass","hasClass","replaceClassName","origClass","classToRemove","off","on","srcElement","ownerDocument","isDoc","_matches","DOCUMENT_NODE","compareDocumentPosition","defaultView","parentWindow","matchesCache","_inDOM","nativeMatch","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","ie8MatchesSelector","_querySelectorAll","win","_isWindow","docElem","box","_contains","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","_offsetParent","_extends2","found","maybeID","maybeClass","nameOnly","simpleSelectorRE","Function","scrollTo","opener","_camelizeStyle","currentStyle","rnumnonpx","rposition","runStyle","runtimeStyle","rsLeft","pixelLeft","css","transforms","_getComputedStyle2","_hyphenateStyle","_isTransform","_removeStyle","_properties","cssText","removeProperty","supportedTransforms","animationEnd","animationDelay","animationTiming","animationDuration","animationName","transitionEnd","transitionDuration","transitionDelay","transitionTiming","transitionProperty","_getTransitionPropert","vendorMap","O","Moz","Webkit","ms","vendors","vendor","getTransitionProperties","timing","duration","rHyphen","chr","_camelize","msPattern","rUpper","_hyphenate","recalc","scrollDiv","reactIs","REACT_STATICS","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","q","w","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","peg$SyntaxError","expected","captureStackTrace","parent","ctor","peg$subclass","peg$result","peg$FAILED","peg$startRuleFunctions","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","j","outerLen","inner","innerLen","peg$c2","messageText","peg$c3","peg$c4","peg$c5","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","pluralStyle","peg$c22","peg$c23","peg$c24","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","digits","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","chars","peg$currPos","peg$savedPos","peg$posDetailsCache","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","peg$computeLocation","peg$computePosDetails","details","startPos","endPos","startPosDetails","endPosDetails","peg$fail","peg$parsemessageFormatPattern","s0","s1","s2","peg$parsemessageFormatElement","s3","s5","peg$parse_","peg$parsechars","peg$parsews","peg$parsemessageText","peg$parsemessageTextElement","s6","s7","s8","peg$parsenumber","peg$parseargument","peg$parsesimpleFormat","peg$parsepluralStyle","peg$parsepluralFormat","peg$parseselectOrdinalFormat","peg$parseoptionalFormatPattern","peg$parseselectFormat","peg$parseelementFormat","peg$parseargumentElement","peg$parseselector","peg$parseoffset","peg$parsedigit","peg$parsehexDigit","peg$parsechar","cleanupExpected","expectedDescs","hex","stringEscape","buildMessage","peg$buildException","createFastMemoizeCache","store","overrideFormats","defaultConfig","configs","formatterCache","pluralRules","parts","formatters","resolvedLocale","getAst","resolveLocale","parseOpts","__rest","c1","c2","getNumberFormat","__spreadArray","getDateTimeFormat","getPluralRules","PluralRules","memoizedDefaultLocale","integer","percent","short","long","full","ErrorCode","FormatError","_super","__extends","InvalidValueError","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","PART_TYPE","isFormatXMLElementFn","currentPluralValue","els_1","varName","value_1","formatFn","chunks","MISSING_INTL_API","rule","lastPart","HASH_UNDEFINED","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","argsTag","arrayTag","asyncTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","promiseTag","proxyTag","regexpTag","setTag","stringTag","undefinedTag","weakMapTag","arrayBufferTag","dataViewTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","freeExports","freeModule","freeProcess","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arraySome","predicate","mapToArray","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","IE_PROTO","nativeObjectToString","reIsNative","Buffer","symToStringTag","toStringTag","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","entry","ListCache","MapCache","SetCache","__data__","Stack","assocIndexOf","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsEqual","bitmask","customizer","stack","equalFunc","objIsArr","othIsArr","objTag","getTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","byteLength","byteOffset","buffer","convert","isPartial","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","skipCtor","objValue","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","arrLength","othLength","seen","arrValue","othIndex","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getSymbols","getMapData","isObject","isMasked","isFunction","baseIsNative","pairs","LARGE_ARRAY_SIZE","resIndex","symbol","arrayFilter","isIndex","ArrayBuffer","Ctor","ctorString","isArguments","isLength","baseUnary","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","baseTimes","arrayLikeKeys","baseKeys","types","objectCtorString","getPrototype","allocUnsafe","objectCreate","nativeMax","nativeNow","baseCreate","assignMergeValue","baseAssignValue","assignValue","baseMerge","srcIndex","iterable","baseFor","srcValue","mergeFunc","safeGet","typedArray","arrayBuffer","isCommon","isTyped","isArrayLike","copyArray","isDeep","cloneBuffer","isPlainObject","isNew","copyObject","keysIn","toPlainObject","isPrototype","initCloneObject","baseMergeDeep","baseSetToString","identity","setToString","count","lastCalled","stamp","shortOut","nativeKeysIn","isProto","baseKeysIn","assigner","merge","otherArgs","thisArg","overRest","baseRest","guard","isIterateeCall","__read","ar","useForceUpdate","setTick","useCallback","observerBatchingConfiguredSymbol","globalIsUsingStaticRendering","isUsingStaticRendering","printDebugValue","reactionCleanupHandle","CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS","CLEANUP_TIMER_LOOP_MILLIS","uncommittedReactionRefs","ensureCleanupTimerRunning","cleanUncommittedReactions","tracking","cleanAt","reaction","insideRender","forceUpdateQueue","EMPTY_OBJECT","observerComponentNameFor","baseComponentName","useObserver","queuedForceUpdate","reactionTrackingRef","newReaction_1","trackingData_1","createTrackingData","reactionRef","rendering","exception","track","queue_1","useQueuedForceUpdateBlock","reactionScheduler","hoistBlackList","ObserverComponent","ObserverPropsCheck","propFullName","extraKey","hasProp","hasExtraProp","baseComponent","memoComponent","realOptions","wrappedComponent","memo","OBFUSCATED_ERROR","EMPTY_ARRAY","getNextId","globalState","mobxGuid","fail","check","once","invoked","noop","addHiddenProp","createInstanceofPredicate","clazz","isES6Map","thing","isES6Set","getPlainObjectKeys","enumerables","stringifyKey","toPrimitive","$mobx","Atom","isPendingUnobservation","isBeingObserved","observers","diffValue","lastAccessedBy","lowestObserverState","IDerivationState","NOT_TRACKING","onBecomeObserved","onBecomeObservedListeners","listener","onBecomeUnobserved","onBecomeUnobservedListeners","reportObserved","reportChanged","startBatch","observable","STALE","dependenciesState","UP_TO_DATE","isTracing","TraceMode","NONE","logTraceInfo","onBecomeStale","propagateChanged","endBatch","isAtom","createAtom","onBecomeObservedHandler","onBecomeUnobservedHandler","atom","interceptHook","arg3","comparer","structural","deepEqual","is","shallow","extendStatics","__values","__spread","mobxDidRunLazyInitializersSymbol","mobxPendingDecorators","enumerableDescriptorCache","nonEnumerableDescriptorCache","initializeInstance","e_1","decorators","keys_1","keys_1_1","propertyCreator","decoratorTarget","decoratorArguments","e_1_1","return","createPropDecorator","propertyInitiallyEnumerable","decorator","applyImmediately","inheritedDecorators","createPropertyInitializerDescriptor","deepEnhancer","isObservable","referenceEnhancer","createDecoratorForEnhancer","enhancer","propertyName","_decoratorTarget","decoratorArgs","initialValue","initializer","asObservableObject","addObservableProp","res","defaultCreateObservableOptions","deep","defaultDecorator","proxy","asCreateObservableOptions","deepDecorator","shallowDecorator","isObservableObject","isObservableArray","isObservableMap","isObservableSet","refDecorator","refStructDecorator","oldValue","getEnhancerFromOptions","observableFactories","incorrectlyUsedAsDecorator","ObservableValue","equals","initialValues","owned","adm","ObservableArrayAdministration","arrayTraps","allowStateChangesStart","spliceWithArray","allowStateChangesEnd","createObservableArray","ObservableMap","ObservableSet","extendObservable","getDefaultDecoratorFromObjectOptions","objectProxyTraps","createDynamicObservableObject","extendObservableObjectWithProperties","struct","arg2","methodName","computedDecorator","addComputedProp","computedStructDecorator","computed","arg1","ComputedValue","CaughtException","cause","isCaughtException","shouldCompute","derivation","POSSIBLY_STALE","prevAllowStateReads","allowStateReadsStart","prevUntracked","untrackedStart","obs","observing","isComputedValue","disableErrorBoundaries","untrackedEnd","allowStateReadsEnd","changeDependenciesStateTo0","checkIfStateModificationsAreAllowed","hasObservers","computationDepth","allowStateChanges","enforceActions","trackDerivedFunction","newObserving","unboundDepsCount","runId","prevTracking","trackingDerivation","prevObserving","lowestNewObservingDerivationState","i0","dep","removeObserver","addObserver","bindDependencies","clearObserving","untracked","allowStateReads","currentActionId","nextActionId","functionNameDescriptor","createAction","actionName","executeAction","isMobxAction","scope","runInfo","prevDerivation","prevAllowStateChanges","notifySpy","actionId","parentActionId","_startAction","suppressReactionErrors","_endAction","hasUnreportedChange","__","dehanceValue","dehancer","prepareNewValue","UNCHANGED","setNewValue","hasInterceptors","interceptChange","hasListeners","notifyListeners","intercept","registerInterceptor","observe","registerListener","toJSON","isObservableValue","__mapid","isComputing","isRunningSetter","setter","compareStructural","requiresReaction","keepAlive","propagateMaybeChanged","inBatch","trackAndCompute","propagateChangeConfirmed","warnAboutUntrackedRead","computeValue","wasSuspended","changed","suspend","firstTime","prevValue","autorun","prevU","MobXGlobals","pendingUnobservations","pendingReactions","isRunningReactions","spyListeners","globalReactionErrorHandlers","computedRequiresReaction","reactionRequiresObservable","observableRequiresReaction","computedConfigurable","mockGlobal","getGlobal","canMergeGlobalState","isolateCalled","global","__mobxInstanceCount","__mobxGlobals","queueForUnobservation","runReactions","list","BREAK","lines","printDepTree","getDependencyTree","tree","depth","Reaction","onInvalidate","errorHandler","requiresObservable","isDisposed","_isScheduled","_isTrackPending","_isRunning","schedule","isScheduled","runReaction","reportExceptionInDerivation","getDisposer","trace","enterBreakPoint","getAtom","getAtomFromArgs","LOG","MAX_REACTION_ITERATIONS","runReactionsHelper","allReactions","iterations","remainingReactions","isReaction","setReactionScheduler","baseScheduler","spy","dontReassignFields","namedActionDecorator","initializer_1","actionFieldDecorator","arg4","runInAction","defineBoundAction","view","scheduler","scheduler_1","createSchedulerFromOptions","isScheduled_1","reactionRunner","onError","bound","applyToInstance","run","expression","effect","baseFn","effectAction","runSync","nextValue","hook","listenersKey","hookListeners","isolateGlobalState","ea","properties","e_2","_b","keys_2","keys_2_1","resultDescriptor","e_2_1","nodeToDependencyTree","generatorId","FlowCancellationError","flow","generator","rejector","pendingPromise","promise","stepId","onFulfilled","onRejected","throw","cancel","cancelPromise","yieldedPromise","_isObservable","write","defaultEnhancer","values_1","key_1","detectCycles","exportMapsAsObjects","recurseEverything","toJSHelper","__alreadySeen","getKeys","res_1","toAdd","res_2","res_3","res_4","res_5","toJS","transaction","when","disposer","_when","whenPromise","timeoutHandle","getAdm","isPropertyKey","deleteProperty","keysAtom","preventExtensions","interceptable","interceptors","listenable","changeListeners","listeners","getArrayLength","arrayExtensions","setArrayLength","lastKnownLength","newV","oldV","dehanceValues","added","addedCount","removed","removedCount","newLength","currentLength","newItems","updateArrayLength","oldLength","deleteCount","spliceItemsIntoValues","notifyArraySplice","notifyArrayChildUpdate","notify","clone","compareFn","funcName","dehancedValues","accumulator","currentValue","isObservableArrayAdministration","_a$1","ObservableMapMarker","initialData","_keysAtom","_data","_hasMap","_has","newEntry","hasKey","_updateValue","_addValue","_updateHasMapEntry","makeIterable","_c","_d","_e","e_3","e_4","replacementMap","dataStructure","convertToMap","orderedData","keysReportChangedCalled","e_3_1","_f","_g","_h","keyExisted","e_4_1","iter1","iter2","next1","next2","toPOJO","e_5","e_5_1","ObservableSetMarker","_atom","callbackFn","nextIndex","observableValues","ObservableObjectAdministration","read","pendingKeys","exists","observablePropertyConfigs","generateObservablePropConfig","notifyPropertyAddition","propertyOwner","computedPropertyConfigs","getAdministrationForComputedPropOwner","generateComputedPropConfig","oldObservable","illegalAccess","owner","isObservableObjectAdministration","anyThing","getAdministration","aStack","bStack","unwrap","areArrays","aCtor","bCtor","has$1","getSelf","__MOBX_DEVTOOLS_GLOBAL_HOOK__","injectMobx","extras","getDebugName","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","toObject","assertPath","path","normalizeStringPosix","allowAboveRoot","lastSegmentLength","lastSlash","dots","lastSlashIndex","posix","cwd","resolvedPath","resolvedAbsolute","isAbsolute","trailingSeparator","joined","relative","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","out","_makeLong","dirname","hasRoot","matchedSlash","basename","ext","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","pathObject","sep","dir","delimiter","win32","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","argv","versions","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","chdir","umask","_createChainableTypeChecker2","propValue","propType","deprecated","warned","validator","reason","componentNameSafe","propFullNameSafe","messageKey","_resetWarned","_reactIs","validate","checkType","chainedCheckType","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","secret","getShim","ReactPropTypes","bigint","any","elementType","instanceOf","shape","exact","checkPropTypes","PropTypes","aa","encodeURIComponent","ba","ca","da","fa","ha","ia","ja","ka","B","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","D","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","E","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","construct","Qa","_render","Ra","_payload","_init","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","Xa","Ya","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","eb","db","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","html","mathml","lb","mb","nb","ob","namespaceURI","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","rb","sb","setProperty","ub","menuitem","area","col","embed","img","keygen","link","meta","param","wbr","vb","wb","xb","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","flags","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","pd","qd","rd","_reactName","_targetInst","returnValue","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","getModifierState","zd","buttons","fromElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","le","datetime","email","password","tel","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","G","$e","af","bf","cf","df","passive","Nb","ef","ff","gf","hf","J","K","Q","je","ke","jf","kf","lf","mf","nf","__html","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","N","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","C","Dg","Eg","Fg","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","updater","Ng","Og","getSnapshotBeforeUpdate","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","hh","P","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useLayoutEffect","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","qi","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","onclick","createElementNS","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","ceil","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","createRange","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","sk","uk","kk","hk","_calculateChangedBits","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","supportsFiber","inject","flushSync","unstable_batchedUpdates","unstable_createPortal","checkDCE","DisplayName","DisplayNameParts","FormattedNumberParts","intl","formatProps","formatNumberToParts","createFormattedDateTimePartsComponent","ComponentParts","formatDateToParts","formatTimeToParts","createFormattedComponent","formattedValue","Text","textComponent","defineMessages","msgs","defineMessage","FormattedNumber","IntlContext","__REACT_INTL_BYPASS_GLOBAL_CONTEXT__","__REACT_INTL_CONTEXT__","IntlConsumer","Context","injectIntl","intlPropName","enforceContext","WithIntl","intlProp","forwardedRef","FormattedMessage","defaultMessage","MemoizedFormattedMessage","nextValues","nextOtherProps","setTimeZoneInOptions","timeZone","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","messageDescriptor","messages","defaultFormats","fallbackOnEmptyString","defaultRichTextElements","msgId","getMessageFormat","NUMBER_FORMAT_OPTIONS","getFormatter","formatNumber","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","getRelativeTimeFormat","RelativeTimeFormat","DATE_TIME_FORMAT_OPTIONS","filteredOptions","timeStyle","formatDate","formatTime","formatDateTimeRange","formatRange","PLURAL_FORMAT_OPTIONS","formatPlural","LIST_FORMAT_OPTIONS","formatList","getListFormat","results","formatListToParts","ListFormat","richValues_1","serializedValues","generateToken","DISPLAY_NAMES_OPTONS","formatDisplayName","getDisplayNames","DisplayNames","processIntlConfig","onWarn","wrapRichTextChunksInFragment","assignUniqueKeysToFormatXMLElementFnArgument","acc","rawValues","rawDefaultRichTextElements","coreIntl","resolvedConfig","verifyConfigMessages","$t","IntlProvider","prevConfig","HOUR","selectUnit","seconds","absValue","getDurationInSeconds","INCREMENTABLE_UNITS","canIncrement","SimpleFormattedRelativeTime","formattedRelativeTime","FormattedRelativeTime","updateIntervalInSeconds","updateTimer","prevUnit","setPrevUnit","setPrevValue","currentValueInSeconds","setCurrentValueInSeconds","valueToSeconds","clearUpdateTimer","nextValueInSeconds","nextUnit","unitDuration","prevInterestingValueInSeconds","nextInterestingValueInSeconds","delayInSeconds","currentUnit","useIntl","invariantIntlContext","DEFAULT_INTL_CONFIG","assignUniqueKeysToParts","formatXMLElementFn","shallowEqual","objA","objB","aKeys","bKeys","IntlErrorCode","IntlError","UnsupportedFormatterError","UNSUPPORTED_FORMATTER","InvalidConfigError","INVALID_CONFIG","MissingDataError","MISSING_DATA","IntlFormatError","FORMAT_ERROR","MessageFormatError","MissingTranslationError","MISSING_TRANSLATION","allowlist","filtered","createIntlCache","relativeTime","displayNames","createFormatters","getNamedFormat","formatType","nextState","__reactInternalSnapshotFlag","__reactInternalSnapshot","polyfill","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","_reactLifecyclesCompat","initialStatus","parentGroup","transitionGroup","isMounting","appearStatus","mountOnEnter","nextCallback","_proto","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","setNextCallback","active","doesNotHaveTimeoutOrListener","addEndListener","childProps","classNamesShape","timeoutsShape","_toPropertyKey","hint","prim","staticProps","_assertThisInitialized","_getPrototypeOf","_setPrototypeOf","calculateSizeAndPositionDataAndUpdateScrollOffset","cellCount","cellSize","computeMetadataCallback","computeMetadataCallbackProps","nextCellsCount","nextCellSize","nextScrollToIndex","scrollToIndex","updateScrollOffsetForScrollToIndex","CellSizeAndPositionManager","cellSizeGetter","estimatedCellSize","_cellSizeGetter","_cellCount","_estimatedCellSize","_lastMeasuredIndex","lastMeasuredCellSizeAndPosition","getSizeAndPositionOfLastMeasuredCell","_cellSizeAndPositionData","_lastBatchedIndex","_ref3","_ref3$align","containerSize","targetIndex","idealOffset","datum","getSizeAndPositionOfCell","maxOffset","minOffset","totalSize","getTotalSize","params","_findNearestCell","stop","high","low","middle","interval","_binarySearch","lastMeasuredIndex","_exponentialSearch","ScalingCellSizeAndPositionManager","_ref$maxScrollSize","maxScrollSize","chrome","_cellSizeAndPositionManager","_maxScrollSize","getCellCount","getEstimatedCellSize","getLastMeasuredIndex","safeTotalSize","offsetPercentage","_getOffsetPercentage","_safeOffsetToOffset","getUpdatedOffsetForIndex","_offsetToSafeOffset","_ref4","getVisibleCellRange","resetCell","_ref5","_ref6","_ref7","createCallbackMemoizer","requireAllKeys","cachedIndices","indices","allInitialized","indexChanged","cachedValue","updateScrollIndexHelper","cellSizeAndPositionManager","previousCellsCount","previousCellSize","previousScrollToAlignment","previousScrollToIndex","previousSize","scrollOffset","scrollToAlignment","sizeJustIncreasedFromZero","updateScrollIndexCallback","hasScrollToIndex","scrollbarSize","canUseDOM","request","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","raf","caf","cancelAnimationTimeout","frame","requestAnimationTimeout","SCROLL_POSITION_CHANGE_REASONS","Grid","_React$PureComponent","_disablePointerEventsTimeoutId","isScrolling","needToResetStyleCache","onSectionRendered","_onGridRenderedMemoizer","columnOverscanStartIndex","_columnStartIndex","columnOverscanStopIndex","_columnStopIndex","columnStartIndex","_renderedColumnStartIndex","columnStopIndex","_renderedColumnStopIndex","rowOverscanStartIndex","_rowStartIndex","rowOverscanStopIndex","_rowStopIndex","rowStartIndex","_renderedRowStartIndex","rowStopIndex","_renderedRowStopIndex","_scrollingContainer","handleScrollEvent","columnSizeAndPositionManager","_wrapSizeGetter","columnWidth","_getEstimatedColumnSize","rowSizeAndPositionManager","rowCount","rowHeight","_getEstimatedRowSize","instanceProps","prevColumnWidth","prevRowHeight","prevColumnCount","prevRowCount","prevIsScrolling","prevScrollToColumn","scrollToColumn","prevScrollToRow","scrollToRow","scrollbarSizeMeasured","scrollDirectionHorizontal","scrollDirectionVertical","scrollPositionChangeReason","_initialScrollTop","_getCalculatedScrollTop","_initialScrollLeft","_getCalculatedScrollLeft","_ref$alignment","alignment","_ref$columnIndex","columnIndex","_ref$rowIndex","rowIndex","offsetProps","_ref2$scrollLeft","scrollLeftParam","_ref2$scrollTop","scrollTopParam","_debounceScrollEnded","autoHeight","autoWidth","totalRowsHeight","totalColumnsWidth","newState","_invokeOnScrollMemoizer","_deferredInvalidateColumnIndex","_deferredInvalidateRowIndex","_ref4$columnIndex","_ref4$rowIndex","_this$props3","_recomputeScrollLeftFlag","_recomputeScrollTopFlag","_styleCache","_cellCache","_updateScrollLeftForScrollToColumn","_updateScrollTopForScrollToRow","_this$props4","getScrollbarSize","_handleInvalidatedGridSize","stateUpdate","_getScrollToPositionStateUpdate","sizeIsBiggerThanZero","_invokeOnGridRenderedHelper","_maybeCallOnScrollbarPresenceChange","_this$props5","_this$state","columnOrRowCountJustIncreasedFromZero","_this$props6","autoContainerWidth","containerProps","containerRole","containerStyle","noContentRenderer","_this$state2","_isScrolling","gridStyle","boxSizing","direction","WebkitOverflowScrolling","willChange","_resetStyleCache","_calculateChildrenToRender","verticalScrollBarSize","horizontalScrollBarSize","_horizontalScrollBarSize","_verticalScrollBarSize","_scrollbarPresenceChanged","overflowX","childrenToDisplay","_childrenToDisplay","showNoContentRenderer","_setScrollingContainerRef","onScroll","_onScroll","pointerEvents","cellRenderer","cellRangeRenderer","deferredMeasurementCache","overscanColumnCount","overscanIndicesGetter","overscanRowCount","isScrollingOptOut","visibleColumnIndices","visibleRowIndices","horizontalOffsetAdjustment","getOffsetAdjustment","verticalOffsetAdjustment","overscanColumnIndices","overscanCellsCount","scrollDirection","stopIndex","overscanRowIndices","overscanStartIndex","overscanStopIndex","hasFixedHeight","hasFixedWidth","cellCache","styleCache","scrollingResetTimeInterval","_debounceScrollEndedCallback","recomputeGridSize","_onScrollMemoizer","_this3$props","scrollWidth","Boolean","onScrollbarPresenceChange","_ref8","_getScrollLeftForScrollToColumnStateUpdate","_getScrollTopForScrollToRowStateUpdate","maybeStateA","maybeStateB","estimatedColumnSize","estimatedRowSize","_ref9","finalColumn","scrollBarSize","calculatedScrollLeft","finalRow","calculatedScrollTop","renderedCells","areOffsetsAdjusted","canCacheStyle","rowDatum","columnDatum","isVisible","cellRendererParams","renderedCell","ArrowKeyStepper","_getPrototypeOf2","_this$_getScrollState","_getScrollState","scrollToColumnPrevious","scrollToRowPrevious","_this$_getScrollState2","_updateScrollState","_this$_getScrollState3","_onKeyDown","_onSectionRendered","isControlled","onScrollToChange","createDetectElementResize","nonce","hostWindow","_window","requestFrame","cancelFrame","resetTriggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollListener","__resizeRAF__","__resizeLast__","checkTriggers","__resizeListeners__","keyframeprefix","animationstartevent","domPrefixes","startEvents","elm","animationKeyframes","animationStyle","addResizeListener","elementStyle","styleSheet","createStyles","resizeTriggersHtml","trustedTypes","staticPolicy","createPolicy","createHTML","__animationListener__","removeResizeListener","AutoSizer","defaultHeight","defaultWidth","disableHeight","disableWidth","onResize","_parentNode","paddingTop","newHeight","newWidth","autoSizer","_autoSizer","_detectElementResize","_onResize","outerStyle","childParams","_setRef","CellMeasurer","_this$props$columnInd","_this$props$rowIndex","_this$_getCellMeasure","_getCellMeasurements","getHeight","getWidth","_child","_maybeMeasureCell","measure","_measure","registerChild","_registerChild","styleWidth","styleHeight","_this$props2$columnIn","_this$props2$rowIndex","_this$_getCellMeasure2","invalidateCellSizeAfterRender","CollectionView","cellLayoutManager","_onSectionRenderedMemoizer","getLastRenderedIndices","scrollToCell","scrollPosition","getScrollPositionForCell","cellIndex","_setScrollPosition","_enablePointerEventsAfterDelay","isScrollingChange","_scrollbarSize","_cellLayoutManager$ge","totalHeight","totalWidth","_scrollbarSizeMeasured","_calculateSizeAndPositionDataOnNextUpdate","_updateScrollPositionForScrollToCell","_invokeOnSectionRenderedHelper","_cellLayoutManager$ge2","horizontalOverscanSize","verticalOverscanSize","_this$state3","_lastRenderedCellCount","_lastRenderedCellLayoutManager","calculateSizeAndPositionData","_cellLayoutManager$ge3","cellRenderers","collectionStyle","Section","_indexMap","_indices","SectionManager","sectionSize","_sectionSize","_cellMetadata","_sections","getSections","section","getCellIndices","sectionXStart","sectionXStop","sectionYStart","sectionYStop","sections","sectionX","sectionY","cellMetadatum","addCellIndex","_ref$align","cellOffset","Collection","_lastRenderedCellIndices","_isScrollingChange","_setCollectionViewRef","_collectionView","recomputeCellSizesAndPositions","cellSizeAndPositionGetter","cellMetadata","sectionManager","registerCell","_sectionManager","_height","_width","cellGroupRenderer","getCellMetadata","cellRendererProps","ColumnSizer","columnMaxWidth","columnMinWidth","_registeredChild","safeColumnMinWidth","safeColumnMaxWidth","adjustedWidth","getColumnWidth","_arrayLikeToArray","arr2","_unsupportedIterableToArray","minLen","InfiniteLoader","_loadMoreRowsMemoizer","_onRowsRendered","autoReload","_doStuff","_lastRenderedStartIndex","_lastRenderedStopIndex","onRowsRendered","unloadedRanges","loadMoreRows","unloadedRange","lastRenderedStartIndex","lastRenderedStopIndex","currentIndex","recomputeSize","recomputeRowHeights","forceUpdateReactVirtualizedComponent","isRowLoaded","minimumBatchSize","threshold","rangeStartIndex","rangeStopIndex","potentialStopIndex","_index","firstUnloadedRange","_index2","scanForUnloadedRanges","squashedUnloadedRanges","iter","_loadUnloadedRanges","registeredChild","rowRenderer","widthDescriptor","getOffsetForCell","measureAllCells","_ref6$columnIndex","_ref6$rowIndex","scrollToPosition","noRowsRenderer","classNames","_cellRenderer","_GEP","_GEA","IntervalTreeNode","mid","leftPoints","rightPoints","copy","rebuild","intervals","ntree","createIntervalTree","rebuildWithInterval","rebuildWithoutInterval","reportLeftRange","reportRightRange","lo","reportRange","compareNumbers","compareBegin","compareEnd","pts","leftIntervals","rightIntervals","centerIntervals","IntervalTree","insert","weight","queryPoint","queryInterval","tproto","PositionCache","defaultCellHeight","unmeasuredCellCount","tallestColumnSize","renderCallback","_intervalTree","_s","_r","_arr","_n","_leftMap","columnSizeMap","_columnSizeMap","columnHeight","Masonry","eventScrollTop","_getEstimatedTotalHeight","_debounceResetIsScrolling","_positionCache","_invalidateOnUpdateStartIndex","_invalidateOnUpdateStopIndex","_populatePositionCache","_checkInvalidateOnUpdate","_invokeOnScrollCallback","_invokeOnCellsRenderedCallback","_debounceResetIsScrollingId","cellMeasurerCache","keyMapper","overscanByPixels","rowDirection","estimateTotalHeight","shortestColumnSize","measuredCellCount","batchSize","_startIndex","_stopIndex","_debounceResetIsScrollingCallback","estimatedColumnCount","_onScrollMemoized","_startIndexMemoized","_stopIndexMemoized","onCellsRendered","cellPositioner","_cellPositioner","setPosition","CellMeasurerCacheDecorator","_cellMeasurerCache","_columnIndexOffset","_rowIndexOffset","_params$columnIndexOf","columnIndexOffset","_params$rowIndexOffse","rowIndexOffset","clearAll","MultiGrid","showHorizontalScrollbar","showVerticalScrollbar","_bottomLeftGrid","_bottomRightGrid","fixedRowCount","fixedColumnCount","_topLeftGrid","_topRightGrid","_fixedColumnCount","_fixedRowCount","_maybeCalculateCachedStyles","_deferredMeasurementCacheBottomLeftGrid","_deferredMeasurementCacheBottomRightGrid","_deferredMeasurementCacheTopRightGrid","_ref7$columnIndex","_ref7$rowIndex","_ref8$columnIndex","_ref8$rowIndex","adjustedColumnIndex","adjustedRowIndex","_leftGridWidth","_topGridHeight","_this$props7","_this$props8","_prepareForRender","_this$state4","_containerOuterStyle","_containerTopStyle","_renderTopLeftGrid","_renderTopRightGrid","_containerBottomStyle","_renderBottomLeftGrid","_renderBottomRightGrid","_getTopGridHeight","leftGridWidth","_getLeftGridWidth","topGridHeight","resetAll","_this$props9","enableFixedColumnScroll","enableFixedRowScroll","styleBottomLeftGrid","styleBottomRightGrid","styleTopLeftGrid","styleTopRightGrid","sizeChange","_lastRenderedHeight","_lastRenderedWidth","leftSizeChange","_lastRenderedColumnWidth","_lastRenderedFixedColumnCount","topSizeChange","_lastRenderedFixedRowCount","_lastRenderedRowHeight","_lastRenderedStyle","_lastRenderedStyleBottomLeftGrid","_bottomLeftGridStyle","_lastRenderedStyleBottomRightGrid","_bottomRightGridStyle","_lastRenderedStyleTopLeftGrid","_topLeftGridStyle","_lastRenderedStyleTopRightGrid","_topRightGridStyle","hideBottomLeftGridScrollbar","additionalRowCount","_getBottomGridHeight","gridWidth","bottomLeftGrid","_cellRendererBottomLeftGrid","classNameBottomLeftGrid","_onScrollTop","_bottomLeftGridRef","_rowHeightBottomGrid","_cellRendererBottomRightGrid","classNameBottomRightGrid","_columnWidthRightGrid","_onScrollbarPresenceChange","_bottomRightGridRef","_getRightGridWidth","classNameTopLeftGrid","_topLeftGridRef","hideTopRightGridScrollbar","_this$state5","additionalColumnCount","additionalHeight","gridHeight","topRightGrid","_cellRendererTopRightGrid","classNameTopRightGrid","_onScrollLeft","_topRightGridRef","defaultHeaderRowRenderer","ScrollSync","ASC","DESC","SortIndicator","sortDirection","defaultHeaderRenderer","dataKey","sortBy","showSortIndicator","defaultRowRenderer","onRowClick","onRowDoubleClick","onRowMouseOut","onRowMouseOver","onRowRightClick","rowData","a11yProps","onDoubleClick","onContextMenu","Column","cellDataGetter","cellData","defaultSortDirection","headerRenderer","scrollbarWidth","_createColumn","_createRow","_ref3$columnIndex","_ref3$rowIndex","_Grid","_setScrollbarWidth","disableHeader","gridClassName","headerHeight","headerRowRenderer","rowClassName","rowStyle","availableRowsHeight","rowClass","rowStyleObject","_cachedColumnStyles","flexStyles","_getFlexStyleForColumn","_getHeaderColumns","onColumnClick","_column$props","columnData","headerOnClick","headerOnKeyDown","headerTabIndex","headerAriaSort","headerAriaLabel","headerClassName","headerStyle","onHeaderClick","_column$props2","disableSort","sortEnabled","ReactVirtualized__Table__sortableHeaderColumn","renderedHeader","newSortDirection","rowGetter","flattenedStyle","_getRowHeight","customStyle","flexValue","msFlex","WebkitFlex","_createHeader","getScrollbarWidth","mountedInstances","originalBodyPointerEvents","disablePointerEventsTimeoutId","enablePointerEventsIfDisabled","enablePointerEventsAfterDelayCallback","__resetIsScrolling","onScrollWindow","maximumTimeout","enablePointerEventsAfterDelay","scrollElement","__handleWindowScrollEvent","registerScrollListener","unregisterScrollListener","isWindow","getBoundingBox","getDimensions","serverHeight","serverWidth","getScrollOffset","scrollY","scrollX","getWindow","WindowScroller","_positionFromTop","_positionFromLeft","thisNode","containerElement","elementRect","containerRect","_elementRect","_containerRect","getPositionOffset","_registerResizeListener","prevScrollElement","_unregisterResizeListener","onChildScroll","_onChildScroll","__self","__source","escape","_status","_result","IsSomeRendererActing","PureComponent","_currentValue2","_threadCount","createFactory","lazy","MapShim","getIndex","class_1","__entries__","ctx","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","throttle","observer","connect_","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","disconnect","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","styles","positions","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","getHTMLElementContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","performance","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","postMessage","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","extractSize","boxProp","sizeType","useResizeObserver","onResizeRef","resizeObserverRef","_useState","setSize","didUnmount","previous","refCallback","subscriber","refOrElement","lastReportRef","refOrElementRef","cbElementRef","evaluateSubscription","cbElement","cleanup","useResolvedElement","reportedWidth","reportedHeight","newSize","unsafeStringify","randomUUID","inserted","Node","pushNode","forEachReverse","getReverse","mapReverse","initial","reduceReverse","toArrayReverse","sliceReverse","_createClass","_IngestController2","_lodash2","newController","existingContext","_v2","_ingest2","controllerKey","DecoratedComponent","handleWrappedRef","_wrappedRef","ccxIngest","ccxIngestResult","that","xhr","reqHeaders","requestOptions","port","req","stream","noOp","XMLHttpRequest","getAllResponseHeaders","onerror","setRequestHeader","send","installedIntegrations","getIntegrationsToSetup","defaultIntegrations","userIntegrations","integrations","integration","isDefaultInstance","resolvedUserIntegrations","integrationsByName","currentInstance","existingInstance","filterDuplicates","afterSetupIntegrations","client","afterAllSetup","setupIntegration","integrationIndex","splitPathRe","up","rewriteFramesIntegration","GLOBAL_OBJ","filename","isWindowsFrame","startsWithSlash","oldFilename","truncated","generateIteratee","_processStacktrace","stacktrace","frames","processEvent","originalEvent","processedEvent","_processExceptionsEvent","SPAN_FLAG_ATTRIBUTE_PREFIX","featureFlagsIntegration","_hint","_client","flagContext","getScopeData","contexts","flagBuffer","_INTERNAL_copyFlagsFromScopeToEvent","addFeatureFlag","scopeContexts","_INTERNAL_insertToFlagBuffer","_INTERNAL_insertFlagToScope","_INTERNAL_addFeatureFlagToActiveSpan","spanContext","_traceId","traceId","_spanId","spanId","traceFlags","_timestamp","_value","setAttributes","_values","setStatus","updateName","_name","isRecording","addEvent","_attributesOrStartTime","_startTime","addLink","_link","addLinks","_links","recordException","_exception","_time","createEnvelope","addItemToEnvelope","envelope","newItem","forEachEnvelopeItem","envelopeItems","envelopeItem","envelopeContainsItemType","encodeUTF8","carrier","encodePolyfill","TextEncoder","encode","serializeEnvelope","envHeaders","append","itemHeaders","stringifiedPayload","buffers","totalLength","merged","concatBuffers","createSpanEnvelopeItem","spanJson","createAttachmentEnvelopeItem","attachment","content_type","contentType","attachment_type","attachmentType","ITEM_TYPE_TO_DATA_CATEGORY_MAP","session","sessions","client_report","user_report","profile","profile_chunk","replay_event","replay_recording","check_in","feedback","span","raw_security","envelopeItemTypeToDataCategory","getSdkMetadataForEnvelopeHeader","metadataOrEvent","sdk","shouldIgnoreSpan","ignoreSpans","nameMatches","opMatches","reparentChildSpans","spans","dropSpan","droppedSpanParentId","parent_span_id","droppedSpanId","span_id","SentrySpan","startTimestamp","_attributes","parentSpanId","_parentSpanId","_sampled","sampled","endTimestamp","_endTime","_isStandaloneSpan","isStandalone","_onSpanEnded","updateStartTime","timeInput","logSpanEnd","getSpanJSON","start_timestamp","trace_id","origin","profile_id","exclusive_time","measurements","timedEventsToMeasurements","is_segment","segment_id","attributesOrStartTime","isSpanTimeInput","isStandaloneSpan","spanItems","sendEnvelope","recordDroppedEvent","sendSpanEnvelope","dsc","dsn","getDsn","tunnel","getOptions","sent_at","toISOString","public_key","dscHasRequiredProps","beforeSendSpan","filteredSpans","droppedSpans","convertToSpanJSON","createSpanEnvelope","transactionEvent","_convertSpanToTransaction","captureEvent","isFullFinishedSpan","capturedSpanScope","isolationScope","capturedSpanIsolationScope","normalizedRequest","sdkProcessingMetadata","dynamicSamplingContext","transaction_info","SUPPRESS_TRACING_KEY","startInactiveSpan","acs","getAcs","spanArguments","parseSentrySpanArguments","forceTransaction","parentSpan","customParentSpan","withActiveSpan","getParentSpan","onlyIfParent","createChildOrRootSpan","rootSpan","isRootSpan","infoParts","samplingContext","sampleRand","hasSpansEnabled","localSampleRateWasApplied","sampleRate","tracesSampler","inheritOrSampleWith","fallbackSampleRate","parentSampleRate","parentSampled","tracesSampleRate","parsedSampleRate","parseSampleRate","TRACING_DEFAULTS","idleTimeout","finalTimeout","childSpanTimeout","startIdleSpan","startSpanOptions","activities","_idleTimeoutID","_finished","_finishReason","_autoFinishAllowed","disableAutoFinish","_cleanupHooks","beforeSpanEnd","sample_rate","previousActiveSpan","_startIdleSpan","_cancelIdleTimeout","_restartIdleTimeout","_restartChildSpanTimeout","onIdleSpanEnded","spanJSON","childSpans","discardedSpans","childSpan","childSpanJSON","childEndTimestamp","childStartTimestamp","spanStartedBeforeIdleSpanEnd","spanEndedBeforeFinalTimeout","stringifiedSpan","definedEndTimestamp","spanEndTimestamp","childEndTimestamps","latestSpanEndTimestamp","spanStartTimestamp","startedSpan","endedSpan","spanToAllowAutoFinish","handlers","instrumented","addHandler","maybeInstrument","instrumentFn","_oldOnErrorHandler","addGlobalErrorInstrumentationHandler","instrumentError","triggerHandlers","__SENTRY_INSTRUMENTED__","_oldOnUnhandledRejectionHandler","addGlobalUnhandledRejectionInstrumentationHandler","instrumentUnhandledRejection","onunhandledrejection","errorsInstrumented","DEFAULT_BASE_URL","isURLObjectRelative","parseStringToURLObject","isRelative","URL","canParse","fullUrlObject","pathname","hash","getSanitizedUrlStringFromUrlObject","newUrl","username","fragment","WINDOW","bindReporter","metric","thresholds","reportAllChanges","forceReport","rating","getRating","getNavigationEntry","checkResponseStart","navigationEntry","getEntriesByType","responseStart","getActivationStart","navEntry","activationStart","initMetric","navigationType","prerendering","wasDiscarded","instanceMap","initUnique","identityObj","ClassObj","LayoutShiftManager","_sessionValue","_sessionEntries","_processEntry","hadRecentInput","firstSessionEntry","lastSessionEntry","_onAfterProcessingUnexpectedShift","PerformanceObserver","supportedEntryTypes","po","getEntries","buffered","runOnce","called","firstHiddenTime","onVisibilityUpdate","visibilityState","removeChangeListeners","getVisibilityWatcher","firstVisibilityStateHiddenTime","whenActivated","FCPThresholds","CLSThresholds","onCLS","onReport","visibilityWatcher","report","onFCP","layoutShiftManager","handleEntries","takeRecords","interactionCountEstimate","minKnownInteractionId","maxKnownInteractionId","updateEstimate","interactionId","getInteractionCount","interactionCount","initInteractionCountPolyfill","durationThreshold","prevInteractionCount","InteractionManager","_longestInteractionList","_longestInteractionMap","_resetInteractions","_estimateP98LongestInteraction","candidateInteractionIndex","_onBeforeProcessingEntry","entryType","minLongestInteraction","at","interaction","_latency","removedInteractions","_onAfterProcessingINPCandidate","onHidden","onHiddenOrPageHide","whenIdleOrHidden","rIC","requestIdleCallback","INPThresholds","onINP","PerformanceEventTiming","interactionManager","inp","LCPEntryManager","LCPThresholds","onLCP","lcpEntryManager","stopListening","TTFBThresholds","whenReady","onTTFB","_previousCls","_previousLcp","_previousTtfb","_previousInp","addClsInstrumentationHandler","stopOnCallback","addMetricObserver","instrumentCls","addLcpInstrumentationHandler","instrumentLcp","addPerformanceInstrumentationHandler","instrumentPerformanceObserver","getCleanupCallback","typeHandlers","instrumentTtfb","instrumentInp","previousValue","isMeasurementValue","startAndEndSpan","startTimeInSeconds","endTime","parentStartTime","startStandaloneWebVitalSpan","passedAttributes","sendDefaultPii","replay","getIntegrationByName","replayId","getReplayId","user","getUser","userDisplay","ip_address","profileId","replay_id","userAgent","experimental","standalone","getBrowserPerformanceAPI","msToSec","extractNetworkProtocol","nextHopProtocol","supportsWebVital","listenForWebVitalReportEvents","collectorCallback","pageloadSpanId","collected","_runCollectorCallbackOnce","unsubscribeStartNavigation","isRedirect","safeUnsubscribe","unsubscribeAfterStartPageLoadSpan","unsubscribers","MAX_INT_AS_BYTES","_lcpEntry","_clsEntry","_performanceCursor","_measurements","startTrackingWebVitals","recordClsStandaloneSpans","recordLcpStandaloneSpans","mark","lcpCleanupCallback","standaloneLcpEntry","standaloneLcpValue","cleanupLcpHandler","reportEvent","lcpValue","routeName","transactionName","loadTime","renderTime","_sendStandaloneLcpSpan","trackLcpAsStandaloneSpan","ttfbCleanupCallback","clsCleanupCallback","standaloneClsEntry","standaloneCLsValue","cleanupClsHandler","clsValue","sendStandaloneClsSpan","trackClsAsStandaloneSpan","LAST_INTERACTIONS","INTERACTIONS_SPAN_MAP","INP_ENTRY_MAP","pointerdown","pointerup","mousedown","mouseup","touchstart","touchend","mouseover","mouseout","mouseenter","mouseleave","pointerover","pointerout","pointerenter","pointerleave","dragstart","dragend","drag","dragenter","dragleave","dragover","drop","keyup","keypress","_onInp","interactionType","activeSpan","spanToUse","_onElementTiming","elementEntry","paintType","spanStartTime","spanStartTimeSource","naturalWidth","naturalHeight","startSpan","customScope","customForkedScope","onFinally","maybePromiseResult","maybeHandlePromiseRejection","isNativeFunction","lastHref","addHistoryInstrumentationHandler","instrumentHistory","historyReplacementFunction","originalHistoryFunction","urlOrPath","getAbsoluteUrl","history","ignoreOnError","shouldIgnoreOnError","wrap","wrapper","__sentry_wrapped__","sentryWrapped","wrappedArguments","ex","addEventProcessor","mechanism","extra","getHttpRequestData","referrer","Referer","PREVIOUS_TRACE_KEY","addFetchInstrumentationHandler","skipNativeFetchCheck","instrumentFetch","onFetchResolved","EdgeRuntime","Headers","Request","_isFetchSupported","sandbox","supportsNativeFetch","originalFetch","virtualError","fetchArgs","parseFetchArgs","handlerData","fetchData","getHeadersFromFetchArgs","responseReader","getTraceData","sentryTrace","propagationSpanId","getPropagationContext","scopeToTraceHeader","baggage","SENTRY_XHR_DATA_KEY","addXhrInstrumentationHandler","instrumentXHR","xhrproto","originalOpen","xhrOpenThisArg","xhrOpenArgArray","parseXhrUrlArg","request_headers","__sentry_own_request__","onreadystatechangeHandler","xhrInfo","status_code","originalOnreadystatechange","onreadystatechangeThisArg","onreadystatechangeArgArray","originalSetRequestHeader","setRequestHeaderThisArg","setRequestHeaderArgArray","originalSend","sendThisArg","sendArgArray","sentryXhrData","getAbsoluteTime","timeOrigin","responseToSpanId","spanIdToEndTimestamp","defaultRequestInstrumentationOptions","traceFetch","traceXHR","enableHTTPTimings","trackFetchStreamPerformance","instrumentOutgoingRequests","shouldCreateSpanForRequest","tracePropagationTargets","onRequestSpanStart","shouldCreateSpan","shouldAttachHeadersWithTargets","targetUrl","resolvedUrl","currentOrigin","isSameOriginRequest","isRelativeSameOriginRequest","shouldAttachHeaders","updatedTimestamp","streamHandler","addFetchEndInstrumentationHandler","createdSpan","spanOrigin","shouldCreateSpanResult","__span","endSpan","hasParent","getSpanStartOptions","fetchOptionsObj","traceHeaders","originalHeaders","isHeaders","newHeaders","prevBaggageHeader","baggageHeaderHasSentryBaggageValues","_addTracingHeadersToFetchRequest","fetchHint","instrumentFetchRequest","fullUrl","getFullURL","parseUrl","addHTTPTimings","__sentry_xhr_span_id__","parsedUrl","urlForSpanName","xhrCallback","__sentry_xhr_v3__","initiatorType","isPerformanceResourceTiming","endsWith","spanAttributes","resourceTiming","timingSpanData","redirectStart","fetchStart","domainLookupStart","domainLookupEnd","connectStart","secureConnectionStart","connectEnd","requestStart","responseEnd","resourceTimingToSpanAttributes","attributeArray","DEFAULT_BROWSER_TRACING_OPTIONS","instrumentNavigation","instrumentPageLoad","markBackgroundSpan","enableLongTask","enableLongAnimationFrame","enableInp","enableElementTiming","ignoreResourceSpans","ignorePerformanceApiSpans","detectRedirects","linkPreviousTrace","consistentTraceSampling","_experiments","browserTracingIntegration","latestRoute","optionalWindowDocument","enableInteractions","enableStandaloneClsSpans","enableStandaloneLcpSpans","beforeStartSpan","_collectWebVitals","lastInteractionTimestamp","_createRouteSpan","makeActive","isPageloadTransaction","finalStartSpanOptions","idleSpan","renderBlockingStatus","addPerformanceEntries","recordClsOnPageloadSpan","recordLcpOnPageloadSpan","setActiveIdleSpan","oldPropagationContext","setPropagationContext","emitFinish","setup","errorCallback","registerSpanErrorInstrumentation","inpCallback","startTrackingINP","scripts","parentStartTimestamp","parentOp","initialScript","invoker","invokerType","sourceURL","sourceFunctionName","sourceCharPosition","spanOptions","interactionHandler","maybeEndActiveSpan","getActiveIdleSpan","useSessionStorage","inMemoryPreviousTraceInfo","previousTraceInfo","getPreviousTraceFromSessionStorage","updatedPreviousTraceInfo","getSampleRate","previousTraceSpanCtx","addPreviousTraceSpanLink","storePreviousTraceInSessionStorage","isFirstTraceOnPageload","mutableSamplingContextData","currentPropagationContext","spanContextSampled","cancelledStatus","MS_TO_NS","THREAD_ID_STRING","THREAD_NAME","OS_PLATFORM","OS_PLATFORM_VERSION","OS_ARCH","OS_BROWSER","OS_MODEL","OS_LOCALE","languages","userAgentData","STACK_ID","getHighEntropyValues","architecture","model","platformVersion","fullVersionList","firstUa","brand","startProfileForSpan","isAutomatedPageLoadSpan","profiler","startJSSelfProfile","getPossibleEventMessages","possibleMessages","lastException","DEFAULT_IGNORE_ERRORS","eventFiltersIntegration","mergedOptions","clientOptions","_mergeOptions","_isIgnoredError","ignoreErrors","_shouldDropEvent","inboundFiltersIntegration","internalOptions","allowUrls","denyUrls","disableErrorDefaults","ignoreTransactions","originalFunctionToString","SETUP_CLIENTS","functionToStringIntegration","setupOnce","originalFunction","dedupeIntegration","previousEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","currentFrames","previousFrames","frameA","frameB","lineno","colno","function","currentFingerprint","fingerprint","previousFingerprint","SENTRY_API_VERSION","ALREADY_SEEN_ERROR","MISSING_RELEASE_FOR_SESSION_ERROR","INTERNAL_ERROR_SYMBOL","DO_NOT_SEND_EVENT_SYMBOL","_makeInternalError","_makeDoNotSendEventError","_isInternalError","_isDoNotSendEventError","Client","_integrations","_numProcessing","_outcomes","_hooks","_eventProcessors","_dsn","getEnvelopeEndpointWithUrlEncodedAuth","_metadata","_transport","transport","transportOptions","captureException","eventId","hintWithEventId","event_id","_process","eventFromException","_captureEvent","captureMessage","level","currentScope","eventMessage","promisedEvent","eventFromMessage","originalException","captureSession","sendSession","init","getSdkMetadata","getTransport","_isClientDoneProcessing","clientFinished","transportFlushed","getEventProcessors","eventProcessor","_setupIntegrations","integrationName","addIntegration","isAlreadyInstalled","sendEvent","metadata","sdkInfo","eventType","newSdkInfo","eventSdkInfo","packages","settings","_enhanceEventWithSdkInfo","envelopeHeaders","createEventEnvelopeHeaders","createEventEnvelope","attachments","sendResponse","clientReleaseOption","clientEnvironmentOption","sessionAttrs","attrs","createSessionEnvelope","category","sendClientReports","discarded_events","applySdkMetadata","names","logs","item_count","addAutoIpAddressToSession","ipAddress","exceptionFromError","stackParser","parseStackFrames","extractType","extractMessage","eventFromError","skipLines","reactMinifiedRegexp","getSkipFirstStackStringLines","framesToPop","getPopFirstTopFrames","isWebAssemblyException","WebAssembly","Exception","eventFromUnknownInput","syntheticException","attachStacktrace","isUnhandledRejection","domException","normalizeDepth","errorFromProp","getErrorPropertyFromObject","__serialized__","getNonErrorObjectExceptionValue","BrowserClient","optionsArg","__SENTRY_RELEASE__","parentSpanIsAlwaysRootSpan","SENTRY_SDK_SOURCE","infer_ip","enableLogs","_flushOutcomes","_INTERNAL_flushLogsBuffer","_logFlushIdleTimeout","eventFromString","_prepareEvent","instrumentConsole","originalConsoleMethod","DEFAULT_BREADCRUMBS","addBreadcrumb","breadcrumb","beforeBreadcrumb","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","getBreadcrumbLogLevelFromHttpStatusCode","DEBOUNCE_DURATION","debounceTimerID","lastCapturedEventType","lastCapturedEventTargetId","instrumentDOM","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","globalObject","originalAddEventListener","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","globalListener","getEventTarget","isContentEditable","shouldSkipDOMEvent","_sentryId","isSimilarToLastCapturedEvent","breadcrumbsIntegration","dom","sentry","addConsoleInstrumentationHandler","_getConsoleBreadcrumbHandler","_getDomBreadcrumbHandler","_getXhrBreadcrumbHandler","_getFetchBreadcrumbHandler","_getHistoryBreadcrumbHandler","_getSentryBreadcrumbHandler","DEFAULT_EVENT_TARGET","browserApiErrorsIntegration","eventTarget","setInterval","unregisterOriginalCallbacks","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","integrationOptions","original","handled","unregisterOriginalCallback","originalEventHandler","_wrapEventTarget","originalCallback","wrapOptions","globalHandlersIntegration","stackTraceLimit","_enhanceEventWithInitialFrame","_installGlobalOnErrorHandler","globalHandlerLog","_getUnhandledRejectionError","_installGlobalOnUnhandledRejectionHandler","applyAggregateErrorsToEvent","exceptionFromErrorImplementation","parser","limit","aggregateExceptionsFromError","prevExceptions","exceptionId","newExceptions","applyExceptionGroupFieldsForParentException","newException","newExceptionId","applyExceptionGroupFieldsForChildException","errors","childError","is_exception_group","exception_id","parentId","parent_id","linkedErrorsIntegration","preprocessEvent","createFrame","in_app","chromeRegexNoFnName","chromeRegex","chromeEvalRegex","chromeDataUriRegex","geckoREgex","geckoEvalRegex","defaultStackLineParsers","dataUriMatch","noFnParts","subMatch","extractSafariExtensionDetails","defaultStackParser","isSafariExtension","isSafariWebExtension","SENTRY_BUFFER_FULL_ERROR","DEFAULT_RETRY_AFTER","parseRetryAfterHeader","headerDelay","DEFAULT_TRANSPORT_BUFFER_SIZE","createTransport","makeRequest","task","$","taskProducer","drain","counter","capturedSetTimeout","makePromiseBuffer","bufferSize","rateLimits","filteredEnvelopeItems","dataCategory","isRateLimited","filteredEnvelope","recordEnvelopeLoss","updateRateLimits","cachedImplementations","clearCachedImplementation","makeFetchTransport","nativeFetch","impl","getNativeImplementation","pendingBodySize","pendingCount","requestSize","referrerPolicy","keepalive","fetchOptions","shouldDisableBecauseIsBrowserExtenstion","skipBrowserExtensionCheck","nw","extensionObject","runtime","_isEmbeddedBrowserExtension","reqData","ignoreDuration","clientClass","update","initialScope","setClient","setCurrentClient","initAndBind","browserInit","eventFromEnvelope","makeMultiplexedTransport","matcher","fallbackTransport","otherTransports","MIN_DELAY","START_DELAY","MAX_DELAY","promisifyRequest","oncomplete","onsuccess","onabort","createIndexedDbStore","getStore","dbName","storeName","indexedDB","onupgradeneeded","createObjectStore","dbp","objectStore","createStore","serialized","maxQueueSize","put","deserialized","firstKey","readBinary","bin","subarray","readJson","decodePolyfill","TextDecoder","decode","decodeUTF8","envelopeHeader","itemHeader","binaryLength","parseEnvelope","makeBrowserOfflineTransport","makeIndexedDbOfflineTransport","flushTimer","retryDelay","flushIn","unref","flushWithBackOff","isRetry","shouldSend","shouldStore","shouldQueue","flushAtStartup","makeOfflineTransport","AUP_SDK_DSN","inAppStackPattern","sharedComponentsPattern","sentryInitialized","query","cleanQuery","widthMatch","targetWidth","currentWidth","heightMatch","targetHeight","currentHeight","parseQuery","media","dispatchEvent","onchange","RS2Circle","LOCAL_STORAGE_KEY","LOCAL_STORAGE_KEY2","getStorage","localStorage","getItem","setStorage","setItem","MimeTypeVariants","MimeTypeVariants2","FileCapabilities","capabilities","mimeTypeToCapabilities","mimeTypeToSharingCapabilities","capability","mimeTypes","mimeType","shareSheetConfig","isCapable","fileType","capabilites","isSharingCapable","sharingCapabilities","getSharingCapabilities","sharingConfigs","isReview","isTeamLib","getCapabilities","Capability","AssetBrowser","LOG_LEVEL","INFO","LAST_ID","LOG_METHOD","DEBUG","WARN","ERROR","LOG_LEVEL_ENV","Logger","setLogLevel","logLevel","instanceId","LogLevel","NotificationStatus","NotificationStatus2","UXSortBy","accessDate","createDate","modifiedDate","shareDate","ACPL_USER_REGISTERED","ACPL_USER_NOT_REGISTERED","CORESYNC_REACHABLE_AND_COMPATIBLE","CORESYNC_REACHABLE_NOT_COMPATIBLE","CORESYNC_NOT_REACHABLE","HAS_INTERNET_ACCESS","NO_INTERNET_ACCESS","QUOTA_STATES","QUOTA_AVAILABLE","QUOTA_EXCEEDED","CLOUD_STORAGE_DISABLED","AssetChangeOperation","AssetChangeOperation2","SyncDirection","SyncDirection2","SyncStatus","SyncStatus2","_AssetSyncStateStore","Subscribable","logger","syncState","syncTimeouts","documentsPendingSync","onAssetSyncEvent","syncPayload","assetRef","syncStatus","cloudAssetId","setAssetIsSyncing","setAssetIsComplete","notifySubscribers","removeSyncingAsset","elementSyncKey","determineElementSyncKey","resetSyncTimeout","getElementSyncKey","clearSyncTimeout","cloudID","localID","onSyncProgressEvent","bytesTotalEx","bytesTransferredEx","transferDirection","newSyncState","bytesTransferred","bytesTotal","onAssetChange","changeOperation","localAssetId","UPDATE","ADD","syncingAssets","isSyncing","SAM","Syncing","isPendingSync","OutOfSync","inCacheKey","repoPath","AssetSyncStateStore","__decorateClass$i","isFirstGlobalQuotaFetch","QuotaStore","usedCloudQuota","maxCloudQuota","fetchState","ProcessingState","Pending","quotaState","refreshEnabled","imsData","displayQuotaExceededToast","quotaErrorMsgId","accountType","Personal","_a2","showToast","TOAST_EXCEEDED_QUOTA_DELAY","_fetch","globalStore","getExistingCDCGlobalStore","cdoMetrics","initSAMAssetContext","isReady","SAMAssetContext","sam","waitForSAMInit","cloudSyncStatus","NotStarted","onSAMCloudSyncStatusChange","Synchronized","ErrorQuotaExceeded","onNotificationStatusChange","onAssetSyncFail","onAssetSyncComplete","Fetching","quotaData","getCloudQuotaUsedAndMax","updateQuotaState","Done","INVALID_OPERATION","used","total","isCloudStorageDisabled","isSyncDisabled","__decorateClass$h","GenericTile","tile","enterButton","React__default","ChevronRight","canEnterTile","subTiles","tiles","allButtons","TileStatus","TileStatus2","CloudIcon","CloudIcon2","highestPriorityStatus","getStatus","highest","renderTiles","allTiles","errorMessage","ErrorBoundary","DEFAULT_LANGUAGE","MESSAGE_LOADERS","bn","cs","es","fil","fr","hu","it","ko","nl","pt","ro","ru","sv","tr","zh-Hans","zh-Hant","zu","zz","SUPPORTED_LOCALES","APP_LOCALE_REMAPPING_TABLE","fil_ph","zh_cn","zh_tw","zh_hans","zh_hant","I18NCDO","getLazyStringsForLocale","localePolyfill","importMessages","getSupportedSystemLocale","languageCode","normalizeLocale","lower","main","_subvariant","normalized","getExternalLinkLocale","uiLocale","isMessageDefined","getApplicationSpecificMsgId","productMsgId","IntlStore","didIntlLoadingFail","cachedMessages","loaded","setLocaleCalled","cdoMessages","aavMessages","importMessages$1","createIntl","setIntlForTests","waitForLoaded","__decorateClass$g","intlStore","IntlWrapper","RawIntlProvider","DEFAULTS","LOCALE","MESSAGES","SERVICE_ENVIRONMENT","FOLDER_MIMETYPE","FOLDER_MIMETYPES","SAMLIST_REFRESH_INTERVAL","INGEST_PROJECT_VALUE","EmptyViewType","EmptyViewType2","ThemeTypes","ThemeTypes2","Scales","Scales2","SAMLogLevel","SAMLogLevel2","CLOUD_SYNC_STATUS_INGEST_SUBCATEGORY","CloudSyncType","CloudSyncType2","CloudSyncStatusPopdown","tileId","currentTileId","logViewMetric","onDialogStateChange","currentTile","subcategory","cloudStore","setExternalTiles","prevTiles","newTiles","goneTiles","hostProductData","getCDCGlobalStore","getAllTiles","onOpenExternalLink","onClickTile","getCurrentTile","subtype","themeType","providerProps","spectrum","ChevronLeft","renderSubtiles","CoreSpectrumProvider","SpectrumProvider","__decorateClass$f","Utils","getPlatformPathSeparator","getParameterByName","curName","decodeURIComponent","replaceInTemplateString","template","replaceMap","matched","formatFileSize","isize","displayValue","NaN","abbrev","multiplier","formatFileSizeDisplay","elementSize","createUrlString","addString","usingUXP","getResizeElement","formatLongDateTime","sanitizeCloudDocPath","protocolToRemove","extractUrn","urnPosition","filterBooleanAttributes","CheckmarkCircle","primaryColor","secondaryColor","xmlns","ItemSyncStatus","statusIcon","syncing","renderStatusMessage","bytesTransferredString","bytesTotalString","syncArrow","syncMsg","UPLOAD","ArrowUp","DOWNLOAD","ArrowDown","ItemSyncStatus$1","CheckmarkCircleBorderless","statusMap","Critical","suffix","showBody","Disabled","Offline","Default","HELPX","GOURL","GOURL_LOCALEMAP","knownIssuesUrl","knownIssuesLink","productName","localizedGoUrl","baseToken","queryParams","mapGoURLLocale","coreSyncTroubleshootUrl","CDOLink","openExternal","onClickHandler","AlertIconBorderless","LOCALE_BASE","CloudQuotaStatus","getPercentage","upgradeUrl","onUpgradeClicked","renderStorageInfo","usedCloudQuotaString","maxCloudQuotaString","percentageUsed","currentQuotaStatus","didSAMInitFail","CloudQuotaStatus$1","globalTiles","quotaStore","assetSyncStateStore","Wait$1","alert","learnMoreUrl","errorStatus","getCloudNotificationErrorStatus","getTileStatus","alertTileFactory","cloudQuota","getCloudQuotaStatus","cloudQuotaTileFactory","cloudDocsSyncing","statuses","getCloudStatus","getCloudDocsSyncingStatus","allAssets","finishedAssets","clearCompletedAssets","TILE_ID","unsubscribe","cloudDocsSyncingTileFactory","showAlertTile","networkStatusTile","STATUS_BASE","isOnline","networkStatusTileFactory","TOOLTIP_BASE","CloudStatusStore","completedSyncAssets","openAssets","hostAssetContext","monitorAssetTileUpdates","assetId","asset","externalTiles","reactionDisposer","updateCloudIcon","openAsset","GLOBAL","commonBuiltInTileConfig","reasonSuffix","getAssetSyncStatus","syncSuspensionReason","None","STATUS_ICON_MAP","Disconnected","Paused","Cloud","waitForAssetSyncStateStore","waitForQuotaStore","defaultStatus","__decorateClass$e","SAMSyncingAssets","assetContext","localRecentsSource","getList","getAdobeAssetOrder","getSyncEventPayload","sendAssetSyncEvent","sendSyncProgressEvent","transferStatus","downloadStatus","uploadStatus","prevSyncingAssets","handleSyncingEventChange","newlySyncing","doneSyncing","stillSyncing","hadError","errorType","complete","acplModel","applicationAssetContext","platformOsVersion","osVer","wdow","isTouchDevice","DocumentTouch","maxTouchPoints","msMaxTouchPoints","SAM_CACHE","$CDC_GLOBAL_STORE","META_FLAGS","CDCGlobalStore","isFeatureFlagEnabled","featureFlags","_quotaStore","_assetSyncStateStore","sleep","setSAMInitFailed","endSAMMeasure","createPerformanceUtil","measureName","startMeasure","clientId","samCore","initializeSAM","ProductLocation","CDO","getSAMCore","refreshToken","failedToken","fetchToken","userId","fetchUserId","getAssetContext","resetSAMInitFailed","__assetContext_forTestingOnly","analyticsData","disableAnalytics","enableMobileView","metaFlag","metaFlagValue","relatedFlags","configureSentry","transformers","fromCDO","cdoLogLevel","enablePerformanceMetrics","hostConfig","createHostConfigFromCDOData","customData","defaultAnalyticsData","custom","country_code","countryCode","user_type","context_guid","sessionGuid","user_guid","user_agent","productBuildNumber","client_id","os_version","productVersion","service_code","serviceCode","service_level","serviceLevel","getIngestProviderData","aavIngest","AAVIngest","AAVComponentId","analyticsProjectKey","ingestOptions","metrics","allowedToSendAnalyticsEvents","_cloudStore","samGenerationHistoryContext","generationHistoryContext","errDesc","error_code","UNKNOWN","error_desc","getGenerationHistoryContext","platformOSVersion","appName","appVersion","ChunkLoadErrorEvent","createCDCGlobalStore","waitForExistingCDCGlobalStore","__decorateClass$d","_CDOStore","documentFilter","documentExclusionFilter","hasSeenCdoOnboardBanner","setTheme","setViewState","setSelectionBehavior","selectionBehavior","setHasSeenCdoOnboardBanner","seenBanner","SEEN_ONBOARD_CDO","isOrganizer","ModeType","organizer","isTabViewPicker","linkAssets","place","placeLinkOrEmbed","setFileCapabilites","fileCapabilites","fileCapabilities","isSaveToFolderPicker","saveToFolder","isChooseDirMode","saveAs","saveAsCopy","export","move","isPlaceOrPlaceLinkOrEmbedPicker","isPlaceLinkOrEmbedPicker","isOpenItemPicker","updateModeState","setDocumentFilterOverride","documentFilterOverride","clearDocumentFilterOverride","setDocumentFilter","CDOStore","useSpectrumProviderProps","__decorateClass$c","RawProvidersWrapper","hostConfigOverrides","useHostConfig","HostConfigOverrides","SAMProvider","SpectrumProvider$1","ToastOverlay","toastCoords","toastBottomOffset","toastLeftOffset","toastWidth","toastStore","coords","innerRef","ToastOverlayRef","ThinCDOProvider","NetworkProvider","CDOProvider","__cdoStoreForTests","hostShowModal","hostShowToast","toastOverlayRef","toastContainer","fallbackShowToast","useToasts","cdoStore","VIEW_STATE","ViewMode","ToastStore","_b2","_c2","NotImplemented","setGetView","fileSharingCapabilities","getFileSharingCapabilities","samInitialized","localeLoaded","cdoInitEnded","useLoadPerformance","enablePerformanceMeasurement","trackPerformanceAnalytics","setSamInitialized","setLocaleLoaded","swcLoaded","setSwcLoaded","fireInitEvent","INIT_LOGGED","initSam","loadLocale","preloadSWC","preload$1","swcPromise","localePromise","samPromise","performanceAlreadyMeasured","finally","handleOnline","useInit","Themes","light","Busy","NoConnection","clipPath","SWYNoConnection","fillRule","DeletedNoConnection","EmptySharedDocs","SomethingWentWrong","EMPTYVIEW_PROPS_FOR_ERROR","image","subtitleId","titleId","EMPTYVIEW_PROPS_FOR_ERROR_WEB","CLOUD_STORAGE_DISABLED_EMPTYVIEW_PROPS","OnboardingStore","openUserOnboardingDialog","currentStep","onboardingSteps","setOpenUserOnboardingDialog","setCurrentStep","step","setOnboardingSteps","steps","_extends$3","_extends$2","_extends$1","__decorateClass$b","DEFAULT_ONBOARDING_STEPS","TOUCHSCREEN_ONBOARDING_STEPS","ONBOARDING_STEPS_ILLUSTRATIONS","movingFiles","MovingFiles","rightClick","RightClick","bulkSelect","ShortcutForBulkSelection","longPress","LongPress","Header","rootTitle","filterComponent","banner","hideSort","hideViewToggles","subheader","isOneLineHeader","sortOptions","rootAsset","actions","onViewOptionsChange","viewMode","selectionManager","useAAVContext","handleViewModeChange","_viewMode","toolbar","SortDropdown","ViewToggles","onViewModeChange","viewAllFilesAction","resetSelection","headerNav","HeaderNavigation","HeaderActionButton","buttonQuiet","buttonVariant","HeaderSelectButton","mapCustomActions","customActions","tabConfig","routeId","backedCollectionItemToAdobeAssets","backingItem","customAction","renderIcon","execute","getDisabledTooltip","Action","isFolderAction","ActionType","Route","htmlElement","Circle","_params","_opStore","_correlationId","getDisabledTooltipMsgId","DEFAULT_VIEW_OPTIONS","sortDir","CDOTab","intervalId","reactionsReady","reactionDisposers","performanceMeasurements","onNetworkChange","samList","thumbnailStatus","clearRenditionError","setNeedsRefresh","onWindowFocus","refreshOnWindowFocus","lastFetchTime","handleLaunchItems","documents","openAdobeAsset","baseUrls","ClickSource","Asset","shouldRenderItemAsDisabled","_element","commonShouldRenderItemAsDisabled","isOfflineOpenDisabled","isOpenDisabled","isFolder","isAvailableOffline","isPlaceOrPlaceLinkDisabled","isNonFolderInChooseDirMode","passesCommonDisabledStates","getEmptyViewProps","errorViewProps","getErrorViewProps","ExternalLink","ingestSubcategory","getNonErrorEmptyViewProps","isShareActionVisible","hasOnlyOne","hasAnyLegacyExpress","selectedType","isReviewLink","ShareSheetAction","ReviewLink","storageAssignee","TeamLib","getShareSheetConfig","getMimeTypeConfig","onBeforeItemClicked","LocalContentCorrupted","resolveSyncError","resolveSyncConflictsAction","createResolveSyncConflictsAction","Success","metricLogger","getOperationalMetricLogger","ActionAnalyticsValue","ResolveSyncError","shouldResolveConflict","beforeExecute","operationStore","onRouted","RoutedEvent","filters","viewOptions","onboardingStore","getBaseUrlMap","baseIngestEvent","workflow","atRootFolder","Workflow","General","Folder","setupReactions","setupPerformanceMeasurements","ReadyHasMorePages","ReadyFullyLoaded","endFirstPageMeasurement","EventType","endFullyLoadedMeasurement","allRenditionsReady","endRenditionsLoadedMeasurement","tabName","createPerformanceMeasurement","createLoadPerformanceMeasurement","measureName2","_j","_k","_l","_m","getUBEUserOnboardingConfig","getCustomActions","isUserOnboardingCompleted","canInvokeOnboarding","enableUserOnboarding","invokeOnboardingDialog","isTouchScreen","cdoOnboardingSteps","getCDOOnboardingSteps","updatedOnboardingDetails","handleRoutingChange","isManualRefresh","requiresManualRefresh","isOnlineWithError","isNotLoading","Loading","clearInterval","endFn","fileTypesFromDocumentFilter","compatibleTypes","AllFiles","ADOBE_FILE_MIMETYPES","GENERIC_FILE_MIMETYPES","mimetypes","mimetype","filterOptions","getTypeViewModel","getDefaultFilterOptions","systemFilters","conditional","getFilterEmptyProps","getOfflineEmptyViewProps","getFilterEmptyView","allFiles","EmptyCloudDocs","handleViewOptionsChange","renderEventMetricSubtype","filterValue","compatibleFilterOption","constructIFilter","filterViewModel","defaultFilterValue","routeToParent","routingRefreshTimestamp","prevSortBy","prevSortDir","currentSortBy","currentSortDir","hasSortParamChange","routeIdChanged","routeToParentChanged","routingRefreshTimestampChanged","setSamList","_d2","HadLoaderErrors","RenderedEvent","folderNavigation","getAssetWithCloudID","ancestorIDs","parentAsset","parentFolder","updatedViewOptions","Navigation","Click","sort_order","sort_sequence","NavigationEvent","handleNavigateOut","NavigateOutEvent","finalActions","excludedActions","allowedActions","mappedCustomActions","allActions","groupNameA","groupName","groupNameB","localeCompare","sensitivity","EMPTYVIEW_PROPS_FOR_UNKNOWN_ERROR","onViewOfflineFiles","listColumns","typeColumn","modifiedDateColumn","sizeColumn","sharedWithColumn","aavProps","cdoPassthroughProps","hideActionMenu","hideActionToolbar","onSelectionChange","allowClickEventOnDisabled","logFilterChange","logUsageMetric","MenuType","renderBanner","renderFilterComponent","hideFilter","FileTypesFilter","compatibleTypesFilter","createCompatibleTypesFilterViewModel","headerProps","currentFilter","renderHeader","renderSubheader","overrideListColumns","documentFilters","mediaType","isHiddenFilter","documentExclusionFilters","allFilters","HeaderComponent","AdobeAssetsView","componentId","hideNextPageLoadingIndicator","launchItems","onNavigateOut","getPropsForItem","getDraggedFiles","onExportCallback","analyticsValue","Export","exportFiles","logAnalytics","errorCode","errorDesc","metricLoggerOptions","correlationId","sentryTagSource","correlation_id","event_date","total_asset_count","action_type","captureSentryException","adaptOnBefore","getOpenCloudDocuments","checkAllowedAssetsBeforeOp","getBlockedAssets","getCurrentlyOpenAssets","HostConfigContext","__decorateClass$a","MIMETYPES","PS_CLOUD_DOCUMENT_DEP","XD_CLOUD_DOCUMENT","ILLUSTRATOR_CLOUD_DOCUMENT","INDESIGN_CLOUD_DOCUMENT","INDESIGN_CLOUD_DOCUMENT_LIVE","getActionsForCloudDocuments","onBeforeDelete","onBeforeRename","onBeforeMove","onAfterDelete","onAfterDuplicate","onAfterRename","launchUAP","canOpenItems","routes","onBefore","createOpenAction","Metrics","Open","canOpenMultiple","enableCloudDocMultiSelectOpen","createShareAction","createRenameAction","onAfter","assets","aavRenameCallbacks","Rename","createDuplicateAction","Duplicate","createMoveAction","mediaTypes","excludeMediaTypes","viewId","CloudDocuments","isMobile","isSmallBreakpoint","Move","undoMetricLogger","getUndoOperationalMetricLogger","createExportAction","canExportMultiple","onExport","createMakeAvailableOfflineAction","Pin","enableAddToBoard","createAddToBoardAction","AddToBoard","createDiscardAction","Discard","includeUndo","getActionsForFFBoards","isOwner","canEdit","hasPermission","Write","canRenameDuplicateDelete","isChildOfProject","hasAny","createLeaveAction","Leave","createReportAbuseAction","ReportAbuse","hasOnlyNonFolders","getActionsForLibraries","createCopyLinkAction","CopyLink","Project","getActionsForProjects","getActionsForReviewLinks","createPermDeleteAction","PermDelete","getActionsForSharedWithYou","getCommonActionsForFavoriteAssets","onBeforePermanentDelete","onAfterPermanentDelete","showFavorites","enableFavorites","showAddToCloud","enableAddToCloud","isFireflyGenerationIncomplete","createFavoriteAction","isFavorite","Favorite","createRemoveFavoriteAction","RemoveFavorite","createCopyToAction","isFireflyGeneration","Projects","generationHistoryUtils","getGenerationState","IN_PROGRESS","QUEUED","shouldUseBatchOperation","INGEST_SUBCATEGORY$7","SharedWithYou","swyDocumentFilter","sortByState","enableSharedDateColumn","getAssetList","sharedSource","loadAll","automationSuffix","metadataFormat","isNonZeroAndValidDate","DateMetadata","shareDateColumn","toViewModel","Photoshop","Illustrator","Express","Concept","Acrobat","InDesign","Aero","XD","Squirrel","Assets3d","Libraries","Brands","ReviewLinksOption","Images","Videos","Audio","getSWYFilterFileTypes","__decorateClass$9","SharedWithYou$1","EmptyTrash","InfoIconOutline","INGEST_SUBCATEGORY$6","Deleted","onOpenAssetsWeb","stopNative","stopImmediatePropagation","fireIngestEventClick","getCommonEmptyViewProps","showLocation","discardedSource","onBeforeRestore","onAfterRestore","createRestoreAction","Restore","ProjectOption","getDeletedFilterFileTypes","renderDeleteWarningMessage","warningMessage","__decorateClass$8","Deleted$1","OnboardingBanner","onDismissOnboardBanner","learnMoreLink","onboardingImage","Assets","_rollupPluginStaticAssets273ae01c","ev","Link$1","__decorateClass$7","OnboardingBanner$1","EmptyCloudDocsIlst","fillColorClass1","fillColorClass2","fillColorClass3","UserLoggedOut","INGEST_SUBCATEGORY$5","TAB_CONFIG","getCloudDocumentsListOptions","getSAMFilter","loadOptions","endGetRootFolderMeasurement","_a3","listOptions","rootFolder","getRootFolder","listingHints","resolvedAsset","samFilter","getCloudDocumentsSAMList","getImportAction","importFiles","promptUserForFileImport","Import","createImportAction","getAddFolderAction","closeModal","createAddFolderAction","folderToNavigateTo","AddFolder","isCurrentFolderRoot","isCDO","onNewDocument","errorLink","connection","unfilteredEmpty","filteredEmpty","EmptyCloudDocsImage","SVG","cloudDocsFaqLink","ProductId","cloudDocsHelpUrl","onboardingHelpJumpToken","goUrlJumpToken","cloudDocsFaqUrl","dragDropEnabled","onboardingBannerProps","__decorateClass$6","CloudDocuments$1","EmptyReviewLink","strokeLinecap","strokeLinejoin","INGEST_SUBCATEGORY$4","ReviewLinks","publishedSource","helpLink","helpText","mimeTypeFilter","reviewLinkSourceType","TypeDropdownFilter","__decorateClass$5","EmptyRecents","ViewAllFilesAction","INGEST_SUBCATEGORY$3","Recents","collectionViewItemOverrideProps","actionMenuItems","getLocation","indexForShowLocation","createShowLocationAction","SingleSelectionManager","selectionUXConfig","alwaysShowEllipsis","clickSelectionMode","ClickSelectType","showCheckbox","showEllipsisOnHover","none","maxRecents","Title","predefinedColumn","isSortDisabled","maxAssets","onLocationClick","navigateToAssetLocation","recentAssetsSource","filterType","DEFAULT_PAGE_SIZE","customButtons","Button$1","Add","ItemViewEventType","__decorateClass$4","Recents$1","EmptyMediaGallerySvg","maskType","maskUnits","mask","gradientUnits","gradientTransform","stopColor","x1","y1","x2","y2","EmptyFavorites","INGEST_SUBCATEGORY$2","Favorites","prevErrorViewProps","showDefaultErrorView","viewStateEvent","CustomEvent","composed","ALL_MIMETYPES","GenerationAll","getActionsForFavoritesTab","isImportMode","favoriteAssetsSource","emptyViewPropsOverrides","empty","isAudioEnabled","isVectorEnabled","GenerationImage","GenerationVideo","GenerationAudio","GenerationVector","filterEmptyProps","__decorateClass$3","EmptyGenerationHistory","INGEST_SUBCATEGORY$1","GenerationHistory","single","hideFolderCheckbox","hideFileCheckbox","shouldHideCheckbox","setupFilterReaction","filterReactionDisposer","getActionsForGenerationHistory","historyAssetType","IMAGE","VIDEO","samContext","getGenerationHistoryList","generationHistorySource","__decorateClass$2","GenerationHistory$1","EmptyFFBoards","FFBoards","handleErrorViewPropsChange","overrideIcon","IconBoards","ffBoardsSource","SWYFilterView","AllBoardsOption","YourBoardsOption","SharedWithYouBoardsOption","__decorateClass$1","CloudSyncDefaultIcon","CloudSyncDisconnectedIcon","primaryFillStyle","CloudSyncErrorIcon","CloudSyncInProgressIcon","CloudSyncPausedIcon","secondaryFillStyle","CloudSyncStatus","renderTooltipWrapper","cloudStoreSubscriptionKey","cloudIcon","showSideLabel","__decorateClass","CDOContentViewType","RS2Checkbox","checkboxWrapperRef","RS2DeviceDesktop","RS2Accordion","RS2AccordionItem","AccordionModule","accordionItems","accordionItem","RS2Properties","withOrganizerConfig","hideViewToggle","projectView","useOrganizerConfig","projectViewOptions","getProjectViewOptions","IconAllFiles","IconYourProjects","account_type","IconSharedWithYou","currentSortKey","getCurrentSortKey","Properties","ViewGrid","ViewList","classnames","group","ViewOptionsDropdown","sortSections","filterSection","currentFilterKey","testId","PropertiesIcon","viewOptionsButton","firstMenuSection","viewIcon","accordionMenuGroup","accordionMenuItem","SORT_KEY_MAP","asc","ViewOptionsButton","sortByValues","filterOption","RS2Close","APP_LOCALIZATION_TABLES","bnIN","csCZ","cyGB","daDK","deDE","elGR","enUS","esES","fiFI","filPH","frFR","hiIN","huHU","idID","itIT","jaJP","koKR","msMY","nbNO","nlNL","plPL","ptBR","roRO","ruRU","svSE","taIN","thTH","trTR","ukUA","viVN","zhHans$1","zhHant$1","zuZA","I18NCDP","getStringsForLocale","localeCode","handleLocaleVariants","langCode","INGEST_INITIAL_STATE","UXP_INITIAL_DIALOG_WIDTH","UXP_INITIAL_DIALOG_HEIGHT","UXP_MIN_DIALOG_WIDTH","UXP_MIN_DIALOG_HEIGHT","SaveAsOrExportInput","inputLabelId","onInputChange","onPrimaryButtonClick","primaryButtonDisabled","saveAsOrExportLabel","formatMessageValues","ValidationStatus","invalidChar","VALIDATION_INVALID_CHARS","hasErrorMsg","errorMsgKey","ReactSpectrumValidationState","styles$9","UAP_LOCAL_STORAGE_KEY","UAP_LOCAL_STORAGE_KEY2","getDontShowAgainLocalStorageKey","SEEN_CONFIRMATION_PREFIX","ConfirmationDialog$1","ConfirmationDialog","dontShowAgain","setDontShowAgain","localStorageKey","useLocaleMessageIfExists","dialogTitle","dialogBody","dialogConfirmLabel","dialogCancelLabel","dontShowAgainLabel","_error","FileFormatDropdown","fileFormats","onFormatSelect","selectedFileFormat","setSelectedFileFormat","disableOptions","fileFormat","singleFileFormat","currentFileFormat","handleFormatSelect","PickerViewFooter","isSaveAsOrExportPicker","outputFileFormatChoices","disableLinkCheckbox","hideLinkCheckbox","hideInfoIconAndTooltip","isLinkMode","primaryButtonLabel","cancelButtonLabel","onToggleLinkOrEmbed","primaryButtonPending","disableCancelButton","footerMessage","getConfirmationDialog","showingConfirmationDialog","setShowingConfirmationDialog","handleToggleLinkOrEmbed","renderLinkCheckbox","Checkbox$1","InfoOutline","renderButton","renderFooterContent","cancelButton","primaryButton","confirmationDialogConfig","platformString","normalizePlatform","renderConfirmationDialog","VerticalTabs","shouldShowSideBar","rootFolderId","verticalTabsRef","checkShouldShowSidebar","tabVisibility","tabs","tab","isHidden","hasMultipleTabs","updateShouldShowSidebar","renderSideNavItem","defaultLabel","renderSideBar","_e2","samRootFolder","renderGroup","renderedTabs","SideNavHeading","currentTabId","footer","hideYourComputerButton","onSwitchToOSPicker","activeTab","showOnYourComputerButton","groups","curr","styles$5","groupTabs","renderTab","DeviceDesktop","VerticalTabs$1","DEFAULT_BENEFITS","isCloudBenefit","isLocalBenefit","OnboardingView","_renderButton","styles$4","OverlayTrigger$1","infoIconWrapper","InfoOutline$1","infoIcon","infoPopover","infoPopoverLink","renderTable","hideOnboardingInviteToEditRow","includedBenefits","benefit","table","tableHeader","tableData","tableHeaderIcon","DeviceLaptop","onYourComputer","tableHeading","saveToCloud","titles","onYourComputerIcons","checkmark","CloseCircle","saveCloudIcons","renderFooter","dontShowCheckValue","onToggleDismissal","onSwitchToCDOPicker","OnboardingView$1","CustomOrganizerHeader","headerTitle","rootRef","styles$1","customOrganizerHeader","customOrganizerHeaderLeft","BackButton","showRootBackButton","ProjectsViewOptionsButton","ProjectContents","ProjectsOrganizer","ProjectsTab","navigationDetail","disableViewOnlyProjects","actionFilter","navigationState","updateNavigationState","navigation","setNavigation","projectId","useNavigationState","sharedProps","destinationAsset","useCustomHeader","hideEmptyViewActions","hideHeader","hideProjectActions","styles$3","MoveFromSelectionManager","MultiSelectionManager","onViewItemClickSelection","AdobeAssetCollectionItem","selectionStore","selectedElements","updateSelection","configureUAPHeader","configuredProps","UAPHeader","hideViewOptionsButton","uapHeader","mobile","uapHeaderLeft","compact","uapHeaderRight","CloseButton","Close","PickerView","focusEl","onBeforeItemClickedForTabs","executePrimaryButtonClick","actionCallback","_allActions","_actionHandler","PickerMode","onItemsSelected","pivotElement","setSelection","moveFrom","saveAsName","isLink","lastSelectedWasNotBothLinkableAndEmbeddable","canLink","linkIsSupported","canEmbed","embedIsSupported","requiresSelectedItems","_isSaveAsOrExportPicker","cloudDocumentTab","isClickEventOnDisabled","getSelectionManager","DocumentOutline","recentsTab","Clock","convertToSketchLibrariesTab","ConvertToSketch","onTabSelected","onSwitchToSketchLibrariesImport","sharedWithYouTab","UserGroup","projectsTab","ProjectIcon","generationHistoryTab","IconFirefly","deletedTab","DeleteOutline","handleNavigateOutEvent","_event","executeValidAction","viewType","analyticsEvent","action2","selectedFileFormat2","view_type","getAnalyticsEvent","fireIngestEvent","isExternalCancel","dontShowCheckboxValue","cancelState","selectedAction","callOnExecutePickerAction","folderInfo","getFolderInfo","handleSaveAsOrExportInputChange","newName","_handleOnboardingAction","showOnboarding","onExecutePickerAction","dismissInterstitial","toggled","onSaveAsOrExport","fileNameValidator","actionToExecute","onSaveToFolder","onExternalCancel","onPlaceLinkOrEmbed","selectedTab","onPlaceLinkOrEmbedDocuments","onCopy","onMove","onMoveFrom","onAdd","onVerticalTabsSwitchView","onSwitchView","appFileFormat","showInvalidSaveAsFormatToast","removeToast","renderTitle","titleMsgId","CreativeCloud","renderSaveAsView","cdpTabs","disablePrimaryButtonForInput","isCurrentViewEnabled","renderVerticalTabView","_getFooterOptions","renderSaveToFolderView","getConfirmationDialogForContext","renderMainView","showMobileNavView","TABS","getTabs","showInterstitial","linkableTypes","documentType","getDocumentType","isArtifact","embeddableTypes","isViewEnabled","defaultIsViewEnabled","isViewEnabledForSave","SelectionUX","Single","updateInitialLocation","addExternalCancelListener","hasShownPlaceLinkWarning","showPlaceLinkWarningToast","removeExternalCancelListener","baseProps","getFooterMessage","disableCancelButton2","primaryButtonPending2","genericFormat","adobeFormat","addToast","CDOLocalStorage","PLACE_LINK_WARNING","enablePlaceLinkWarningToast","actionLabelMsgId","disableCloudDocumentsTab","disableSharedWithYouTab","enableProjectsTab","enableGenerationHistoryTab","enableRecentsTab","cloudDocumentTabIfEnabled","isDesktopApp","fireImmediate","folderAssetRef","folder","assetRefString","spaceInfo","spaceName","spaceId","repoId","repositoryID","currentFolder","currentRoute","windowController","actionState","selectedTabId","route","isNotASaveOrExportView","renderOnboarding","mainView","onboardingView","PickerView$1","PickerViewLoader","setLoaded","ffOverrides","setFFOverrides","filesRoot","canMove","getMoveCapability","enableCloudDocFolders","pickerStateChanged","DocumentPicker","_isEventRegistered","_rootRef","handleModeChange","expectedTransitions","handleNavigateEvent","handleOpenEvent","getSelectionBehavior","cdoIMSData","_pickerViewRef","_callbacks","_handleExecutePickerAction","onStatusChange","defaultInitialView","currentState","pickerInfo","initialView","_imsData","_endLoadPerformance","changeEventDispatcher","prevMode","cdoHostProductData","uapDocumentFilter","cdoDocumentFilter","executePickerAction","currentPickerInfo","_getIngestProviderData","subscriptionType","fw","openedSessionGuid","isPanel","isWebDialog","enableCDPOnboarding","enablePlaceEmbedWarningToast","useCDPDeletedTab","cdoMode","baseIngestData","classNameList","ReactSpectrumProvider","DocumentPicker$1","UAP","_documentPickerRef","placeDocuments","openDocuments","themeStr","analytics","constructedCdoHostProductData","dcxId","os","osVersion","UAB","CDOReactComponent","renderCDOContentView","currentView","isCloudDocuments","contentViewProps","sdkOrConfig","inlineScript","isProfilingEnabled","cc_asset_browser","shouldProfileSpan","profiledTransactionEvents","findProfiledTransactionsFromEnvelope","profilesToAddToEnvelope","profiledTransaction","takeProfileFromGlobalCache","SPANS_BUDGET","SPANS_BUDGET_TOTAL","AVG_SPANS_PER_TRACE","profilesSampleRate","getEvent","beforeSend","scopeTags","_tags","tags","dataset","dataTestId","tagInnerText","_requestId","_cdtXHR","componentVersions","__component_loader_versions__","loaderOverrides","__component_loader_override__","overrides","_overrides","flagsIntegration","initSentry","initialize","resourcePath","registerStore","DragSource","GenericFileIcon","SelectionStore","ROOT_FOLDER_PATH","SHARED_WITH_YOU_PATH","ARCHIVE_FOLDER_PATH","components","getName","getIcon","_OpenLinkEvent","EVENT_NAME","OpenLinkEvent","openLink","AddFolderDialogErrorMessage","validationError","AddFolderDialog","setName","nameValidationError","onNameChange","useNameValidation","samValidationError","setSamValidationError","isLoading","setIsLoading","handleSubmit","createFolder","isSAMError","CONFLICT","useEnterKeySubmit","submitDisabled","DialogContent","Cancel","name2","HelpText","onlyOneOrMultipleAndNoSyncErrors","hasMultiple","SyncConflict","needsSyncErrorResolution","SUPPORTED_MEDIA_TYPES","FIREFLY_GENERATION_IMAGE","PS_CLOUD_DOCUMENT","canAddToBoard","areAllSupportedByBoard","_operationStore","AURA","AAVMetrics","createCorrelationId","getLinkBlob","assetOp","opName","UXOpName","COPY_LINK","operation","constructAssetLink","routeTemplates","linkSource","Blob","succeededElements","IconCopy","isCmTrainingSet","clipboard","ClipboardItem","ProgressDialog","labelMessageDescriptor","numInProgress","assetOpCompleted","useSafeCloseModal","progressPercent","dialogRoot","Delete","isLibrary","isEditingRestricted","filteredElements","failedElements","beforeAll","DISCARD","ele","discard","RESTORE","restore","undoDiscard","DUPLICATE","destinationFolder","parentProjectID","copyLibrary","duplicate","isQuotaError","_ExportEvent","ExportEvent","SUPPORTED_CONVERSIONS","hasAllExportables","hasAnyLocalItemsToBeSynced","AnalyticsEvent","LIVE_MIMETYPES","PS_LIVE_DOCUMENT","DownloadFromCloud","hasAnyBetaExpress","canMakeAvailableOffline2","isUserPinned","hasOnlyUserPinnedItems","isComposite","hasOnlyComposites","CLOUD_ONLY_MIMETYPES","hasAnyCloudOnlyAssets","canMakeAvailableOffline","downloadComposite","USER_PIN","isSingleFolder","folderElement","onConflict","RenameAction","actionValue","modalOptions","onSuccess","RenameDialog","disablepublicaccess","disablelinkaccess","invitemessagedisabled","roles","emailnotification","acceptance","viewer","editor","sharing","accessRequest","grant","showsettingsbutton","disablecancomment","PDF","EXPRESS_MIMETYPE","EXPRESS_PAGE_MIMETYPE","XD_DESIGN_SPECS","XD_PROTOTYPE","XD_SHAREDARTIFACT","preselected","LIBRARIES","invitecreateacceptancerequired","enablelibraryrestrictiontoggle","ShareDialog","shareSheetData","getHostMimeTypeConfig","assetType","targeturl","notificationlinkurl","customTitle","appId","shareSheetVersion","useProject","useShareSheetLoader","userEmail","booleanArgs","analyticsenabled","touchMode","enablefacepile","enablepubliceditor","toLocaleLowerCase","device_guid","deviceGuid","getPlatform","styles$2","shareDialog","assetid","assetname","assettype","openeddialog","inviteapiversion","INVITE_API_VERSION","supportedMimeTypes","getCustomTitle","isBrand","Share","ShareIcon","_waitForLibraryLoad","getLibraryType","LibraryPrimaryType","BRAND","LeaveDialog","assetName","isShared","handleCancel","_type","IconLeave","isSharedWithYouAsset","isProject","getAssetTypes","LEAVE","removeCurrentUserFromCollaborationList","FolderGeneral2024","PermDeleteDialog","dialogItemsContainer","dialogRenditionWrapper","dialogRendition","draggable","rendition","sizeInBytes","dialogSize","Size","isDiscarded","initAnalyticsPayload","assetData","batchOperation","elements2","permanentlyDeleteAssets","dismissible","PERM_DELETE","permanentlyDelete","failureAnalyticsPayload","Failure","successAnalyticsPayload","validateEmail","leiaProductNameMap","photoshop","illustrator","cc_express","cc_home","firefly","reasonLabelMap","defamation","hate","trademark","pornography","vulgar","ReportAbuseDialog","showPersonalInfo","emailId","setEmailId","attemptedSubmit","setAttemptedSubmit","isNameChange","setIsNameChange","isEmailChange","setIsEmailChange","setReason","descTxt","setDescTxt","isExecuting","setIsExecuting","nameIsEmpty","emailIsEmpty","isNameFieldDisabled","isEmailFieldDisabled","isReasonEmpty","leiaProductName","handleReasonChange","emailStr","nameStr","descTxtStr","reportAbuseInputData","reportType","reporterName","reporterEmail","reportDesc","assetList","reportDate","LEIA_URL","postReportAbuse","statusText","emailNameInputFields","emailInputField","inputTextfield","nameInputField","radioGroupContainer","radioGroup","radioGroupRequired","radio","textAreaDesc","disclaimerHelperText","SYNC_ERR_GO_URL_BASE","SyncErrorDialog","PERSONAL_STORAGE_ID$1","isInvalidName","isValidInput","isDirty","hasFocus","NewLibraryDialog","onLibraryCreated","parentProject","isPersonalLibrary","setIsPersonalLibrary","saveToSelection","setSaveToSelection","restrictEdit","setRestrictEdit","setError","disableSubmit","setDisableSubmit","setIsDirty","setHasFocus","useProjectList","filteredList","saveToOptions","saveToSelectIcon","IconUser","ProjectBadge","gradient","projectData","parentProjectIsInOrgStorage","repositoryOwner","listLoaded","selectedProjectIsInOrgStorage","shouldShowRestrictToggle","disableSubmit2","dialogContent","createInput","inName","saveToSelect","saveToSelectLabel","createDropdown","restrictToggle","isSet","IconInfoOutline","PERSONAL_STORAGE_ID","onBrandCreated","isPersonalBrand","setIsPersonalBrand","DEFAULT_TIMEOUT","LoadingPlaceholder","loading","errorElement","animated","showError","setShowError","timer","loadingAnimated","loadingStatic","ProjectNameBadge","ProjectNameAndBadge","messageElement","errorUI","IconAlert","BYTE_CONVERSION_BASE","sizeAbbrevMap","_extends$5","_extends$4","IconModel","appIcons","TRAINING_SET","IconBrand","IconLibrary","DC_OFFICE_FILES","IconOffice","isFireflyGenerationImage","IconImage","isFireflyGenerationVideo","IconVideo","appMetadata","IconSoundEffect","IconMusic","IconAudio","isFireflyGenerationVector","IconVector","AppIcon","useOverlayTriggers","appIconData","specialCaseData","adobeAsset","appBadgeMimeType","adobeFileTypeValues","getViewAttributesMap","genericFileTypeValues","getSvgAndTooltip","APP_ICON_HEIGHT","DEFAULT_TOOLTIP_DELAY","CloudBadgeType","CloudBadgeType2","cloudBadgeMap","CheckmarkIcon","AlertIcon","CloudOnlyIcon","CloudBadge","badgeType","toolTipVariant","Svg","CloudStatusIcon","isOffline","AVAILABLE_OFFLINE","CLOUD_ONLY","themeToLceIcon","IconLceLight","lightest","dark","IconLceDark","darkest","LiveCoEditingIcon","theme2","LceIcon","LocationButton","tooltipDisabled","handleLocationClick","OnlineOnlyBadge","collectionItem","LOCATION_SWY","LOCATION_FILES","LOCATION_LOCAL","LOCATION_CCLIBRARY","LOCATION_REVIEW_LINKS","locationIconMap","SWYIcon","YourFilesIcon","LocalFileIcon","ReviewLinkIcon","ProjectLocationButton","useOnline","AdobeAssetGridItem","GridItem","isRenaming","isContextMenuStart","renditionMargins","additionalClassNames","renderAppIcon","tileHeight","computeRenditionWrapperHeight","renderSecondaryBadge","isLceDocument","renderMetadata","fileExt","fileExtension","fileExtContent","metadataContent","locationFormat","locationIconStyle","LocationIcon","librariesMessage","sharedWithYouMessage","reviewLinksMessage","cloudDocsMessage","localMessage","renderLocationMetadata","isUnhydratedAsset","locationData","renderRendition","renderTitleAndMetadata","renderThumbnail","renderExtraActionsOnThumbnail","renderActionContent","AAVOperationStore","quickActions","isQuickAction","hasAnySelected","modified","AdobeAssetListItem","legacyRenderMetadata","DotSeparator$1","renderExpressMetadata","ExpressGridItem","ExpressListItem","renderLibraryElementMetadata","LibraryElementGridItem","LibraryElementListItem","ThumbnailDimensions","EmptyLibraryThumbnail","singleTileDisplay","listView","libraryType","libraryRenditionFull","libraryRenditionTile","libraryType2","LIBRARY","getIconByLibraryType","colorToHex","hexadecimal","rgbaToHex","roundDownColor","colorObject","getRGBData","rawColorData","swatches","swatch","ColorElementView","renditionData","rgbData","libraryRenditionSwatch","ColorThemeElementView","roundedColor","colorDataToRGBA","linearInterpolate","v1","v2","linearInterpolateColor","colorDataA","colorDataB","colorA","colorB","addMidpointStops","valueKey","stops","newStops","stopA","stopB","midpoint","getFauxValue","prevStop","nextStop","getGradientCSS","opacities","centerPoint","aspectRatio","centerX","centerY","colorStops","opacityStops","colors","offsetMap","addToMap","mergeGradientStops","addFauxStops","flattenGradientStops","rgbColorData","rgba","scaleX","SCALE","backgroundImage","GradientElementView","gradientData","gradientStyle","libraryRenditionGradientContainer","ThumbnailView","renditionStatus","RenditionTypes","RenditionTypes2","renderTile","currTile","libraryRenditionGrid","colorTheme","imageUrl","imageStatus","LibraryRenditionView","elementsCount","isCustomModelTrainingSet","tileInd","isEmptyViewIcon","libraryRenditionContainer","_getRenditionViewProps","library","customThumbnail","shouldUseCustomThumbnail","renditionGrid","LibraryGridItem","renderLibraryMetadata","getItemType","MetaDataContent","fileNameContent","dateContent","LibraryListItem","renderProjectMetadata","renderProjectRendition","ProjectGridItem","ProjectListItem","renderReviewMetadata","ReviewGridItem","ReviewListItem","renderWebLinkMetadata","WebLinkGridItem","WebLinkListItem","renderXdMetadata","includesDevelopmentData","XdArtifactGridItem","samJSHostAssetContext","_xdartifactType","getXDCEData","XdArtifactListItem","renderFolderRendition","FolderGridItem","FolderListItem","renderConceptMetadata","ConceptGridItem","ConceptListItem","DotSeparator","renderAssets3DMetadata","dateMetadataContent","Assets3DGridItem","Assets3DListItem","renderSquirrelMetadata","SquirrelGridItem","SquirrelListItem","ImageFormattedMessage","getGenerationModelDisplayName","isUpscaled","getTitle","getPrompt","GenerationHistoryGridItem","renderGenerationHistoryMetadata","stateMetadataContent","FAILED","getStateFormattedMessageElement","existingClassNames","IconAIGenClockPending","IconAlertTriangle","renameAction","GenerationHistoryListItem","renderFireflyTemplateMetadata","MetadataContent","FireflyTemplateGridItem","FireflyTemplateListItem","renderTemplateMetadata","TemplateGridItem","TemplateListItem","CREATE_NEW_FOLDER","IconFolderAdd","elementsHavePermission","permission","getDisabledTooltipLabelForCopyTo","getDisabledTooltipLabelForMove","isViewEnabledForCopyTo","parentAssetId","isViewEnabledForMove","CopyTo","firstAdobeAsset","deriveParentPath","uapResult","getDisabledTooltipLabel","COPY_TO","undoCallback","duplicateAssets","undoCopyTo","targetAsset","filesCallback","projectsCallback","Download","IconStarOutline","FAVORITE","setIsFavorite","derivePath","normalizePath","UploadToCloud","_elements","filesToImport","files","cloudUri","cloudPath","fetchSuitableName","suggestedName","extraName","fileName","hasNameConflict","uploadedFiles","failedFiles","file","File","uploadedFile","importFile","retryOnConflict","LossyMoveWarningDialog","handleMove","MoveLibraryPermissionDialog","pluralAssetType","handleContinue","setEditRestricted","adobeAssets","filteredElementIds","checkAllowedAdobeAssetsBeforeOp","nonOpenAssets","partitionAssetsByOpenStatus","CancelBecauseOpen","filteredElementCount","folderToOpenAssetsMap","folderElements","nonFolderElements","openInAppAssetIds","parseAssetRef","cloud_id","openAssetIds","nonCheckedOpenInAppAssetIds","nonCheckedOpenInAppAssets","openAssetsInFolder","getFeatureFlagConfig","areAllLibrariesMovable","hasAnyFolders","showToastForMoveOpenAssets","getAssetName","folderContainsMultipleAssets","getMoveToastContent","failed","failedQuota","preLoadFailed","postLoadFailed","undoFailed","undoSuccess","ownership","canMoveElements","noneAreLibraries","handlePersonalLibraryMove","targetCloudId","projectContext","restrictEditLibrary","projectInfo","getProjectbyID","moveCapability","editRestricted","moveCancelled","CollaboratorMaybeEditing","isMultiSelectEnabled","MoveTo","predefinedDestinationAssetId","parentOrAssetId","destinationCloudID","sourceElements","directorySubtype","WF_PROJECT","sourceAsset","MOVE","moveLibrary","undoMove","createMoveFromAction","MoveFrom","selectedAssets","backedSelectedAssets","BackedCollectionItem","ele2","Undo","canRestore","ShowLocation","IconFolder","lastAncestorId","projectEventDetail","navEventDetail","IconStar","REMOVE_FAVORITE","Flag","isNonBlocking","computedCorrelationId","createRemoveLibraryAction","Remove","isBookmarked","REMOVE","unbookmark","SyncErrorResolutionFailureType","SyncErrorResolutionFailureType2","SyncErrorResolutionFailureDialog","syncErrorCopy","heading","bodyWithLearnMore","syncErrorPurge","errorLabelMap","failureType","expressTheme","txt","metricOptions","duplicateFailedElements","RESOLVE_SYNC_ERROR","purgeFailedElements","purge","Purge","resolvableElement","createNewLibraryAction","libraryContext","IconCCLibrary","libraryData","lib","corelationId","showModal2","NEW_LIBRARY","library2","createPersonalLibrary","createLibrary","createLibraryAssetOp","createAddLibraryAction","AddLibrary","getPluralAssetType","ADD_LIBRARY","bookmark","performBookmarkOperation","AAVContext","cvContext","useCollectionViewContext","aavContext","AAVContextProvider","mapAdobeAssetToCollectionItem","thumbnailURL","mapColumnType","ColumnType","HeaderViewOptions","commonLibraryElementPlaceholder","adobeAssetGridItemPlaceholder","tileWidth","adobeAssetListItemPlaceholder","getViewItem","gridItemProps","listItemProps","gridItem","listItem","isWebLink","isLibraryElement","ASSET_TYPES","TEMPLATE","isExpress","isConcept","isSquirrel","isFireflyTemplate","isAssets3d","CV_FLAGS","enableUnifiedSelectionUX","enableCDOActionBar","enableContextMenu","enableIconsWithActions","focusManagementEnabled","enableDragDrop","EMPTY_FUNCTION","UXSortDir","listRowHeight","useSAM","useBreakpoint","aavOperationStore","mappedTheme","Themes$1","themeToCVTheme","defaultActions","useDefaultActions","aavActions","dragDropConfig","dragDisabled","currentAsset","moveAction","importAction","startOperation","getDragThumbnail","isNormalFolder","iconType","assetIcons","AssetIcon","isValidDropTarget","onItemDrop","destElement","dragState","usageMetricLogger","getUsageMetricLogger","Drag","DragFolder","onDragTimerEnd","logItemViewMetric","itemViewEventType","DragNav","onViewDrop","dragSource","IMPORT","DragView","dragFiles","immediateAncestorId","useDragDrop","getCardSize","showLocation2","minTileWidth","maxTileWidth","infoHeight","rowMargin","columnMargin","marginAndBorder","onSortSelected","activeSortDirection","cellContentRender","columnType","isActiveSort","uxSortColumn","useColumns","cardSize","pagination","useSAMListPagination","initialPlaceholderElements","renderGridItemPlaceholder","renderListItemPlaceholder","activeSort","selectionManager2","nonSingleClickSelect","multiSelectSingleClick","isInSelectionMode","operationState","assetOpState","Idle","setOperationState","setAssetOpState","GridView","asset2","ListView","parentItem","TextOverflowEllipsis","setWidth","useWidth","needsTooltip","ellipsis","isTabbable","CHEVRON_RIGHT","BreadcrumbListItem","linkDisabled","breadcrumbsItem","breadcrumbsItemIcon","breadcrumbsItemLink","enabledLink","BreadcrumbsCollapsed","maxVisibleItems","onBreadcrumbClick","showRoot","rootOffset","visibleItemsOffset","visibleItems","item2","menuItemWrapper","hasMenu","breadcrumbs","isLastItem","isOnlyItem","OtherCollaborators","collaborators","people","sharedWithCollaboratorName","CollaboratorName","collaboratorName","you","OwnerSection","headerText","isCurrentUser","CollaboratorPopoverContent","otherCollaborators","collaborator","useCollaboratorsByRole","showMe","collaboratorSummary","UserIconAndCount","iconSize","userIconAndCount","UserGroupIcon","usersIcon","iconXS","userCount","CollaboratorCount","placeHolderDash","useDirectCollaborators","collabCount","CompatibilityFilter","handleOnClick","newVal","CompatibilityFilterIcon","FileTypeFilter","withoutLabel","AddCircle","onFolderActionClick","relevantActions","findIndex","icon2","toolbarMenuItem","getRootItem","mapToBreadcrumbs","folderNames","ancestorIds","generateBreadcrumbs","trimRootCrumb","rootItem","rootAssetIndex","normalizedAncestorIds","RootBackButton","HeaderCompactBreadcrumbs","crumbs","HeaderBreadcrumbs","generateProjectAssetBreadcrumbs","generateCloudAssetBreadcrumbs","useBreadcrumbs","handleBreadcrumbClick","SingleBreadcrumb","enableSelectButton","SelectBoxAll","handleInSelectionMode","currState","setIsInSelectionMode","viewModeForCollectionView","newViewMode","symbolToString","baseToString","isSymbol","reHasUnicode","nodeIsRegExp","isRegExp","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsModifier","rsOptVar","rsSeq","rsSymbol","reUnicode","separator","firstCharacter","badgeCharacter","useFormattedGradient","badge","sizeXXS","sizeXS","sizeS","sizeM","sizeL","sizeL50","sizeXL","sizeXXL","trimFilename","getValidationMessages","lengthExceeded","endWithDot","startWithDot","reservedName","themeIsExpress","themeIsSpectrum","useTheme","useMobile","addDuplicate","newFilename","newFileNameWithExtension","oldName2","rename","oldName","hasNameError","noInput","isIos","headerLabel","getHeaderLabel","contentBody","LoadingState","waitContainer","renameInput","inputExpress","renameContent","DATE_SORT_TYPES","isDateSortType","isReverseSelected","reverseOption","handleSortSelect","updatedSortOptions","resetReverseDirection","SortIcon","SortOrderUp","SortOrderDown","MenuGroup$1","dropdownMenuItem","DIVIDER","selectOptions","adobeAppTypes","TypeGrouping","Application","genericTypes","Generic","genStudioBrandsTypes","GenStudioBrands","otherBrandsTypes","OtherBrands","selectOptions2","typeFilterDropDown","ProjectNameWithBadge$1","collabInfoContainer","collabInfoText","isPrivateLibrary","directCollaboratorCount","isPublicLibrary","isPartOfProject","Globe","toLocaleUpperCase","renderDateColumn","getViewItemType","includeFolders","isValidCompatibleTypes","compatibleType","mimeTypeEntry","_fileTypeKey","getCompatibleTypesFileType","compatibleTypesSet","useCompatibleTypesFilter","samListStatus","samListItemsLength","loadNextPage","hasNextPage","isNextPageLoading","isSupportedLocale","localeToImport","cvMessageLoader","isSupportedLocale$1","cvMessages","ActionAnalyticsValue2","UXOpName2","OperationStore","assetOpComplete","promiseList","metricLogFailure","correlationId2","metricLogSuccess","reportOperationErrorToSentry","opName2","batchResponse","failedResults","tertiaryColor","mapper","mappedItem","_AssetLinkEvent","AssetLinkEvent","defaultAssetLink","ASSETS_WEB","searchParams","pdfAssetLink","ACROBAT_WEB","photoshopAssetLink","PHOTOSHOP_WEB","illustratorAssetLink","ILLUSTRATOR_WEB","expressAssetLink","EXPRESS_WEB","expressPageLink","expressDrawingLink","expressLegacyAssetLink","fireflyGenerationLink","FIREFLY","squirrelAssetLink","SQUIRREL","getWorkfrontAssetLink","workfrontContext","getWorkfrontContext","workfrontLink","getWorkfrontLink","defaultLink","TypeOfAsset","templateName","renderRouteTemplate","urn","ADOBE_HOME","projectAssetLink","folderAssetLink","url2","libraryAssetLink","EXPRESS","EXPRESS_PAGE","EXPRESS_PAGE2","EXPRESS_DRAWING","EXPRESS_THEO","EXPRESS_LUCA_DOC","EXPRESS_LUCA_PROJECT","EXPRESS_GINGER_DOC","EXPRESS_GINGER_PROJECT","FIREFLY_GENERATION_VIDEO","AERO","getLinkConstructorByMimeType","isChildOfCSCProject","setLink","newLink","FIREFLY_GENERATIONS_MIMETYPES","LIBRARIES_MIMETYPES","BRANDS","FOLDER","ALL_FILES","assetMimeType","typeToMatch","EmptyFilterView","hasOnlyFolders","_extends$n","_extends$m","_extends$l","IconAcrobat","_extends$k","IconAero","_extends$j","IconIllustrator","_extends$i","IconInDesign","_extends$h","IconPhotoshop","_extends$g","IconAdobeFirefly","_extends$f","IconXD","_extends$e","_extends$d","IconAssets3d","_extends$c","_extends$b","_extends$a","_extends$9","_extends$8","_extends$7","_extends$6","IconProject","IconSquirrel","IconExpress","IconExpressPng","clipRule","AAVComponentId2","AAVComponentProjectName","AAVComponentIngestApiKey","projectsAAVMetrics","librariesAAVMetrics","aavMetrics","MetricsInitialized","INGEST_MAX_QUEUED_EVENTS","INGEST_DEBOUNCE_VALUE","customAnalyticsData","_componentId","_hostConfig","_customAnalyticsData","ingestConfig","getIngestConfig","initialized","ingestBase","svc","getSessionGuid","finalData","OPERATION_ANALYTICS_VALUE_OVERRIDE","Workflow$1","_AAVMetrics","_userId","_initialized","_disabled","sessionStorage","v4","_ingestController","_ingestOptions","setIsOffline","isOfflineStatusFunction","setViewFunction","getView","_fireEvent","perSession","getCancelledSubtype","actionAnalyticsValue","getErrorSubtype","getAssetData","determineAssetType","cache_status","determineCacheStatus","isFile","determineUsageSDMWorkflow","Library","Document","getPerformanceData","getDurationData","getOperationalMetricData","performanceData","getAnalyticsOverrides","UsageMetricPhase","ActionStart","ActionComplete","ActionCancelled","ActionError","analyticsOverrides","_componentIdInitialized","sequence","trnNumber","durationInSeconds","dts_start","trn","amount","quantity","Conflict","Confirm","LibrariesAAVMetrics","author","createdBy","contentData","pagename","referer","PROJECTCONTENTS_SUBCATEGORY","ProjectsAAVMetrics","getProjectUrn","getCollabData","collaboratorArray","accessLevel","Read","computedUserId","collabData","collab","access_level","project_urn","_OpenEvent","OpenEvent","ClickSource2","resource","libraryElementType","isGenerationHistoryAsset","Local","expressElementType","isFireflyGenerationAudio","generationHistoryState","primaryType","isXdPrototype","isXdDesignSpec","isSpecialDirectoryType","TypeGrouping2","iconWH","badgeSizing","adobeIconSize","All","Yours","IconYours","AllCompatible","AllBrands","Drafts","Published","CreatedByYou","MyBrands","Public","AcrobatPDFOption","FireflyOption","FolderOption","LibrariesOption","BrandOption","getMimetypeMatchedViewModel","mimetypeMatches","isCustomModel","requiredArgs","toDate","argStr","roundingMap","trunc","defaultRoundingMethod","getTimezoneOffsetInMilliseconds","utcDate","UTC","setUTCFullYear","startOfDay","dirtyDate","setHours","MILLISECONDS_IN_DAY","getDefaultOptions","startOfWeek","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","dirtyNumber","toInteger","getDay","setDate","MILLISECONDS_IN_WEEK","UsageMetricPhase2","subscriptions","initSubscriptionMap","FOCUS_ITEM_CLASS","ProcessingState2","UXSortBy2","UX_SORT_TO_INGEST","UXSortDir2","ModeType2","ViewMode2","MINIMUM_ACCEPTED_TIMEOUT","CCD_CONTENTVIEW_RESIZE_EVENT","CDO_UPDATE_SCROLL_POSITION","ILLUSTRATOR_DOCUMENT","FR_CLOUD_DOCUMENT","PS_DOCUMENT","PS_DOCUMENT_LOCAL","PS_DOCUMENT_LARGE","MIGRATED_GEMINI","INDESIGN_ARTIFACT","INDESIGN_DOCUMENT","SHARED_CLOUD_COLLECTION","OFFICE_DOCUMENT_PRESENTATION","OFFICE_DOCUMENT_SHEET","OFFICE_DOCUMENT_WORD_DOCUMENT","WORD","MS_EXCEL","POWERPOINT","OPENTEXT","OFFICE","XLSMACRO","XLS","THREEDSCENE","disabledTooltipMsgId","labelText","unwrappedButton","CollectionViewContext","collectionViewRef","CVContextProvider","getActiveItems","getActionByValue","childAction","onActionButtonClick","renderMenuItem","messageId","actionMenuLabel","I18NCollectionView","testid","subMenuActions","subMenuAction","isContextMenu","menuItems","grp","showDivider","iconEl","actionMenuIcon","More","skipPropagation","ActionMenu$1","Platform","Platform2","isWindows","DragSource2","CV_DRAG_MIMETYPE","isCVDragEvent","DRAG_CONFIGS","isLastDragLeave","DragState","dragImageRef","sourceElWasReattached","startDragAsset","allSelectedElements","sourceEl","addSelections","setData","setDragImage","effectAllowed","SELF","startDragImportIfNeeded","cfg","chk","getDragConfig","getDragSource","isDraggingElement","onDragOver","reattachSourceEl","dragImage","isConnected","getReattachContainer","cleanUp","ExtendSelectionMode","ExtendSelectionMode2","defaultSelectionBehavior","selections","newSelectionBehavior","toggleSelection","extendSelection","extendSelectionMode","extendMode","lastSelectedElement","pivot","pivotIndex","clearContiguous","start2","clickedIndex","updatePivot","nextElement","curIndex","selectedIds","MenuType2","EventType2","ItemViewEventType2","Workflow2","removeUndefinedFields","ImageView","_imageRef","_previousImageValue","isImageLoaded","onImageLoad","updateImageSrc","passThroughProps","DragCard","getThumbnail","dragSelectionSize","thumbnail","EmptyView","hideSubtitle","filterString","Dimmer","dim","MAX_NAME_LENGTH","INVALID_REGEX","badPrintableCharacters","badUnprintableCharacters","restrictedFileNames","badFileEnding","ReactSpectrumValidationState2","ValidationStatus2","validationStatus","hasSubmitted","mouseOverDetected","validateName","stopAllPropagation","cancelRename","onSubmit","originalName","onRenameCancel","nameValidator","onRenameInvalid","onRenameSubmit","renderTooltip","renderOverlayTrigger","validationStateProp","defaultPreventedKeys","onDragStart","DEFAULT_THRESHOLDS","secs","dateLeft","dateRight","differenceInMilliseconds","roundingMethod","differenceInSeconds","days","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarDays","weeks","startOfWeekLeft","startOfWeekRight","differenceInCalendarWeeks","months","differenceInCalendarMonths","years","getExtendSelectionMode","toggleKey","mac","rangeKey","Toggle","_RenameAction","Rename$1","isRenameDisabled","onFail","ViewItem","subscriptionKey","dragEnterCount","handleClickSelection","onItemClickedHandler","focusOnItem","handleCheckBoxSelection","onViewItemCheckBoxSelection","handleKeyDownSelection","onViewItemKeyDownSelection","handleContextMenuSelection","onViewItemLongPressSelection","ReactDOM","selectOnClick","_updateSelection","doubleClickToOpen","onCheckboxSelection","posX","posY","disableContextMenu","onItemDragStart","onDragEnter","onItemDragEnter","incrDragEnterCount","onDragLeave","decrDragEnterCount","onItemDragLeave","onDrop","clearDragEnterCount","onDocMounted","setupRenaming","actionItem","theAction","onDocUnmounted","isDragDisabled","onItemSelected","ViewItemIcon","isDefaultIcon","commonProps","renderImage","prevFocusOffset","scrollToDOMNode","measureDiv","innerDiv","keyboardFocusItem","onKeyboardFocusChange","changeProps","ensureFocusOnItems","focusClassSelector","searchNode","hasError","Measurer","measureScrollbar","updateWidth","getScrollbarMeasurer","UnableToOpenItemWarning","setDisabled","handleItemClick","element2","WindowScrollerProvider","scrollElementRef","CardSize","CardSize2","COMMON_CARD_SIZES","elementsSeen","lastColumnWidth","_gridRef","_measureContainerDimensions","_computeLayout","handleResize","leading","windowScrollerRef","onUpdateScrollPosition","_getColumnWidthByIndex","_getFocusOffset","shouldRenderPlaceholder","numberOfElements","onCellRender","hideSelectionCheckbox","openActionMenuId","onEllipsisClick","viewItem","GridItem$1","viewItemProps","currentKey","itemTabIndex","isEllipsisMenuOpen","startElementIndex","stopElementIndex","arrowKeyMovesSelection","targetId","resizeElement","_getResizeElement","resizeObserver","_computeColumns","bestLayout","targetColumnCount","defaultTileHeight","renderInfiniteLoader","renderGridContents","renderColumnSizer","columnSizerProps","placeholderRowCount","virtualRegisterChild","additionalChangeProps","scrollIndex","commonGridProps","accessibilityOverscanIndicesGetter","hasElements","isGridVisible","GridComponent","renderFocusElement","scrollProps","renderGrid","GridView$1","gridItemRef","Large","cardData","computeHeight","additionalNameContent","renderActionMenu","renderCheckBox","isInSelectionContext","hideEllipsisMenu","showEllipses","actionMenu","actionMenuTabIndex","renderQuickActions","renderBadge","selectionEnabled","hideCheckbox","gridItemClassNames","tileStyles","onMouseOverCapture","SortArrow","ArrowDefault","ArrowReverse","HeaderColumn","onLabelClick","renderHeaderColumn","isSelectionEnabled","Column2","ColumnType2","COLUMN_TO_SORTBY","COLUMN_TO_TYPE","COLUMNS_NOT_TO_BE_REMOVED","COLUMNS_MIN_WIDTH","Name","containerRef","_listRef","_listComponent","_columnRefs","_unsortableColumnsSet","unsortableColumns","scrollbarIsVisible","columnIndexes","handleResizeColumns","updatedColumns","getVisibleColumnIndexes","allColumnsMeasured","updateColumnWidths","retval","createResizeObserver","resizeObserverColumns","resizeObserverContainer","sizeChanged","scrollChanged","isScrollbarVisible","grid","gridInnerContainer","changeSort","_rowRenderer","ListItem$1","columnsToRender","isNonRemovable","visibleColumnIndexes","containerWidth","minVisibleColumnWidth","forceUpdateGrid","_uppercaseTranslation","translationId","renderColumn","customColumn","columnString","notSortable","renderCustomColumn","renderListContents","isHeaderVisible","listHeight","commonListProps","ListComponent","renderList","focusClass","ListView$1","formattedMessage","renderSelectboxColumn","checkbox","renderThumbnailAndTitle","disableThumbnails","renderActionColumn","isTouchDevice$1","columnDefinition","_SelectAction","SelectAction","SelectionManager","onKeyDownSelection","onBackgroundClick","isRageClickCluster","parentElement","setElements","setSelectionStore","selectAll","ViewStateStore","showSelectionBar","setScrollIndex","newScrollIndex","setSelectionBarDisplayState","ContextMenu","showContextMenu","triggerMenu","yOffset","triggerButton","contextMenuCoords","ContextMenu$1","CDOActionBar","CDOView","renderedWithElements","cdoViewRef","actionBarContainerRef","viewStateStore","keyDownEventListener","firePopulatedStateRenderMetric","debounce$1","handleToastResize","isUAPView","setToastCoords","closest","isUAPWebView","CDOBox","actionBarBox","actionBarBottomOffset","cleanToastCoords","isBusy","validateDropTarget","onAssetDragEnter","onAssetDragLeave","onDragEnd","onViewDragEnter","isFirstDragEnter","validateViewDropTarget","onViewDragLeave","onItemClicked","eventSubType","onItemMounted","selectAction","moreArgs","ReadyToExecute","onActionBarActionButtonClick","ActionBar","onItemsActionButtonClick","onSelectAllItems","filterItems","getSelectionBehaviorConfig","renderOperationContent","handleEllipsisMenuOpen","selectionChanged","allActionMenuItems","disposeOnUnmount","routeToItem","dragOverEl","getDragOverElement","selectionDisabled","lockSelectModeOn","getGridSortOptions","getColumns","isSingleSelect","hideSelectAllCheckbox","filteredItems","hiddenFilters","visibleFilters","emptyViewProps","hideEmptyView","elementIndex","selectedElement","assetIds","commonViewProps","isSelectAllDisabled","commonItemProps","hideActionColumn","operationContent","isActionBarEnabled","leftColumns","rightColumns","defaultChangeProps","ChildType","grandChildren","viewProps","viewChangeProps","emptyView","getFolderOrGridViewItem","getFolderOrListViewItem","availableActions","CDOView$1","milliseconds","showBorderWhenScrolled","isScrolled","setIsScrolled","toggleViewMode","alwaysDisableToasts","temporarilyDisableToasts","defaultAddToast","toastConfig","setAddToastFunc","setTemporarilyDisableToasts","newToastState","ExpandToggle","onToggle","hasChildren","isExpanded","IconChevronDown","IconChevronRight","HIERARCHY_ITEM_TOGGLE","ToggleHierarchyItemEvent","HierarchyListItem$1","posInSet","divProps","DATA_INDEX_ATTRIBUTE","defaultRowHeight","onItemExpand","keyboardNavigationEnabled","expandedItems","setExpandedItems","focusedIndex","setFocusedIndex","throttledSetWidth","currentItem","getCurrentFocusedIndex","toggleExpansion","itemId","wasExpanded","newExpandedItems","focusItemAtIndex","targetItem","currentFocusedIndex","currentUpIndex","currentDownIndex","parentIndex","newIndex","reactVirtualizedRowRenderer","i2","handleRowsRendered","measureInitialWidth","initialWidth","handleToggleExpansion","Themes2","SharedConfig$1","updateConfig","sharedConfig","sharedContext","getContext","Event","unsetSharedContext","setSharedContext","contextId","cSdk","getSharedContext","getSize","mediaQuery","breakpoint","setBreakpoint","updateBreakpoint","ACE","PANDORA","getURL","CCLibraries","ColorPicker","Commenting","NeuralFiltersRemoveBackground","ShareSheet","Timeline","AccountMenuTrigger","AccountMenuMiniApp","_getLocalStorageOverrides","removeItem","cdnEnvironment","_scriptLoadingPromises","_scopeLoadingPromises","_loadedModulePromises","_config","_loadScript","_loadRemoteContainer","sharingscopes","_cdnEnvironment","_getModuleConfig","_isUrl","LinkStatus","Role","MessageType","ElementType","Relationship","Theme","Mode","Environment","View","RS2Toast","swcVariant","VARIANT_MAP","neutral","negative","getToastPriority","toastsReducer","toasts","newToast","insertIndex","currentToast","dismissTime","_SelectionChangeEvent","SelectionChangeEvent","wrapComponentWithReactDom","TargetComponent","updateTarget","_ChunkLoadErrorEvent","MobileContext","MobileProvider","NetworkContext","online","setIsOnline","updateOnlineStatus","LOADERS","DocumentCallbacksContext","DocumentCallbacksProvider","useDocumentCallbacks","formatRGB","defaultGradient","textColorValue","formatGradient","HostConfigProvider","useLoading","setResult","setLoading","cancelled","safeState","fn2","result2","error2","withPrefix","_PerformanceMarkerEvent","PerformanceMarkerEvent","perf","startKey","endKey","ended","performanceMeasure","usePerformance","optionsEnablePerformanceMeasurement","optionsDispatchEvent","hostEnablePerformanceMeasurement","hostConfigDispatchEvent","minimumDuration","mountTimeRef","timeoutRef","safeCloseModal","remainingTime","ProductId2","ProductLocation2","SHARESHEET_TAG_NAME","SHARESHEET_MODULE_NAME","getShareSheetVersion","express","themeToColorScheme","componentLoader","ComponentLoader","createLoader","getLoader","sharesheetVersion","aupSdk","SharedConfig","isAupSdkConfigredWithApiKey","getConfig","setIsLoaded","componentLoaderConfig","idpClientId","inviteApiVersion","getComponentLoaderConfig","loadUIComponent","loadShareSheet","initializeShareSheet","handleShowModalResult","showModalResultType","_NavigationEvent","shouldPolyfill","intlPolyfillForce","dataPolyfills","ReactSpectrumProviderForCollectionView","rs2Theme","themeProvider","_RenderedEvent","_RoutedEvent","_NavigateOutEvent","templates","stageBaseUrls","prodBaseUrls","legacyExpressElementType","betaExpressType","FIREFLY_GENERATION_VECTOR","isLegacyExpress","isBetaExpress","configured","appAgentName","fromUAB","serviceAccount","serviceAccounts","serviceStatus","setUser","getCurrentScope","setTags","sentryTags","createSentryTags","Sentry","native","_extends$w","_extends$v","_extends$u","_extends$t","_extends$s","_extends$r","iconGenericAudioDark","_extends$q","iconGenericAudioLight","_extends$p","iconGenericImageDark","_extends$o","iconGenericImageLight","iconPresentationDark","iconPresentationLight","iconSpreadsheetDark","iconSpreadsheetLight","iconGenericTextDark","iconGenericTextLight","iconGenericVideoDark","iconGenericVideoLight","iconAiAI","iconArREAL","iconDnDN","iconIdINDD","iconPsPSD","iconXdXD","getThemedIcon","iconLight","iconDark","iconDefaultLight","iconDefaultDark","iconAeAEP","iconAiAIC","iconAnFLA","iconPsPSDC","iconXdXDC","iconPDFLight","iconPDFDark","iconZipLight","iconZipDark","iconAdobeFirefly","iconGLB","iconGLTF","iconSquirrel","assetIconGenerics","spec","ProjectViewLocations","ProjectViewLocations2","getErrorData","errorData","_additionalInfo","error_type","projectActionEvent","projectOrganizerClickEvent","projectListRenderEvent","projectOrganizerSearchTriggerEvent","search_keyword","projectOrganizerSearchResultRenderEvent","result_count","projectOrganizerSearchResultItemClickEvent","rank","searchQuery","projectSharingEvent","sharesheetEvent","viewLocation","projectSharingEvent2","projectSortEvent","projectFilterEvent","linkedBrandClickEvent","DEFAULT_LOCALE","et","lv","sl","aavMessageLoader","PERFORMANCE_MARKER_PREFIX","usePerformance$1","useLoadPerformance$1","getPrimaryLocale","useIntlLoader","setProviderProps","primaryLocale","loadIntl","intlProps","DEFAULT_ORGANIZER_CONFIG","enableSearch","OrganizerConfigContext","decodeProjectView","decodeSortBy","decodeSortDirection","decodeView","OrganizerConfigProvider","createUABSAMCore","sdkOrSAMCore","getClassroomContext","getBoardContext","getLibraryContext","utils","getCollaborationContext","getProjectContext","isSamCppAvailable","SUPPORTED_DESKTOP_GRAPHQL_HOSTS","SUPPORTED_WEB_GRAPHQL_HOST_CLIENT_IDS","isSupportedStageWebApp","featureFlag","graphQL","plsSwy","plsRecents","graphQLCache","registerMobxCreateAtom","initializeSharedAssetModel","FEATURE_FLAGS","URLSearchParams","CLIENT_ID","Production","Stage","USER_ID","HIGH_PRIORITY_RAPI_REQUESTS","ACCESS_TOKEN","accessToken","HOST_PRODUCT_DATA","PRODUCT_ID","PRODUCT_LOCATION","ADMIN_MODE_ORG_ID","adminModeOrgId","refreshAccessToken","makeObservable","SAMContext","useSAMInitializer","useAsset","setAsset","DEFAULT_PAGE_SIZE$2","DEFAULT_SAM_FILTER_PARAMS","getAdobeAssetFilter","getIsSharedFilter","getSharedViewSelection","getSharedViewFilter","useAdobeAssetFilter","loadAllPages","useAssetList","generationGroupId","getGenerationHistoryAssetOrder","getGenerationHistoryAssetFilter","RESTRICTED_CHARACTERS","RESERVED_NAME_REGEX","duplicates","setDuplicates","setValidationError","getValidationSpec","validateProjectName","isAvailable","validateProjectNameForCreate","validateProjectNameForRename","validateAssetName","assetNameError","updateLastAccessed","BRAND_ROLE","CM_TRAINING_SET_ROLE","isBrandRole","isCmTrainingSetRole","LibraryPrimaryType2","isLibrary2","isProject2","isNameDCTitle","FULL_CLOUD_STORAGE","DEFAULT_PAGE_SIZE$1","projects","getProjectOrder","getProjectFilter","useLibraryList","filterParams","useLibraryContext","librariesSource","getLibraryOrder","getLibraryFilter","getDisplayName","shouldShowCollaborator","isIndividualOwner","inheritances","isDirect","sortCollaborators","hasOwn","appendClass","parseValue","newClass","ShowModalResultType","ContentViewType","OtherFileTypeValues","GenericFileTypeValues","AdobeFileTypeValues","LibrariesAndBrandsTypeValues","GenStudioBrandTypeValues","FireflyGenerationTypeValues","SharedViewTypeValues","FileFilterTypeValues","CDOLogLevel","AccountType","GetBlockedAssetsResponse","AssetSyncStatus","AssetSyncSuspensionReason","CommitStatus","NetworkStatus","PostType","BoardMemberRole","BoardType","AvatarSizes","Env","AssetListStatus","OrderDirection","OrderField","SAMErrorCode","SAMErrorSubCode","ProblemType","IFrameioAuthenticationStatus","CustomModelPublishedState","CustomModelOrderBy","RelType","IProjectPatchKeys","ProjectViews","ProjectCapabilities","ProjectLeaveReason","CanCreateProjectReason","ProjectDirectorySubtype","Permission","AssignmentStatus","AssignmentSubmissionOwnershipEnums","AssignmentTaskIDEnums","ClassroomMemberRole","ClassroomMemberStatus","ClassroomMemberInviteSource","LearningManagementSystems","LearningManagementSystemRoles","RosterImportState","ImportSourceType","ClassroomStatus","ClassroomType","SubjectTypes","ClassroomRole","BlockApiSuccessResponses","MembershipStatus","CoTeacherEligibilityStatus","CoTeacherIneligibilityReason","GenerationHistoryAssetType","GenerationHistoryAssetOrderBy","GenerationHistoryAssetState","LibraryOrderBy","LibraryOwnerFilter","LibraryProjectFilterEnum","LibraryReferenceFilter","LibraryRolesFilter","BrandPublishMetadataFilter","MoveWarning","CannotMoveReason","StudentAssignmentStatus","StudentAssignmentOwner","RenditionStatus","RenditionSize","RenditionType","RequestActionTypes","AsyncContextStack","assignedScope","assignedIsolationScope","_stack","_isolationScope","withScope","_pushScope","_popScope","getClient","getStackTop","getScope","getIsolationScope","getAsyncContextStack","registry","withSetScope","withIsolationScope","getAsyncContextStrategy","withSetIsolationScope","getMainCarrier","getSentryCarrier","__SENTRY__","getGlobalSingleton","creator","DEFAULT_ENVIRONMENT","getGlobalScope","getTraceContextFromScope","propagationContext","traceContext","DEBUG_BUILD","setContext","startSession","currentSession","getSession","endSession","setSession","_sendSessionUpdate","Scope","_notifyingListeners","_scopeListeners","_breadcrumbs","_attachments","_user","_extra","_contexts","_sdkProcessingMetadata","_propagationContext","newScope","_level","_session","_transactionName","_fingerprint","_lastEventId","setLastEventId","lastEventId","addScopeListener","_notifyScopeListeners","setExtras","setExtra","setFingerprint","setLevel","setTransactionName","captureContext","scopeToMerge","scopeInstance","maxCrumbs","getLastBreadcrumb","clearBreadcrumbs","addAttachment","clearAttachments","eventProcessors","setSDKProcessingMetadata","newData","SEMANTIC_ATTRIBUTE_SENTRY_SOURCE","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE","SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME","SEMANTIC_ATTRIBUTE_PROFILE_ID","SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME","SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE","makeSession","startingTime","sid","started","sessionToJSON","updateSession","did","abnormal_mechanism","FROZEN_DSC_FIELD","freezeDscOnSpan","spanWithMaybeDsc","getDynamicSamplingContextFromClient","publicKey","org_id","getDynamicSamplingContextFromScope","getDynamicSamplingContextFromSpan","rootSpanJson","rootSpanAttributes","traceState","rootSpanSampleRate","applyLocalSampleRateToDsc","SPAN_STATUS_UNSET","SPAN_STATUS_OK","SPAN_STATUS_ERROR","setHttpStatus","httpStatus","spanStatus","getSpanStatusFromHttpCode","SCOPE_ON_START_SPAN_FIELD","ISOLATION_SCOPE_ON_START_SPAN_FIELD","setCapturedScopesOnSpan","getCapturedScopesOnSpan","SENTRY_BAGGAGE_KEY_PREFIX","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","MAX_BAGGAGE_STRING_LENGTH","baggageHeaderToDynamicSamplingContext","baggageHeader","baggageObject","parseBaggageHeader","dynamicSamplingContextToSentryBaggageHeader","newBaggageHeader","dscKey","dscValue","DEFAULT_MAX_STRING_LENGTH","htmlTreeAsString","elem","currentElem","MAX_TRAVERSE_HEIGHT","sepLength","nextStr","keyAttrs","maxStringLength","_htmlElementAsString","keyAttrPairs","keyAttr","keyAttrPair","parsedStackResults","lastKeysCount","cachedFilenameDebugIds","getFilenameToDebugIdMap","debugIdMap","_sentryDebugIds","debugIdKeys","stackKey","parsedStack","stackFrame","debugId","getDebugImagesForResources","resource_paths","filenameDebugIdMap","images","code_file","debug_id","CONSOLE_LEVELS","originalConsoleMethods","consoleSandbox","wrappedFuncs","wrappedLevels","_getLoggerSettings","_maybeLog","ORG_ID_REGEX","DSN_REGEX","dsnToString","withPassword","pass","maybeOptions","__SENTRY_TRACING__","isError","wat","isInstanceOf","isBuiltin","isErrorEvent","isDOMError","isDOMException","isString","isParameterizedString","isPrimitive","isEvent","isThenable","isSyntheticEvent","isVueViewModel","__isVue","_isVue","isRequest","initialObj","mergeObj","levels","output","uuid4","gbl","getCrypto","getRandomByte","getFirstException","getEventDescription","firstException","maxProperties","visit","normalizeToSize","encodeURI","utf8Length","memoBuilder","unmemoize","stringified","objName","getConstructorName","stringifyValue","remainingDepth","valueWithToJSON","numAdded","visitable","visitKey","visitValue","replacementFactory","wrapped","markFunctionWrapped","addNonEnumerableProperty","getOriginalFunction","__sentry_original__","convertToPlainObject","getOwnProperties","serializeEventTarget","extractedProps","extractExceptionKeysForMessage","includedKeys","rate","notifyEventProcessors","processors","processor","final","mergeScopeData","mergeData","mergeAndOverwriteScopeData","mergeVal","prepareEvent","normalizeMaxBreadth","prepared","dist","maxValueLength","applyClientOptions","integrationNames","applyIntegrationsMetadata","applyDebugIds","finalScope","getFinalScope","clientEventProcessors","applyDataToEvent","applySpanToEvent","applyFingerprintToEvent","mergedBreadcrumbs","applyBreadcrumbsToEvent","applySdkMetadataToEvent","applyScopeDataToEvent","abs_path","debug_meta","applyDebugMeta","maxBreadth","normalizeEvent","parseEventHintOrCaptureContext","hintIsScopeOrFunction","captureContextKeys","hintIsScopeContext","generateTraceId","generateSpanId","SCOPE_SPAN_FIELD","_setSpanForScope","_getSpanForScope","TRACE_FLAG_NONE","TRACE_FLAG_SAMPLED","hasShownSpanDropWarning","spanToTransactionTraceContext","spanToJSON","spanToTraceContext","isRemote","spanToTraceHeader","spanIsSampled","convertSpanLinksForEnvelope","restContext","spanTimeInputToSeconds","ensureTimestampInSeconds","spanIsSentrySpan","castSpan","spanIsOpenTelemetrySdkTraceBaseSpan","getStatusMessage","CHILD_SPANS_FIELD","ROOT_SPAN_FIELD","addChildSpanToSpan","removeChildSpanFromSpan","getSpanDescendants","resultSet","addSpanChildren","getRootSpan","getActiveSpan","showSpanDropWarning","STACKTRACE_FRAME_LIMIT","UNKNOWN_FUNCTION","WEBPACK_ERROR_REGEXP","STRIP_FRAME_REGEXP","createStackParser","parsers","sortedParsers","skipFirstLines","cleanedLine","localStack","getLastStackFrame","stripSentryFramesAndReverse","stackParserFromStackParserOptions","defaultFunctionName","getFunctionName","getFramesFromEvent","truncate","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","executor","_handlers","_runExecutor","onfulfilled","onrejected","_executeHandlers","onfinally","isRejected","cachedHandlers","ONE_SECOND_IN_MS","dateTimestampInSeconds","_cachedTimestampInSeconds","cachedTimeOrigin","timestampInSeconds","createUnixTimestampInSecondsFunc","browserPerformanceTimeOrigin","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","navigationStartDelta","getBrowserTimeOrigin","TRACEPARENT_REGEXP","propagationContextFromHeaders","traceparentData","traceparent","extractTraceparentData","getSampleRandFromTraceparentAndDsc","sample_rand","generateSentryTraceHeader","sampledString","SDK_VERSION","reWhitespace","reTrimStart","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","nativeMin","lastArgs","lastThis","maxWait","lastInvokeTime","maxing","trailing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","__decorate","decorate","__param","paramIndex","__esDecorate","descriptorIn","contextIn","initializers","extraInitializers","accept","access","addInitializer","__runInitializers","useValue","__propKey","__setFunctionName","__metadata","metadataKey","metadataValue","__awaiter","_arguments","fulfilled","rejected","__generator","sent","trys","ops","verb","__createBinding","k2","__exportStar","__spreadArrays","il","jl","pack","__await","__asyncGenerator","asyncIterator","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__setModuleDefault","__importStar","mod","__importDefault","__classPrivateFieldGet","receiver","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","asyncDispose","_SuppressedError","SuppressedError","suppressed","__disposeResources","rec","internalTheme","themedIcon","generics","_prefix","genericIcon","RS2Dialog","dialogWrapperRef","underlay","handleConfirm","DialogWrapper","dismissable","headline","noDivider","responsive","DialogBase","getButtonVariant","hideTitle","DialogContent$1","IconAll","IconUserGroup","defaultSize","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","chunkIds","notFulfilled","getter","ns","def","definition","chunkId","needAttach","charset","onScriptComplete","doneFns","nmd","paths","scriptUrl","importScripts","currentScript","installedChunks","installedChunkData","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}